From a089739ab4ede009bd99e2423969a7ea6c655bb2 Mon Sep 17 00:00:00 2001 From: Mike Hukiewitz Date: Mon, 23 Jan 2023 19:04:16 +0100 Subject: [PATCH 01/10] first version of token-snapshot; force all indexers to use 1.0.23 instead of .24 (BETA); --- package-lock.json | 2132 +++++++++-------- packages/indexer-generator/package-lock.json | 188 +- packages/marinade_finance/package-lock.json | 433 ++-- packages/marinade_finance/package.json | 4 +- packages/spl-lending/package-lock.json | 592 +++-- packages/spl-lending/package.json | 6 +- packages/spl-token/package-lock.json | 1279 ++++++---- packages/spl-token/package.json | 6 +- packages/token-snapshot/README.md | 21 + packages/token-snapshot/docker-compose.yaml | 18 + packages/token-snapshot/index.ts | 1 + packages/token-snapshot/package.json | 22 + packages/token-snapshot/run.ts | 52 + packages/token-snapshot/src/api/index.ts | 1 + packages/token-snapshot/src/api/resolvers.ts | 56 + packages/token-snapshot/src/api/schema.ts | 48 + packages/token-snapshot/src/api/types.ts | 47 + packages/token-snapshot/src/constants.ts | 8 + .../token-snapshot/src/dal/accountMints.ts | 22 + .../token-snapshot/src/dal/balanceHistory.ts | 54 + .../token-snapshot/src/dal/balanceState.ts | 54 + packages/token-snapshot/src/dal/event.ts | 62 + packages/token-snapshot/src/dal/fetchMint.ts | 36 + packages/token-snapshot/src/domain/account.ts | 41 + packages/token-snapshot/src/domain/main.ts | 118 + packages/token-snapshot/src/domain/mint.ts | 120 + packages/token-snapshot/src/domain/types.ts | 56 + packages/token-snapshot/src/domain/worker.ts | 247 ++ .../src/parsers/lendingEvent.ts | 286 +++ packages/token-snapshot/src/parsers/mint.ts | 83 + .../token-snapshot/src/parsers/tokenEvent.ts | 353 +++ packages/token-snapshot/src/types.ts | 809 +++++++ .../token-snapshot/src/utils/discovery.ts | 96 + packages/token-snapshot/src/utils/utils.ts | 145 ++ packages/token-snapshot/tsconfig.json | 16 + packages/token-snapshot/types.d.ts | 1 + 36 files changed, 5691 insertions(+), 1822 deletions(-) create mode 100644 packages/token-snapshot/README.md create mode 100644 packages/token-snapshot/docker-compose.yaml create mode 100644 packages/token-snapshot/index.ts create mode 100644 packages/token-snapshot/package.json create mode 100644 packages/token-snapshot/run.ts create mode 100644 packages/token-snapshot/src/api/index.ts create mode 100644 packages/token-snapshot/src/api/resolvers.ts create mode 100644 packages/token-snapshot/src/api/schema.ts create mode 100644 packages/token-snapshot/src/api/types.ts create mode 100644 packages/token-snapshot/src/constants.ts create mode 100644 packages/token-snapshot/src/dal/accountMints.ts create mode 100644 packages/token-snapshot/src/dal/balanceHistory.ts create mode 100644 packages/token-snapshot/src/dal/balanceState.ts create mode 100644 packages/token-snapshot/src/dal/event.ts create mode 100644 packages/token-snapshot/src/dal/fetchMint.ts create mode 100644 packages/token-snapshot/src/domain/account.ts create mode 100644 packages/token-snapshot/src/domain/main.ts create mode 100644 packages/token-snapshot/src/domain/mint.ts create mode 100644 packages/token-snapshot/src/domain/types.ts create mode 100644 packages/token-snapshot/src/domain/worker.ts create mode 100644 packages/token-snapshot/src/parsers/lendingEvent.ts create mode 100644 packages/token-snapshot/src/parsers/mint.ts create mode 100644 packages/token-snapshot/src/parsers/tokenEvent.ts create mode 100644 packages/token-snapshot/src/types.ts create mode 100644 packages/token-snapshot/src/utils/discovery.ts create mode 100644 packages/token-snapshot/src/utils/utils.ts create mode 100644 packages/token-snapshot/tsconfig.json create mode 100644 packages/token-snapshot/types.d.ts diff --git a/package-lock.json b/package-lock.json index abdf31a..d9af0f4 100644 --- a/package-lock.json +++ b/package-lock.json @@ -89,9 +89,9 @@ } }, "node_modules/@apollo/client": { - "version": "3.7.2", - "resolved": "https://registry.npmjs.org/@apollo/client/-/client-3.7.2.tgz", - "integrity": "sha512-ohAIpXl3mTa1Fd3GT/K37VwQJfTIuuJRp4aOlJ4q/hlx0Wxh+RqDrbn0awtVCOdhGDQN+CQQmVzIqFKn6GziXQ==", + "version": "3.7.4", + "resolved": "https://registry.npmjs.org/@apollo/client/-/client-3.7.4.tgz", + "integrity": "sha512-bgiCKRmLSBImX4JRrw8NjqGo0AQE/mowCdHX1PJp2r5zIXrJx0UeaAYmx1qJY69Oz/KR7SKlLt4xK+bOP1jx7A==", "optional": true, "dependencies": { "@graphql-typed-document-node/core": "^3.1.1", @@ -143,34 +143,34 @@ } }, "node_modules/@babel/compat-data": { - "version": "7.20.5", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.20.5.tgz", - "integrity": "sha512-KZXo2t10+/jxmkhNXc7pZTqRvSOIvVv/+lJwHS+B2rErwOyjuVRh60yVpb7liQ1U5t7lLJ1bz+t8tSypUZdm0g==", + "version": "7.20.10", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.20.10.tgz", + "integrity": "sha512-sEnuDPpOJR/fcafHMjpcpGN5M2jbUGUHwmuWKM/YdPzeEDJg8bgmbcWQFUfE32MQjti1koACvoPVsDe8Uq+idg==", "dev": true, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/core": { - "version": "7.20.5", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.20.5.tgz", - "integrity": "sha512-UdOWmk4pNWTm/4DlPUl/Pt4Gz4rcEMb7CY0Y3eJl5Yz1vI8ZJGmHWaVE55LoxRjdpx0z259GE9U5STA9atUinQ==", + "version": "7.20.12", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.20.12.tgz", + "integrity": "sha512-XsMfHovsUYHFMdrIHkZphTN/2Hzzi78R08NuHfDBehym2VsPDL6Zn/JAD/JQdnRvbSsbQc4mVaU1m6JgtTEElg==", "dev": true, "dependencies": { "@ampproject/remapping": "^2.1.0", "@babel/code-frame": "^7.18.6", - "@babel/generator": "^7.20.5", - "@babel/helper-compilation-targets": "^7.20.0", - "@babel/helper-module-transforms": "^7.20.2", - "@babel/helpers": "^7.20.5", - "@babel/parser": "^7.20.5", - "@babel/template": "^7.18.10", - "@babel/traverse": "^7.20.5", - "@babel/types": "^7.20.5", + "@babel/generator": "^7.20.7", + "@babel/helper-compilation-targets": "^7.20.7", + "@babel/helper-module-transforms": "^7.20.11", + "@babel/helpers": "^7.20.7", + "@babel/parser": "^7.20.7", + "@babel/template": "^7.20.7", + "@babel/traverse": "^7.20.12", + "@babel/types": "^7.20.7", "convert-source-map": "^1.7.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", - "json5": "^2.2.1", + "json5": "^2.2.2", "semver": "^6.3.0" }, "engines": { @@ -191,12 +191,12 @@ } }, "node_modules/@babel/generator": { - "version": "7.20.5", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.20.5.tgz", - "integrity": "sha512-jl7JY2Ykn9S0yj4DQP82sYvPU+T3g0HFcWTqDLqiuA9tGRNIj9VfbtXGAYTTkyNEnQk1jkMGOdYka8aG/lulCA==", + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.20.7.tgz", + "integrity": "sha512-7wqMOJq8doJMZmP4ApXTzLxSr7+oO2jroJURrVEp6XShrQUObV8Tq/D0NCcoYg2uHqUrjzO0zwBjoYzelxK+sw==", "dev": true, "dependencies": { - "@babel/types": "^7.20.5", + "@babel/types": "^7.20.7", "@jridgewell/gen-mapping": "^0.3.2", "jsesc": "^2.5.1" }, @@ -205,14 +205,15 @@ } }, "node_modules/@babel/helper-compilation-targets": { - "version": "7.20.0", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.20.0.tgz", - "integrity": "sha512-0jp//vDGp9e8hZzBc6N/KwA5ZK3Wsm/pfm4CrY7vzegkVxc65SgSn6wYOnwHe9Js9HRQ1YTCKLGPzDtaS3RoLQ==", + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.20.7.tgz", + "integrity": "sha512-4tGORmfQcrc+bvrjb5y3dG9Mx1IOZjsHqQVUz7XCNHO+iTmqxWnVg3KRygjGmpRLJGdQSKuvFinbIb0CnZwHAQ==", "dev": true, "dependencies": { - "@babel/compat-data": "^7.20.0", + "@babel/compat-data": "^7.20.5", "@babel/helper-validator-option": "^7.18.6", "browserslist": "^4.21.3", + "lru-cache": "^5.1.1", "semver": "^6.3.0" }, "engines": { @@ -278,9 +279,9 @@ } }, "node_modules/@babel/helper-module-transforms": { - "version": "7.20.2", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.20.2.tgz", - "integrity": "sha512-zvBKyJXRbmK07XhMuujYoJ48B5yvvmM6+wcpv6Ivj4Yg6qO7NOZOSnvZN9CRl1zz1Z4cKf8YejmCMh8clOoOeA==", + "version": "7.20.11", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.20.11.tgz", + "integrity": "sha512-uRy78kN4psmji1s2QtbtcCSaj/LILFDp0f/ymhpQH5QY3nljUZCaNWz9X1dEj/8MBdBEFECs7yRhKn8i7NjZgg==", "dev": true, "dependencies": { "@babel/helper-environment-visitor": "^7.18.9", @@ -288,9 +289,9 @@ "@babel/helper-simple-access": "^7.20.2", "@babel/helper-split-export-declaration": "^7.18.6", "@babel/helper-validator-identifier": "^7.19.1", - "@babel/template": "^7.18.10", - "@babel/traverse": "^7.20.1", - "@babel/types": "^7.20.2" + "@babel/template": "^7.20.7", + "@babel/traverse": "^7.20.10", + "@babel/types": "^7.20.7" }, "engines": { "node": ">=6.9.0" @@ -357,14 +358,14 @@ } }, "node_modules/@babel/helpers": { - "version": "7.20.6", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.20.6.tgz", - "integrity": "sha512-Pf/OjgfgFRW5bApskEz5pvidpim7tEDPlFtKcNRXWmfHGn9IEI2W2flqRQXTFb7gIPTyK++N6rVHuwKut4XK6w==", + "version": "7.20.13", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.20.13.tgz", + "integrity": "sha512-nzJ0DWCL3gB5RCXbUO3KIMMsBY2Eqbx8mBpKGE/02PgyRQFcPQLbkQ1vyy596mZLaP+dAfD+R4ckASzNVmW3jg==", "dev": true, "dependencies": { - "@babel/template": "^7.18.10", - "@babel/traverse": "^7.20.5", - "@babel/types": "^7.20.5" + "@babel/template": "^7.20.7", + "@babel/traverse": "^7.20.13", + "@babel/types": "^7.20.7" }, "engines": { "node": ">=6.9.0" @@ -385,9 +386,9 @@ } }, "node_modules/@babel/parser": { - "version": "7.20.5", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.20.5.tgz", - "integrity": "sha512-r27t/cy/m9uKLXQNWWebeCUHgnAZq0CpG1OwKRxzJMP1vpSU4bSIK2hq+/cp0bQxetkXx38n09rNu8jVkcK/zA==", + "version": "7.20.13", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.20.13.tgz", + "integrity": "sha512-gFDLKMfpiXCsjt4za2JA9oTMn70CeseCehb11kRZgvd7+F67Hih3OHOK24cRrWECJ/ljfPGac6ygXAs/C8kIvw==", "dev": true, "bin": { "parser": "bin/babel-parser.js" @@ -559,9 +560,9 @@ } }, "node_modules/@babel/runtime": { - "version": "7.20.6", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.20.6.tgz", - "integrity": "sha512-Q+8MqP7TiHMWzSfwiJwXCjyf4GYA4Dgw3emg/7xmwsdLJOZUp+nMqcOwOzzYheuM1rhDu8FSj2l0aoMygEuXuA==", + "version": "7.20.13", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.20.13.tgz", + "integrity": "sha512-gt3PKXs0DBoL9xCvOIIZ2NEqAGZqHjAnmVbfQtB620V0uReIQutpel14KcneZuer7UioY8ALKZ7iocavvzTNFA==", "dependencies": { "regenerator-runtime": "^0.13.11" }, @@ -570,33 +571,33 @@ } }, "node_modules/@babel/template": { - "version": "7.18.10", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.18.10.tgz", - "integrity": "sha512-TI+rCtooWHr3QJ27kJxfjutghu44DLnasDMwpDqCXVTal9RLp3RSYNh4NdBrRP2cQAoG9A8juOQl6P6oZG4JxA==", + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.20.7.tgz", + "integrity": "sha512-8SegXApWe6VoNw0r9JHpSteLKTpTiLZ4rMlGIm9JQ18KiCtyQiAMEazujAHrUS5flrcqYZa75ukev3P6QmUwUw==", "dev": true, "dependencies": { "@babel/code-frame": "^7.18.6", - "@babel/parser": "^7.18.10", - "@babel/types": "^7.18.10" + "@babel/parser": "^7.20.7", + "@babel/types": "^7.20.7" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/traverse": { - "version": "7.20.5", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.20.5.tgz", - "integrity": "sha512-WM5ZNN3JITQIq9tFZaw1ojLU3WgWdtkxnhM1AegMS+PvHjkM5IXjmYEGY7yukz5XS4sJyEf2VzWjI8uAavhxBQ==", + "version": "7.20.13", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.20.13.tgz", + "integrity": "sha512-kMJXfF0T6DIS9E8cgdLCSAL+cuCK+YEZHWiLK0SXpTo8YRj5lpJu3CDNKiIBCne4m9hhTIqUg6SYTAI39tAiVQ==", "dev": true, "dependencies": { "@babel/code-frame": "^7.18.6", - "@babel/generator": "^7.20.5", + "@babel/generator": "^7.20.7", "@babel/helper-environment-visitor": "^7.18.9", "@babel/helper-function-name": "^7.19.0", "@babel/helper-hoist-variables": "^7.18.6", "@babel/helper-split-export-declaration": "^7.18.6", - "@babel/parser": "^7.20.5", - "@babel/types": "^7.20.5", + "@babel/parser": "^7.20.13", + "@babel/types": "^7.20.7", "debug": "^4.1.0", "globals": "^11.1.0" }, @@ -605,9 +606,9 @@ } }, "node_modules/@babel/types": { - "version": "7.20.5", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.20.5.tgz", - "integrity": "sha512-c9fst/h2/dcF7H+MJKZ2T0KjEQ8hY/BNnDk/H3XY8C4Aw/eWQXWn/lWntHF9ooUBnGmEvbfGrTgLWc+um0YDUg==", + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.20.7.tgz", + "integrity": "sha512-69OnhBxSSgK0OzTJai4kyPDiKTIe3j+ctaHdIGVbRahTLAT7L3R9oeXHC2aVSuGYt3cVnoAMDmOCgJ2yaiLMvg==", "dev": true, "dependencies": { "@babel/helper-string-parser": "^7.19.4", @@ -625,15 +626,15 @@ "dev": true }, "node_modules/@eslint/eslintrc": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.3.3.tgz", - "integrity": "sha512-uj3pT6Mg+3t39fvLrj8iuCIJ38zKO9FpGtJ4BBJebJhEwjoT+KLVNCcHT5QC9NGRIEi7fZ0ZR8YRb884auB4Lg==", + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.4.1.tgz", + "integrity": "sha512-XXrH9Uarn0stsyldqDYq8r++mROmWRI1xKMXa640Bb//SY1+ECYX6VzT6Lcx5frD0V30XieqJ0oX9I2Xj5aoMA==", "dev": true, "dependencies": { "ajv": "^6.12.4", "debug": "^4.3.2", "espree": "^9.4.0", - "globals": "^13.15.0", + "globals": "^13.19.0", "ignore": "^5.2.0", "import-fresh": "^3.2.1", "js-yaml": "^4.1.0", @@ -648,9 +649,9 @@ } }, "node_modules/@eslint/eslintrc/node_modules/globals": { - "version": "13.18.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.18.0.tgz", - "integrity": "sha512-/mR4KI8Ps2spmoc0Ulu9L7agOF0du1CZNQ3dke8yItYlyKNmGrkONemBbd6V8UTc1Wgcqn21t3WYB7dbRmh6/A==", + "version": "13.19.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.19.0.tgz", + "integrity": "sha512-dkQ957uSRWHw7CFXLUtUHQI3g3aWApYhfNR2O6jn/907riyTYKVBmxYVROkBcY614FSSeSJh7Xm7SrUWCxvJMQ==", "dev": true, "dependencies": { "type-fest": "^0.20.2" @@ -681,11 +682,11 @@ "dev": true }, "node_modules/@graphql-tools/merge": { - "version": "8.3.14", - "resolved": "https://registry.npmjs.org/@graphql-tools/merge/-/merge-8.3.14.tgz", - "integrity": "sha512-zV0MU1DnxJLIB0wpL4N3u21agEiYFsjm6DI130jqHpwF0pR9HkF+Ni65BNfts4zQelP0GjkHltG+opaozAJ1NA==", + "version": "8.3.15", + "resolved": "https://registry.npmjs.org/@graphql-tools/merge/-/merge-8.3.15.tgz", + "integrity": "sha512-hYYOlsqkUlL6oOo7zzuk6hIv7xQzy+x21sgK84d5FWaiWYkLYh9As8myuDd9SD5xovWWQ9m/iRhIOVDEMSyEKA==", "dependencies": { - "@graphql-tools/utils": "9.1.3", + "@graphql-tools/utils": "9.1.4", "tslib": "^2.4.0" }, "peerDependencies": { @@ -693,23 +694,23 @@ } }, "node_modules/@graphql-tools/schema": { - "version": "9.0.12", - "resolved": "https://registry.npmjs.org/@graphql-tools/schema/-/schema-9.0.12.tgz", - "integrity": "sha512-DmezcEltQai0V1y96nwm0Kg11FDS/INEFekD4nnVgzBqawvznWqK6D6bujn+cw6kivoIr3Uq//QmU/hBlBzUlQ==", + "version": "9.0.13", + "resolved": "https://registry.npmjs.org/@graphql-tools/schema/-/schema-9.0.13.tgz", + "integrity": "sha512-guRA3fwAtv+M1Kh930P4ydH9aKJTWscIkhVFcWpj/cnjYYxj88jkEJ15ZNiJX/2breNY+sbVgmlgLKb6aXi/Jg==", "dependencies": { - "@graphql-tools/merge": "8.3.14", - "@graphql-tools/utils": "9.1.3", + "@graphql-tools/merge": "8.3.15", + "@graphql-tools/utils": "9.1.4", "tslib": "^2.4.0", - "value-or-promise": "1.0.11" + "value-or-promise": "1.0.12" }, "peerDependencies": { "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" } }, "node_modules/@graphql-tools/utils": { - "version": "9.1.3", - "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-9.1.3.tgz", - "integrity": "sha512-bbJyKhs6awp1/OmP+WKA1GOyu9UbgZGkhIj5srmiMGLHohEOKMjW784Sk0BZil1w2x95UPu0WHw6/d/HVCACCg==", + "version": "9.1.4", + "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-9.1.4.tgz", + "integrity": "sha512-hgIeLt95h9nQgQuzbbdhuZmh+8WV7RZ/6GbTj6t3IU4Zd2zs9yYJ2jgW/krO587GMOY8zCwrjNOMzD40u3l7Vg==", "dependencies": { "tslib": "^2.4.0" }, @@ -727,9 +728,9 @@ } }, "node_modules/@humanwhocodes/config-array": { - "version": "0.11.7", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.7.tgz", - "integrity": "sha512-kBbPWzN8oVMLb0hOUYXhmxggL/1cJE6ydvjDIGi9EnAGUyA7cLVKQg+d/Dsm+KZwx2czGHrCmMVLiyg8s5JPKw==", + "version": "0.11.8", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.8.tgz", + "integrity": "sha512-UybHIJzJnR5Qc/MsD9Kr+RpO2h+/P1GhOwdiLPXK5TWk5sgTdu88bTD9UP+CKbPPh5Rni1u0GjAdYQLemG8g+g==", "dev": true, "dependencies": { "@humanwhocodes/object-schema": "^1.2.1", @@ -2914,9 +2915,9 @@ ] }, "node_modules/@noble/hashes": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.1.4.tgz", - "integrity": "sha512-+PYsVPrTSqtVjatKt2A/Proukn2Yrz61OBThOCKErc5w2/r1Fh37vbDv0Eah7pyNltrmacjwTvdw3JoR+WE4TA==", + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.1.5.tgz", + "integrity": "sha512-LTMZiiLc+V4v1Yi16TD6aX2gmtKszNye0pQgbaLqkvhIqP7nVsSaJsWloGQjJfJ8offaoP5GtX3yY5swbcJxxQ==", "funding": [ { "type": "individual", @@ -2925,9 +2926,9 @@ ] }, "node_modules/@noble/secp256k1": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/@noble/secp256k1/-/secp256k1-1.7.0.tgz", - "integrity": "sha512-kbacwGSsH/CTout0ZnZWxnW1B+jH/7r/WAAKLBtrRJ/+CUH7lgmQzl3GTrQua3SGKWNSDsS6lmjnDpIJ5Dxyaw==", + "version": "1.7.1", + "resolved": "https://registry.npmjs.org/@noble/secp256k1/-/secp256k1-1.7.1.tgz", + "integrity": "sha512-hOUk6AyBFmqVrv7k5WAw/LpszxVbj9gGN4JRkIX52fdFAj1UA61KXmZDvqVEm+pOyec3+fIeZB02LYa/pWOArw==", "funding": [ { "type": "individual", @@ -3030,6 +3031,15 @@ "node": "^12.13.0 || ^14.15.0 || >=16.0.0" } }, + "node_modules/@npmcli/arborist/node_modules/lru-cache": { + "version": "7.14.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.14.1.tgz", + "integrity": "sha512-ysxwsnTKdAx96aTRdhDOCQfDgbHnt8SK0KY8SEjO0wHinhWOFTESbjVCMPbU1uGXg/ch4lifqx0wfjOawU2+WA==", + "dev": true, + "engines": { + "node": ">=12" + } + }, "node_modules/@npmcli/arborist/node_modules/npm-package-arg": { "version": "9.1.2", "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-9.1.2.tgz", @@ -3078,6 +3088,15 @@ "node": "^12.13.0 || ^14.15.0 || >=16.0.0" } }, + "node_modules/@npmcli/git/node_modules/lru-cache": { + "version": "7.14.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.14.1.tgz", + "integrity": "sha512-ysxwsnTKdAx96aTRdhDOCQfDgbHnt8SK0KY8SEjO0wHinhWOFTESbjVCMPbU1uGXg/ch4lifqx0wfjOawU2+WA==", + "dev": true, + "engines": { + "node": ">=12" + } + }, "node_modules/@npmcli/installed-package-contents": { "version": "1.0.7", "resolved": "https://registry.npmjs.org/@npmcli/installed-package-contents/-/installed-package-contents-1.0.7.tgz", @@ -3119,9 +3138,9 @@ } }, "node_modules/@npmcli/map-workspaces/node_modules/glob": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-8.0.3.tgz", - "integrity": "sha512-ull455NHSHI/Y1FqGaaYFaLGkNMMJbavMrEGFXG/PGrg6y7sutWHUHrz6gy6WEBH6akM1M414dWKCNs+IhKdiQ==", + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz", + "integrity": "sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==", "dev": true, "dependencies": { "fs.realpath": "^1.0.0", @@ -3138,9 +3157,9 @@ } }, "node_modules/@npmcli/map-workspaces/node_modules/minimatch": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.1.tgz", - "integrity": "sha512-362NP+zlprccbEt/SkxKfRMHnNY85V74mVnpUpNyr3F35covl09Kec7/sEFLt3RA4oXmewtoaanoIf67SE5Y5g==", + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", + "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", "dev": true, "dependencies": { "brace-expansion": "^2.0.1" @@ -3234,18 +3253,18 @@ } }, "node_modules/@nrwl/cli": { - "version": "15.3.0", - "resolved": "https://registry.npmjs.org/@nrwl/cli/-/cli-15.3.0.tgz", - "integrity": "sha512-WAki2+puBp6qel/VAxdQmr/L/sLyw8K6bynYNmMl4eIlR5hjefrUChPzUiJDAS9/CUYQNOyva2VV5wofzdv95w==", + "version": "15.5.3", + "resolved": "https://registry.npmjs.org/@nrwl/cli/-/cli-15.5.3.tgz", + "integrity": "sha512-NWf9CWswvdYM6YzXuweaZPAZ2erMtQrrHZdgFbUGeojZBZ+b4TCGzLWNodZj4yQOa/eTwlyPMYO2LEw9CoapDQ==", "dev": true, "dependencies": { - "nx": "15.3.0" + "nx": "15.5.3" } }, "node_modules/@nrwl/devkit": { - "version": "15.3.0", - "resolved": "https://registry.npmjs.org/@nrwl/devkit/-/devkit-15.3.0.tgz", - "integrity": "sha512-1O9QLB/eYS6ddw4MZnV4yj4CEqLIbpleZZiG/9w1TaiVO/jfNfXVaxc8EA87XSzMpk2W+/4Qggmabt6gAQaabA==", + "version": "15.5.3", + "resolved": "https://registry.npmjs.org/@nrwl/devkit/-/devkit-15.5.3.tgz", + "integrity": "sha512-GGNLLGXDGWflrpaLimnE6hChfZfq3+XWZ0LJWL0IuCnchngPbNzuyh8S8KPgNKKgq4Nv0hglWefIwMg2UhHysA==", "dev": true, "dependencies": { "@phenomnomnominal/tsquery": "4.1.1", @@ -3285,41 +3304,47 @@ "node": ">=10" } }, + "node_modules/@nrwl/devkit/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, "node_modules/@nrwl/tao": { - "version": "15.3.0", - "resolved": "https://registry.npmjs.org/@nrwl/tao/-/tao-15.3.0.tgz", - "integrity": "sha512-alyzKKSgfgPwQ/FUozvk43VGOZHyNMiSM6Udl49ZaQwT77GXRFkrOu21odW6dciWPd3iUOUjfJISNqrEJmxvpw==", + "version": "15.5.3", + "resolved": "https://registry.npmjs.org/@nrwl/tao/-/tao-15.5.3.tgz", + "integrity": "sha512-vgPLIW9IoBfQ4IkHRT5RC4LqNwFBK5jmHYmFIRgbIeFRudFBbnpmOaKRME0OwN7qJ6964PVVbzahAPvYVD02xw==", "dev": true, "dependencies": { - "nx": "15.3.0" + "nx": "15.5.3" }, "bin": { "tao": "index.js" } }, "node_modules/@octokit/auth-token": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/@octokit/auth-token/-/auth-token-3.0.2.tgz", - "integrity": "sha512-pq7CwIMV1kmzkFTimdwjAINCXKTajZErLB4wMLYapR2nuB/Jpr66+05wOTZMSCBXP6n4DdDWT2W19Bm17vU69Q==", + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@octokit/auth-token/-/auth-token-3.0.3.tgz", + "integrity": "sha512-/aFM2M4HVDBT/jjDBa84sJniv1t9Gm/rLkalaz9htOm+L+8JMj1k9w0CkUdcxNyNxZPlTxKPVko+m1VlM58ZVA==", "dev": true, "dependencies": { - "@octokit/types": "^8.0.0" + "@octokit/types": "^9.0.0" }, "engines": { "node": ">= 14" } }, "node_modules/@octokit/core": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/@octokit/core/-/core-4.1.0.tgz", - "integrity": "sha512-Czz/59VefU+kKDy+ZfDwtOIYIkFjExOKf+HA92aiTZJ6EfWpFzYQWw0l54ji8bVmyhc+mGaLUbSUmXazG7z5OQ==", + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/@octokit/core/-/core-4.2.0.tgz", + "integrity": "sha512-AgvDRUg3COpR82P7PBdGZF/NNqGmtMq2NiPqeSsDIeCfYFOZ9gddqWNQHnFdEUf+YwOj4aZYmJnlPp7OXmDIDg==", "dev": true, "dependencies": { "@octokit/auth-token": "^3.0.0", "@octokit/graphql": "^5.0.0", "@octokit/request": "^6.0.0", "@octokit/request-error": "^3.0.0", - "@octokit/types": "^8.0.0", + "@octokit/types": "^9.0.0", "before-after-hook": "^2.2.0", "universal-user-agent": "^6.0.0" }, @@ -3328,12 +3353,12 @@ } }, "node_modules/@octokit/endpoint": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/@octokit/endpoint/-/endpoint-7.0.3.tgz", - "integrity": "sha512-57gRlb28bwTsdNXq+O3JTQ7ERmBTuik9+LelgcLIVfYwf235VHbN9QNo4kXExtp/h8T423cR5iJThKtFYxC7Lw==", + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/@octokit/endpoint/-/endpoint-7.0.4.tgz", + "integrity": "sha512-hXJP43VT2IrUxBCNIahta8qawpIzLvCjHLCuDDsdIPbd6+jPwsc3KGl/kdQ37mLd+sdiJm6c9qKI7k5CjE0Z9A==", "dev": true, "dependencies": { - "@octokit/types": "^8.0.0", + "@octokit/types": "^9.0.0", "is-plain-object": "^5.0.0", "universal-user-agent": "^6.0.0" }, @@ -3342,13 +3367,13 @@ } }, "node_modules/@octokit/graphql": { - "version": "5.0.4", - "resolved": "https://registry.npmjs.org/@octokit/graphql/-/graphql-5.0.4.tgz", - "integrity": "sha512-amO1M5QUQgYQo09aStR/XO7KAl13xpigcy/kI8/N1PnZYSS69fgte+xA4+c2DISKqUZfsh0wwjc2FaCt99L41A==", + "version": "5.0.5", + "resolved": "https://registry.npmjs.org/@octokit/graphql/-/graphql-5.0.5.tgz", + "integrity": "sha512-Qwfvh3xdqKtIznjX9lz2D458r7dJPP8l6r4GQkIdWQouZwHQK0mVT88uwiU2bdTU2OtT1uOlKpRciUWldpG0yQ==", "dev": true, "dependencies": { "@octokit/request": "^6.0.0", - "@octokit/types": "^8.0.0", + "@octokit/types": "^9.0.0", "universal-user-agent": "^6.0.0" }, "engines": { @@ -3356,9 +3381,9 @@ } }, "node_modules/@octokit/openapi-types": { - "version": "14.0.0", - "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-14.0.0.tgz", - "integrity": "sha512-HNWisMYlR8VCnNurDU6os2ikx0s0VyEjDYHNS/h4cgb8DeOxQ0n72HyinUtdDVxJhFy3FWLGl0DJhfEWk3P5Iw==", + "version": "16.0.0", + "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-16.0.0.tgz", + "integrity": "sha512-JbFWOqTJVLHZSUUoF4FzAZKYtqdxWu9Z5m2QQnOyEa04fOFljvyh7D3GYKbfuaSWisqehImiVIMG4eyJeP5VEA==", "dev": true }, "node_modules/@octokit/plugin-enterprise-rest": { @@ -3368,12 +3393,12 @@ "dev": true }, "node_modules/@octokit/plugin-paginate-rest": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-5.0.1.tgz", - "integrity": "sha512-7A+rEkS70pH36Z6JivSlR7Zqepz3KVucEFVDnSrgHXzG7WLAzYwcHZbKdfTXHwuTHbkT1vKvz7dHl1+HNf6Qyw==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-6.0.0.tgz", + "integrity": "sha512-Sq5VU1PfT6/JyuXPyt04KZNVsFOSBaYOAq2QRZUwzVlI10KFvcbUo8lR258AAQL1Et60b0WuVik+zOWKLuDZxw==", "dev": true, "dependencies": { - "@octokit/types": "^8.0.0" + "@octokit/types": "^9.0.0" }, "engines": { "node": ">= 14" @@ -3392,12 +3417,12 @@ } }, "node_modules/@octokit/plugin-rest-endpoint-methods": { - "version": "6.7.0", - "resolved": "https://registry.npmjs.org/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-6.7.0.tgz", - "integrity": "sha512-orxQ0fAHA7IpYhG2flD2AygztPlGYNAdlzYz8yrD8NDgelPfOYoRPROfEyIe035PlxvbYrgkfUZIhSBKju/Cvw==", + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-7.0.1.tgz", + "integrity": "sha512-pnCaLwZBudK5xCdrR823xHGNgqOzRnJ/mpC/76YPpNP7DybdsJtP7mdOwh+wYZxK5jqeQuhu59ogMI4NRlBUvA==", "dev": true, "dependencies": { - "@octokit/types": "^8.0.0", + "@octokit/types": "^9.0.0", "deprecation": "^2.3.1" }, "engines": { @@ -3408,14 +3433,14 @@ } }, "node_modules/@octokit/request": { - "version": "6.2.2", - "resolved": "https://registry.npmjs.org/@octokit/request/-/request-6.2.2.tgz", - "integrity": "sha512-6VDqgj0HMc2FUX2awIs+sM6OwLgwHvAi4KCK3mT2H2IKRt6oH9d0fej5LluF5mck1lRR/rFWN0YIDSYXYSylbw==", + "version": "6.2.3", + "resolved": "https://registry.npmjs.org/@octokit/request/-/request-6.2.3.tgz", + "integrity": "sha512-TNAodj5yNzrrZ/VxP+H5HiYaZep0H3GU0O7PaF+fhDrt8FPrnkei9Aal/txsN/1P7V3CPiThG0tIvpPDYUsyAA==", "dev": true, "dependencies": { "@octokit/endpoint": "^7.0.0", "@octokit/request-error": "^3.0.0", - "@octokit/types": "^8.0.0", + "@octokit/types": "^9.0.0", "is-plain-object": "^5.0.0", "node-fetch": "^2.6.7", "universal-user-agent": "^6.0.0" @@ -3425,12 +3450,12 @@ } }, "node_modules/@octokit/request-error": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/@octokit/request-error/-/request-error-3.0.2.tgz", - "integrity": "sha512-WMNOFYrSaX8zXWoJg9u/pKgWPo94JXilMLb2VManNOby9EZxrQaBe/QSC4a1TzpAlpxofg2X/jMnCyZgL6y7eg==", + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@octokit/request-error/-/request-error-3.0.3.tgz", + "integrity": "sha512-crqw3V5Iy2uOU5Np+8M/YexTlT8zxCfI+qu+LxUB7SZpje4Qmx3mub5DfEKSO8Ylyk0aogi6TYdf6kxzh2BguQ==", "dev": true, "dependencies": { - "@octokit/types": "^8.0.0", + "@octokit/types": "^9.0.0", "deprecation": "^2.0.0", "once": "^1.4.0" }, @@ -3439,27 +3464,27 @@ } }, "node_modules/@octokit/rest": { - "version": "19.0.5", - "resolved": "https://registry.npmjs.org/@octokit/rest/-/rest-19.0.5.tgz", - "integrity": "sha512-+4qdrUFq2lk7Va+Qff3ofREQWGBeoTKNqlJO+FGjFP35ZahP+nBenhZiGdu8USSgmq4Ky3IJ/i4u0xbLqHaeow==", + "version": "19.0.7", + "resolved": "https://registry.npmjs.org/@octokit/rest/-/rest-19.0.7.tgz", + "integrity": "sha512-HRtSfjrWmWVNp2uAkEpQnuGMJsu/+dBr47dRc5QVgsCbnIc1+GFEaoKBWkYG+zjrsHpSqcAElMio+n10c0b5JA==", "dev": true, "dependencies": { "@octokit/core": "^4.1.0", - "@octokit/plugin-paginate-rest": "^5.0.0", + "@octokit/plugin-paginate-rest": "^6.0.0", "@octokit/plugin-request-log": "^1.0.4", - "@octokit/plugin-rest-endpoint-methods": "^6.7.0" + "@octokit/plugin-rest-endpoint-methods": "^7.0.0" }, "engines": { "node": ">= 14" } }, "node_modules/@octokit/types": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/@octokit/types/-/types-8.0.0.tgz", - "integrity": "sha512-65/TPpOJP1i3K4lBJMnWqPUJ6zuOtzhtagDvydAWbEXpbFYA0oMKKyLb95NFZZP0lSh/4b6K+DQlzvYQJQQePg==", + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/@octokit/types/-/types-9.0.0.tgz", + "integrity": "sha512-LUewfj94xCMH2rbD5YJ+6AQ4AVjFYTgpp6rboWM5T7N3IsIF65SBEOVcYMGAEzO/kKNiNaW4LoWtoThOhH06gw==", "dev": true, "dependencies": { - "@octokit/openapi-types": "^14.0.0" + "@octokit/openapi-types": "^16.0.0" } }, "node_modules/@parcel/watcher": { @@ -3562,15 +3587,16 @@ } }, "node_modules/@solana/web3.js": { - "version": "1.70.1", - "resolved": "https://registry.npmjs.org/@solana/web3.js/-/web3.js-1.70.1.tgz", - "integrity": "sha512-AnaqCF1cJ3w7d0yhvLGAKAcRI+n5o+ursQihhoTe4cUh8/9d4gbT73SoHYElS7e67OtAgLmSfbcC5hcOAgdvnQ==", + "version": "1.73.0", + "resolved": "https://registry.npmjs.org/@solana/web3.js/-/web3.js-1.73.0.tgz", + "integrity": "sha512-YrgX3Py7ylh8NYkbanoINUPCj//bWUjYZ5/WPy9nQ9SK3Cl7QWCR+NmbDjmC/fTspZGR+VO9LTQslM++jr5PRw==", "dependencies": { "@babel/runtime": "^7.12.5", "@noble/ed25519": "^1.7.0", "@noble/hashes": "^1.1.2", "@noble/secp256k1": "^1.6.3", "@solana/buffer-layout": "^4.0.0", + "agentkeepalive": "^4.2.1", "bigint-buffer": "^1.1.5", "bn.js": "^5.0.0", "borsh": "^0.7.0", @@ -3596,19 +3622,19 @@ } }, "node_modules/@types/abstract-leveldown": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@types/abstract-leveldown/-/abstract-leveldown-7.2.0.tgz", - "integrity": "sha512-q5veSX6zjUy/DlDhR4Y4cU0k2Ar+DT2LUraP00T19WLmTO6Se1djepCCaqU6nQrwcJ5Hyo/CWqxTzrrFg8eqbQ==", + "version": "7.2.1", + "resolved": "https://registry.npmjs.org/@types/abstract-leveldown/-/abstract-leveldown-7.2.1.tgz", + "integrity": "sha512-YK8irIC+eMrrmtGx0H4ISn9GgzLd9dojZWJaMbjp1YHLl2VqqNFBNrL5Q3KjGf4VE3sf/4hmq6EhQZ7kZp1NoQ==", "dev": true }, "node_modules/@types/babel__core": { - "version": "7.1.20", - "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.1.20.tgz", - "integrity": "sha512-PVb6Bg2QuscZ30FvOU7z4guG6c926D9YRvOxEaelzndpMsvP+YM74Q/dAFASpg2l6+XLalxSGxcq/lrgYWZtyQ==", + "version": "7.20.0", + "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.0.tgz", + "integrity": "sha512-+n8dL/9GWblDO0iU6eZAwEIJVr5DWigtle+Q6HLOrh/pdbXOhOtqzq8VPPE2zvNJzSKY4vH/z3iT3tn0A3ypiQ==", "dev": true, "dependencies": { - "@babel/parser": "^7.1.0", - "@babel/types": "^7.0.0", + "@babel/parser": "^7.20.7", + "@babel/types": "^7.20.7", "@types/babel__generator": "*", "@types/babel__template": "*", "@types/babel__traverse": "*" @@ -3706,13 +3732,13 @@ } }, "node_modules/@types/express": { - "version": "4.17.14", - "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.14.tgz", - "integrity": "sha512-TEbt+vaPFQ+xpxFLFssxUDXj5cWCxZJjIcB7Yg0k0GMHGtgtQgpvx/MUQUeAkNbA9AAGrwkAsoeItdTgS7FMyg==", + "version": "4.17.15", + "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.15.tgz", + "integrity": "sha512-Yv0k4bXGOH+8a+7bELd2PqHQsuiANB+A8a4gnQrkRWzrkKlb6KHaVvyXhqs04sVW/OWlbPyYxRgYlIXLfrufMQ==", "dev": true, "dependencies": { "@types/body-parser": "*", - "@types/express-serve-static-core": "^4.17.18", + "@types/express-serve-static-core": "^4.17.31", "@types/qs": "*", "@types/serve-static": "*" } @@ -3727,9 +3753,9 @@ } }, "node_modules/@types/express-serve-static-core": { - "version": "4.17.31", - "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.31.tgz", - "integrity": "sha512-DxMhY+NAsTwMMFHBTtJFNp5qiHKJ7TeqOo23zVEM9alT1Ml27Q3xcTH0xwxn7Q0BbMcVEJOs/7aQtUWupUQN3Q==", + "version": "4.17.32", + "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.32.tgz", + "integrity": "sha512-aI5h/VOkxOF2Z1saPy0Zsxs5avets/iaiAJYznQFm5By/pamU31xWKL//epiF4OfUA2qTOc9PV6tCUjhO8wlZA==", "dev": true, "dependencies": { "@types/node": "*", @@ -3738,9 +3764,9 @@ } }, "node_modules/@types/graceful-fs": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.5.tgz", - "integrity": "sha512-anKkLmZZ+xm4p8JWBf4hElkM4XR+EZeA2M9BAkkTldmcyDY4mbdIJnRghDJH3Ov5ooY7/UAoENtmdMSkaAd7Cw==", + "version": "4.1.6", + "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.6.tgz", + "integrity": "sha512-Sig0SNORX9fdW+bQuTEovKj3uHcUL6LQKbCrrqb1X7J6/ReAbhCXRAhc+SMejhLELFj2QcyuxmUooZ4bt5ReSw==", "dev": true, "dependencies": { "@types/node": "*" @@ -3814,9 +3840,9 @@ "dev": true }, "node_modules/@types/memdown": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@types/memdown/-/memdown-3.0.0.tgz", - "integrity": "sha512-3VlN94b29j7/9XPGfy1kTPmyA5YfFiC0miQRpOCbCJOALy2ejM2IzgDB7fIBTYyf2isr1r8h3qbZmT/1RsCP9Q==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@types/memdown/-/memdown-3.0.1.tgz", + "integrity": "sha512-Nk5PgT+NS5NvKFu7NEeE1hkiiIOM3PF7ecUgafwUOjZGNyUQbpIxLgSfwdfxHmeHD/FmcDy3x8y5YWk5t0M2oA==", "dev": true, "dependencies": { "@types/abstract-leveldown": "*" @@ -3858,9 +3884,9 @@ "dev": true }, "node_modules/@types/prettier": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.7.1.tgz", - "integrity": "sha512-ri0UmynRRvZiiUJdiz38MmIblKK+oH30MztdBVR95dv/Ubw6neWSb8u1XpRb72L4qsZOhz+L+z9JD40SJmfWow==", + "version": "2.7.2", + "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.7.2.tgz", + "integrity": "sha512-KufADq8uQqo1pYKVIYzfKbJfBAc0sOeXqGbFaSpv8MRmC/zXgowNZmFcbngndGk922QDmOASEXUZCaY48gs4cg==", "dev": true }, "node_modules/@types/qs": { @@ -3912,9 +3938,9 @@ } }, "node_modules/@types/yargs": { - "version": "17.0.17", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.17.tgz", - "integrity": "sha512-72bWxFKTK6uwWJAVT+3rF6Jo6RTojiJ27FQo8Rf60AL+VZbzoVPnMFhKsUnbjR8A3BTCYQ7Mv3hnl8T0A+CX9g==", + "version": "17.0.20", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.20.tgz", + "integrity": "sha512-eknWrTHofQuPk2iuqDm1waA7V6xPlbgBoaaXEgYkClhLOnB0TtbW+srJaOToAgawPxPlHQzwypFA2bhZaUGP5A==", "dev": true, "dependencies": { "@types/yargs-parser": "*" @@ -3927,14 +3953,14 @@ "dev": true }, "node_modules/@typescript-eslint/eslint-plugin": { - "version": "5.46.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.46.0.tgz", - "integrity": "sha512-QrZqaIOzJAjv0sfjY4EjbXUi3ZOFpKfzntx22gPGr9pmFcTjcFw/1sS1LJhEubfAGwuLjNrPV0rH+D1/XZFy7Q==", + "version": "5.48.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.48.2.tgz", + "integrity": "sha512-sR0Gja9Ky1teIq4qJOl0nC+Tk64/uYdX+mi+5iB//MH8gwyx8e3SOyhEzeLZEFEEfCaLf8KJq+Bd/6je1t+CAg==", "dev": true, "dependencies": { - "@typescript-eslint/scope-manager": "5.46.0", - "@typescript-eslint/type-utils": "5.46.0", - "@typescript-eslint/utils": "5.46.0", + "@typescript-eslint/scope-manager": "5.48.2", + "@typescript-eslint/type-utils": "5.48.2", + "@typescript-eslint/utils": "5.48.2", "debug": "^4.3.4", "ignore": "^5.2.0", "natural-compare-lite": "^1.4.0", @@ -3960,14 +3986,14 @@ } }, "node_modules/@typescript-eslint/parser": { - "version": "5.46.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.46.0.tgz", - "integrity": "sha512-joNO6zMGUZg+C73vwrKXCd8usnsmOYmgW/w5ZW0pG0RGvqeznjtGDk61EqqTpNrFLUYBW2RSBFrxdAZMqA4OZA==", + "version": "5.48.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.48.2.tgz", + "integrity": "sha512-38zMsKsG2sIuM5Oi/olurGwYJXzmtdsHhn5mI/pQogP+BjYVkK5iRazCQ8RGS0V+YLk282uWElN70zAAUmaYHw==", "dev": true, "dependencies": { - "@typescript-eslint/scope-manager": "5.46.0", - "@typescript-eslint/types": "5.46.0", - "@typescript-eslint/typescript-estree": "5.46.0", + "@typescript-eslint/scope-manager": "5.48.2", + "@typescript-eslint/types": "5.48.2", + "@typescript-eslint/typescript-estree": "5.48.2", "debug": "^4.3.4" }, "engines": { @@ -3987,13 +4013,13 @@ } }, "node_modules/@typescript-eslint/scope-manager": { - "version": "5.46.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.46.0.tgz", - "integrity": "sha512-7wWBq9d/GbPiIM6SqPK9tfynNxVbfpihoY5cSFMer19OYUA3l4powA2uv0AV2eAZV6KoAh6lkzxv4PoxOLh1oA==", + "version": "5.48.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.48.2.tgz", + "integrity": "sha512-zEUFfonQid5KRDKoI3O+uP1GnrFd4tIHlvs+sTJXiWuypUWMuDaottkJuR612wQfOkjYbsaskSIURV9xo4f+Fw==", "dev": true, "dependencies": { - "@typescript-eslint/types": "5.46.0", - "@typescript-eslint/visitor-keys": "5.46.0" + "@typescript-eslint/types": "5.48.2", + "@typescript-eslint/visitor-keys": "5.48.2" }, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" @@ -4004,13 +4030,13 @@ } }, "node_modules/@typescript-eslint/type-utils": { - "version": "5.46.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.46.0.tgz", - "integrity": "sha512-dwv4nimVIAsVS2dTA0MekkWaRnoYNXY26dKz8AN5W3cBFYwYGFQEqm/cG+TOoooKlncJS4RTbFKgcFY/pOiBCg==", + "version": "5.48.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.48.2.tgz", + "integrity": "sha512-QVWx7J5sPMRiOMJp5dYshPxABRoZV1xbRirqSk8yuIIsu0nvMTZesKErEA3Oix1k+uvsk8Cs8TGJ6kQ0ndAcew==", "dev": true, "dependencies": { - "@typescript-eslint/typescript-estree": "5.46.0", - "@typescript-eslint/utils": "5.46.0", + "@typescript-eslint/typescript-estree": "5.48.2", + "@typescript-eslint/utils": "5.48.2", "debug": "^4.3.4", "tsutils": "^3.21.0" }, @@ -4031,9 +4057,9 @@ } }, "node_modules/@typescript-eslint/types": { - "version": "5.46.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.46.0.tgz", - "integrity": "sha512-wHWgQHFB+qh6bu0IAPAJCdeCdI0wwzZnnWThlmHNY01XJ9Z97oKqKOzWYpR2I83QmshhQJl6LDM9TqMiMwJBTw==", + "version": "5.48.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.48.2.tgz", + "integrity": "sha512-hE7dA77xxu7ByBc6KCzikgfRyBCTst6dZQpwaTy25iMYOnbNljDT4hjhrGEJJ0QoMjrfqrx+j1l1B9/LtKeuqA==", "dev": true, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" @@ -4044,13 +4070,13 @@ } }, "node_modules/@typescript-eslint/typescript-estree": { - "version": "5.46.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.46.0.tgz", - "integrity": "sha512-kDLNn/tQP+Yp8Ro2dUpyyVV0Ksn2rmpPpB0/3MO874RNmXtypMwSeazjEN/Q6CTp8D7ExXAAekPEcCEB/vtJkw==", + "version": "5.48.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.48.2.tgz", + "integrity": "sha512-bibvD3z6ilnoVxUBFEgkO0k0aFvUc4Cttt0dAreEr+nrAHhWzkO83PEVVuieK3DqcgL6VAK5dkzK8XUVja5Zcg==", "dev": true, "dependencies": { - "@typescript-eslint/types": "5.46.0", - "@typescript-eslint/visitor-keys": "5.46.0", + "@typescript-eslint/types": "5.48.2", + "@typescript-eslint/visitor-keys": "5.48.2", "debug": "^4.3.4", "globby": "^11.1.0", "is-glob": "^4.0.3", @@ -4071,16 +4097,16 @@ } }, "node_modules/@typescript-eslint/utils": { - "version": "5.46.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.46.0.tgz", - "integrity": "sha512-4O+Ps1CRDw+D+R40JYh5GlKLQERXRKW5yIQoNDpmXPJ+C7kaPF9R7GWl+PxGgXjB3PQCqsaaZUpZ9dG4U6DO7g==", + "version": "5.48.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.48.2.tgz", + "integrity": "sha512-2h18c0d7jgkw6tdKTlNaM7wyopbLRBiit8oAxoP89YnuBOzCZ8g8aBCaCqq7h208qUTroL7Whgzam7UY3HVLow==", "dev": true, "dependencies": { "@types/json-schema": "^7.0.9", "@types/semver": "^7.3.12", - "@typescript-eslint/scope-manager": "5.46.0", - "@typescript-eslint/types": "5.46.0", - "@typescript-eslint/typescript-estree": "5.46.0", + "@typescript-eslint/scope-manager": "5.48.2", + "@typescript-eslint/types": "5.48.2", + "@typescript-eslint/typescript-estree": "5.48.2", "eslint-scope": "^5.1.1", "eslint-utils": "^3.0.0", "semver": "^7.3.7" @@ -4097,12 +4123,12 @@ } }, "node_modules/@typescript-eslint/visitor-keys": { - "version": "5.46.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.46.0.tgz", - "integrity": "sha512-E13gBoIXmaNhwjipuvQg1ByqSAu/GbEpP/qzFihugJ+MomtoJtFAJG/+2DRPByf57B863m0/q7Zt16V9ohhANw==", + "version": "5.48.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.48.2.tgz", + "integrity": "sha512-z9njZLSkwmjFWUelGEwEbdf4NwKvfHxvGC0OcGN1Hp/XNDIcJ7D5DpPNPv6x6/mFvc1tQHsaWmpD/a4gOvvCJQ==", "dev": true, "dependencies": { - "@typescript-eslint/types": "5.46.0", + "@typescript-eslint/types": "5.48.2", "eslint-visitor-keys": "^3.3.0" }, "engines": { @@ -4156,9 +4182,9 @@ "dev": true }, "node_modules/@yarnpkg/parsers": { - "version": "3.0.0-rc.32", - "resolved": "https://registry.npmjs.org/@yarnpkg/parsers/-/parsers-3.0.0-rc.32.tgz", - "integrity": "sha512-Sz2g88b3iAu2jpMnhtps2bRX2GAAOvanOxGcVi+o7ybGjLetxK23o2cHskXKypvXxtZTsJegel5pUWSPpYphww==", + "version": "3.0.0-rc.36", + "resolved": "https://registry.npmjs.org/@yarnpkg/parsers/-/parsers-3.0.0-rc.36.tgz", + "integrity": "sha512-PvTlgUr7WO2qDnph8tVdItbJlo9hEcGSVd8+ppn/tvcn8XZUaD1z4EgvMEZcJYZi3LmHJGzSgVZzcFE+zQiz8A==", "dev": true, "dependencies": { "js-yaml": "^3.10.0", @@ -4250,9 +4276,9 @@ } }, "node_modules/acorn": { - "version": "8.8.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.1.tgz", - "integrity": "sha512-7zFpHzhnqYKrkYdUjF1HI1bzd0VygEGX8lFk4k5zVMqHEoES+P+7TKI+EvLO9WVMJ8eekdO0aDEK044xTXwPPA==", + "version": "8.8.2", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.2.tgz", + "integrity": "sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==", "dev": true, "bin": { "acorn": "bin/acorn" @@ -4292,7 +4318,6 @@ "version": "4.2.1", "resolved": "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-4.2.1.tgz", "integrity": "sha512-Zn4cw2NEqd+9fiSVWMscnjyQ1a8Yfoc5oBajLeo5w+YBHgDUcEBY2hS4YpTz6iN5f/2zQiktcuM6tS8x1p9dpA==", - "dev": true, "dependencies": { "debug": "^4.1.0", "depd": "^1.1.2", @@ -4499,9 +4524,9 @@ } }, "node_modules/axios": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/axios/-/axios-1.2.1.tgz", - "integrity": "sha512-I88cFiGu9ryt/tfVEi4kX2SITsvDddTajXTOFmt2uK1ZVA8LytjtdeyefdQWEf5PU8w+4SSJDoYnggflB5tW4A==", + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.2.3.tgz", + "integrity": "sha512-pdDkMYJeuXLZ6Xj/Q5J3Phpe+jbGdsSzlQaFVkMQzRUL05+6+tetX8TV3p4HrU4kzuO9bt+io/yGQxuyxA/xcw==", "dev": true, "dependencies": { "follow-redirects": "^1.15.0", @@ -4776,15 +4801,6 @@ "node": "^12.13.0 || ^14.15.0 || >=16.0.0" } }, - "node_modules/binary-extensions": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", - "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", - "dev": true, - "engines": { - "node": ">=8" - } - }, "node_modules/bindings": { "version": "1.5.0", "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz", @@ -5021,9 +5037,9 @@ } }, "node_modules/cacache/node_modules/glob": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-8.0.3.tgz", - "integrity": "sha512-ull455NHSHI/Y1FqGaaYFaLGkNMMJbavMrEGFXG/PGrg6y7sutWHUHrz6gy6WEBH6akM1M414dWKCNs+IhKdiQ==", + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz", + "integrity": "sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==", "dev": true, "dependencies": { "fs.realpath": "^1.0.0", @@ -5039,10 +5055,19 @@ "url": "https://github.com/sponsors/isaacs" } }, + "node_modules/cacache/node_modules/lru-cache": { + "version": "7.14.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.14.1.tgz", + "integrity": "sha512-ysxwsnTKdAx96aTRdhDOCQfDgbHnt8SK0KY8SEjO0wHinhWOFTESbjVCMPbU1uGXg/ch4lifqx0wfjOawU2+WA==", + "dev": true, + "engines": { + "node": ">=12" + } + }, "node_modules/cacache/node_modules/minimatch": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.1.tgz", - "integrity": "sha512-362NP+zlprccbEt/SkxKfRMHnNY85V74mVnpUpNyr3F35covl09Kec7/sEFLt3RA4oXmewtoaanoIf67SE5Y5g==", + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", + "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", "dev": true, "dependencies": { "brace-expansion": "^2.0.1" @@ -5100,9 +5125,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001439", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001439.tgz", - "integrity": "sha512-1MgUzEkoMO6gKfXflStpYgZDlFM7M/ck/bgfVCACO5vnAf0fXoNVHdWtqGU+MYca+4bL9Z5bpOVmR33cWW9G2A==", + "version": "1.0.30001447", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001447.tgz", + "integrity": "sha512-bdKU1BQDPeEXe9A39xJnGtY0uRq/z5osrnXUw0TcK+EYno45Y+U7QU9HhHEyzvMDffpYadFXi3idnSNkcwLkTw==", "dev": true, "funding": [ { @@ -5153,45 +5178,6 @@ "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==", "dev": true }, - "node_modules/chokidar": { - "version": "3.5.3", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", - "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", - "dev": true, - "funding": [ - { - "type": "individual", - "url": "https://paulmillr.com/funding/" - } - ], - "dependencies": { - "anymatch": "~3.1.2", - "braces": "~3.0.2", - "glob-parent": "~5.1.2", - "is-binary-path": "~2.1.0", - "is-glob": "~4.0.1", - "normalize-path": "~3.0.0", - "readdirp": "~3.6.0" - }, - "engines": { - "node": ">= 8.10.0" - }, - "optionalDependencies": { - "fsevents": "~2.3.2" - } - }, - "node_modules/chokidar/node_modules/glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dev": true, - "dependencies": { - "is-glob": "^4.0.1" - }, - "engines": { - "node": ">= 6" - } - }, "node_modules/chownr": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", @@ -5202,10 +5188,16 @@ } }, "node_modules/ci-info": { - "version": "3.7.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.7.0.tgz", - "integrity": "sha512-2CpRNYmImPx+RXKLq6jko/L07phmS9I02TyqkcNU20GCF/GgaWvc58hPtjxDX8lPpkdwc9sNh72V9k00S7ezog==", + "version": "3.7.1", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.7.1.tgz", + "integrity": "sha512-4jYS4MOAaCIStSRwiuxc4B8MYhIe676yO1sYGzARnjXkWpmzZMMYxY6zu8WYWDhSuth5zhrQ1rhNSibyyvv4/w==", "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/sibiraj-s" + } + ], "engines": { "node": ">=8" } @@ -5697,9 +5689,9 @@ "dev": true }, "node_modules/cookiejar": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/cookiejar/-/cookiejar-2.1.3.tgz", - "integrity": "sha512-JxbCBUdrfr6AQjOXrxoTvAMJO4HBTUIlBzslcJPAz+/KT8yk53fXun51u+RenNYvad/+Vc2DIz5o9UxlCDymFQ==", + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/cookiejar/-/cookiejar-2.1.4.tgz", + "integrity": "sha512-LDx6oHrK+PhzLKJU9j5S7/Y3jM/mUHvD/DeI1WQmJn652iPC5Y4TBzC9l+5OMOXlyTTA+SmVUPm0HQUwpD5Jqw==", "dev": true }, "node_modules/core-util-is": { @@ -5785,7 +5777,6 @@ "version": "4.3.4", "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dev": true, "dependencies": { "ms": "2.1.2" }, @@ -5922,7 +5913,6 @@ "version": "1.1.2", "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==", - "dev": true, "engines": { "node": ">= 0.6" } @@ -6628,13 +6618,13 @@ } }, "node_modules/eslint": { - "version": "8.29.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.29.0.tgz", - "integrity": "sha512-isQ4EEiyUjZFbEKvEGJKKGBwXtvXX+zJbkVKCgTuB9t/+jUBcy8avhkEwWJecI15BkRkOYmvIM5ynbhRjEkoeg==", + "version": "8.32.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.32.0.tgz", + "integrity": "sha512-nETVXpnthqKPFyuY2FNjz/bEd6nbosRgKbkgS/y1C7LJop96gYHWpiguLecMHQ2XCPxn77DS0P+68WzG6vkZSQ==", "dev": true, "dependencies": { - "@eslint/eslintrc": "^1.3.3", - "@humanwhocodes/config-array": "^0.11.6", + "@eslint/eslintrc": "^1.4.1", + "@humanwhocodes/config-array": "^0.11.8", "@humanwhocodes/module-importer": "^1.0.1", "@nodelib/fs.walk": "^1.2.8", "ajv": "^6.10.0", @@ -6653,7 +6643,7 @@ "file-entry-cache": "^6.0.1", "find-up": "^5.0.0", "glob-parent": "^6.0.2", - "globals": "^13.15.0", + "globals": "^13.19.0", "grapheme-splitter": "^1.0.4", "ignore": "^5.2.0", "import-fresh": "^3.0.0", @@ -6684,9 +6674,9 @@ } }, "node_modules/eslint-config-prettier": { - "version": "8.5.0", - "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-8.5.0.tgz", - "integrity": "sha512-obmWKLUNCnhtQRKc+tmnYuQl0pFU1ibYJQ5BGhTVB08bHe9wC8qUeG7c08dj9XX+AuPj1YSGSQIHl1pnDHZR0Q==", + "version": "8.6.0", + "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-8.6.0.tgz", + "integrity": "sha512-bAF0eLpLVqP5oEVUFKpMA+NnRFICwn9X8B5jrR9FcqnYBuPbqWEjTEspPWMj5ye6czoSLDweCzSo3Ko7gGrZaA==", "dev": true, "bin": { "eslint-config-prettier": "bin/cli.js" @@ -6849,9 +6839,9 @@ } }, "node_modules/eslint/node_modules/globals": { - "version": "13.18.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.18.0.tgz", - "integrity": "sha512-/mR4KI8Ps2spmoc0Ulu9L7agOF0du1CZNQ3dke8yItYlyKNmGrkONemBbd6V8UTc1Wgcqn21t3WYB7dbRmh6/A==", + "version": "13.19.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.19.0.tgz", + "integrity": "sha512-dkQ957uSRWHw7CFXLUtUHQI3g3aWApYhfNR2O6jn/907riyTYKVBmxYVROkBcY614FSSeSJh7Xm7SrUWCxvJMQ==", "dev": true, "dependencies": { "type-fest": "^0.20.2" @@ -7302,9 +7292,9 @@ "integrity": "sha512-wpYMUmFu5f00Sm0cj2pfivpmawLZ0NKdviQ4w9zJeR8JVtOpOxHmLaJuj0vxvGqMJQWyP/COUkF75/57OKyRag==" }, "node_modules/fastq": { - "version": "1.14.0", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.14.0.tgz", - "integrity": "sha512-eR2D+V9/ExcbF9ls441yIuN6TI2ED1Y2ZcA5BmMtJsOkWOFRJQ0Jt0g1UwqXJJVAb+V+umH5Dfr8oh4EVP7VVg==", + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.15.0.tgz", + "integrity": "sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==", "dev": true, "dependencies": { "reusify": "^1.0.4" @@ -7370,9 +7360,9 @@ } }, "node_modules/filelist/node_modules/minimatch": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.1.tgz", - "integrity": "sha512-362NP+zlprccbEt/SkxKfRMHnNY85V74mVnpUpNyr3F35covl09Kec7/sEFLt3RA4oXmewtoaanoIf67SE5Y5g==", + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", + "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", "dev": true, "dependencies": { "brace-expansion": "^2.0.1" @@ -7519,9 +7509,9 @@ } }, "node_modules/formidable": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/formidable/-/formidable-2.1.1.tgz", - "integrity": "sha512-0EcS9wCFEzLvfiks7omJ+SiYJAiD+TzK4Pcw1UlUoGnhUxDcMKjt0P7x8wEb0u6OHu8Nb98WG3nxtlF5C7bvUQ==", + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/formidable/-/formidable-2.1.2.tgz", + "integrity": "sha512-CM3GuJ57US06mlpQ47YcunuUZ9jpm8Vx+P2CGt2j7HpgkKZO/DJYQ0Bobim8G6PFQmK5lOqOOdUXboU+h73A4g==", "dev": true, "dependencies": { "dezalgo": "^1.0.4", @@ -7649,9 +7639,9 @@ } }, "node_modules/get-intrinsic": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.3.tgz", - "integrity": "sha512-QJVz1Tj7MS099PevUG5jvnt9tSkXN8K14dxQlikJuPt4uD9hHAHjLyLBiLR5zELelBdD9QNRAXZzsJx0WaDL9A==", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.0.tgz", + "integrity": "sha512-L049y6nFOuom5wGyRc3/gdTLO94dySVKRACj1RmJZBQXlbTMhtNIgkWkUHq+jYmZvKf14EW1EoJnnjbmoHij0Q==", "dev": true, "dependencies": { "function-bind": "^1.1.1", @@ -7983,11 +7973,11 @@ } }, "node_modules/graphql-tools": { - "version": "8.3.14", - "resolved": "https://registry.npmjs.org/graphql-tools/-/graphql-tools-8.3.14.tgz", - "integrity": "sha512-elOdgkIAA7mYT0JHUb/tK0wPsxa8mFGBTkEXyhczPJE4v4tNYuuBNTgY+e5f0+00fKX5K9kEVxbYCTGoteMS0Q==", + "version": "8.3.15", + "resolved": "https://registry.npmjs.org/graphql-tools/-/graphql-tools-8.3.15.tgz", + "integrity": "sha512-U89rr+l7Dj1BWg10S+75SFBzy3juhXrhOk9KAEkXfdCgY/xfgod1s4xbkYaajQie577SLFFvodVJZwDw860a5g==", "dependencies": { - "@graphql-tools/schema": "9.0.12", + "@graphql-tools/schema": "9.0.13", "tslib": "^2.4.0" }, "optionalDependencies": { @@ -8128,6 +8118,12 @@ "node": ">=10" } }, + "node_modules/hosted-git-info/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, "node_modules/html-escaper": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", @@ -8180,15 +8176,14 @@ "version": "1.2.1", "resolved": "https://registry.npmjs.org/humanize-ms/-/humanize-ms-1.2.1.tgz", "integrity": "sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ==", - "dev": true, "dependencies": { "ms": "^2.0.0" } }, "node_modules/husky": { - "version": "8.0.2", - "resolved": "https://registry.npmjs.org/husky/-/husky-8.0.2.tgz", - "integrity": "sha512-Tkv80jtvbnkK3mYWxPZePGFpQ/tT3HNSs/sasF9P2YfkMezDl3ON37YN6jUUI4eTg5LcyVynlb6r4eyvOmspvg==", + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/husky/-/husky-8.0.3.tgz", + "integrity": "sha512-+dQSyqPh4x1hlO1swXBiNb2HzTDN1I2IGLQx1GrBuiqFJfoMrnZWwVmatvSiO+Iz8fBUnf+lekwNo4c2LlXItg==", "dev": true, "bin": { "husky": "lib/bin.js" @@ -8232,9 +8227,9 @@ ] }, "node_modules/ignore": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.1.tgz", - "integrity": "sha512-d2qQLzTJ9WxQftPAuEQpSPmKqzxePjzVbpAVv62AQ64NTL+wR4JkrVqR/LqFsFEUsHDAiId52mJteHDFuDkElA==", + "version": "5.2.4", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz", + "integrity": "sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==", "dev": true, "engines": { "node": ">= 4" @@ -8262,9 +8257,9 @@ } }, "node_modules/ignore-walk/node_modules/minimatch": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.1.tgz", - "integrity": "sha512-362NP+zlprccbEt/SkxKfRMHnNY85V74mVnpUpNyr3F35covl09Kec7/sEFLt3RA4oXmewtoaanoIf67SE5Y5g==", + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", + "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", "dev": true, "dependencies": { "brace-expansion": "^2.0.1" @@ -8390,6 +8385,15 @@ "node": "^12.13.0 || ^14.15.0 || >=16.0.0" } }, + "node_modules/init-package-json/node_modules/lru-cache": { + "version": "7.14.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.14.1.tgz", + "integrity": "sha512-ysxwsnTKdAx96aTRdhDOCQfDgbHnt8SK0KY8SEjO0wHinhWOFTESbjVCMPbU1uGXg/ch4lifqx0wfjOawU2+WA==", + "dev": true, + "engines": { + "node": ">=12" + } + }, "node_modules/init-package-json/node_modules/npm-package-arg": { "version": "9.1.2", "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-9.1.2.tgz", @@ -8513,18 +8517,6 @@ "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", "dev": true }, - "node_modules/is-binary-path": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", - "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", - "dev": true, - "dependencies": { - "binary-extensions": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/is-buffer": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.5.tgz", @@ -10920,9 +10912,9 @@ } }, "node_modules/js-sdsl": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/js-sdsl/-/js-sdsl-4.2.0.tgz", - "integrity": "sha512-dyBIzQBDkCqCu+0upx25Y2jGdbTGxE9fshMsCdK0ViOongpV+n5tXRcZY9v7CaVQ79AGS9KA1KHtojxiM7aXSQ==", + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/js-sdsl/-/js-sdsl-4.3.0.tgz", + "integrity": "sha512-mifzlm2+5nZ+lEcLJMoBK0/IH/bDg8XnJfd/Wq6IP+xoCjLZsTOnV2QpxlVbX9bMnkl5PdEjNtBJ9Cj1NjifhQ==", "dev": true, "funding": { "type": "opencollective", @@ -10998,9 +10990,9 @@ "integrity": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==" }, "node_modules/json5": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.1.tgz", - "integrity": "sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA==", + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", "dev": true, "bin": { "json5": "lib/cli.js" @@ -11050,15 +11042,15 @@ } }, "node_modules/just-diff": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/just-diff/-/just-diff-5.1.1.tgz", - "integrity": "sha512-u8HXJ3HlNrTzY7zrYYKjNEfBlyjqhdBkoyTVdjtn7p02RJD5NvR8rIClzeGA7t+UYP1/7eAkWNLU0+P3QrEqKQ==", + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/just-diff/-/just-diff-5.2.0.tgz", + "integrity": "sha512-6ufhP9SHjb7jibNFrNxyFZ6od3g+An6Ai9mhGRvcYe8UJlH0prseN64M+6ZBBUoKYHZsitDP42gAJ8+eVWr3lw==", "dev": true }, "node_modules/just-diff-apply": { - "version": "5.4.1", - "resolved": "https://registry.npmjs.org/just-diff-apply/-/just-diff-apply-5.4.1.tgz", - "integrity": "sha512-AAV5Jw7tsniWwih8Ly3fXxEZ06y+6p5TwQMsw0dzZ/wPKilzyDgdAnL0Ug4NNIquPUOh1vfFWEHbmXUqM5+o8g==", + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/just-diff-apply/-/just-diff-apply-5.5.0.tgz", + "integrity": "sha512-OYTthRfSh55WOItVqwpefPtNt2VdKsq5AnAK6apdtR6yCH8pr0CmSr710J0Mf+WdQy7K/OzMy7K2MgAfdQURDw==", "dev": true }, "node_modules/kind-of": { @@ -11186,6 +11178,15 @@ "node": "^12.13.0 || ^14.15.0 || >=16.0.0" } }, + "node_modules/libnpmaccess/node_modules/lru-cache": { + "version": "7.14.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.14.1.tgz", + "integrity": "sha512-ysxwsnTKdAx96aTRdhDOCQfDgbHnt8SK0KY8SEjO0wHinhWOFTESbjVCMPbU1uGXg/ch4lifqx0wfjOawU2+WA==", + "dev": true, + "engines": { + "node": ">=12" + } + }, "node_modules/libnpmaccess/node_modules/npm-package-arg": { "version": "9.1.2", "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-9.1.2.tgz", @@ -11229,6 +11230,15 @@ "node": "^12.13.0 || ^14.15.0 || >=16.0.0" } }, + "node_modules/libnpmpublish/node_modules/lru-cache": { + "version": "7.14.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.14.1.tgz", + "integrity": "sha512-ysxwsnTKdAx96aTRdhDOCQfDgbHnt8SK0KY8SEjO0wHinhWOFTESbjVCMPbU1uGXg/ch4lifqx0wfjOawU2+WA==", + "dev": true, + "engines": { + "node": ">=12" + } + }, "node_modules/libnpmpublish/node_modules/normalize-package-data": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-4.0.1.tgz", @@ -11269,10 +11279,13 @@ } }, "node_modules/lines-and-columns": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", - "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", - "dev": true + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-2.0.3.tgz", + "integrity": "sha512-cNOjgCnLB+FnvWWtyRTzmB3POJ+cXxTA81LoW7u8JdmhfXzriropYwpjShnz1QLLWsQwY7nIxoDmcPTwphDK9w==", + "dev": true, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + } }, "node_modules/lint-staged": { "version": "12.5.0", @@ -11306,18 +11319,18 @@ } }, "node_modules/lint-staged/node_modules/commander": { - "version": "9.4.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-9.4.1.tgz", - "integrity": "sha512-5EEkTNyHNGFPD2H+c/dXXfQZYa/scCKasxWcXJaWnNJ99pnQN9Vnmqow+p+PlFPE63Q6mThaZws1T+HxfpgtPw==", + "version": "9.5.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-9.5.0.tgz", + "integrity": "sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ==", "dev": true, "engines": { "node": "^12.20.0 || >=14" } }, "node_modules/lint-staged/node_modules/supports-color": { - "version": "9.3.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-9.3.0.tgz", - "integrity": "sha512-hJ6RYjNbcBFkpHi+ykjar+7GgHs+65Kxyw940nBLOSjaWZ13acq4A5f+gWiV5w+xfsg5MbnjDxTigLcUuljerw==", + "version": "9.3.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-9.3.1.tgz", + "integrity": "sha512-knBY82pjmnIzK3NifMo3RxEIRD9E0kIzV4BKcyTZ9+9kWgLMxd4PrsTSMoFQUabgRBbF8KOLRDCyKgNV+iK44Q==", "dev": true, "engines": { "node": ">=12" @@ -11688,12 +11701,12 @@ } }, "node_modules/lru-cache": { - "version": "7.14.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.14.1.tgz", - "integrity": "sha512-ysxwsnTKdAx96aTRdhDOCQfDgbHnt8SK0KY8SEjO0wHinhWOFTESbjVCMPbU1uGXg/ch4lifqx0wfjOawU2+WA==", + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", "dev": true, - "engines": { - "node": ">=12" + "dependencies": { + "yallist": "^3.0.2" } }, "node_modules/lru-queue": { @@ -11717,9 +11730,9 @@ "integrity": "sha512-zTU3DaZaF3Rt9rhN3uBMGQD3dD2/vFQqnvZCDv4dl5iOzq2IZQqTxu90r4E5J+nP70J3ilqVCrbho2eWaeW8Ow==" }, "node_modules/luxon": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/luxon/-/luxon-2.5.0.tgz", - "integrity": "sha512-IDkEPB80Rb6gCAU+FEib0t4FeJ4uVOuX1CQ9GsvU3O+JAGIgu0J7sf1OarXKaKDygTZIoJyU6YdZzTFRu+YR0A==", + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/luxon/-/luxon-2.5.2.tgz", + "integrity": "sha512-Yg7/RDp4nedqmLgyH0LwgGRvMEKVzKbUdkBYyCosbHgJ+kaOUx0qzSiSatVc3DFygnirTPYnMM2P5dg2uH1WvA==", "engines": { "node": ">=12" } @@ -11913,6 +11926,15 @@ "node": "^12.13.0 || ^14.15.0 || >=16.0.0" } }, + "node_modules/make-fetch-happen/node_modules/lru-cache": { + "version": "7.14.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.14.1.tgz", + "integrity": "sha512-ysxwsnTKdAx96aTRdhDOCQfDgbHnt8SK0KY8SEjO0wHinhWOFTESbjVCMPbU1uGXg/ch4lifqx0wfjOawU2+WA==", + "dev": true, + "engines": { + "node": ">=12" + } + }, "node_modules/makeerror": { "version": "1.0.12", "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.12.tgz", @@ -11935,9 +11957,9 @@ } }, "node_modules/marked": { - "version": "4.2.4", - "resolved": "https://registry.npmjs.org/marked/-/marked-4.2.4.tgz", - "integrity": "sha512-Wcc9ikX7Q5E4BYDPvh1C6QNSxrjC9tBgz+A/vAhp59KXUgachw++uMvMKiSW8oA85nopmPZcEvBoex/YLMsiyA==", + "version": "4.2.12", + "resolved": "https://registry.npmjs.org/marked/-/marked-4.2.12.tgz", + "integrity": "sha512-yr8hSKa3Fv4D3jdZmtMMPghgVt6TWbk86WQaWhDloQjRSQhMMYCAro7jP7VDJrjjdV8pxVxMssXS8B8Y5DZ5aw==", "bin": { "marked": "bin/marked.js" }, @@ -12382,6 +12404,12 @@ "node": ">=8" } }, + "node_modules/minipass/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, "node_modules/minizlib": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz", @@ -12395,6 +12423,12 @@ "node": ">= 8" } }, + "node_modules/minizlib/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, "node_modules/mkdirp": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", @@ -12488,9 +12522,9 @@ } }, "node_modules/moleculer-repl/node_modules/commander": { - "version": "9.4.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-9.4.1.tgz", - "integrity": "sha512-5EEkTNyHNGFPD2H+c/dXXfQZYa/scCKasxWcXJaWnNJ99pnQN9Vnmqow+p+PlFPE63Q6mThaZws1T+HxfpgtPw==", + "version": "9.5.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-9.5.0.tgz", + "integrity": "sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ==", "dev": true, "engines": { "node": "^12.20.0 || >=14" @@ -12508,8 +12542,7 @@ "node_modules/ms": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" }, "node_modules/multimatch": { "version": "5.0.0", @@ -12597,9 +12630,9 @@ "dev": true }, "node_modules/node-fetch": { - "version": "2.6.7", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", - "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", + "version": "2.6.8", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.8.tgz", + "integrity": "sha512-RZ6dBYuj8dRSfxpUSu+NsdF1dpPpluJxwOp+6IoDp/sH2QNDSvurYsAa+F1WxY2RjA1iP93xhcsUoYbF2XBqVg==", "dependencies": { "whatwg-url": "^5.0.0" }, @@ -12616,9 +12649,9 @@ } }, "node_modules/node-gyp": { - "version": "9.3.0", - "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-9.3.0.tgz", - "integrity": "sha512-A6rJWfXFz7TQNjpldJ915WFb1LnhO4lIve3ANPbWreuEoLoKlFT3sxIepPBkLhM27crW8YmN+pjlgbasH6cH/Q==", + "version": "9.3.1", + "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-9.3.1.tgz", + "integrity": "sha512-4Q16ZCqq3g8awk6UplT7AuxQ35XN4R/yf/+wSAwcBUAjg7l58RTactWaP8fIDTi0FzI7YcVLujwExakZlfWkXg==", "dev": true, "dependencies": { "env-paths": "^2.2.0", @@ -12636,13 +12669,13 @@ "node-gyp": "bin/node-gyp.js" }, "engines": { - "node": "^12.22 || ^14.13 || >=16" + "node": "^12.13 || ^14.13 || >=16" } }, "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==", + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.6.0.tgz", + "integrity": "sha512-NTZVKn9IylLwUzaKjkas1e4u2DLNcV4rdYagA4PWdPwW87Bi7z+BznyKSRwS/761tV/lzCGXplWsiaMjLqP2zQ==", "devOptional": true, "bin": { "node-gyp-build": "bin.js", @@ -12672,9 +12705,9 @@ "dev": true }, "node_modules/node-releases": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.6.tgz", - "integrity": "sha512-PiVXnNuFm5+iYkLBNeq5211hvO38y63T0i2KKh2KnUs3RpzJ+JtODFjkD8yjLwnDkTYF1eKXheUwdssR+NRZdg==", + "version": "2.0.8", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.8.tgz", + "integrity": "sha512-dFSmB8fFHEH/s81Xi+Y/15DQY6VHW81nXRj86EMSL3lmuTmK1e+aT4wrFCkTbm+gSwkw4KpX+rT/pMM2c1mF+A==", "dev": true }, "node_modules/node-source-walk": { @@ -12808,6 +12841,12 @@ "builtins": "^1.0.3" } }, + "node_modules/npm-package-arg/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, "node_modules/npm-packlist": { "version": "5.1.3", "resolved": "https://registry.npmjs.org/npm-packlist/-/npm-packlist-5.1.3.tgz", @@ -12836,9 +12875,9 @@ } }, "node_modules/npm-packlist/node_modules/glob": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-8.0.3.tgz", - "integrity": "sha512-ull455NHSHI/Y1FqGaaYFaLGkNMMJbavMrEGFXG/PGrg6y7sutWHUHrz6gy6WEBH6akM1M414dWKCNs+IhKdiQ==", + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz", + "integrity": "sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==", "dev": true, "dependencies": { "fs.realpath": "^1.0.0", @@ -12855,9 +12894,9 @@ } }, "node_modules/npm-packlist/node_modules/minimatch": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.1.tgz", - "integrity": "sha512-362NP+zlprccbEt/SkxKfRMHnNY85V74mVnpUpNyr3F35covl09Kec7/sEFLt3RA4oXmewtoaanoIf67SE5Y5g==", + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", + "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", "dev": true, "dependencies": { "brace-expansion": "^2.0.1" @@ -12914,6 +12953,15 @@ "node": "^12.13.0 || ^14.15.0 || >=16.0.0" } }, + "node_modules/npm-pick-manifest/node_modules/lru-cache": { + "version": "7.14.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.14.1.tgz", + "integrity": "sha512-ysxwsnTKdAx96aTRdhDOCQfDgbHnt8SK0KY8SEjO0wHinhWOFTESbjVCMPbU1uGXg/ch4lifqx0wfjOawU2+WA==", + "dev": true, + "engines": { + "node": ">=12" + } + }, "node_modules/npm-pick-manifest/node_modules/npm-normalize-package-bin": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-2.0.0.tgz", @@ -12968,6 +13016,15 @@ "node": "^12.13.0 || ^14.15.0 || >=16.0.0" } }, + "node_modules/npm-registry-fetch/node_modules/lru-cache": { + "version": "7.14.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.14.1.tgz", + "integrity": "sha512-ysxwsnTKdAx96aTRdhDOCQfDgbHnt8SK0KY8SEjO0wHinhWOFTESbjVCMPbU1uGXg/ch4lifqx0wfjOawU2+WA==", + "dev": true, + "engines": { + "node": ">=12" + } + }, "node_modules/npm-registry-fetch/node_modules/npm-package-arg": { "version": "9.1.2", "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-9.1.2.tgz", @@ -13011,21 +13068,20 @@ } }, "node_modules/nx": { - "version": "15.3.0", - "resolved": "https://registry.npmjs.org/nx/-/nx-15.3.0.tgz", - "integrity": "sha512-5tBrEF2zDkGBDfe8wThazJqBDhsVkRrxc6OttzfBmkXP4VPp8w5MMtUEOry181AXKfjDGkw//UnCSkUNynTDlw==", + "version": "15.5.3", + "resolved": "https://registry.npmjs.org/nx/-/nx-15.5.3.tgz", + "integrity": "sha512-PHB8VbiBLP108xb+yR8IGEsYWr7OcmDDOjHL+73oP4lVjyPgT8wdTMe6tI5LdBgv+KZ+0kiThK3ckvcPsfgvLQ==", "dev": true, "hasInstallScript": true, "dependencies": { - "@nrwl/cli": "15.3.0", - "@nrwl/tao": "15.3.0", + "@nrwl/cli": "15.5.3", + "@nrwl/tao": "15.5.3", "@parcel/watcher": "2.0.4", "@yarnpkg/lockfile": "^1.1.0", "@yarnpkg/parsers": "^3.0.0-rc.18", "@zkochan/js-yaml": "0.0.6", "axios": "^1.0.0", - "chalk": "4.1.0", - "chokidar": "^3.5.1", + "chalk": "^4.1.0", "cli-cursor": "3.1.0", "cli-spinners": "2.6.1", "cliui": "^7.0.2", @@ -13034,11 +13090,12 @@ "fast-glob": "3.2.7", "figures": "3.2.0", "flat": "^5.0.2", - "fs-extra": "^10.1.0", + "fs-extra": "^11.1.0", "glob": "7.1.4", "ignore": "^5.0.4", "js-yaml": "4.1.0", "jsonc-parser": "3.2.0", + "lines-and-columns": "~2.0.3", "minimatch": "3.0.5", "npm-run-path": "^4.0.1", "open": "^8.4.0", @@ -13047,7 +13104,7 @@ "strong-log-transformer": "^2.1.0", "tar-stream": "~2.2.0", "tmp": "~0.2.1", - "tsconfig-paths": "^3.9.0", + "tsconfig-paths": "^4.1.2", "tslib": "^2.3.0", "v8-compile-cache": "2.3.0", "yargs": "^17.6.2", @@ -13085,9 +13142,9 @@ } }, "node_modules/nx/node_modules/chalk": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", - "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, "dependencies": { "ansi-styles": "^4.1.0", @@ -13144,9 +13201,9 @@ } }, "node_modules/nx/node_modules/fs-extra": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", - "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.1.0.tgz", + "integrity": "sha512-0rcTq621PD5jM/e0a3EJoGC/1TC5ZBCERW82LQuwfGnCa1V8w7dpYH1yNu+SLb6E5dkeCBzKEyLGlFrnr+dUyw==", "dev": true, "dependencies": { "graceful-fs": "^4.2.0", @@ -13154,7 +13211,7 @@ "universalify": "^2.0.0" }, "engines": { - "node": ">=12" + "node": ">=14.14" } }, "node_modules/nx/node_modules/glob": { @@ -13234,6 +13291,15 @@ "node": ">=10" } }, + "node_modules/nx/node_modules/strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", + "dev": true, + "engines": { + "node": ">=4" + } + }, "node_modules/nx/node_modules/supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", @@ -13258,6 +13324,26 @@ "node": ">=8.17.0" } }, + "node_modules/nx/node_modules/tsconfig-paths": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-4.1.2.tgz", + "integrity": "sha512-uhxiMgnXQp1IR622dUXI+9Ehnws7i/y6xvpZB9IbUVOPy0muvdvgXeZOn88UcGPiT98Vp3rJPTa8bFoalZ3Qhw==", + "dev": true, + "dependencies": { + "json5": "^2.2.2", + "minimist": "^1.2.6", + "strip-bom": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/nx/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, "node_modules/nx/node_modules/yargs-parser": { "version": "21.1.1", "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", @@ -13277,9 +13363,9 @@ } }, "node_modules/object-inspect": { - "version": "1.12.2", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.2.tgz", - "integrity": "sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ==", + "version": "1.12.3", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.3.tgz", + "integrity": "sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==", "dev": true, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -13638,6 +13724,15 @@ "node": "^12.13.0 || ^14.15.0 || >=16.0.0" } }, + "node_modules/pacote/node_modules/lru-cache": { + "version": "7.14.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.14.1.tgz", + "integrity": "sha512-ysxwsnTKdAx96aTRdhDOCQfDgbHnt8SK0KY8SEjO0wHinhWOFTESbjVCMPbU1uGXg/ch4lifqx0wfjOawU2+WA==", + "dev": true, + "engines": { + "node": ">=12" + } + }, "node_modules/pacote/node_modules/npm-package-arg": { "version": "9.1.2", "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-9.1.2.tgz", @@ -13697,6 +13792,12 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/parse-json/node_modules/lines-and-columns": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", + "dev": true + }, "node_modules/parse-ms": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/parse-ms/-/parse-ms-2.1.0.tgz", @@ -13891,9 +13992,9 @@ } }, "node_modules/postcss": { - "version": "8.4.19", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.19.tgz", - "integrity": "sha512-h+pbPsyhlYj6N2ozBmHhHrs9DzGmbaarbLvWipMRO7RLS+v4onj26MPFXA5OBYFxyqYhUJK456SwDcY9H2/zsA==", + "version": "8.4.21", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.21.tgz", + "integrity": "sha512-tP7u/Sn/dVxK2NnruI4H9BG+x+Wxz6oeZ1cJ8P6G/PZY0IKk4k/63TDsQf2kQq3+qoJeLm2kIBUNlZe3zgb4Zg==", "dev": true, "funding": [ { @@ -14003,9 +14104,9 @@ } }, "node_modules/prettier": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.1.tgz", - "integrity": "sha512-lqGoSJBQNJidqCHE80vqZJHWHRFoNYsSpP9AjFhlhi9ODCJA541svILes/+/1GM3VaL/abZi7cpFzOpdR9UPKg==", + "version": "2.8.3", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.3.tgz", + "integrity": "sha512-tJ/oJ4amDihPoufT5sM0Z1SKEuKay8LfVAMlbbhnnkvt6BUserZylqo2PN+p9KeljLr0OHa2rXHU1T8reeoTrw==", "dev": true, "bin": { "prettier": "bin-prettier.js" @@ -14201,9 +14302,9 @@ "dev": true }, "node_modules/punycode": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", - "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz", + "integrity": "sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==", "dev": true, "engines": { "node": ">=6" @@ -14358,9 +14459,9 @@ } }, "node_modules/read-package-json/node_modules/glob": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-8.0.3.tgz", - "integrity": "sha512-ull455NHSHI/Y1FqGaaYFaLGkNMMJbavMrEGFXG/PGrg6y7sutWHUHrz6gy6WEBH6akM1M414dWKCNs+IhKdiQ==", + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz", + "integrity": "sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==", "dev": true, "dependencies": { "fs.realpath": "^1.0.0", @@ -14388,10 +14489,19 @@ "node": "^12.13.0 || ^14.15.0 || >=16.0.0" } }, + "node_modules/read-package-json/node_modules/lru-cache": { + "version": "7.14.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.14.1.tgz", + "integrity": "sha512-ysxwsnTKdAx96aTRdhDOCQfDgbHnt8SK0KY8SEjO0wHinhWOFTESbjVCMPbU1uGXg/ch4lifqx0wfjOawU2+WA==", + "dev": true, + "engines": { + "node": ">=12" + } + }, "node_modules/read-package-json/node_modules/minimatch": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.1.tgz", - "integrity": "sha512-362NP+zlprccbEt/SkxKfRMHnNY85V74mVnpUpNyr3F35covl09Kec7/sEFLt3RA4oXmewtoaanoIf67SE5Y5g==", + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", + "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", "dev": true, "dependencies": { "brace-expansion": "^2.0.1" @@ -14630,18 +14740,6 @@ "once": "^1.3.0" } }, - "node_modules/readdirp": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", - "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", - "dev": true, - "dependencies": { - "picomatch": "^2.2.1" - }, - "engines": { - "node": ">=8.10.0" - } - }, "node_modules/redent": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/redent/-/redent-3.0.0.tgz", @@ -14773,9 +14871,9 @@ } }, "node_modules/resolve.exports": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-1.1.0.tgz", - "integrity": "sha512-J1l+Zxxp4XK3LUDZ9m60LRJF/mAe4z6a4xyabPHk7pvK5t35dACV32iIjJDFeWZFfZlO29w6SZ67knR0tHzJtQ==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-1.1.1.tgz", + "integrity": "sha512-/NtpHNDN7jWhAaQ9BvBUYZ6YTXsRBgfqWFWP7BZBaoMJO/I3G5OFzvTuWNlZC3aPjins1F+TNrLKsGbH4rfsRQ==", "dev": true, "engines": { "node": ">=10" @@ -14863,15 +14961,15 @@ } }, "node_modules/rpc-websockets/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==", + "version": "8.12.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.12.0.tgz", + "integrity": "sha512-kU62emKIdKVeEIOIKVegvqpXMSTAMLJozpHZaJNDYqBjzlSYXQGviYwN1osDLJ9av68qHd4a2oSjd7yD4pacig==", "engines": { "node": ">=10.0.0" }, "peerDependencies": { "bufferutil": "^4.0.1", - "utf-8-validate": "^5.0.2" + "utf-8-validate": ">=5.0.2" }, "peerDependenciesMeta": { "bufferutil": { @@ -14915,9 +15013,9 @@ } }, "node_modules/rxjs": { - "version": "7.6.0", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.6.0.tgz", - "integrity": "sha512-DDa7d8TFNUalGC9VqXvQ1euWNN7sc63TrUCuM9J998+ViviahMIjKSOU7rfcgFOF+FCD71BhDRv4hrFz+ImDLQ==", + "version": "7.8.0", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.0.tgz", + "integrity": "sha512-F2+gxDshqmIub1KdvZkaEfGDwLNpPvk9Fs6LD/MyQxNgMds/WH9OdDDXOmxUZpME+iSK3rQCctkL0DYyytUqMg==", "dev": true, "dependencies": { "tslib": "^2.1.0" @@ -14990,6 +15088,12 @@ "node": ">=10" } }, + "node_modules/semver/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, "node_modules/set-blocking": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", @@ -15030,13 +15134,13 @@ } }, "node_modules/shiki": { - "version": "0.11.1", - "resolved": "https://registry.npmjs.org/shiki/-/shiki-0.11.1.tgz", - "integrity": "sha512-EugY9VASFuDqOexOgXR18ZV+TbFrQHeCpEYaXamO+SZlsnT/2LxuLBX25GGtIrwaEVFXUAbUQ601SWE2rMwWHA==", + "version": "0.12.1", + "resolved": "https://registry.npmjs.org/shiki/-/shiki-0.12.1.tgz", + "integrity": "sha512-aieaV1m349rZINEBkjxh2QbBvFFQOlgqYTNtCal82hHj4dDZ76oMlQIX+C7ryerBTDiga3e5NfH6smjdJ02BbQ==", "dependencies": { - "jsonc-parser": "^3.0.0", - "vscode-oniguruma": "^1.6.1", - "vscode-textmate": "^6.0.0" + "jsonc-parser": "^3.2.0", + "vscode-oniguruma": "^1.7.0", + "vscode-textmate": "^8.0.0" } }, "node_modules/side-channel": { @@ -15449,17 +15553,17 @@ } }, "node_modules/superagent": { - "version": "8.0.6", - "resolved": "https://registry.npmjs.org/superagent/-/superagent-8.0.6.tgz", - "integrity": "sha512-HqSe6DSIh3hEn6cJvCkaM1BLi466f1LHi4yubR0tpewlMpk4RUFFy35bKz8SsPBwYfIIJy5eclp+3tCYAuX0bw==", + "version": "8.0.8", + "resolved": "https://registry.npmjs.org/superagent/-/superagent-8.0.8.tgz", + "integrity": "sha512-OpxPrqqWKOjmuomLq5pCm4LWCSFdgAQ11XVkMl7t4ie13WxWuLkdJ83ZgG2jOQeLXKwMR2p9k30hLrKGAzkPaA==", "dev": true, "dependencies": { "component-emitter": "^1.3.0", - "cookiejar": "^2.1.3", + "cookiejar": "^2.1.4", "debug": "^4.3.4", "fast-safe-stringify": "^2.1.1", "form-data": "^4.0.0", - "formidable": "^2.1.1", + "formidable": "^2.1.2", "methods": "^1.1.2", "mime": "2.6.0", "qs": "^6.11.0", @@ -15571,9 +15675,9 @@ } }, "node_modules/table/node_modules/ajv": { - "version": "8.11.2", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.2.tgz", - "integrity": "sha512-E4bfmKAhGiSTvMfL1Myyycaub+cUEU2/IvpylXkUu7CHBkBj1f/ikdzbD7YQ6FKUbixDxeYvB/xY4fvyroDlQg==", + "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", @@ -15705,6 +15809,12 @@ "node": ">=8" } }, + "node_modules/tar/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, "node_modules/temp": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/temp/-/temp-0.4.0.tgz", @@ -15949,9 +16059,9 @@ } }, "node_modules/ts-jest-resolver/node_modules/@types/yargs": { - "version": "16.0.4", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.4.tgz", - "integrity": "sha512-T8Yc9wt/5LbJyCaLiHPReJa0kApcIgJ7Bn735GjItUfh08Z1pJvu8QZqb9s+mMvKV6WUQRV7K2R46YbjMXTTJw==", + "version": "16.0.5", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.5.tgz", + "integrity": "sha512-AxO/ADJOBFJScHbWhq2xAhlWP24rY4aCEG/NFaMvbT3X2MgRsLjhjQwsn0Zi5zn0LG9jUhCCZMeX9Dkuw6k+vQ==", "dev": true, "dependencies": { "@types/yargs-parser": "*" @@ -16189,9 +16299,9 @@ } }, "node_modules/tsconfig-paths/node_modules/json5": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", - "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz", + "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", "dev": true, "dependencies": { "minimist": "^1.2.0" @@ -16290,14 +16400,14 @@ } }, "node_modules/typedoc": { - "version": "0.23.22", - "resolved": "https://registry.npmjs.org/typedoc/-/typedoc-0.23.22.tgz", - "integrity": "sha512-5sJkjK60xp8A7YpcYniu3+Wf0QcgojEnhzHuCN+CkdpQkKRhOspon/9+sGTkGI8kjVkZs3KHrhltpQyVhRMVfw==", + "version": "0.23.24", + "resolved": "https://registry.npmjs.org/typedoc/-/typedoc-0.23.24.tgz", + "integrity": "sha512-bfmy8lNQh+WrPYcJbtjQ6JEEsVl/ce1ZIXyXhyW+a1vFrjO39t6J8sL/d6FfAGrJTc7McCXgk9AanYBSNvLdIA==", "dependencies": { "lunr": "^2.3.9", - "marked": "^4.0.19", - "minimatch": "^5.1.0", - "shiki": "^0.11.1" + "marked": "^4.2.5", + "minimatch": "^5.1.2", + "shiki": "^0.12.1" }, "bin": { "typedoc": "bin/typedoc" @@ -16318,9 +16428,9 @@ } }, "node_modules/typedoc/node_modules/minimatch": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.1.tgz", - "integrity": "sha512-362NP+zlprccbEt/SkxKfRMHnNY85V74mVnpUpNyr3F35covl09Kec7/sEFLt3RA4oXmewtoaanoIf67SE5Y5g==", + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", + "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", "dependencies": { "brace-expansion": "^2.0.1" }, @@ -16513,9 +16623,9 @@ } }, "node_modules/value-or-promise": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/value-or-promise/-/value-or-promise-1.0.11.tgz", - "integrity": "sha512-41BrgH+dIbCFXClcSapVs5M6GkENd3gQOJpEfPDNa71LsUGMXDL0jMWpI/Rh7WhX+Aalfz2TTS3Zt5pUsbnhLg==", + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/value-or-promise/-/value-or-promise-1.0.12.tgz", + "integrity": "sha512-Z6Uz+TYwEqE7ZN50gwn+1LCVo9ZVrpxRPOhOLnncYkY1ZzOYtrX8Fwf/rFktZ8R5mJms6EZf5TqNOMeZmnPq9Q==", "engines": { "node": ">=12" } @@ -16526,9 +16636,9 @@ "integrity": "sha512-L9WMGRfrjOhgHSdOYgCt/yRMsXzLDJSL7BPrOZt73gU0iWO4mpqzqQzOz5srxqTvMBaR0XZTSrVWo4j55Rc6cA==" }, "node_modules/vscode-textmate": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/vscode-textmate/-/vscode-textmate-6.0.0.tgz", - "integrity": "sha512-gu73tuZfJgu+mvCSy4UZwd2JXykjK9zAZsfmDeut5dx/1a7FeTk0XwJsSuqQn+cuMCGVbIBfl+s53X4T19DnzQ==" + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/vscode-textmate/-/vscode-textmate-8.0.0.tgz", + "integrity": "sha512-AFbieoL7a5LMqcnOF04ji+rpXadgOXnZsxQr//r83kLPr7biP7am3g9zbaZIaBGwBRWeSvoMD4mgPdX3e4NWBg==" }, "node_modules/walk-up-path": { "version": "1.0.0", @@ -16868,9 +16978,9 @@ } }, "node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", "dev": true }, "node_modules/yaml": { @@ -16984,9 +17094,9 @@ } }, "@apollo/client": { - "version": "3.7.2", - "resolved": "https://registry.npmjs.org/@apollo/client/-/client-3.7.2.tgz", - "integrity": "sha512-ohAIpXl3mTa1Fd3GT/K37VwQJfTIuuJRp4aOlJ4q/hlx0Wxh+RqDrbn0awtVCOdhGDQN+CQQmVzIqFKn6GziXQ==", + "version": "3.7.4", + "resolved": "https://registry.npmjs.org/@apollo/client/-/client-3.7.4.tgz", + "integrity": "sha512-bgiCKRmLSBImX4JRrw8NjqGo0AQE/mowCdHX1PJp2r5zIXrJx0UeaAYmx1qJY69Oz/KR7SKlLt4xK+bOP1jx7A==", "optional": true, "requires": { "@graphql-typed-document-node/core": "^3.1.1", @@ -17014,31 +17124,31 @@ } }, "@babel/compat-data": { - "version": "7.20.5", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.20.5.tgz", - "integrity": "sha512-KZXo2t10+/jxmkhNXc7pZTqRvSOIvVv/+lJwHS+B2rErwOyjuVRh60yVpb7liQ1U5t7lLJ1bz+t8tSypUZdm0g==", + "version": "7.20.10", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.20.10.tgz", + "integrity": "sha512-sEnuDPpOJR/fcafHMjpcpGN5M2jbUGUHwmuWKM/YdPzeEDJg8bgmbcWQFUfE32MQjti1koACvoPVsDe8Uq+idg==", "dev": true }, "@babel/core": { - "version": "7.20.5", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.20.5.tgz", - "integrity": "sha512-UdOWmk4pNWTm/4DlPUl/Pt4Gz4rcEMb7CY0Y3eJl5Yz1vI8ZJGmHWaVE55LoxRjdpx0z259GE9U5STA9atUinQ==", + "version": "7.20.12", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.20.12.tgz", + "integrity": "sha512-XsMfHovsUYHFMdrIHkZphTN/2Hzzi78R08NuHfDBehym2VsPDL6Zn/JAD/JQdnRvbSsbQc4mVaU1m6JgtTEElg==", "dev": true, "requires": { "@ampproject/remapping": "^2.1.0", "@babel/code-frame": "^7.18.6", - "@babel/generator": "^7.20.5", - "@babel/helper-compilation-targets": "^7.20.0", - "@babel/helper-module-transforms": "^7.20.2", - "@babel/helpers": "^7.20.5", - "@babel/parser": "^7.20.5", - "@babel/template": "^7.18.10", - "@babel/traverse": "^7.20.5", - "@babel/types": "^7.20.5", + "@babel/generator": "^7.20.7", + "@babel/helper-compilation-targets": "^7.20.7", + "@babel/helper-module-transforms": "^7.20.11", + "@babel/helpers": "^7.20.7", + "@babel/parser": "^7.20.7", + "@babel/template": "^7.20.7", + "@babel/traverse": "^7.20.12", + "@babel/types": "^7.20.7", "convert-source-map": "^1.7.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", - "json5": "^2.2.1", + "json5": "^2.2.2", "semver": "^6.3.0" }, "dependencies": { @@ -17051,25 +17161,26 @@ } }, "@babel/generator": { - "version": "7.20.5", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.20.5.tgz", - "integrity": "sha512-jl7JY2Ykn9S0yj4DQP82sYvPU+T3g0HFcWTqDLqiuA9tGRNIj9VfbtXGAYTTkyNEnQk1jkMGOdYka8aG/lulCA==", + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.20.7.tgz", + "integrity": "sha512-7wqMOJq8doJMZmP4ApXTzLxSr7+oO2jroJURrVEp6XShrQUObV8Tq/D0NCcoYg2uHqUrjzO0zwBjoYzelxK+sw==", "dev": true, "requires": { - "@babel/types": "^7.20.5", + "@babel/types": "^7.20.7", "@jridgewell/gen-mapping": "^0.3.2", "jsesc": "^2.5.1" } }, "@babel/helper-compilation-targets": { - "version": "7.20.0", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.20.0.tgz", - "integrity": "sha512-0jp//vDGp9e8hZzBc6N/KwA5ZK3Wsm/pfm4CrY7vzegkVxc65SgSn6wYOnwHe9Js9HRQ1YTCKLGPzDtaS3RoLQ==", + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.20.7.tgz", + "integrity": "sha512-4tGORmfQcrc+bvrjb5y3dG9Mx1IOZjsHqQVUz7XCNHO+iTmqxWnVg3KRygjGmpRLJGdQSKuvFinbIb0CnZwHAQ==", "dev": true, "requires": { - "@babel/compat-data": "^7.20.0", + "@babel/compat-data": "^7.20.5", "@babel/helper-validator-option": "^7.18.6", "browserslist": "^4.21.3", + "lru-cache": "^5.1.1", "semver": "^6.3.0" }, "dependencies": { @@ -17116,9 +17227,9 @@ } }, "@babel/helper-module-transforms": { - "version": "7.20.2", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.20.2.tgz", - "integrity": "sha512-zvBKyJXRbmK07XhMuujYoJ48B5yvvmM6+wcpv6Ivj4Yg6qO7NOZOSnvZN9CRl1zz1Z4cKf8YejmCMh8clOoOeA==", + "version": "7.20.11", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.20.11.tgz", + "integrity": "sha512-uRy78kN4psmji1s2QtbtcCSaj/LILFDp0f/ymhpQH5QY3nljUZCaNWz9X1dEj/8MBdBEFECs7yRhKn8i7NjZgg==", "dev": true, "requires": { "@babel/helper-environment-visitor": "^7.18.9", @@ -17126,9 +17237,9 @@ "@babel/helper-simple-access": "^7.20.2", "@babel/helper-split-export-declaration": "^7.18.6", "@babel/helper-validator-identifier": "^7.19.1", - "@babel/template": "^7.18.10", - "@babel/traverse": "^7.20.1", - "@babel/types": "^7.20.2" + "@babel/template": "^7.20.7", + "@babel/traverse": "^7.20.10", + "@babel/types": "^7.20.7" } }, "@babel/helper-plugin-utils": { @@ -17174,14 +17285,14 @@ "dev": true }, "@babel/helpers": { - "version": "7.20.6", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.20.6.tgz", - "integrity": "sha512-Pf/OjgfgFRW5bApskEz5pvidpim7tEDPlFtKcNRXWmfHGn9IEI2W2flqRQXTFb7gIPTyK++N6rVHuwKut4XK6w==", + "version": "7.20.13", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.20.13.tgz", + "integrity": "sha512-nzJ0DWCL3gB5RCXbUO3KIMMsBY2Eqbx8mBpKGE/02PgyRQFcPQLbkQ1vyy596mZLaP+dAfD+R4ckASzNVmW3jg==", "dev": true, "requires": { - "@babel/template": "^7.18.10", - "@babel/traverse": "^7.20.5", - "@babel/types": "^7.20.5" + "@babel/template": "^7.20.7", + "@babel/traverse": "^7.20.13", + "@babel/types": "^7.20.7" } }, "@babel/highlight": { @@ -17196,9 +17307,9 @@ } }, "@babel/parser": { - "version": "7.20.5", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.20.5.tgz", - "integrity": "sha512-r27t/cy/m9uKLXQNWWebeCUHgnAZq0CpG1OwKRxzJMP1vpSU4bSIK2hq+/cp0bQxetkXx38n09rNu8jVkcK/zA==", + "version": "7.20.13", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.20.13.tgz", + "integrity": "sha512-gFDLKMfpiXCsjt4za2JA9oTMn70CeseCehb11kRZgvd7+F67Hih3OHOK24cRrWECJ/ljfPGac6ygXAs/C8kIvw==", "dev": true }, "@babel/plugin-syntax-async-generators": { @@ -17319,46 +17430,46 @@ } }, "@babel/runtime": { - "version": "7.20.6", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.20.6.tgz", - "integrity": "sha512-Q+8MqP7TiHMWzSfwiJwXCjyf4GYA4Dgw3emg/7xmwsdLJOZUp+nMqcOwOzzYheuM1rhDu8FSj2l0aoMygEuXuA==", + "version": "7.20.13", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.20.13.tgz", + "integrity": "sha512-gt3PKXs0DBoL9xCvOIIZ2NEqAGZqHjAnmVbfQtB620V0uReIQutpel14KcneZuer7UioY8ALKZ7iocavvzTNFA==", "requires": { "regenerator-runtime": "^0.13.11" } }, "@babel/template": { - "version": "7.18.10", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.18.10.tgz", - "integrity": "sha512-TI+rCtooWHr3QJ27kJxfjutghu44DLnasDMwpDqCXVTal9RLp3RSYNh4NdBrRP2cQAoG9A8juOQl6P6oZG4JxA==", + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.20.7.tgz", + "integrity": "sha512-8SegXApWe6VoNw0r9JHpSteLKTpTiLZ4rMlGIm9JQ18KiCtyQiAMEazujAHrUS5flrcqYZa75ukev3P6QmUwUw==", "dev": true, "requires": { "@babel/code-frame": "^7.18.6", - "@babel/parser": "^7.18.10", - "@babel/types": "^7.18.10" + "@babel/parser": "^7.20.7", + "@babel/types": "^7.20.7" } }, "@babel/traverse": { - "version": "7.20.5", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.20.5.tgz", - "integrity": "sha512-WM5ZNN3JITQIq9tFZaw1ojLU3WgWdtkxnhM1AegMS+PvHjkM5IXjmYEGY7yukz5XS4sJyEf2VzWjI8uAavhxBQ==", + "version": "7.20.13", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.20.13.tgz", + "integrity": "sha512-kMJXfF0T6DIS9E8cgdLCSAL+cuCK+YEZHWiLK0SXpTo8YRj5lpJu3CDNKiIBCne4m9hhTIqUg6SYTAI39tAiVQ==", "dev": true, "requires": { "@babel/code-frame": "^7.18.6", - "@babel/generator": "^7.20.5", + "@babel/generator": "^7.20.7", "@babel/helper-environment-visitor": "^7.18.9", "@babel/helper-function-name": "^7.19.0", "@babel/helper-hoist-variables": "^7.18.6", "@babel/helper-split-export-declaration": "^7.18.6", - "@babel/parser": "^7.20.5", - "@babel/types": "^7.20.5", + "@babel/parser": "^7.20.13", + "@babel/types": "^7.20.7", "debug": "^4.1.0", "globals": "^11.1.0" } }, "@babel/types": { - "version": "7.20.5", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.20.5.tgz", - "integrity": "sha512-c9fst/h2/dcF7H+MJKZ2T0KjEQ8hY/BNnDk/H3XY8C4Aw/eWQXWn/lWntHF9ooUBnGmEvbfGrTgLWc+um0YDUg==", + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.20.7.tgz", + "integrity": "sha512-69OnhBxSSgK0OzTJai4kyPDiKTIe3j+ctaHdIGVbRahTLAT7L3R9oeXHC2aVSuGYt3cVnoAMDmOCgJ2yaiLMvg==", "dev": true, "requires": { "@babel/helper-string-parser": "^7.19.4", @@ -17373,15 +17484,15 @@ "dev": true }, "@eslint/eslintrc": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.3.3.tgz", - "integrity": "sha512-uj3pT6Mg+3t39fvLrj8iuCIJ38zKO9FpGtJ4BBJebJhEwjoT+KLVNCcHT5QC9NGRIEi7fZ0ZR8YRb884auB4Lg==", + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.4.1.tgz", + "integrity": "sha512-XXrH9Uarn0stsyldqDYq8r++mROmWRI1xKMXa640Bb//SY1+ECYX6VzT6Lcx5frD0V30XieqJ0oX9I2Xj5aoMA==", "dev": true, "requires": { "ajv": "^6.12.4", "debug": "^4.3.2", "espree": "^9.4.0", - "globals": "^13.15.0", + "globals": "^13.19.0", "ignore": "^5.2.0", "import-fresh": "^3.2.1", "js-yaml": "^4.1.0", @@ -17390,9 +17501,9 @@ }, "dependencies": { "globals": { - "version": "13.18.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.18.0.tgz", - "integrity": "sha512-/mR4KI8Ps2spmoc0Ulu9L7agOF0du1CZNQ3dke8yItYlyKNmGrkONemBbd6V8UTc1Wgcqn21t3WYB7dbRmh6/A==", + "version": "13.19.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.19.0.tgz", + "integrity": "sha512-dkQ957uSRWHw7CFXLUtUHQI3g3aWApYhfNR2O6jn/907riyTYKVBmxYVROkBcY614FSSeSJh7Xm7SrUWCxvJMQ==", "dev": true, "requires": { "type-fest": "^0.20.2" @@ -17413,29 +17524,29 @@ "dev": true }, "@graphql-tools/merge": { - "version": "8.3.14", - "resolved": "https://registry.npmjs.org/@graphql-tools/merge/-/merge-8.3.14.tgz", - "integrity": "sha512-zV0MU1DnxJLIB0wpL4N3u21agEiYFsjm6DI130jqHpwF0pR9HkF+Ni65BNfts4zQelP0GjkHltG+opaozAJ1NA==", + "version": "8.3.15", + "resolved": "https://registry.npmjs.org/@graphql-tools/merge/-/merge-8.3.15.tgz", + "integrity": "sha512-hYYOlsqkUlL6oOo7zzuk6hIv7xQzy+x21sgK84d5FWaiWYkLYh9As8myuDd9SD5xovWWQ9m/iRhIOVDEMSyEKA==", "requires": { - "@graphql-tools/utils": "9.1.3", + "@graphql-tools/utils": "9.1.4", "tslib": "^2.4.0" } }, "@graphql-tools/schema": { - "version": "9.0.12", - "resolved": "https://registry.npmjs.org/@graphql-tools/schema/-/schema-9.0.12.tgz", - "integrity": "sha512-DmezcEltQai0V1y96nwm0Kg11FDS/INEFekD4nnVgzBqawvznWqK6D6bujn+cw6kivoIr3Uq//QmU/hBlBzUlQ==", + "version": "9.0.13", + "resolved": "https://registry.npmjs.org/@graphql-tools/schema/-/schema-9.0.13.tgz", + "integrity": "sha512-guRA3fwAtv+M1Kh930P4ydH9aKJTWscIkhVFcWpj/cnjYYxj88jkEJ15ZNiJX/2breNY+sbVgmlgLKb6aXi/Jg==", "requires": { - "@graphql-tools/merge": "8.3.14", - "@graphql-tools/utils": "9.1.3", + "@graphql-tools/merge": "8.3.15", + "@graphql-tools/utils": "9.1.4", "tslib": "^2.4.0", - "value-or-promise": "1.0.11" + "value-or-promise": "1.0.12" } }, "@graphql-tools/utils": { - "version": "9.1.3", - "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-9.1.3.tgz", - "integrity": "sha512-bbJyKhs6awp1/OmP+WKA1GOyu9UbgZGkhIj5srmiMGLHohEOKMjW784Sk0BZil1w2x95UPu0WHw6/d/HVCACCg==", + "version": "9.1.4", + "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-9.1.4.tgz", + "integrity": "sha512-hgIeLt95h9nQgQuzbbdhuZmh+8WV7RZ/6GbTj6t3IU4Zd2zs9yYJ2jgW/krO587GMOY8zCwrjNOMzD40u3l7Vg==", "requires": { "tslib": "^2.4.0" } @@ -17448,9 +17559,9 @@ "requires": {} }, "@humanwhocodes/config-array": { - "version": "0.11.7", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.7.tgz", - "integrity": "sha512-kBbPWzN8oVMLb0hOUYXhmxggL/1cJE6ydvjDIGi9EnAGUyA7cLVKQg+d/Dsm+KZwx2czGHrCmMVLiyg8s5JPKw==", + "version": "0.11.8", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.8.tgz", + "integrity": "sha512-UybHIJzJnR5Qc/MsD9Kr+RpO2h+/P1GhOwdiLPXK5TWk5sgTdu88bTD9UP+CKbPPh5Rni1u0GjAdYQLemG8g+g==", "dev": true, "requires": { "@humanwhocodes/object-schema": "^1.2.1", @@ -19160,14 +19271,14 @@ "integrity": "sha512-Rk4SkJFaXZiznFyC/t77Q0NKS4FL7TLJJsVG2V2oiEq3kJVeTdxysEe/yRWSpnWMe808XRDJ+VFh5pt/FN5plw==" }, "@noble/hashes": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.1.4.tgz", - "integrity": "sha512-+PYsVPrTSqtVjatKt2A/Proukn2Yrz61OBThOCKErc5w2/r1Fh37vbDv0Eah7pyNltrmacjwTvdw3JoR+WE4TA==" + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.1.5.tgz", + "integrity": "sha512-LTMZiiLc+V4v1Yi16TD6aX2gmtKszNye0pQgbaLqkvhIqP7nVsSaJsWloGQjJfJ8offaoP5GtX3yY5swbcJxxQ==" }, "@noble/secp256k1": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/@noble/secp256k1/-/secp256k1-1.7.0.tgz", - "integrity": "sha512-kbacwGSsH/CTout0ZnZWxnW1B+jH/7r/WAAKLBtrRJ/+CUH7lgmQzl3GTrQua3SGKWNSDsS6lmjnDpIJ5Dxyaw==" + "version": "1.7.1", + "resolved": "https://registry.npmjs.org/@noble/secp256k1/-/secp256k1-1.7.1.tgz", + "integrity": "sha512-hOUk6AyBFmqVrv7k5WAw/LpszxVbj9gGN4JRkIX52fdFAj1UA61KXmZDvqVEm+pOyec3+fIeZB02LYa/pWOArw==" }, "@nodelib/fs.scandir": { "version": "2.1.5", @@ -19246,6 +19357,12 @@ "lru-cache": "^7.5.1" } }, + "lru-cache": { + "version": "7.14.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.14.1.tgz", + "integrity": "sha512-ysxwsnTKdAx96aTRdhDOCQfDgbHnt8SK0KY8SEjO0wHinhWOFTESbjVCMPbU1uGXg/ch4lifqx0wfjOawU2+WA==", + "dev": true + }, "npm-package-arg": { "version": "9.1.2", "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-9.1.2.tgz", @@ -19285,6 +19402,14 @@ "promise-retry": "^2.0.1", "semver": "^7.3.5", "which": "^2.0.2" + }, + "dependencies": { + "lru-cache": { + "version": "7.14.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.14.1.tgz", + "integrity": "sha512-ysxwsnTKdAx96aTRdhDOCQfDgbHnt8SK0KY8SEjO0wHinhWOFTESbjVCMPbU1uGXg/ch4lifqx0wfjOawU2+WA==", + "dev": true + } } }, "@npmcli/installed-package-contents": { @@ -19319,9 +19444,9 @@ } }, "glob": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-8.0.3.tgz", - "integrity": "sha512-ull455NHSHI/Y1FqGaaYFaLGkNMMJbavMrEGFXG/PGrg6y7sutWHUHrz6gy6WEBH6akM1M414dWKCNs+IhKdiQ==", + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz", + "integrity": "sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==", "dev": true, "requires": { "fs.realpath": "^1.0.0", @@ -19332,9 +19457,9 @@ } }, "minimatch": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.1.tgz", - "integrity": "sha512-362NP+zlprccbEt/SkxKfRMHnNY85V74mVnpUpNyr3F35covl09Kec7/sEFLt3RA4oXmewtoaanoIf67SE5Y5g==", + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", + "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", "dev": true, "requires": { "brace-expansion": "^2.0.1" @@ -19408,18 +19533,18 @@ } }, "@nrwl/cli": { - "version": "15.3.0", - "resolved": "https://registry.npmjs.org/@nrwl/cli/-/cli-15.3.0.tgz", - "integrity": "sha512-WAki2+puBp6qel/VAxdQmr/L/sLyw8K6bynYNmMl4eIlR5hjefrUChPzUiJDAS9/CUYQNOyva2VV5wofzdv95w==", + "version": "15.5.3", + "resolved": "https://registry.npmjs.org/@nrwl/cli/-/cli-15.5.3.tgz", + "integrity": "sha512-NWf9CWswvdYM6YzXuweaZPAZ2erMtQrrHZdgFbUGeojZBZ+b4TCGzLWNodZj4yQOa/eTwlyPMYO2LEw9CoapDQ==", "dev": true, "requires": { - "nx": "15.3.0" + "nx": "15.5.3" } }, "@nrwl/devkit": { - "version": "15.3.0", - "resolved": "https://registry.npmjs.org/@nrwl/devkit/-/devkit-15.3.0.tgz", - "integrity": "sha512-1O9QLB/eYS6ddw4MZnV4yj4CEqLIbpleZZiG/9w1TaiVO/jfNfXVaxc8EA87XSzMpk2W+/4Qggmabt6gAQaabA==", + "version": "15.5.3", + "resolved": "https://registry.npmjs.org/@nrwl/devkit/-/devkit-15.5.3.tgz", + "integrity": "sha512-GGNLLGXDGWflrpaLimnE6hChfZfq3+XWZ0LJWL0IuCnchngPbNzuyh8S8KPgNKKgq4Nv0hglWefIwMg2UhHysA==", "dev": true, "requires": { "@phenomnomnominal/tsquery": "4.1.1", @@ -19446,68 +19571,74 @@ "requires": { "lru-cache": "^6.0.0" } + }, + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true } } }, "@nrwl/tao": { - "version": "15.3.0", - "resolved": "https://registry.npmjs.org/@nrwl/tao/-/tao-15.3.0.tgz", - "integrity": "sha512-alyzKKSgfgPwQ/FUozvk43VGOZHyNMiSM6Udl49ZaQwT77GXRFkrOu21odW6dciWPd3iUOUjfJISNqrEJmxvpw==", + "version": "15.5.3", + "resolved": "https://registry.npmjs.org/@nrwl/tao/-/tao-15.5.3.tgz", + "integrity": "sha512-vgPLIW9IoBfQ4IkHRT5RC4LqNwFBK5jmHYmFIRgbIeFRudFBbnpmOaKRME0OwN7qJ6964PVVbzahAPvYVD02xw==", "dev": true, "requires": { - "nx": "15.3.0" + "nx": "15.5.3" } }, "@octokit/auth-token": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/@octokit/auth-token/-/auth-token-3.0.2.tgz", - "integrity": "sha512-pq7CwIMV1kmzkFTimdwjAINCXKTajZErLB4wMLYapR2nuB/Jpr66+05wOTZMSCBXP6n4DdDWT2W19Bm17vU69Q==", + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@octokit/auth-token/-/auth-token-3.0.3.tgz", + "integrity": "sha512-/aFM2M4HVDBT/jjDBa84sJniv1t9Gm/rLkalaz9htOm+L+8JMj1k9w0CkUdcxNyNxZPlTxKPVko+m1VlM58ZVA==", "dev": true, "requires": { - "@octokit/types": "^8.0.0" + "@octokit/types": "^9.0.0" } }, "@octokit/core": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/@octokit/core/-/core-4.1.0.tgz", - "integrity": "sha512-Czz/59VefU+kKDy+ZfDwtOIYIkFjExOKf+HA92aiTZJ6EfWpFzYQWw0l54ji8bVmyhc+mGaLUbSUmXazG7z5OQ==", + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/@octokit/core/-/core-4.2.0.tgz", + "integrity": "sha512-AgvDRUg3COpR82P7PBdGZF/NNqGmtMq2NiPqeSsDIeCfYFOZ9gddqWNQHnFdEUf+YwOj4aZYmJnlPp7OXmDIDg==", "dev": true, "requires": { "@octokit/auth-token": "^3.0.0", "@octokit/graphql": "^5.0.0", "@octokit/request": "^6.0.0", "@octokit/request-error": "^3.0.0", - "@octokit/types": "^8.0.0", + "@octokit/types": "^9.0.0", "before-after-hook": "^2.2.0", "universal-user-agent": "^6.0.0" } }, "@octokit/endpoint": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/@octokit/endpoint/-/endpoint-7.0.3.tgz", - "integrity": "sha512-57gRlb28bwTsdNXq+O3JTQ7ERmBTuik9+LelgcLIVfYwf235VHbN9QNo4kXExtp/h8T423cR5iJThKtFYxC7Lw==", + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/@octokit/endpoint/-/endpoint-7.0.4.tgz", + "integrity": "sha512-hXJP43VT2IrUxBCNIahta8qawpIzLvCjHLCuDDsdIPbd6+jPwsc3KGl/kdQ37mLd+sdiJm6c9qKI7k5CjE0Z9A==", "dev": true, "requires": { - "@octokit/types": "^8.0.0", + "@octokit/types": "^9.0.0", "is-plain-object": "^5.0.0", "universal-user-agent": "^6.0.0" } }, "@octokit/graphql": { - "version": "5.0.4", - "resolved": "https://registry.npmjs.org/@octokit/graphql/-/graphql-5.0.4.tgz", - "integrity": "sha512-amO1M5QUQgYQo09aStR/XO7KAl13xpigcy/kI8/N1PnZYSS69fgte+xA4+c2DISKqUZfsh0wwjc2FaCt99L41A==", + "version": "5.0.5", + "resolved": "https://registry.npmjs.org/@octokit/graphql/-/graphql-5.0.5.tgz", + "integrity": "sha512-Qwfvh3xdqKtIznjX9lz2D458r7dJPP8l6r4GQkIdWQouZwHQK0mVT88uwiU2bdTU2OtT1uOlKpRciUWldpG0yQ==", "dev": true, "requires": { "@octokit/request": "^6.0.0", - "@octokit/types": "^8.0.0", + "@octokit/types": "^9.0.0", "universal-user-agent": "^6.0.0" } }, "@octokit/openapi-types": { - "version": "14.0.0", - "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-14.0.0.tgz", - "integrity": "sha512-HNWisMYlR8VCnNurDU6os2ikx0s0VyEjDYHNS/h4cgb8DeOxQ0n72HyinUtdDVxJhFy3FWLGl0DJhfEWk3P5Iw==", + "version": "16.0.0", + "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-16.0.0.tgz", + "integrity": "sha512-JbFWOqTJVLHZSUUoF4FzAZKYtqdxWu9Z5m2QQnOyEa04fOFljvyh7D3GYKbfuaSWisqehImiVIMG4eyJeP5VEA==", "dev": true }, "@octokit/plugin-enterprise-rest": { @@ -19517,12 +19648,12 @@ "dev": true }, "@octokit/plugin-paginate-rest": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-5.0.1.tgz", - "integrity": "sha512-7A+rEkS70pH36Z6JivSlR7Zqepz3KVucEFVDnSrgHXzG7WLAzYwcHZbKdfTXHwuTHbkT1vKvz7dHl1+HNf6Qyw==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-6.0.0.tgz", + "integrity": "sha512-Sq5VU1PfT6/JyuXPyt04KZNVsFOSBaYOAq2QRZUwzVlI10KFvcbUo8lR258AAQL1Et60b0WuVik+zOWKLuDZxw==", "dev": true, "requires": { - "@octokit/types": "^8.0.0" + "@octokit/types": "^9.0.0" } }, "@octokit/plugin-request-log": { @@ -19533,59 +19664,59 @@ "requires": {} }, "@octokit/plugin-rest-endpoint-methods": { - "version": "6.7.0", - "resolved": "https://registry.npmjs.org/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-6.7.0.tgz", - "integrity": "sha512-orxQ0fAHA7IpYhG2flD2AygztPlGYNAdlzYz8yrD8NDgelPfOYoRPROfEyIe035PlxvbYrgkfUZIhSBKju/Cvw==", + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-7.0.1.tgz", + "integrity": "sha512-pnCaLwZBudK5xCdrR823xHGNgqOzRnJ/mpC/76YPpNP7DybdsJtP7mdOwh+wYZxK5jqeQuhu59ogMI4NRlBUvA==", "dev": true, "requires": { - "@octokit/types": "^8.0.0", + "@octokit/types": "^9.0.0", "deprecation": "^2.3.1" } }, "@octokit/request": { - "version": "6.2.2", - "resolved": "https://registry.npmjs.org/@octokit/request/-/request-6.2.2.tgz", - "integrity": "sha512-6VDqgj0HMc2FUX2awIs+sM6OwLgwHvAi4KCK3mT2H2IKRt6oH9d0fej5LluF5mck1lRR/rFWN0YIDSYXYSylbw==", + "version": "6.2.3", + "resolved": "https://registry.npmjs.org/@octokit/request/-/request-6.2.3.tgz", + "integrity": "sha512-TNAodj5yNzrrZ/VxP+H5HiYaZep0H3GU0O7PaF+fhDrt8FPrnkei9Aal/txsN/1P7V3CPiThG0tIvpPDYUsyAA==", "dev": true, "requires": { "@octokit/endpoint": "^7.0.0", "@octokit/request-error": "^3.0.0", - "@octokit/types": "^8.0.0", + "@octokit/types": "^9.0.0", "is-plain-object": "^5.0.0", "node-fetch": "^2.6.7", "universal-user-agent": "^6.0.0" } }, "@octokit/request-error": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/@octokit/request-error/-/request-error-3.0.2.tgz", - "integrity": "sha512-WMNOFYrSaX8zXWoJg9u/pKgWPo94JXilMLb2VManNOby9EZxrQaBe/QSC4a1TzpAlpxofg2X/jMnCyZgL6y7eg==", + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@octokit/request-error/-/request-error-3.0.3.tgz", + "integrity": "sha512-crqw3V5Iy2uOU5Np+8M/YexTlT8zxCfI+qu+LxUB7SZpje4Qmx3mub5DfEKSO8Ylyk0aogi6TYdf6kxzh2BguQ==", "dev": true, "requires": { - "@octokit/types": "^8.0.0", + "@octokit/types": "^9.0.0", "deprecation": "^2.0.0", "once": "^1.4.0" } }, "@octokit/rest": { - "version": "19.0.5", - "resolved": "https://registry.npmjs.org/@octokit/rest/-/rest-19.0.5.tgz", - "integrity": "sha512-+4qdrUFq2lk7Va+Qff3ofREQWGBeoTKNqlJO+FGjFP35ZahP+nBenhZiGdu8USSgmq4Ky3IJ/i4u0xbLqHaeow==", + "version": "19.0.7", + "resolved": "https://registry.npmjs.org/@octokit/rest/-/rest-19.0.7.tgz", + "integrity": "sha512-HRtSfjrWmWVNp2uAkEpQnuGMJsu/+dBr47dRc5QVgsCbnIc1+GFEaoKBWkYG+zjrsHpSqcAElMio+n10c0b5JA==", "dev": true, "requires": { "@octokit/core": "^4.1.0", - "@octokit/plugin-paginate-rest": "^5.0.0", + "@octokit/plugin-paginate-rest": "^6.0.0", "@octokit/plugin-request-log": "^1.0.4", - "@octokit/plugin-rest-endpoint-methods": "^6.7.0" + "@octokit/plugin-rest-endpoint-methods": "^7.0.0" } }, "@octokit/types": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/@octokit/types/-/types-8.0.0.tgz", - "integrity": "sha512-65/TPpOJP1i3K4lBJMnWqPUJ6zuOtzhtagDvydAWbEXpbFYA0oMKKyLb95NFZZP0lSh/4b6K+DQlzvYQJQQePg==", + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/@octokit/types/-/types-9.0.0.tgz", + "integrity": "sha512-LUewfj94xCMH2rbD5YJ+6AQ4AVjFYTgpp6rboWM5T7N3IsIF65SBEOVcYMGAEzO/kKNiNaW4LoWtoThOhH06gw==", "dev": true, "requires": { - "@octokit/openapi-types": "^14.0.0" + "@octokit/openapi-types": "^16.0.0" } }, "@parcel/watcher": { @@ -19659,15 +19790,16 @@ } }, "@solana/web3.js": { - "version": "1.70.1", - "resolved": "https://registry.npmjs.org/@solana/web3.js/-/web3.js-1.70.1.tgz", - "integrity": "sha512-AnaqCF1cJ3w7d0yhvLGAKAcRI+n5o+ursQihhoTe4cUh8/9d4gbT73SoHYElS7e67OtAgLmSfbcC5hcOAgdvnQ==", + "version": "1.73.0", + "resolved": "https://registry.npmjs.org/@solana/web3.js/-/web3.js-1.73.0.tgz", + "integrity": "sha512-YrgX3Py7ylh8NYkbanoINUPCj//bWUjYZ5/WPy9nQ9SK3Cl7QWCR+NmbDjmC/fTspZGR+VO9LTQslM++jr5PRw==", "requires": { "@babel/runtime": "^7.12.5", "@noble/ed25519": "^1.7.0", "@noble/hashes": "^1.1.2", "@noble/secp256k1": "^1.6.3", "@solana/buffer-layout": "^4.0.0", + "agentkeepalive": "^4.2.1", "bigint-buffer": "^1.1.5", "bn.js": "^5.0.0", "borsh": "^0.7.0", @@ -19687,19 +19819,19 @@ "dev": true }, "@types/abstract-leveldown": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@types/abstract-leveldown/-/abstract-leveldown-7.2.0.tgz", - "integrity": "sha512-q5veSX6zjUy/DlDhR4Y4cU0k2Ar+DT2LUraP00T19WLmTO6Se1djepCCaqU6nQrwcJ5Hyo/CWqxTzrrFg8eqbQ==", + "version": "7.2.1", + "resolved": "https://registry.npmjs.org/@types/abstract-leveldown/-/abstract-leveldown-7.2.1.tgz", + "integrity": "sha512-YK8irIC+eMrrmtGx0H4ISn9GgzLd9dojZWJaMbjp1YHLl2VqqNFBNrL5Q3KjGf4VE3sf/4hmq6EhQZ7kZp1NoQ==", "dev": true }, "@types/babel__core": { - "version": "7.1.20", - "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.1.20.tgz", - "integrity": "sha512-PVb6Bg2QuscZ30FvOU7z4guG6c926D9YRvOxEaelzndpMsvP+YM74Q/dAFASpg2l6+XLalxSGxcq/lrgYWZtyQ==", + "version": "7.20.0", + "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.0.tgz", + "integrity": "sha512-+n8dL/9GWblDO0iU6eZAwEIJVr5DWigtle+Q6HLOrh/pdbXOhOtqzq8VPPE2zvNJzSKY4vH/z3iT3tn0A3ypiQ==", "dev": true, "requires": { - "@babel/parser": "^7.1.0", - "@babel/types": "^7.0.0", + "@babel/parser": "^7.20.7", + "@babel/types": "^7.20.7", "@types/babel__generator": "*", "@types/babel__template": "*", "@types/babel__traverse": "*" @@ -19796,13 +19928,13 @@ } }, "@types/express": { - "version": "4.17.14", - "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.14.tgz", - "integrity": "sha512-TEbt+vaPFQ+xpxFLFssxUDXj5cWCxZJjIcB7Yg0k0GMHGtgtQgpvx/MUQUeAkNbA9AAGrwkAsoeItdTgS7FMyg==", + "version": "4.17.15", + "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.15.tgz", + "integrity": "sha512-Yv0k4bXGOH+8a+7bELd2PqHQsuiANB+A8a4gnQrkRWzrkKlb6KHaVvyXhqs04sVW/OWlbPyYxRgYlIXLfrufMQ==", "dev": true, "requires": { "@types/body-parser": "*", - "@types/express-serve-static-core": "^4.17.18", + "@types/express-serve-static-core": "^4.17.31", "@types/qs": "*", "@types/serve-static": "*" } @@ -19817,9 +19949,9 @@ } }, "@types/express-serve-static-core": { - "version": "4.17.31", - "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.31.tgz", - "integrity": "sha512-DxMhY+NAsTwMMFHBTtJFNp5qiHKJ7TeqOo23zVEM9alT1Ml27Q3xcTH0xwxn7Q0BbMcVEJOs/7aQtUWupUQN3Q==", + "version": "4.17.32", + "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.32.tgz", + "integrity": "sha512-aI5h/VOkxOF2Z1saPy0Zsxs5avets/iaiAJYznQFm5By/pamU31xWKL//epiF4OfUA2qTOc9PV6tCUjhO8wlZA==", "dev": true, "requires": { "@types/node": "*", @@ -19828,9 +19960,9 @@ } }, "@types/graceful-fs": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.5.tgz", - "integrity": "sha512-anKkLmZZ+xm4p8JWBf4hElkM4XR+EZeA2M9BAkkTldmcyDY4mbdIJnRghDJH3Ov5ooY7/UAoENtmdMSkaAd7Cw==", + "version": "4.1.6", + "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.6.tgz", + "integrity": "sha512-Sig0SNORX9fdW+bQuTEovKj3uHcUL6LQKbCrrqb1X7J6/ReAbhCXRAhc+SMejhLELFj2QcyuxmUooZ4bt5ReSw==", "dev": true, "requires": { "@types/node": "*" @@ -19904,9 +20036,9 @@ "dev": true }, "@types/memdown": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@types/memdown/-/memdown-3.0.0.tgz", - "integrity": "sha512-3VlN94b29j7/9XPGfy1kTPmyA5YfFiC0miQRpOCbCJOALy2ejM2IzgDB7fIBTYyf2isr1r8h3qbZmT/1RsCP9Q==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@types/memdown/-/memdown-3.0.1.tgz", + "integrity": "sha512-Nk5PgT+NS5NvKFu7NEeE1hkiiIOM3PF7ecUgafwUOjZGNyUQbpIxLgSfwdfxHmeHD/FmcDy3x8y5YWk5t0M2oA==", "dev": true, "requires": { "@types/abstract-leveldown": "*" @@ -19948,9 +20080,9 @@ "dev": true }, "@types/prettier": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.7.1.tgz", - "integrity": "sha512-ri0UmynRRvZiiUJdiz38MmIblKK+oH30MztdBVR95dv/Ubw6neWSb8u1XpRb72L4qsZOhz+L+z9JD40SJmfWow==", + "version": "2.7.2", + "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.7.2.tgz", + "integrity": "sha512-KufADq8uQqo1pYKVIYzfKbJfBAc0sOeXqGbFaSpv8MRmC/zXgowNZmFcbngndGk922QDmOASEXUZCaY48gs4cg==", "dev": true }, "@types/qs": { @@ -20002,9 +20134,9 @@ } }, "@types/yargs": { - "version": "17.0.17", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.17.tgz", - "integrity": "sha512-72bWxFKTK6uwWJAVT+3rF6Jo6RTojiJ27FQo8Rf60AL+VZbzoVPnMFhKsUnbjR8A3BTCYQ7Mv3hnl8T0A+CX9g==", + "version": "17.0.20", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.20.tgz", + "integrity": "sha512-eknWrTHofQuPk2iuqDm1waA7V6xPlbgBoaaXEgYkClhLOnB0TtbW+srJaOToAgawPxPlHQzwypFA2bhZaUGP5A==", "dev": true, "requires": { "@types/yargs-parser": "*" @@ -20017,14 +20149,14 @@ "dev": true }, "@typescript-eslint/eslint-plugin": { - "version": "5.46.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.46.0.tgz", - "integrity": "sha512-QrZqaIOzJAjv0sfjY4EjbXUi3ZOFpKfzntx22gPGr9pmFcTjcFw/1sS1LJhEubfAGwuLjNrPV0rH+D1/XZFy7Q==", + "version": "5.48.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.48.2.tgz", + "integrity": "sha512-sR0Gja9Ky1teIq4qJOl0nC+Tk64/uYdX+mi+5iB//MH8gwyx8e3SOyhEzeLZEFEEfCaLf8KJq+Bd/6je1t+CAg==", "dev": true, "requires": { - "@typescript-eslint/scope-manager": "5.46.0", - "@typescript-eslint/type-utils": "5.46.0", - "@typescript-eslint/utils": "5.46.0", + "@typescript-eslint/scope-manager": "5.48.2", + "@typescript-eslint/type-utils": "5.48.2", + "@typescript-eslint/utils": "5.48.2", "debug": "^4.3.4", "ignore": "^5.2.0", "natural-compare-lite": "^1.4.0", @@ -20034,53 +20166,53 @@ } }, "@typescript-eslint/parser": { - "version": "5.46.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.46.0.tgz", - "integrity": "sha512-joNO6zMGUZg+C73vwrKXCd8usnsmOYmgW/w5ZW0pG0RGvqeznjtGDk61EqqTpNrFLUYBW2RSBFrxdAZMqA4OZA==", + "version": "5.48.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.48.2.tgz", + "integrity": "sha512-38zMsKsG2sIuM5Oi/olurGwYJXzmtdsHhn5mI/pQogP+BjYVkK5iRazCQ8RGS0V+YLk282uWElN70zAAUmaYHw==", "dev": true, "requires": { - "@typescript-eslint/scope-manager": "5.46.0", - "@typescript-eslint/types": "5.46.0", - "@typescript-eslint/typescript-estree": "5.46.0", + "@typescript-eslint/scope-manager": "5.48.2", + "@typescript-eslint/types": "5.48.2", + "@typescript-eslint/typescript-estree": "5.48.2", "debug": "^4.3.4" } }, "@typescript-eslint/scope-manager": { - "version": "5.46.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.46.0.tgz", - "integrity": "sha512-7wWBq9d/GbPiIM6SqPK9tfynNxVbfpihoY5cSFMer19OYUA3l4powA2uv0AV2eAZV6KoAh6lkzxv4PoxOLh1oA==", + "version": "5.48.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.48.2.tgz", + "integrity": "sha512-zEUFfonQid5KRDKoI3O+uP1GnrFd4tIHlvs+sTJXiWuypUWMuDaottkJuR612wQfOkjYbsaskSIURV9xo4f+Fw==", "dev": true, "requires": { - "@typescript-eslint/types": "5.46.0", - "@typescript-eslint/visitor-keys": "5.46.0" + "@typescript-eslint/types": "5.48.2", + "@typescript-eslint/visitor-keys": "5.48.2" } }, "@typescript-eslint/type-utils": { - "version": "5.46.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.46.0.tgz", - "integrity": "sha512-dwv4nimVIAsVS2dTA0MekkWaRnoYNXY26dKz8AN5W3cBFYwYGFQEqm/cG+TOoooKlncJS4RTbFKgcFY/pOiBCg==", + "version": "5.48.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.48.2.tgz", + "integrity": "sha512-QVWx7J5sPMRiOMJp5dYshPxABRoZV1xbRirqSk8yuIIsu0nvMTZesKErEA3Oix1k+uvsk8Cs8TGJ6kQ0ndAcew==", "dev": true, "requires": { - "@typescript-eslint/typescript-estree": "5.46.0", - "@typescript-eslint/utils": "5.46.0", + "@typescript-eslint/typescript-estree": "5.48.2", + "@typescript-eslint/utils": "5.48.2", "debug": "^4.3.4", "tsutils": "^3.21.0" } }, "@typescript-eslint/types": { - "version": "5.46.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.46.0.tgz", - "integrity": "sha512-wHWgQHFB+qh6bu0IAPAJCdeCdI0wwzZnnWThlmHNY01XJ9Z97oKqKOzWYpR2I83QmshhQJl6LDM9TqMiMwJBTw==", + "version": "5.48.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.48.2.tgz", + "integrity": "sha512-hE7dA77xxu7ByBc6KCzikgfRyBCTst6dZQpwaTy25iMYOnbNljDT4hjhrGEJJ0QoMjrfqrx+j1l1B9/LtKeuqA==", "dev": true }, "@typescript-eslint/typescript-estree": { - "version": "5.46.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.46.0.tgz", - "integrity": "sha512-kDLNn/tQP+Yp8Ro2dUpyyVV0Ksn2rmpPpB0/3MO874RNmXtypMwSeazjEN/Q6CTp8D7ExXAAekPEcCEB/vtJkw==", + "version": "5.48.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.48.2.tgz", + "integrity": "sha512-bibvD3z6ilnoVxUBFEgkO0k0aFvUc4Cttt0dAreEr+nrAHhWzkO83PEVVuieK3DqcgL6VAK5dkzK8XUVja5Zcg==", "dev": true, "requires": { - "@typescript-eslint/types": "5.46.0", - "@typescript-eslint/visitor-keys": "5.46.0", + "@typescript-eslint/types": "5.48.2", + "@typescript-eslint/visitor-keys": "5.48.2", "debug": "^4.3.4", "globby": "^11.1.0", "is-glob": "^4.0.3", @@ -20089,28 +20221,28 @@ } }, "@typescript-eslint/utils": { - "version": "5.46.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.46.0.tgz", - "integrity": "sha512-4O+Ps1CRDw+D+R40JYh5GlKLQERXRKW5yIQoNDpmXPJ+C7kaPF9R7GWl+PxGgXjB3PQCqsaaZUpZ9dG4U6DO7g==", + "version": "5.48.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.48.2.tgz", + "integrity": "sha512-2h18c0d7jgkw6tdKTlNaM7wyopbLRBiit8oAxoP89YnuBOzCZ8g8aBCaCqq7h208qUTroL7Whgzam7UY3HVLow==", "dev": true, "requires": { "@types/json-schema": "^7.0.9", "@types/semver": "^7.3.12", - "@typescript-eslint/scope-manager": "5.46.0", - "@typescript-eslint/types": "5.46.0", - "@typescript-eslint/typescript-estree": "5.46.0", + "@typescript-eslint/scope-manager": "5.48.2", + "@typescript-eslint/types": "5.48.2", + "@typescript-eslint/typescript-estree": "5.48.2", "eslint-scope": "^5.1.1", "eslint-utils": "^3.0.0", "semver": "^7.3.7" } }, "@typescript-eslint/visitor-keys": { - "version": "5.46.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.46.0.tgz", - "integrity": "sha512-E13gBoIXmaNhwjipuvQg1ByqSAu/GbEpP/qzFihugJ+MomtoJtFAJG/+2DRPByf57B863m0/q7Zt16V9ohhANw==", + "version": "5.48.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.48.2.tgz", + "integrity": "sha512-z9njZLSkwmjFWUelGEwEbdf4NwKvfHxvGC0OcGN1Hp/XNDIcJ7D5DpPNPv6x6/mFvc1tQHsaWmpD/a4gOvvCJQ==", "dev": true, "requires": { - "@typescript-eslint/types": "5.46.0", + "@typescript-eslint/types": "5.48.2", "eslint-visitor-keys": "^3.3.0" } }, @@ -20148,9 +20280,9 @@ "dev": true }, "@yarnpkg/parsers": { - "version": "3.0.0-rc.32", - "resolved": "https://registry.npmjs.org/@yarnpkg/parsers/-/parsers-3.0.0-rc.32.tgz", - "integrity": "sha512-Sz2g88b3iAu2jpMnhtps2bRX2GAAOvanOxGcVi+o7ybGjLetxK23o2cHskXKypvXxtZTsJegel5pUWSPpYphww==", + "version": "3.0.0-rc.36", + "resolved": "https://registry.npmjs.org/@yarnpkg/parsers/-/parsers-3.0.0-rc.36.tgz", + "integrity": "sha512-PvTlgUr7WO2qDnph8tVdItbJlo9hEcGSVd8+ppn/tvcn8XZUaD1z4EgvMEZcJYZi3LmHJGzSgVZzcFE+zQiz8A==", "dev": true, "requires": { "js-yaml": "^3.10.0", @@ -20220,9 +20352,9 @@ } }, "acorn": { - "version": "8.8.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.1.tgz", - "integrity": "sha512-7zFpHzhnqYKrkYdUjF1HI1bzd0VygEGX8lFk4k5zVMqHEoES+P+7TKI+EvLO9WVMJ8eekdO0aDEK044xTXwPPA==", + "version": "8.8.2", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.2.tgz", + "integrity": "sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==", "dev": true }, "acorn-jsx": { @@ -20251,7 +20383,6 @@ "version": "4.2.1", "resolved": "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-4.2.1.tgz", "integrity": "sha512-Zn4cw2NEqd+9fiSVWMscnjyQ1a8Yfoc5oBajLeo5w+YBHgDUcEBY2hS4YpTz6iN5f/2zQiktcuM6tS8x1p9dpA==", - "dev": true, "requires": { "debug": "^4.1.0", "depd": "^1.1.2", @@ -20409,9 +20540,9 @@ "dev": true }, "axios": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/axios/-/axios-1.2.1.tgz", - "integrity": "sha512-I88cFiGu9ryt/tfVEi4kX2SITsvDddTajXTOFmt2uK1ZVA8LytjtdeyefdQWEf5PU8w+4SSJDoYnggflB5tW4A==", + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.2.3.tgz", + "integrity": "sha512-pdDkMYJeuXLZ6Xj/Q5J3Phpe+jbGdsSzlQaFVkMQzRUL05+6+tetX8TV3p4HrU4kzuO9bt+io/yGQxuyxA/xcw==", "dev": true, "requires": { "follow-redirects": "^1.15.0", @@ -20616,12 +20747,6 @@ } } }, - "binary-extensions": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", - "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", - "dev": true - }, "bindings": { "version": "1.5.0", "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz", @@ -20800,9 +20925,9 @@ } }, "glob": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-8.0.3.tgz", - "integrity": "sha512-ull455NHSHI/Y1FqGaaYFaLGkNMMJbavMrEGFXG/PGrg6y7sutWHUHrz6gy6WEBH6akM1M414dWKCNs+IhKdiQ==", + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz", + "integrity": "sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==", "dev": true, "requires": { "fs.realpath": "^1.0.0", @@ -20812,10 +20937,16 @@ "once": "^1.3.0" } }, + "lru-cache": { + "version": "7.14.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.14.1.tgz", + "integrity": "sha512-ysxwsnTKdAx96aTRdhDOCQfDgbHnt8SK0KY8SEjO0wHinhWOFTESbjVCMPbU1uGXg/ch4lifqx0wfjOawU2+WA==", + "dev": true + }, "minimatch": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.1.tgz", - "integrity": "sha512-362NP+zlprccbEt/SkxKfRMHnNY85V74mVnpUpNyr3F35covl09Kec7/sEFLt3RA4oXmewtoaanoIf67SE5Y5g==", + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", + "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", "dev": true, "requires": { "brace-expansion": "^2.0.1" @@ -20857,9 +20988,9 @@ } }, "caniuse-lite": { - "version": "1.0.30001439", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001439.tgz", - "integrity": "sha512-1MgUzEkoMO6gKfXflStpYgZDlFM7M/ck/bgfVCACO5vnAf0fXoNVHdWtqGU+MYca+4bL9Z5bpOVmR33cWW9G2A==", + "version": "1.0.30001447", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001447.tgz", + "integrity": "sha512-bdKU1BQDPeEXe9A39xJnGtY0uRq/z5osrnXUw0TcK+EYno45Y+U7QU9HhHEyzvMDffpYadFXi3idnSNkcwLkTw==", "dev": true }, "catering": { @@ -20891,33 +21022,6 @@ "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==", "dev": true }, - "chokidar": { - "version": "3.5.3", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", - "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", - "dev": true, - "requires": { - "anymatch": "~3.1.2", - "braces": "~3.0.2", - "fsevents": "~2.3.2", - "glob-parent": "~5.1.2", - "is-binary-path": "~2.1.0", - "is-glob": "~4.0.1", - "normalize-path": "~3.0.0", - "readdirp": "~3.6.0" - }, - "dependencies": { - "glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dev": true, - "requires": { - "is-glob": "^4.0.1" - } - } - } - }, "chownr": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", @@ -20925,9 +21029,9 @@ "dev": true }, "ci-info": { - "version": "3.7.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.7.0.tgz", - "integrity": "sha512-2CpRNYmImPx+RXKLq6jko/L07phmS9I02TyqkcNU20GCF/GgaWvc58hPtjxDX8lPpkdwc9sNh72V9k00S7ezog==", + "version": "3.7.1", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.7.1.tgz", + "integrity": "sha512-4jYS4MOAaCIStSRwiuxc4B8MYhIe676yO1sYGzARnjXkWpmzZMMYxY6zu8WYWDhSuth5zhrQ1rhNSibyyvv4/w==", "dev": true }, "cjs-module-lexer": { @@ -21322,9 +21426,9 @@ "dev": true }, "cookiejar": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/cookiejar/-/cookiejar-2.1.3.tgz", - "integrity": "sha512-JxbCBUdrfr6AQjOXrxoTvAMJO4HBTUIlBzslcJPAz+/KT8yk53fXun51u+RenNYvad/+Vc2DIz5o9UxlCDymFQ==", + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/cookiejar/-/cookiejar-2.1.4.tgz", + "integrity": "sha512-LDx6oHrK+PhzLKJU9j5S7/Y3jM/mUHvD/DeI1WQmJn652iPC5Y4TBzC9l+5OMOXlyTTA+SmVUPm0HQUwpD5Jqw==", "dev": true }, "core-util-is": { @@ -21397,7 +21501,6 @@ "version": "4.3.4", "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dev": true, "requires": { "ms": "2.1.2" } @@ -21491,8 +21594,7 @@ "depd": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", - "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==", - "dev": true + "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==" }, "dependency-tree": { "version": "8.1.2", @@ -22044,13 +22146,13 @@ } }, "eslint": { - "version": "8.29.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.29.0.tgz", - "integrity": "sha512-isQ4EEiyUjZFbEKvEGJKKGBwXtvXX+zJbkVKCgTuB9t/+jUBcy8avhkEwWJecI15BkRkOYmvIM5ynbhRjEkoeg==", + "version": "8.32.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.32.0.tgz", + "integrity": "sha512-nETVXpnthqKPFyuY2FNjz/bEd6nbosRgKbkgS/y1C7LJop96gYHWpiguLecMHQ2XCPxn77DS0P+68WzG6vkZSQ==", "dev": true, "requires": { - "@eslint/eslintrc": "^1.3.3", - "@humanwhocodes/config-array": "^0.11.6", + "@eslint/eslintrc": "^1.4.1", + "@humanwhocodes/config-array": "^0.11.8", "@humanwhocodes/module-importer": "^1.0.1", "@nodelib/fs.walk": "^1.2.8", "ajv": "^6.10.0", @@ -22069,7 +22171,7 @@ "file-entry-cache": "^6.0.1", "find-up": "^5.0.0", "glob-parent": "^6.0.2", - "globals": "^13.15.0", + "globals": "^13.19.0", "grapheme-splitter": "^1.0.4", "ignore": "^5.2.0", "import-fresh": "^3.0.0", @@ -22147,9 +22249,9 @@ "dev": true }, "globals": { - "version": "13.18.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.18.0.tgz", - "integrity": "sha512-/mR4KI8Ps2spmoc0Ulu9L7agOF0du1CZNQ3dke8yItYlyKNmGrkONemBbd6V8UTc1Wgcqn21t3WYB7dbRmh6/A==", + "version": "13.19.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.19.0.tgz", + "integrity": "sha512-dkQ957uSRWHw7CFXLUtUHQI3g3aWApYhfNR2O6jn/907riyTYKVBmxYVROkBcY614FSSeSJh7Xm7SrUWCxvJMQ==", "dev": true, "requires": { "type-fest": "^0.20.2" @@ -22179,9 +22281,9 @@ } }, "eslint-config-prettier": { - "version": "8.5.0", - "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-8.5.0.tgz", - "integrity": "sha512-obmWKLUNCnhtQRKc+tmnYuQl0pFU1ibYJQ5BGhTVB08bHe9wC8qUeG7c08dj9XX+AuPj1YSGSQIHl1pnDHZR0Q==", + "version": "8.6.0", + "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-8.6.0.tgz", + "integrity": "sha512-bAF0eLpLVqP5oEVUFKpMA+NnRFICwn9X8B5jrR9FcqnYBuPbqWEjTEspPWMj5ye6czoSLDweCzSo3Ko7gGrZaA==", "dev": true, "requires": {} }, @@ -22551,9 +22653,9 @@ "integrity": "sha512-wpYMUmFu5f00Sm0cj2pfivpmawLZ0NKdviQ4w9zJeR8JVtOpOxHmLaJuj0vxvGqMJQWyP/COUkF75/57OKyRag==" }, "fastq": { - "version": "1.14.0", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.14.0.tgz", - "integrity": "sha512-eR2D+V9/ExcbF9ls441yIuN6TI2ED1Y2ZcA5BmMtJsOkWOFRJQ0Jt0g1UwqXJJVAb+V+umH5Dfr8oh4EVP7VVg==", + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.15.0.tgz", + "integrity": "sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==", "dev": true, "requires": { "reusify": "^1.0.4" @@ -22610,9 +22712,9 @@ } }, "minimatch": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.1.tgz", - "integrity": "sha512-362NP+zlprccbEt/SkxKfRMHnNY85V74mVnpUpNyr3F35covl09Kec7/sEFLt3RA4oXmewtoaanoIf67SE5Y5g==", + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", + "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", "dev": true, "requires": { "brace-expansion": "^2.0.1" @@ -22714,9 +22816,9 @@ } }, "formidable": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/formidable/-/formidable-2.1.1.tgz", - "integrity": "sha512-0EcS9wCFEzLvfiks7omJ+SiYJAiD+TzK4Pcw1UlUoGnhUxDcMKjt0P7x8wEb0u6OHu8Nb98WG3nxtlF5C7bvUQ==", + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/formidable/-/formidable-2.1.2.tgz", + "integrity": "sha512-CM3GuJ57US06mlpQ47YcunuUZ9jpm8Vx+P2CGt2j7HpgkKZO/DJYQ0Bobim8G6PFQmK5lOqOOdUXboU+h73A4g==", "dev": true, "requires": { "dezalgo": "^1.0.4", @@ -22816,9 +22918,9 @@ "dev": true }, "get-intrinsic": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.3.tgz", - "integrity": "sha512-QJVz1Tj7MS099PevUG5jvnt9tSkXN8K14dxQlikJuPt4uD9hHAHjLyLBiLR5zELelBdD9QNRAXZzsJx0WaDL9A==", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.0.tgz", + "integrity": "sha512-L049y6nFOuom5wGyRc3/gdTLO94dySVKRACj1RmJZBQXlbTMhtNIgkWkUHq+jYmZvKf14EW1EoJnnjbmoHij0Q==", "dev": true, "requires": { "function-bind": "^1.1.1", @@ -23075,12 +23177,12 @@ } }, "graphql-tools": { - "version": "8.3.14", - "resolved": "https://registry.npmjs.org/graphql-tools/-/graphql-tools-8.3.14.tgz", - "integrity": "sha512-elOdgkIAA7mYT0JHUb/tK0wPsxa8mFGBTkEXyhczPJE4v4tNYuuBNTgY+e5f0+00fKX5K9kEVxbYCTGoteMS0Q==", + "version": "8.3.15", + "resolved": "https://registry.npmjs.org/graphql-tools/-/graphql-tools-8.3.15.tgz", + "integrity": "sha512-U89rr+l7Dj1BWg10S+75SFBzy3juhXrhOk9KAEkXfdCgY/xfgod1s4xbkYaajQie577SLFFvodVJZwDw860a5g==", "requires": { "@apollo/client": "~3.2.5 || ~3.3.0 || ~3.4.0 || ~3.5.0 || ~3.6.0 || ~3.7.0", - "@graphql-tools/schema": "9.0.12", + "@graphql-tools/schema": "9.0.13", "tslib": "^2.4.0" } }, @@ -23177,6 +23279,12 @@ "requires": { "yallist": "^4.0.0" } + }, + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true } } }, @@ -23223,15 +23331,14 @@ "version": "1.2.1", "resolved": "https://registry.npmjs.org/humanize-ms/-/humanize-ms-1.2.1.tgz", "integrity": "sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ==", - "dev": true, "requires": { "ms": "^2.0.0" } }, "husky": { - "version": "8.0.2", - "resolved": "https://registry.npmjs.org/husky/-/husky-8.0.2.tgz", - "integrity": "sha512-Tkv80jtvbnkK3mYWxPZePGFpQ/tT3HNSs/sasF9P2YfkMezDl3ON37YN6jUUI4eTg5LcyVynlb6r4eyvOmspvg==", + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/husky/-/husky-8.0.3.tgz", + "integrity": "sha512-+dQSyqPh4x1hlO1swXBiNb2HzTDN1I2IGLQx1GrBuiqFJfoMrnZWwVmatvSiO+Iz8fBUnf+lekwNo4c2LlXItg==", "dev": true }, "iconv-lite": { @@ -23249,9 +23356,9 @@ "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==" }, "ignore": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.1.tgz", - "integrity": "sha512-d2qQLzTJ9WxQftPAuEQpSPmKqzxePjzVbpAVv62AQ64NTL+wR4JkrVqR/LqFsFEUsHDAiId52mJteHDFuDkElA==", + "version": "5.2.4", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz", + "integrity": "sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==", "dev": true }, "ignore-walk": { @@ -23273,9 +23380,9 @@ } }, "minimatch": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.1.tgz", - "integrity": "sha512-362NP+zlprccbEt/SkxKfRMHnNY85V74mVnpUpNyr3F35covl09Kec7/sEFLt3RA4oXmewtoaanoIf67SE5Y5g==", + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", + "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", "dev": true, "requires": { "brace-expansion": "^2.0.1" @@ -23373,6 +23480,12 @@ "lru-cache": "^7.5.1" } }, + "lru-cache": { + "version": "7.14.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.14.1.tgz", + "integrity": "sha512-ysxwsnTKdAx96aTRdhDOCQfDgbHnt8SK0KY8SEjO0wHinhWOFTESbjVCMPbU1uGXg/ch4lifqx0wfjOawU2+WA==", + "dev": true + }, "npm-package-arg": { "version": "9.1.2", "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-9.1.2.tgz", @@ -23473,15 +23586,6 @@ "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", "dev": true }, - "is-binary-path": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", - "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", - "dev": true, - "requires": { - "binary-extensions": "^2.0.0" - } - }, "is-buffer": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.5.tgz", @@ -25257,9 +25361,9 @@ } }, "js-sdsl": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/js-sdsl/-/js-sdsl-4.2.0.tgz", - "integrity": "sha512-dyBIzQBDkCqCu+0upx25Y2jGdbTGxE9fshMsCdK0ViOongpV+n5tXRcZY9v7CaVQ79AGS9KA1KHtojxiM7aXSQ==", + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/js-sdsl/-/js-sdsl-4.3.0.tgz", + "integrity": "sha512-mifzlm2+5nZ+lEcLJMoBK0/IH/bDg8XnJfd/Wq6IP+xoCjLZsTOnV2QpxlVbX9bMnkl5PdEjNtBJ9Cj1NjifhQ==", "dev": true }, "js-tokens": { @@ -25319,9 +25423,9 @@ "integrity": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==" }, "json5": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.1.tgz", - "integrity": "sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA==", + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", "dev": true }, "jsonc-parser": { @@ -25354,15 +25458,15 @@ } }, "just-diff": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/just-diff/-/just-diff-5.1.1.tgz", - "integrity": "sha512-u8HXJ3HlNrTzY7zrYYKjNEfBlyjqhdBkoyTVdjtn7p02RJD5NvR8rIClzeGA7t+UYP1/7eAkWNLU0+P3QrEqKQ==", + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/just-diff/-/just-diff-5.2.0.tgz", + "integrity": "sha512-6ufhP9SHjb7jibNFrNxyFZ6od3g+An6Ai9mhGRvcYe8UJlH0prseN64M+6ZBBUoKYHZsitDP42gAJ8+eVWr3lw==", "dev": true }, "just-diff-apply": { - "version": "5.4.1", - "resolved": "https://registry.npmjs.org/just-diff-apply/-/just-diff-apply-5.4.1.tgz", - "integrity": "sha512-AAV5Jw7tsniWwih8Ly3fXxEZ06y+6p5TwQMsw0dzZ/wPKilzyDgdAnL0Ug4NNIquPUOh1vfFWEHbmXUqM5+o8g==", + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/just-diff-apply/-/just-diff-apply-5.5.0.tgz", + "integrity": "sha512-OYTthRfSh55WOItVqwpefPtNt2VdKsq5AnAK6apdtR6yCH8pr0CmSr710J0Mf+WdQy7K/OzMy7K2MgAfdQURDw==", "dev": true }, "kind-of": { @@ -25460,6 +25564,12 @@ "lru-cache": "^7.5.1" } }, + "lru-cache": { + "version": "7.14.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.14.1.tgz", + "integrity": "sha512-ysxwsnTKdAx96aTRdhDOCQfDgbHnt8SK0KY8SEjO0wHinhWOFTESbjVCMPbU1uGXg/ch4lifqx0wfjOawU2+WA==", + "dev": true + }, "npm-package-arg": { "version": "9.1.2", "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-9.1.2.tgz", @@ -25496,6 +25606,12 @@ "lru-cache": "^7.5.1" } }, + "lru-cache": { + "version": "7.14.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.14.1.tgz", + "integrity": "sha512-ysxwsnTKdAx96aTRdhDOCQfDgbHnt8SK0KY8SEjO0wHinhWOFTESbjVCMPbU1uGXg/ch4lifqx0wfjOawU2+WA==", + "dev": true + }, "normalize-package-data": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-4.0.1.tgz", @@ -25529,9 +25645,9 @@ "dev": true }, "lines-and-columns": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", - "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-2.0.3.tgz", + "integrity": "sha512-cNOjgCnLB+FnvWWtyRTzmB3POJ+cXxTA81LoW7u8JdmhfXzriropYwpjShnz1QLLWsQwY7nIxoDmcPTwphDK9w==", "dev": true }, "lint-staged": { @@ -25557,15 +25673,15 @@ }, "dependencies": { "commander": { - "version": "9.4.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-9.4.1.tgz", - "integrity": "sha512-5EEkTNyHNGFPD2H+c/dXXfQZYa/scCKasxWcXJaWnNJ99pnQN9Vnmqow+p+PlFPE63Q6mThaZws1T+HxfpgtPw==", + "version": "9.5.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-9.5.0.tgz", + "integrity": "sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ==", "dev": true }, "supports-color": { - "version": "9.3.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-9.3.0.tgz", - "integrity": "sha512-hJ6RYjNbcBFkpHi+ykjar+7GgHs+65Kxyw940nBLOSjaWZ13acq4A5f+gWiV5w+xfsg5MbnjDxTigLcUuljerw==", + "version": "9.3.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-9.3.1.tgz", + "integrity": "sha512-knBY82pjmnIzK3NifMo3RxEIRD9E0kIzV4BKcyTZ9+9kWgLMxd4PrsTSMoFQUabgRBbF8KOLRDCyKgNV+iK44Q==", "dev": true } } @@ -25839,10 +25955,13 @@ } }, "lru-cache": { - "version": "7.14.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.14.1.tgz", - "integrity": "sha512-ysxwsnTKdAx96aTRdhDOCQfDgbHnt8SK0KY8SEjO0wHinhWOFTESbjVCMPbU1uGXg/ch4lifqx0wfjOawU2+WA==", - "dev": true + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "dev": true, + "requires": { + "yallist": "^3.0.2" + } }, "lru-queue": { "version": "0.1.0", @@ -25865,9 +25984,9 @@ "integrity": "sha512-zTU3DaZaF3Rt9rhN3uBMGQD3dD2/vFQqnvZCDv4dl5iOzq2IZQqTxu90r4E5J+nP70J3ilqVCrbho2eWaeW8Ow==" }, "luxon": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/luxon/-/luxon-2.5.0.tgz", - "integrity": "sha512-IDkEPB80Rb6gCAU+FEib0t4FeJ4uVOuX1CQ9GsvU3O+JAGIgu0J7sf1OarXKaKDygTZIoJyU6YdZzTFRu+YR0A==" + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/luxon/-/luxon-2.5.2.tgz", + "integrity": "sha512-Yg7/RDp4nedqmLgyH0LwgGRvMEKVzKbUdkBYyCosbHgJ+kaOUx0qzSiSatVc3DFygnirTPYnMM2P5dg2uH1WvA==" }, "madge": { "version": "5.0.1", @@ -26007,6 +26126,14 @@ "promise-retry": "^2.0.1", "socks-proxy-agent": "^7.0.0", "ssri": "^9.0.0" + }, + "dependencies": { + "lru-cache": { + "version": "7.14.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.14.1.tgz", + "integrity": "sha512-ysxwsnTKdAx96aTRdhDOCQfDgbHnt8SK0KY8SEjO0wHinhWOFTESbjVCMPbU1uGXg/ch4lifqx0wfjOawU2+WA==", + "dev": true + } } }, "makeerror": { @@ -26025,9 +26152,9 @@ "dev": true }, "marked": { - "version": "4.2.4", - "resolved": "https://registry.npmjs.org/marked/-/marked-4.2.4.tgz", - "integrity": "sha512-Wcc9ikX7Q5E4BYDPvh1C6QNSxrjC9tBgz+A/vAhp59KXUgachw++uMvMKiSW8oA85nopmPZcEvBoex/YLMsiyA==" + "version": "4.2.12", + "resolved": "https://registry.npmjs.org/marked/-/marked-4.2.12.tgz", + "integrity": "sha512-yr8hSKa3Fv4D3jdZmtMMPghgVt6TWbk86WQaWhDloQjRSQhMMYCAro7jP7VDJrjjdV8pxVxMssXS8B8Y5DZ5aw==" }, "memdown": { "version": "6.1.1", @@ -26298,6 +26425,14 @@ "dev": true, "requires": { "yallist": "^4.0.0" + }, + "dependencies": { + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + } } }, "minipass-collect": { @@ -26366,6 +26501,14 @@ "requires": { "minipass": "^3.0.0", "yallist": "^4.0.0" + }, + "dependencies": { + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + } } }, "mkdirp": { @@ -26434,9 +26577,9 @@ }, "dependencies": { "commander": { - "version": "9.4.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-9.4.1.tgz", - "integrity": "sha512-5EEkTNyHNGFPD2H+c/dXXfQZYa/scCKasxWcXJaWnNJ99pnQN9Vnmqow+p+PlFPE63Q6mThaZws1T+HxfpgtPw==", + "version": "9.5.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-9.5.0.tgz", + "integrity": "sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ==", "dev": true }, "yargs-parser": { @@ -26450,8 +26593,7 @@ "ms": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" }, "multimatch": { "version": "5.0.0", @@ -26523,17 +26665,17 @@ "dev": true }, "node-fetch": { - "version": "2.6.7", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", - "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", + "version": "2.6.8", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.8.tgz", + "integrity": "sha512-RZ6dBYuj8dRSfxpUSu+NsdF1dpPpluJxwOp+6IoDp/sH2QNDSvurYsAa+F1WxY2RjA1iP93xhcsUoYbF2XBqVg==", "requires": { "whatwg-url": "^5.0.0" } }, "node-gyp": { - "version": "9.3.0", - "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-9.3.0.tgz", - "integrity": "sha512-A6rJWfXFz7TQNjpldJ915WFb1LnhO4lIve3ANPbWreuEoLoKlFT3sxIepPBkLhM27crW8YmN+pjlgbasH6cH/Q==", + "version": "9.3.1", + "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-9.3.1.tgz", + "integrity": "sha512-4Q16ZCqq3g8awk6UplT7AuxQ35XN4R/yf/+wSAwcBUAjg7l58RTactWaP8fIDTi0FzI7YcVLujwExakZlfWkXg==", "dev": true, "requires": { "env-paths": "^2.2.0", @@ -26560,9 +26702,9 @@ } }, "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==", + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.6.0.tgz", + "integrity": "sha512-NTZVKn9IylLwUzaKjkas1e4u2DLNcV4rdYagA4PWdPwW87Bi7z+BznyKSRwS/761tV/lzCGXplWsiaMjLqP2zQ==", "devOptional": true }, "node-int64": { @@ -26572,9 +26714,9 @@ "dev": true }, "node-releases": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.6.tgz", - "integrity": "sha512-PiVXnNuFm5+iYkLBNeq5211hvO38y63T0i2KKh2KnUs3RpzJ+JtODFjkD8yjLwnDkTYF1eKXheUwdssR+NRZdg==", + "version": "2.0.8", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.8.tgz", + "integrity": "sha512-dFSmB8fFHEH/s81Xi+Y/15DQY6VHW81nXRj86EMSL3lmuTmK1e+aT4wrFCkTbm+gSwkw4KpX+rT/pMM2c1mF+A==", "dev": true }, "node-source-walk": { @@ -26680,6 +26822,12 @@ "requires": { "builtins": "^1.0.3" } + }, + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true } } }, @@ -26705,9 +26853,9 @@ } }, "glob": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-8.0.3.tgz", - "integrity": "sha512-ull455NHSHI/Y1FqGaaYFaLGkNMMJbavMrEGFXG/PGrg6y7sutWHUHrz6gy6WEBH6akM1M414dWKCNs+IhKdiQ==", + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz", + "integrity": "sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==", "dev": true, "requires": { "fs.realpath": "^1.0.0", @@ -26718,9 +26866,9 @@ } }, "minimatch": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.1.tgz", - "integrity": "sha512-362NP+zlprccbEt/SkxKfRMHnNY85V74mVnpUpNyr3F35covl09Kec7/sEFLt3RA4oXmewtoaanoIf67SE5Y5g==", + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", + "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", "dev": true, "requires": { "brace-expansion": "^2.0.1" @@ -26764,6 +26912,12 @@ "lru-cache": "^7.5.1" } }, + "lru-cache": { + "version": "7.14.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.14.1.tgz", + "integrity": "sha512-ysxwsnTKdAx96aTRdhDOCQfDgbHnt8SK0KY8SEjO0wHinhWOFTESbjVCMPbU1uGXg/ch4lifqx0wfjOawU2+WA==", + "dev": true + }, "npm-normalize-package-bin": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-2.0.0.tgz", @@ -26808,6 +26962,12 @@ "lru-cache": "^7.5.1" } }, + "lru-cache": { + "version": "7.14.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.14.1.tgz", + "integrity": "sha512-ysxwsnTKdAx96aTRdhDOCQfDgbHnt8SK0KY8SEjO0wHinhWOFTESbjVCMPbU1uGXg/ch4lifqx0wfjOawU2+WA==", + "dev": true + }, "npm-package-arg": { "version": "9.1.2", "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-9.1.2.tgz", @@ -26844,20 +27004,19 @@ } }, "nx": { - "version": "15.3.0", - "resolved": "https://registry.npmjs.org/nx/-/nx-15.3.0.tgz", - "integrity": "sha512-5tBrEF2zDkGBDfe8wThazJqBDhsVkRrxc6OttzfBmkXP4VPp8w5MMtUEOry181AXKfjDGkw//UnCSkUNynTDlw==", + "version": "15.5.3", + "resolved": "https://registry.npmjs.org/nx/-/nx-15.5.3.tgz", + "integrity": "sha512-PHB8VbiBLP108xb+yR8IGEsYWr7OcmDDOjHL+73oP4lVjyPgT8wdTMe6tI5LdBgv+KZ+0kiThK3ckvcPsfgvLQ==", "dev": true, "requires": { - "@nrwl/cli": "15.3.0", - "@nrwl/tao": "15.3.0", + "@nrwl/cli": "15.5.3", + "@nrwl/tao": "15.5.3", "@parcel/watcher": "2.0.4", "@yarnpkg/lockfile": "^1.1.0", "@yarnpkg/parsers": "^3.0.0-rc.18", "@zkochan/js-yaml": "0.0.6", "axios": "^1.0.0", - "chalk": "4.1.0", - "chokidar": "^3.5.1", + "chalk": "^4.1.0", "cli-cursor": "3.1.0", "cli-spinners": "2.6.1", "cliui": "^7.0.2", @@ -26866,11 +27025,12 @@ "fast-glob": "3.2.7", "figures": "3.2.0", "flat": "^5.0.2", - "fs-extra": "^10.1.0", + "fs-extra": "^11.1.0", "glob": "7.1.4", "ignore": "^5.0.4", "js-yaml": "4.1.0", "jsonc-parser": "3.2.0", + "lines-and-columns": "~2.0.3", "minimatch": "3.0.5", "npm-run-path": "^4.0.1", "open": "^8.4.0", @@ -26879,7 +27039,7 @@ "strong-log-transformer": "^2.1.0", "tar-stream": "~2.2.0", "tmp": "~0.2.1", - "tsconfig-paths": "^3.9.0", + "tsconfig-paths": "^4.1.2", "tslib": "^2.3.0", "v8-compile-cache": "2.3.0", "yargs": "^17.6.2", @@ -26896,9 +27056,9 @@ } }, "chalk": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", - "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, "requires": { "ansi-styles": "^4.1.0", @@ -26940,9 +27100,9 @@ } }, "fs-extra": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", - "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.1.0.tgz", + "integrity": "sha512-0rcTq621PD5jM/e0a3EJoGC/1TC5ZBCERW82LQuwfGnCa1V8w7dpYH1yNu+SLb6E5dkeCBzKEyLGlFrnr+dUyw==", "dev": true, "requires": { "graceful-fs": "^4.2.0", @@ -27006,6 +27166,12 @@ "lru-cache": "^6.0.0" } }, + "strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", + "dev": true + }, "supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", @@ -27024,6 +27190,23 @@ "rimraf": "^3.0.0" } }, + "tsconfig-paths": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-4.1.2.tgz", + "integrity": "sha512-uhxiMgnXQp1IR622dUXI+9Ehnws7i/y6xvpZB9IbUVOPy0muvdvgXeZOn88UcGPiT98Vp3rJPTa8bFoalZ3Qhw==", + "dev": true, + "requires": { + "json5": "^2.2.2", + "minimist": "^1.2.6", + "strip-bom": "^3.0.0" + } + }, + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, "yargs-parser": { "version": "21.1.1", "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", @@ -27039,9 +27222,9 @@ "optional": true }, "object-inspect": { - "version": "1.12.2", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.2.tgz", - "integrity": "sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ==", + "version": "1.12.3", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.3.tgz", + "integrity": "sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==", "dev": true }, "once": { @@ -27294,6 +27477,12 @@ "lru-cache": "^7.5.1" } }, + "lru-cache": { + "version": "7.14.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.14.1.tgz", + "integrity": "sha512-ysxwsnTKdAx96aTRdhDOCQfDgbHnt8SK0KY8SEjO0wHinhWOFTESbjVCMPbU1uGXg/ch4lifqx0wfjOawU2+WA==", + "dev": true + }, "npm-package-arg": { "version": "9.1.2", "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-9.1.2.tgz", @@ -27338,6 +27527,14 @@ "error-ex": "^1.3.1", "json-parse-even-better-errors": "^2.3.0", "lines-and-columns": "^1.1.6" + }, + "dependencies": { + "lines-and-columns": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", + "dev": true + } } }, "parse-ms": { @@ -27479,9 +27676,9 @@ "dev": true }, "postcss": { - "version": "8.4.19", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.19.tgz", - "integrity": "sha512-h+pbPsyhlYj6N2ozBmHhHrs9DzGmbaarbLvWipMRO7RLS+v4onj26MPFXA5OBYFxyqYhUJK456SwDcY9H2/zsA==", + "version": "8.4.21", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.21.tgz", + "integrity": "sha512-tP7u/Sn/dVxK2NnruI4H9BG+x+Wxz6oeZ1cJ8P6G/PZY0IKk4k/63TDsQf2kQq3+qoJeLm2kIBUNlZe3zgb4Zg==", "dev": true, "requires": { "nanoid": "^3.3.4", @@ -27561,9 +27758,9 @@ "dev": true }, "prettier": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.1.tgz", - "integrity": "sha512-lqGoSJBQNJidqCHE80vqZJHWHRFoNYsSpP9AjFhlhi9ODCJA541svILes/+/1GM3VaL/abZi7cpFzOpdR9UPKg==", + "version": "2.8.3", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.3.tgz", + "integrity": "sha512-tJ/oJ4amDihPoufT5sM0Z1SKEuKay8LfVAMlbbhnnkvt6BUserZylqo2PN+p9KeljLr0OHa2rXHU1T8reeoTrw==", "dev": true }, "prettier-linter-helpers": { @@ -27712,9 +27909,9 @@ "dev": true }, "punycode": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", - "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz", + "integrity": "sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==", "dev": true }, "q": { @@ -27813,9 +28010,9 @@ } }, "glob": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-8.0.3.tgz", - "integrity": "sha512-ull455NHSHI/Y1FqGaaYFaLGkNMMJbavMrEGFXG/PGrg6y7sutWHUHrz6gy6WEBH6akM1M414dWKCNs+IhKdiQ==", + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz", + "integrity": "sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==", "dev": true, "requires": { "fs.realpath": "^1.0.0", @@ -27834,10 +28031,16 @@ "lru-cache": "^7.5.1" } }, + "lru-cache": { + "version": "7.14.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.14.1.tgz", + "integrity": "sha512-ysxwsnTKdAx96aTRdhDOCQfDgbHnt8SK0KY8SEjO0wHinhWOFTESbjVCMPbU1uGXg/ch4lifqx0wfjOawU2+WA==", + "dev": true + }, "minimatch": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.1.tgz", - "integrity": "sha512-362NP+zlprccbEt/SkxKfRMHnNY85V74mVnpUpNyr3F35covl09Kec7/sEFLt3RA4oXmewtoaanoIf67SE5Y5g==", + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", + "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", "dev": true, "requires": { "brace-expansion": "^2.0.1" @@ -28037,15 +28240,6 @@ "once": "^1.3.0" } }, - "readdirp": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", - "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", - "dev": true, - "requires": { - "picomatch": "^2.2.1" - } - }, "redent": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/redent/-/redent-3.0.0.tgz", @@ -28136,9 +28330,9 @@ "dev": true }, "resolve.exports": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-1.1.0.tgz", - "integrity": "sha512-J1l+Zxxp4XK3LUDZ9m60LRJF/mAe4z6a4xyabPHk7pvK5t35dACV32iIjJDFeWZFfZlO29w6SZ67knR0tHzJtQ==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-1.1.1.tgz", + "integrity": "sha512-/NtpHNDN7jWhAaQ9BvBUYZ6YTXsRBgfqWFWP7BZBaoMJO/I3G5OFzvTuWNlZC3aPjins1F+TNrLKsGbH4rfsRQ==", "dev": true }, "response-iterator": { @@ -28198,9 +28392,9 @@ }, "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==", + "version": "8.12.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.12.0.tgz", + "integrity": "sha512-kU62emKIdKVeEIOIKVegvqpXMSTAMLJozpHZaJNDYqBjzlSYXQGviYwN1osDLJ9av68qHd4a2oSjd7yD4pacig==", "requires": {} } } @@ -28221,9 +28415,9 @@ } }, "rxjs": { - "version": "7.6.0", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.6.0.tgz", - "integrity": "sha512-DDa7d8TFNUalGC9VqXvQ1euWNN7sc63TrUCuM9J998+ViviahMIjKSOU7rfcgFOF+FCD71BhDRv4hrFz+ImDLQ==", + "version": "7.8.0", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.0.tgz", + "integrity": "sha512-F2+gxDshqmIub1KdvZkaEfGDwLNpPvk9Fs6LD/MyQxNgMds/WH9OdDDXOmxUZpME+iSK3rQCctkL0DYyytUqMg==", "dev": true, "requires": { "tslib": "^2.1.0" @@ -28266,6 +28460,12 @@ "requires": { "yallist": "^4.0.0" } + }, + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true } } }, @@ -28300,13 +28500,13 @@ "dev": true }, "shiki": { - "version": "0.11.1", - "resolved": "https://registry.npmjs.org/shiki/-/shiki-0.11.1.tgz", - "integrity": "sha512-EugY9VASFuDqOexOgXR18ZV+TbFrQHeCpEYaXamO+SZlsnT/2LxuLBX25GGtIrwaEVFXUAbUQ601SWE2rMwWHA==", + "version": "0.12.1", + "resolved": "https://registry.npmjs.org/shiki/-/shiki-0.12.1.tgz", + "integrity": "sha512-aieaV1m349rZINEBkjxh2QbBvFFQOlgqYTNtCal82hHj4dDZ76oMlQIX+C7ryerBTDiga3e5NfH6smjdJ02BbQ==", "requires": { - "jsonc-parser": "^3.0.0", - "vscode-oniguruma": "^1.6.1", - "vscode-textmate": "^6.0.0" + "jsonc-parser": "^3.2.0", + "vscode-oniguruma": "^1.7.0", + "vscode-textmate": "^8.0.0" } }, "side-channel": { @@ -28625,17 +28825,17 @@ } }, "superagent": { - "version": "8.0.6", - "resolved": "https://registry.npmjs.org/superagent/-/superagent-8.0.6.tgz", - "integrity": "sha512-HqSe6DSIh3hEn6cJvCkaM1BLi466f1LHi4yubR0tpewlMpk4RUFFy35bKz8SsPBwYfIIJy5eclp+3tCYAuX0bw==", + "version": "8.0.8", + "resolved": "https://registry.npmjs.org/superagent/-/superagent-8.0.8.tgz", + "integrity": "sha512-OpxPrqqWKOjmuomLq5pCm4LWCSFdgAQ11XVkMl7t4ie13WxWuLkdJ83ZgG2jOQeLXKwMR2p9k30hLrKGAzkPaA==", "dev": true, "requires": { "component-emitter": "^1.3.0", - "cookiejar": "^2.1.3", + "cookiejar": "^2.1.4", "debug": "^4.3.4", "fast-safe-stringify": "^2.1.1", "form-data": "^4.0.0", - "formidable": "^2.1.1", + "formidable": "^2.1.2", "methods": "^1.1.2", "mime": "2.6.0", "qs": "^6.11.0", @@ -28719,9 +28919,9 @@ }, "dependencies": { "ajv": { - "version": "8.11.2", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.2.tgz", - "integrity": "sha512-E4bfmKAhGiSTvMfL1Myyycaub+cUEU2/IvpylXkUu7CHBkBj1f/ikdzbD7YQ6FKUbixDxeYvB/xY4fvyroDlQg==", + "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", @@ -28807,6 +29007,12 @@ "requires": { "yallist": "^4.0.0" } + }, + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true } } }, @@ -29006,9 +29212,9 @@ } }, "@types/yargs": { - "version": "16.0.4", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.4.tgz", - "integrity": "sha512-T8Yc9wt/5LbJyCaLiHPReJa0kApcIgJ7Bn735GjItUfh08Z1pJvu8QZqb9s+mMvKV6WUQRV7K2R46YbjMXTTJw==", + "version": "16.0.5", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.5.tgz", + "integrity": "sha512-AxO/ADJOBFJScHbWhq2xAhlWP24rY4aCEG/NFaMvbT3X2MgRsLjhjQwsn0Zi5zn0LG9jUhCCZMeX9Dkuw6k+vQ==", "dev": true, "requires": { "@types/yargs-parser": "*" @@ -29185,9 +29391,9 @@ }, "dependencies": { "json5": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", - "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz", + "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", "dev": true, "requires": { "minimist": "^1.2.0" @@ -29266,14 +29472,14 @@ } }, "typedoc": { - "version": "0.23.22", - "resolved": "https://registry.npmjs.org/typedoc/-/typedoc-0.23.22.tgz", - "integrity": "sha512-5sJkjK60xp8A7YpcYniu3+Wf0QcgojEnhzHuCN+CkdpQkKRhOspon/9+sGTkGI8kjVkZs3KHrhltpQyVhRMVfw==", + "version": "0.23.24", + "resolved": "https://registry.npmjs.org/typedoc/-/typedoc-0.23.24.tgz", + "integrity": "sha512-bfmy8lNQh+WrPYcJbtjQ6JEEsVl/ce1ZIXyXhyW+a1vFrjO39t6J8sL/d6FfAGrJTc7McCXgk9AanYBSNvLdIA==", "requires": { "lunr": "^2.3.9", - "marked": "^4.0.19", - "minimatch": "^5.1.0", - "shiki": "^0.11.1" + "marked": "^4.2.5", + "minimatch": "^5.1.2", + "shiki": "^0.12.1" }, "dependencies": { "brace-expansion": { @@ -29285,9 +29491,9 @@ } }, "minimatch": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.1.tgz", - "integrity": "sha512-362NP+zlprccbEt/SkxKfRMHnNY85V74mVnpUpNyr3F35covl09Kec7/sEFLt3RA4oXmewtoaanoIf67SE5Y5g==", + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", + "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", "requires": { "brace-expansion": "^2.0.1" } @@ -29424,9 +29630,9 @@ } }, "value-or-promise": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/value-or-promise/-/value-or-promise-1.0.11.tgz", - "integrity": "sha512-41BrgH+dIbCFXClcSapVs5M6GkENd3gQOJpEfPDNa71LsUGMXDL0jMWpI/Rh7WhX+Aalfz2TTS3Zt5pUsbnhLg==" + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/value-or-promise/-/value-or-promise-1.0.12.tgz", + "integrity": "sha512-Z6Uz+TYwEqE7ZN50gwn+1LCVo9ZVrpxRPOhOLnncYkY1ZzOYtrX8Fwf/rFktZ8R5mJms6EZf5TqNOMeZmnPq9Q==" }, "vscode-oniguruma": { "version": "1.7.0", @@ -29434,9 +29640,9 @@ "integrity": "sha512-L9WMGRfrjOhgHSdOYgCt/yRMsXzLDJSL7BPrOZt73gU0iWO4mpqzqQzOz5srxqTvMBaR0XZTSrVWo4j55Rc6cA==" }, "vscode-textmate": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/vscode-textmate/-/vscode-textmate-6.0.0.tgz", - "integrity": "sha512-gu73tuZfJgu+mvCSy4UZwd2JXykjK9zAZsfmDeut5dx/1a7FeTk0XwJsSuqQn+cuMCGVbIBfl+s53X4T19DnzQ==" + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/vscode-textmate/-/vscode-textmate-8.0.0.tgz", + "integrity": "sha512-AFbieoL7a5LMqcnOF04ji+rpXadgOXnZsxQr//r83kLPr7biP7am3g9zbaZIaBGwBRWeSvoMD4mgPdX3e4NWBg==" }, "walk-up-path": { "version": "1.0.0", @@ -29699,9 +29905,9 @@ "dev": true }, "yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", "dev": true }, "yaml": { diff --git a/packages/indexer-generator/package-lock.json b/packages/indexer-generator/package-lock.json index e80e5cf..f91e1c6 100644 --- a/packages/indexer-generator/package-lock.json +++ b/packages/indexer-generator/package-lock.json @@ -20,9 +20,9 @@ } }, "node_modules/@babel/runtime": { - "version": "7.20.6", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.20.6.tgz", - "integrity": "sha512-Q+8MqP7TiHMWzSfwiJwXCjyf4GYA4Dgw3emg/7xmwsdLJOZUp+nMqcOwOzzYheuM1rhDu8FSj2l0aoMygEuXuA==", + "version": "7.20.13", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.20.13.tgz", + "integrity": "sha512-gt3PKXs0DBoL9xCvOIIZ2NEqAGZqHjAnmVbfQtB620V0uReIQutpel14KcneZuer7UioY8ALKZ7iocavvzTNFA==", "dependencies": { "regenerator-runtime": "^0.13.11" }, @@ -63,9 +63,9 @@ } }, "node_modules/@metaplex-foundation/solita": { - "version": "0.19.1", - "resolved": "https://registry.npmjs.org/@metaplex-foundation/solita/-/solita-0.19.1.tgz", - "integrity": "sha512-5kjhWDT8Qt/B6sOWbtRl5tzc1y98K4Q+fPNH+vhIhC5NzBW2BD5V+5mMU3W7agl5viT8UjKJ1HquqdtQYjj3MA==", + "version": "0.19.3", + "resolved": "https://registry.npmjs.org/@metaplex-foundation/solita/-/solita-0.19.3.tgz", + "integrity": "sha512-VnCqW05opw8UueP9IsH3ax6Dk7J+8QuqTs/ceSeMhJquOpoLv3M4crrzFqX+GXr5GH0j/Fk32UlRD7iEp6sEnQ==", "dependencies": { "@metaplex-foundation/beet": "^0.7.1", "@metaplex-foundation/beet-solana": "^0.3.1", @@ -95,9 +95,9 @@ ] }, "node_modules/@noble/hashes": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.1.4.tgz", - "integrity": "sha512-+PYsVPrTSqtVjatKt2A/Proukn2Yrz61OBThOCKErc5w2/r1Fh37vbDv0Eah7pyNltrmacjwTvdw3JoR+WE4TA==", + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.1.5.tgz", + "integrity": "sha512-LTMZiiLc+V4v1Yi16TD6aX2gmtKszNye0pQgbaLqkvhIqP7nVsSaJsWloGQjJfJ8offaoP5GtX3yY5swbcJxxQ==", "funding": [ { "type": "individual", @@ -106,9 +106,9 @@ ] }, "node_modules/@noble/secp256k1": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/@noble/secp256k1/-/secp256k1-1.7.0.tgz", - "integrity": "sha512-kbacwGSsH/CTout0ZnZWxnW1B+jH/7r/WAAKLBtrRJ/+CUH7lgmQzl3GTrQua3SGKWNSDsS6lmjnDpIJ5Dxyaw==", + "version": "1.7.1", + "resolved": "https://registry.npmjs.org/@noble/secp256k1/-/secp256k1-1.7.1.tgz", + "integrity": "sha512-hOUk6AyBFmqVrv7k5WAw/LpszxVbj9gGN4JRkIX52fdFAj1UA61KXmZDvqVEm+pOyec3+fIeZB02LYa/pWOArw==", "funding": [ { "type": "individual", @@ -151,15 +151,16 @@ } }, "node_modules/@solana/web3.js": { - "version": "1.70.1", - "resolved": "https://registry.npmjs.org/@solana/web3.js/-/web3.js-1.70.1.tgz", - "integrity": "sha512-AnaqCF1cJ3w7d0yhvLGAKAcRI+n5o+ursQihhoTe4cUh8/9d4gbT73SoHYElS7e67OtAgLmSfbcC5hcOAgdvnQ==", + "version": "1.73.0", + "resolved": "https://registry.npmjs.org/@solana/web3.js/-/web3.js-1.73.0.tgz", + "integrity": "sha512-YrgX3Py7ylh8NYkbanoINUPCj//bWUjYZ5/WPy9nQ9SK3Cl7QWCR+NmbDjmC/fTspZGR+VO9LTQslM++jr5PRw==", "dependencies": { "@babel/runtime": "^7.12.5", "@noble/ed25519": "^1.7.0", "@noble/hashes": "^1.1.2", "@noble/secp256k1": "^1.6.3", "@solana/buffer-layout": "^4.0.0", + "agentkeepalive": "^4.2.1", "bigint-buffer": "^1.1.5", "bn.js": "^5.0.0", "borsh": "^0.7.0", @@ -220,9 +221,9 @@ "integrity": "sha512-w+tIMs3rq2afQdsPJlODhoUEKzFP1ayaoyl1CcnwtIlsVe7K7bA1NGm4s3PraqTLlXnbIN84zuBlxBWo1u9BLw==" }, "node_modules/@types/prettier": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.7.1.tgz", - "integrity": "sha512-ri0UmynRRvZiiUJdiz38MmIblKK+oH30MztdBVR95dv/Ubw6neWSb8u1XpRb72L4qsZOhz+L+z9JD40SJmfWow==", + "version": "2.7.2", + "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.7.2.tgz", + "integrity": "sha512-KufADq8uQqo1pYKVIYzfKbJfBAc0sOeXqGbFaSpv8MRmC/zXgowNZmFcbngndGk922QDmOASEXUZCaY48gs4cg==", "dev": true }, "node_modules/@types/ws": { @@ -233,6 +234,19 @@ "@types/node": "*" } }, + "node_modules/agentkeepalive": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-4.2.1.tgz", + "integrity": "sha512-Zn4cw2NEqd+9fiSVWMscnjyQ1a8Yfoc5oBajLeo5w+YBHgDUcEBY2hS4YpTz6iN5f/2zQiktcuM6tS8x1p9dpA==", + "dependencies": { + "debug": "^4.1.0", + "depd": "^1.1.2", + "humanize-ms": "^1.2.1" + }, + "engines": { + "node": ">= 8.0.0" + } + }, "node_modules/ansi-colors": { "version": "4.1.3", "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.3.tgz", @@ -377,9 +391,9 @@ } }, "node_modules/commander": { - "version": "9.4.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-9.4.1.tgz", - "integrity": "sha512-5EEkTNyHNGFPD2H+c/dXXfQZYa/scCKasxWcXJaWnNJ99pnQN9Vnmqow+p+PlFPE63Q6mThaZws1T+HxfpgtPw==", + "version": "9.5.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-9.5.0.tgz", + "integrity": "sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ==", "engines": { "node": "^12.20.0 || >=14" } @@ -411,6 +425,14 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/depd": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", + "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==", + "engines": { + "node": ">= 0.6" + } + }, "node_modules/dot-case": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/dot-case/-/dot-case-3.0.4.tgz", @@ -456,6 +478,14 @@ "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==" }, + "node_modules/humanize-ms": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/humanize-ms/-/humanize-ms-1.2.1.tgz", + "integrity": "sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ==", + "dependencies": { + "ms": "^2.0.0" + } + }, "node_modules/ieee754": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", @@ -591,9 +621,9 @@ } }, "node_modules/node-fetch": { - "version": "2.6.7", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", - "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", + "version": "2.6.8", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.8.tgz", + "integrity": "sha512-RZ6dBYuj8dRSfxpUSu+NsdF1dpPpluJxwOp+6IoDp/sH2QNDSvurYsAa+F1WxY2RjA1iP93xhcsUoYbF2XBqVg==", "dependencies": { "whatwg-url": "^5.0.0" }, @@ -610,9 +640,9 @@ } }, "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==", + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.6.0.tgz", + "integrity": "sha512-NTZVKn9IylLwUzaKjkas1e4u2DLNcV4rdYagA4PWdPwW87Bi7z+BznyKSRwS/761tV/lzCGXplWsiaMjLqP2zQ==", "optional": true, "bin": { "node-gyp-build": "bin.js", @@ -621,9 +651,9 @@ } }, "node_modules/prettier": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.1.tgz", - "integrity": "sha512-lqGoSJBQNJidqCHE80vqZJHWHRFoNYsSpP9AjFhlhi9ODCJA541svILes/+/1GM3VaL/abZi7cpFzOpdR9UPKg==", + "version": "2.8.3", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.3.tgz", + "integrity": "sha512-tJ/oJ4amDihPoufT5sM0Z1SKEuKay8LfVAMlbbhnnkvt6BUserZylqo2PN+p9KeljLr0OHa2rXHU1T8reeoTrw==", "bin": { "prettier": "bin-prettier.js" }, @@ -659,15 +689,15 @@ } }, "node_modules/rpc-websockets/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==", + "version": "8.12.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.12.0.tgz", + "integrity": "sha512-kU62emKIdKVeEIOIKVegvqpXMSTAMLJozpHZaJNDYqBjzlSYXQGviYwN1osDLJ9av68qHd4a2oSjd7yD4pacig==", "engines": { "node": ">=10.0.0" }, "peerDependencies": { "bufferutil": "^4.0.1", - "utf-8-validate": "^5.0.2" + "utf-8-validate": ">=5.0.2" }, "peerDependenciesMeta": { "bufferutil": { @@ -826,9 +856,9 @@ }, "dependencies": { "@babel/runtime": { - "version": "7.20.6", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.20.6.tgz", - "integrity": "sha512-Q+8MqP7TiHMWzSfwiJwXCjyf4GYA4Dgw3emg/7xmwsdLJOZUp+nMqcOwOzzYheuM1rhDu8FSj2l0aoMygEuXuA==", + "version": "7.20.13", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.20.13.tgz", + "integrity": "sha512-gt3PKXs0DBoL9xCvOIIZ2NEqAGZqHjAnmVbfQtB620V0uReIQutpel14KcneZuer7UioY8ALKZ7iocavvzTNFA==", "requires": { "regenerator-runtime": "^0.13.11" } @@ -866,9 +896,9 @@ } }, "@metaplex-foundation/solita": { - "version": "0.19.1", - "resolved": "https://registry.npmjs.org/@metaplex-foundation/solita/-/solita-0.19.1.tgz", - "integrity": "sha512-5kjhWDT8Qt/B6sOWbtRl5tzc1y98K4Q+fPNH+vhIhC5NzBW2BD5V+5mMU3W7agl5viT8UjKJ1HquqdtQYjj3MA==", + "version": "0.19.3", + "resolved": "https://registry.npmjs.org/@metaplex-foundation/solita/-/solita-0.19.3.tgz", + "integrity": "sha512-VnCqW05opw8UueP9IsH3ax6Dk7J+8QuqTs/ceSeMhJquOpoLv3M4crrzFqX+GXr5GH0j/Fk32UlRD7iEp6sEnQ==", "requires": { "@metaplex-foundation/beet": "^0.7.1", "@metaplex-foundation/beet-solana": "^0.3.1", @@ -889,14 +919,14 @@ "integrity": "sha512-Rk4SkJFaXZiznFyC/t77Q0NKS4FL7TLJJsVG2V2oiEq3kJVeTdxysEe/yRWSpnWMe808XRDJ+VFh5pt/FN5plw==" }, "@noble/hashes": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.1.4.tgz", - "integrity": "sha512-+PYsVPrTSqtVjatKt2A/Proukn2Yrz61OBThOCKErc5w2/r1Fh37vbDv0Eah7pyNltrmacjwTvdw3JoR+WE4TA==" + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.1.5.tgz", + "integrity": "sha512-LTMZiiLc+V4v1Yi16TD6aX2gmtKszNye0pQgbaLqkvhIqP7nVsSaJsWloGQjJfJ8offaoP5GtX3yY5swbcJxxQ==" }, "@noble/secp256k1": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/@noble/secp256k1/-/secp256k1-1.7.0.tgz", - "integrity": "sha512-kbacwGSsH/CTout0ZnZWxnW1B+jH/7r/WAAKLBtrRJ/+CUH7lgmQzl3GTrQua3SGKWNSDsS6lmjnDpIJ5Dxyaw==" + "version": "1.7.1", + "resolved": "https://registry.npmjs.org/@noble/secp256k1/-/secp256k1-1.7.1.tgz", + "integrity": "sha512-hOUk6AyBFmqVrv7k5WAw/LpszxVbj9gGN4JRkIX52fdFAj1UA61KXmZDvqVEm+pOyec3+fIeZB02LYa/pWOArw==" }, "@solana/buffer-layout": { "version": "4.0.1", @@ -918,15 +948,16 @@ } }, "@solana/web3.js": { - "version": "1.70.1", - "resolved": "https://registry.npmjs.org/@solana/web3.js/-/web3.js-1.70.1.tgz", - "integrity": "sha512-AnaqCF1cJ3w7d0yhvLGAKAcRI+n5o+ursQihhoTe4cUh8/9d4gbT73SoHYElS7e67OtAgLmSfbcC5hcOAgdvnQ==", + "version": "1.73.0", + "resolved": "https://registry.npmjs.org/@solana/web3.js/-/web3.js-1.73.0.tgz", + "integrity": "sha512-YrgX3Py7ylh8NYkbanoINUPCj//bWUjYZ5/WPy9nQ9SK3Cl7QWCR+NmbDjmC/fTspZGR+VO9LTQslM++jr5PRw==", "requires": { "@babel/runtime": "^7.12.5", "@noble/ed25519": "^1.7.0", "@noble/hashes": "^1.1.2", "@noble/secp256k1": "^1.6.3", "@solana/buffer-layout": "^4.0.0", + "agentkeepalive": "^4.2.1", "bigint-buffer": "^1.1.5", "bn.js": "^5.0.0", "borsh": "^0.7.0", @@ -986,9 +1017,9 @@ "integrity": "sha512-w+tIMs3rq2afQdsPJlODhoUEKzFP1ayaoyl1CcnwtIlsVe7K7bA1NGm4s3PraqTLlXnbIN84zuBlxBWo1u9BLw==" }, "@types/prettier": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.7.1.tgz", - "integrity": "sha512-ri0UmynRRvZiiUJdiz38MmIblKK+oH30MztdBVR95dv/Ubw6neWSb8u1XpRb72L4qsZOhz+L+z9JD40SJmfWow==", + "version": "2.7.2", + "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.7.2.tgz", + "integrity": "sha512-KufADq8uQqo1pYKVIYzfKbJfBAc0sOeXqGbFaSpv8MRmC/zXgowNZmFcbngndGk922QDmOASEXUZCaY48gs4cg==", "dev": true }, "@types/ws": { @@ -999,6 +1030,16 @@ "@types/node": "*" } }, + "agentkeepalive": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-4.2.1.tgz", + "integrity": "sha512-Zn4cw2NEqd+9fiSVWMscnjyQ1a8Yfoc5oBajLeo5w+YBHgDUcEBY2hS4YpTz6iN5f/2zQiktcuM6tS8x1p9dpA==", + "requires": { + "debug": "^4.1.0", + "depd": "^1.1.2", + "humanize-ms": "^1.2.1" + } + }, "ansi-colors": { "version": "4.1.3", "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.3.tgz", @@ -1100,9 +1141,9 @@ "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==" }, "commander": { - "version": "9.4.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-9.4.1.tgz", - "integrity": "sha512-5EEkTNyHNGFPD2H+c/dXXfQZYa/scCKasxWcXJaWnNJ99pnQN9Vnmqow+p+PlFPE63Q6mThaZws1T+HxfpgtPw==" + "version": "9.5.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-9.5.0.tgz", + "integrity": "sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ==" }, "debug": { "version": "4.3.4", @@ -1117,6 +1158,11 @@ "resolved": "https://registry.npmjs.org/delay/-/delay-5.0.0.tgz", "integrity": "sha512-ReEBKkIfe4ya47wlPYf/gu5ib6yUG0/Aez0JQZQz94kiWtRQvZIQbTiehsnwHvLSWJnQdhVeqYue7Id1dKr0qw==" }, + "depd": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", + "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==" + }, "dot-case": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/dot-case/-/dot-case-3.0.4.tgz", @@ -1159,6 +1205,14 @@ "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==" }, + "humanize-ms": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/humanize-ms/-/humanize-ms-1.2.1.tgz", + "integrity": "sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ==", + "requires": { + "ms": "^2.0.0" + } + }, "ieee754": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", @@ -1262,23 +1316,23 @@ } }, "node-fetch": { - "version": "2.6.7", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", - "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", + "version": "2.6.8", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.8.tgz", + "integrity": "sha512-RZ6dBYuj8dRSfxpUSu+NsdF1dpPpluJxwOp+6IoDp/sH2QNDSvurYsAa+F1WxY2RjA1iP93xhcsUoYbF2XBqVg==", "requires": { "whatwg-url": "^5.0.0" } }, "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==", + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.6.0.tgz", + "integrity": "sha512-NTZVKn9IylLwUzaKjkas1e4u2DLNcV4rdYagA4PWdPwW87Bi7z+BznyKSRwS/761tV/lzCGXplWsiaMjLqP2zQ==", "optional": true }, "prettier": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.1.tgz", - "integrity": "sha512-lqGoSJBQNJidqCHE80vqZJHWHRFoNYsSpP9AjFhlhi9ODCJA541svILes/+/1GM3VaL/abZi7cpFzOpdR9UPKg==" + "version": "2.8.3", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.3.tgz", + "integrity": "sha512-tJ/oJ4amDihPoufT5sM0Z1SKEuKay8LfVAMlbbhnnkvt6BUserZylqo2PN+p9KeljLr0OHa2rXHU1T8reeoTrw==" }, "regenerator-runtime": { "version": "0.13.11", @@ -1299,9 +1353,9 @@ }, "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==", + "version": "8.12.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.12.0.tgz", + "integrity": "sha512-kU62emKIdKVeEIOIKVegvqpXMSTAMLJozpHZaJNDYqBjzlSYXQGviYwN1osDLJ9av68qHd4a2oSjd7yD4pacig==", "requires": {} } } diff --git a/packages/marinade_finance/package-lock.json b/packages/marinade_finance/package-lock.json index 7cdcf50..2afd23e 100644 --- a/packages/marinade_finance/package-lock.json +++ b/packages/marinade_finance/package-lock.json @@ -9,8 +9,8 @@ "version": "1.0.0", "license": "ISC", "dependencies": { - "@aleph-indexer/core": "^1.0.23", - "@aleph-indexer/framework": "^1.0.23", + "@aleph-indexer/core": "1.0.23", + "@aleph-indexer/framework": "1.0.23", "@metaplex-foundation/beet": "0.7.1", "@metaplex-foundation/beet-solana": "0.4.0", "@solana/spl-token": "0.3.5", @@ -87,9 +87,9 @@ } }, "node_modules/@babel/runtime": { - "version": "7.20.6", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.20.6.tgz", - "integrity": "sha512-Q+8MqP7TiHMWzSfwiJwXCjyf4GYA4Dgw3emg/7xmwsdLJOZUp+nMqcOwOzzYheuM1rhDu8FSj2l0aoMygEuXuA==", + "version": "7.20.13", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.20.13.tgz", + "integrity": "sha512-gt3PKXs0DBoL9xCvOIIZ2NEqAGZqHjAnmVbfQtB620V0uReIQutpel14KcneZuer7UioY8ALKZ7iocavvzTNFA==", "dependencies": { "regenerator-runtime": "^0.13.11" }, @@ -98,11 +98,11 @@ } }, "node_modules/@graphql-tools/merge": { - "version": "8.3.14", - "resolved": "https://registry.npmjs.org/@graphql-tools/merge/-/merge-8.3.14.tgz", - "integrity": "sha512-zV0MU1DnxJLIB0wpL4N3u21agEiYFsjm6DI130jqHpwF0pR9HkF+Ni65BNfts4zQelP0GjkHltG+opaozAJ1NA==", + "version": "8.3.15", + "resolved": "https://registry.npmjs.org/@graphql-tools/merge/-/merge-8.3.15.tgz", + "integrity": "sha512-hYYOlsqkUlL6oOo7zzuk6hIv7xQzy+x21sgK84d5FWaiWYkLYh9As8myuDd9SD5xovWWQ9m/iRhIOVDEMSyEKA==", "dependencies": { - "@graphql-tools/utils": "9.1.3", + "@graphql-tools/utils": "9.1.4", "tslib": "^2.4.0" }, "peerDependencies": { @@ -110,23 +110,23 @@ } }, "node_modules/@graphql-tools/schema": { - "version": "9.0.12", - "resolved": "https://registry.npmjs.org/@graphql-tools/schema/-/schema-9.0.12.tgz", - "integrity": "sha512-DmezcEltQai0V1y96nwm0Kg11FDS/INEFekD4nnVgzBqawvznWqK6D6bujn+cw6kivoIr3Uq//QmU/hBlBzUlQ==", + "version": "9.0.13", + "resolved": "https://registry.npmjs.org/@graphql-tools/schema/-/schema-9.0.13.tgz", + "integrity": "sha512-guRA3fwAtv+M1Kh930P4ydH9aKJTWscIkhVFcWpj/cnjYYxj88jkEJ15ZNiJX/2breNY+sbVgmlgLKb6aXi/Jg==", "dependencies": { - "@graphql-tools/merge": "8.3.14", - "@graphql-tools/utils": "9.1.3", + "@graphql-tools/merge": "8.3.15", + "@graphql-tools/utils": "9.1.4", "tslib": "^2.4.0", - "value-or-promise": "1.0.11" + "value-or-promise": "1.0.12" }, "peerDependencies": { "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" } }, "node_modules/@graphql-tools/utils": { - "version": "9.1.3", - "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-9.1.3.tgz", - "integrity": "sha512-bbJyKhs6awp1/OmP+WKA1GOyu9UbgZGkhIj5srmiMGLHohEOKMjW784Sk0BZil1w2x95UPu0WHw6/d/HVCACCg==", + "version": "9.1.4", + "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-9.1.4.tgz", + "integrity": "sha512-hgIeLt95h9nQgQuzbbdhuZmh+8WV7RZ/6GbTj6t3IU4Zd2zs9yYJ2jgW/krO587GMOY8zCwrjNOMzD40u3l7Vg==", "dependencies": { "tslib": "^2.4.0" }, @@ -167,9 +167,9 @@ ] }, "node_modules/@noble/hashes": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.1.4.tgz", - "integrity": "sha512-+PYsVPrTSqtVjatKt2A/Proukn2Yrz61OBThOCKErc5w2/r1Fh37vbDv0Eah7pyNltrmacjwTvdw3JoR+WE4TA==", + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.1.5.tgz", + "integrity": "sha512-LTMZiiLc+V4v1Yi16TD6aX2gmtKszNye0pQgbaLqkvhIqP7nVsSaJsWloGQjJfJ8offaoP5GtX3yY5swbcJxxQ==", "funding": [ { "type": "individual", @@ -178,9 +178,9 @@ ] }, "node_modules/@noble/secp256k1": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/@noble/secp256k1/-/secp256k1-1.7.0.tgz", - "integrity": "sha512-kbacwGSsH/CTout0ZnZWxnW1B+jH/7r/WAAKLBtrRJ/+CUH7lgmQzl3GTrQua3SGKWNSDsS6lmjnDpIJ5Dxyaw==", + "version": "1.7.1", + "resolved": "https://registry.npmjs.org/@noble/secp256k1/-/secp256k1-1.7.1.tgz", + "integrity": "sha512-hOUk6AyBFmqVrv7k5WAw/LpszxVbj9gGN4JRkIX52fdFAj1UA61KXmZDvqVEm+pOyec3+fIeZB02LYa/pWOArw==", "funding": [ { "type": "individual", @@ -273,15 +273,16 @@ } }, "node_modules/@solana/web3.js": { - "version": "1.70.1", - "resolved": "https://registry.npmjs.org/@solana/web3.js/-/web3.js-1.70.1.tgz", - "integrity": "sha512-AnaqCF1cJ3w7d0yhvLGAKAcRI+n5o+ursQihhoTe4cUh8/9d4gbT73SoHYElS7e67OtAgLmSfbcC5hcOAgdvnQ==", + "version": "1.73.0", + "resolved": "https://registry.npmjs.org/@solana/web3.js/-/web3.js-1.73.0.tgz", + "integrity": "sha512-YrgX3Py7ylh8NYkbanoINUPCj//bWUjYZ5/WPy9nQ9SK3Cl7QWCR+NmbDjmC/fTspZGR+VO9LTQslM++jr5PRw==", "dependencies": { "@babel/runtime": "^7.12.5", "@noble/ed25519": "^1.7.0", "@noble/hashes": "^1.1.2", "@noble/secp256k1": "^1.6.3", "@solana/buffer-layout": "^4.0.0", + "agentkeepalive": "^4.2.1", "bigint-buffer": "^1.1.5", "bn.js": "^5.0.0", "borsh": "^0.7.0", @@ -359,15 +360,15 @@ } }, "node_modules/@types/luxon": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@types/luxon/-/luxon-3.1.0.tgz", - "integrity": "sha512-gCd/HcCgjqSxfMrgtqxCgYk/22NBQfypwFUG7ZAyG/4pqs51WLTcUzVp1hqTbieDYeHS3WoVEh2Yv/2l+7B0Vg==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/@types/luxon/-/luxon-3.2.0.tgz", + "integrity": "sha512-lGmaGFoaXHuOLXFvuju2bfvZRqxAqkHPx9Y9IQdQABrinJJshJwfNCKV+u7rR3kJbiqfTF/NhOkcxxAFrObyaA==", "dev": true }, "node_modules/@types/node": { - "version": "18.11.13", - "resolved": "https://registry.npmjs.org/@types/node/-/node-18.11.13.tgz", - "integrity": "sha512-IASpMGVcWpUsx5xBOrxMj7Bl8lqfuTY7FKAnPmu5cHkfQVWF8GulWS1jbRqA934qZL35xh5xN/+Xe/i26Bod4w==" + "version": "18.11.18", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.11.18.tgz", + "integrity": "sha512-DHQpWGjyQKSHj3ebjFI/wRKcqQcdR+MoFBygntYOZytCqNfkd2ZC4ARDJ2DQqhjH5p85Nnd3jhUJIXrszFX/JA==" }, "node_modules/@types/ws": { "version": "7.4.7", @@ -406,6 +407,19 @@ "node": ">= 0.6" } }, + "node_modules/agentkeepalive": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-4.2.1.tgz", + "integrity": "sha512-Zn4cw2NEqd+9fiSVWMscnjyQ1a8Yfoc5oBajLeo5w+YBHgDUcEBY2hS4YpTz6iN5f/2zQiktcuM6tS8x1p9dpA==", + "dependencies": { + "debug": "^4.1.0", + "depd": "^1.1.2", + "humanize-ms": "^1.2.1" + }, + "engines": { + "node": ">= 8.0.0" + } + }, "node_modules/ansi-styles": { "version": "3.2.1", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", @@ -542,6 +556,14 @@ "ms": "2.0.0" } }, + "node_modules/body-parser/node_modules/depd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", + "engines": { + "node": ">= 0.8" + } + }, "node_modules/body-parser/node_modules/ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", @@ -861,6 +883,25 @@ "node-fetch": "2.6.7" } }, + "node_modules/cross-fetch/node_modules/node-fetch": { + "version": "2.6.7", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", + "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", + "dependencies": { + "whatwg-url": "^5.0.0" + }, + "engines": { + "node": "4.x || >=6.0.0" + }, + "peerDependencies": { + "encoding": "^0.1.0" + }, + "peerDependenciesMeta": { + "encoding": { + "optional": true + } + } + }, "node_modules/debug": { "version": "4.3.4", "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", @@ -889,11 +930,11 @@ } }, "node_modules/depd": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", - "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", + "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==", "engines": { - "node": ">= 0.8" + "node": ">= 0.6" } }, "node_modules/destroy": { @@ -1044,14 +1085,6 @@ "graphql": "^14.7.0 || ^15.3.0" } }, - "node_modules/express-graphql/node_modules/depd": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", - "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==", - "engines": { - "node": ">= 0.6" - } - }, "node_modules/express-graphql/node_modules/http-errors": { "version": "1.8.0", "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.8.0.tgz", @@ -1096,6 +1129,14 @@ "ms": "2.0.0" } }, + "node_modules/express/node_modules/depd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", + "engines": { + "node": ">= 0.8" + } + }, "node_modules/express/node_modules/ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", @@ -1134,9 +1175,9 @@ "integrity": "sha512-wpYMUmFu5f00Sm0cj2pfivpmawLZ0NKdviQ4w9zJeR8JVtOpOxHmLaJuj0vxvGqMJQWyP/COUkF75/57OKyRag==" }, "node_modules/fastest-validator": { - "version": "1.15.0", - "resolved": "https://registry.npmjs.org/fastest-validator/-/fastest-validator-1.15.0.tgz", - "integrity": "sha512-iSGBqeRSD3O8porodq42sk0kxSC2DTyszFcrLIjQNB5fqlG2qH0sok3BSyl0lR6IKmz5Bu7ZO06i7z16XcMihw==" + "version": "1.16.0", + "resolved": "https://registry.npmjs.org/fastest-validator/-/fastest-validator-1.16.0.tgz", + "integrity": "sha512-+C1cFoLboOZIZs2PWhceNtJ15zCoiRalu1LnJB4hy63Y8Tto9bkqGcTGkzegt+Xu4qy3LE9GL6CLzEdpZ5xJBQ==" }, "node_modules/file-uri-to-path": { "version": "1.0.0", @@ -1200,9 +1241,9 @@ "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" }, "node_modules/get-intrinsic": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.3.tgz", - "integrity": "sha512-QJVz1Tj7MS099PevUG5jvnt9tSkXN8K14dxQlikJuPt4uD9hHAHjLyLBiLR5zELelBdD9QNRAXZzsJx0WaDL9A==", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.0.tgz", + "integrity": "sha512-L049y6nFOuom5wGyRc3/gdTLO94dySVKRACj1RmJZBQXlbTMhtNIgkWkUHq+jYmZvKf14EW1EoJnnjbmoHij0Q==", "dependencies": { "function-bind": "^1.1.1", "has": "^1.0.3", @@ -1294,6 +1335,22 @@ "node": ">= 0.8" } }, + "node_modules/http-errors/node_modules/depd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/humanize-ms": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/humanize-ms/-/humanize-ms-1.2.1.tgz", + "integrity": "sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ==", + "dependencies": { + "ms": "^2.0.0" + } + }, "node_modules/iconv-lite": { "version": "0.4.24", "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", @@ -1408,9 +1465,9 @@ "integrity": "sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ==" }, "node_modules/js-base64": { - "version": "3.7.3", - "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-3.7.3.tgz", - "integrity": "sha512-PAr6Xg2jvd7MCR6Ld9Jg3BmTcjYsHEBx1VlwEwULb/qowPf5VD9kEMagj23Gm7JRnSvE/Da/57nChZjnvL8v6A==" + "version": "3.7.4", + "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-3.7.4.tgz", + "integrity": "sha512-wpM/wi20Tl+3ifTyi0RdDckS4YTD4Lf953mBRrpG8547T7hInHNPEj8+ck4gB8VDcGyeAWFK++Wb/fU1BeavKQ==" }, "node_modules/json-stringify-safe": { "version": "5.0.1", @@ -1528,9 +1585,9 @@ } }, "node_modules/luxon": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/luxon/-/luxon-3.1.1.tgz", - "integrity": "sha512-Ah6DloGmvseB/pX1cAmjbFvyU/pKuwQMQqz7d0yvuDlVYLTs2WeDHQMpC8tGjm1da+BriHROW/OEIT/KfYg6xw==", + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/luxon/-/luxon-3.2.1.tgz", + "integrity": "sha512-QrwPArQCNLAKGO/C+ZIilgIuDnEnKx5QYODdDtbFaxzsbZcc/a7WFq7MhsVYgRlwawLtvOUESTlfJ+hc/USqPg==", "peer": true, "engines": { "node": ">=12" @@ -1607,13 +1664,13 @@ } }, "node_modules/moleculer": { - "version": "0.14.26", - "resolved": "https://registry.npmjs.org/moleculer/-/moleculer-0.14.26.tgz", - "integrity": "sha512-s29j0CoMQnOEXUaqlZ/WBRgTNrrraHaEvb+eu4QS8vfEejSn6FOV/R64UoCQ/7M3hiI/Prv78OKp40XVSu4prQ==", + "version": "0.14.28", + "resolved": "https://registry.npmjs.org/moleculer/-/moleculer-0.14.28.tgz", + "integrity": "sha512-HTOtejMpb14oBtW0kKVoYLK6MgZA4NdPEppOf69yJhF1qlqXRGujAXE2ij2wWyXJNf31l84ZZRh+xXXQmRJaOQ==", "dependencies": { "args": "^5.0.3", "eventemitter2": "^6.4.9", - "fastest-validator": "^1.15.0", + "fastest-validator": "^1.16.0", "glob": "^7.2.0", "ipaddr.js": "^2.0.1", "kleur": "^4.1.5", @@ -1749,11 +1806,11 @@ "integrity": "sha512-A0xLykHtARfueITVDernsAWdtIMbOJgKgcluwENp3AlsKN/PloyO10HtmoqnFAQAcxPkgZN7wdfPfEd0zNGxbg==" }, "node_modules/nats": { - "version": "2.9.2", - "resolved": "https://registry.npmjs.org/nats/-/nats-2.9.2.tgz", - "integrity": "sha512-Ee1HVq/FsQrHSh0hvYJ1PhG+DtAhVG0kCXVvqEj8iL/qUge5IgGrwgXcXCBIlvp26PlWYyoMydMiIefYTD0aNw==", + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/nats/-/nats-2.11.0.tgz", + "integrity": "sha512-Zkjtw4LRT0F9IZwSpLr6O0aLbK0w8rX7kU6PHSdk52YzB0c/pkiXstuGcdUpYdkAYkBS06FHfmRE4BVvCn7Pag==", "dependencies": { - "nkeys.js": "1.0.3", + "nkeys.js": "1.0.4", "web-streams-polyfill": "^3.2.1" }, "engines": { @@ -1769,9 +1826,9 @@ } }, "node_modules/nkeys.js": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/nkeys.js/-/nkeys.js-1.0.3.tgz", - "integrity": "sha512-p5Bpb/acPaQmCrbe4gNmMBY/naZJV8Q7m2B9UkXT8BQRC6wjX8zqD2ya8eZu9mpSXQffodV46HCP9OckmxcwYA==", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/nkeys.js/-/nkeys.js-1.0.4.tgz", + "integrity": "sha512-xeNDE6Ha5I3b3PnlHyT9AbmBxq3Vb9KHzmaI/h4IXYg0PUVZSUXNHNhTfU20oBsubw2ZdV/1AdC6hnRuMiZfMQ==", "dependencies": { "tweetnacl": "1.0.3" }, @@ -1791,9 +1848,9 @@ } }, "node_modules/node-fetch": { - "version": "2.6.7", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", - "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", + "version": "2.6.8", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.8.tgz", + "integrity": "sha512-RZ6dBYuj8dRSfxpUSu+NsdF1dpPpluJxwOp+6IoDp/sH2QNDSvurYsAa+F1WxY2RjA1iP93xhcsUoYbF2XBqVg==", "dependencies": { "whatwg-url": "^5.0.0" }, @@ -1810,9 +1867,9 @@ } }, "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==", + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.6.0.tgz", + "integrity": "sha512-NTZVKn9IylLwUzaKjkas1e4u2DLNcV4rdYagA4PWdPwW87Bi7z+BznyKSRwS/761tV/lzCGXplWsiaMjLqP2zQ==", "bin": { "node-gyp-build": "bin.js", "node-gyp-build-optional": "optional.js", @@ -1828,9 +1885,9 @@ } }, "node_modules/object-inspect": { - "version": "1.12.2", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.2.tgz", - "integrity": "sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ==", + "version": "1.12.3", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.3.tgz", + "integrity": "sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==", "funding": { "url": "https://github.com/sponsors/ljharb" } @@ -2015,15 +2072,15 @@ } }, "node_modules/rpc-websockets/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==", + "version": "8.12.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.12.0.tgz", + "integrity": "sha512-kU62emKIdKVeEIOIKVegvqpXMSTAMLJozpHZaJNDYqBjzlSYXQGviYwN1osDLJ9av68qHd4a2oSjd7yD4pacig==", "engines": { "node": ">=10.0.0" }, "peerDependencies": { "bufferutil": "^4.0.1", - "utf-8-validate": "^5.0.2" + "utf-8-validate": ">=5.0.2" }, "peerDependenciesMeta": { "bufferutil": { @@ -2102,6 +2159,14 @@ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" }, + "node_modules/send/node_modules/depd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", + "engines": { + "node": ">= 0.8" + } + }, "node_modules/send/node_modules/ms": { "version": "2.1.3", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", @@ -2299,9 +2364,9 @@ } }, "node_modules/value-or-promise": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/value-or-promise/-/value-or-promise-1.0.11.tgz", - "integrity": "sha512-41BrgH+dIbCFXClcSapVs5M6GkENd3gQOJpEfPDNa71LsUGMXDL0jMWpI/Rh7WhX+Aalfz2TTS3Zt5pUsbnhLg==", + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/value-or-promise/-/value-or-promise-1.0.12.tgz", + "integrity": "sha512-Z6Uz+TYwEqE7ZN50gwn+1LCVo9ZVrpxRPOhOLnncYkY1ZzOYtrX8Fwf/rFktZ8R5mJms6EZf5TqNOMeZmnPq9Q==", "engines": { "node": ">=12" } @@ -2417,37 +2482,37 @@ "requires": {} }, "@babel/runtime": { - "version": "7.20.6", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.20.6.tgz", - "integrity": "sha512-Q+8MqP7TiHMWzSfwiJwXCjyf4GYA4Dgw3emg/7xmwsdLJOZUp+nMqcOwOzzYheuM1rhDu8FSj2l0aoMygEuXuA==", + "version": "7.20.13", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.20.13.tgz", + "integrity": "sha512-gt3PKXs0DBoL9xCvOIIZ2NEqAGZqHjAnmVbfQtB620V0uReIQutpel14KcneZuer7UioY8ALKZ7iocavvzTNFA==", "requires": { "regenerator-runtime": "^0.13.11" } }, "@graphql-tools/merge": { - "version": "8.3.14", - "resolved": "https://registry.npmjs.org/@graphql-tools/merge/-/merge-8.3.14.tgz", - "integrity": "sha512-zV0MU1DnxJLIB0wpL4N3u21agEiYFsjm6DI130jqHpwF0pR9HkF+Ni65BNfts4zQelP0GjkHltG+opaozAJ1NA==", + "version": "8.3.15", + "resolved": "https://registry.npmjs.org/@graphql-tools/merge/-/merge-8.3.15.tgz", + "integrity": "sha512-hYYOlsqkUlL6oOo7zzuk6hIv7xQzy+x21sgK84d5FWaiWYkLYh9As8myuDd9SD5xovWWQ9m/iRhIOVDEMSyEKA==", "requires": { - "@graphql-tools/utils": "9.1.3", + "@graphql-tools/utils": "9.1.4", "tslib": "^2.4.0" } }, "@graphql-tools/schema": { - "version": "9.0.12", - "resolved": "https://registry.npmjs.org/@graphql-tools/schema/-/schema-9.0.12.tgz", - "integrity": "sha512-DmezcEltQai0V1y96nwm0Kg11FDS/INEFekD4nnVgzBqawvznWqK6D6bujn+cw6kivoIr3Uq//QmU/hBlBzUlQ==", + "version": "9.0.13", + "resolved": "https://registry.npmjs.org/@graphql-tools/schema/-/schema-9.0.13.tgz", + "integrity": "sha512-guRA3fwAtv+M1Kh930P4ydH9aKJTWscIkhVFcWpj/cnjYYxj88jkEJ15ZNiJX/2breNY+sbVgmlgLKb6aXi/Jg==", "requires": { - "@graphql-tools/merge": "8.3.14", - "@graphql-tools/utils": "9.1.3", + "@graphql-tools/merge": "8.3.15", + "@graphql-tools/utils": "9.1.4", "tslib": "^2.4.0", - "value-or-promise": "1.0.11" + "value-or-promise": "1.0.12" } }, "@graphql-tools/utils": { - "version": "9.1.3", - "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-9.1.3.tgz", - "integrity": "sha512-bbJyKhs6awp1/OmP+WKA1GOyu9UbgZGkhIj5srmiMGLHohEOKMjW784Sk0BZil1w2x95UPu0WHw6/d/HVCACCg==", + "version": "9.1.4", + "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-9.1.4.tgz", + "integrity": "sha512-hgIeLt95h9nQgQuzbbdhuZmh+8WV7RZ/6GbTj6t3IU4Zd2zs9yYJ2jgW/krO587GMOY8zCwrjNOMzD40u3l7Vg==", "requires": { "tslib": "^2.4.0" } @@ -2479,14 +2544,14 @@ "integrity": "sha512-Rk4SkJFaXZiznFyC/t77Q0NKS4FL7TLJJsVG2V2oiEq3kJVeTdxysEe/yRWSpnWMe808XRDJ+VFh5pt/FN5plw==" }, "@noble/hashes": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.1.4.tgz", - "integrity": "sha512-+PYsVPrTSqtVjatKt2A/Proukn2Yrz61OBThOCKErc5w2/r1Fh37vbDv0Eah7pyNltrmacjwTvdw3JoR+WE4TA==" + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.1.5.tgz", + "integrity": "sha512-LTMZiiLc+V4v1Yi16TD6aX2gmtKszNye0pQgbaLqkvhIqP7nVsSaJsWloGQjJfJ8offaoP5GtX3yY5swbcJxxQ==" }, "@noble/secp256k1": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/@noble/secp256k1/-/secp256k1-1.7.0.tgz", - "integrity": "sha512-kbacwGSsH/CTout0ZnZWxnW1B+jH/7r/WAAKLBtrRJ/+CUH7lgmQzl3GTrQua3SGKWNSDsS6lmjnDpIJ5Dxyaw==" + "version": "1.7.1", + "resolved": "https://registry.npmjs.org/@noble/secp256k1/-/secp256k1-1.7.1.tgz", + "integrity": "sha512-hOUk6AyBFmqVrv7k5WAw/LpszxVbj9gGN4JRkIX52fdFAj1UA61KXmZDvqVEm+pOyec3+fIeZB02LYa/pWOArw==" }, "@project-serum/borsh": { "version": "0.2.5", @@ -2551,15 +2616,16 @@ } }, "@solana/web3.js": { - "version": "1.70.1", - "resolved": "https://registry.npmjs.org/@solana/web3.js/-/web3.js-1.70.1.tgz", - "integrity": "sha512-AnaqCF1cJ3w7d0yhvLGAKAcRI+n5o+ursQihhoTe4cUh8/9d4gbT73SoHYElS7e67OtAgLmSfbcC5hcOAgdvnQ==", + "version": "1.73.0", + "resolved": "https://registry.npmjs.org/@solana/web3.js/-/web3.js-1.73.0.tgz", + "integrity": "sha512-YrgX3Py7ylh8NYkbanoINUPCj//bWUjYZ5/WPy9nQ9SK3Cl7QWCR+NmbDjmC/fTspZGR+VO9LTQslM++jr5PRw==", "requires": { "@babel/runtime": "^7.12.5", "@noble/ed25519": "^1.7.0", "@noble/hashes": "^1.1.2", "@noble/secp256k1": "^1.6.3", "@solana/buffer-layout": "^4.0.0", + "agentkeepalive": "^4.2.1", "bigint-buffer": "^1.1.5", "bn.js": "^5.0.0", "borsh": "^0.7.0", @@ -2622,15 +2688,15 @@ } }, "@types/luxon": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@types/luxon/-/luxon-3.1.0.tgz", - "integrity": "sha512-gCd/HcCgjqSxfMrgtqxCgYk/22NBQfypwFUG7ZAyG/4pqs51WLTcUzVp1hqTbieDYeHS3WoVEh2Yv/2l+7B0Vg==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/@types/luxon/-/luxon-3.2.0.tgz", + "integrity": "sha512-lGmaGFoaXHuOLXFvuju2bfvZRqxAqkHPx9Y9IQdQABrinJJshJwfNCKV+u7rR3kJbiqfTF/NhOkcxxAFrObyaA==", "dev": true }, "@types/node": { - "version": "18.11.13", - "resolved": "https://registry.npmjs.org/@types/node/-/node-18.11.13.tgz", - "integrity": "sha512-IASpMGVcWpUsx5xBOrxMj7Bl8lqfuTY7FKAnPmu5cHkfQVWF8GulWS1jbRqA934qZL35xh5xN/+Xe/i26Bod4w==" + "version": "18.11.18", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.11.18.tgz", + "integrity": "sha512-DHQpWGjyQKSHj3ebjFI/wRKcqQcdR+MoFBygntYOZytCqNfkd2ZC4ARDJ2DQqhjH5p85Nnd3jhUJIXrszFX/JA==" }, "@types/ws": { "version": "7.4.7", @@ -2663,6 +2729,16 @@ "negotiator": "0.6.3" } }, + "agentkeepalive": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-4.2.1.tgz", + "integrity": "sha512-Zn4cw2NEqd+9fiSVWMscnjyQ1a8Yfoc5oBajLeo5w+YBHgDUcEBY2hS4YpTz6iN5f/2zQiktcuM6tS8x1p9dpA==", + "requires": { + "debug": "^4.1.0", + "depd": "^1.1.2", + "humanize-ms": "^1.2.1" + } + }, "ansi-styles": { "version": "3.2.1", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", @@ -2765,6 +2841,11 @@ "ms": "2.0.0" } }, + "depd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==" + }, "ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", @@ -3012,6 +3093,16 @@ "integrity": "sha512-lvb1SBsI0Z7GDwmuid+mU3kWVBwTVUbe7S0H52yaaAdQOXq2YktTCZdlAcNKFzE6QtRz0snpw9bNiPeOIkkQvw==", "requires": { "node-fetch": "2.6.7" + }, + "dependencies": { + "node-fetch": { + "version": "2.6.7", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", + "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", + "requires": { + "whatwg-url": "^5.0.0" + } + } } }, "debug": { @@ -3028,9 +3119,9 @@ "integrity": "sha512-ReEBKkIfe4ya47wlPYf/gu5ib6yUG0/Aez0JQZQz94kiWtRQvZIQbTiehsnwHvLSWJnQdhVeqYue7Id1dKr0qw==" }, "depd": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", - "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==" + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", + "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==" }, "destroy": { "version": "1.2.0", @@ -3151,6 +3242,11 @@ "ms": "2.0.0" } }, + "depd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==" + }, "ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", @@ -3174,11 +3270,6 @@ "raw-body": "^2.4.1" }, "dependencies": { - "depd": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", - "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==" - }, "http-errors": { "version": "1.8.0", "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.8.0.tgz", @@ -3219,9 +3310,9 @@ "integrity": "sha512-wpYMUmFu5f00Sm0cj2pfivpmawLZ0NKdviQ4w9zJeR8JVtOpOxHmLaJuj0vxvGqMJQWyP/COUkF75/57OKyRag==" }, "fastest-validator": { - "version": "1.15.0", - "resolved": "https://registry.npmjs.org/fastest-validator/-/fastest-validator-1.15.0.tgz", - "integrity": "sha512-iSGBqeRSD3O8porodq42sk0kxSC2DTyszFcrLIjQNB5fqlG2qH0sok3BSyl0lR6IKmz5Bu7ZO06i7z16XcMihw==" + "version": "1.16.0", + "resolved": "https://registry.npmjs.org/fastest-validator/-/fastest-validator-1.16.0.tgz", + "integrity": "sha512-+C1cFoLboOZIZs2PWhceNtJ15zCoiRalu1LnJB4hy63Y8Tto9bkqGcTGkzegt+Xu4qy3LE9GL6CLzEdpZ5xJBQ==" }, "file-uri-to-path": { "version": "1.0.0", @@ -3278,9 +3369,9 @@ "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" }, "get-intrinsic": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.3.tgz", - "integrity": "sha512-QJVz1Tj7MS099PevUG5jvnt9tSkXN8K14dxQlikJuPt4uD9hHAHjLyLBiLR5zELelBdD9QNRAXZzsJx0WaDL9A==", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.0.tgz", + "integrity": "sha512-L049y6nFOuom5wGyRc3/gdTLO94dySVKRACj1RmJZBQXlbTMhtNIgkWkUHq+jYmZvKf14EW1EoJnnjbmoHij0Q==", "requires": { "function-bind": "^1.1.1", "has": "^1.0.3", @@ -3341,6 +3432,21 @@ "setprototypeof": "1.2.0", "statuses": "2.0.1", "toidentifier": "1.0.1" + }, + "dependencies": { + "depd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==" + } + } + }, + "humanize-ms": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/humanize-ms/-/humanize-ms-1.2.1.tgz", + "integrity": "sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ==", + "requires": { + "ms": "^2.0.0" } }, "iconv-lite": { @@ -3414,9 +3520,9 @@ } }, "js-base64": { - "version": "3.7.3", - "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-3.7.3.tgz", - "integrity": "sha512-PAr6Xg2jvd7MCR6Ld9Jg3BmTcjYsHEBx1VlwEwULb/qowPf5VD9kEMagj23Gm7JRnSvE/Da/57nChZjnvL8v6A==" + "version": "3.7.4", + "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-3.7.4.tgz", + "integrity": "sha512-wpM/wi20Tl+3ifTyi0RdDckS4YTD4Lf953mBRrpG8547T7hInHNPEj8+ck4gB8VDcGyeAWFK++Wb/fU1BeavKQ==" }, "json-stringify-safe": { "version": "5.0.1", @@ -3492,9 +3598,9 @@ } }, "luxon": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/luxon/-/luxon-3.1.1.tgz", - "integrity": "sha512-Ah6DloGmvseB/pX1cAmjbFvyU/pKuwQMQqz7d0yvuDlVYLTs2WeDHQMpC8tGjm1da+BriHROW/OEIT/KfYg6xw==", + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/luxon/-/luxon-3.2.1.tgz", + "integrity": "sha512-QrwPArQCNLAKGO/C+ZIilgIuDnEnKx5QYODdDtbFaxzsbZcc/a7WFq7MhsVYgRlwawLtvOUESTlfJ+hc/USqPg==", "peer": true }, "media-typer": { @@ -3544,13 +3650,13 @@ "integrity": "sha512-0yuvsqSCv8LbaOKhnsQ/T5JhyFlCYLPXK3U2sgV10zoKQwzs/MyfuQUOZQ1V/6OCOJsK/TRgNVrPuPDqtdMFtA==" }, "moleculer": { - "version": "0.14.26", - "resolved": "https://registry.npmjs.org/moleculer/-/moleculer-0.14.26.tgz", - "integrity": "sha512-s29j0CoMQnOEXUaqlZ/WBRgTNrrraHaEvb+eu4QS8vfEejSn6FOV/R64UoCQ/7M3hiI/Prv78OKp40XVSu4prQ==", + "version": "0.14.28", + "resolved": "https://registry.npmjs.org/moleculer/-/moleculer-0.14.28.tgz", + "integrity": "sha512-HTOtejMpb14oBtW0kKVoYLK6MgZA4NdPEppOf69yJhF1qlqXRGujAXE2ij2wWyXJNf31l84ZZRh+xXXQmRJaOQ==", "requires": { "args": "^5.0.3", "eventemitter2": "^6.4.9", - "fastest-validator": "^1.15.0", + "fastest-validator": "^1.16.0", "glob": "^7.2.0", "ipaddr.js": "^2.0.1", "kleur": "^4.1.5", @@ -3581,11 +3687,11 @@ "integrity": "sha512-A0xLykHtARfueITVDernsAWdtIMbOJgKgcluwENp3AlsKN/PloyO10HtmoqnFAQAcxPkgZN7wdfPfEd0zNGxbg==" }, "nats": { - "version": "2.9.2", - "resolved": "https://registry.npmjs.org/nats/-/nats-2.9.2.tgz", - "integrity": "sha512-Ee1HVq/FsQrHSh0hvYJ1PhG+DtAhVG0kCXVvqEj8iL/qUge5IgGrwgXcXCBIlvp26PlWYyoMydMiIefYTD0aNw==", + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/nats/-/nats-2.11.0.tgz", + "integrity": "sha512-Zkjtw4LRT0F9IZwSpLr6O0aLbK0w8rX7kU6PHSdk52YzB0c/pkiXstuGcdUpYdkAYkBS06FHfmRE4BVvCn7Pag==", "requires": { - "nkeys.js": "1.0.3", + "nkeys.js": "1.0.4", "web-streams-polyfill": "^3.2.1" } }, @@ -3595,9 +3701,9 @@ "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==" }, "nkeys.js": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/nkeys.js/-/nkeys.js-1.0.3.tgz", - "integrity": "sha512-p5Bpb/acPaQmCrbe4gNmMBY/naZJV8Q7m2B9UkXT8BQRC6wjX8zqD2ya8eZu9mpSXQffodV46HCP9OckmxcwYA==", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/nkeys.js/-/nkeys.js-1.0.4.tgz", + "integrity": "sha512-xeNDE6Ha5I3b3PnlHyT9AbmBxq3Vb9KHzmaI/h4IXYg0PUVZSUXNHNhTfU20oBsubw2ZdV/1AdC6hnRuMiZfMQ==", "requires": { "tweetnacl": "1.0.3" } @@ -3611,17 +3717,17 @@ } }, "node-fetch": { - "version": "2.6.7", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", - "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", + "version": "2.6.8", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.8.tgz", + "integrity": "sha512-RZ6dBYuj8dRSfxpUSu+NsdF1dpPpluJxwOp+6IoDp/sH2QNDSvurYsAa+F1WxY2RjA1iP93xhcsUoYbF2XBqVg==", "requires": { "whatwg-url": "^5.0.0" } }, "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==" + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.6.0.tgz", + "integrity": "sha512-NTZVKn9IylLwUzaKjkas1e4u2DLNcV4rdYagA4PWdPwW87Bi7z+BznyKSRwS/761tV/lzCGXplWsiaMjLqP2zQ==" }, "object-assign": { "version": "4.1.1", @@ -3629,9 +3735,9 @@ "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==" }, "object-inspect": { - "version": "1.12.2", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.2.tgz", - "integrity": "sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ==" + "version": "1.12.3", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.3.tgz", + "integrity": "sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==" }, "on-finished": { "version": "2.4.1", @@ -3758,9 +3864,9 @@ }, "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==", + "version": "8.12.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.12.0.tgz", + "integrity": "sha512-kU62emKIdKVeEIOIKVegvqpXMSTAMLJozpHZaJNDYqBjzlSYXQGviYwN1osDLJ9av68qHd4a2oSjd7yD4pacig==", "requires": {} } } @@ -3818,6 +3924,11 @@ } } }, + "depd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==" + }, "ms": { "version": "2.1.3", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", @@ -3964,9 +4075,9 @@ "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==" }, "value-or-promise": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/value-or-promise/-/value-or-promise-1.0.11.tgz", - "integrity": "sha512-41BrgH+dIbCFXClcSapVs5M6GkENd3gQOJpEfPDNa71LsUGMXDL0jMWpI/Rh7WhX+Aalfz2TTS3Zt5pUsbnhLg==" + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/value-or-promise/-/value-or-promise-1.0.12.tgz", + "integrity": "sha512-Z6Uz+TYwEqE7ZN50gwn+1LCVo9ZVrpxRPOhOLnncYkY1ZzOYtrX8Fwf/rFktZ8R5mJms6EZf5TqNOMeZmnPq9Q==" }, "vary": { "version": "1.1.2", diff --git a/packages/marinade_finance/package.json b/packages/marinade_finance/package.json index b628f5c..ad9b917 100644 --- a/packages/marinade_finance/package.json +++ b/packages/marinade_finance/package.json @@ -15,8 +15,8 @@ "author": "ALEPH.im", "license": "ISC", "dependencies": { - "@aleph-indexer/core": "^1.0.23", - "@aleph-indexer/framework": "^1.0.23", + "@aleph-indexer/core": "1.0.23", + "@aleph-indexer/framework": "1.0.23", "@metaplex-foundation/beet": "0.7.1", "@metaplex-foundation/beet-solana": "0.4.0", "@solana/spl-token": "0.3.5", diff --git a/packages/spl-lending/package-lock.json b/packages/spl-lending/package-lock.json index 8236e22..600111c 100644 --- a/packages/spl-lending/package-lock.json +++ b/packages/spl-lending/package-lock.json @@ -9,10 +9,10 @@ "version": "1.0.0", "license": "ISC", "dependencies": { - "@aleph-indexer/core": "^1.0.23", - "@aleph-indexer/framework": "^1.0.23", + "@aleph-indexer/core": "1.0.23", + "@aleph-indexer/framework": "1.0.23", "@aleph-indexer/layout": "^1.0.14", - "@aleph-indexer/middleware": "^1.0.23", + "@aleph-indexer/middleware": "1.0.23", "@port.finance/port-sdk": "^0.2.67", "@solendprotocol/solend-sdk": "^0.7.0" } @@ -94,9 +94,9 @@ } }, "node_modules/@babel/runtime": { - "version": "7.20.6", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.20.6.tgz", - "integrity": "sha512-Q+8MqP7TiHMWzSfwiJwXCjyf4GYA4Dgw3emg/7xmwsdLJOZUp+nMqcOwOzzYheuM1rhDu8FSj2l0aoMygEuXuA==", + "version": "7.20.13", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.20.13.tgz", + "integrity": "sha512-gt3PKXs0DBoL9xCvOIIZ2NEqAGZqHjAnmVbfQtB620V0uReIQutpel14KcneZuer7UioY8ALKZ7iocavvzTNFA==", "dependencies": { "regenerator-runtime": "^0.13.11" }, @@ -104,12 +104,84 @@ "node": ">=6.9.0" } }, + "node_modules/@coral-xyz/anchor": { + "version": "0.26.0", + "resolved": "https://registry.npmjs.org/@coral-xyz/anchor/-/anchor-0.26.0.tgz", + "integrity": "sha512-PxRl+wu5YyptWiR9F2MBHOLLibm87Z4IMUBPreX+DYBtPM+xggvcPi0KAN7+kIL4IrIhXI8ma5V0MCXxSN1pHg==", + "dependencies": { + "@coral-xyz/borsh": "^0.26.0", + "@solana/web3.js": "^1.68.0", + "base64-js": "^1.5.1", + "bn.js": "^5.1.2", + "bs58": "^4.0.1", + "buffer-layout": "^1.2.2", + "camelcase": "^6.3.0", + "cross-fetch": "^3.1.5", + "crypto-hash": "^1.3.0", + "eventemitter3": "^4.0.7", + "js-sha256": "^0.9.0", + "pako": "^2.0.3", + "snake-case": "^3.0.4", + "superstruct": "^0.15.4", + "toml": "^3.0.0" + }, + "engines": { + "node": ">=11" + } + }, + "node_modules/@coral-xyz/anchor/node_modules/base-x": { + "version": "3.0.9", + "resolved": "https://registry.npmjs.org/base-x/-/base-x-3.0.9.tgz", + "integrity": "sha512-H7JU6iBHTal1gp56aKoaa//YUxEaAOUiydvrV/pILqIHXTtqxSkATOnDA2u+jZ/61sD+L/412+7kzXRtWukhpQ==", + "dependencies": { + "safe-buffer": "^5.0.1" + } + }, + "node_modules/@coral-xyz/anchor/node_modules/bs58": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/bs58/-/bs58-4.0.1.tgz", + "integrity": "sha512-Ok3Wdf5vOIlBrgCvTq96gBkJw+JUEzdBgyaza5HLtPm7yTHkjRy8+JzNyHF7BHa0bNWOQIp3m5YF0nnFcOIKLw==", + "dependencies": { + "base-x": "^3.0.2" + } + }, + "node_modules/@coral-xyz/anchor/node_modules/camelcase": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", + "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@coral-xyz/anchor/node_modules/superstruct": { + "version": "0.15.5", + "resolved": "https://registry.npmjs.org/superstruct/-/superstruct-0.15.5.tgz", + "integrity": "sha512-4AOeU+P5UuE/4nOUkmcQdW5y7i9ndt1cQd/3iUe+LTz3RxESf/W/5lg4B74HbDMMv8PHnPnGCQFH45kBcrQYoQ==" + }, + "node_modules/@coral-xyz/borsh": { + "version": "0.26.0", + "resolved": "https://registry.npmjs.org/@coral-xyz/borsh/-/borsh-0.26.0.tgz", + "integrity": "sha512-uCZ0xus0CszQPHYfWAqKS5swS1UxvePu83oOF+TWpUkedsNlg6p2p4azxZNSSqwXb9uXMFgxhuMBX9r3Xoi0vQ==", + "dependencies": { + "bn.js": "^5.1.2", + "buffer-layout": "^1.2.0" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "@solana/web3.js": "^1.68.0" + } + }, "node_modules/@graphql-tools/merge": { - "version": "8.3.14", - "resolved": "https://registry.npmjs.org/@graphql-tools/merge/-/merge-8.3.14.tgz", - "integrity": "sha512-zV0MU1DnxJLIB0wpL4N3u21agEiYFsjm6DI130jqHpwF0pR9HkF+Ni65BNfts4zQelP0GjkHltG+opaozAJ1NA==", + "version": "8.3.15", + "resolved": "https://registry.npmjs.org/@graphql-tools/merge/-/merge-8.3.15.tgz", + "integrity": "sha512-hYYOlsqkUlL6oOo7zzuk6hIv7xQzy+x21sgK84d5FWaiWYkLYh9As8myuDd9SD5xovWWQ9m/iRhIOVDEMSyEKA==", "dependencies": { - "@graphql-tools/utils": "9.1.3", + "@graphql-tools/utils": "9.1.4", "tslib": "^2.4.0" }, "peerDependencies": { @@ -117,23 +189,23 @@ } }, "node_modules/@graphql-tools/schema": { - "version": "9.0.12", - "resolved": "https://registry.npmjs.org/@graphql-tools/schema/-/schema-9.0.12.tgz", - "integrity": "sha512-DmezcEltQai0V1y96nwm0Kg11FDS/INEFekD4nnVgzBqawvznWqK6D6bujn+cw6kivoIr3Uq//QmU/hBlBzUlQ==", + "version": "9.0.13", + "resolved": "https://registry.npmjs.org/@graphql-tools/schema/-/schema-9.0.13.tgz", + "integrity": "sha512-guRA3fwAtv+M1Kh930P4ydH9aKJTWscIkhVFcWpj/cnjYYxj88jkEJ15ZNiJX/2breNY+sbVgmlgLKb6aXi/Jg==", "dependencies": { - "@graphql-tools/merge": "8.3.14", - "@graphql-tools/utils": "9.1.3", + "@graphql-tools/merge": "8.3.15", + "@graphql-tools/utils": "9.1.4", "tslib": "^2.4.0", - "value-or-promise": "1.0.11" + "value-or-promise": "1.0.12" }, "peerDependencies": { "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" } }, "node_modules/@graphql-tools/utils": { - "version": "9.1.3", - "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-9.1.3.tgz", - "integrity": "sha512-bbJyKhs6awp1/OmP+WKA1GOyu9UbgZGkhIj5srmiMGLHohEOKMjW784Sk0BZil1w2x95UPu0WHw6/d/HVCACCg==", + "version": "9.1.4", + "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-9.1.4.tgz", + "integrity": "sha512-hgIeLt95h9nQgQuzbbdhuZmh+8WV7RZ/6GbTj6t3IU4Zd2zs9yYJ2jgW/krO587GMOY8zCwrjNOMzD40u3l7Vg==", "dependencies": { "tslib": "^2.4.0" }, @@ -212,9 +284,9 @@ } }, "node_modules/@mithraic-labs/psy-american": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/@mithraic-labs/psy-american/-/psy-american-0.2.2.tgz", - "integrity": "sha512-MmgLH3Mx4/TXXKLTWApRLchHaUteO31YC8jbtA6/GLqvSpIkLwfcmlzN7Ncca7UgWWCmDYgI3J15hRubqkTjmw==", + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/@mithraic-labs/psy-american/-/psy-american-0.2.3.tgz", + "integrity": "sha512-NsDfb9QNuLKNqRnq8rWAoD2Y3ouAEsAPFfwP28SmDVfkugvj03nvQtjotFLlH2TsE31YonG+gauhpeeGKZyyuw==", "dependencies": { "@project-serum/anchor": "^0.24.2", "@project-serum/serum": "^0.13.60", @@ -274,9 +346,9 @@ ] }, "node_modules/@noble/hashes": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.1.4.tgz", - "integrity": "sha512-+PYsVPrTSqtVjatKt2A/Proukn2Yrz61OBThOCKErc5w2/r1Fh37vbDv0Eah7pyNltrmacjwTvdw3JoR+WE4TA==", + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.1.5.tgz", + "integrity": "sha512-LTMZiiLc+V4v1Yi16TD6aX2gmtKszNye0pQgbaLqkvhIqP7nVsSaJsWloGQjJfJ8offaoP5GtX3yY5swbcJxxQ==", "funding": [ { "type": "individual", @@ -285,9 +357,9 @@ ] }, "node_modules/@noble/secp256k1": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/@noble/secp256k1/-/secp256k1-1.7.0.tgz", - "integrity": "sha512-kbacwGSsH/CTout0ZnZWxnW1B+jH/7r/WAAKLBtrRJ/+CUH7lgmQzl3GTrQua3SGKWNSDsS6lmjnDpIJ5Dxyaw==", + "version": "1.7.1", + "resolved": "https://registry.npmjs.org/@noble/secp256k1/-/secp256k1-1.7.1.tgz", + "integrity": "sha512-hOUk6AyBFmqVrv7k5WAw/LpszxVbj9gGN4JRkIX52fdFAj1UA61KXmZDvqVEm+pOyec3+fIeZB02LYa/pWOArw==", "funding": [ { "type": "individual", @@ -434,10 +506,11 @@ } }, "node_modules/@pythnetwork/client": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/@pythnetwork/client/-/client-2.8.0.tgz", - "integrity": "sha512-YqqZSDDsEApC/F4H5ejcl8OCr7gsWv0noTK8YABT8pCtFRTQxXBP0r2S8KQMaIw1x97Mue/jkYybdMeFQzPjCw==", + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/@pythnetwork/client/-/client-2.11.0.tgz", + "integrity": "sha512-tXj2t64nFnGcoiH82Ip9hbf+kgsi7V/D+VzemQNDqXQR1xK8n+KeT8GSIuusdRZPRBZhwDJGk0UKZf96pg4Q9g==", "dependencies": { + "@coral-xyz/anchor": "^0.26.0", "buffer": "^6.0.1" }, "peerDependencies": { @@ -583,15 +656,16 @@ } }, "node_modules/@solana/web3.js": { - "version": "1.70.1", - "resolved": "https://registry.npmjs.org/@solana/web3.js/-/web3.js-1.70.1.tgz", - "integrity": "sha512-AnaqCF1cJ3w7d0yhvLGAKAcRI+n5o+ursQihhoTe4cUh8/9d4gbT73SoHYElS7e67OtAgLmSfbcC5hcOAgdvnQ==", + "version": "1.73.0", + "resolved": "https://registry.npmjs.org/@solana/web3.js/-/web3.js-1.73.0.tgz", + "integrity": "sha512-YrgX3Py7ylh8NYkbanoINUPCj//bWUjYZ5/WPy9nQ9SK3Cl7QWCR+NmbDjmC/fTspZGR+VO9LTQslM++jr5PRw==", "dependencies": { "@babel/runtime": "^7.12.5", "@noble/ed25519": "^1.7.0", "@noble/hashes": "^1.1.2", "@noble/secp256k1": "^1.6.3", "@solana/buffer-layout": "^4.0.0", + "agentkeepalive": "^4.2.1", "bigint-buffer": "^1.1.5", "bn.js": "^5.0.0", "borsh": "^0.7.0", @@ -893,6 +967,19 @@ "node": ">= 0.6" } }, + "node_modules/agentkeepalive": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-4.2.1.tgz", + "integrity": "sha512-Zn4cw2NEqd+9fiSVWMscnjyQ1a8Yfoc5oBajLeo5w+YBHgDUcEBY2hS4YpTz6iN5f/2zQiktcuM6tS8x1p9dpA==", + "dependencies": { + "debug": "^4.1.0", + "depd": "^1.1.2", + "humanize-ms": "^1.2.1" + }, + "engines": { + "node": ">= 8.0.0" + } + }, "node_modules/ansi-styles": { "version": "3.2.1", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", @@ -1061,6 +1148,14 @@ "ms": "2.0.0" } }, + "node_modules/body-parser/node_modules/depd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", + "engines": { + "node": ">= 0.8" + } + }, "node_modules/body-parser/node_modules/ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", @@ -1389,6 +1484,25 @@ "node-fetch": "2.6.7" } }, + "node_modules/cross-fetch/node_modules/node-fetch": { + "version": "2.6.7", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", + "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", + "dependencies": { + "whatwg-url": "^5.0.0" + }, + "engines": { + "node": "4.x || >=6.0.0" + }, + "peerDependencies": { + "encoding": "^0.1.0" + }, + "peerDependenciesMeta": { + "encoding": { + "optional": true + } + } + }, "node_modules/crypto-hash": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/crypto-hash/-/crypto-hash-1.3.0.tgz", @@ -1404,8 +1518,6 @@ "version": "4.3.4", "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "optional": true, - "peer": true, "dependencies": { "ms": "2.1.2" }, @@ -1435,11 +1547,11 @@ } }, "node_modules/depd": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", - "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", + "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==", "engines": { - "node": ">= 0.8" + "node": ">= 0.6" } }, "node_modules/destroy": { @@ -1604,14 +1716,6 @@ "graphql": "^14.7.0 || ^15.3.0" } }, - "node_modules/express-graphql/node_modules/depd": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", - "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==", - "engines": { - "node": ">= 0.6" - } - }, "node_modules/express-graphql/node_modules/http-errors": { "version": "1.8.0", "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.8.0.tgz", @@ -1656,6 +1760,14 @@ "ms": "2.0.0" } }, + "node_modules/express/node_modules/depd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", + "engines": { + "node": ">= 0.8" + } + }, "node_modules/express/node_modules/ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", @@ -1694,9 +1806,9 @@ "integrity": "sha512-wpYMUmFu5f00Sm0cj2pfivpmawLZ0NKdviQ4w9zJeR8JVtOpOxHmLaJuj0vxvGqMJQWyP/COUkF75/57OKyRag==" }, "node_modules/fastest-validator": { - "version": "1.15.0", - "resolved": "https://registry.npmjs.org/fastest-validator/-/fastest-validator-1.15.0.tgz", - "integrity": "sha512-iSGBqeRSD3O8porodq42sk0kxSC2DTyszFcrLIjQNB5fqlG2qH0sok3BSyl0lR6IKmz5Bu7ZO06i7z16XcMihw==" + "version": "1.16.0", + "resolved": "https://registry.npmjs.org/fastest-validator/-/fastest-validator-1.16.0.tgz", + "integrity": "sha512-+C1cFoLboOZIZs2PWhceNtJ15zCoiRalu1LnJB4hy63Y8Tto9bkqGcTGkzegt+Xu4qy3LE9GL6CLzEdpZ5xJBQ==" }, "node_modules/file-uri-to-path": { "version": "1.0.0", @@ -1802,9 +1914,9 @@ "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" }, "node_modules/get-intrinsic": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.3.tgz", - "integrity": "sha512-QJVz1Tj7MS099PevUG5jvnt9tSkXN8K14dxQlikJuPt4uD9hHAHjLyLBiLR5zELelBdD9QNRAXZzsJx0WaDL9A==", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.0.tgz", + "integrity": "sha512-L049y6nFOuom5wGyRc3/gdTLO94dySVKRACj1RmJZBQXlbTMhtNIgkWkUHq+jYmZvKf14EW1EoJnnjbmoHij0Q==", "dependencies": { "function-bind": "^1.1.1", "has": "^1.0.3", @@ -1923,6 +2035,22 @@ "node": ">= 0.8" } }, + "node_modules/http-errors/node_modules/depd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/humanize-ms": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/humanize-ms/-/humanize-ms-1.2.1.tgz", + "integrity": "sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ==", + "dependencies": { + "ms": "^2.0.0" + } + }, "node_modules/iconv-lite": { "version": "0.4.24", "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", @@ -2062,9 +2190,9 @@ } }, "node_modules/js-base64": { - "version": "3.7.3", - "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-3.7.3.tgz", - "integrity": "sha512-PAr6Xg2jvd7MCR6Ld9Jg3BmTcjYsHEBx1VlwEwULb/qowPf5VD9kEMagj23Gm7JRnSvE/Da/57nChZjnvL8v6A==" + "version": "3.7.4", + "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-3.7.4.tgz", + "integrity": "sha512-wpM/wi20Tl+3ifTyi0RdDckS4YTD4Lf953mBRrpG8547T7hInHNPEj8+ck4gB8VDcGyeAWFK++Wb/fU1BeavKQ==" }, "node_modules/js-sha256": { "version": "0.9.0", @@ -2224,9 +2352,9 @@ "peer": true }, "node_modules/luxon": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/luxon/-/luxon-3.1.1.tgz", - "integrity": "sha512-Ah6DloGmvseB/pX1cAmjbFvyU/pKuwQMQqz7d0yvuDlVYLTs2WeDHQMpC8tGjm1da+BriHROW/OEIT/KfYg6xw==", + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/luxon/-/luxon-3.2.1.tgz", + "integrity": "sha512-QrwPArQCNLAKGO/C+ZIilgIuDnEnKx5QYODdDtbFaxzsbZcc/a7WFq7MhsVYgRlwawLtvOUESTlfJ+hc/USqPg==", "peer": true, "engines": { "node": ">=12" @@ -2324,13 +2452,13 @@ } }, "node_modules/moleculer": { - "version": "0.14.26", - "resolved": "https://registry.npmjs.org/moleculer/-/moleculer-0.14.26.tgz", - "integrity": "sha512-s29j0CoMQnOEXUaqlZ/WBRgTNrrraHaEvb+eu4QS8vfEejSn6FOV/R64UoCQ/7M3hiI/Prv78OKp40XVSu4prQ==", + "version": "0.14.28", + "resolved": "https://registry.npmjs.org/moleculer/-/moleculer-0.14.28.tgz", + "integrity": "sha512-HTOtejMpb14oBtW0kKVoYLK6MgZA4NdPEppOf69yJhF1qlqXRGujAXE2ij2wWyXJNf31l84ZZRh+xXXQmRJaOQ==", "dependencies": { "args": "^5.0.3", "eventemitter2": "^6.4.9", - "fastest-validator": "^1.15.0", + "fastest-validator": "^1.16.0", "glob": "^7.2.0", "ipaddr.js": "^2.0.1", "kleur": "^4.1.5", @@ -2453,9 +2581,7 @@ "node_modules/ms": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "optional": true, - "peer": true + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" }, "node_modules/murmurhash": { "version": "2.0.1", @@ -2468,11 +2594,11 @@ "integrity": "sha512-A0xLykHtARfueITVDernsAWdtIMbOJgKgcluwENp3AlsKN/PloyO10HtmoqnFAQAcxPkgZN7wdfPfEd0zNGxbg==" }, "node_modules/nats": { - "version": "2.9.2", - "resolved": "https://registry.npmjs.org/nats/-/nats-2.9.2.tgz", - "integrity": "sha512-Ee1HVq/FsQrHSh0hvYJ1PhG+DtAhVG0kCXVvqEj8iL/qUge5IgGrwgXcXCBIlvp26PlWYyoMydMiIefYTD0aNw==", + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/nats/-/nats-2.11.0.tgz", + "integrity": "sha512-Zkjtw4LRT0F9IZwSpLr6O0aLbK0w8rX7kU6PHSdk52YzB0c/pkiXstuGcdUpYdkAYkBS06FHfmRE4BVvCn7Pag==", "dependencies": { - "nkeys.js": "1.0.3", + "nkeys.js": "1.0.4", "web-streams-polyfill": "^3.2.1" }, "engines": { @@ -2494,9 +2620,9 @@ "peer": true }, "node_modules/nkeys.js": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/nkeys.js/-/nkeys.js-1.0.3.tgz", - "integrity": "sha512-p5Bpb/acPaQmCrbe4gNmMBY/naZJV8Q7m2B9UkXT8BQRC6wjX8zqD2ya8eZu9mpSXQffodV46HCP9OckmxcwYA==", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/nkeys.js/-/nkeys.js-1.0.4.tgz", + "integrity": "sha512-xeNDE6Ha5I3b3PnlHyT9AbmBxq3Vb9KHzmaI/h4IXYg0PUVZSUXNHNhTfU20oBsubw2ZdV/1AdC6hnRuMiZfMQ==", "dependencies": { "tweetnacl": "1.0.3" }, @@ -2525,9 +2651,9 @@ } }, "node_modules/node-fetch": { - "version": "2.6.7", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", - "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", + "version": "2.6.8", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.8.tgz", + "integrity": "sha512-RZ6dBYuj8dRSfxpUSu+NsdF1dpPpluJxwOp+6IoDp/sH2QNDSvurYsAa+F1WxY2RjA1iP93xhcsUoYbF2XBqVg==", "dependencies": { "whatwg-url": "^5.0.0" }, @@ -2544,9 +2670,9 @@ } }, "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==", + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.6.0.tgz", + "integrity": "sha512-NTZVKn9IylLwUzaKjkas1e4u2DLNcV4rdYagA4PWdPwW87Bi7z+BznyKSRwS/761tV/lzCGXplWsiaMjLqP2zQ==", "bin": { "node-gyp-build": "bin.js", "node-gyp-build-optional": "optional.js", @@ -2562,9 +2688,9 @@ } }, "node_modules/object-inspect": { - "version": "1.12.2", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.2.tgz", - "integrity": "sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ==", + "version": "1.12.3", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.3.tgz", + "integrity": "sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==", "funding": { "url": "https://github.com/sponsors/ljharb" } @@ -2629,9 +2755,9 @@ "integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==" }, "node_modules/prettier": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.1.tgz", - "integrity": "sha512-lqGoSJBQNJidqCHE80vqZJHWHRFoNYsSpP9AjFhlhi9ODCJA541svILes/+/1GM3VaL/abZi7cpFzOpdR9UPKg==", + "version": "2.8.3", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.3.tgz", + "integrity": "sha512-tJ/oJ4amDihPoufT5sM0Z1SKEuKay8LfVAMlbbhnnkvt6BUserZylqo2PN+p9KeljLr0OHa2rXHU1T8reeoTrw==", "bin": { "prettier": "bin-prettier.js" }, @@ -2840,15 +2966,15 @@ } }, "node_modules/rpc-websockets/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==", + "version": "8.12.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.12.0.tgz", + "integrity": "sha512-kU62emKIdKVeEIOIKVegvqpXMSTAMLJozpHZaJNDYqBjzlSYXQGviYwN1osDLJ9av68qHd4a2oSjd7yD4pacig==", "engines": { "node": ">=10.0.0" }, "peerDependencies": { "bufferutil": "^4.0.1", - "utf-8-validate": "^5.0.2" + "utf-8-validate": ">=5.0.2" }, "peerDependenciesMeta": { "bufferutil": { @@ -2927,6 +3053,14 @@ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" }, + "node_modules/send/node_modules/depd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", + "engines": { + "node": ">= 0.8" + } + }, "node_modules/send/node_modules/ms": { "version": "2.1.3", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", @@ -3227,9 +3361,9 @@ } }, "node_modules/value-or-promise": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/value-or-promise/-/value-or-promise-1.0.11.tgz", - "integrity": "sha512-41BrgH+dIbCFXClcSapVs5M6GkENd3gQOJpEfPDNa71LsUGMXDL0jMWpI/Rh7WhX+Aalfz2TTS3Zt5pUsbnhLg==", + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/value-or-promise/-/value-or-promise-1.0.12.tgz", + "integrity": "sha512-Z6Uz+TYwEqE7ZN50gwn+1LCVo9ZVrpxRPOhOLnncYkY1ZzOYtrX8Fwf/rFktZ8R5mJms6EZf5TqNOMeZmnPq9Q==", "engines": { "node": ">=12" } @@ -3377,37 +3511,96 @@ } }, "@babel/runtime": { - "version": "7.20.6", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.20.6.tgz", - "integrity": "sha512-Q+8MqP7TiHMWzSfwiJwXCjyf4GYA4Dgw3emg/7xmwsdLJOZUp+nMqcOwOzzYheuM1rhDu8FSj2l0aoMygEuXuA==", + "version": "7.20.13", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.20.13.tgz", + "integrity": "sha512-gt3PKXs0DBoL9xCvOIIZ2NEqAGZqHjAnmVbfQtB620V0uReIQutpel14KcneZuer7UioY8ALKZ7iocavvzTNFA==", "requires": { "regenerator-runtime": "^0.13.11" } }, + "@coral-xyz/anchor": { + "version": "0.26.0", + "resolved": "https://registry.npmjs.org/@coral-xyz/anchor/-/anchor-0.26.0.tgz", + "integrity": "sha512-PxRl+wu5YyptWiR9F2MBHOLLibm87Z4IMUBPreX+DYBtPM+xggvcPi0KAN7+kIL4IrIhXI8ma5V0MCXxSN1pHg==", + "requires": { + "@coral-xyz/borsh": "^0.26.0", + "@solana/web3.js": "^1.68.0", + "base64-js": "^1.5.1", + "bn.js": "^5.1.2", + "bs58": "^4.0.1", + "buffer-layout": "^1.2.2", + "camelcase": "^6.3.0", + "cross-fetch": "^3.1.5", + "crypto-hash": "^1.3.0", + "eventemitter3": "^4.0.7", + "js-sha256": "^0.9.0", + "pako": "^2.0.3", + "snake-case": "^3.0.4", + "superstruct": "^0.15.4", + "toml": "^3.0.0" + }, + "dependencies": { + "base-x": { + "version": "3.0.9", + "resolved": "https://registry.npmjs.org/base-x/-/base-x-3.0.9.tgz", + "integrity": "sha512-H7JU6iBHTal1gp56aKoaa//YUxEaAOUiydvrV/pILqIHXTtqxSkATOnDA2u+jZ/61sD+L/412+7kzXRtWukhpQ==", + "requires": { + "safe-buffer": "^5.0.1" + } + }, + "bs58": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/bs58/-/bs58-4.0.1.tgz", + "integrity": "sha512-Ok3Wdf5vOIlBrgCvTq96gBkJw+JUEzdBgyaza5HLtPm7yTHkjRy8+JzNyHF7BHa0bNWOQIp3m5YF0nnFcOIKLw==", + "requires": { + "base-x": "^3.0.2" + } + }, + "camelcase": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", + "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==" + }, + "superstruct": { + "version": "0.15.5", + "resolved": "https://registry.npmjs.org/superstruct/-/superstruct-0.15.5.tgz", + "integrity": "sha512-4AOeU+P5UuE/4nOUkmcQdW5y7i9ndt1cQd/3iUe+LTz3RxESf/W/5lg4B74HbDMMv8PHnPnGCQFH45kBcrQYoQ==" + } + } + }, + "@coral-xyz/borsh": { + "version": "0.26.0", + "resolved": "https://registry.npmjs.org/@coral-xyz/borsh/-/borsh-0.26.0.tgz", + "integrity": "sha512-uCZ0xus0CszQPHYfWAqKS5swS1UxvePu83oOF+TWpUkedsNlg6p2p4azxZNSSqwXb9uXMFgxhuMBX9r3Xoi0vQ==", + "requires": { + "bn.js": "^5.1.2", + "buffer-layout": "^1.2.0" + } + }, "@graphql-tools/merge": { - "version": "8.3.14", - "resolved": "https://registry.npmjs.org/@graphql-tools/merge/-/merge-8.3.14.tgz", - "integrity": "sha512-zV0MU1DnxJLIB0wpL4N3u21agEiYFsjm6DI130jqHpwF0pR9HkF+Ni65BNfts4zQelP0GjkHltG+opaozAJ1NA==", + "version": "8.3.15", + "resolved": "https://registry.npmjs.org/@graphql-tools/merge/-/merge-8.3.15.tgz", + "integrity": "sha512-hYYOlsqkUlL6oOo7zzuk6hIv7xQzy+x21sgK84d5FWaiWYkLYh9As8myuDd9SD5xovWWQ9m/iRhIOVDEMSyEKA==", "requires": { - "@graphql-tools/utils": "9.1.3", + "@graphql-tools/utils": "9.1.4", "tslib": "^2.4.0" } }, "@graphql-tools/schema": { - "version": "9.0.12", - "resolved": "https://registry.npmjs.org/@graphql-tools/schema/-/schema-9.0.12.tgz", - "integrity": "sha512-DmezcEltQai0V1y96nwm0Kg11FDS/INEFekD4nnVgzBqawvznWqK6D6bujn+cw6kivoIr3Uq//QmU/hBlBzUlQ==", + "version": "9.0.13", + "resolved": "https://registry.npmjs.org/@graphql-tools/schema/-/schema-9.0.13.tgz", + "integrity": "sha512-guRA3fwAtv+M1Kh930P4ydH9aKJTWscIkhVFcWpj/cnjYYxj88jkEJ15ZNiJX/2breNY+sbVgmlgLKb6aXi/Jg==", "requires": { - "@graphql-tools/merge": "8.3.14", - "@graphql-tools/utils": "9.1.3", + "@graphql-tools/merge": "8.3.15", + "@graphql-tools/utils": "9.1.4", "tslib": "^2.4.0", - "value-or-promise": "1.0.11" + "value-or-promise": "1.0.12" } }, "@graphql-tools/utils": { - "version": "9.1.3", - "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-9.1.3.tgz", - "integrity": "sha512-bbJyKhs6awp1/OmP+WKA1GOyu9UbgZGkhIj5srmiMGLHohEOKMjW784Sk0BZil1w2x95UPu0WHw6/d/HVCACCg==", + "version": "9.1.4", + "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-9.1.4.tgz", + "integrity": "sha512-hgIeLt95h9nQgQuzbbdhuZmh+8WV7RZ/6GbTj6t3IU4Zd2zs9yYJ2jgW/krO587GMOY8zCwrjNOMzD40u3l7Vg==", "requires": { "tslib": "^2.4.0" } @@ -3486,9 +3679,9 @@ } }, "@mithraic-labs/psy-american": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/@mithraic-labs/psy-american/-/psy-american-0.2.2.tgz", - "integrity": "sha512-MmgLH3Mx4/TXXKLTWApRLchHaUteO31YC8jbtA6/GLqvSpIkLwfcmlzN7Ncca7UgWWCmDYgI3J15hRubqkTjmw==", + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/@mithraic-labs/psy-american/-/psy-american-0.2.3.tgz", + "integrity": "sha512-NsDfb9QNuLKNqRnq8rWAoD2Y3ouAEsAPFfwP28SmDVfkugvj03nvQtjotFLlH2TsE31YonG+gauhpeeGKZyyuw==", "requires": { "@project-serum/anchor": "^0.24.2", "@project-serum/serum": "^0.13.60", @@ -3541,14 +3734,14 @@ "integrity": "sha512-Rk4SkJFaXZiznFyC/t77Q0NKS4FL7TLJJsVG2V2oiEq3kJVeTdxysEe/yRWSpnWMe808XRDJ+VFh5pt/FN5plw==" }, "@noble/hashes": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.1.4.tgz", - "integrity": "sha512-+PYsVPrTSqtVjatKt2A/Proukn2Yrz61OBThOCKErc5w2/r1Fh37vbDv0Eah7pyNltrmacjwTvdw3JoR+WE4TA==" + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.1.5.tgz", + "integrity": "sha512-LTMZiiLc+V4v1Yi16TD6aX2gmtKszNye0pQgbaLqkvhIqP7nVsSaJsWloGQjJfJ8offaoP5GtX3yY5swbcJxxQ==" }, "@noble/secp256k1": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/@noble/secp256k1/-/secp256k1-1.7.0.tgz", - "integrity": "sha512-kbacwGSsH/CTout0ZnZWxnW1B+jH/7r/WAAKLBtrRJ/+CUH7lgmQzl3GTrQua3SGKWNSDsS6lmjnDpIJ5Dxyaw==" + "version": "1.7.1", + "resolved": "https://registry.npmjs.org/@noble/secp256k1/-/secp256k1-1.7.1.tgz", + "integrity": "sha512-hOUk6AyBFmqVrv7k5WAw/LpszxVbj9gGN4JRkIX52fdFAj1UA61KXmZDvqVEm+pOyec3+fIeZB02LYa/pWOArw==" }, "@port.finance/port-sdk": { "version": "0.2.69", @@ -3671,10 +3864,11 @@ } }, "@pythnetwork/client": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/@pythnetwork/client/-/client-2.8.0.tgz", - "integrity": "sha512-YqqZSDDsEApC/F4H5ejcl8OCr7gsWv0noTK8YABT8pCtFRTQxXBP0r2S8KQMaIw1x97Mue/jkYybdMeFQzPjCw==", + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/@pythnetwork/client/-/client-2.11.0.tgz", + "integrity": "sha512-tXj2t64nFnGcoiH82Ip9hbf+kgsi7V/D+VzemQNDqXQR1xK8n+KeT8GSIuusdRZPRBZhwDJGk0UKZf96pg4Q9g==", "requires": { + "@coral-xyz/anchor": "^0.26.0", "buffer": "^6.0.1" } }, @@ -3786,15 +3980,16 @@ } }, "@solana/web3.js": { - "version": "1.70.1", - "resolved": "https://registry.npmjs.org/@solana/web3.js/-/web3.js-1.70.1.tgz", - "integrity": "sha512-AnaqCF1cJ3w7d0yhvLGAKAcRI+n5o+ursQihhoTe4cUh8/9d4gbT73SoHYElS7e67OtAgLmSfbcC5hcOAgdvnQ==", + "version": "1.73.0", + "resolved": "https://registry.npmjs.org/@solana/web3.js/-/web3.js-1.73.0.tgz", + "integrity": "sha512-YrgX3Py7ylh8NYkbanoINUPCj//bWUjYZ5/WPy9nQ9SK3Cl7QWCR+NmbDjmC/fTspZGR+VO9LTQslM++jr5PRw==", "requires": { "@babel/runtime": "^7.12.5", "@noble/ed25519": "^1.7.0", "@noble/hashes": "^1.1.2", "@noble/secp256k1": "^1.6.3", "@solana/buffer-layout": "^4.0.0", + "agentkeepalive": "^4.2.1", "bigint-buffer": "^1.1.5", "bn.js": "^5.0.0", "borsh": "^0.7.0", @@ -4032,6 +4227,16 @@ "negotiator": "0.6.3" } }, + "agentkeepalive": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-4.2.1.tgz", + "integrity": "sha512-Zn4cw2NEqd+9fiSVWMscnjyQ1a8Yfoc5oBajLeo5w+YBHgDUcEBY2hS4YpTz6iN5f/2zQiktcuM6tS8x1p9dpA==", + "requires": { + "debug": "^4.1.0", + "depd": "^1.1.2", + "humanize-ms": "^1.2.1" + } + }, "ansi-styles": { "version": "3.2.1", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", @@ -4155,6 +4360,11 @@ "ms": "2.0.0" } }, + "depd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==" + }, "ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", @@ -4408,6 +4618,16 @@ "integrity": "sha512-lvb1SBsI0Z7GDwmuid+mU3kWVBwTVUbe7S0H52yaaAdQOXq2YktTCZdlAcNKFzE6QtRz0snpw9bNiPeOIkkQvw==", "requires": { "node-fetch": "2.6.7" + }, + "dependencies": { + "node-fetch": { + "version": "2.6.7", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", + "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", + "requires": { + "whatwg-url": "^5.0.0" + } + } } }, "crypto-hash": { @@ -4419,8 +4639,6 @@ "version": "4.3.4", "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "optional": true, - "peer": true, "requires": { "ms": "2.1.2" } @@ -4436,9 +4654,9 @@ "integrity": "sha512-ReEBKkIfe4ya47wlPYf/gu5ib6yUG0/Aez0JQZQz94kiWtRQvZIQbTiehsnwHvLSWJnQdhVeqYue7Id1dKr0qw==" }, "depd": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", - "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==" + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", + "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==" }, "destroy": { "version": "1.2.0", @@ -4573,6 +4791,11 @@ "ms": "2.0.0" } }, + "depd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==" + }, "ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", @@ -4596,11 +4819,6 @@ "raw-body": "^2.4.1" }, "dependencies": { - "depd": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", - "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==" - }, "http-errors": { "version": "1.8.0", "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.8.0.tgz", @@ -4641,9 +4859,9 @@ "integrity": "sha512-wpYMUmFu5f00Sm0cj2pfivpmawLZ0NKdviQ4w9zJeR8JVtOpOxHmLaJuj0vxvGqMJQWyP/COUkF75/57OKyRag==" }, "fastest-validator": { - "version": "1.15.0", - "resolved": "https://registry.npmjs.org/fastest-validator/-/fastest-validator-1.15.0.tgz", - "integrity": "sha512-iSGBqeRSD3O8porodq42sk0kxSC2DTyszFcrLIjQNB5fqlG2qH0sok3BSyl0lR6IKmz5Bu7ZO06i7z16XcMihw==" + "version": "1.16.0", + "resolved": "https://registry.npmjs.org/fastest-validator/-/fastest-validator-1.16.0.tgz", + "integrity": "sha512-+C1cFoLboOZIZs2PWhceNtJ15zCoiRalu1LnJB4hy63Y8Tto9bkqGcTGkzegt+Xu4qy3LE9GL6CLzEdpZ5xJBQ==" }, "file-uri-to-path": { "version": "1.0.0", @@ -4725,9 +4943,9 @@ "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" }, "get-intrinsic": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.3.tgz", - "integrity": "sha512-QJVz1Tj7MS099PevUG5jvnt9tSkXN8K14dxQlikJuPt4uD9hHAHjLyLBiLR5zELelBdD9QNRAXZzsJx0WaDL9A==", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.0.tgz", + "integrity": "sha512-L049y6nFOuom5wGyRc3/gdTLO94dySVKRACj1RmJZBQXlbTMhtNIgkWkUHq+jYmZvKf14EW1EoJnnjbmoHij0Q==", "requires": { "function-bind": "^1.1.1", "has": "^1.0.3", @@ -4807,6 +5025,21 @@ "setprototypeof": "1.2.0", "statuses": "2.0.1", "toidentifier": "1.0.1" + }, + "dependencies": { + "depd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==" + } + } + }, + "humanize-ms": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/humanize-ms/-/humanize-ms-1.2.1.tgz", + "integrity": "sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ==", + "requires": { + "ms": "^2.0.0" } }, "iconv-lite": { @@ -4897,9 +5130,9 @@ } }, "js-base64": { - "version": "3.7.3", - "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-3.7.3.tgz", - "integrity": "sha512-PAr6Xg2jvd7MCR6Ld9Jg3BmTcjYsHEBx1VlwEwULb/qowPf5VD9kEMagj23Gm7JRnSvE/Da/57nChZjnvL8v6A==" + "version": "3.7.4", + "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-3.7.4.tgz", + "integrity": "sha512-wpM/wi20Tl+3ifTyi0RdDckS4YTD4Lf953mBRrpG8547T7hInHNPEj8+ck4gB8VDcGyeAWFK++Wb/fU1BeavKQ==" }, "js-sha256": { "version": "0.9.0", @@ -5015,9 +5248,9 @@ "peer": true }, "luxon": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/luxon/-/luxon-3.1.1.tgz", - "integrity": "sha512-Ah6DloGmvseB/pX1cAmjbFvyU/pKuwQMQqz7d0yvuDlVYLTs2WeDHQMpC8tGjm1da+BriHROW/OEIT/KfYg6xw==", + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/luxon/-/luxon-3.2.1.tgz", + "integrity": "sha512-QrwPArQCNLAKGO/C+ZIilgIuDnEnKx5QYODdDtbFaxzsbZcc/a7WFq7MhsVYgRlwawLtvOUESTlfJ+hc/USqPg==", "peer": true }, "marked": { @@ -5079,13 +5312,13 @@ "integrity": "sha512-0yuvsqSCv8LbaOKhnsQ/T5JhyFlCYLPXK3U2sgV10zoKQwzs/MyfuQUOZQ1V/6OCOJsK/TRgNVrPuPDqtdMFtA==" }, "moleculer": { - "version": "0.14.26", - "resolved": "https://registry.npmjs.org/moleculer/-/moleculer-0.14.26.tgz", - "integrity": "sha512-s29j0CoMQnOEXUaqlZ/WBRgTNrrraHaEvb+eu4QS8vfEejSn6FOV/R64UoCQ/7M3hiI/Prv78OKp40XVSu4prQ==", + "version": "0.14.28", + "resolved": "https://registry.npmjs.org/moleculer/-/moleculer-0.14.28.tgz", + "integrity": "sha512-HTOtejMpb14oBtW0kKVoYLK6MgZA4NdPEppOf69yJhF1qlqXRGujAXE2ij2wWyXJNf31l84ZZRh+xXXQmRJaOQ==", "requires": { "args": "^5.0.3", "eventemitter2": "^6.4.9", - "fastest-validator": "^1.15.0", + "fastest-validator": "^1.16.0", "glob": "^7.2.0", "ipaddr.js": "^2.0.1", "kleur": "^4.1.5", @@ -5103,9 +5336,7 @@ "ms": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "optional": true, - "peer": true + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" }, "murmurhash": { "version": "2.0.1", @@ -5118,11 +5349,11 @@ "integrity": "sha512-A0xLykHtARfueITVDernsAWdtIMbOJgKgcluwENp3AlsKN/PloyO10HtmoqnFAQAcxPkgZN7wdfPfEd0zNGxbg==" }, "nats": { - "version": "2.9.2", - "resolved": "https://registry.npmjs.org/nats/-/nats-2.9.2.tgz", - "integrity": "sha512-Ee1HVq/FsQrHSh0hvYJ1PhG+DtAhVG0kCXVvqEj8iL/qUge5IgGrwgXcXCBIlvp26PlWYyoMydMiIefYTD0aNw==", + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/nats/-/nats-2.11.0.tgz", + "integrity": "sha512-Zkjtw4LRT0F9IZwSpLr6O0aLbK0w8rX7kU6PHSdk52YzB0c/pkiXstuGcdUpYdkAYkBS06FHfmRE4BVvCn7Pag==", "requires": { - "nkeys.js": "1.0.3", + "nkeys.js": "1.0.4", "web-streams-polyfill": "^3.2.1" } }, @@ -5138,9 +5369,9 @@ "peer": true }, "nkeys.js": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/nkeys.js/-/nkeys.js-1.0.3.tgz", - "integrity": "sha512-p5Bpb/acPaQmCrbe4gNmMBY/naZJV8Q7m2B9UkXT8BQRC6wjX8zqD2ya8eZu9mpSXQffodV46HCP9OckmxcwYA==", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/nkeys.js/-/nkeys.js-1.0.4.tgz", + "integrity": "sha512-xeNDE6Ha5I3b3PnlHyT9AbmBxq3Vb9KHzmaI/h4IXYg0PUVZSUXNHNhTfU20oBsubw2ZdV/1AdC6hnRuMiZfMQ==", "requires": { "tweetnacl": "1.0.3" } @@ -5163,17 +5394,17 @@ } }, "node-fetch": { - "version": "2.6.7", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", - "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", + "version": "2.6.8", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.8.tgz", + "integrity": "sha512-RZ6dBYuj8dRSfxpUSu+NsdF1dpPpluJxwOp+6IoDp/sH2QNDSvurYsAa+F1WxY2RjA1iP93xhcsUoYbF2XBqVg==", "requires": { "whatwg-url": "^5.0.0" } }, "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==" + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.6.0.tgz", + "integrity": "sha512-NTZVKn9IylLwUzaKjkas1e4u2DLNcV4rdYagA4PWdPwW87Bi7z+BznyKSRwS/761tV/lzCGXplWsiaMjLqP2zQ==" }, "object-assign": { "version": "4.1.1", @@ -5181,9 +5412,9 @@ "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==" }, "object-inspect": { - "version": "1.12.2", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.2.tgz", - "integrity": "sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ==" + "version": "1.12.3", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.3.tgz", + "integrity": "sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==" }, "on-finished": { "version": "2.4.1", @@ -5233,9 +5464,9 @@ "integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==" }, "prettier": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.1.tgz", - "integrity": "sha512-lqGoSJBQNJidqCHE80vqZJHWHRFoNYsSpP9AjFhlhi9ODCJA541svILes/+/1GM3VaL/abZi7cpFzOpdR9UPKg==" + "version": "2.8.3", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.3.tgz", + "integrity": "sha512-tJ/oJ4amDihPoufT5sM0Z1SKEuKay8LfVAMlbbhnnkvt6BUserZylqo2PN+p9KeljLr0OHa2rXHU1T8reeoTrw==" }, "progress": { "version": "2.0.3", @@ -5373,9 +5604,9 @@ }, "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==", + "version": "8.12.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.12.0.tgz", + "integrity": "sha512-kU62emKIdKVeEIOIKVegvqpXMSTAMLJozpHZaJNDYqBjzlSYXQGviYwN1osDLJ9av68qHd4a2oSjd7yD4pacig==", "requires": {} } } @@ -5433,6 +5664,11 @@ } } }, + "depd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==" + }, "ms": { "version": "2.1.3", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", @@ -5655,9 +5891,9 @@ "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==" }, "value-or-promise": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/value-or-promise/-/value-or-promise-1.0.11.tgz", - "integrity": "sha512-41BrgH+dIbCFXClcSapVs5M6GkENd3gQOJpEfPDNa71LsUGMXDL0jMWpI/Rh7WhX+Aalfz2TTS3Zt5pUsbnhLg==" + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/value-or-promise/-/value-or-promise-1.0.12.tgz", + "integrity": "sha512-Z6Uz+TYwEqE7ZN50gwn+1LCVo9ZVrpxRPOhOLnncYkY1ZzOYtrX8Fwf/rFktZ8R5mJms6EZf5TqNOMeZmnPq9Q==" }, "vary": { "version": "1.1.2", diff --git a/packages/spl-lending/package.json b/packages/spl-lending/package.json index f05405a..9474d46 100644 --- a/packages/spl-lending/package.json +++ b/packages/spl-lending/package.json @@ -14,10 +14,10 @@ "author": "ALEPH.im", "license": "ISC", "dependencies": { - "@aleph-indexer/core": "^1.0.23", - "@aleph-indexer/framework": "^1.0.23", + "@aleph-indexer/core": "1.0.23", + "@aleph-indexer/framework": "1.0.23", "@aleph-indexer/layout": "^1.0.14", - "@aleph-indexer/middleware": "^1.0.23", + "@aleph-indexer/middleware": "1.0.23", "@port.finance/port-sdk": "^0.2.67", "@solendprotocol/solend-sdk": "^0.7.0" } diff --git a/packages/spl-token/package-lock.json b/packages/spl-token/package-lock.json index 07f32eb..58cd9ce 100644 --- a/packages/spl-token/package-lock.json +++ b/packages/spl-token/package-lock.json @@ -9,54 +9,10 @@ "version": "1.0.0", "license": "ISC", "dependencies": { - "@aleph-indexer/core": "^1.0.23", - "@aleph-indexer/framework": "^1.0.23", + "@aleph-indexer/core": "1.0.23", + "@aleph-indexer/framework": "1.0.23", "@aleph-indexer/layout": "^1.0.14", - "@aleph-indexer/middleware": "^1.0.23" - } - }, - "../../../solana-indexer-framework/packages/core": { - "name": "@aleph-indexer/core", - "version": "1.0.9", - "extraneous": true, - "license": "ISC", - "devDependencies": { - "@types/bs58": "^4.0.1", - "@types/compression": "^1.7.2", - "@types/level": "^6.0.0" - }, - "peerDependencies": { - "luxon": "^2.0.2" - } - }, - "../../../solana-indexer-framework/packages/framework": { - "name": "@aleph-indexer/framework", - "version": "1.0.9", - "extraneous": true, - "license": "ISC", - "dependencies": { - "@aleph-indexer/core": "^1.0.9", - "@aleph-indexer/layout": "^1.0.7", - "@solana/web3.js": "^1.36.0", - "buffer-layout": "^1.2.2", - "moleculer": "^0.14.21", - "uuid": "^8.3.2" - }, - "devDependencies": { - "@types/level": "^6.0.0", - "@types/uuid": "^8.3.2" - }, - "peerDependencies": { - "luxon": "^2.0.2" - } - }, - "../../../solana-indexer-framework/packages/layout": { - "name": "@aleph-indexer/layout", - "version": "1.0.7", - "extraneous": true, - "license": "ISC", - "dependencies": { - "@project-serum/borsh": "0.2.5" + "@aleph-indexer/middleware": "1.0.23" } }, "node_modules/@aleph-indexer/core": { @@ -90,22 +46,6 @@ "luxon": "^3.0.4" } }, - "node_modules/@aleph-indexer/core/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/@aleph-indexer/core/node_modules/superstruct": { - "version": "0.16.7", - "resolved": "https://registry.npmjs.org/superstruct/-/superstruct-0.16.7.tgz", - "integrity": "sha512-4ZZTrXlP4XzCrgh4vOfPDL6dL7zZm5aPl78eczwFSrwvxtsEnKRrSGID6Sbt0agycUoo4auRdWSNTX+oQ3KFyA==", - "engines": { - "node": ">=14.0.0" - } - }, "node_modules/@aleph-indexer/framework": { "version": "1.0.23", "resolved": "https://registry.npmjs.org/@aleph-indexer/framework/-/framework-1.0.23.tgz", @@ -127,19 +67,6 @@ "luxon": "^3.0.4" } }, - "node_modules/@aleph-indexer/framework/node_modules/base-x": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/base-x/-/base-x-4.0.0.tgz", - "integrity": "sha512-FuwxlW4H5kh37X/oW59pwTzzTKRzfrrQwhmyspRM7swOEZcHtDZSCt45U6oKgtuFE+WYPblePMVIPR4RZrh/hw==" - }, - "node_modules/@aleph-indexer/framework/node_modules/bs58": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/bs58/-/bs58-5.0.0.tgz", - "integrity": "sha512-r+ihvQJvahgYT50JD05dyJNKlmmSlMoOGwn1lCcEzanPglg7TxYjioQUYehQ9mAR/+hOSd2jRc/Z2y5UxBymvQ==", - "dependencies": { - "base-x": "^4.0.0" - } - }, "node_modules/@aleph-indexer/layout": { "version": "1.0.14", "resolved": "https://registry.npmjs.org/@aleph-indexer/layout/-/layout-1.0.14.tgz", @@ -165,21 +92,22 @@ } }, "node_modules/@babel/runtime": { - "version": "7.19.0", - "license": "MIT", + "version": "7.20.13", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.20.13.tgz", + "integrity": "sha512-gt3PKXs0DBoL9xCvOIIZ2NEqAGZqHjAnmVbfQtB620V0uReIQutpel14KcneZuer7UioY8ALKZ7iocavvzTNFA==", "dependencies": { - "regenerator-runtime": "^0.13.4" + "regenerator-runtime": "^0.13.11" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@graphql-tools/merge": { - "version": "8.3.6", - "resolved": "https://registry.npmjs.org/@graphql-tools/merge/-/merge-8.3.6.tgz", - "integrity": "sha512-uUBokxXi89bj08P+iCvQk3Vew4vcfL5ZM6NTylWi8PIpoq4r5nJ625bRuN8h2uubEdRiH8ntN9M4xkd/j7AybQ==", + "version": "8.3.15", + "resolved": "https://registry.npmjs.org/@graphql-tools/merge/-/merge-8.3.15.tgz", + "integrity": "sha512-hYYOlsqkUlL6oOo7zzuk6hIv7xQzy+x21sgK84d5FWaiWYkLYh9As8myuDd9SD5xovWWQ9m/iRhIOVDEMSyEKA==", "dependencies": { - "@graphql-tools/utils": "8.12.0", + "@graphql-tools/utils": "9.1.4", "tslib": "^2.4.0" }, "peerDependencies": { @@ -187,23 +115,23 @@ } }, "node_modules/@graphql-tools/schema": { - "version": "9.0.4", - "resolved": "https://registry.npmjs.org/@graphql-tools/schema/-/schema-9.0.4.tgz", - "integrity": "sha512-B/b8ukjs18fq+/s7p97P8L1VMrwapYc3N2KvdG/uNThSazRRn8GsBK0Nr+FH+mVKiUfb4Dno79e3SumZVoHuOQ==", + "version": "9.0.13", + "resolved": "https://registry.npmjs.org/@graphql-tools/schema/-/schema-9.0.13.tgz", + "integrity": "sha512-guRA3fwAtv+M1Kh930P4ydH9aKJTWscIkhVFcWpj/cnjYYxj88jkEJ15ZNiJX/2breNY+sbVgmlgLKb6aXi/Jg==", "dependencies": { - "@graphql-tools/merge": "8.3.6", - "@graphql-tools/utils": "8.12.0", + "@graphql-tools/merge": "8.3.15", + "@graphql-tools/utils": "9.1.4", "tslib": "^2.4.0", - "value-or-promise": "1.0.11" + "value-or-promise": "1.0.12" }, "peerDependencies": { "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" } }, "node_modules/@graphql-tools/utils": { - "version": "8.12.0", - "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-8.12.0.tgz", - "integrity": "sha512-TeO+MJWGXjUTS52qfK4R8HiPoF/R7X+qmgtOYd8DTH0l6b+5Y/tlg5aGeUJefqImRq7nvi93Ms40k/Uz4D5CWw==", + "version": "9.1.4", + "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-9.1.4.tgz", + "integrity": "sha512-hgIeLt95h9nQgQuzbbdhuZmh+8WV7RZ/6GbTj6t3IU4Zd2zs9yYJ2jgW/krO587GMOY8zCwrjNOMzD40u3l7Vg==", "dependencies": { "tslib": "^2.4.0" }, @@ -213,37 +141,41 @@ }, "node_modules/@noble/ed25519": { "version": "1.7.1", + "resolved": "https://registry.npmjs.org/@noble/ed25519/-/ed25519-1.7.1.tgz", + "integrity": "sha512-Rk4SkJFaXZiznFyC/t77Q0NKS4FL7TLJJsVG2V2oiEq3kJVeTdxysEe/yRWSpnWMe808XRDJ+VFh5pt/FN5plw==", "funding": [ { "type": "individual", "url": "https://paulmillr.com/funding/" } - ], - "license": "MIT" + ] }, "node_modules/@noble/hashes": { - "version": "1.1.2", + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.1.5.tgz", + "integrity": "sha512-LTMZiiLc+V4v1Yi16TD6aX2gmtKszNye0pQgbaLqkvhIqP7nVsSaJsWloGQjJfJ8offaoP5GtX3yY5swbcJxxQ==", "funding": [ { "type": "individual", "url": "https://paulmillr.com/funding/" } - ], - "license": "MIT" + ] }, "node_modules/@noble/secp256k1": { - "version": "1.7.0", + "version": "1.7.1", + "resolved": "https://registry.npmjs.org/@noble/secp256k1/-/secp256k1-1.7.1.tgz", + "integrity": "sha512-hOUk6AyBFmqVrv7k5WAw/LpszxVbj9gGN4JRkIX52fdFAj1UA61KXmZDvqVEm+pOyec3+fIeZB02LYa/pWOArw==", "funding": [ { "type": "individual", "url": "https://paulmillr.com/funding/" } - ], - "license": "MIT" + ] }, "node_modules/@project-serum/borsh": { "version": "0.2.5", - "license": "Apache-2.0", + "resolved": "https://registry.npmjs.org/@project-serum/borsh/-/borsh-0.2.5.tgz", + "integrity": "sha512-UmeUkUoKdQ7rhx6Leve1SssMR/Ghv8qrEiyywyxSWg7ooV7StdpPBhciiy5eB3T0qU1BXvdRNC8TdrkxK7WC5Q==", "peer": true, "dependencies": { "bn.js": "^5.1.2", @@ -256,9 +188,44 @@ "@solana/web3.js": "^1.2.0" } }, + "node_modules/@solana/buffer-layout": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@solana/buffer-layout/-/buffer-layout-4.0.1.tgz", + "integrity": "sha512-E1ImOIAD1tBZFRdjeM4/pzTiTApC0AOBGwyAMS4fwIodCWArzJ3DWdoh8cKxeFM2fElkxBh2Aqts1BPC373rHA==", + "dependencies": { + "buffer": "~6.0.3" + }, + "engines": { + "node": ">=5.10" + } + }, + "node_modules/@solana/buffer-layout/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": { + "base64-js": "^1.3.1", + "ieee754": "^1.2.1" + } + }, "node_modules/@solana/spl-token-registry": { "version": "0.2.4574", - "license": "Apache", + "resolved": "https://registry.npmjs.org/@solana/spl-token-registry/-/spl-token-registry-0.2.4574.tgz", + "integrity": "sha512-JzlfZmke8Rxug20VT/VpI2XsXlsqMlcORIUivF+Yucj7tFi7A0dXG7h+2UnD0WaZJw8BrUz2ABNkUnv89vbv1A==", "dependencies": { "cross-fetch": "3.0.6" }, @@ -268,28 +235,31 @@ }, "node_modules/@solana/spl-token-registry/node_modules/cross-fetch": { "version": "3.0.6", - "license": "MIT", + "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.0.6.tgz", + "integrity": "sha512-KBPUbqgFjzWlVcURG+Svp9TlhA5uliYtiNx/0r8nv0pdypeQCRJ9IaSIc3q/x3q8t3F75cHuwxVql1HFGHCNJQ==", "dependencies": { "node-fetch": "2.6.1" } }, "node_modules/@solana/spl-token-registry/node_modules/node-fetch": { "version": "2.6.1", - "license": "MIT", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.1.tgz", + "integrity": "sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw==", "engines": { "node": "4.x || >=6.0.0" } }, "node_modules/@solana/web3.js": { - "version": "1.69.0", - "resolved": "https://registry.npmjs.org/@solana/web3.js/-/web3.js-1.69.0.tgz", - "integrity": "sha512-iU2Q0IG25RITsxBkY1Vkk74LffRokViEcSblz4CGxyt+/V7xSkC2DNM0n0rB3aY/9+FvMiz4l5wHnD9UC4Ac/w==", + "version": "1.73.0", + "resolved": "https://registry.npmjs.org/@solana/web3.js/-/web3.js-1.73.0.tgz", + "integrity": "sha512-YrgX3Py7ylh8NYkbanoINUPCj//bWUjYZ5/WPy9nQ9SK3Cl7QWCR+NmbDjmC/fTspZGR+VO9LTQslM++jr5PRw==", "dependencies": { "@babel/runtime": "^7.12.5", "@noble/ed25519": "^1.7.0", "@noble/hashes": "^1.1.2", "@noble/secp256k1": "^1.6.3", "@solana/buffer-layout": "^4.0.0", + "agentkeepalive": "^4.2.1", "bigint-buffer": "^1.1.5", "bn.js": "^5.0.0", "borsh": "^0.7.0", @@ -305,74 +275,44 @@ "node": ">=12.20.0" } }, - "node_modules/@solana/web3.js/node_modules/@solana/buffer-layout": { - "version": "4.0.0", - "license": "MIT", + "node_modules/@solana/web3.js/node_modules/base-x": { + "version": "3.0.9", + "resolved": "https://registry.npmjs.org/base-x/-/base-x-3.0.9.tgz", + "integrity": "sha512-H7JU6iBHTal1gp56aKoaa//YUxEaAOUiydvrV/pILqIHXTtqxSkATOnDA2u+jZ/61sD+L/412+7kzXRtWukhpQ==", "dependencies": { - "buffer": "~6.0.3" - }, - "engines": { - "node": ">=5.10" + "safe-buffer": "^5.0.1" } }, - "node_modules/@solana/web3.js/node_modules/@solana/buffer-layout/node_modules/buffer": { - "version": "6.0.3", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "MIT", + "node_modules/@solana/web3.js/node_modules/bs58": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/bs58/-/bs58-4.0.1.tgz", + "integrity": "sha512-Ok3Wdf5vOIlBrgCvTq96gBkJw+JUEzdBgyaza5HLtPm7yTHkjRy8+JzNyHF7BHa0bNWOQIp3m5YF0nnFcOIKLw==", "dependencies": { - "base64-js": "^1.3.1", - "ieee754": "^1.2.1" + "base-x": "^3.0.2" } }, - "node_modules/@solana/web3.js/node_modules/buffer": { - "version": "6.0.1", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "MIT", - "dependencies": { - "base64-js": "^1.3.1", - "ieee754": "^1.2.1" - } + "node_modules/@solana/web3.js/node_modules/superstruct": { + "version": "0.14.2", + "resolved": "https://registry.npmjs.org/superstruct/-/superstruct-0.14.2.tgz", + "integrity": "sha512-nPewA6m9mR3d6k7WkZ8N8zpTWfenFH3q9pA2PkuiZxINr9DKB2+40wEQf0ixn8VaGuJ78AB6iWOtStI+/4FKZQ==" }, "node_modules/@types/connect": { "version": "3.4.35", - "license": "MIT", + "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.35.tgz", + "integrity": "sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ==", "dependencies": { "@types/node": "*" } }, "node_modules/@types/node": { "version": "12.20.55", - "license": "MIT" + "resolved": "https://registry.npmjs.org/@types/node/-/node-12.20.55.tgz", + "integrity": "sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ==" }, "node_modules/@types/ws": { "version": "7.4.7", - "license": "MIT", + "resolved": "https://registry.npmjs.org/@types/ws/-/ws-7.4.7.tgz", + "integrity": "sha512-JQbbmxZTZehdc2iszGKs5oC3NFnjeay7mtAWrdt7qNtAVK0g19muApzAy4bm9byz79xa2ZnO/BOBC2R8RC5Lww==", "dependencies": { "@types/node": "*" } @@ -394,6 +334,29 @@ "node": ">=12" } }, + "node_modules/abstract-level/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": { + "base64-js": "^1.3.1", + "ieee754": "^1.2.1" + } + }, "node_modules/accepts": { "version": "1.3.8", "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", @@ -406,6 +369,19 @@ "node": ">= 0.6" } }, + "node_modules/agentkeepalive": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-4.2.1.tgz", + "integrity": "sha512-Zn4cw2NEqd+9fiSVWMscnjyQ1a8Yfoc5oBajLeo5w+YBHgDUcEBY2hS4YpTz6iN5f/2zQiktcuM6tS8x1p9dpA==", + "dependencies": { + "debug": "^4.1.0", + "depd": "^1.1.2", + "humanize-ms": "^1.2.1" + }, + "engines": { + "node": ">= 8.0.0" + } + }, "node_modules/ansi-styles": { "version": "3.2.1", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", @@ -442,14 +418,14 @@ "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" }, "node_modules/base-x": { - "version": "3.0.9", - "license": "MIT", - "dependencies": { - "safe-buffer": "^5.0.1" - } + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/base-x/-/base-x-4.0.0.tgz", + "integrity": "sha512-FuwxlW4H5kh37X/oW59pwTzzTKRzfrrQwhmyspRM7swOEZcHtDZSCt45U6oKgtuFE+WYPblePMVIPR4RZrh/hw==" }, "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", @@ -463,13 +439,13 @@ "type": "consulting", "url": "https://feross.org/support" } - ], - "license": "MIT" + ] }, "node_modules/bigint-buffer": { "version": "1.1.5", + "resolved": "https://registry.npmjs.org/bigint-buffer/-/bigint-buffer-1.1.5.tgz", + "integrity": "sha512-trfYco6AoZ+rKhKnxA0hgX0HAbVP/s808/EuDSe2JDzUnCp/xAsli35Orvk67UrTEcwuxZqYZDmfA2RXJgxVvA==", "hasInstallScript": true, - "license": "Apache-2.0", "dependencies": { "bindings": "^1.3.0" }, @@ -479,19 +455,21 @@ }, "node_modules/bindings": { "version": "1.5.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz", + "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==", "dependencies": { "file-uri-to-path": "1.0.0" } }, "node_modules/bn.js": { "version": "5.2.1", - "license": "MIT" + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", + "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==" }, "node_modules/body-parser": { - "version": "1.20.0", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.0.tgz", - "integrity": "sha512-DfJ+q6EPcGKZD1QWUjSpqp+Q7bDQTsQIF4zfUAtZ6qk+H/3/QRhg9CEp39ss+/T2vw0+HaidC0ecJj/DRLIaKg==", + "version": "1.20.1", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.1.tgz", + "integrity": "sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw==", "dependencies": { "bytes": "3.1.2", "content-type": "~1.0.4", @@ -501,7 +479,7 @@ "http-errors": "2.0.0", "iconv-lite": "0.4.24", "on-finished": "2.4.1", - "qs": "6.10.3", + "qs": "6.11.0", "raw-body": "2.5.1", "type-is": "~1.6.18", "unpipe": "1.0.0" @@ -527,6 +505,14 @@ "ms": "2.0.0" } }, + "node_modules/body-parser/node_modules/depd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", + "engines": { + "node": ">= 0.8" + } + }, "node_modules/body-parser/node_modules/ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", @@ -534,13 +520,30 @@ }, "node_modules/borsh": { "version": "0.7.0", - "license": "Apache-2.0", + "resolved": "https://registry.npmjs.org/borsh/-/borsh-0.7.0.tgz", + "integrity": "sha512-CLCsZGIBCFnPtkNnieW/a8wmreDmfUtjU2m9yHrzPXIlNbqVs0AQrSatSG6vdNYUqdc83tkQi2eHfF98ubzQLA==", "dependencies": { "bn.js": "^5.2.0", "bs58": "^4.0.0", "text-encoding-utf-8": "^1.0.2" } }, + "node_modules/borsh/node_modules/base-x": { + "version": "3.0.9", + "resolved": "https://registry.npmjs.org/base-x/-/base-x-3.0.9.tgz", + "integrity": "sha512-H7JU6iBHTal1gp56aKoaa//YUxEaAOUiydvrV/pILqIHXTtqxSkATOnDA2u+jZ/61sD+L/412+7kzXRtWukhpQ==", + "dependencies": { + "safe-buffer": "^5.0.1" + } + }, + "node_modules/borsh/node_modules/bs58": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/bs58/-/bs58-4.0.1.tgz", + "integrity": "sha512-Ok3Wdf5vOIlBrgCvTq96gBkJw+JUEzdBgyaza5HLtPm7yTHkjRy8+JzNyHF7BHa0bNWOQIp3m5YF0nnFcOIKLw==", + "dependencies": { + "base-x": "^3.0.2" + } + }, "node_modules/brace-expansion": { "version": "1.1.11", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", @@ -562,14 +565,17 @@ } }, "node_modules/bs58": { - "version": "4.0.1", - "license": "MIT", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/bs58/-/bs58-5.0.0.tgz", + "integrity": "sha512-r+ihvQJvahgYT50JD05dyJNKlmmSlMoOGwn1lCcEzanPglg7TxYjioQUYehQ9mAR/+hOSd2jRc/Z2y5UxBymvQ==", "dependencies": { - "base-x": "^3.0.2" + "base-x": "^4.0.0" } }, "node_modules/buffer": { - "version": "6.0.3", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.1.tgz", + "integrity": "sha512-rVAXBwEcEoYtxnHSO5iWyhzV/O1WMtkUYWlfdLS7FjU4PnSJJHEfHXi/uHPI5EwltmOA794gN3bm3/pzuctWjQ==", "funding": [ { "type": "github", @@ -584,7 +590,6 @@ "url": "https://feross.org/support" } ], - "license": "MIT", "dependencies": { "base64-js": "^1.3.1", "ieee754": "^1.2.1" @@ -592,15 +597,17 @@ }, "node_modules/buffer-layout": { "version": "1.2.2", - "license": "MIT", + "resolved": "https://registry.npmjs.org/buffer-layout/-/buffer-layout-1.2.2.tgz", + "integrity": "sha512-kWSuLN694+KTk8SrYvCqwP2WcgQjoRCiF5b4QDvkkz8EmgD+aWAIceGFKMIAdmF/pH+vpgNV3d3kAKorcdAmWA==", "engines": { "node": ">=4.5" } }, "node_modules/bufferutil": { - "version": "4.0.6", + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/bufferutil/-/bufferutil-4.0.7.tgz", + "integrity": "sha512-kukuqc39WOHtdxtw4UScxF/WVnMFVSQVKhtx3AjZJzhd0RGZZldcrfSEbVsWWe6KNH253574cq5F+wpv0G9pJw==", "hasInstallScript": true, - "license": "MIT", "optional": true, "dependencies": { "node-gyp-build": "^4.3.0" @@ -705,7 +712,8 @@ }, "node_modules/commander": { "version": "2.20.3", - "license": "MIT" + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==" }, "node_modules/compressible": { "version": "2.0.18", @@ -748,11 +756,6 @@ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" }, - "node_modules/compression/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==" - }, "node_modules/concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", @@ -769,6 +772,25 @@ "node": ">= 0.6" } }, + "node_modules/content-disposition/node_modules/safe-buffer": { + "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/content-type": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", @@ -804,14 +826,51 @@ }, "node_modules/cross-fetch": { "version": "3.1.5", - "license": "MIT", + "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.5.tgz", + "integrity": "sha512-lvb1SBsI0Z7GDwmuid+mU3kWVBwTVUbe7S0H52yaaAdQOXq2YktTCZdlAcNKFzE6QtRz0snpw9bNiPeOIkkQvw==", "dependencies": { "node-fetch": "2.6.7" } }, + "node_modules/cross-fetch/node_modules/node-fetch": { + "version": "2.6.7", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", + "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", + "dependencies": { + "whatwg-url": "^5.0.0" + }, + "engines": { + "node": "4.x || >=6.0.0" + }, + "peerDependencies": { + "encoding": "^0.1.0" + }, + "peerDependenciesMeta": { + "encoding": { + "optional": true + } + } + }, + "node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, "node_modules/delay": { "version": "5.0.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/delay/-/delay-5.0.0.tgz", + "integrity": "sha512-ReEBKkIfe4ya47wlPYf/gu5ib6yUG0/Aez0JQZQz94kiWtRQvZIQbTiehsnwHvLSWJnQdhVeqYue7Id1dKr0qw==", "engines": { "node": ">=10" }, @@ -820,11 +879,11 @@ } }, "node_modules/depd": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", - "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", + "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==", "engines": { - "node": ">= 0.8" + "node": ">= 0.6" } }, "node_modules/destroy": { @@ -836,6 +895,14 @@ "npm": "1.2.8000 || >= 1.4.16" } }, + "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/dotenv-defaults": { "version": "5.0.2", "resolved": "https://registry.npmjs.org/dotenv-defaults/-/dotenv-defaults-5.0.2.tgz", @@ -867,11 +934,13 @@ }, "node_modules/es6-promise": { "version": "4.2.8", - "license": "MIT" + "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.8.tgz", + "integrity": "sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w==" }, "node_modules/es6-promisify": { "version": "5.0.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/es6-promisify/-/es6-promisify-5.0.0.tgz", + "integrity": "sha512-C+d6UdsYDk0lMebHNR4S2NybQMMngAOnOwYBQjTOiv0MkoJMP0Myw2mgpDLBcpfCmRLxyFqYhS/CfOENq4SJhQ==", "dependencies": { "es6-promise": "^4.0.3" } @@ -904,16 +973,17 @@ }, "node_modules/eventemitter3": { "version": "4.0.7", - "license": "MIT" + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", + "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==" }, "node_modules/express": { - "version": "4.18.1", - "resolved": "https://registry.npmjs.org/express/-/express-4.18.1.tgz", - "integrity": "sha512-zZBcOX9TfehHQhtupq57OF8lFZ3UZi08Y97dwFCkD8p9d/d2Y3M+ykKcwaMDEL+4qyUolgBDX6AblpR3fL212Q==", + "version": "4.18.2", + "resolved": "https://registry.npmjs.org/express/-/express-4.18.2.tgz", + "integrity": "sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ==", "dependencies": { "accepts": "~1.3.8", "array-flatten": "1.1.1", - "body-parser": "1.20.0", + "body-parser": "1.20.1", "content-disposition": "0.5.4", "content-type": "~1.0.4", "cookie": "0.5.0", @@ -932,7 +1002,7 @@ "parseurl": "~1.3.3", "path-to-regexp": "0.1.7", "proxy-addr": "~2.0.7", - "qs": "6.10.3", + "qs": "6.11.0", "range-parser": "~1.2.1", "safe-buffer": "5.2.1", "send": "0.18.0", @@ -964,14 +1034,6 @@ "graphql": "^14.7.0 || ^15.3.0" } }, - "node_modules/express-graphql/node_modules/depd": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", - "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==", - "engines": { - "node": ">= 0.6" - } - }, "node_modules/express-graphql/node_modules/http-errors": { "version": "1.8.0", "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.8.0.tgz", @@ -1016,29 +1078,60 @@ "ms": "2.0.0" } }, + "node_modules/express/node_modules/depd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", + "engines": { + "node": ">= 0.8" + } + }, "node_modules/express/node_modules/ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" }, + "node_modules/express/node_modules/safe-buffer": { + "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/eyes": { "version": "0.1.8", + "resolved": "https://registry.npmjs.org/eyes/-/eyes-0.1.8.tgz", + "integrity": "sha512-GipyPsXO1anza0AOZdy69Im7hGFCNB7Y/NGjDlZGJ3GJJLtwNSb2vrzYrTYJRrRloVx7pl+bhUaTB8yiccPvFQ==", "engines": { "node": "> 0.1.90" } }, "node_modules/fast-stable-stringify": { "version": "1.0.0", - "license": "MIT" + "resolved": "https://registry.npmjs.org/fast-stable-stringify/-/fast-stable-stringify-1.0.0.tgz", + "integrity": "sha512-wpYMUmFu5f00Sm0cj2pfivpmawLZ0NKdviQ4w9zJeR8JVtOpOxHmLaJuj0vxvGqMJQWyP/COUkF75/57OKyRag==" }, "node_modules/fastest-validator": { - "version": "1.15.0", - "resolved": "https://registry.npmjs.org/fastest-validator/-/fastest-validator-1.15.0.tgz", - "integrity": "sha512-iSGBqeRSD3O8porodq42sk0kxSC2DTyszFcrLIjQNB5fqlG2qH0sok3BSyl0lR6IKmz5Bu7ZO06i7z16XcMihw==" + "version": "1.16.0", + "resolved": "https://registry.npmjs.org/fastest-validator/-/fastest-validator-1.16.0.tgz", + "integrity": "sha512-+C1cFoLboOZIZs2PWhceNtJ15zCoiRalu1LnJB4hy63Y8Tto9bkqGcTGkzegt+Xu4qy3LE9GL6CLzEdpZ5xJBQ==" }, "node_modules/file-uri-to-path": { "version": "1.0.0", - "license": "MIT" + "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", + "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==" }, "node_modules/finalhandler": { "version": "1.2.0", @@ -1097,9 +1190,9 @@ "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" }, "node_modules/get-intrinsic": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.3.tgz", - "integrity": "sha512-QJVz1Tj7MS099PevUG5jvnt9tSkXN8K14dxQlikJuPt4uD9hHAHjLyLBiLR5zELelBdD9QNRAXZzsJx0WaDL9A==", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.0.tgz", + "integrity": "sha512-L049y6nFOuom5wGyRc3/gdTLO94dySVKRACj1RmJZBQXlbTMhtNIgkWkUHq+jYmZvKf14EW1EoJnnjbmoHij0Q==", "dependencies": { "function-bind": "^1.1.1", "has": "^1.0.3", @@ -1191,6 +1284,22 @@ "node": ">= 0.8" } }, + "node_modules/http-errors/node_modules/depd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/humanize-ms": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/humanize-ms/-/humanize-ms-1.2.1.tgz", + "integrity": "sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ==", + "dependencies": { + "ms": "^2.0.0" + } + }, "node_modules/iconv-lite": { "version": "0.4.24", "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", @@ -1204,6 +1313,8 @@ }, "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", @@ -1217,8 +1328,7 @@ "type": "consulting", "url": "https://feross.org/support" } - ], - "license": "BSD-3-Clause" + ] }, "node_modules/inflight": { "version": "1.0.6", @@ -1266,14 +1376,16 @@ }, "node_modules/isomorphic-ws": { "version": "4.0.1", - "license": "MIT", + "resolved": "https://registry.npmjs.org/isomorphic-ws/-/isomorphic-ws-4.0.1.tgz", + "integrity": "sha512-BhBvN2MBpWTaSHdWRb/bwdZJ1WaehQ2L1KngkCkfLUGF0mAWAT1sQUQacEmQ0jXkFw/czDXPNQSL5u2/Krsz1w==", "peerDependencies": { "ws": "*" } }, "node_modules/jayson": { "version": "3.7.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/jayson/-/jayson-3.7.0.tgz", + "integrity": "sha512-tfy39KJMrrXJ+mFcMpxwBvFDetS8LAID93+rycFglIQM4kl3uNR3W4lBLE/FFhsoUCEox5Dt2adVpDm/XtebbQ==", "dependencies": { "@types/connect": "^3.4.33", "@types/node": "^12.12.54", @@ -1297,24 +1409,27 @@ } }, "node_modules/js-base64": { - "version": "3.7.2", - "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-3.7.2.tgz", - "integrity": "sha512-NnRs6dsyqUXejqk/yv2aiXlAvOs56sLkX6nUdeaNezI5LFFLlsZjOThmwnrcwh5ZZRwZlCMnVAY3CvhIhoVEKQ==" + "version": "3.7.4", + "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-3.7.4.tgz", + "integrity": "sha512-wpM/wi20Tl+3ifTyi0RdDckS4YTD4Lf953mBRrpG8547T7hInHNPEj8+ck4gB8VDcGyeAWFK++Wb/fU1BeavKQ==" }, "node_modules/json-stringify-safe": { "version": "5.0.1", - "license": "ISC" + "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", + "integrity": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==" }, "node_modules/jsonparse": { "version": "1.3.1", + "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz", + "integrity": "sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==", "engines": [ "node >= 0.2.0" - ], - "license": "MIT" + ] }, "node_modules/JSONStream": { "version": "1.3.5", - "license": "(MIT OR Apache-2.0)", + "resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.5.tgz", + "integrity": "sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==", "dependencies": { "jsonparse": "^1.2.0", "through": ">=2.2.7 <3" @@ -1389,6 +1504,29 @@ "node": ">=12" } }, + "node_modules/level-transcoder/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": { + "base64-js": "^1.3.1", + "ieee754": "^1.2.1" + } + }, "node_modules/leven": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/leven/-/leven-2.1.0.tgz", @@ -1399,7 +1537,8 @@ }, "node_modules/lodash": { "version": "4.17.21", - "license": "MIT" + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" }, "node_modules/lru-cache": { "version": "6.0.0", @@ -1413,9 +1552,9 @@ } }, "node_modules/luxon": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/luxon/-/luxon-3.0.4.tgz", - "integrity": "sha512-aV48rGUwP/Vydn8HT+5cdr26YYQiUZ42NM6ToMoaGKwYfWbfLeRkEu1wXWMHBZT6+KyLfcbbtVcoQFCbbPjKlw==", + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/luxon/-/luxon-3.2.1.tgz", + "integrity": "sha512-QrwPArQCNLAKGO/C+ZIilgIuDnEnKx5QYODdDtbFaxzsbZcc/a7WFq7MhsVYgRlwawLtvOUESTlfJ+hc/USqPg==", "peer": true, "engines": { "node": ">=12" @@ -1492,13 +1631,13 @@ } }, "node_modules/moleculer": { - "version": "0.14.26", - "resolved": "https://registry.npmjs.org/moleculer/-/moleculer-0.14.26.tgz", - "integrity": "sha512-s29j0CoMQnOEXUaqlZ/WBRgTNrrraHaEvb+eu4QS8vfEejSn6FOV/R64UoCQ/7M3hiI/Prv78OKp40XVSu4prQ==", + "version": "0.14.28", + "resolved": "https://registry.npmjs.org/moleculer/-/moleculer-0.14.28.tgz", + "integrity": "sha512-HTOtejMpb14oBtW0kKVoYLK6MgZA4NdPEppOf69yJhF1qlqXRGujAXE2ij2wWyXJNf31l84ZZRh+xXXQmRJaOQ==", "dependencies": { "args": "^5.0.3", "eventemitter2": "^6.4.9", - "fastest-validator": "^1.15.0", + "fastest-validator": "^1.16.0", "glob": "^7.2.0", "ipaddr.js": "^2.0.1", "kleur": "^4.1.5", @@ -1618,6 +1757,11 @@ "node": ">=4" } }, + "node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, "node_modules/murmurhash": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/murmurhash/-/murmurhash-2.0.1.tgz", @@ -1629,11 +1773,11 @@ "integrity": "sha512-A0xLykHtARfueITVDernsAWdtIMbOJgKgcluwENp3AlsKN/PloyO10HtmoqnFAQAcxPkgZN7wdfPfEd0zNGxbg==" }, "node_modules/nats": { - "version": "2.9.0", - "resolved": "https://registry.npmjs.org/nats/-/nats-2.9.0.tgz", - "integrity": "sha512-UBZg0ydCVs4vTp7sFWkmXWmV4oebt6vVRpFUgp+HUMhzjWyvcrBHq0t6hogIHnT5BYilIo0/koDH5FWzhBtSOQ==", + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/nats/-/nats-2.11.0.tgz", + "integrity": "sha512-Zkjtw4LRT0F9IZwSpLr6O0aLbK0w8rX7kU6PHSdk52YzB0c/pkiXstuGcdUpYdkAYkBS06FHfmRE4BVvCn7Pag==", "dependencies": { - "nkeys.js": "1.0.3", + "nkeys.js": "1.0.4", "web-streams-polyfill": "^3.2.1" }, "engines": { @@ -1649,9 +1793,9 @@ } }, "node_modules/nkeys.js": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/nkeys.js/-/nkeys.js-1.0.3.tgz", - "integrity": "sha512-p5Bpb/acPaQmCrbe4gNmMBY/naZJV8Q7m2B9UkXT8BQRC6wjX8zqD2ya8eZu9mpSXQffodV46HCP9OckmxcwYA==", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/nkeys.js/-/nkeys.js-1.0.4.tgz", + "integrity": "sha512-xeNDE6Ha5I3b3PnlHyT9AbmBxq3Vb9KHzmaI/h4IXYg0PUVZSUXNHNhTfU20oBsubw2ZdV/1AdC6hnRuMiZfMQ==", "dependencies": { "tweetnacl": "1.0.3" }, @@ -1671,8 +1815,9 @@ } }, "node_modules/node-fetch": { - "version": "2.6.7", - "license": "MIT", + "version": "2.6.8", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.8.tgz", + "integrity": "sha512-RZ6dBYuj8dRSfxpUSu+NsdF1dpPpluJxwOp+6IoDp/sH2QNDSvurYsAa+F1WxY2RjA1iP93xhcsUoYbF2XBqVg==", "dependencies": { "whatwg-url": "^5.0.0" }, @@ -1689,8 +1834,9 @@ } }, "node_modules/node-gyp-build": { - "version": "4.5.0", - "license": "MIT", + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.6.0.tgz", + "integrity": "sha512-NTZVKn9IylLwUzaKjkas1e4u2DLNcV4rdYagA4PWdPwW87Bi7z+BznyKSRwS/761tV/lzCGXplWsiaMjLqP2zQ==", "bin": { "node-gyp-build": "bin.js", "node-gyp-build-optional": "optional.js", @@ -1706,9 +1852,9 @@ } }, "node_modules/object-inspect": { - "version": "1.12.2", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.2.tgz", - "integrity": "sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ==", + "version": "1.12.3", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.3.tgz", + "integrity": "sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==", "funding": { "url": "https://github.com/sponsors/ljharb" } @@ -1782,9 +1928,9 @@ } }, "node_modules/qs": { - "version": "6.10.3", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.10.3.tgz", - "integrity": "sha512-wr7M2E0OFRfIfJZjKGieI8lBKb7fRCH4Fv5KNPEs7gJ8jadvotdsS08PzOKR7opXhZ/Xkjtt3WF9g38drmyRqQ==", + "version": "6.11.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", + "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", "dependencies": { "side-channel": "^1.0.4" }, @@ -1869,12 +2015,14 @@ } }, "node_modules/regenerator-runtime": { - "version": "0.13.9", - "license": "MIT" + "version": "0.13.11", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz", + "integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==" }, "node_modules/rpc-websockets": { "version": "7.5.0", - "license": "LGPL-3.0-only", + "resolved": "https://registry.npmjs.org/rpc-websockets/-/rpc-websockets-7.5.0.tgz", + "integrity": "sha512-9tIRi1uZGy7YmDjErf1Ax3wtqdSSLIlnmL5OtOzgd5eqPKbsPpwDP5whUDO2LQay3Xp0CcHlcNSGzacNRluBaQ==", "dependencies": { "@babel/runtime": "^7.17.2", "eventemitter3": "^4.0.7", @@ -1891,14 +2039,15 @@ } }, "node_modules/rpc-websockets/node_modules/ws": { - "version": "8.8.1", - "license": "MIT", + "version": "8.12.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.12.0.tgz", + "integrity": "sha512-kU62emKIdKVeEIOIKVegvqpXMSTAMLJozpHZaJNDYqBjzlSYXQGviYwN1osDLJ9av68qHd4a2oSjd7yD4pacig==", "engines": { "node": ">=10.0.0" }, "peerDependencies": { "bufferutil": "^4.0.1", - "utf-8-validate": "^5.0.2" + "utf-8-validate": ">=5.0.2" }, "peerDependenciesMeta": { "bufferutil": { @@ -1932,22 +2081,9 @@ } }, "node_modules/safe-buffer": { - "version": "5.2.1", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "MIT" + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" }, "node_modules/safer-buffer": { "version": "2.1.2", @@ -1990,6 +2126,14 @@ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" }, + "node_modules/send/node_modules/depd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", + "engines": { + "node": ">= 0.8" + } + }, "node_modules/send/node_modules/ms": { "version": "2.1.3", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", @@ -2043,9 +2187,32 @@ "safe-buffer": "~5.2.0" } }, + "node_modules/string_decoder/node_modules/safe-buffer": { + "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/superstruct": { - "version": "0.14.2", - "license": "MIT" + "version": "0.16.7", + "resolved": "https://registry.npmjs.org/superstruct/-/superstruct-0.16.7.tgz", + "integrity": "sha512-4ZZTrXlP4XzCrgh4vOfPDL6dL7zZm5aPl78eczwFSrwvxtsEnKRrSGID6Sbt0agycUoo4auRdWSNTX+oQ3KFyA==", + "engines": { + "node": ">=14.0.0" + } }, "node_modules/supports-color": { "version": "5.5.0", @@ -2059,11 +2226,14 @@ } }, "node_modules/text-encoding-utf-8": { - "version": "1.0.2" + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/text-encoding-utf-8/-/text-encoding-utf-8-1.0.2.tgz", + "integrity": "sha512-8bw4MY9WjdsD2aMtO0OzOCY3pXGYNx2d2FfHRVUKkiCPDWjKuOlhLVASS+pD7VkLTVjW268LYJHwsnPFlBpbAg==" }, "node_modules/through": { "version": "2.3.8", - "license": "MIT" + "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", + "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==" }, "node_modules/toidentifier": { "version": "1.0.1", @@ -2075,11 +2245,13 @@ }, "node_modules/tr46": { "version": "0.0.3", - "license": "MIT" + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==" }, "node_modules/tslib": { - "version": "2.4.0", - "license": "0BSD" + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.1.tgz", + "integrity": "sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA==" }, "node_modules/ttl": { "version": "1.3.1", @@ -2112,9 +2284,10 @@ } }, "node_modules/utf-8-validate": { - "version": "5.0.9", + "version": "5.0.10", + "resolved": "https://registry.npmjs.org/utf-8-validate/-/utf-8-validate-5.0.10.tgz", + "integrity": "sha512-Z6czzLq4u8fPOyx7TU6X3dvUZVvoJmxSQ+IcrlmagKhilxlhZgxPK6C5Jqbkw1IDUmFTM+cz9QDnnLTwDz/2gQ==", "hasInstallScript": true, - "license": "MIT", "optional": true, "dependencies": { "node-gyp-build": "^4.3.0" @@ -2138,15 +2311,16 @@ }, "node_modules/uuid": { "version": "8.3.2", - "license": "MIT", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", "bin": { "uuid": "dist/bin/uuid" } }, "node_modules/value-or-promise": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/value-or-promise/-/value-or-promise-1.0.11.tgz", - "integrity": "sha512-41BrgH+dIbCFXClcSapVs5M6GkENd3gQOJpEfPDNa71LsUGMXDL0jMWpI/Rh7WhX+Aalfz2TTS3Zt5pUsbnhLg==", + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/value-or-promise/-/value-or-promise-1.0.12.tgz", + "integrity": "sha512-Z6Uz+TYwEqE7ZN50gwn+1LCVo9ZVrpxRPOhOLnncYkY1ZzOYtrX8Fwf/rFktZ8R5mJms6EZf5TqNOMeZmnPq9Q==", "engines": { "node": ">=12" } @@ -2169,11 +2343,13 @@ }, "node_modules/webidl-conversions": { "version": "3.0.1", - "license": "BSD-2-Clause" + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==" }, "node_modules/whatwg-url": { "version": "5.0.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", + "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", "dependencies": { "tr46": "~0.0.3", "webidl-conversions": "^3.0.0" @@ -2186,7 +2362,8 @@ }, "node_modules/ws": { "version": "7.5.9", - "license": "MIT", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.9.tgz", + "integrity": "sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==", "engines": { "node": ">=8.3.0" }, @@ -2234,18 +2411,6 @@ "murmurhash": "^2.0.0", "node-cache": "^5.1.2", "superstruct": "^0.16.5" - }, - "dependencies": { - "dotenv": { - "version": "16.0.3", - "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.0.3.tgz", - "integrity": "sha512-7GO6HghkA5fYG9TYnNxi14/7K9f5occMlp3zXAuSxn7CKCxt9xbNWG7yF8hTCSUchlfWSe3uLmlPfigevRItzQ==" - }, - "superstruct": { - "version": "0.16.7", - "resolved": "https://registry.npmjs.org/superstruct/-/superstruct-0.16.7.tgz", - "integrity": "sha512-4ZZTrXlP4XzCrgh4vOfPDL6dL7zZm5aPl78eczwFSrwvxtsEnKRrSGID6Sbt0agycUoo4auRdWSNTX+oQ3KFyA==" - } } }, "@aleph-indexer/framework": { @@ -2262,21 +2427,6 @@ "moleculer": "^0.14.24", "nats": "^2.7.1", "uuid": "^8.3.2" - }, - "dependencies": { - "base-x": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/base-x/-/base-x-4.0.0.tgz", - "integrity": "sha512-FuwxlW4H5kh37X/oW59pwTzzTKRzfrrQwhmyspRM7swOEZcHtDZSCt45U6oKgtuFE+WYPblePMVIPR4RZrh/hw==" - }, - "bs58": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/bs58/-/bs58-5.0.0.tgz", - "integrity": "sha512-r+ihvQJvahgYT50JD05dyJNKlmmSlMoOGwn1lCcEzanPglg7TxYjioQUYehQ9mAR/+hOSd2jRc/Z2y5UxBymvQ==", - "requires": { - "base-x": "^4.0.0" - } - } } }, "@aleph-indexer/layout": { @@ -2295,83 +2445,119 @@ } }, "@babel/runtime": { - "version": "7.19.0", + "version": "7.20.13", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.20.13.tgz", + "integrity": "sha512-gt3PKXs0DBoL9xCvOIIZ2NEqAGZqHjAnmVbfQtB620V0uReIQutpel14KcneZuer7UioY8ALKZ7iocavvzTNFA==", "requires": { - "regenerator-runtime": "^0.13.4" + "regenerator-runtime": "^0.13.11" } }, "@graphql-tools/merge": { - "version": "8.3.6", - "resolved": "https://registry.npmjs.org/@graphql-tools/merge/-/merge-8.3.6.tgz", - "integrity": "sha512-uUBokxXi89bj08P+iCvQk3Vew4vcfL5ZM6NTylWi8PIpoq4r5nJ625bRuN8h2uubEdRiH8ntN9M4xkd/j7AybQ==", + "version": "8.3.15", + "resolved": "https://registry.npmjs.org/@graphql-tools/merge/-/merge-8.3.15.tgz", + "integrity": "sha512-hYYOlsqkUlL6oOo7zzuk6hIv7xQzy+x21sgK84d5FWaiWYkLYh9As8myuDd9SD5xovWWQ9m/iRhIOVDEMSyEKA==", "requires": { - "@graphql-tools/utils": "8.12.0", + "@graphql-tools/utils": "9.1.4", "tslib": "^2.4.0" } }, "@graphql-tools/schema": { - "version": "9.0.4", - "resolved": "https://registry.npmjs.org/@graphql-tools/schema/-/schema-9.0.4.tgz", - "integrity": "sha512-B/b8ukjs18fq+/s7p97P8L1VMrwapYc3N2KvdG/uNThSazRRn8GsBK0Nr+FH+mVKiUfb4Dno79e3SumZVoHuOQ==", + "version": "9.0.13", + "resolved": "https://registry.npmjs.org/@graphql-tools/schema/-/schema-9.0.13.tgz", + "integrity": "sha512-guRA3fwAtv+M1Kh930P4ydH9aKJTWscIkhVFcWpj/cnjYYxj88jkEJ15ZNiJX/2breNY+sbVgmlgLKb6aXi/Jg==", "requires": { - "@graphql-tools/merge": "8.3.6", - "@graphql-tools/utils": "8.12.0", + "@graphql-tools/merge": "8.3.15", + "@graphql-tools/utils": "9.1.4", "tslib": "^2.4.0", - "value-or-promise": "1.0.11" + "value-or-promise": "1.0.12" } }, "@graphql-tools/utils": { - "version": "8.12.0", - "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-8.12.0.tgz", - "integrity": "sha512-TeO+MJWGXjUTS52qfK4R8HiPoF/R7X+qmgtOYd8DTH0l6b+5Y/tlg5aGeUJefqImRq7nvi93Ms40k/Uz4D5CWw==", + "version": "9.1.4", + "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-9.1.4.tgz", + "integrity": "sha512-hgIeLt95h9nQgQuzbbdhuZmh+8WV7RZ/6GbTj6t3IU4Zd2zs9yYJ2jgW/krO587GMOY8zCwrjNOMzD40u3l7Vg==", "requires": { "tslib": "^2.4.0" } }, "@noble/ed25519": { - "version": "1.7.1" + "version": "1.7.1", + "resolved": "https://registry.npmjs.org/@noble/ed25519/-/ed25519-1.7.1.tgz", + "integrity": "sha512-Rk4SkJFaXZiznFyC/t77Q0NKS4FL7TLJJsVG2V2oiEq3kJVeTdxysEe/yRWSpnWMe808XRDJ+VFh5pt/FN5plw==" }, "@noble/hashes": { - "version": "1.1.2" + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.1.5.tgz", + "integrity": "sha512-LTMZiiLc+V4v1Yi16TD6aX2gmtKszNye0pQgbaLqkvhIqP7nVsSaJsWloGQjJfJ8offaoP5GtX3yY5swbcJxxQ==" }, "@noble/secp256k1": { - "version": "1.7.0" + "version": "1.7.1", + "resolved": "https://registry.npmjs.org/@noble/secp256k1/-/secp256k1-1.7.1.tgz", + "integrity": "sha512-hOUk6AyBFmqVrv7k5WAw/LpszxVbj9gGN4JRkIX52fdFAj1UA61KXmZDvqVEm+pOyec3+fIeZB02LYa/pWOArw==" }, "@project-serum/borsh": { "version": "0.2.5", + "resolved": "https://registry.npmjs.org/@project-serum/borsh/-/borsh-0.2.5.tgz", + "integrity": "sha512-UmeUkUoKdQ7rhx6Leve1SssMR/Ghv8qrEiyywyxSWg7ooV7StdpPBhciiy5eB3T0qU1BXvdRNC8TdrkxK7WC5Q==", "peer": true, "requires": { "bn.js": "^5.1.2", "buffer-layout": "^1.2.0" } }, + "@solana/buffer-layout": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@solana/buffer-layout/-/buffer-layout-4.0.1.tgz", + "integrity": "sha512-E1ImOIAD1tBZFRdjeM4/pzTiTApC0AOBGwyAMS4fwIodCWArzJ3DWdoh8cKxeFM2fElkxBh2Aqts1BPC373rHA==", + "requires": { + "buffer": "~6.0.3" + }, + "dependencies": { + "buffer": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", + "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", + "requires": { + "base64-js": "^1.3.1", + "ieee754": "^1.2.1" + } + } + } + }, "@solana/spl-token-registry": { "version": "0.2.4574", + "resolved": "https://registry.npmjs.org/@solana/spl-token-registry/-/spl-token-registry-0.2.4574.tgz", + "integrity": "sha512-JzlfZmke8Rxug20VT/VpI2XsXlsqMlcORIUivF+Yucj7tFi7A0dXG7h+2UnD0WaZJw8BrUz2ABNkUnv89vbv1A==", "requires": { "cross-fetch": "3.0.6" }, "dependencies": { "cross-fetch": { "version": "3.0.6", + "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.0.6.tgz", + "integrity": "sha512-KBPUbqgFjzWlVcURG+Svp9TlhA5uliYtiNx/0r8nv0pdypeQCRJ9IaSIc3q/x3q8t3F75cHuwxVql1HFGHCNJQ==", "requires": { "node-fetch": "2.6.1" } }, "node-fetch": { - "version": "2.6.1" + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.1.tgz", + "integrity": "sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw==" } } }, "@solana/web3.js": { - "version": "1.69.0", - "resolved": "https://registry.npmjs.org/@solana/web3.js/-/web3.js-1.69.0.tgz", - "integrity": "sha512-iU2Q0IG25RITsxBkY1Vkk74LffRokViEcSblz4CGxyt+/V7xSkC2DNM0n0rB3aY/9+FvMiz4l5wHnD9UC4Ac/w==", + "version": "1.73.0", + "resolved": "https://registry.npmjs.org/@solana/web3.js/-/web3.js-1.73.0.tgz", + "integrity": "sha512-YrgX3Py7ylh8NYkbanoINUPCj//bWUjYZ5/WPy9nQ9SK3Cl7QWCR+NmbDjmC/fTspZGR+VO9LTQslM++jr5PRw==", "requires": { "@babel/runtime": "^7.12.5", "@noble/ed25519": "^1.7.0", "@noble/hashes": "^1.1.2", "@noble/secp256k1": "^1.6.3", "@solana/buffer-layout": "^4.0.0", + "agentkeepalive": "^4.2.1", "bigint-buffer": "^1.1.5", "bn.js": "^5.0.0", "borsh": "^0.7.0", @@ -2384,41 +2570,46 @@ "superstruct": "^0.14.2" }, "dependencies": { - "@solana/buffer-layout": { - "version": "4.0.0", + "base-x": { + "version": "3.0.9", + "resolved": "https://registry.npmjs.org/base-x/-/base-x-3.0.9.tgz", + "integrity": "sha512-H7JU6iBHTal1gp56aKoaa//YUxEaAOUiydvrV/pILqIHXTtqxSkATOnDA2u+jZ/61sD+L/412+7kzXRtWukhpQ==", "requires": { - "buffer": "~6.0.3" - }, - "dependencies": { - "buffer": { - "version": "6.0.3", - "requires": { - "base64-js": "^1.3.1", - "ieee754": "^1.2.1" - } - } + "safe-buffer": "^5.0.1" } }, - "buffer": { - "version": "6.0.1", + "bs58": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/bs58/-/bs58-4.0.1.tgz", + "integrity": "sha512-Ok3Wdf5vOIlBrgCvTq96gBkJw+JUEzdBgyaza5HLtPm7yTHkjRy8+JzNyHF7BHa0bNWOQIp3m5YF0nnFcOIKLw==", "requires": { - "base64-js": "^1.3.1", - "ieee754": "^1.2.1" + "base-x": "^3.0.2" } + }, + "superstruct": { + "version": "0.14.2", + "resolved": "https://registry.npmjs.org/superstruct/-/superstruct-0.14.2.tgz", + "integrity": "sha512-nPewA6m9mR3d6k7WkZ8N8zpTWfenFH3q9pA2PkuiZxINr9DKB2+40wEQf0ixn8VaGuJ78AB6iWOtStI+/4FKZQ==" } } }, "@types/connect": { "version": "3.4.35", + "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.35.tgz", + "integrity": "sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ==", "requires": { "@types/node": "*" } }, "@types/node": { - "version": "12.20.55" + "version": "12.20.55", + "resolved": "https://registry.npmjs.org/@types/node/-/node-12.20.55.tgz", + "integrity": "sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ==" }, "@types/ws": { "version": "7.4.7", + "resolved": "https://registry.npmjs.org/@types/ws/-/ws-7.4.7.tgz", + "integrity": "sha512-JQbbmxZTZehdc2iszGKs5oC3NFnjeay7mtAWrdt7qNtAVK0g19muApzAy4bm9byz79xa2ZnO/BOBC2R8RC5Lww==", "requires": { "@types/node": "*" } @@ -2435,6 +2626,17 @@ "level-transcoder": "^1.0.1", "module-error": "^1.0.1", "queue-microtask": "^1.2.3" + }, + "dependencies": { + "buffer": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", + "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", + "requires": { + "base64-js": "^1.3.1", + "ieee754": "^1.2.1" + } + } } }, "accepts": { @@ -2446,6 +2648,16 @@ "negotiator": "0.6.3" } }, + "agentkeepalive": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-4.2.1.tgz", + "integrity": "sha512-Zn4cw2NEqd+9fiSVWMscnjyQ1a8Yfoc5oBajLeo5w+YBHgDUcEBY2hS4YpTz6iN5f/2zQiktcuM6tS8x1p9dpA==", + "requires": { + "debug": "^4.1.0", + "depd": "^1.1.2", + "humanize-ms": "^1.2.1" + } + }, "ansi-styles": { "version": "3.2.1", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", @@ -2476,33 +2688,40 @@ "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" }, "base-x": { - "version": "3.0.9", - "requires": { - "safe-buffer": "^5.0.1" - } + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/base-x/-/base-x-4.0.0.tgz", + "integrity": "sha512-FuwxlW4H5kh37X/oW59pwTzzTKRzfrrQwhmyspRM7swOEZcHtDZSCt45U6oKgtuFE+WYPblePMVIPR4RZrh/hw==" }, "base64-js": { - "version": "1.5.1" + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==" }, "bigint-buffer": { "version": "1.1.5", + "resolved": "https://registry.npmjs.org/bigint-buffer/-/bigint-buffer-1.1.5.tgz", + "integrity": "sha512-trfYco6AoZ+rKhKnxA0hgX0HAbVP/s808/EuDSe2JDzUnCp/xAsli35Orvk67UrTEcwuxZqYZDmfA2RXJgxVvA==", "requires": { "bindings": "^1.3.0" } }, "bindings": { "version": "1.5.0", + "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz", + "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==", "requires": { "file-uri-to-path": "1.0.0" } }, "bn.js": { - "version": "5.2.1" + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", + "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==" }, "body-parser": { - "version": "1.20.0", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.0.tgz", - "integrity": "sha512-DfJ+q6EPcGKZD1QWUjSpqp+Q7bDQTsQIF4zfUAtZ6qk+H/3/QRhg9CEp39ss+/T2vw0+HaidC0ecJj/DRLIaKg==", + "version": "1.20.1", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.1.tgz", + "integrity": "sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw==", "requires": { "bytes": "3.1.2", "content-type": "~1.0.4", @@ -2512,7 +2731,7 @@ "http-errors": "2.0.0", "iconv-lite": "0.4.24", "on-finished": "2.4.1", - "qs": "6.10.3", + "qs": "6.11.0", "raw-body": "2.5.1", "type-is": "~1.6.18", "unpipe": "1.0.0" @@ -2531,6 +2750,11 @@ "ms": "2.0.0" } }, + "depd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==" + }, "ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", @@ -2540,10 +2764,30 @@ }, "borsh": { "version": "0.7.0", + "resolved": "https://registry.npmjs.org/borsh/-/borsh-0.7.0.tgz", + "integrity": "sha512-CLCsZGIBCFnPtkNnieW/a8wmreDmfUtjU2m9yHrzPXIlNbqVs0AQrSatSG6vdNYUqdc83tkQi2eHfF98ubzQLA==", "requires": { "bn.js": "^5.2.0", "bs58": "^4.0.0", "text-encoding-utf-8": "^1.0.2" + }, + "dependencies": { + "base-x": { + "version": "3.0.9", + "resolved": "https://registry.npmjs.org/base-x/-/base-x-3.0.9.tgz", + "integrity": "sha512-H7JU6iBHTal1gp56aKoaa//YUxEaAOUiydvrV/pILqIHXTtqxSkATOnDA2u+jZ/61sD+L/412+7kzXRtWukhpQ==", + "requires": { + "safe-buffer": "^5.0.1" + } + }, + "bs58": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/bs58/-/bs58-4.0.1.tgz", + "integrity": "sha512-Ok3Wdf5vOIlBrgCvTq96gBkJw+JUEzdBgyaza5HLtPm7yTHkjRy8+JzNyHF7BHa0bNWOQIp3m5YF0nnFcOIKLw==", + "requires": { + "base-x": "^3.0.2" + } + } } }, "brace-expansion": { @@ -2567,23 +2811,31 @@ } }, "bs58": { - "version": "4.0.1", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/bs58/-/bs58-5.0.0.tgz", + "integrity": "sha512-r+ihvQJvahgYT50JD05dyJNKlmmSlMoOGwn1lCcEzanPglg7TxYjioQUYehQ9mAR/+hOSd2jRc/Z2y5UxBymvQ==", "requires": { - "base-x": "^3.0.2" + "base-x": "^4.0.0" } }, "buffer": { - "version": "6.0.3", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.1.tgz", + "integrity": "sha512-rVAXBwEcEoYtxnHSO5iWyhzV/O1WMtkUYWlfdLS7FjU4PnSJJHEfHXi/uHPI5EwltmOA794gN3bm3/pzuctWjQ==", "requires": { "base64-js": "^1.3.1", "ieee754": "^1.2.1" } }, "buffer-layout": { - "version": "1.2.2" + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/buffer-layout/-/buffer-layout-1.2.2.tgz", + "integrity": "sha512-kWSuLN694+KTk8SrYvCqwP2WcgQjoRCiF5b4QDvkkz8EmgD+aWAIceGFKMIAdmF/pH+vpgNV3d3kAKorcdAmWA==" }, "bufferutil": { - "version": "4.0.6", + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/bufferutil/-/bufferutil-4.0.7.tgz", + "integrity": "sha512-kukuqc39WOHtdxtw4UScxF/WVnMFVSQVKhtx3AjZJzhd0RGZZldcrfSEbVsWWe6KNH253574cq5F+wpv0G9pJw==", "optional": true, "requires": { "node-gyp-build": "^4.3.0" @@ -2659,7 +2911,9 @@ "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==" }, "commander": { - "version": "2.20.3" + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==" }, "compressible": { "version": "2.0.18", @@ -2695,11 +2949,6 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" - }, - "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==" } } }, @@ -2714,6 +2963,13 @@ "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", "requires": { "safe-buffer": "5.2.1" + }, + "dependencies": { + "safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==" + } } }, "content-type": { @@ -2742,23 +2998,50 @@ }, "cross-fetch": { "version": "3.1.5", + "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.5.tgz", + "integrity": "sha512-lvb1SBsI0Z7GDwmuid+mU3kWVBwTVUbe7S0H52yaaAdQOXq2YktTCZdlAcNKFzE6QtRz0snpw9bNiPeOIkkQvw==", "requires": { "node-fetch": "2.6.7" + }, + "dependencies": { + "node-fetch": { + "version": "2.6.7", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", + "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", + "requires": { + "whatwg-url": "^5.0.0" + } + } + } + }, + "debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "requires": { + "ms": "2.1.2" } }, "delay": { - "version": "5.0.0" + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/delay/-/delay-5.0.0.tgz", + "integrity": "sha512-ReEBKkIfe4ya47wlPYf/gu5ib6yUG0/Aez0JQZQz94kiWtRQvZIQbTiehsnwHvLSWJnQdhVeqYue7Id1dKr0qw==" }, "depd": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", - "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==" + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", + "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==" }, "destroy": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==" }, + "dotenv": { + "version": "16.0.3", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.0.3.tgz", + "integrity": "sha512-7GO6HghkA5fYG9TYnNxi14/7K9f5occMlp3zXAuSxn7CKCxt9xbNWG7yF8hTCSUchlfWSe3uLmlPfigevRItzQ==" + }, "dotenv-defaults": { "version": "5.0.2", "resolved": "https://registry.npmjs.org/dotenv-defaults/-/dotenv-defaults-5.0.2.tgz", @@ -2785,10 +3068,14 @@ "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==" }, "es6-promise": { - "version": "4.2.8" + "version": "4.2.8", + "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.8.tgz", + "integrity": "sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w==" }, "es6-promisify": { "version": "5.0.0", + "resolved": "https://registry.npmjs.org/es6-promisify/-/es6-promisify-5.0.0.tgz", + "integrity": "sha512-C+d6UdsYDk0lMebHNR4S2NybQMMngAOnOwYBQjTOiv0MkoJMP0Myw2mgpDLBcpfCmRLxyFqYhS/CfOENq4SJhQ==", "requires": { "es6-promise": "^4.0.3" } @@ -2814,16 +3101,18 @@ "integrity": "sha512-JEPTiaOt9f04oa6NOkc4aH+nVp5I3wEjpHbIPqfgCdD5v5bUzy7xQqwcVO2aDQgOWhI28da57HksMrzK9HlRxg==" }, "eventemitter3": { - "version": "4.0.7" + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", + "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==" }, "express": { - "version": "4.18.1", - "resolved": "https://registry.npmjs.org/express/-/express-4.18.1.tgz", - "integrity": "sha512-zZBcOX9TfehHQhtupq57OF8lFZ3UZi08Y97dwFCkD8p9d/d2Y3M+ykKcwaMDEL+4qyUolgBDX6AblpR3fL212Q==", + "version": "4.18.2", + "resolved": "https://registry.npmjs.org/express/-/express-4.18.2.tgz", + "integrity": "sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ==", "requires": { "accepts": "~1.3.8", "array-flatten": "1.1.1", - "body-parser": "1.20.0", + "body-parser": "1.20.1", "content-disposition": "0.5.4", "content-type": "~1.0.4", "cookie": "0.5.0", @@ -2842,7 +3131,7 @@ "parseurl": "~1.3.3", "path-to-regexp": "0.1.7", "proxy-addr": "~2.0.7", - "qs": "6.10.3", + "qs": "6.11.0", "range-parser": "~1.2.1", "safe-buffer": "5.2.1", "send": "0.18.0", @@ -2862,10 +3151,20 @@ "ms": "2.0.0" } }, + "depd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==" + }, "ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, + "safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==" } } }, @@ -2880,11 +3179,6 @@ "raw-body": "^2.4.1" }, "dependencies": { - "depd": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", - "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==" - }, "http-errors": { "version": "1.8.0", "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.8.0.tgz", @@ -2915,18 +3209,24 @@ "integrity": "sha512-MTjE2eIbHv5DyfuFz4zLYWxpqVhEhkTiwFGuB74Q9CSou2WHO52nlE5y3Zlg6SIsiYUIPj6ifFxnkPz6O3sIUg==" }, "eyes": { - "version": "0.1.8" + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/eyes/-/eyes-0.1.8.tgz", + "integrity": "sha512-GipyPsXO1anza0AOZdy69Im7hGFCNB7Y/NGjDlZGJ3GJJLtwNSb2vrzYrTYJRrRloVx7pl+bhUaTB8yiccPvFQ==" }, "fast-stable-stringify": { - "version": "1.0.0" + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fast-stable-stringify/-/fast-stable-stringify-1.0.0.tgz", + "integrity": "sha512-wpYMUmFu5f00Sm0cj2pfivpmawLZ0NKdviQ4w9zJeR8JVtOpOxHmLaJuj0vxvGqMJQWyP/COUkF75/57OKyRag==" }, "fastest-validator": { - "version": "1.15.0", - "resolved": "https://registry.npmjs.org/fastest-validator/-/fastest-validator-1.15.0.tgz", - "integrity": "sha512-iSGBqeRSD3O8porodq42sk0kxSC2DTyszFcrLIjQNB5fqlG2qH0sok3BSyl0lR6IKmz5Bu7ZO06i7z16XcMihw==" + "version": "1.16.0", + "resolved": "https://registry.npmjs.org/fastest-validator/-/fastest-validator-1.16.0.tgz", + "integrity": "sha512-+C1cFoLboOZIZs2PWhceNtJ15zCoiRalu1LnJB4hy63Y8Tto9bkqGcTGkzegt+Xu4qy3LE9GL6CLzEdpZ5xJBQ==" }, "file-uri-to-path": { - "version": "1.0.0" + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", + "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==" }, "finalhandler": { "version": "1.2.0", @@ -2978,9 +3278,9 @@ "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" }, "get-intrinsic": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.3.tgz", - "integrity": "sha512-QJVz1Tj7MS099PevUG5jvnt9tSkXN8K14dxQlikJuPt4uD9hHAHjLyLBiLR5zELelBdD9QNRAXZzsJx0WaDL9A==", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.0.tgz", + "integrity": "sha512-L049y6nFOuom5wGyRc3/gdTLO94dySVKRACj1RmJZBQXlbTMhtNIgkWkUHq+jYmZvKf14EW1EoJnnjbmoHij0Q==", "requires": { "function-bind": "^1.1.1", "has": "^1.0.3", @@ -3041,6 +3341,21 @@ "setprototypeof": "1.2.0", "statuses": "2.0.1", "toidentifier": "1.0.1" + }, + "dependencies": { + "depd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==" + } + } + }, + "humanize-ms": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/humanize-ms/-/humanize-ms-1.2.1.tgz", + "integrity": "sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ==", + "requires": { + "ms": "^2.0.0" } }, "iconv-lite": { @@ -3052,7 +3367,9 @@ } }, "ieee754": { - "version": "1.2.1" + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==" }, "inflight": { "version": "1.0.6", @@ -3080,10 +3397,14 @@ }, "isomorphic-ws": { "version": "4.0.1", + "resolved": "https://registry.npmjs.org/isomorphic-ws/-/isomorphic-ws-4.0.1.tgz", + "integrity": "sha512-BhBvN2MBpWTaSHdWRb/bwdZJ1WaehQ2L1KngkCkfLUGF0mAWAT1sQUQacEmQ0jXkFw/czDXPNQSL5u2/Krsz1w==", "requires": {} }, "jayson": { "version": "3.7.0", + "resolved": "https://registry.npmjs.org/jayson/-/jayson-3.7.0.tgz", + "integrity": "sha512-tfy39KJMrrXJ+mFcMpxwBvFDetS8LAID93+rycFglIQM4kl3uNR3W4lBLE/FFhsoUCEox5Dt2adVpDm/XtebbQ==", "requires": { "@types/connect": "^3.4.33", "@types/node": "^12.12.54", @@ -3101,18 +3422,24 @@ } }, "js-base64": { - "version": "3.7.2", - "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-3.7.2.tgz", - "integrity": "sha512-NnRs6dsyqUXejqk/yv2aiXlAvOs56sLkX6nUdeaNezI5LFFLlsZjOThmwnrcwh5ZZRwZlCMnVAY3CvhIhoVEKQ==" + "version": "3.7.4", + "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-3.7.4.tgz", + "integrity": "sha512-wpM/wi20Tl+3ifTyi0RdDckS4YTD4Lf953mBRrpG8547T7hInHNPEj8+ck4gB8VDcGyeAWFK++Wb/fU1BeavKQ==" }, "json-stringify-safe": { - "version": "5.0.1" + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", + "integrity": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==" }, "jsonparse": { - "version": "1.3.1" + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz", + "integrity": "sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==" }, "JSONStream": { "version": "1.3.5", + "resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.5.tgz", + "integrity": "sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==", "requires": { "jsonparse": "^1.2.0", "through": ">=2.2.7 <3" @@ -3152,6 +3479,17 @@ "requires": { "buffer": "^6.0.3", "module-error": "^1.0.1" + }, + "dependencies": { + "buffer": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", + "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", + "requires": { + "base64-js": "^1.3.1", + "ieee754": "^1.2.1" + } + } } }, "leven": { @@ -3160,7 +3498,9 @@ "integrity": "sha512-nvVPLpIHUxCUoRLrFqTgSxXJ614d8AgQoWl7zPe/2VadE8+1dpU3LBhowRuBAcuwruWtOdD8oYC9jDNJjXDPyA==" }, "lodash": { - "version": "4.17.21" + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" }, "lru-cache": { "version": "6.0.0", @@ -3171,9 +3511,9 @@ } }, "luxon": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/luxon/-/luxon-3.0.4.tgz", - "integrity": "sha512-aV48rGUwP/Vydn8HT+5cdr26YYQiUZ42NM6ToMoaGKwYfWbfLeRkEu1wXWMHBZT6+KyLfcbbtVcoQFCbbPjKlw==", + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/luxon/-/luxon-3.2.1.tgz", + "integrity": "sha512-QrwPArQCNLAKGO/C+ZIilgIuDnEnKx5QYODdDtbFaxzsbZcc/a7WFq7MhsVYgRlwawLtvOUESTlfJ+hc/USqPg==", "peer": true }, "media-typer": { @@ -3223,13 +3563,13 @@ "integrity": "sha512-0yuvsqSCv8LbaOKhnsQ/T5JhyFlCYLPXK3U2sgV10zoKQwzs/MyfuQUOZQ1V/6OCOJsK/TRgNVrPuPDqtdMFtA==" }, "moleculer": { - "version": "0.14.26", - "resolved": "https://registry.npmjs.org/moleculer/-/moleculer-0.14.26.tgz", - "integrity": "sha512-s29j0CoMQnOEXUaqlZ/WBRgTNrrraHaEvb+eu4QS8vfEejSn6FOV/R64UoCQ/7M3hiI/Prv78OKp40XVSu4prQ==", + "version": "0.14.28", + "resolved": "https://registry.npmjs.org/moleculer/-/moleculer-0.14.28.tgz", + "integrity": "sha512-HTOtejMpb14oBtW0kKVoYLK6MgZA4NdPEppOf69yJhF1qlqXRGujAXE2ij2wWyXJNf31l84ZZRh+xXXQmRJaOQ==", "requires": { "args": "^5.0.3", "eventemitter2": "^6.4.9", - "fastest-validator": "^1.15.0", + "fastest-validator": "^1.16.0", "glob": "^7.2.0", "ipaddr.js": "^2.0.1", "kleur": "^4.1.5", @@ -3244,6 +3584,11 @@ "resolved": "https://registry.npmjs.org/mri/-/mri-1.1.4.tgz", "integrity": "sha512-6y7IjGPm8AzlvoUrwAaw1tLnUBudaS3752vcd8JtrpGGQn+rXIe63LFVHm/YMwtqAuh+LJPCFdlLYPWM1nYn6w==" }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, "murmurhash": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/murmurhash/-/murmurhash-2.0.1.tgz", @@ -3255,11 +3600,11 @@ "integrity": "sha512-A0xLykHtARfueITVDernsAWdtIMbOJgKgcluwENp3AlsKN/PloyO10HtmoqnFAQAcxPkgZN7wdfPfEd0zNGxbg==" }, "nats": { - "version": "2.9.0", - "resolved": "https://registry.npmjs.org/nats/-/nats-2.9.0.tgz", - "integrity": "sha512-UBZg0ydCVs4vTp7sFWkmXWmV4oebt6vVRpFUgp+HUMhzjWyvcrBHq0t6hogIHnT5BYilIo0/koDH5FWzhBtSOQ==", + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/nats/-/nats-2.11.0.tgz", + "integrity": "sha512-Zkjtw4LRT0F9IZwSpLr6O0aLbK0w8rX7kU6PHSdk52YzB0c/pkiXstuGcdUpYdkAYkBS06FHfmRE4BVvCn7Pag==", "requires": { - "nkeys.js": "1.0.3", + "nkeys.js": "1.0.4", "web-streams-polyfill": "^3.2.1" } }, @@ -3269,9 +3614,9 @@ "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==" }, "nkeys.js": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/nkeys.js/-/nkeys.js-1.0.3.tgz", - "integrity": "sha512-p5Bpb/acPaQmCrbe4gNmMBY/naZJV8Q7m2B9UkXT8BQRC6wjX8zqD2ya8eZu9mpSXQffodV46HCP9OckmxcwYA==", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/nkeys.js/-/nkeys.js-1.0.4.tgz", + "integrity": "sha512-xeNDE6Ha5I3b3PnlHyT9AbmBxq3Vb9KHzmaI/h4IXYg0PUVZSUXNHNhTfU20oBsubw2ZdV/1AdC6hnRuMiZfMQ==", "requires": { "tweetnacl": "1.0.3" } @@ -3285,13 +3630,17 @@ } }, "node-fetch": { - "version": "2.6.7", + "version": "2.6.8", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.8.tgz", + "integrity": "sha512-RZ6dBYuj8dRSfxpUSu+NsdF1dpPpluJxwOp+6IoDp/sH2QNDSvurYsAa+F1WxY2RjA1iP93xhcsUoYbF2XBqVg==", "requires": { "whatwg-url": "^5.0.0" } }, "node-gyp-build": { - "version": "4.5.0" + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.6.0.tgz", + "integrity": "sha512-NTZVKn9IylLwUzaKjkas1e4u2DLNcV4rdYagA4PWdPwW87Bi7z+BznyKSRwS/761tV/lzCGXplWsiaMjLqP2zQ==" }, "object-assign": { "version": "4.1.1", @@ -3299,9 +3648,9 @@ "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==" }, "object-inspect": { - "version": "1.12.2", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.2.tgz", - "integrity": "sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ==" + "version": "1.12.3", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.3.tgz", + "integrity": "sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==" }, "on-finished": { "version": "2.4.1", @@ -3356,9 +3705,9 @@ } }, "qs": { - "version": "6.10.3", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.10.3.tgz", - "integrity": "sha512-wr7M2E0OFRfIfJZjKGieI8lBKb7fRCH4Fv5KNPEs7gJ8jadvotdsS08PzOKR7opXhZ/Xkjtt3WF9g38drmyRqQ==", + "version": "6.11.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", + "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", "requires": { "side-channel": "^1.0.4" } @@ -3410,10 +3759,14 @@ } }, "regenerator-runtime": { - "version": "0.13.9" + "version": "0.13.11", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz", + "integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==" }, "rpc-websockets": { "version": "7.5.0", + "resolved": "https://registry.npmjs.org/rpc-websockets/-/rpc-websockets-7.5.0.tgz", + "integrity": "sha512-9tIRi1uZGy7YmDjErf1Ax3wtqdSSLIlnmL5OtOzgd5eqPKbsPpwDP5whUDO2LQay3Xp0CcHlcNSGzacNRluBaQ==", "requires": { "@babel/runtime": "^7.17.2", "bufferutil": "^4.0.1", @@ -3424,7 +3777,9 @@ }, "dependencies": { "ws": { - "version": "8.8.1", + "version": "8.12.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.12.0.tgz", + "integrity": "sha512-kU62emKIdKVeEIOIKVegvqpXMSTAMLJozpHZaJNDYqBjzlSYXQGviYwN1osDLJ9av68qHd4a2oSjd7yD4pacig==", "requires": {} } } @@ -3438,7 +3793,9 @@ } }, "safe-buffer": { - "version": "5.2.1" + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" }, "safer-buffer": { "version": "2.1.2", @@ -3480,6 +3837,11 @@ } } }, + "depd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==" + }, "ms": { "version": "2.1.3", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", @@ -3524,10 +3886,19 @@ "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", "requires": { "safe-buffer": "~5.2.0" + }, + "dependencies": { + "safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==" + } } }, "superstruct": { - "version": "0.14.2" + "version": "0.16.7", + "resolved": "https://registry.npmjs.org/superstruct/-/superstruct-0.16.7.tgz", + "integrity": "sha512-4ZZTrXlP4XzCrgh4vOfPDL6dL7zZm5aPl78eczwFSrwvxtsEnKRrSGID6Sbt0agycUoo4auRdWSNTX+oQ3KFyA==" }, "supports-color": { "version": "5.5.0", @@ -3538,10 +3909,14 @@ } }, "text-encoding-utf-8": { - "version": "1.0.2" + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/text-encoding-utf-8/-/text-encoding-utf-8-1.0.2.tgz", + "integrity": "sha512-8bw4MY9WjdsD2aMtO0OzOCY3pXGYNx2d2FfHRVUKkiCPDWjKuOlhLVASS+pD7VkLTVjW268LYJHwsnPFlBpbAg==" }, "through": { - "version": "2.3.8" + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", + "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==" }, "toidentifier": { "version": "1.0.1", @@ -3549,10 +3924,14 @@ "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==" }, "tr46": { - "version": "0.0.3" + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==" }, "tslib": { - "version": "2.4.0" + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.1.tgz", + "integrity": "sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA==" }, "ttl": { "version": "1.3.1", @@ -3579,7 +3958,9 @@ "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==" }, "utf-8-validate": { - "version": "5.0.9", + "version": "5.0.10", + "resolved": "https://registry.npmjs.org/utf-8-validate/-/utf-8-validate-5.0.10.tgz", + "integrity": "sha512-Z6czzLq4u8fPOyx7TU6X3dvUZVvoJmxSQ+IcrlmagKhilxlhZgxPK6C5Jqbkw1IDUmFTM+cz9QDnnLTwDz/2gQ==", "optional": true, "requires": { "node-gyp-build": "^4.3.0" @@ -3596,12 +3977,14 @@ "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==" }, "uuid": { - "version": "8.3.2" + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==" }, "value-or-promise": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/value-or-promise/-/value-or-promise-1.0.11.tgz", - "integrity": "sha512-41BrgH+dIbCFXClcSapVs5M6GkENd3gQOJpEfPDNa71LsUGMXDL0jMWpI/Rh7WhX+Aalfz2TTS3Zt5pUsbnhLg==" + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/value-or-promise/-/value-or-promise-1.0.12.tgz", + "integrity": "sha512-Z6Uz+TYwEqE7ZN50gwn+1LCVo9ZVrpxRPOhOLnncYkY1ZzOYtrX8Fwf/rFktZ8R5mJms6EZf5TqNOMeZmnPq9Q==" }, "vary": { "version": "1.1.2", @@ -3614,10 +3997,14 @@ "integrity": "sha512-e0MO3wdXWKrLbL0DgGnUV7WHVuw9OUvL4hjgnPkIeEvESk74gAITi5G606JtZPp39cd8HA9VQzCIvA49LpPN5Q==" }, "webidl-conversions": { - "version": "3.0.1" + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==" }, "whatwg-url": { "version": "5.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", + "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", "requires": { "tr46": "~0.0.3", "webidl-conversions": "^3.0.0" @@ -3630,6 +4017,8 @@ }, "ws": { "version": "7.5.9", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.9.tgz", + "integrity": "sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==", "requires": {} }, "yallist": { diff --git a/packages/spl-token/package.json b/packages/spl-token/package.json index 86e8f04..50156a6 100644 --- a/packages/spl-token/package.json +++ b/packages/spl-token/package.json @@ -14,9 +14,9 @@ "author": "ALEPH.im", "license": "ISC", "dependencies": { - "@aleph-indexer/core": "^1.0.23", - "@aleph-indexer/framework": "^1.0.23", + "@aleph-indexer/core": "1.0.23", + "@aleph-indexer/framework": "1.0.23", "@aleph-indexer/layout": "^1.0.14", - "@aleph-indexer/middleware": "^1.0.23" + "@aleph-indexer/middleware": "1.0.23" } } diff --git a/packages/token-snapshot/README.md b/packages/token-snapshot/README.md new file mode 100644 index 0000000..1a565f1 --- /dev/null +++ b/packages/token-snapshot/README.md @@ -0,0 +1,21 @@ +# SPL Token Indexer + +## Configuration + +Set the `SPL_TOKEN_MINTS` environment variable with the token mints +separated by comas to index these tokens, and set the `SPL_TOKEN_ACCOUNTS` +environment variable with the account's addresses separated by comas to also +index it. + +### Example + +Index KIN token mint + +``` sh +SPL_TOKEN_MINTS=kinXdEcpDQeHPEuQnqmUgtYykqKGVFq6CeVX5iAHJq6 +``` + +### Deploying the indexer + +Follow the guide of the main [README.md](https://github.com/aleph-im/solana-indexer-library/blob/main/README.md) file +to publish it in Aleph.IM network using different methods. diff --git a/packages/token-snapshot/docker-compose.yaml b/packages/token-snapshot/docker-compose.yaml new file mode 100644 index 0000000..f23aad6 --- /dev/null +++ b/packages/token-snapshot/docker-compose.yaml @@ -0,0 +1,18 @@ +version: '2' + +services: + spl-token-indexer: + build: ../.. + volumes: + - ~/indexer.data:/app/data:rw + extra_hosts: + - host.docker.internal:host-gateway + env_file: + - ../../.env + - ./.env + environment: + - INDEXER=spl-token + - SPL_TOKEN_MINTS=kinXdEcpDQeHPEuQnqmUgtYykqKGVFq6CeVX5iAHJq6 + - SOLANA_RPC=http://solrpc1.aleph.cloud:7725/ + - INDEXER_INSTANCES=1 # Important to return the correct data for every mint + network_mode: bridge diff --git a/packages/token-snapshot/index.ts b/packages/token-snapshot/index.ts new file mode 100644 index 0000000..65b3dba --- /dev/null +++ b/packages/token-snapshot/index.ts @@ -0,0 +1 @@ +// todo diff --git a/packages/token-snapshot/package.json b/packages/token-snapshot/package.json new file mode 100644 index 0000000..6ed9ce0 --- /dev/null +++ b/packages/token-snapshot/package.json @@ -0,0 +1,22 @@ +{ + "name": "@aleph-indexer/token-snapshot", + "version": "1.0.0", + "description": "", + "main": "dist/index.js", + "module": "dist/index.js", + "types": "dist/index.d.js", + "type": "module", + "scripts": { + "test": "echo \"Error: no test specified\" && exit 1", + "up": "docker-compose up -d", + "up:devnet": "docker-compose -f docker-compose-devnet.yaml --project-name staking-devnet up -d" + }, + "author": "ALEPH.im", + "license": "ISC", + "dependencies": { + "@aleph-indexer/core": "1.0.23", + "@aleph-indexer/framework": "1.0.23", + "@aleph-indexer/layout": "^1.0.14", + "@aleph-indexer/middleware": "1.0.23" + } +} diff --git a/packages/token-snapshot/run.ts b/packages/token-snapshot/run.ts new file mode 100644 index 0000000..637b8bd --- /dev/null +++ b/packages/token-snapshot/run.ts @@ -0,0 +1,52 @@ +import { fileURLToPath } from 'url' +import path from 'path' +import { config } from '@aleph-indexer/core' +import SDK, { TransportType } from '@aleph-indexer/framework' + +const __filename = fileURLToPath(import.meta.url) +const __dirname = path.dirname(__filename) + +async function main() { + const workerDomainPath = path.join(__dirname, './src/domain/worker.js') + const mainDomainPath = path.join(__dirname, './src/domain/main.js') + const apiSchemaPath = path.join(__dirname, './src/api/index.js') + + const instances = Number(config.INDEXER_INSTANCES || 1) + const apiPort = Number(config.INDEXER_API_PORT || 8080) + const tcpUrls = config.INDEXER_TCP_URLS || undefined + const natsUrl = config.INDEXER_NATS_URL || undefined + + const projectId = config.INDEXER_NAMESPACE || 'token-snapshot' + const dataPath = config.INDEXER_DATA_PATH || undefined // 'data' + const transport = + (config.INDEXER_TRANSPORT as TransportType) || TransportType.Thread + + const transportConfig: any = + tcpUrls || natsUrl ? { tcpUrls, natsUrl } : undefined + + await SDK.init({ + projectId, + transport, + transportConfig, + apiPort, + fetcher: { + instances: 1, + }, + parser: { + instances: 1, + }, + indexer: { + dataPath, + main: { + apiSchemaPath, + domainPath: mainDomainPath, + }, + worker: { + instances, + domainPath: workerDomainPath, + }, + }, + }) +} + +main() diff --git a/packages/token-snapshot/src/api/index.ts b/packages/token-snapshot/src/api/index.ts new file mode 100644 index 0000000..9f35a25 --- /dev/null +++ b/packages/token-snapshot/src/api/index.ts @@ -0,0 +1 @@ +export { default } from './schema.js' diff --git a/packages/token-snapshot/src/api/resolvers.ts b/packages/token-snapshot/src/api/resolvers.ts new file mode 100644 index 0000000..2fd85f7 --- /dev/null +++ b/packages/token-snapshot/src/api/resolvers.ts @@ -0,0 +1,56 @@ +import { SPLTokenHolding, SPLTokenInfo } from '../types.js' +import MainDomain from '../domain/main.js' + +export type TokenFilters = { + mint?: string +} + +export type TokenEventsFilters = { + mint: string + account?: string + types?: string[] + startDate?: number + endDate?: number + limit?: number + skip?: number + reverse?: boolean +} + +export type TokenHoldersFilters = { + mint: string + timestamp?: number + limit?: number + skip?: number + reverse?: boolean + gte?: string + lte?: string +} + +export class APIResolver { + constructor(protected domain: MainDomain) {} + + async getTokens(mint?: string): Promise { + return await this.filterTokens({ mint }) + } + + async getTokenHoldings( + filters: TokenHoldersFilters, + ): Promise { + return await this.domain.getTokenHoldings(filters.mint, filters) + } + + protected async filterTokens({ + mint, + }: TokenFilters): Promise { + const domTokens = await this.domain.getTokens() + + const tokens = + [mint] || Object.values(domTokens).map((token: any) => token.address) + + const result = (tokens as string[]) + .map((address) => domTokens[address]) + .filter((token) => !!token) + + return result + } +} diff --git a/packages/token-snapshot/src/api/schema.ts b/packages/token-snapshot/src/api/schema.ts new file mode 100644 index 0000000..bfa8ae1 --- /dev/null +++ b/packages/token-snapshot/src/api/schema.ts @@ -0,0 +1,48 @@ +import { + GraphQLObjectType, + GraphQLNonNull, + GraphQLString, + GraphQLList, + GraphQLInt, + GraphQLBoolean, +} from 'graphql' +import { IndexerAPISchema } from '@aleph-indexer/framework' +import * as Types from './types.js' +import { APIResolver, TokenEventsFilters } from './resolvers.js' +import MainDomain from '../domain/main.js' + +export default class APISchema extends IndexerAPISchema { + constructor( + protected domain: MainDomain, + protected resolver: APIResolver = new APIResolver(domain), + ) { + super(domain, { + query: new GraphQLObjectType({ + name: 'Query', + fields: { + tokenMints: { + type: Types.TokenMints, + args: { + mint: { type: new GraphQLList(GraphQLString) }, + }, + resolve: (_, ctx) => this.resolver.getTokens(ctx.mint), + }, + tokenHolders: { + type: Types.TokenHolders, + args: { + mint: { type: new GraphQLNonNull(GraphQLString) }, + timestamp: { type: GraphQLInt }, + limit: { type: GraphQLInt }, + skip: { type: GraphQLInt }, + reverse: { type: GraphQLBoolean }, + gte: { type: GraphQLString }, + lte: { type: GraphQLString }, + }, + resolve: (_, ctx) => + this.resolver.getTokenHoldings(ctx as TokenEventsFilters), + }, + }, + }), + }) + } +} diff --git a/packages/token-snapshot/src/api/types.ts b/packages/token-snapshot/src/api/types.ts new file mode 100644 index 0000000..bc104bf --- /dev/null +++ b/packages/token-snapshot/src/api/types.ts @@ -0,0 +1,47 @@ +import { + GraphQLObjectType, + GraphQLString, + GraphQLNonNull, + GraphQLList, +} from 'graphql' +import { TokenType } from '@aleph-indexer/core' + +// ------------------- TOKENS -------------------------- + +export const TokenMint = new GraphQLObjectType({ + name: 'TokenMint', + fields: { + name: { type: new GraphQLNonNull(GraphQLString) }, + address: { type: new GraphQLNonNull(GraphQLString) }, + programId: { type: new GraphQLNonNull(GraphQLString) }, + tokenInfo: { type: TokenType }, + }, +}) + +export const TokenMints = new GraphQLList(TokenMint) + +// ------------------- HOLDERS -------------------------- + +export const TokenBalances = new GraphQLObjectType({ + name: 'TokenBalances', + fields: { + wallet: { type: new GraphQLNonNull(GraphQLString) }, + solend: { type: GraphQLString }, + port: { type: GraphQLString }, + larix: { type: GraphQLString }, + }, +}) + +// ------------------- HOLDERS -------------------------- + +export const TokenHolder = new GraphQLObjectType({ + name: 'TokenHolder', + fields: { + holderAccount: { type: GraphQLString }, + tokenMint: { type: new GraphQLNonNull(GraphQLString) }, + balances: { type: new GraphQLNonNull(TokenBalances) }, + timestamp: { type: new GraphQLNonNull(GraphQLString) }, + }, +}) + +export const TokenHolders = new GraphQLList(TokenHolder) diff --git a/packages/token-snapshot/src/constants.ts b/packages/token-snapshot/src/constants.ts new file mode 100644 index 0000000..e5b3007 --- /dev/null +++ b/packages/token-snapshot/src/constants.ts @@ -0,0 +1,8 @@ +import { constants } from '@aleph-indexer/core' + +const { TOKEN_PROGRAM_ID, TOKEN_PROGRAM_ID_PK } = constants +export { TOKEN_PROGRAM_ID, TOKEN_PROGRAM_ID_PK } + +export enum ProgramName { + TokenSnapshot = 'token-snapshot', +} diff --git a/packages/token-snapshot/src/dal/accountMints.ts b/packages/token-snapshot/src/dal/accountMints.ts new file mode 100644 index 0000000..0eba2d5 --- /dev/null +++ b/packages/token-snapshot/src/dal/accountMints.ts @@ -0,0 +1,22 @@ +import { EntityStorage } from '@aleph-indexer/core' +import { AccountMint } from '../domain/types.js' + +export type AccountMintStorage = EntityStorage + +const mintKey = { + get: (e: AccountMint) => e.mint, + length: EntityStorage.AddressLength, +} + +const accountKey = { + get: (e: AccountMint) => e.account, + length: EntityStorage.AddressLength, +} + +export function createAccountMintDAL(path: string): AccountMintStorage { + return new EntityStorage({ + name: 'account_mint', + path, + key: [mintKey, accountKey], + }) +} diff --git a/packages/token-snapshot/src/dal/balanceHistory.ts b/packages/token-snapshot/src/dal/balanceHistory.ts new file mode 100644 index 0000000..cf679af --- /dev/null +++ b/packages/token-snapshot/src/dal/balanceHistory.ts @@ -0,0 +1,54 @@ +import BN from 'bn.js' +import { EntityStorage } from '@aleph-indexer/core' +import { SPLTokenHolding } from '../types.js' + +const mappedProps = ['balance'] + +export enum BalanceHistoryDALIndex { + AccountTimestamp = 'account_timestamp', +} + +export type AccountBalanceHistoryStorage = EntityStorage + +const mintKey = { + get: (e: SPLTokenHolding) => e.tokenMint, + length: EntityStorage.AddressLength, +} + +const accountKey = { + get: (e: SPLTokenHolding) => e.account, + length: EntityStorage.AddressLength, +} + +const timestampKey = { + get: (e: SPLTokenHolding) => e.timestamp, + length: EntityStorage.TimestampLength, +} + +export function createBalanceHistoryDAL( + path: string, +): AccountBalanceHistoryStorage { + return new EntityStorage({ + name: 'account_balance_history', + path, + key: [mintKey, accountKey, timestampKey], + indexes: [ + { + name: BalanceHistoryDALIndex.AccountTimestamp, + key: [accountKey, timestampKey], + }, + ], + mapFn: async function (entry: { key: any; value: any }) { + const { key, value } = entry + + // @note: Stored as hex strings (bn.js "toJSON" method), so we need to cast them to BN always + for (const prop of mappedProps) { + if (!(prop in value)) continue + if ((value as any)[prop] instanceof BN) continue + ;(value as any)[prop] = new BN((value as any)[prop], 'hex') + } + + return { key, value } + }, + }) +} diff --git a/packages/token-snapshot/src/dal/balanceState.ts b/packages/token-snapshot/src/dal/balanceState.ts new file mode 100644 index 0000000..6eb8b7c --- /dev/null +++ b/packages/token-snapshot/src/dal/balanceState.ts @@ -0,0 +1,54 @@ +import { EntityStorage, EntityUpdateOp } from '@aleph-indexer/core' +import { SPLTokenHolding } from '../types.js' + +export enum BalanceStateDALIndex { + Mint = 'mint', + BalanceAccount = 'balance_account', +} + +export type AccountBalanceStateStorage = EntityStorage + +const accountKey = { + get: (e: SPLTokenHolding) => e.account, + length: EntityStorage.AddressLength, +} + +const mintKey = { + get: (e: SPLTokenHolding) => e.tokenMint, + length: EntityStorage.AddressLength, +} + +const balanceKey = { + get: (e: SPLTokenHolding) => e.balances.total, + length: EntityStorage.TimestampLength, +} + +export function createBalanceStateDAL( + path: string, +): AccountBalanceStateStorage { + return new EntityStorage({ + name: 'account_balance_state', + path, + key: [mintKey, accountKey], + indexes: [ + { + name: BalanceStateDALIndex.Mint, + key: [mintKey], + }, + { + name: BalanceStateDALIndex.BalanceAccount, + key: [mintKey, balanceKey], + }, + ], + async updateCheckFn( + oldEntity: SPLTokenHolding | undefined, + newEntity: SPLTokenHolding, + ): Promise { + if (oldEntity && oldEntity.timestamp > newEntity.timestamp) { + return EntityUpdateOp.Keep + } + return EntityUpdateOp.Update + }, + // @todo: maybe calculate total on insert/update? + }) +} diff --git a/packages/token-snapshot/src/dal/event.ts b/packages/token-snapshot/src/dal/event.ts new file mode 100644 index 0000000..b20f410 --- /dev/null +++ b/packages/token-snapshot/src/dal/event.ts @@ -0,0 +1,62 @@ +import BN from 'bn.js' +import { EntityStorage } from '@aleph-indexer/core' +import { SPLTokenEvent } from '../types.js' + +const mappedProps = ['balance'] + +export type EventStorage = EntityStorage + +export enum EventDALIndex { + AccountTimestamp = 'account_timestamp', + AccountTypeTimestamp = 'account_type_timestamp', +} + +const idKey = { + get: (e: SPLTokenEvent) => e.id, + length: EntityStorage.VariableLength, +} + +const accountKey = { + get: (e: SPLTokenEvent) => e.account, + length: EntityStorage.AddressLength, +} + +const typeKey = { + get: (e: SPLTokenEvent) => e.type, + length: EntityStorage.VariableLength, +} + +const timestampKey = { + get: (e: SPLTokenEvent) => e.timestamp, + length: EntityStorage.TimestampLength, +} + +export function createEventDAL(path: string): EventStorage { + return new EntityStorage({ + name: 'token_event', + path, + key: [idKey], + indexes: [ + { + name: EventDALIndex.AccountTimestamp, + key: [accountKey, timestampKey], + }, + { + name: EventDALIndex.AccountTypeTimestamp, + key: [accountKey, typeKey, timestampKey], + }, + ], + mapFn: async function (entry: { key: any; value: any }) { + const { key, value } = entry + + // @note: Stored as hex strings (bn.js "toJSON" method), so we need to cast them to BN always + for (const prop of mappedProps) { + if (!(prop in value)) continue + if ((value as any)[prop] instanceof BN) continue + ;(value as any)[prop] = new BN((value as any)[prop], 'hex') + } + + return { key, value } + }, + }) +} diff --git a/packages/token-snapshot/src/dal/fetchMint.ts b/packages/token-snapshot/src/dal/fetchMint.ts new file mode 100644 index 0000000..08cd00d --- /dev/null +++ b/packages/token-snapshot/src/dal/fetchMint.ts @@ -0,0 +1,36 @@ +import { + EntityUpdateOp, + PendingWork, + PendingWorkStorage, +} from '@aleph-indexer/core' +import { MintAccount } from '../domain/types.js' + +export type FetchMintStorage = PendingWorkStorage + +/** + * Creates a new pending transaction storage for the fetcher. + * @param path Path to the database. + * @param name Name of the storage file + */ +export function createFetchMintDAL( + path: string, + name = 'fetcher_mint_accounts', +): FetchMintStorage { + return new PendingWorkStorage({ + name, + path, + count: true, + async updateCheckFn( + oldEntity: PendingWork | undefined, + newEntity: PendingWork, + ): Promise { + if (oldEntity) { + if (oldEntity.payload.timestamp > newEntity.payload.timestamp) { + newEntity.payload = oldEntity.payload + } + } + + return EntityUpdateOp.Update + }, + }) +} diff --git a/packages/token-snapshot/src/domain/account.ts b/packages/token-snapshot/src/domain/account.ts new file mode 100644 index 0000000..ed1e6d4 --- /dev/null +++ b/packages/token-snapshot/src/domain/account.ts @@ -0,0 +1,41 @@ +import { EventDALIndex, EventStorage } from '../dal/event.js' +import { SPLTokenEvent } from '../types.js' +import { AccountEventsFilters } from './types.js' + +export class Account { + constructor(public address: string, protected eventDAL: EventStorage) {} + + async getEvents(filters: AccountEventsFilters): Promise { + const { startDate, endDate, types, skip: sk, ...opts } = filters + + const typesMap = types ? new Set(types) : undefined + + let skip = sk || 0 + const limit = opts.limit || 1000 + opts.limit = !typesMap ? limit + skip : undefined + + const result: SPLTokenEvent[] = [] + + const from = startDate ? [this.address, startDate] : [this.address] + const to = endDate ? [this.address, endDate] : [this.address] + + const events = await this.eventDAL + .useIndex(EventDALIndex.AccountTimestamp) + .getAllFromTo(from, to, opts) + + for await (const { value } of events) { + // @note: Filter by type + if (typesMap && !typesMap.has(value.type)) continue + + // @note: Skip first N events + if (--skip >= 0) continue + + result.push(value) + + // @note: Stop when after reaching the limit + if (limit > 0 && result.length >= limit) return result + } + + return result + } +} diff --git a/packages/token-snapshot/src/domain/main.ts b/packages/token-snapshot/src/domain/main.ts new file mode 100644 index 0000000..6f46437 --- /dev/null +++ b/packages/token-snapshot/src/domain/main.ts @@ -0,0 +1,118 @@ +import { + AccountIndexerRequestArgs, + IndexerMainDomain, + IndexerMainDomainContext, + IndexerMainDomainWithDiscovery, +} from '@aleph-indexer/framework' +import { Token, solanaPrivateRPCRoundRobin } from '@aleph-indexer/core' +import { SPLTokenHolding, SPLTokenInfo, SPLTokenType } from '../types.js' +import { discoveryFn } from '../utils/discovery.js' +import { TokenHoldersFilters } from './types.js' +import { TOKEN_PROGRAM_ID } from '../constants.js' + +export default class MainDomain + extends IndexerMainDomain + implements IndexerMainDomainWithDiscovery +{ + protected tokens: Record = {} + + constructor(protected context: IndexerMainDomainContext) { + super(context, {}) + } + + async discoverAccounts(): Promise { + const init = { + account: '', + index: { + transactions: { + chunkDelay: 0, + chunkTimeframe: 1000 * 60 * 60 * 24, + }, + content: false, + }, + } + return [init] + } + + async init(...args: unknown[]): Promise { + await super.init(...args) + const { accounts, mints } = await discoveryFn() + + await Promise.all( + accounts.map(async (account: string) => { + const connection = solanaPrivateRPCRoundRobin.getClient() + const mint = await Token.getTokenMintByAccount( + account, + connection.getConnection(), + ) + await this.addToken(mint) + + const options = { + account, + meta: { type: SPLTokenType.Account, mint: mint }, + index: { + transactions: { + chunkDelay: 0, + chunkTimeframe: 1000 * 60 * 60 * 24, + }, + content: false, + }, + } + await this.context.apiClient.indexAccount(options) + this.accounts.add(account) + }), + ) + await Promise.all( + mints.map(async (mint: string) => { + await this.addToken(mint) + const options = { + account: mint, + meta: { type: SPLTokenType.Mint, mint }, + index: { + transactions: { + chunkDelay: 0, + chunkTimeframe: 1000 * 60 * 60 * 24, + }, + content: false, + }, + } + await this.context.apiClient.indexAccount(options) + this.accounts.add(mint) + }), + ) + } + + async getTokens(): Promise> { + return this.tokens + } + + async getTokenHoldings( + account: string, + filters: TokenHoldersFilters, + ): Promise { + return (await this.context.apiClient.invokeDomainMethod({ + account, + args: [filters], + method: 'getTokenHoldings', + })) as SPLTokenHolding[] + } + + protected async addToken(mint: string): Promise { + const connection = solanaPrivateRPCRoundRobin.getClient() + const tokenInfo = await Token.getTokenByAddress( + mint, + connection.getConnection(), + ) + + if (!tokenInfo) return + + const entity: SPLTokenInfo = { + name: tokenInfo.symbol, + address: mint, + programId: TOKEN_PROGRAM_ID, + tokenInfo, + } + + this.tokens[mint] = entity + } +} diff --git a/packages/token-snapshot/src/domain/mint.ts b/packages/token-snapshot/src/domain/mint.ts new file mode 100644 index 0000000..615ec9e --- /dev/null +++ b/packages/token-snapshot/src/domain/mint.ts @@ -0,0 +1,120 @@ +import { StorageValueStream } from '@aleph-indexer/core' +import { EventStorage } from '../dal/event.js' +import { AccountMint, TokenHoldersFilters } from './types.js' +import { SPLTokenHolding } from '../types.js' +import BN from 'bn.js' +import { + BalanceStateDALIndex, + AccountBalanceStateStorage, +} from '../dal/balanceState.js' +import { AccountMintStorage } from '../dal/accountMints.js' +import { + AccountBalanceHistoryStorage, + BalanceHistoryDALIndex, +} from '../dal/balanceHistory.js' + +export class Mint { + constructor( + protected address: string, + protected eventDAL: EventStorage, + protected balanceStateDAL: AccountBalanceStateStorage, + protected balanceHistoryDAL: AccountBalanceHistoryStorage, + protected accountMintDAL: AccountMintStorage, + ) {} + + async getMintAccounts( + account?: string, + ): Promise> { + const range = account ? [this.address, account] : [this.address] + return await this.accountMintDAL.getAllValuesFromTo(range, range) + } + + async addAccount(account: string): Promise { + const accountMint: AccountMint = { + mint: this.address, + account, + } + await this.accountMintDAL.save(accountMint) + } + + async getTokenHoldings({ + timestamp, + limit, + skip = 0, + reverse = true, + gte, + lte, + }: TokenHoldersFilters): Promise { + // @note: Default limit and gte + limit = limit || 1000 + + // @note: Do not add constraints to limit arg when it is ALEPH token + if (limit < 1 || limit > 1000) + throw new Error('400 Bad Request: 1 <= limit <= 1000') + + const gteBn = gte ? new BN(gte) : undefined + const lteBn = lte ? new BN(lte) : undefined + + const result: SPLTokenHolding[] = [] + const currentBalances = await this.balanceStateDAL + .useIndex(BalanceStateDALIndex.Mint) + .getAllValuesFromTo([this.address], [this.address], { + reverse, + limit, + }) + + if (timestamp) { + for await (const value of currentBalances) { + const snapshotBalance = await this.balanceHistoryDAL + .useIndex(BalanceHistoryDALIndex.AccountTimestamp) + .getLastValueFromTo( + [value.holderAccount ?? value.account, 0], + [value.holderAccount ?? value.account, timestamp], + ) + const balance = this.filterBalance(snapshotBalance, gteBn, lteBn) + if (!balance) continue + + // @note: Skip first N events + if (--skip >= 0) continue + + result.push(value) + + // @note: Stop when after reaching the limit + if (limit > 0 && result.length >= limit) return result + } + } else { + for await (const value of currentBalances) { + const balance = this.filterBalance(value, gteBn, lteBn) + if (!balance) continue + + // @note: Skip first N events + if (--skip >= 0) continue + + result.push(value) + + // @note: Stop when after reaching the limit + if (limit > 0 && result.length >= limit) return result + } + } + + return result + } + + private filterBalance( + balance: SPLTokenHolding | undefined, + gteBn: BN | undefined, + lteBn: BN | undefined, + ): SPLTokenHolding | undefined { + if (!balance) return undefined + + // @note: Filter by gte || lte + if (gteBn || lteBn) { + const balanceBN = new BN(balance.balances.total) + + if (gteBn && balanceBN.lte(gteBn)) return undefined + if (lteBn && balanceBN.gte(lteBn)) return undefined + } + + return balance + } +} diff --git a/packages/token-snapshot/src/domain/types.ts b/packages/token-snapshot/src/domain/types.ts new file mode 100644 index 0000000..dc0c16c --- /dev/null +++ b/packages/token-snapshot/src/domain/types.ts @@ -0,0 +1,56 @@ +import { SPLTokenEvent } from '../types.js' + +export type MintEventsFilters = { + account?: string + startDate?: number + endDate?: number + types?: string[] + limit?: number + reverse?: boolean + skip?: number +} + +export type AccountEventsFilters = { + startDate?: number + endDate?: number + types?: string[] + limit?: number + reverse?: boolean + skip?: number +} + +export type TokenHoldersFilters = { + timestamp?: number + limit?: number + skip?: number + reverse?: boolean + gte?: string + lte?: string +} + +export type AccountHoldingsFilters = { + account?: string + startDate?: number + endDate?: number + gte?: string + lte?: string +} + +export type AccountHoldingsOptions = { + startDate?: number + endDate?: number + reverse?: boolean + limit?: number + skip?: number +} + +export type MintAccount = { + mint: string + timestamp: number + event: SPLTokenEvent +} + +export type AccountMint = { + account: string + mint: string +} diff --git a/packages/token-snapshot/src/domain/worker.ts b/packages/token-snapshot/src/domain/worker.ts new file mode 100644 index 0000000..1e56ade --- /dev/null +++ b/packages/token-snapshot/src/domain/worker.ts @@ -0,0 +1,247 @@ +import { + AccountIndexerConfigWithMeta, + AccountStatsFilters, + createStatsStateDAL, + createStatsTimeSeriesDAL, + IndexerDomainContext, + IndexerWorkerDomain, + IndexerWorkerDomainWithStats, + InstructionContextV1, +} from '@aleph-indexer/framework' +import { PendingWork, PendingWorkPool } from '@aleph-indexer/core' +import { + createEventParser, + TokenEventParser as eventParser, +} from '../parsers/tokenEvent.js' +import { mintParser as mParser } from '../parsers/mint.js' +import { createEventDAL } from '../dal/event.js' +import { + SPLTokenHolding, + SPLTokenAccount, + SPLTokenEvent, + SPLTokenEventType, + SPLTokenType, +} from '../types.js' +import { Mint } from './mint.js' +import { TOKEN_PROGRAM_ID } from '../constants.js' +import { + getBalanceFromEvent, + getEventAccounts, + isSPLTokenInstruction, +} from '../utils/utils.js' +import { createFetchMintDAL } from '../dal/fetchMint.js' +import { MintAccount, TokenHoldersFilters } from './types.js' +import { createBalanceHistoryDAL } from '../dal/balanceHistory.js' +import { createBalanceStateDAL } from '../dal/balanceState.js' +import { createAccountMintDAL } from '../dal/accountMints.js' + +export default class WorkerDomain + extends IndexerWorkerDomain + implements IndexerWorkerDomainWithStats +{ + public mints: Record = {} + public accountMints: PendingWorkPool + + constructor( + protected context: IndexerDomainContext, + protected eventParser: eventParser, + protected mintParser = mParser, + protected eventDAL = createEventDAL(context.dataPath), + protected statsStateDAL = createStatsStateDAL(context.dataPath), + protected statsTimeSeriesDAL = createStatsTimeSeriesDAL(context.dataPath), + protected fetchMintDAL = createFetchMintDAL(context.dataPath), + protected balanceHistoryDAL = createBalanceHistoryDAL(context.dataPath), + protected balanceStateDAL = createBalanceStateDAL(context.dataPath), + protected accountMintDAL = createAccountMintDAL(context.dataPath), + protected programId = TOKEN_PROGRAM_ID, + ) { + super(context) + this.eventParser = createEventParser(this.fetchMintDAL, this.eventDAL) + this.accountMints = new PendingWorkPool({ + id: 'mintAccounts', + interval: 0, + chunkSize: 100, + concurrency: 1, + dal: this.fetchMintDAL, + handleWork: this._handleMintAccounts.bind(this), + checkComplete: () => false, + }) + } + + async init(): Promise { + return + } + + async onNewAccount( + config: AccountIndexerConfigWithMeta, + ): Promise { + const { account, meta } = config + + if ( + meta.type === SPLTokenType.Mint || + meta.type === SPLTokenType.Account || + meta.type === SPLTokenType.AccountMint + ) { + const mint = meta.mint + if (!this.mints[mint]) { + this.mints[mint] = new Mint( + mint, + this.eventDAL, + this.balanceStateDAL, + this.balanceHistoryDAL, + this.accountMintDAL, + ) + } + await this.mints[mint].addAccount(account) + } + console.log('Account indexing', this.context.instanceName, account) + } + + async getTimeSeriesStats( + account: string, + type: string, + filters: AccountStatsFilters, + ): Promise { + return {} + } + + async getStats(account: string): Promise { + return {} + } + + async updateStats(account: string, now: number): Promise { + console.log('', account) + } + + async getTokenHoldings( + account: string, + filters: TokenHoldersFilters, + ): Promise { + const mint = this.mints[account] + if (!mint) return [] + return await mint.getTokenHoldings(filters) + } + + protected async filterInstructions( + ixsContext: InstructionContextV1[], + ): Promise { + return ixsContext.filter(({ ix }) => isSPLTokenInstruction(ix)) + } + + protected async indexInstructions( + ixsContext: InstructionContextV1[], + ): Promise { + const parsedEvents: SPLTokenEvent[] = [] + const works: PendingWork[] = [] + const promises = ixsContext.map(async (ix) => { + const account = ix.txContext.parserContext.account + if (this.mints[account]) { + const parsedIx = this.mintParser.parse(ix, account) + if (parsedIx) { + if (parsedIx.type === SPLTokenEventType.InitializeAccount) { + const work = { + id: parsedIx.account, + time: Date.now(), + payload: { + mint: account, + timestamp: parsedIx.timestamp, + event: parsedIx, + }, + } + works.push(work) + } + } + } else { + const parsedIx = await this.eventParser.parse(ix) + if (parsedIx) { + if (parsedIx.type === SPLTokenEventType.CloseAccount) { + const work = await this.fetchMintDAL.getFirstValueFromTo( + [parsedIx.account], + [parsedIx.account], + { atomic: true }, + ) + if (work && parsedIx.timestamp >= work.payload.timestamp) { + await this.accountMints.removeWork(work) + const options = { + account: parsedIx.account, + index: { + transactions: true, + content: true, + }, + } + await this.context.apiClient.deleteAccount(options) + } + } + parsedEvents.push(parsedIx) + } + } + }) + + await Promise.all(promises) + + console.log(`indexing ${ixsContext.length} parsed ixs`) + + if (parsedEvents.length > 0) { + await this.eventDAL.save(parsedEvents) + + const lastEvent = parsedEvents[0] + await this.dealBalances(lastEvent) + } + if (works.length > 0) { + await this.accountMints.addWork(works) + } + } + + /** + * Fetch signatures from accounts. + * @param works Txn signatures with extra properties as time and payload. + */ + protected async _handleMintAccounts( + works: PendingWork[], + ): Promise { + console.log( + `Mint accounts | Start handling ${works.length} minted accounts`, + ) + + for (const work of works) { + if (!work) continue + + const account = work.id + const options = { + account, + meta: { + address: account, + type: SPLTokenType.AccountMint, + mint: work.payload.mint, + }, + index: { + transactions: { + chunkDelay: 0, + chunkTimeframe: 1000 * 60 * 60 * 24, + }, + content: false, + }, + } + await this.context.apiClient.indexAccount(options) + } + } + + protected async dealBalances(entity: SPLTokenEvent): Promise { + const accounts = getEventAccounts(entity) + const entities = accounts.map((account) => { + const balance = getBalanceFromEvent(entity, account) + return { + account, + tokenMint: entity.mint, + holderAccount: entity.owner, + balances: { + wallet: balance, + total: balance, + }, + timestamp: entity.timestamp, + } as SPLTokenHolding + }) + await this.balanceHistoryDAL.save(entities) + await this.balanceStateDAL.save(entities) + } +} diff --git a/packages/token-snapshot/src/parsers/lendingEvent.ts b/packages/token-snapshot/src/parsers/lendingEvent.ts new file mode 100644 index 0000000..9b47fae --- /dev/null +++ b/packages/token-snapshot/src/parsers/lendingEvent.ts @@ -0,0 +1,286 @@ +import BN from 'bn.js' +import { + InstructionContextV1, + Utils, + AlephParsedEvent, +} from '@aleph-indexer/core' +import { isMaxU64 } from '@aleph-indexer/layout' +import { + LendingEvent, + BorrowObligationLiquidityEvent, + DepositObligationCollateralEvent, + DepositReserveLiquidityEvent, + LiquidateObligationEvent, + RedeemReserveCollateralEvent, + RepayObligationLiquidityEvent, + LendingEventType, + WithdrawObligationCollateralEvent, + LendingEventInfo, + DepositReserveLiquidityAndObligationCollateralEventInfo, + RedeemReserveCollateralEventInfo, + DepositObligationCollateralEventInfo, + WithdrawObligationCollateralEventInfo, + BorrowObligationLiquidityEventInfo, + RepayObligationLiquidityEventInfo, + LiquidateObligationEventInfo, + WithdrawObligationCollateralAndRedeemReserveCollateralEventInfo, + WithdrawObligationCollateralAndRedeemReserveCollateralEvent, + FlashLoanEventInfo, + FlashLoanEvent, +} from '../types.js' + +const { + getTokenBalance, + getBurnedCollateralAmount, + getMintedCollateralAmount, + getSubInstructions, + getTransferedAmount, +} = Utils + +export class EventParser { + parse(ixCtx: InstructionContextV1): LendingEvent { + const { ix, parentIx, txContext } = ixCtx + const { tx: parentTx } = txContext + + const parsed = (ix as AlephParsedEvent) + .parsed + + const id = `${parentTx.signature}${ + parentIx ? `:${parentIx.index.toString().padStart(2, '0')}` : '' + }:${ix.index.toString().padStart(2, '0')}` + + const timestamp = parentTx.blockTime + ? parentTx.blockTime * 1000 + : parentTx.slot + + const baseEvent = { + ...parsed.info, + id, + timestamp, + type: parsed.type, + } + + try { + switch (parsed.type) { + case LendingEventType.DepositReserveLiquidity: + case LendingEventType.DepositReserveLiquidityAndObligationCollateral: { + const subIxs = getSubInstructions(ixCtx) + const info = + parsed.info as DepositReserveLiquidityAndObligationCollateralEventInfo + const collateralAmount = getMintedCollateralAmount( + info.userCollateral, + info.reserveCollateralMint, + subIxs, + ) + let liquidityAmount = info.liquidityAmount + if (isMaxU64(liquidityAmount)) { + liquidityAmount = getTransferedAmount( + info.userLiquidity, + info.reserveLiquidityVault, + subIxs, + ) + } + const reserveLiquidityAmount = new BN( + getTokenBalance(parentTx, info.reserveLiquidityVault, true) || 0, + ) + return { + ...baseEvent, + liquidityAmount, + collateralAmount, + reserveLiquidityAmount, + } as DepositReserveLiquidityEvent + } + + case LendingEventType.RedeemReserveCollateral: { + const subIxs = getSubInstructions(ixCtx) + const info = parsed.info as RedeemReserveCollateralEventInfo + const liquidityAmount = getTransferedAmount( + info.reserveLiquidityVault, + info.userLiquidity, + subIxs, + ) + let collateralAmount = info.collateralAmount + if (isMaxU64(collateralAmount)) { + collateralAmount = getBurnedCollateralAmount( + info.userLiquidity, + info.reserveLiquidityVault, + subIxs, + ) + } + const reserveLiquidityAmount = new BN( + getTokenBalance(parentTx, info.reserveLiquidityVault, true) || 0, + ) + return { + ...baseEvent, + liquidityAmount, + collateralAmount, + reserveLiquidityAmount, + } as RedeemReserveCollateralEvent + } + + case LendingEventType.DepositObligationCollateral: { + const info = parsed.info as DepositObligationCollateralEventInfo + let collateralAmount = info.collateralAmount + if (isMaxU64(collateralAmount)) { + const subIxs = getSubInstructions(ixCtx) + collateralAmount = getTransferedAmount( + info.userCollateral, + info.reserveCollateralVault, + subIxs, + ) + } + return { + ...baseEvent, + collateralAmount, + } as DepositObligationCollateralEvent + } + + case LendingEventType.WithdrawObligationCollateralAndRedeemReserveCollateral: + case LendingEventType.WithdrawObligationCollateral: { + const info = parsed.info as WithdrawObligationCollateralEventInfo + let collateralAmount = info.collateralAmount + if (isMaxU64(collateralAmount)) { + const subIxs = getSubInstructions(ixCtx) + collateralAmount = getTransferedAmount( + info.reserveCollateralVault, + info.userCollateral, + subIxs, + ) + } + if (parsed.type === LendingEventType.WithdrawObligationCollateral) { + return { + ...baseEvent, + collateralAmount, + } as WithdrawObligationCollateralEvent + } else { + const subIxs = getSubInstructions(ixCtx) + const info = + parsed.info as WithdrawObligationCollateralAndRedeemReserveCollateralEventInfo + const liquidityAmount = getTransferedAmount( + info.reserveLiquidityVault, + info.userLiquidity, + subIxs, + ) + const reserveLiquidityAmount = new BN( + getTokenBalance(parentTx, info.reserveLiquidityVault, true) || 0, + ) + return { + ...baseEvent, + collateralAmount, + liquidityAmount, + reserveLiquidityAmount, + } as unknown as WithdrawObligationCollateralAndRedeemReserveCollateralEvent + } + } + + case LendingEventType.BorrowObligationLiquidity: { + const subIxs = getSubInstructions(ixCtx) + const info = parsed.info as BorrowObligationLiquidityEventInfo + const liquidityFeeAmount = getTransferedAmount( + info.reserveLiquidityVault, + info.liquidityFeeReceiver, + subIxs, + ) + let liquidityAmount = info.liquidityAmount + if (isMaxU64(liquidityAmount)) { + liquidityAmount = getTransferedAmount( + info.reserveLiquidityVault, + info.userLiquidity, + subIxs, + ) + } + const reserveLiquidityAmount = new BN( + getTokenBalance(parentTx, info.reserveLiquidityVault, true) || 0, + ) + return { + ...baseEvent, + liquidityFeeAmount, + liquidityAmount, + reserveLiquidityAmount, + } as BorrowObligationLiquidityEvent + } + + case LendingEventType.RepayObligationLiquidity: { + const info = parsed.info as RepayObligationLiquidityEventInfo + let liquidityAmount = info.liquidityAmount + if (isMaxU64(liquidityAmount)) { + const subIxs = getSubInstructions(ixCtx) + liquidityAmount = getTransferedAmount( + info.userLiquidity, + info.reserveLiquidityVault, + subIxs, + ) + } + const reserveLiquidityAmount = new BN( + getTokenBalance(parentTx, info.reserveLiquidityVault, true) || 0, + ) + return { + ...baseEvent, + liquidityAmount, + reserveLiquidityAmount, + } as RepayObligationLiquidityEvent + } + + case LendingEventType.LiquidateObligation: + case LendingEventType.LiquidateObligation2: { + const subIxs = getSubInstructions(ixCtx) + const info = parsed.info as LiquidateObligationEventInfo + const liquidityRepayAmount = getTransferedAmount( + info.userLiquidity, + info.repayReserveLiquidityVault, + subIxs, + ) + const collateralWithdrawAmount = getTransferedAmount( + info.withdrawReserveCollateralVault, + info.userCollateral, + subIxs, + ) + const repayReserveLiquidityAmount = new BN( + getTokenBalance(parentTx, info.repayReserveLiquidityVault, true) || + 0, + ) + return { + ...baseEvent, + liquidityRepayAmount, + collateralWithdrawAmount, + repayReserveLiquidityAmount, + } as LiquidateObligationEvent + } + + case LendingEventType.FlashLoan: { + const subIxs = getSubInstructions(ixCtx) + const info = parsed.info as FlashLoanEventInfo + const liquidityFeeAmount = getTransferedAmount( + info.reserveLiquidityVault, + info.liquidityFeeReceiver, + subIxs, + ) + let liquidityAmount = info.liquidityAmount + if (isMaxU64(liquidityAmount)) { + liquidityAmount = getTransferedAmount( + info.reserveLiquidityVault, + info.userLiquidity, + subIxs, + ) + } + return { + ...baseEvent, + liquidityFeeAmount, + liquidityAmount, + } as FlashLoanEvent + } + case LendingEventType.InitReserve: + default: { + console.log('default -> ', parsed.type, id) + return baseEvent as LendingEvent + } + } + } catch (e) { + console.log('error -> ', parsed.type, id, e) + throw e + } + } +} + +export const eventParser = new EventParser() +export default eventParser diff --git a/packages/token-snapshot/src/parsers/mint.ts b/packages/token-snapshot/src/parsers/mint.ts new file mode 100644 index 0000000..d7c18ca --- /dev/null +++ b/packages/token-snapshot/src/parsers/mint.ts @@ -0,0 +1,83 @@ +import { InstructionContextV1, Utils } from '@aleph-indexer/core' +import { + SPLTokenRawEvent, + SPLTokenEvent, + SPLTokenEventInitializeAccount, + SPLTokenEventInitializeMint, + SPLTokenEventType, +} from '../types.js' + +const { getTokenBalance } = Utils + +export class MintParser { + parse( + ixCtx: InstructionContextV1, + mintAddress: string, + ): SPLTokenEvent | undefined { + const { ix, parentIx, txContext } = ixCtx + const parentTx = txContext.tx + const parsed = (ix as SPLTokenRawEvent).parsed + + // @note: Skip unrelated token ixs from being parsed + if ( + parsed.info && + 'mint' in parsed.info && + parsed.info.mint !== mintAddress + ) + return + + const id = `${parentTx.signature}${ + parentIx ? `:${parentIx.index.toString().padStart(2, '0')}` : '' + }:${ix.index.toString().padStart(2, '0')}` + + const timestamp = parentTx.blockTime + ? parentTx.blockTime * 1000 + : parentTx.slot + const type = parsed.type + + switch (type) { + case SPLTokenEventType.InitializeAccount: + case SPLTokenEventType.InitializeAccount2: + case SPLTokenEventType.InitializeAccount3: { + const { account, owner, mint } = parsed.info + const balance = getTokenBalance(parentTx, account) as string + + const res: SPLTokenEventInitializeAccount = { + id, + timestamp, + type: SPLTokenEventType.InitializeAccount, + balance, + account, + owner, + mint, + } + + console.log('---> init account => ', account, id) + + return res + } + + case SPLTokenEventType.InitializeMint: + case SPLTokenEventType.InitializeMint2: { + const { mint, mintAuthority } = parsed.info + + const res: SPLTokenEventInitializeMint = { + id, + timestamp, + type: SPLTokenEventType.InitializeMint, + balance: '0', + account: mintAuthority, + owner: mintAuthority, + mint, + } + + console.log('---> init MINT => ', id) + + return res + } + } + } +} + +export const mintParser = new MintParser() +export default mintParser diff --git a/packages/token-snapshot/src/parsers/tokenEvent.ts b/packages/token-snapshot/src/parsers/tokenEvent.ts new file mode 100644 index 0000000..15ce629 --- /dev/null +++ b/packages/token-snapshot/src/parsers/tokenEvent.ts @@ -0,0 +1,353 @@ +import { + InstructionContextV1, + Utils, + solanaPrivateRPCRoundRobin, +} from '@aleph-indexer/core' +import { ParsedAccountData, PublicKey } from '@solana/web3.js' +import { SPLTokenRawEvent, SPLTokenEvent, SPLTokenEventType } from '../types.js' +import { getMintAndOwnerFromEvent } from '../utils/utils.js' +import { FetchMintStorage } from '../dal/fetchMint.js' +import { EventDALIndex, EventStorage } from '../dal/event.js' + +const { getTokenBalance } = Utils + +export type MintOwner = { + mint: string + owner: string +} + +export class TokenEventParser { + constructor( + protected fetchMintDAL: FetchMintStorage, + protected eventDAL: EventStorage, + ) {} + + async parse(ixCtx: InstructionContextV1): Promise { + const { ix, parentIx, txContext } = ixCtx + const { tx: parentTx } = txContext + + const parsed = (ix as SPLTokenRawEvent).parsed + + const id = `${parentTx.signature}${ + parentIx ? `:${parentIx.index.toString().padStart(2, '0')}` : '' + }:${ix.index.toString().padStart(2, '0')}` + + const timestamp = parentTx.blockTime + ? parentTx.blockTime * 1000 + : parentTx.slot + const type = parsed.type + + switch (type) { + case SPLTokenEventType.MintTo: { + const account = parsed.info.account + const balance = getTokenBalance(parentTx, account) as string + const { mint, owner } = await this.getMintAndOwner(account) + + return { + id, + timestamp, + type, + amount: parsed.info.amount, + balance, + account, + mint, + owner, + } + } + case SPLTokenEventType.MintToChecked: { + const { account, tokenAmount } = parsed.info + const balance = getTokenBalance(parentTx, account) as string + const { mint, owner } = await this.getMintAndOwner(account) + + return { + id, + timestamp, + type: SPLTokenEventType.MintTo, + amount: tokenAmount.amount, + balance, + account, + mint, + owner, + } + } + case SPLTokenEventType.Burn: { + const { account, amount } = parsed.info + const balance = getTokenBalance(parentTx, account) as string + const { mint, owner } = await this.getMintAndOwner(account) + + return { + id, + timestamp, + type, + amount, + balance, + account, + mint, + owner, + } + } + case SPLTokenEventType.BurnChecked: { + const { account, tokenAmount } = parsed.info + const balance = getTokenBalance(parentTx, account) as string + const { mint, owner } = await this.getMintAndOwner(account) + + return { + id, + timestamp, + type: SPLTokenEventType.Burn, + amount: tokenAmount.amount, + balance, + account, + mint, + owner, + } + } + case SPLTokenEventType.InitializeAccount: + case SPLTokenEventType.InitializeAccount2: + case SPLTokenEventType.InitializeAccount3: { + const { account, owner, mint } = parsed.info + const balance = getTokenBalance(parentTx, account) as string + + return { + id, + timestamp, + type: SPLTokenEventType.InitializeAccount, + balance, + account, + mint, + owner, + } + } + case SPLTokenEventType.CloseAccount: { + const { account, destination } = parsed.info + const owner = + 'owner' in parsed.info ? parsed.info.owner : parsed.info.multisigOwner + + const balance = getTokenBalance(parentTx, account) as string + const { mint } = await this.getMintAndOwner(account) + + return { + id, + timestamp, + type, + balance, + account, + mint, + owner, + toAccount: destination, + } + } + case SPLTokenEventType.Transfer: { + const account = parsed.info.source + const balance = getTokenBalance(parentTx, account) as string + + const toAccount = parsed.info.destination + const toBalance = getTokenBalance(parentTx, toAccount) as string + + const { mint } = await this.getMintAndOwner(account) + const { owner: toOwner } = await this.getMintAndOwner(toAccount) + + const owner = + 'authority' in parsed.info + ? parsed.info.authority + : parsed.info.multisigAuthority + + return { + id, + timestamp, + type, + amount: parsed.info.amount, + balance, + account, + owner, + toBalance, + toAccount, + toOwner, + mint, + } + } + case SPLTokenEventType.TransferChecked: { + const account = parsed.info.source + const balance = getTokenBalance(parentTx, account) as string + + const toAccount = parsed.info.destination + const toBalance = getTokenBalance(parentTx, toAccount) as string + + const { mint } = await this.getMintAndOwner(account) + const { owner: toOwner } = await this.getMintAndOwner(toAccount) + + return { + id, + timestamp, + type: SPLTokenEventType.Transfer, + amount: parsed.info.tokenAmount.amount, + balance, + account, + owner: parsed.info.authority, + toBalance, + toAccount, + toOwner, + mint, + } + } + case SPLTokenEventType.SetAuthority: { + const { account, authority, authorityType, newAuthority } = parsed.info + const balance = getTokenBalance(parentTx, account) as string + const { mint, owner } = await this.getMintAndOwner(account) + + return { + id, + timestamp, + type, + balance, + account, + owner, + newOwner: newAuthority, + authorityType, + mint, + } + } + case SPLTokenEventType.Approve: { + const { source: account, owner, delegate, amount } = parsed.info + const balance = getTokenBalance(parentTx, account) as string + const { mint } = await this.getMintAndOwner(account) + + return { + id, + timestamp, + type, + amount, + balance, + account, + owner, + delegate, + mint, + } + } + case SPLTokenEventType.ApproveChecked: { + const { source: account, owner, delegate, tokenAmount } = parsed.info + const balance = getTokenBalance(parentTx, account) as string + const { mint } = await this.getMintAndOwner(account) + + return { + id, + timestamp, + type: SPLTokenEventType.Approve, + amount: tokenAmount.amount, + balance, + account, + owner, + delegate, + mint, + } + } + case SPLTokenEventType.Revoke: { + const { source: account, owner } = parsed.info + const balance = getTokenBalance(parentTx, account) as string + const { mint } = await this.getMintAndOwner(account) + + return { + id, + timestamp, + type, + balance, + account, + owner, + mint, + } + } + case SPLTokenEventType.SyncNative: { + const { account } = parsed.info + const balance = getTokenBalance(parentTx, account) as string + const { mint, owner } = await this.getMintAndOwner(account) + + return { + id, + timestamp, + type, + balance, + account, + owner, + mint, + } + } + + default: { + console.log('NOT PARSED IX TYPE', (parsed as any).type) + console.log(id) + return + } + } + } + + protected async getMintAndOwner(account: string): Promise { + const dbEvent = await this.fetchMintDAL.getFirstValueFromTo( + [account], + [account], + { atomic: true }, + ) + if (!dbEvent) { + return await this.getMintAndOwnerFromEvents(account) + } + + const event = dbEvent.payload.event + const data = getMintAndOwnerFromEvent(event, account) + + return { + mint: data.mint, + owner: data.owner || '', + } + } + + protected async getMintAndOwnerFromEvents( + account: string, + ): Promise { + const dbEvent = await this.eventDAL + .useIndex(EventDALIndex.AccountTimestamp) + .getFirstValueFromTo([account], [account], { atomic: true }) + + if (!dbEvent) { + return await this.getMintAndOwnerFromAccount(account) + } + + const data = getMintAndOwnerFromEvent(dbEvent, account) + + return { + mint: data.mint, + owner: data.owner || '', + } + } + + protected async getMintAndOwnerFromAccount( + account: string, + ): Promise { + // TODO: Improve this way to get the mint and owner of an account + try { + const connection = solanaPrivateRPCRoundRobin.getClient() + const res = await connection + .getConnection() + .getParsedAccountInfo(new PublicKey(account)) + + const data = (res?.value?.data as ParsedAccountData)?.parsed?.info + + return { + mint: data.mint, + owner: data.owner, + } + } catch (e) { + console.log('Error checking info for account ' + account) + } + + return { + mint: '', + owner: '', + } + } +} + +export function createEventParser( + fetchDAL: FetchMintStorage, + eventDAL: EventStorage, +): TokenEventParser { + return new TokenEventParser(fetchDAL, eventDAL) +} diff --git a/packages/token-snapshot/src/types.ts b/packages/token-snapshot/src/types.ts new file mode 100644 index 0000000..f584bd8 --- /dev/null +++ b/packages/token-snapshot/src/types.ts @@ -0,0 +1,809 @@ +import { TokenInfo } from '@solana/spl-token-registry' +import { EventBase } from '@aleph-indexer/core' +import BN from 'bn.js' + +// ----------------------------- TOKEN EVENTS ----------------------------- + +/** + * RAW INSTRUCTIONS + * + * Read this: https://docs.solana.com/integrations/exchange#depositing + * And this: https://github.com/solana-labs/solana-program-library/blob/fc0d6a2db79bd6499f04b9be7ead0c400283845e/token/program/src/instruction.rs#L105 + * And this: https://github.com/solana-labs/solana/blob/02bc4e3fc19736bc3f74183f3ceee21598f39139/transaction-status/src/parse_token.rs + * Examples: + * + * On txs: + * 59eJF2jZ8xhsbveeoRPp5C7MNTXQALE5e8fLqYCW8chUky2gkgSSxrPYAXyBPohMR2YJ8W22x7ZjLXhdwAqWEp2L + * 3fxdnCHn6sLK1HN39hirjAyjcCjHYsMXRpKT9jLPJVhae3SqKXsocYKijxWBKwGbr3mSSE7Uw7o3GD51NdLSAg1y + * 3FtUT15zDkCYH4E6nfhDzhqVwkrVRW3egA6eD4CuisiHi2k35YdH415Bb5C9jVf4acx7B1ypgTakpx6X3cJFtwQ4 + * + * initializeAccount => 31msjyAEvsFWcYLJSVXfjUEK5HtZ9pVFAhWc1qXruSpxdyu3ifx3nv3vKSg4RzGysLXWjvPqRxzrHE7wPXM2D4tc:02:03 + * closeAccount => 5ZrHS6QjdwgoFMXGqLSUnk5jnVCDT8Zam7KrdWpg4VTzbZuGabKNGoEXjv1C5aL5tcjBiGABed47MNNboPXyrzxf:03 + * mintTo => qJL22oJW1juUr6XZdzUDjxBSZscRhvUQMbrBGyqZabi6GFFwR4USUy3PPVPn4unzk1V86VWuQTEJAu5hcKESVBN:01:03 + * burn => 4EQK53nfrtEbYnYNyjZFWFzh9Bok4f5M5Wkh7NJLVDcH7HE6PGbY2DsSPPYppetSqjZGZA1bgWyurA6VYAkCkLiA:02:02 + * transfer => qJL22oJW1juUr6XZdzUDjxBSZscRhvUQMbrBGyqZabi6GFFwR4USUy3PPVPn4unzk1V86VWuQTEJAu5hcKESVBN:01:04 + * transferChecked => 3FtUT15zDkCYH4E6nfhDzhqVwkrVRW3egA6eD4CuisiHi2k35YdH415Bb5C9jVf4acx7B1ypgTakpx6X3cJFtwQ4:00 + * setAuthority => 5h3wFufzx31KZh5shSYquLnVFUGAdM1ym8Yg2xq519ZfhTYaeSsbn5g7BsRyiXszm3CvUETUpsdxaHBHF8jsom3N:00:01 + * approve => 2c4Srogftgjq92ZTMR9zTQUoZjFyEEPBXhBw4yom1m3qASwkArQHQFjBJKPGEzzWqE3pgzvatVGMJA1Y6PPCKeCM:00:00 + * revoke => 2c4Srogftgjq92ZTMR9zTQUoZjFyEEPBXhBw4yom1m3qASwkArQHQFjBJKPGEzzWqE3pgzvatVGMJA1Y6PPCKeCM:00:02 + * syncNative => G92DJX9CG4vWEUPguZk5izfxYLrpWcJDNiiwD4Anhs28yrT8XXhcj6pA1Y5XNXAZ6z4MyfrzKouqtxb582ih6YW:03 + * initializeMint => 4iggaA8mxuB1ATUGMqNYQv7Wk8fjr8KHHodqD5zYbGGhzHpk71axwFuwo4rhK6SE9gkJey4wxqc724Di23gRn5M9:02 + * multisig_transfer => 9wx2Yw2pQUDkoiZoRiHTFDuU3irVFVuP93aAv7QZnsKE5M35FXnMutQprhJoyPEK6G7bZBYcbE1ypW1nNiJGkrR:00:00 + */ + +export enum SPLTokenEventType { + MintTo = 'mintTo', + MintToChecked = 'mintToChecked', + Burn = 'burn', + BurnChecked = 'burnChecked', + InitializeAccount = 'initializeAccount', + InitializeAccount2 = 'initializeAccount2', + InitializeAccount3 = 'initializeAccount3', + CloseAccount = 'closeAccount', + Transfer = 'transfer', + TransferChecked = 'transferChecked', + SetAuthority = 'setAuthority', + Approve = 'approve', + ApproveChecked = 'approveChecked', + Revoke = 'revoke', + SyncNative = 'syncNative', + InitializeMint = 'initializeMint', + InitializeMint2 = 'initializeMint2', + + // @todo + InitializeMultisig = 'initializeMultisig', + InitializeMultisig2 = 'initializeMultisig2', + FreezeAccount = 'freezeAccount', + ThawAccount = 'thawAccount', +} + +export enum AuthorityType { + /// Authority to mint new tokens + MintTokens = 'mintTokens', + /// Authority to freeze any account associated with the Mint + FreezeAccount = 'freezeAccount', + /// Owner of a given token account + AccountOwner = 'accountOwner', + /// Authority to close a token account + CloseAccount = 'closeAccount', +} + +export enum SPLTokenType { + Account = 'account', + Mint = 'mint', + AccountMint = 'account_mint', +} + +export type SPLTokenAccount = { + address: string + mint: string + type: SPLTokenType +} + +export type SPLTokenRawEventBase = { + parsed: unknown + program: string + programId: string +} + +export type SPLTokenRawEventMintTo = SPLTokenRawEventBase & { + parsed: { + info: { + account: string + amount: string + mint: string + mintAuthority: string + } + type: SPLTokenEventType.MintTo + } +} + +export type SPLTokenRawEventMintToChecked = SPLTokenRawEventBase & { + parsed: { + info: { + account: string + mint: string + mintAuthority: string + tokenAmount: { + amount: string + decimals: number + uiAmount: number + uiAmountString: string + } + } + type: SPLTokenEventType.MintToChecked + } +} + +export type SPLTokenRawEventBurn = SPLTokenRawEventBase & { + parsed: { + info: { + account: string + amount: string + authority: string + mint: string + } + type: SPLTokenEventType.Burn + } +} + +export type SPLTokenRawEventBurnChecked = SPLTokenRawEventBase & { + parsed: { + info: { + account: string + authority: string + mint: string + tokenAmount: { + amount: string + decimals: number + uiAmount: number + uiAmountString: string + } + } + type: SPLTokenEventType.BurnChecked + } +} + +export type SPLTokenRawEventInitializeAccountBase = SPLTokenRawEventBase & { + parsed: { + info: { + account: string + mint: string + owner: string + rentSysvar: string + } + type: T + } +} + +export type SPLTokenRawEventInitializeAccount = + SPLTokenRawEventInitializeAccountBase + +export type SPLTokenRawEventInitializeAccount2 = + SPLTokenRawEventInitializeAccountBase + +export type SPLTokenRawEventInitializeAccount3 = + SPLTokenRawEventInitializeAccountBase + +export type SPLTokenRawEventCloseAccount = SPLTokenRawEventBase & { + parsed: { + info: { + account: string + destination: string + } & ( + | { + owner: string + } + | { + multisigOwner: string + signers: string[] + } + ) + type: SPLTokenEventType.CloseAccount + } +} + +export type SPLTokenRawEventTransfer = SPLTokenRawEventBase & { + parsed: { + info: { + amount: string + destination: string + source: string + } & ( + | { + authority: string + } + | { + multisigAuthority: string + signers: string[] + } + ) + type: SPLTokenEventType.Transfer + } +} + +export type SPLTokenRawEventTransferChecked = SPLTokenRawEventBase & { + parsed: { + info: { + authority: string + destination: string + mint: string + source: string + tokenAmount: { + amount: string + decimals: number + uiAmount: number + uiAmountString: string + } + } + type: SPLTokenEventType.TransferChecked + } +} + +export type SPLTokenRawEventSetAuthority = SPLTokenRawEventBase & { + parsed: { + info: { + account: string + authority: string + authorityType: AuthorityType + newAuthority: string + } + type: SPLTokenEventType.SetAuthority + } +} + +export type SPLTokenRawEventApprove = SPLTokenRawEventBase & { + parsed: { + info: { + amount: string + delegate: string + owner: string + source: string + } + type: SPLTokenEventType.Approve + } +} + +export type SPLTokenRawEventApproveChecked = SPLTokenRawEventBase & { + parsed: { + info: { + delegate: string + owner: string + source: string + mint: string + tokenAmount: { + amount: string + decimals: number + uiAmount: number + uiAmountString: string + } + } + type: SPLTokenEventType.ApproveChecked + } +} + +export type SPLTokenRawEventRevoke = SPLTokenRawEventBase & { + parsed: { + info: { + owner: string + source: string + } + type: SPLTokenEventType.Revoke + } +} + +export type SPLTokenRawEventSyncNative = SPLTokenRawEventBase & { + parsed: { + info: { + account: string + } + type: SPLTokenEventType.SyncNative + } +} + +export type SPLTokenRawEventInitializeMintBase = SPLTokenRawEventBase & { + parsed: { + info: { + decimals: number + mint: string + mintAuthority: string + rentSysvar: string + } + type: T + } +} + +export type SPLTokenRawEventInitializeMint = + SPLTokenRawEventInitializeMintBase + +export type SPLTokenRawEventInitializeMint2 = + SPLTokenRawEventInitializeMintBase + +export type SPLTokenRawEvent = + | SPLTokenRawEventMintTo + | SPLTokenRawEventMintToChecked + | SPLTokenRawEventBurn + | SPLTokenRawEventBurnChecked + | SPLTokenRawEventInitializeAccount + | SPLTokenRawEventInitializeAccount2 + | SPLTokenRawEventInitializeAccount3 + | SPLTokenRawEventCloseAccount + | SPLTokenRawEventTransfer + | SPLTokenRawEventTransferChecked + | SPLTokenRawEventSetAuthority + | SPLTokenRawEventApprove + | SPLTokenRawEventApproveChecked + | SPLTokenRawEventRevoke + | SPLTokenRawEventSyncNative + | SPLTokenRawEventInitializeMint + | SPLTokenRawEventInitializeMint2 + +// ------------------- PARSED ------------------ + +export type SPLTokenInfo = { + name: string + address: string + programId: string + tokenInfo: TokenInfo +} + +export type SPLTokenEventBase = { + id: string + timestamp: number + type: SPLTokenEventType + mint: string + balance: string + account: string + owner?: string +} + +export type SPLTokenEventMint = SPLTokenEventBase & { + type: SPLTokenEventType.MintTo + amount: string +} + +export type SPLTokenEventBurn = SPLTokenEventBase & { + type: SPLTokenEventType.Burn + amount: string +} + +export type SPLTokenEventInitializeAccount = SPLTokenEventBase & { + type: SPLTokenEventType.InitializeAccount +} + +export type SPLTokenEventCloseAccount = SPLTokenEventBase & { + type: SPLTokenEventType.CloseAccount + toAccount?: string +} + +export type SPLTokenEventTransfer = SPLTokenEventBase & { + type: SPLTokenEventType.Transfer + amount: string + toBalance: string + toAccount: string + toOwner?: string +} + +export type SPLTokenEventSetAuthority = SPLTokenEventBase & { + type: SPLTokenEventType.SetAuthority + newOwner: string + authorityType: AuthorityType +} + +export type SPLTokenEventApprove = SPLTokenEventBase & { + type: SPLTokenEventType.Approve + amount: string + delegate: string +} + +export type SPLTokenEventRevoke = SPLTokenEventBase & { + type: SPLTokenEventType.Revoke +} + +export type SPLTokenEventSyncNative = SPLTokenEventBase & { + type: SPLTokenEventType.SyncNative +} + +export type SPLTokenEventInitializeMint = SPLTokenEventBase & { + type: SPLTokenEventType.InitializeMint +} + +export type SPLTokenEvent = + | SPLTokenEventMint + | SPLTokenEventBurn + | SPLTokenEventInitializeAccount + | SPLTokenEventCloseAccount + | SPLTokenEventTransfer + | SPLTokenEventSetAuthority + | SPLTokenEventApprove + | SPLTokenEventRevoke + | SPLTokenEventSyncNative + | SPLTokenEventInitializeMint + +export type SPLTokenIncompleteEvent = + | IncompleteEvent + | IncompleteEvent + | IncompleteEvent + | IncompleteEvent + | IncompleteEvent + | IncompleteEvent + | IncompleteEvent + | IncompleteEvent + | IncompleteEvent + | IncompleteEvent + +export type IncompleteEvent = Omit & { + mint?: string + toOwner?: string + owner?: string +} + +export type SPLTokenEventPublic = SPLTokenEvent & { tokenInfo: TokenInfo } + +// ----------------------------- LENDING EVENTS ----------------------------- + +export enum LendingEventType { + InitLendingMarket = 'initLendingMarket', + SetLendingMarketOwner = 'setLendingMarketOwner', + InitReserve = 'initReserve', + RefreshReserve = 'refreshReserve', + DepositReserveLiquidity = 'depositReserveLiquidity', + RedeemReserveCollateral = 'redeemReserveCollateral', + InitObligation = 'initObligation', + RefreshObligation = 'refreshObligation', + DepositObligationCollateral = 'depositObligationCollateral', + WithdrawObligationCollateral = 'withdrawObligationCollateral', + BorrowObligationLiquidity = 'borrowObligationLiquidity', + RepayObligationLiquidity = 'repayObligationLiquidity', + LiquidateObligation = 'liquidateObligation', + FlashLoan = 'flashLoan', + DepositReserveLiquidityAndObligationCollateral = 'depositReserveLiquidityAndObligationCollateral', + WithdrawObligationCollateralAndRedeemReserveCollateral = 'withdrawObligationCollateralAndRedeemReserveCollateral', + UpdateReserveConfig = 'updateReserveConfig', // Admin tx for update reserve account data + Unknown16 = 'unknown-16', // Admin tx for update reserve account data + Unknown18 = 'unknown-18', // Admin tx for update reserve account data + + // @note: adhoc latrix + LiquidateObligation2 = 'liquidateObligation2', +} + +/** + * @note: Exclude not significant events from being indexed: + * [0]: PortEventType.InitLendingMarket, + * [1]: PortEventType.SetLendingMarketOwner, + * [3]: PortEventType.RefreshReserve, + * [6]: PortEventType.InitObligation, + * [7]: PortEventType.RefreshObligation, + * [13]: PortEventType.Unknown13, + * [15]: PortEventType.Unknown15, + * [16]: PortEventType.Unknown16, // Admin ix for updating reserve account data + * [17]: PortEventType.Unknown17, + * [18]: PortEventType.Unknown18, // Admin ix for updating reserve account data + * */ +export type LendingEvent = + | InitReserveEvent + | DepositReserveLiquidityEvent + | RedeemReserveCollateralEvent + | DepositObligationCollateralEvent + | WithdrawObligationCollateralEvent + | BorrowObligationLiquidityEvent + | RepayObligationLiquidityEvent + | LiquidateObligationEvent + | FlashLoanEvent + | DepositReserveLiquidityAndObligationCollateralEvent + | WithdrawObligationCollateralAndRedeemReserveCollateralEvent + | LiquidateObligation2Event + +export type LiquidityEvent = + | DepositReserveLiquidityEvent + | RedeemReserveCollateralEvent + | BorrowObligationLiquidityEvent + | RepayObligationLiquidityEvent + | LiquidateObligationEvent + | FlashLoanEvent + | DepositReserveLiquidityAndObligationCollateralEvent + | WithdrawObligationCollateralAndRedeemReserveCollateralEvent + | LiquidateObligation2Event + +export type BorrowEvent = + | BorrowObligationLiquidityEvent + | RepayObligationLiquidityEvent + | LiquidateObligationEvent + | LiquidateObligation2Event + +export type LiquidationEvent = + | LiquidateObligationEvent + | LiquidateObligation2Event + +export type LendingEventInfo = + | InitReserveEventInfo + | DepositReserveLiquidityEventInfo + | RedeemReserveCollateralEventInfo + | DepositObligationCollateralEventInfo + | WithdrawObligationCollateralEventInfo + | BorrowObligationLiquidityEventInfo + | RepayObligationLiquidityEventInfo + | LiquidateObligationEventInfo + | FlashLoanEventInfo + | DepositReserveLiquidityAndObligationCollateralEventInfo + | WithdrawObligationCollateralAndRedeemReserveCollateralEventInfo + | LiquidateObligation2EventInfo + +export type LendingEventBase = EventBase + +export type InitReserveEventInfo = { + liquidity?: string + collateral?: string + reserve: string + reserveLiquidityMint: string + reserveLiquidityVault: string + liquidityFeeReceiver: string + reserveCollateralMint: string + reserveCollateralVault: string + lendingMarket: string + lendingMarketAuthority?: string + lendingMarketOwner: string + transferAuthority?: string + clockProgram: string + rentProgram: string + tokenProgram: string + pythPriceOracle?: string + switchboardFeedAddress?: string +} + +export type InitReserveEvent = LendingEventBase & + InitReserveEventInfo & { + type: LendingEventType.InitReserve + } + +export type DepositReserveLiquidityEventInfo = { + liquidityAmount: BN + userLiquidity: string + userCollateral: string + reserve: string + reserveLiquidityVault: string + reserveCollateralMint: string + lendingMarket: string + lendingMarketAuthority: string + transferAuthority: string + clockProgram: string + tokenProgram: string +} + +export type DepositReserveLiquidityEvent = LendingEventBase & + DepositReserveLiquidityEventInfo & { + type: LendingEventType.DepositReserveLiquidity + collateralAmount: BN // from spl-token ix + reserveLiquidityAmount: BN + } + +export type DepositObligationCollateralEventInfo = { + collateralAmount: BN + userCollateral: string + reserveCollateralVault: string + reserve: string + obligation: string + lendingMarket: string + lendingMarketAuthority?: string + obligationOwner: string + transferAuthority: string + clockProgram: string + tokenProgram: string + stakeAccount?: string + stakingPool?: string + stakingProgram?: string +} + +export type DepositObligationCollateralEvent = LendingEventBase & + DepositObligationCollateralEventInfo & { + type: LendingEventType.DepositObligationCollateral + } + +export type RedeemReserveCollateralEventInfo = { + collateralAmount: BN + userCollateral: string + userLiquidity: string + reserve: string + reserveCollateralMint: string + reserveLiquidityVault: string + lendingMarket: string + lendingMarketAuthority: string + transferAuthority: string + clockProgram: string + tokenProgram: string + stakeAccount?: string + stakingPool?: string + stakingProgram?: string +} + +export type RedeemReserveCollateralEvent = LendingEventBase & + RedeemReserveCollateralEventInfo & { + type: LendingEventType.RedeemReserveCollateral + liquidityAmount: BN // from spl-token ix + reserveLiquidityAmount: BN + } + +export type WithdrawObligationCollateralEventInfo = { + collateralAmount: BN + reserveCollateralVault: string + userCollateral: string + reserve: string + obligation: string + lendingMarket: string + lendingMarketAuthority: string + obligationOwner: string + clockProgram: string + tokenProgram: string + stakeAccount?: string + stakingPool?: string + stakingProgram?: string +} + +export type WithdrawObligationCollateralEvent = LendingEventBase & + WithdrawObligationCollateralEventInfo & { + type: LendingEventType.WithdrawObligationCollateral + } + +export type BorrowObligationLiquidityEventInfo = { + liquidityAmount: BN + reserveLiquidityVault: string + userLiquidity: string + reserve: string + liquidityFeeReceiver: string + obligation: string + lendingMarket: string + lendingMarketAuthority: string + obligationOwner: string + clockProgram: string + tokenProgram: string +} + +export type BorrowObligationLiquidityEvent = LendingEventBase & + BorrowObligationLiquidityEventInfo & { + type: LendingEventType.BorrowObligationLiquidity + // @note: fee is 0.0001 of liquidityAmount + liquidityFeeAmount: BN + reserveLiquidityAmount: BN + } + +export type RepayObligationLiquidityEventInfo = { + liquidityAmount: BN + userLiquidity: string + reserveLiquidityVault: string + reserve: string + obligation: string + lendingMarket: string + transferAuthority: string + clockProgram: string + tokenProgram: string +} + +export type RepayObligationLiquidityEvent = LendingEventBase & + RepayObligationLiquidityEventInfo & { + type: LendingEventType.RepayObligationLiquidity + reserveLiquidityAmount: BN + } + +export type LiquidateObligationEventInfo = { + liquidityAmount: BN + userLiquidity: string + userCollateral: string + repayReserve: string + repayReserveLiquidityVault: string + withdrawReserve: string + withdrawReserveCollateralVault: string + obligation: string + lendingMarket: string + lendingMarketAuthority: string + transferAuthority: string + clockProgram: string + tokenProgram: string + stakeAccount?: string + stakingPool?: string + stakingProgram?: string +} + +export type LiquidateObligationEvent = LendingEventBase & + LiquidateObligationEventInfo & { + type: LendingEventType.LiquidateObligation + liquidityRepayAmount: BN + collateralWithdrawAmount: BN + repayReserveLiquidityAmount: BN + } + +export type FlashLoanEventInfo = { + liquidityAmount: BN + reserveLiquidityVault: string + userLiquidity: string + reserve: string + liquidityFeeReceiver: string + hostFeeReceiver: string + lendingMarket: string + lendingMarketAuthority: string + tokenProgram: string + flashLoanReceiverProgram: string + flashLoanReceiverAddresses: string[] +} + +export type FlashLoanEvent = LendingEventBase & + FlashLoanEventInfo & { + type: LendingEventType.FlashLoan + // @note: fee is 0.0001 of liquidityAmount + liquidityFeeAmount: BN + reserveLiquidityAmount: BN + } + +export type DepositReserveLiquidityAndObligationCollateralEventInfo = { + liquidityAmount: BN + userLiquidity: string + userCollateral: string + reserve: string + reserveLiquidityVault: string + reserveCollateralMint: string + lendingMarket: string + lendingMarketAuthority: string + reserveCollateralVault: string + obligation: string + obligationOwner: string + pythPriceOracle?: string + switchboardFeedAddress?: string + transferAuthority: string + clockProgram: string + tokenProgram: string + stakeAccount?: string + stakingPool?: string + stakingProgram?: string +} + +export type DepositReserveLiquidityAndObligationCollateralEvent = + LendingEventBase & + DepositReserveLiquidityAndObligationCollateralEventInfo & { + type: LendingEventType.DepositReserveLiquidityAndObligationCollateral + collateralAmount: BN // from spl-token ix + reserveLiquidityAmount: BN + } + +export type WithdrawObligationCollateralAndRedeemReserveCollateralEventInfo = { + collateralAmount: BN + reserveCollateralVault: string + userCollateral: string + reserve: string + obligation: string + lendingMarket: string + lendingMarketAuthority: string + userLiquidity: string + reserveCollateralMint: string + reserveLiquidityVault: string + obligationOwner: string + transferAuthority: string + clockProgram: string + tokenProgram: string +} + +export type WithdrawObligationCollateralAndRedeemReserveCollateralEvent = + LendingEventBase & + WithdrawObligationCollateralAndRedeemReserveCollateralEventInfo & { + type: LendingEventType.WithdrawObligationCollateralAndRedeemReserveCollateral + liquidityAmount: BN + reserveLiquidityAmount: BN + } + +export type LiquidateObligation2EventInfo = Omit< + LiquidateObligationEventInfo, + 'clockProgram' +> + +export type LiquidateObligation2Event = LendingEventBase & + LiquidateObligation2EventInfo & { + type: LendingEventType.LiquidateObligation2 + liquidityRepayAmount: BN + collateralWithdrawAmount: BN + repayReserveLiquidityAmount: BN + } + +// ----------------------------- HOLDINGS ----------------------------------- + +export type Balances = { + wallet: string + solend?: string + port?: string + larix?: string + total: string +} + +export type SPLTokenHolding = { + account: string + tokenMint: string + holderAccount?: string + balances: Balances + timestamp: number +} + +// ------------------------ DISCOVERY ---------------------------------- + +export type DiscoveryFnReturn = { + mints: string[] + accounts: string[] +} + +export type DiscoveryFn = () => Promise diff --git a/packages/token-snapshot/src/utils/discovery.ts b/packages/token-snapshot/src/utils/discovery.ts new file mode 100644 index 0000000..92718aa --- /dev/null +++ b/packages/token-snapshot/src/utils/discovery.ts @@ -0,0 +1,96 @@ +import fs, { Stats } from 'fs' +import path from 'path' +import { config } from '@aleph-indexer/core' +import { DiscoveryFn, DiscoveryFnReturn } from '../types.js' + +export async function discoveryFn(): Promise { + // @note: Get addresses from env vars + const mintsSet = new Set( + config.SPL_TOKEN_MINTS ? config.SPL_TOKEN_MINTS.split(',') : [], + ) + const accountsSet = new Set( + config.SPL_TOKEN_ACCOUNTS ? config.SPL_TOKEN_ACCOUNTS.split(',') : [], + ) + + // @note: Get addresses from custom discovery scripts under "discoveryPath" + + const discoveryPath = path.resolve( + config.SPL_TOKEN_DISCOVERY_FOLDER || 'discovery', + ) + + if (discoveryPath) { + try { + const files = await new Promise((resolve, reject) => + fs.readdir(discoveryPath, (error, files) => + error ? reject(error) : resolve(files), + ), + ) + + const discoveryWhitelist = config.SPL_TOKEN_DISCOVERY_WHITELIST + ? config.SPL_TOKEN_DISCOVERY_WHITELIST.split(',') + : [] + + const filteredFilePaths = [] + + for (const file of files) { + if (!file.endsWith('.js')) continue + + let filePath = path.join(discoveryPath, file) + + console.log('[Discovery] => whitelisting', file, filePath) + + const stats = await new Promise((resolve, reject) => + fs.lstat(filePath, (error, res) => + error ? reject(error) : resolve(res), + ), + ) + + const isDir = stats.isDirectory() + const fileName = isDir ? file : file.split('.')[0] + filePath = isDir ? path.join(filePath, 'index.js') : filePath + + if (discoveryWhitelist.length && !discoveryWhitelist.includes(fileName)) + continue + + console.log('[Discovery] => whitelisted', fileName, filePath) + filteredFilePaths.push({ fileName, filePath }) + } + + if (filteredFilePaths.length) { + await Promise.all( + filteredFilePaths.map(async ({ fileName, filePath }) => { + try { + const module = await import(filePath) + const discoverFn: DiscoveryFn = module.default + + const { accounts, mints } = await discoverFn() + + const countMintBefore = mintsSet.size + const countAccountBefore = accountsSet.size + + mints.forEach((mint) => mintsSet.add(mint)) + accounts.forEach((account) => accountsSet.add(account)) + + const countMint = mintsSet.size - countMintBefore + const countAccount = accountsSet.size - countAccountBefore + const total = countMint + countAccount + + console.log( + `[Discovery] => Added ${total} addresses [${countMint} mints] [${countAccount} accounts] from ${fileName}`, + ) + } catch (e) { + console.log(`[Discovery] => Error loading file ${fileName}`, e) + } + }), + ) + } + } catch (e) { + console.log(`[Discovery] => Error path not found: ${discoveryPath}`, e) + } + } + + return { + mints: [...mintsSet], + accounts: [...accountsSet], + } +} diff --git a/packages/token-snapshot/src/utils/utils.ts b/packages/token-snapshot/src/utils/utils.ts new file mode 100644 index 0000000..fb38ceb --- /dev/null +++ b/packages/token-snapshot/src/utils/utils.ts @@ -0,0 +1,145 @@ +import { + AlephParsedInnerInstruction, + AlephParsedInstruction, + AlephParsedParsedInstruction, + RawInstruction, +} from '@aleph-indexer/core' +import { TOKEN_PROGRAM_ID } from '../constants.js' +import { + SPLTokenRawEvent, + SPLTokenEvent, + SPLTokenEventType, + SPLTokenIncompleteEvent, +} from '../types.js' + +export function isSPLTokenInstruction( + ix: RawInstruction | AlephParsedInstruction | AlephParsedInnerInstruction, +): ix is SPLTokenRawEvent { + return ix.programId === TOKEN_PROGRAM_ID +} + +export function isParsedIx( + ix: RawInstruction | AlephParsedInstruction | AlephParsedInnerInstruction, +): ix is AlephParsedParsedInstruction { + return 'parsed' in ix +} + +export function isSPLTokenParsedInstruction( + ix: RawInstruction | AlephParsedInstruction | AlephParsedInnerInstruction, +): ix is SPLTokenRawEvent { + if (!isParsedIx(ix) || !isSPLTokenInstruction(ix)) return false + return true +} + +export function isSPLTokenMintInstruction( + ix: RawInstruction | AlephParsedInstruction | AlephParsedInnerInstruction, + mint: string, +): ix is SPLTokenRawEvent { + if (!isSPLTokenParsedInstruction(ix)) return false + return getIxMint(ix) === mint +} + +export function isSPLTokenAccountInstruction( + ix: RawInstruction | AlephParsedInstruction | AlephParsedInnerInstruction, + account: string, +): ix is SPLTokenRawEvent { + if (!isSPLTokenParsedInstruction(ix)) return false + return getIxAccounts(ix).includes(account) +} + +export function getIxMint(ix: SPLTokenRawEvent): string | undefined { + switch (ix.parsed.type) { + case SPLTokenEventType.MintTo: + case SPLTokenEventType.MintToChecked: + case SPLTokenEventType.Burn: + case SPLTokenEventType.BurnChecked: + case SPLTokenEventType.InitializeAccount: + case SPLTokenEventType.InitializeAccount2: + case SPLTokenEventType.InitializeAccount3: + case SPLTokenEventType.TransferChecked: + case SPLTokenEventType.ApproveChecked: + case SPLTokenEventType.InitializeMint: + case SPLTokenEventType.InitializeMint2: { + return ix.parsed.info.mint + } + } +} + +export function getIxAccounts(ix: SPLTokenRawEvent): string[] { + switch (ix.parsed.type) { + case SPLTokenEventType.MintTo: + case SPLTokenEventType.MintToChecked: + case SPLTokenEventType.Burn: + case SPLTokenEventType.BurnChecked: + case SPLTokenEventType.InitializeAccount: + case SPLTokenEventType.InitializeAccount2: + case SPLTokenEventType.InitializeAccount3: + case SPLTokenEventType.SetAuthority: + case SPLTokenEventType.SyncNative: + case SPLTokenEventType.CloseAccount: { + return [ix.parsed.info.account] + } + case SPLTokenEventType.Transfer: + case SPLTokenEventType.TransferChecked: { + return [ix.parsed.info.source, ix.parsed.info.destination] + } + case SPLTokenEventType.Approve: + case SPLTokenEventType.ApproveChecked: + case SPLTokenEventType.Revoke: { + return [ix.parsed.info.source] + } + } + + return [] +} + +export function getEventAccounts(event: SPLTokenIncompleteEvent): string[] { + switch (event.type) { + case SPLTokenEventType.Transfer: { + if (event.toAccount) { + return [event.account, event.toAccount] + } else { + return [event.account] + } + } + default: { + return [event.account] + } + } +} + +export function getBalanceFromEvent( + event: SPLTokenIncompleteEvent, + account: string, +): string { + switch (event.type) { + case SPLTokenEventType.Transfer: { + if (event.toAccount === account) { + return event.toBalance as string + } else { + return event.balance + } + } + default: { + return event.balance + } + } +} + +export function getMintAndOwnerFromEvent( + event: SPLTokenEvent, + account: string, +): { mint: string; owner?: string } { + switch (event.type) { + case SPLTokenEventType.Transfer: { + if (event.toAccount === account) { + return { mint: event.mint, owner: event.toOwner } + } else { + return { mint: event.mint, owner: event.owner } + } + } + default: { + return { mint: event.mint, owner: event.owner } + } + } +} diff --git a/packages/token-snapshot/tsconfig.json b/packages/token-snapshot/tsconfig.json new file mode 100644 index 0000000..2c2914c --- /dev/null +++ b/packages/token-snapshot/tsconfig.json @@ -0,0 +1,16 @@ +{ + "extends": "../../tsconfig.json", + "compilerOptions": { + "outDir": "dist" + }, + "exclude": [ + "node_modules", + "dist", + "scripts", + "tests", + "**/*.spec.ts", + "**/*.test.ts", + "**/__tests__", + "**/__mocks__" + ] +} \ No newline at end of file diff --git a/packages/token-snapshot/types.d.ts b/packages/token-snapshot/types.d.ts new file mode 100644 index 0000000..00b16af --- /dev/null +++ b/packages/token-snapshot/types.d.ts @@ -0,0 +1 @@ +export * from '../../types' From 23347b9e8cb7ef761c379a6b5be6842dcb9f9d16 Mon Sep 17 00:00:00 2001 From: Mike Hukiewitz Date: Mon, 23 Jan 2023 20:26:18 +0100 Subject: [PATCH 02/10] fix getting snapshot at timestamp --- packages/token-snapshot/src/api/schema.ts | 3 ++- packages/token-snapshot/src/api/types.ts | 4 ++- .../token-snapshot/src/dal/balanceHistory.ts | 21 +++------------- .../token-snapshot/src/dal/balanceState.ts | 10 -------- packages/token-snapshot/src/domain/mint.ts | 25 +++++++++++++------ packages/token-snapshot/src/domain/worker.ts | 7 +++--- packages/token-snapshot/src/types.ts | 2 +- 7 files changed, 30 insertions(+), 42 deletions(-) diff --git a/packages/token-snapshot/src/api/schema.ts b/packages/token-snapshot/src/api/schema.ts index bfa8ae1..7ee7b5b 100644 --- a/packages/token-snapshot/src/api/schema.ts +++ b/packages/token-snapshot/src/api/schema.ts @@ -6,6 +6,7 @@ import { GraphQLInt, GraphQLBoolean, } from 'graphql' +import { GraphQLLong } from '@aleph-indexer/core' import { IndexerAPISchema } from '@aleph-indexer/framework' import * as Types from './types.js' import { APIResolver, TokenEventsFilters } from './resolvers.js' @@ -31,7 +32,7 @@ export default class APISchema extends IndexerAPISchema { type: Types.TokenHolders, args: { mint: { type: new GraphQLNonNull(GraphQLString) }, - timestamp: { type: GraphQLInt }, + timestamp: { type: GraphQLLong }, limit: { type: GraphQLInt }, skip: { type: GraphQLInt }, reverse: { type: GraphQLBoolean }, diff --git a/packages/token-snapshot/src/api/types.ts b/packages/token-snapshot/src/api/types.ts index bc104bf..9adcb0f 100644 --- a/packages/token-snapshot/src/api/types.ts +++ b/packages/token-snapshot/src/api/types.ts @@ -29,6 +29,7 @@ export const TokenBalances = new GraphQLObjectType({ solend: { type: GraphQLString }, port: { type: GraphQLString }, larix: { type: GraphQLString }, + total: { type: GraphQLString }, }, }) @@ -37,7 +38,8 @@ export const TokenBalances = new GraphQLObjectType({ export const TokenHolder = new GraphQLObjectType({ name: 'TokenHolder', fields: { - holderAccount: { type: GraphQLString }, + account: { type: new GraphQLNonNull(GraphQLString) }, + owner: { type: new GraphQLNonNull(GraphQLString) }, tokenMint: { type: new GraphQLNonNull(GraphQLString) }, balances: { type: new GraphQLNonNull(TokenBalances) }, timestamp: { type: new GraphQLNonNull(GraphQLString) }, diff --git a/packages/token-snapshot/src/dal/balanceHistory.ts b/packages/token-snapshot/src/dal/balanceHistory.ts index cf679af..a62897f 100644 --- a/packages/token-snapshot/src/dal/balanceHistory.ts +++ b/packages/token-snapshot/src/dal/balanceHistory.ts @@ -1,11 +1,8 @@ -import BN from 'bn.js' import { EntityStorage } from '@aleph-indexer/core' import { SPLTokenHolding } from '../types.js' -const mappedProps = ['balance'] - export enum BalanceHistoryDALIndex { - AccountTimestamp = 'account_timestamp', + MintAccount = 'mint_account', } export type AccountBalanceHistoryStorage = EntityStorage @@ -34,21 +31,9 @@ export function createBalanceHistoryDAL( key: [mintKey, accountKey, timestampKey], indexes: [ { - name: BalanceHistoryDALIndex.AccountTimestamp, - key: [accountKey, timestampKey], + name: BalanceHistoryDALIndex.MintAccount, + key: [mintKey, accountKey], }, ], - mapFn: async function (entry: { key: any; value: any }) { - const { key, value } = entry - - // @note: Stored as hex strings (bn.js "toJSON" method), so we need to cast them to BN always - for (const prop of mappedProps) { - if (!(prop in value)) continue - if ((value as any)[prop] instanceof BN) continue - ;(value as any)[prop] = new BN((value as any)[prop], 'hex') - } - - return { key, value } - }, }) } diff --git a/packages/token-snapshot/src/dal/balanceState.ts b/packages/token-snapshot/src/dal/balanceState.ts index 6eb8b7c..e87597a 100644 --- a/packages/token-snapshot/src/dal/balanceState.ts +++ b/packages/token-snapshot/src/dal/balanceState.ts @@ -3,7 +3,6 @@ import { SPLTokenHolding } from '../types.js' export enum BalanceStateDALIndex { Mint = 'mint', - BalanceAccount = 'balance_account', } export type AccountBalanceStateStorage = EntityStorage @@ -18,11 +17,6 @@ const mintKey = { length: EntityStorage.AddressLength, } -const balanceKey = { - get: (e: SPLTokenHolding) => e.balances.total, - length: EntityStorage.TimestampLength, -} - export function createBalanceStateDAL( path: string, ): AccountBalanceStateStorage { @@ -35,10 +29,6 @@ export function createBalanceStateDAL( name: BalanceStateDALIndex.Mint, key: [mintKey], }, - { - name: BalanceStateDALIndex.BalanceAccount, - key: [mintKey, balanceKey], - }, ], async updateCheckFn( oldEntity: SPLTokenHolding | undefined, diff --git a/packages/token-snapshot/src/domain/mint.ts b/packages/token-snapshot/src/domain/mint.ts index 615ec9e..e63f718 100644 --- a/packages/token-snapshot/src/domain/mint.ts +++ b/packages/token-snapshot/src/domain/mint.ts @@ -65,19 +65,28 @@ export class Mint { if (timestamp) { for await (const value of currentBalances) { - const snapshotBalance = await this.balanceHistoryDAL - .useIndex(BalanceHistoryDALIndex.AccountTimestamp) - .getLastValueFromTo( - [value.holderAccount ?? value.account, 0], - [value.holderAccount ?? value.account, timestamp], + const snapshotBalances = await this.balanceHistoryDAL + .useIndex(BalanceHistoryDALIndex.MintAccount) + .getAllValuesFromTo( + [this.address, value.account], + [this.address, value.account], ) - const balance = this.filterBalance(snapshotBalance, gteBn, lteBn) - if (!balance) continue + let snapshotBalance: SPLTokenHolding | undefined + for await (const balance of snapshotBalances) { + if ( + balance.timestamp < timestamp && + (!snapshotBalance || balance.timestamp > snapshotBalance.timestamp) + ) { + snapshotBalance = balance + } + } + snapshotBalance = this.filterBalance(snapshotBalance, gteBn, lteBn) + if (!snapshotBalance) continue // @note: Skip first N events if (--skip >= 0) continue - result.push(value) + result.push(snapshotBalance) // @note: Stop when after reaching the limit if (limit > 0 && result.length >= limit) return result diff --git a/packages/token-snapshot/src/domain/worker.ts b/packages/token-snapshot/src/domain/worker.ts index 1e56ade..0cca9ba 100644 --- a/packages/token-snapshot/src/domain/worker.ts +++ b/packages/token-snapshot/src/domain/worker.ts @@ -184,8 +184,9 @@ export default class WorkerDomain if (parsedEvents.length > 0) { await this.eventDAL.save(parsedEvents) - const lastEvent = parsedEvents[0] - await this.dealBalances(lastEvent) + for (const parsedEvent of parsedEvents) { + await this.dealBalances(parsedEvent) + } } if (works.length > 0) { await this.accountMints.addWork(works) @@ -233,7 +234,7 @@ export default class WorkerDomain return { account, tokenMint: entity.mint, - holderAccount: entity.owner, + owner: entity.owner, balances: { wallet: balance, total: balance, diff --git a/packages/token-snapshot/src/types.ts b/packages/token-snapshot/src/types.ts index f584bd8..2fc882b 100644 --- a/packages/token-snapshot/src/types.ts +++ b/packages/token-snapshot/src/types.ts @@ -794,7 +794,7 @@ export type Balances = { export type SPLTokenHolding = { account: string tokenMint: string - holderAccount?: string + owner?: string balances: Balances timestamp: number } From 079aa699de1eb5deec655a6dde49595dd82a1f0e Mon Sep 17 00:00:00 2001 From: Mike Hukiewitz Date: Mon, 23 Jan 2023 21:03:55 +0100 Subject: [PATCH 03/10] extend README.md of token-snapshot --- .env.defaults | 4 +- packages/token-snapshot/README.md | 61 +++++++++++++++++++++++++++---- 2 files changed, 56 insertions(+), 9 deletions(-) diff --git a/.env.defaults b/.env.defaults index 4a55e88..70bbb74 100644 --- a/.env.defaults +++ b/.env.defaults @@ -1,6 +1,6 @@ SOLANA_RPC=http://solrpc1.aleph.cloud:7725/ -INDEXER=spl-token -SPL_TOKEN_MINTS=kinXdEcpDQeHPEuQnqmUgtYykqKGVFq6CeVX5iAHJq6 +INDEXER=token-snapshot +SPL_TOKEN_MINTS=mSoLzYCxHdYgdzU16g5QSh3i5K3z3KZK7ytfqcJm7So SOLANA_MAIN_PUBLIC_RPC=https://api.mainnet-beta.solana.com # 16 GB RAM for node.js diff --git a/packages/token-snapshot/README.md b/packages/token-snapshot/README.md index 1a565f1..feaf0a4 100644 --- a/packages/token-snapshot/README.md +++ b/packages/token-snapshot/README.md @@ -1,21 +1,68 @@ -# SPL Token Indexer +# SPL Token Snapshot ## Configuration Set the `SPL_TOKEN_MINTS` environment variable with the token mints -separated by comas to index these tokens, and set the `SPL_TOKEN_ACCOUNTS` -environment variable with the account's addresses separated by comas to also -index it. +separated by comas to index these tokens, similar to the [SPL Token](https://github.com/aleph-im/solana-indexer-library/tree/main/packages/spl-token) indexer. +You can also set the `SPL_TOKEN_ACCOUNTS` environment variable with the specific accounts you want to index. ### Example -Index KIN token mint +To index the mSOL token balances, set the `SPL_TOKEN_MINTS` environment variable to: ``` sh -SPL_TOKEN_MINTS=kinXdEcpDQeHPEuQnqmUgtYykqKGVFq6CeVX5iAHJq6 +SPL_TOKEN_MINTS=mSoLzYCxHdYgdzU16g5QSh3i5K3z3KZK7ytfqcJm7So ``` -### Deploying the indexer +Currently, the [.env.default](https://github.com/MHHukiewitz/solana-indexer-library/blob/feat/token-snapshot/.env.defaults) +file is configured to index the mSOL token mint with the `token-snapshot` indexer. +Therefore, you can just run + +``` sh +npm run start token-snapshot +``` + +from the root of the project to start the indexer locally. A GraphiQL interface will be available at http://localhost:8080. + +It will take a while to index all the accounts, but you can see the progress when querying: + +``` graphql +accountState{ + account + accurate + progress + pending + processed +} +``` + +To get all the balances of accounts with at least 1 lamport of the token on Sun Jan 01 2023 00:00:00 GMT+0000, you can +query: + +``` graphql + tokenHolders( + gte: "1", + mint: "mSoLzYCxHdYgdzU16g5QSh3i5K3z3KZK7ytfqcJm7So" + timestamp: 1672531200000 + ) { + timestamp + owner + account + balances { + total + } + } +``` + +### ToDos + +- [ ] Add indicator whether an account belongs to a Solana program +- [ ] Add parsing of lending program instructions to also index the collateral and borrow balances + - [ ] Solend + - [ ] Port + - [ ] Larix + +## Deploying the indexer Follow the guide of the main [README.md](https://github.com/aleph-im/solana-indexer-library/blob/main/README.md) file to publish it in Aleph.IM network using different methods. From d0841017b77c4bc5d3436505787a87dcbe383fff Mon Sep 17 00:00:00 2001 From: Mike Hukiewitz Date: Mon, 23 Jan 2023 22:20:09 +0100 Subject: [PATCH 04/10] remove clean action --- .github/workflows/main.yml | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 62aa221..2837276 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -3,12 +3,12 @@ on: types: [ labeled ] jobs: - clean: - if: ${{ github.event.label.name == 'deploy' }} - runs-on: ubuntu-latest - steps: - - name: Cleanup Artifacts - uses: glassechidna/artifact-cleaner@master +# clean: +# if: ${{ github.event.label.name == 'deploy' }} +# runs-on: ubuntu-latest +# steps: +# - name: Cleanup Artifacts +# uses: glassechidna/artifact-cleaner@master build: if: ${{ github.event.label.name == 'deploy' }} From df49f4d87eb494a14681082294ff3edc0d669a95 Mon Sep 17 00:00:00 2001 From: Mike Hukiewitz Date: Mon, 23 Jan 2023 22:27:10 +0100 Subject: [PATCH 05/10] fix workflow --- .github/workflows/main.yml | 7 ------- 1 file changed, 7 deletions(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 2837276..aeed7e2 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -3,13 +3,6 @@ on: types: [ labeled ] jobs: -# clean: -# if: ${{ github.event.label.name == 'deploy' }} -# runs-on: ubuntu-latest -# steps: -# - name: Cleanup Artifacts -# uses: glassechidna/artifact-cleaner@master - build: if: ${{ github.event.label.name == 'deploy' }} runs-on: ubuntu-latest From 495e0f4aeb70deb36cf7b7e8f26f0649944eb773 Mon Sep 17 00:00:00 2001 From: Mike Hukiewitz Date: Mon, 23 Jan 2023 22:28:19 +0100 Subject: [PATCH 06/10] fix workflow2 --- .github/workflows/main.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index aeed7e2..8aa70da 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -7,7 +7,6 @@ jobs: if: ${{ github.event.label.name == 'deploy' }} runs-on: ubuntu-latest name: Build the indexer image - needs: clean steps: - name: Checkout uses: actions/checkout@v3 From a01900a2bae44b2f93538ba88566c830694e4b33 Mon Sep 17 00:00:00 2001 From: Mike Hukiewitz Date: Mon, 23 Jan 2023 23:51:37 +0100 Subject: [PATCH 07/10] fix docker-compose.yaml --- packages/token-snapshot/docker-compose.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/token-snapshot/docker-compose.yaml b/packages/token-snapshot/docker-compose.yaml index f23aad6..ae66d98 100644 --- a/packages/token-snapshot/docker-compose.yaml +++ b/packages/token-snapshot/docker-compose.yaml @@ -11,8 +11,8 @@ services: - ../../.env - ./.env environment: - - INDEXER=spl-token - - SPL_TOKEN_MINTS=kinXdEcpDQeHPEuQnqmUgtYykqKGVFq6CeVX5iAHJq6 + - INDEXER=token-snapshot + - SPL_TOKEN_MINTS=mSoLzYCxHdYgdzU16g5QSh3i5K3z3KZK7ytfqcJm7So - SOLANA_RPC=http://solrpc1.aleph.cloud:7725/ - - INDEXER_INSTANCES=1 # Important to return the correct data for every mint + - INDEXER_INSTANCES=1 network_mode: bridge From 63eac8ab4a2465895a6be59ffecd726e56ce5a16 Mon Sep 17 00:00:00 2001 From: Mike Hukiewitz Date: Tue, 24 Jan 2023 13:06:37 +0100 Subject: [PATCH 08/10] improve snapshot retrieval speed --- packages/token-snapshot/src/domain/mint.ts | 19 ++++--------------- 1 file changed, 4 insertions(+), 15 deletions(-) diff --git a/packages/token-snapshot/src/domain/mint.ts b/packages/token-snapshot/src/domain/mint.ts index e63f718..ea43a95 100644 --- a/packages/token-snapshot/src/domain/mint.ts +++ b/packages/token-snapshot/src/domain/mint.ts @@ -65,21 +65,10 @@ export class Mint { if (timestamp) { for await (const value of currentBalances) { - const snapshotBalances = await this.balanceHistoryDAL - .useIndex(BalanceHistoryDALIndex.MintAccount) - .getAllValuesFromTo( - [this.address, value.account], - [this.address, value.account], - ) - let snapshotBalance: SPLTokenHolding | undefined - for await (const balance of snapshotBalances) { - if ( - balance.timestamp < timestamp && - (!snapshotBalance || balance.timestamp > snapshotBalance.timestamp) - ) { - snapshotBalance = balance - } - } + let snapshotBalance = await this.balanceHistoryDAL.getLastValueFromTo( + [this.address, value.account, 0], + [this.address, value.account, timestamp], + ) snapshotBalance = this.filterBalance(snapshotBalance, gteBn, lteBn) if (!snapshotBalance) continue From a3a0ccbdacc5e5b8a794fb91b3dc9d24a4c15847 Mon Sep 17 00:00:00 2001 From: Mike Hukiewitz Date: Tue, 24 Jan 2023 15:00:28 +0100 Subject: [PATCH 09/10] make types BN and expand lending balances --- .env.defaults | 1 + packages/token-snapshot/src/api/types.ts | 19 +++++-- .../token-snapshot/src/dal/balanceHistory.ts | 4 ++ .../token-snapshot/src/dal/balanceState.ts | 5 +- packages/token-snapshot/src/dal/common.ts | 18 ++++++ packages/token-snapshot/src/dal/event.ts | 15 +---- packages/token-snapshot/src/domain/mint.ts | 2 +- packages/token-snapshot/src/domain/worker.ts | 57 ++++++++++++++++++- packages/token-snapshot/src/types.ts | 15 +++-- packages/token-snapshot/src/utils/utils.ts | 9 +-- 10 files changed, 113 insertions(+), 32 deletions(-) create mode 100644 packages/token-snapshot/src/dal/common.ts diff --git a/.env.defaults b/.env.defaults index 70bbb74..2b7486d 100644 --- a/.env.defaults +++ b/.env.defaults @@ -1,6 +1,7 @@ SOLANA_RPC=http://solrpc1.aleph.cloud:7725/ INDEXER=token-snapshot SPL_TOKEN_MINTS=mSoLzYCxHdYgdzU16g5QSh3i5K3z3KZK7ytfqcJm7So +SPL_TOKEN_ACCOUNTS=CrR7DS7A8ABSsHwx92K3b6bD1moBzn5SpWf2ske8bqML SOLANA_MAIN_PUBLIC_RPC=https://api.mainnet-beta.solana.com # 16 GB RAM for node.js diff --git a/packages/token-snapshot/src/api/types.ts b/packages/token-snapshot/src/api/types.ts index 9adcb0f..1fd1139 100644 --- a/packages/token-snapshot/src/api/types.ts +++ b/packages/token-snapshot/src/api/types.ts @@ -4,7 +4,7 @@ import { GraphQLNonNull, GraphQLList, } from 'graphql' -import { TokenType } from '@aleph-indexer/core' +import { TokenType, GraphQLBigNumber } from '@aleph-indexer/core' // ------------------- TOKENS -------------------------- @@ -21,15 +21,22 @@ export const TokenMint = new GraphQLObjectType({ export const TokenMints = new GraphQLList(TokenMint) // ------------------- HOLDERS -------------------------- +export const LendingBalance = new GraphQLObjectType({ + name: 'LendingBalance', + fields: { + deposited: { type: new GraphQLNonNull(GraphQLBigNumber) }, + borrowed: { type: new GraphQLNonNull(GraphQLBigNumber) }, + }, +}) export const TokenBalances = new GraphQLObjectType({ name: 'TokenBalances', fields: { - wallet: { type: new GraphQLNonNull(GraphQLString) }, - solend: { type: GraphQLString }, - port: { type: GraphQLString }, - larix: { type: GraphQLString }, - total: { type: GraphQLString }, + wallet: { type: new GraphQLNonNull(GraphQLBigNumber) }, + solend: { type: new GraphQLNonNull(LendingBalance) }, + port: { type: new GraphQLNonNull(LendingBalance) }, + larix: { type: new GraphQLNonNull(LendingBalance) }, + total: { type: new GraphQLNonNull(GraphQLBigNumber) }, }, }) diff --git a/packages/token-snapshot/src/dal/balanceHistory.ts b/packages/token-snapshot/src/dal/balanceHistory.ts index a62897f..df0d3b7 100644 --- a/packages/token-snapshot/src/dal/balanceHistory.ts +++ b/packages/token-snapshot/src/dal/balanceHistory.ts @@ -1,5 +1,8 @@ import { EntityStorage } from '@aleph-indexer/core' import { SPLTokenHolding } from '../types.js' +import { getBigNumberMapFn } from './common.js' + +const mappedProps = ['deposited', 'borrowed', 'wallet', 'total'] export enum BalanceHistoryDALIndex { MintAccount = 'mint_account', @@ -35,5 +38,6 @@ export function createBalanceHistoryDAL( key: [mintKey, accountKey], }, ], + mapFn: getBigNumberMapFn(mappedProps), }) } diff --git a/packages/token-snapshot/src/dal/balanceState.ts b/packages/token-snapshot/src/dal/balanceState.ts index e87597a..ed23b69 100644 --- a/packages/token-snapshot/src/dal/balanceState.ts +++ b/packages/token-snapshot/src/dal/balanceState.ts @@ -1,5 +1,8 @@ import { EntityStorage, EntityUpdateOp } from '@aleph-indexer/core' import { SPLTokenHolding } from '../types.js' +import { getBigNumberMapFn } from './common.js' + +const mappedProps = ['deposited', 'borrowed', 'wallet', 'total'] export enum BalanceStateDALIndex { Mint = 'mint', @@ -39,6 +42,6 @@ export function createBalanceStateDAL( } return EntityUpdateOp.Update }, - // @todo: maybe calculate total on insert/update? + mapFn: getBigNumberMapFn(mappedProps), }) } diff --git a/packages/token-snapshot/src/dal/common.ts b/packages/token-snapshot/src/dal/common.ts new file mode 100644 index 0000000..7dc4da4 --- /dev/null +++ b/packages/token-snapshot/src/dal/common.ts @@ -0,0 +1,18 @@ +import BN from 'bn.js' + +export function getBigNumberMapFn( + mappedProps: string[], +): (arg0: any) => Promise { + return async function (entry: { key: any; value: any }) { + const { key, value } = entry + + // @note: Stored as hex strings (bn.js "toJSON" method), so we need to cast them to BN always + for (const prop of mappedProps) { + if (!(prop in value)) continue + if ((value as any)[prop] instanceof BN) continue + ;(value as any)[prop] = new BN((value as any)[prop], 'hex') + } + + return { key, value } + } +} diff --git a/packages/token-snapshot/src/dal/event.ts b/packages/token-snapshot/src/dal/event.ts index b20f410..1427a20 100644 --- a/packages/token-snapshot/src/dal/event.ts +++ b/packages/token-snapshot/src/dal/event.ts @@ -1,6 +1,6 @@ -import BN from 'bn.js' import { EntityStorage } from '@aleph-indexer/core' import { SPLTokenEvent } from '../types.js' +import { getBigNumberMapFn } from './common.js' const mappedProps = ['balance'] @@ -46,17 +46,6 @@ export function createEventDAL(path: string): EventStorage { key: [accountKey, typeKey, timestampKey], }, ], - mapFn: async function (entry: { key: any; value: any }) { - const { key, value } = entry - - // @note: Stored as hex strings (bn.js "toJSON" method), so we need to cast them to BN always - for (const prop of mappedProps) { - if (!(prop in value)) continue - if ((value as any)[prop] instanceof BN) continue - ;(value as any)[prop] = new BN((value as any)[prop], 'hex') - } - - return { key, value } - }, + mapFn: getBigNumberMapFn(mappedProps), }) } diff --git a/packages/token-snapshot/src/domain/mint.ts b/packages/token-snapshot/src/domain/mint.ts index ea43a95..d0ee60c 100644 --- a/packages/token-snapshot/src/domain/mint.ts +++ b/packages/token-snapshot/src/domain/mint.ts @@ -107,7 +107,7 @@ export class Mint { // @note: Filter by gte || lte if (gteBn || lteBn) { - const balanceBN = new BN(balance.balances.total) + const balanceBN = balance.balances.total if (gteBn && balanceBN.lte(gteBn)) return undefined if (lteBn && balanceBN.gte(lteBn)) return undefined diff --git a/packages/token-snapshot/src/domain/worker.ts b/packages/token-snapshot/src/domain/worker.ts index 0cca9ba..51e318d 100644 --- a/packages/token-snapshot/src/domain/worker.ts +++ b/packages/token-snapshot/src/domain/worker.ts @@ -1,3 +1,4 @@ +import BN from 'bn.js' import { AccountIndexerConfigWithMeta, AccountStatsFilters, @@ -34,6 +35,7 @@ import { MintAccount, TokenHoldersFilters } from './types.js' import { createBalanceHistoryDAL } from '../dal/balanceHistory.js' import { createBalanceStateDAL } from '../dal/balanceState.js' import { createAccountMintDAL } from '../dal/accountMints.js' +import assert from 'assert' export default class WorkerDomain extends IndexerWorkerDomain @@ -185,7 +187,7 @@ export default class WorkerDomain await this.eventDAL.save(parsedEvents) for (const parsedEvent of parsedEvents) { - await this.dealBalances(parsedEvent) + await this.dealWalletBalances(parsedEvent) } } if (works.length > 0) { @@ -227,7 +229,7 @@ export default class WorkerDomain } } - protected async dealBalances(entity: SPLTokenEvent): Promise { + protected async dealLendingBalances(entity: SPLTokenEvent): Promise { const accounts = getEventAccounts(entity) const entities = accounts.map((account) => { const balance = getBalanceFromEvent(entity, account) @@ -245,4 +247,55 @@ export default class WorkerDomain await this.balanceHistoryDAL.save(entities) await this.balanceStateDAL.save(entities) } + + protected async dealWalletBalances( + entity: SPLTokenEvent, + ): Promise { + const accounts = getEventAccounts(entity) + const entities = await Promise.all( + accounts.map(async (account) => { + const balance = getBalanceFromEvent(entity, account) + const previousBalance = await this.balanceHistoryDAL.getLastValueFromTo( + [entity.mint, account, 0], + [entity.mint, account, entity.timestamp], + ) + const solend = { + deposited: previousBalance?.balances.solend.deposited || new BN(0), + borrowed: previousBalance?.balances.solend.borrowed || new BN(0), + } + const port = { + deposited: previousBalance?.balances.port.deposited || new BN(0), + borrowed: previousBalance?.balances.port.borrowed || new BN(0), + } + const larix = { + deposited: previousBalance?.balances.larix.deposited || new BN(0), + borrowed: previousBalance?.balances.larix.borrowed || new BN(0), + } + // @note: The total is the sum of the wallet balance and the deposited amounts. The borrowed amounts are subtracted. + const total = balance + .add(solend.deposited) + .add(port.deposited) + .add(larix.deposited) + .sub(solend.borrowed) + .sub(port.borrowed) + .sub(larix.borrowed) + return { + account, + tokenMint: entity.mint, + owner: entity.owner, + balances: { + wallet: balance, + solend, + port, + larix, + total: total, + }, + timestamp: entity.timestamp, + } as SPLTokenHolding + }), + ) + await this.balanceHistoryDAL.save(entities) + await this.balanceStateDAL.save(entities) + return entities + } } diff --git a/packages/token-snapshot/src/types.ts b/packages/token-snapshot/src/types.ts index 2fc882b..4f4fb8f 100644 --- a/packages/token-snapshot/src/types.ts +++ b/packages/token-snapshot/src/types.ts @@ -783,12 +783,17 @@ export type LiquidateObligation2Event = LendingEventBase & // ----------------------------- HOLDINGS ----------------------------------- +export type LendingBalance = { + deposited: BN + borrowed: BN +} + export type Balances = { - wallet: string - solend?: string - port?: string - larix?: string - total: string + wallet: BN + solend: LendingBalance + port: LendingBalance + larix: LendingBalance + total: BN } export type SPLTokenHolding = { diff --git a/packages/token-snapshot/src/utils/utils.ts b/packages/token-snapshot/src/utils/utils.ts index fb38ceb..44c7747 100644 --- a/packages/token-snapshot/src/utils/utils.ts +++ b/packages/token-snapshot/src/utils/utils.ts @@ -11,6 +11,7 @@ import { SPLTokenEventType, SPLTokenIncompleteEvent, } from '../types.js' +import BN from 'bn.js' export function isSPLTokenInstruction( ix: RawInstruction | AlephParsedInstruction | AlephParsedInnerInstruction, @@ -111,17 +112,17 @@ export function getEventAccounts(event: SPLTokenIncompleteEvent): string[] { export function getBalanceFromEvent( event: SPLTokenIncompleteEvent, account: string, -): string { +): BN { switch (event.type) { case SPLTokenEventType.Transfer: { if (event.toAccount === account) { - return event.toBalance as string + return new BN(event.toBalance) } else { - return event.balance + return new BN(event.balance) } } default: { - return event.balance + return new BN(event.balance) } } } From 2ac80a48bed5a97186f98cae052735e3787d0653 Mon Sep 17 00:00:00 2001 From: Mike Hukiewitz Date: Tue, 24 Jan 2023 15:08:36 +0100 Subject: [PATCH 10/10] store BNs as string in LevelDB --- packages/token-snapshot/src/domain/mint.ts | 2 +- packages/token-snapshot/src/domain/worker.ts | 27 ++++++++++---------- packages/token-snapshot/src/types.ts | 8 +++--- packages/token-snapshot/src/utils/utils.ts | 8 +++--- 4 files changed, 23 insertions(+), 22 deletions(-) diff --git a/packages/token-snapshot/src/domain/mint.ts b/packages/token-snapshot/src/domain/mint.ts index d0ee60c..ea43a95 100644 --- a/packages/token-snapshot/src/domain/mint.ts +++ b/packages/token-snapshot/src/domain/mint.ts @@ -107,7 +107,7 @@ export class Mint { // @note: Filter by gte || lte if (gteBn || lteBn) { - const balanceBN = balance.balances.total + const balanceBN = new BN(balance.balances.total) if (gteBn && balanceBN.lte(gteBn)) return undefined if (lteBn && balanceBN.gte(lteBn)) return undefined diff --git a/packages/token-snapshot/src/domain/worker.ts b/packages/token-snapshot/src/domain/worker.ts index 51e318d..29194c2 100644 --- a/packages/token-snapshot/src/domain/worker.ts +++ b/packages/token-snapshot/src/domain/worker.ts @@ -260,25 +260,26 @@ export default class WorkerDomain [entity.mint, account, entity.timestamp], ) const solend = { - deposited: previousBalance?.balances.solend.deposited || new BN(0), - borrowed: previousBalance?.balances.solend.borrowed || new BN(0), + deposited: previousBalance?.balances.solend.deposited || '0', + borrowed: previousBalance?.balances.solend.borrowed || '0', } const port = { - deposited: previousBalance?.balances.port.deposited || new BN(0), - borrowed: previousBalance?.balances.port.borrowed || new BN(0), + deposited: previousBalance?.balances.port.deposited || '0', + borrowed: previousBalance?.balances.port.borrowed || '0', } const larix = { - deposited: previousBalance?.balances.larix.deposited || new BN(0), - borrowed: previousBalance?.balances.larix.borrowed || new BN(0), + deposited: previousBalance?.balances.larix.deposited || '0', + borrowed: previousBalance?.balances.larix.borrowed || '0', } // @note: The total is the sum of the wallet balance and the deposited amounts. The borrowed amounts are subtracted. - const total = balance - .add(solend.deposited) - .add(port.deposited) - .add(larix.deposited) - .sub(solend.borrowed) - .sub(port.borrowed) - .sub(larix.borrowed) + const total = new BN(balance) + .add(new BN(solend.deposited)) + .add(new BN(port.deposited)) + .add(new BN(larix.deposited)) + .sub(new BN(solend.borrowed)) + .sub(new BN(port.borrowed)) + .sub(new BN(larix.borrowed)) + .toString() return { account, tokenMint: entity.mint, diff --git a/packages/token-snapshot/src/types.ts b/packages/token-snapshot/src/types.ts index 4f4fb8f..3068cb5 100644 --- a/packages/token-snapshot/src/types.ts +++ b/packages/token-snapshot/src/types.ts @@ -784,16 +784,16 @@ export type LiquidateObligation2Event = LendingEventBase & // ----------------------------- HOLDINGS ----------------------------------- export type LendingBalance = { - deposited: BN - borrowed: BN + deposited: string + borrowed: string } export type Balances = { - wallet: BN + wallet: string solend: LendingBalance port: LendingBalance larix: LendingBalance - total: BN + total: string } export type SPLTokenHolding = { diff --git a/packages/token-snapshot/src/utils/utils.ts b/packages/token-snapshot/src/utils/utils.ts index 44c7747..4affc17 100644 --- a/packages/token-snapshot/src/utils/utils.ts +++ b/packages/token-snapshot/src/utils/utils.ts @@ -112,17 +112,17 @@ export function getEventAccounts(event: SPLTokenIncompleteEvent): string[] { export function getBalanceFromEvent( event: SPLTokenIncompleteEvent, account: string, -): BN { +): string { switch (event.type) { case SPLTokenEventType.Transfer: { if (event.toAccount === account) { - return new BN(event.toBalance) + return event.toBalance as string } else { - return new BN(event.balance) + return event.balance } } default: { - return new BN(event.balance) + return event.balance } } }