diff --git a/db/migrations/1653131550969-Data.js b/db/migrations/1653131550969-Data.js new file mode 100644 index 0000000..825b8c9 --- /dev/null +++ b/db/migrations/1653131550969-Data.js @@ -0,0 +1,29 @@ +module.exports = class Data1653131550969 { + name = 'Data1653131550969' + + async up(db) { + await db.query(`CREATE TABLE "offer_event" ("id" character varying NOT NULL, "block_number" numeric, "caller" text NOT NULL, "current_owner" text, "interaction" character varying(6) NOT NULL, "meta" text NOT NULL, "timestamp" TIMESTAMP WITH TIME ZONE NOT NULL, "offer_id" character varying NOT NULL, CONSTRAINT "PK_292fd2efd338dfd5d627a4310e3" PRIMARY KEY ("id"))`) + await db.query(`CREATE INDEX "IDX_0cbe3e93f04317e2e80d29affc" ON "offer_event" ("offer_id") `) + await db.query(`ALTER TABLE "offer" ADD "created_at" TIMESTAMP WITH TIME ZONE NOT NULL`) + await db.query(`ALTER TABLE "offer" ADD "status" character varying(9) NOT NULL`) + await db.query(`ALTER TABLE "offer" ADD "updated_at" TIMESTAMP WITH TIME ZONE`) + await db.query(`ALTER TABLE "collection_event" DROP COLUMN "interaction"`) + await db.query(`ALTER TABLE "collection_event" ADD "interaction" character varying(11) NOT NULL`) + await db.query(`ALTER TABLE "event" DROP COLUMN "interaction"`) + await db.query(`ALTER TABLE "event" ADD "interaction" character varying(11) NOT NULL`) + await db.query(`ALTER TABLE "offer_event" ADD CONSTRAINT "FK_0cbe3e93f04317e2e80d29affc2" FOREIGN KEY ("offer_id") REFERENCES "offer"("id") ON DELETE NO ACTION ON UPDATE NO ACTION`) + } + + async down(db) { + await db.query(`DROP TABLE "offer_event"`) + await db.query(`DROP INDEX "public"."IDX_0cbe3e93f04317e2e80d29affc"`) + await db.query(`ALTER TABLE "offer" DROP COLUMN "created_at"`) + await db.query(`ALTER TABLE "offer" DROP COLUMN "status"`) + await db.query(`ALTER TABLE "offer" DROP COLUMN "updated_at"`) + await db.query(`ALTER TABLE "collection_event" ADD "interaction" character varying(12) NOT NULL`) + await db.query(`ALTER TABLE "collection_event" DROP COLUMN "interaction"`) + await db.query(`ALTER TABLE "event" ADD "interaction" character varying(12) NOT NULL`) + await db.query(`ALTER TABLE "event" DROP COLUMN "interaction"`) + await db.query(`ALTER TABLE "offer_event" DROP CONSTRAINT "FK_0cbe3e93f04317e2e80d29affc2"`) + } +} diff --git a/justfile b/justfile index 850ae97..45a612b 100644 --- a/justfile +++ b/justfile @@ -53,19 +53,19 @@ test: npm run test:unit improve TAG: - npx sqd squid:update snek@{{TAG}} + npx sqd squid:update snekk@{{TAG}} release TAG: - npx sqd squid:release snek@{{TAG}} + npx sqd squid:release snekk@{{TAG}} kill TAG: - npx sqd squid:kill "snek@{{TAG}}" + npx sqd squid:kill snekk@{{TAG}} exec: docker exec -it snek-db-1 psql -U postgres -d squid update-deps: - npx taze + npx npm-check-updates -u where-chain: echo "https://polkadot.js.org/apps/?rpc=wss%3A%2F%2Fbasilisk-kodadot.hydration.cloud#/explorer" | pbcopy \ No newline at end of file diff --git a/package-lock.json b/package-lock.json index dd46c4a..a9bcf7e 100644 --- a/package-lock.json +++ b/package-lock.json @@ -8,24 +8,24 @@ "name": "@kodadot1/snek", "version": "0.0.1-rc.0", "dependencies": { - "@subsquid/archive-registry": "^0.0.4", - "@subsquid/cli": "^0.2.1", - "@subsquid/graphql-server": "^0.1.5", + "@subsquid/archive-registry": "^0.0.6", + "@subsquid/cli": "^0.4.1", + "@subsquid/graphql-server": "^0.3.0", "@subsquid/ss58": "^0.1.0", - "@subsquid/substrate-processor": "^0.6.1", - "axios": "^0.26.1", - "dotenv": "^16.0.0", + "@subsquid/substrate-processor": "^0.8.0", + "axios": "^0.27.2", + "dotenv": "^16.0.1", "md5": "^2.3.0", - "nanoid": "^3.3.2", + "nanoid": "^3.3.4", "pg": "^8.7.3", "signale": "^1.4.0", "typeorm": "^0.2.41" }, "devDependencies": { - "@subsquid/substrate-metadata-explorer": "^0.0.7", - "@subsquid/substrate-typegen": "^0.4.1", + "@subsquid/substrate-metadata-explorer": "^0.0.8", + "@subsquid/substrate-typegen": "^0.5.0", "@types/md5": "^2.3.2", - "@types/node": "^17.0.23", + "@types/node": "^17.0.35", "@types/signale": "^1.4.4", "@typescript-eslint/eslint-plugin": "^4.33.0", "eslint": "^7.32.0", @@ -35,8 +35,8 @@ "eslint-plugin-import": "^2.25.3", "eslint-plugin-prettier": "^4.0.0", "eslint-plugin-type-graphql": "^0.3.2", - "typescript": "~4.6.3", - "vitest": "^0.8.0" + "typescript": "~4.6.4", + "vitest": "^0.12.9" } }, "node_modules/@apollo/protobufjs": { @@ -69,13 +69,21 @@ "resolved": "https://registry.npmjs.org/@types/node/-/node-10.17.60.tgz", "integrity": "sha512-F0KIgDJfy2nA3zMLmWGKxcH2ZVEtCZXHHdOQs2gSaQ27+lNeEfGxzkIw90aXswATX7AZ33tahPbzy6KAfUreVw==" }, + "node_modules/@apollo/utils.logger": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@apollo/utils.logger/-/utils.logger-1.0.0.tgz", + "integrity": "sha512-dx9XrjyisD2pOa+KsB5RcDbWIAdgC91gJfeyLCgy0ctJMjQe7yZK5kdWaWlaOoCeX0z6YI9iYlg7vMPyMpQF3Q==" + }, "node_modules/@apollographql/apollo-tools": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/@apollographql/apollo-tools/-/apollo-tools-0.5.2.tgz", - "integrity": "sha512-KxZiw0Us3k1d0YkJDhOpVH5rJ+mBfjXcgoRoCcslbgirjgLotKMzOcx4PZ7YTEvvEROmvG7X3Aon41GvMmyGsw==", + "version": "0.5.4", + "resolved": "https://registry.npmjs.org/@apollographql/apollo-tools/-/apollo-tools-0.5.4.tgz", + "integrity": "sha512-shM3q7rUbNyXVVRkQJQseXv6bnYM3BUma/eZhwXR4xsuM+bqWnJKvW7SAfRjP7LuSCocrexa5AXhjjawNHrIlw==", "engines": { "node": ">=8", "npm": ">=6" + }, + "peerDependencies": { + "graphql": "^14.2.1 || ^15.0.0 || ^16.0.0" } }, "node_modules/@apollographql/graphql-playground-html": { @@ -239,54 +247,54 @@ "integrity": "sha512-82cpyJyKRoQoRi+14ibCeGPu0CwypgtBAdBhq1WfvagpCZNKqwXbKwXllYSMG91DhmG4jt9gN8eP6lGOtozuaw==" }, "node_modules/@graphql-tools/merge": { - "version": "8.2.6", - "resolved": "https://registry.npmjs.org/@graphql-tools/merge/-/merge-8.2.6.tgz", - "integrity": "sha512-dkwTm4czMISi/Io47IVvq2Fl9q4TIGKpJ0VZjuXYdEFkECyH6A5uwxZfPVandZG+gQs8ocFFoa6RisiUJLZrJw==", + "version": "8.2.13", + "resolved": "https://registry.npmjs.org/@graphql-tools/merge/-/merge-8.2.13.tgz", + "integrity": "sha512-lhzjCa6wCthOYl7B6UzER3SGjU2WjSGnW0WGr8giMYsrtf6G3vIRotMcSVMlhDzyyMIOn7uPULOUt3/kaJ/rIA==", "dependencies": { - "@graphql-tools/utils": "8.6.5", - "tslib": "~2.3.0" + "@graphql-tools/utils": "8.6.12", + "tslib": "~2.4.0" }, "peerDependencies": { - "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0" + "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" } }, "node_modules/@graphql-tools/mock": { - "version": "8.6.3", - "resolved": "https://registry.npmjs.org/@graphql-tools/mock/-/mock-8.6.3.tgz", - "integrity": "sha512-Nv095DXWz5Xt6U3SHhkIVtfuWyBNW1yiQk1o+DgM8/4Vj+v6zic1/y3eUpmoiy/qKu3qgagA6mxI8ZU/W6VS8w==", + "version": "8.6.11", + "resolved": "https://registry.npmjs.org/@graphql-tools/mock/-/mock-8.6.11.tgz", + "integrity": "sha512-O9q/tdKCMURAzRLM6hGBCik/bCh8Opk6XUX5AhhDrEyLwTJVwGUsI/vSctRmVq7yfFm0dNBQosz/EsqL0fkNZg==", "dependencies": { - "@graphql-tools/schema": "8.3.5", - "@graphql-tools/utils": "8.6.5", + "@graphql-tools/schema": "8.3.13", + "@graphql-tools/utils": "8.6.12", "fast-json-stable-stringify": "^2.1.0", - "tslib": "~2.3.0" + "tslib": "~2.4.0" }, "peerDependencies": { - "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0" + "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" } }, "node_modules/@graphql-tools/schema": { - "version": "8.3.5", - "resolved": "https://registry.npmjs.org/@graphql-tools/schema/-/schema-8.3.5.tgz", - "integrity": "sha512-3mJ/K7TdL+fnEUtCUqF4qkh1fcNMzaxgwKgO9fSYSTS7zyT16hbi5XSulSTshygHgaD2u+MO588iR4ZJcbZcIg==", + "version": "8.3.13", + "resolved": "https://registry.npmjs.org/@graphql-tools/schema/-/schema-8.3.13.tgz", + "integrity": "sha512-e+bx1VHj1i5v4HmhCYCar0lqdoLmkRi/CfV07rTqHR6CRDbIb/S/qDCajHLt7FCovQ5ozlI5sRVbBhzfq5H0PQ==", "dependencies": { - "@graphql-tools/merge": "8.2.6", - "@graphql-tools/utils": "8.6.5", - "tslib": "~2.3.0", + "@graphql-tools/merge": "8.2.13", + "@graphql-tools/utils": "8.6.12", + "tslib": "~2.4.0", "value-or-promise": "1.0.11" }, "peerDependencies": { - "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0" + "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" } }, "node_modules/@graphql-tools/utils": { - "version": "8.6.5", - "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-8.6.5.tgz", - "integrity": "sha512-mjOtaWiS2WIqRz/cq5gaeM3sVrllcu2xbtHROw1su1v3xWa3D3dKgn8Lrl7+tvWs5WUVySsBss/VZ3WdoPkCrA==", + "version": "8.6.12", + "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-8.6.12.tgz", + "integrity": "sha512-WQ91O40RC+UJgZ9K+IzevSf8oolR1QE+WQ21Oyc2fgDYYiqT0eSf+HVyhZr/8x9rVjn3N9HeqCsywbdmbljg0w==", "dependencies": { - "tslib": "~2.3.0" + "tslib": "~2.4.0" }, "peerDependencies": { - "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0" + "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" } }, "node_modules/@humanwhocodes/config-array": { @@ -596,41 +604,6 @@ "url": "https://github.com/chalk/supports-color?sponsor=1" } }, - "node_modules/@oclif/command": { - "version": "1.8.16", - "resolved": "https://registry.npmjs.org/@oclif/command/-/command-1.8.16.tgz", - "integrity": "sha512-rmVKYEsKzurfRU0xJz+iHelbi1LGlihIWZ7Qvmb/CBz1EkhL7nOkW4SVXmG2dA5Ce0si2gr88i6q4eBOMRNJ1w==", - "dependencies": { - "@oclif/config": "^1.18.2", - "@oclif/errors": "^1.3.5", - "@oclif/help": "^1.0.1", - "@oclif/parser": "^3.8.6", - "debug": "^4.1.1", - "semver": "^7.3.2" - }, - "engines": { - "node": ">=12.0.0" - }, - "peerDependencies": { - "@oclif/config": "^1" - } - }, - "node_modules/@oclif/config": { - "version": "1.18.3", - "resolved": "https://registry.npmjs.org/@oclif/config/-/config-1.18.3.tgz", - "integrity": "sha512-sBpko86IrTscc39EvHUhL+c++81BVTsIZ3ETu/vG+cCdi0N6vb2DoahR67A9FI2CGnxRRHjnTfa3m6LulwNATA==", - "dependencies": { - "@oclif/errors": "^1.3.5", - "@oclif/parser": "^3.8.0", - "debug": "^4.1.1", - "globby": "^11.0.1", - "is-wsl": "^2.1.1", - "tslib": "^2.3.1" - }, - "engines": { - "node": ">=8.0.0" - } - }, "node_modules/@oclif/core": { "version": "1.3.4", "resolved": "https://registry.npmjs.org/@oclif/core/-/core-1.3.4.tgz", @@ -684,117 +657,11 @@ "url": "https://github.com/chalk/supports-color?sponsor=1" } }, - "node_modules/@oclif/errors": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/@oclif/errors/-/errors-1.3.5.tgz", - "integrity": "sha512-OivucXPH/eLLlOT7FkCMoZXiaVYf8I/w1eTAM1+gKzfhALwWTusxEx7wBmW0uzvkSg/9ovWLycPaBgJbM3LOCQ==", - "dependencies": { - "clean-stack": "^3.0.0", - "fs-extra": "^8.1", - "indent-string": "^4.0.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^7.0.0" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/@oclif/errors/node_modules/fs-extra": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", - "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", - "dependencies": { - "graceful-fs": "^4.2.0", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - }, - "engines": { - "node": ">=6 <7 || >=8" - } - }, - "node_modules/@oclif/errors/node_modules/jsonfile": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", - "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", - "optionalDependencies": { - "graceful-fs": "^4.1.6" - } - }, - "node_modules/@oclif/errors/node_modules/universalify": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", - "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", - "engines": { - "node": ">= 4.0.0" - } - }, - "node_modules/@oclif/help": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@oclif/help/-/help-1.0.1.tgz", - "integrity": "sha512-8rsl4RHL5+vBUAKBL6PFI3mj58hjPCp2VYyXD4TAa7IMStikFfOH2gtWmqLzIlxAED2EpD0dfYwo9JJxYsH7Aw==", - "dependencies": { - "@oclif/config": "1.18.2", - "@oclif/errors": "1.3.5", - "chalk": "^4.1.2", - "indent-string": "^4.0.0", - "lodash": "^4.17.21", - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "widest-line": "^3.1.0", - "wrap-ansi": "^6.2.0" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/@oclif/help/node_modules/@oclif/config": { - "version": "1.18.2", - "resolved": "https://registry.npmjs.org/@oclif/config/-/config-1.18.2.tgz", - "integrity": "sha512-cE3qfHWv8hGRCP31j7fIS7BfCflm/BNZ2HNqHexH+fDrdF2f1D5S8VmXWLC77ffv3oDvWyvE9AZeR0RfmHCCaA==", - "dependencies": { - "@oclif/errors": "^1.3.3", - "@oclif/parser": "^3.8.0", - "debug": "^4.1.1", - "globby": "^11.0.1", - "is-wsl": "^2.1.1", - "tslib": "^2.0.0" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/@oclif/help/node_modules/wrap-ansi": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", - "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/@oclif/linewrap": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/@oclif/linewrap/-/linewrap-1.0.0.tgz", "integrity": "sha512-Ups2dShK52xXa8w6iBWLgcjPJWjais6KPJQq3gQ/88AY6BXoTX+MIGFPrWQO1KLMiQfoTpcLnUwloN4brrVUHw==" }, - "node_modules/@oclif/parser": { - "version": "3.8.6", - "resolved": "https://registry.npmjs.org/@oclif/parser/-/parser-3.8.6.tgz", - "integrity": "sha512-tXb0NKgSgNxmf6baN6naK+CCwOueaFk93FG9u202U7mTBHUKsioOUlw1SG/iPi9aJM3WE4pHLXmty59pci0OEw==", - "dependencies": { - "@oclif/errors": "^1.2.2", - "@oclif/linewrap": "^1.0.0", - "chalk": "^4.1.0", - "tslib": "^2.0.0" - }, - "engines": { - "node": ">=8.0.0" - } - }, "node_modules/@oclif/plugin-help": { "version": "5.1.11", "resolved": "https://registry.npmjs.org/@oclif/plugin-help/-/plugin-help-5.1.11.tgz", @@ -996,7 +863,7 @@ "node_modules/@protobufjs/aspromise": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/@protobufjs/aspromise/-/aspromise-1.1.2.tgz", - "integrity": "sha1-m4sMxmPWaafY9vXQiToU00jzD78=" + "integrity": "sha512-j+gKExEuLmKwvz3OgROXtrJ2UG2x8Ch2YZUxahh+s1F2HZ+wAceUNLkvy6zKCPVRkU++ZWQrdxsUeQXmcg4uoQ==" }, "node_modules/@protobufjs/base64": { "version": "1.1.2", @@ -1011,12 +878,12 @@ "node_modules/@protobufjs/eventemitter": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/@protobufjs/eventemitter/-/eventemitter-1.1.0.tgz", - "integrity": "sha1-NVy8mLr61ZePntCV85diHx0Ga3A=" + "integrity": "sha512-j9ednRT81vYJ9OfVuXG6ERSTdEL1xVsNgqpkxMsbIabzSo3goCjDIveeGv5d03om39ML71RdmrGNjG5SReBP/Q==" }, "node_modules/@protobufjs/fetch": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/@protobufjs/fetch/-/fetch-1.1.0.tgz", - "integrity": "sha1-upn7WYYUr2VwDBYZ/wbUVLDYTEU=", + "integrity": "sha512-lljVXpqXebpsijW71PZaCYeIcE5on1w5DlQy5WH6GLbFryLUrBD4932W/E2BSpfRJWseIL4v/KPgBFxDOIdKpQ==", "dependencies": { "@protobufjs/aspromise": "^1.1.1", "@protobufjs/inquire": "^1.1.0" @@ -1025,27 +892,27 @@ "node_modules/@protobufjs/float": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/@protobufjs/float/-/float-1.0.2.tgz", - "integrity": "sha1-Xp4avctz/Ap8uLKR33jIy9l7h9E=" + "integrity": "sha512-Ddb+kVXlXst9d+R9PfTIxh1EdNkgoRe5tOX6t01f1lYWOvJnSPDBlG241QLzcyPdoNTsblLUdujGSE4RzrTZGQ==" }, "node_modules/@protobufjs/inquire": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/@protobufjs/inquire/-/inquire-1.1.0.tgz", - "integrity": "sha1-/yAOPnzyQp4tyvwRQIKOjMY48Ik=" + "integrity": "sha512-kdSefcPdruJiFMVSbn801t4vFK7KB/5gd2fYvrxhuJYg8ILrmn9SKSX2tZdV6V+ksulWqS7aXjBcRXl3wHoD9Q==" }, "node_modules/@protobufjs/path": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/@protobufjs/path/-/path-1.1.2.tgz", - "integrity": "sha1-bMKyDFya1q0NzP0hynZz2Nf79o0=" + "integrity": "sha512-6JOcJ5Tm08dOHAbdR3GrvP+yUUfkjG5ePsHYczMFLq3ZmMkAD98cDgcT2iA1lJ9NVwFd4tH/iSSoe44YWkltEA==" }, "node_modules/@protobufjs/pool": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/@protobufjs/pool/-/pool-1.1.0.tgz", - "integrity": "sha1-Cf0V8tbTq/qbZbw2ZQbWrXhG/1Q=" + "integrity": "sha512-0kELaGSIDBKvcgS4zkjz1PeddatrjYcmMWOlAuAPwAeccUrPHdUqo/J6LiymHHEiJT5NrF1UVwxY14f+fy4WQw==" }, "node_modules/@protobufjs/utf8": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/@protobufjs/utf8/-/utf8-1.1.0.tgz", - "integrity": "sha1-p3c2C1s5oaLlEG+OhY8v0tBgxXA=" + "integrity": "sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==" }, "node_modules/@sqltools/formatter": { "version": "1.2.3", @@ -1053,9 +920,9 @@ "integrity": "sha512-O3uyB/JbkAEMZaP3YqyHH7TMnex7tWyCbCI4EfJdOCoN6HIhqdJBWTM6aCCiWQ/5f5wxjgU735QAIpJbjDvmzg==" }, "node_modules/@subsquid/archive-registry": { - "version": "0.0.4", - "resolved": "https://registry.npmjs.org/@subsquid/archive-registry/-/archive-registry-0.0.4.tgz", - "integrity": "sha512-qqXUhIcwYWLLrflk1br+F9lCd3K4tZEcJexEVFCM5cuHgHiYy7BxnTfd7UbSJIf+oIo461KxhDXqKQrAfUpqWg==", + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/@subsquid/archive-registry/-/archive-registry-0.0.6.tgz", + "integrity": "sha512-Uy0nav9GujIx7v9yTLBGR+HsuEUSRPYkZfMMXDbl+8ZSCI1wtzFPugB9d3/lJeC0Rslx3PyJl098Vnj+my8mqw==", "dependencies": { "node-abort-controller": "^3.0.1", "node-fetch": "^2", @@ -1063,23 +930,23 @@ } }, "node_modules/@subsquid/cli": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/@subsquid/cli/-/cli-0.2.1.tgz", - "integrity": "sha512-H0UM2KmttBCpjwsKr59oUdj6bcGHp2DxRiT0pDamSJsskV8uYhuqMT9khv3EvQh8WSkjtJVNMqeTX/nYaHo6pw==", + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/@subsquid/cli/-/cli-0.4.1.tgz", + "integrity": "sha512-xTZGj9m0+5+DP2WYa1ZKUvalcOHRhFEIZD976Xa1lBvN8rdmDhjtfnj+tFdeW1gD83mAmavp/iO4bXFdoTYqeg==", "dependencies": { "@oclif/core": "^1.3.0", "@oclif/plugin-help": "^5.1.11", "@octokit/auth-oauth-device": "^3.1.2", - "@subsquid/openreader": "^0.5.1", - "@subsquid/typeorm-config": "^0.0.4", - "@subsquid/util": "^0.0.4", + "@subsquid/openreader": "^0.7.0", + "@subsquid/typeorm-config": "^0.0.5", + "@subsquid/util": "^0.0.5", "chalk": "^4.1.2", "cli-select": "^1.1.2", - "cli-ux": "^5.6.7", "dotenv": "^10.0.0", + "js-yaml": "^4.1.0", "node-fetch": "^2.6.7", "oclif": "^2.4.3", - "pg": "^8.7.1", + "pg": "^8.7.3", "pgtools": "^0.3.2", "query-string": "^7.1.0", "simple-git": "^2.48.0", @@ -1089,6 +956,11 @@ "sqd": "bin/run.js" } }, + "node_modules/@subsquid/cli/node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" + }, "node_modules/@subsquid/cli/node_modules/dotenv": { "version": "10.0.0", "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-10.0.0.tgz", @@ -1097,27 +969,38 @@ "node": ">=10" } }, + "node_modules/@subsquid/cli/node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, "node_modules/@subsquid/graphiql-console": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/@subsquid/graphiql-console/-/graphiql-console-0.2.0.tgz", "integrity": "sha512-Wh2Oxi9JkK79Y728yDEeY7JelcY1cGiQTbzVIRMFLT2tjkkoQ69goAGXdh9QmM/ANAVrHQkBUNJOLd5oAg//oQ==" }, "node_modules/@subsquid/graphql-server": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/@subsquid/graphql-server/-/graphql-server-0.1.5.tgz", - "integrity": "sha512-LpHv1Q6vEFMtWJ7oRvrtBWLFuI53EXyk90UVnnp+s0pcEPNIk6apNCrw5igh8ABGz6kIFbqe37JA+r1HFnZiWw==", + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/@subsquid/graphql-server/-/graphql-server-0.3.0.tgz", + "integrity": "sha512-tiyfsrnxoXD12bmTz1BwByuiEgBgjTgHMDJMbTa+1u8AlAiNA57xM0ahzv6yt05OWLIFQDQtSkt1jn+FOk3uAg==", "dependencies": { "@graphql-tools/merge": "^8", "@graphql-tools/utils": "^8", - "@subsquid/openreader": "^0.5.0", - "@subsquid/typeorm-config": "^0.0.4", - "@subsquid/util": "^0.0.4", + "@subsquid/openreader": "^0.7.0", + "@subsquid/typeorm-config": "^0.0.5", + "@subsquid/util": "^0.0.5", "apollo-server-core": "^3.6.2", "apollo-server-express": "^3.6.2", "dotenv": "^10.0.0", "express": "^4.17.2", "graphql": "^15.8.0", - "pg": "^8.7.1" + "pg": "^8.7.3" }, "bin": { "squid-graphql-server": "bin/run.js" @@ -1148,20 +1031,20 @@ } }, "node_modules/@subsquid/openreader": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/@subsquid/openreader/-/openreader-0.5.1.tgz", - "integrity": "sha512-qe61sWse9ME9UeZnLSIs8gCi1k1MYU0YZ5gERuLKFRr/KtSIMz+LI9AJNUeddQigFzn6RxR+J8Wa5k5FNDg2uQ==", + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/@subsquid/openreader/-/openreader-0.7.0.tgz", + "integrity": "sha512-/q4FYvNeSzwZwYI8CSHqjAgmM4uE/UKnoMBv/TOJqyPL9c+otM7qMnl981wYsQDEVyZCZh+N5B5zkaD3ca3yIw==", "dependencies": { "@graphql-tools/merge": "^8", "@graphql-tools/utils": "^8", "@subsquid/graphiql-console": "^0.2.0", - "@subsquid/util": "^0.0.4", + "@subsquid/util": "^0.0.5", "apollo-server-core": "^3.6.2", "apollo-server-express": "^3.6.2", "express": "^4.17.2", "graphql": "^15.8.0", "graphql-parse-resolve-info": "^4.12.0", - "pg": "^8.7.1" + "pg": "^8.7.3" }, "bin": { "openreader": "bin/main.js" @@ -1176,20 +1059,21 @@ } }, "node_modules/@subsquid/scale-codec": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/@subsquid/scale-codec/-/scale-codec-0.4.1.tgz", - "integrity": "sha512-aulxRPgG0sY4ywORZjcSyw/1sPRTRRjwvyG096/zLhZtjhKmB3XcYH8lkaQ5O4z2PaWGq4vD0rusduH/jQ8Ejg==", + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/@subsquid/scale-codec/-/scale-codec-0.4.2.tgz", + "integrity": "sha512-zhM+JX+RQ3sKsSh+jq4xM9UyiBm8pqdnc4j9VpBIqmJAaW/l5oiUJeKu1+dR7PYDmCIthBR3bWz02rP1tDTQHw==", "dependencies": { - "@subsquid/ss58-codec": "^0.1.0" + "@subsquid/util-internal-hex": "^0.0.0" } }, "node_modules/@subsquid/scale-codec-json": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/@subsquid/scale-codec-json/-/scale-codec-json-0.1.3.tgz", - "integrity": "sha512-/e1H1/249ezS00oSBT8kB4MKDed2PkziZerlf+ankPmW6ZGezWs3f6JCNgabCaSv5io191o/zHamf/l2hgqZyw==", + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/@subsquid/scale-codec-json/-/scale-codec-json-0.1.4.tgz", + "integrity": "sha512-rRJHTOz+pdHP6g6ujaqP97buBl4iz17k9hvDgIBUeeup/EPmSp1DdYB2J+4LhhNHO0DDtTcdH+3LwyIUoJxpFw==", "dependencies": { - "@subsquid/scale-codec": "^0.4.1", - "@subsquid/ss58-codec": "^0.1.0" + "@subsquid/scale-codec": "^0.4.2", + "@subsquid/ss58-codec": "^0.1.0", + "@subsquid/util-internal-hex": "^0.0.0" } }, "node_modules/@subsquid/ss58": { @@ -1210,22 +1094,22 @@ } }, "node_modules/@subsquid/substrate-metadata": { - "version": "0.8.0", - "resolved": "https://registry.npmjs.org/@subsquid/substrate-metadata/-/substrate-metadata-0.8.0.tgz", - "integrity": "sha512-jNpLoS23ofacULkXBR9FQPxRVnqoE1CI4fC6aJv3T7346l5t9bDTELCLaRD3ucsWpLkB3cTonra3aBAq0v3ujA==", + "version": "0.8.4", + "resolved": "https://registry.npmjs.org/@subsquid/substrate-metadata/-/substrate-metadata-0.8.4.tgz", + "integrity": "sha512-hpPvrQhTxilMPoLNvPFUDlCKNVR5VtFpYD5A4JWTHvxN913BrPh9dODbYkvdl75nM7izCAZjQA3UyD4thWriBA==", "dependencies": { - "@subsquid/scale-codec": "^0.4.1", - "@subsquid/util": "^0.0.4" + "@subsquid/scale-codec": "^0.4.2", + "@subsquid/util": "^0.0.5" } }, "node_modules/@subsquid/substrate-metadata-explorer": { - "version": "0.0.7", - "resolved": "https://registry.npmjs.org/@subsquid/substrate-metadata-explorer/-/substrate-metadata-explorer-0.0.7.tgz", - "integrity": "sha512-Vq3OGjaVlMJUqFm6g3DYhmvUQ49yTcVmkPRDHY0Awy8eI0WTh894S1UX8RyGRRbm9g0TobQHPT1qouiQG7NwWg==", + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/@subsquid/substrate-metadata-explorer/-/substrate-metadata-explorer-0.0.8.tgz", + "integrity": "sha512-CXqAeKVYtKk3U/R7e5m12XBM9lG8Pu1aht3UxaRYgpmvazeGRpFaELE2iNgvxWNNwR13zdGrDD8O3sxLw9YkGw==", "dev": true, "dependencies": { - "@subsquid/rpc-client": "^0.1.3", - "commander": "^8.3.0", + "@subsquid/rpc-client": "^0.1.5", + "commander": "^9.0.0", "node-fetch": "^2.6.7" }, "bin": { @@ -1233,16 +1117,16 @@ } }, "node_modules/@subsquid/substrate-processor": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/@subsquid/substrate-processor/-/substrate-processor-0.6.1.tgz", - "integrity": "sha512-vo2cWBzTq6v9/uoHYY3NFJtWTXFyvrlUzEwaUqiBHymLsrQkVQLghy+zfX2jT0WnNUie6+5kgOdFUwsHFcIMJQ==", + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/@subsquid/substrate-processor/-/substrate-processor-0.8.0.tgz", + "integrity": "sha512-9AdUzhwisX7oz4qcdJ93dPxDq/dI+pyUf+Cq+2Vl5kmyPagrFB9TJ0lS8w7DGn7Ibg9fg9QszOztYyemxTbSDw==", "dependencies": { "@subsquid/rpc-client": "^0.1.5", - "@subsquid/scale-codec": "^0.4.1", - "@subsquid/scale-codec-json": "^0.1.3", - "@subsquid/substrate-metadata": "^0.8.0", - "@subsquid/typeorm-config": "^0.0.4", - "@subsquid/util": "^0.0.4", + "@subsquid/scale-codec": "^0.4.2", + "@subsquid/scale-codec-json": "^0.1.4", + "@subsquid/substrate-metadata": "^0.8.3", + "@subsquid/typeorm-config": "^0.0.5", + "@subsquid/util": "^0.0.5", "@subsquid/util-xxhash": "^0.1.0", "blake2b": "^2.1.4", "node-fetch": "^2.6.7", @@ -1254,27 +1138,27 @@ } }, "node_modules/@subsquid/substrate-typegen": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/@subsquid/substrate-typegen/-/substrate-typegen-0.4.1.tgz", - "integrity": "sha512-M1+zhAjI3YCDoS7ZFy66gxfVMNm8bRmCEd3TGQL17e6ptWafoyb+JZ11H5eYaDwBepCIZaUS9rv9TQX75TjaMw==", + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/@subsquid/substrate-typegen/-/substrate-typegen-0.5.0.tgz", + "integrity": "sha512-mXG2F6YRuN5TdAT6IIKOReb/Rc84UovaolyUQlEGQfSQ/7QoxeIby9L4DEWsZi9pq00m2U0RA7SZyLavnf7I/g==", "dev": true, "dependencies": { - "@subsquid/scale-codec": "^0.4.1", - "@subsquid/substrate-metadata": "^0.8.0", - "@subsquid/util": "^0.0.4", + "@subsquid/scale-codec": "^0.4.2", + "@subsquid/substrate-metadata": "^0.8.3", + "@subsquid/util": "^0.0.5", "ajv": "^8.9.0", - "commander": "^8.3.0" + "commander": "^9.0.0" }, "bin": { "squid-substrate-typegen": "bin/run.js" } }, "node_modules/@subsquid/typeorm-config": { - "version": "0.0.4", - "resolved": "https://registry.npmjs.org/@subsquid/typeorm-config/-/typeorm-config-0.0.4.tgz", - "integrity": "sha512-HFJGywcHLL/aXqDUpnALuaiKxUNp093B0dV1m4rUQ4YyEKrMhAY35khnrvUF4dVOefCRduF1TNVtNr9VRwOJ+Q==", + "version": "0.0.5", + "resolved": "https://registry.npmjs.org/@subsquid/typeorm-config/-/typeorm-config-0.0.5.tgz", + "integrity": "sha512-Nay/l6Kg/1lqctg+H03S/CznqezEtX6oG0JR7p5eMSbR/nhUO2mgyWvuHF4SEcjvnKa0//RyCIoblqYzC4UFyQ==", "dependencies": { - "@subsquid/util": "^0.0.4" + "@subsquid/util": "^0.0.5" }, "peerDependencies": { "typeorm": "^0.2.41" @@ -1286,14 +1170,20 @@ } }, "node_modules/@subsquid/util": { - "version": "0.0.4", - "resolved": "https://registry.npmjs.org/@subsquid/util/-/util-0.0.4.tgz", - "integrity": "sha512-H62DBxWzfWhzbpKNnaRMdFNL8ZksxNAxOlFfZFFBwFGiV5xEFKrjPa/nI/Iz6+8luCo8zcOMZ+xd1IMGlT/FZQ==", + "version": "0.0.5", + "resolved": "https://registry.npmjs.org/@subsquid/util/-/util-0.0.5.tgz", + "integrity": "sha512-lsLccBDaALszIl7TbXTR/pnqReRViglqa7tNRWGxpf10+u31/OTW2EGDLkqtHkoUnf6uU2sspu7rHGY4vI4KHQ==", "dependencies": { + "@subsquid/util-internal-hex": "^0.0.0", "camelcase": "^6.3.0", "inflected": "^2.1.0" } }, + "node_modules/@subsquid/util-internal-hex": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/@subsquid/util-internal-hex/-/util-internal-hex-0.0.0.tgz", + "integrity": "sha512-cZ+P9e+kyHRArBroXNBXs1tbROCwx877ETaM4f9M+fbGKqupZU0/IWIwcrOS0tck4evPsaZO7prmLFMSH0/8aQ==" + }, "node_modules/@subsquid/util-xxhash": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/@subsquid/util-xxhash/-/util-xxhash-0.1.0.tgz", @@ -1329,9 +1219,9 @@ } }, "node_modules/@types/chai": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/@types/chai/-/chai-4.3.0.tgz", - "integrity": "sha512-/ceqdqeRraGolFTcfoXNiqjyQhZzbINDngeoAq9GoHa8PPK1yNzTaxWjA6BFWp5Ua9JpXEMSS4s5i9tS0hOJtw==", + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/@types/chai/-/chai-4.3.1.tgz", + "integrity": "sha512-/zPMqDkzSZ8t3VtxOa4KPq7uzzW978M9Tvh+j7GHKuo6k6GTLxPJ4J5gE5cjfJ26pnXst0N5Hax8Sr0T2Mi9zQ==", "dev": true }, "node_modules/@types/chai-subset": { @@ -1404,9 +1294,9 @@ "dev": true }, "node_modules/@types/long": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/@types/long/-/long-4.0.1.tgz", - "integrity": "sha512-5tXH6Bx/kNGd3MgffdmP4dy2Z+G4eaXw0SE81Tq3BNadtnMR5/ySMzX4SLEzHJzSmPNn4HIdpQsBvXMUykr58w==" + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/@types/long/-/long-4.0.2.tgz", + "integrity": "sha512-MqTGEo5bj5t157U6fA/BiDynNkn0YknVdh48CMPkTSpFTVmvao5UQmm7uEF6xBEo7qIMAlY/JSleYaE6VOdpaA==" }, "node_modules/@types/md5": { "version": "2.3.2", @@ -1425,9 +1315,9 @@ "integrity": "sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ==" }, "node_modules/@types/node": { - "version": "17.0.23", - "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.23.tgz", - "integrity": "sha512-UxDxWn7dl97rKVeVS61vErvw086aCYhDLyvRQZ5Rk65rZKepaFdm53GeqXaKBuOhED4e9uWq34IC3TdSdJJ2Gw==" + "version": "17.0.35", + "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.35.tgz", + "integrity": "sha512-vu1SrqBjbbZ3J6vwY17jBs8Sr/BKA+/a/WtjRG+whKg1iuLFOosq872EXS0eXWILdO36DHQQeku/ZcL6hz2fpg==" }, "node_modules/@types/normalize-package-data": { "version": "2.4.1", @@ -1836,11 +1726,12 @@ } }, "node_modules/apollo-server-core": { - "version": "3.6.6", - "resolved": "https://registry.npmjs.org/apollo-server-core/-/apollo-server-core-3.6.6.tgz", - "integrity": "sha512-JKxUY4JZVhCKJeEACZRB/uCXFrOZN6p0fqe1NmFc4GDeYnejDirzzuWLMY1rAgI1N5tXhZniyHDR6nU0SpPbRA==", + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/apollo-server-core/-/apollo-server-core-3.7.0.tgz", + "integrity": "sha512-xUCDjrBzPVbttbh/HenuQdivco/dcXE2oIDYwCU6FU2RBXqxWFmuCl2Xe7VPA/5Frw/4snJDLCyVte9PA5edww==", "dependencies": { - "@apollographql/apollo-tools": "^0.5.1", + "@apollo/utils.logger": "^1.0.0", + "@apollographql/apollo-tools": "^0.5.3", "@apollographql/graphql-playground-html": "1.6.29", "@graphql-tools/mock": "^8.1.2", "@graphql-tools/schema": "^8.0.0", @@ -1850,8 +1741,8 @@ "apollo-server-caching": "^3.3.0", "apollo-server-env": "^4.2.1", "apollo-server-errors": "^3.3.1", - "apollo-server-plugin-base": "^3.5.2", - "apollo-server-types": "^3.5.2", + "apollo-server-plugin-base": "^3.5.3", + "apollo-server-types": "^3.5.3", "async-retry": "^1.2.1", "fast-json-stable-stringify": "^2.1.0", "graphql-tag": "^2.11.0", @@ -1859,7 +1750,8 @@ "loglevel": "^1.6.8", "lru-cache": "^6.0.0", "sha.js": "^2.4.11", - "uuid": "^8.0.0" + "uuid": "^8.0.0", + "whatwg-mimetype": "^3.0.0" }, "engines": { "node": ">=12.0" @@ -1891,9 +1783,9 @@ } }, "node_modules/apollo-server-express": { - "version": "3.6.6", - "resolved": "https://registry.npmjs.org/apollo-server-express/-/apollo-server-express-3.6.6.tgz", - "integrity": "sha512-27D+rRd/yfIFx333yYc6WgAhI6hCPbM3r53Ha0SFCGZ7BGvccVvKlhlbLYdkLEO0DQEdVKI7YuZq4yoM0qdZ/g==", + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/apollo-server-express/-/apollo-server-express-3.7.0.tgz", + "integrity": "sha512-176LSK7YBxwfleurtbfr5SYMheNNJSHrQa2h4QuosLqhfFJkfTpI2iBW56N737U47QfyueCOvkjNZVq86e3n2g==", "dependencies": { "@types/accepts": "^1.3.5", "@types/body-parser": "1.19.2", @@ -1901,8 +1793,8 @@ "@types/express": "4.17.13", "@types/express-serve-static-core": "4.17.28", "accepts": "^1.3.5", - "apollo-server-core": "^3.6.6", - "apollo-server-types": "^3.5.2", + "apollo-server-core": "^3.7.0", + "apollo-server-types": "^3.5.3", "body-parser": "^1.19.0", "cors": "^2.8.5", "parseurl": "^1.3.3" @@ -1916,11 +1808,11 @@ } }, "node_modules/apollo-server-plugin-base": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/apollo-server-plugin-base/-/apollo-server-plugin-base-3.5.2.tgz", - "integrity": "sha512-SwIf1waDmNDb0kmn57QR++InwK6Iv/X2slpm/aFIoqFBe91r6uJfakJvQZuh8dLEgk68gxqFsT8zHRpxBclE+g==", + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/apollo-server-plugin-base/-/apollo-server-plugin-base-3.5.3.tgz", + "integrity": "sha512-zojm3qiUGYtM5k1PPrCJnLZSDNqvWvmIDvqBjCu3wI3iNZqNm3MOA86eYGFfaBi/WNu3qYIj6QE3T7w0XjRV1A==", "dependencies": { - "apollo-server-types": "^3.5.2" + "apollo-server-types": "^3.5.3" }, "engines": { "node": ">=12.0" @@ -1930,9 +1822,9 @@ } }, "node_modules/apollo-server-types": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/apollo-server-types/-/apollo-server-types-3.5.2.tgz", - "integrity": "sha512-vhcbIWsBkoNibABOym4AAPBoNDjokhjUQokKYdwZMeqrb850PMQdNJFrGyXT5onP408Ghv4O8PfgBuPQmeJhVQ==", + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/apollo-server-types/-/apollo-server-types-3.5.3.tgz", + "integrity": "sha512-Qf5mMVTDyABEeyjGecwMsk0y0km4KuW8/j/UwBDQkAAW1QRy+w8nqi+wvSoA5hNXiYCdJN4U4nxTxm9+2eiT4w==", "dependencies": { "apollo-reporting-protobuf": "^3.3.1", "apollo-server-caching": "^3.3.0", @@ -1989,7 +1881,7 @@ "node_modules/array-flatten": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", - "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=" + "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==" }, "node_modules/array-includes": { "version": "3.1.4", @@ -2079,6 +1971,11 @@ "retry": "0.13.1" } }, + "node_modules/asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" + }, "node_modules/at-least-node": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz", @@ -2143,11 +2040,12 @@ } }, "node_modules/axios": { - "version": "0.26.1", - "resolved": "https://registry.npmjs.org/axios/-/axios-0.26.1.tgz", - "integrity": "sha512-fPwcX4EvnSHuInCMItEhAGnaSEXRBjtzh9fOtsE6E1G6p7vl7edEeZe11QHf18+6+9gR5PbKV/sGKNaD8YaMeA==", + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/axios/-/axios-0.27.2.tgz", + "integrity": "sha512-t+yRIyySRTp/wua5xEr+z1q60QmLq8ABsS5O9Me1AsE5dfKqgnCFzwiCZZ/cGNd1lq4/7akDWMxdhVlucjmnOQ==", "dependencies": { - "follow-redirects": "^1.14.8" + "follow-redirects": "^1.14.9", + "form-data": "^4.0.0" } }, "node_modules/b4a": { @@ -2307,23 +2205,26 @@ "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==" }, "node_modules/body-parser": { - "version": "1.19.2", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.2.tgz", - "integrity": "sha512-SAAwOxgoCKMGs9uUAUFHygfLAyaniaoun6I8mFY9pRAJL9+Kec34aU+oIjDhTycub1jozEfEwx1W1IuOYxVSFw==", + "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==", "dependencies": { "bytes": "3.1.2", "content-type": "~1.0.4", "debug": "2.6.9", - "depd": "~1.1.2", - "http-errors": "1.8.1", + "depd": "2.0.0", + "destroy": "1.2.0", + "http-errors": "2.0.0", "iconv-lite": "0.4.24", - "on-finished": "~2.3.0", - "qs": "6.9.7", - "raw-body": "2.4.3", - "type-is": "~1.6.18" + "on-finished": "2.4.1", + "qs": "6.10.3", + "raw-body": "2.5.1", + "type-is": "~1.6.18", + "unpipe": "1.0.0" }, "engines": { - "node": ">= 0.8" + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" } }, "node_modules/body-parser/node_modules/debug": { @@ -2334,6 +2235,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", @@ -2461,7 +2370,6 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", - "dev": true, "dependencies": { "function-bind": "^1.1.1", "get-intrinsic": "^1.0.2" @@ -2664,94 +2572,6 @@ "node": ">= 0.2.0" } }, - "node_modules/cli-ux": { - "version": "5.6.7", - "resolved": "https://registry.npmjs.org/cli-ux/-/cli-ux-5.6.7.tgz", - "integrity": "sha512-dsKAurMNyFDnO6X1TiiRNiVbL90XReLKcvIq4H777NMqXGBxBws23ag8ubCJE97vVZEgWG2eSUhsyLf63Jv8+g==", - "deprecated": "Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.", - "dependencies": { - "@oclif/command": "^1.8.15", - "@oclif/errors": "^1.3.5", - "@oclif/linewrap": "^1.0.0", - "@oclif/screen": "^1.0.4", - "ansi-escapes": "^4.3.0", - "ansi-styles": "^4.2.0", - "cardinal": "^2.1.1", - "chalk": "^4.1.0", - "clean-stack": "^3.0.0", - "cli-progress": "^3.4.0", - "extract-stack": "^2.0.0", - "fs-extra": "^8.1", - "hyperlinker": "^1.0.0", - "indent-string": "^4.0.0", - "is-wsl": "^2.2.0", - "js-yaml": "^3.13.1", - "lodash": "^4.17.21", - "natural-orderby": "^2.0.1", - "object-treeify": "^1.1.4", - "password-prompt": "^1.1.2", - "semver": "^7.3.2", - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "supports-color": "^8.1.0", - "supports-hyperlinks": "^2.1.0", - "tslib": "^2.0.0" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/cli-ux/node_modules/@oclif/screen": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/@oclif/screen/-/screen-1.0.4.tgz", - "integrity": "sha512-60CHpq+eqnTxLZQ4PGHYNwUX572hgpMHGPtTWMjdTMsAvlm69lZV/4ly6O3sAYkomo4NggGcomrDpBe34rxUqw==", - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/cli-ux/node_modules/fs-extra": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", - "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", - "dependencies": { - "graceful-fs": "^4.2.0", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - }, - "engines": { - "node": ">=6 <7 || >=8" - } - }, - "node_modules/cli-ux/node_modules/jsonfile": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", - "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", - "optionalDependencies": { - "graceful-fs": "^4.1.6" - } - }, - "node_modules/cli-ux/node_modules/supports-color": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/supports-color?sponsor=1" - } - }, - "node_modules/cli-ux/node_modules/universalify": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", - "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", - "engines": { - "node": ">= 4.0.0" - } - }, "node_modules/cli-width": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-3.0.0.tgz", @@ -2879,13 +2699,24 @@ "node": ">=0.1.90" } }, + "node_modules/combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "dependencies": { + "delayed-stream": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, "node_modules/commander": { - "version": "8.3.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz", - "integrity": "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==", + "version": "9.2.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-9.2.0.tgz", + "integrity": "sha512-e2i4wANQiSXgnrBlIatyHtP1odfUp0BbV5Y5nEGbxtIrStkEOAAzCUirvLBNXHLr7kwLvJl6V+4V3XV9x7Wd9w==", "dev": true, "engines": { - "node": ">= 12" + "node": "^12.20.0 || >=14" } }, "node_modules/common-ancestor-path": { @@ -2969,9 +2800,9 @@ } }, "node_modules/cookie": { - "version": "0.4.2", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.2.tgz", - "integrity": "sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA==", + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz", + "integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==", "engines": { "node": ">= 0.6" } @@ -3077,9 +2908,9 @@ } }, "node_modules/debug": { - "version": "4.3.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", - "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", + "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" }, @@ -3170,6 +3001,14 @@ "node": ">= 0.4" } }, + "node_modules/delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", + "engines": { + "node": ">=0.4.0" + } + }, "node_modules/delegates": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", @@ -3189,9 +3028,13 @@ "integrity": "sha512-xmHIy4F3scKVwMsQ4WnVaS8bHOx0DmVwRywosKhaILI0ywMDWPtBSku2HNxRvF7jtwDRsoEwYQSfbxj8b7RlJQ==" }, "node_modules/destroy": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", - "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=" + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", + "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" + } }, "node_modules/detect-indent": { "version": "6.1.0", @@ -3242,9 +3085,9 @@ } }, "node_modules/dotenv": { - "version": "16.0.0", - "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.0.0.tgz", - "integrity": "sha512-qD9WU0MPM4SWLPJy/r2Be+2WgQj8plChsyrCNQzW/0WjvcJQiKQJ9mH3ZgB3fxbUUxgc/11ZJ0Fi5KiimWGz2Q==", + "version": "16.0.1", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.0.1.tgz", + "integrity": "sha512-1K6hR6wtk2FviQ4kEiSjFiH5rpzEVi8WW0x96aztHVMhEspNpc4DVOUTEHtEva5VThQ8IaBX1Pe4gSzpVVUsKQ==", "engines": { "node": ">=12" } @@ -3429,9 +3272,9 @@ } }, "node_modules/esbuild": { - "version": "0.14.29", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.14.29.tgz", - "integrity": "sha512-SQS8cO8xFEqevYlrHt6exIhK853Me4nZ4aMW6ieysInLa0FMAL+AKs87HYNRtR2YWRcEIqoXAHh+Ytt5/66qpg==", + "version": "0.14.39", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.14.39.tgz", + "integrity": "sha512-2kKujuzvRWYtwvNjYDY444LQIA3TyJhJIX3Yo4+qkFlDDtGlSicWgeHVJqMUP/2sSfH10PGwfsj+O2ro1m10xQ==", "dev": true, "hasInstallScript": true, "bin": { @@ -3441,32 +3284,32 @@ "node": ">=12" }, "optionalDependencies": { - "esbuild-android-64": "0.14.29", - "esbuild-android-arm64": "0.14.29", - "esbuild-darwin-64": "0.14.29", - "esbuild-darwin-arm64": "0.14.29", - "esbuild-freebsd-64": "0.14.29", - "esbuild-freebsd-arm64": "0.14.29", - "esbuild-linux-32": "0.14.29", - "esbuild-linux-64": "0.14.29", - "esbuild-linux-arm": "0.14.29", - "esbuild-linux-arm64": "0.14.29", - "esbuild-linux-mips64le": "0.14.29", - "esbuild-linux-ppc64le": "0.14.29", - "esbuild-linux-riscv64": "0.14.29", - "esbuild-linux-s390x": "0.14.29", - "esbuild-netbsd-64": "0.14.29", - "esbuild-openbsd-64": "0.14.29", - "esbuild-sunos-64": "0.14.29", - "esbuild-windows-32": "0.14.29", - "esbuild-windows-64": "0.14.29", - "esbuild-windows-arm64": "0.14.29" + "esbuild-android-64": "0.14.39", + "esbuild-android-arm64": "0.14.39", + "esbuild-darwin-64": "0.14.39", + "esbuild-darwin-arm64": "0.14.39", + "esbuild-freebsd-64": "0.14.39", + "esbuild-freebsd-arm64": "0.14.39", + "esbuild-linux-32": "0.14.39", + "esbuild-linux-64": "0.14.39", + "esbuild-linux-arm": "0.14.39", + "esbuild-linux-arm64": "0.14.39", + "esbuild-linux-mips64le": "0.14.39", + "esbuild-linux-ppc64le": "0.14.39", + "esbuild-linux-riscv64": "0.14.39", + "esbuild-linux-s390x": "0.14.39", + "esbuild-netbsd-64": "0.14.39", + "esbuild-openbsd-64": "0.14.39", + "esbuild-sunos-64": "0.14.39", + "esbuild-windows-32": "0.14.39", + "esbuild-windows-64": "0.14.39", + "esbuild-windows-arm64": "0.14.39" } }, "node_modules/esbuild-android-64": { - "version": "0.14.29", - "resolved": "https://registry.npmjs.org/esbuild-android-64/-/esbuild-android-64-0.14.29.tgz", - "integrity": "sha512-tJuaN33SVZyiHxRaVTo1pwW+rn3qetJX/SRuc/83rrKYtyZG0XfsQ1ao1nEudIt9w37ZSNXR236xEfm2C43sbw==", + "version": "0.14.39", + "resolved": "https://registry.npmjs.org/esbuild-android-64/-/esbuild-android-64-0.14.39.tgz", + "integrity": "sha512-EJOu04p9WgZk0UoKTqLId9VnIsotmI/Z98EXrKURGb3LPNunkeffqQIkjS2cAvidh+OK5uVrXaIP229zK6GvhQ==", "cpu": [ "x64" ], @@ -3480,9 +3323,9 @@ } }, "node_modules/esbuild-android-arm64": { - "version": "0.14.29", - "resolved": "https://registry.npmjs.org/esbuild-android-arm64/-/esbuild-android-arm64-0.14.29.tgz", - "integrity": "sha512-D74dCv6yYnMTlofVy1JKiLM5JdVSQd60/rQfJSDP9qvRAI0laPXIG/IXY1RG6jobmFMUfL38PbFnCqyI/6fPXg==", + "version": "0.14.39", + "resolved": "https://registry.npmjs.org/esbuild-android-arm64/-/esbuild-android-arm64-0.14.39.tgz", + "integrity": "sha512-+twajJqO7n3MrCz9e+2lVOnFplRsaGRwsq1KL/uOy7xK7QdRSprRQcObGDeDZUZsacD5gUkk6OiHiYp6RzU3CA==", "cpu": [ "arm64" ], @@ -3496,9 +3339,9 @@ } }, "node_modules/esbuild-darwin-64": { - "version": "0.14.29", - "resolved": "https://registry.npmjs.org/esbuild-darwin-64/-/esbuild-darwin-64-0.14.29.tgz", - "integrity": "sha512-+CJaRvfTkzs9t+CjGa0Oa28WoXa7EeLutQhxus+fFcu0MHhsBhlmeWHac3Cc/Sf/xPi1b2ccDFfzGYJCfV0RrA==", + "version": "0.14.39", + "resolved": "https://registry.npmjs.org/esbuild-darwin-64/-/esbuild-darwin-64-0.14.39.tgz", + "integrity": "sha512-ImT6eUw3kcGcHoUxEcdBpi6LfTRWaV6+qf32iYYAfwOeV+XaQ/Xp5XQIBiijLeo+LpGci9M0FVec09nUw41a5g==", "cpu": [ "x64" ], @@ -3512,9 +3355,9 @@ } }, "node_modules/esbuild-darwin-arm64": { - "version": "0.14.29", - "resolved": "https://registry.npmjs.org/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.14.29.tgz", - "integrity": "sha512-5Wgz/+zK+8X2ZW7vIbwoZ613Vfr4A8HmIs1XdzRmdC1kG0n5EG5fvKk/jUxhNlrYPx1gSY7XadQ3l4xAManPSw==", + "version": "0.14.39", + "resolved": "https://registry.npmjs.org/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.14.39.tgz", + "integrity": "sha512-/fcQ5UhE05OiT+bW5v7/up1bDsnvaRZPJxXwzXsMRrr7rZqPa85vayrD723oWMT64dhrgWeA3FIneF8yER0XTw==", "cpu": [ "arm64" ], @@ -3528,9 +3371,9 @@ } }, "node_modules/esbuild-freebsd-64": { - "version": "0.14.29", - "resolved": "https://registry.npmjs.org/esbuild-freebsd-64/-/esbuild-freebsd-64-0.14.29.tgz", - "integrity": "sha512-VTfS7Bm9QA12JK1YXF8+WyYOfvD7WMpbArtDj6bGJ5Sy5xp01c/q70Arkn596aGcGj0TvQRplaaCIrfBG1Wdtg==", + "version": "0.14.39", + "resolved": "https://registry.npmjs.org/esbuild-freebsd-64/-/esbuild-freebsd-64-0.14.39.tgz", + "integrity": "sha512-oMNH8lJI4wtgN5oxuFP7BQ22vgB/e3Tl5Woehcd6i2r6F3TszpCnNl8wo2d/KvyQ4zvLvCWAlRciumhQg88+kQ==", "cpu": [ "x64" ], @@ -3544,9 +3387,9 @@ } }, "node_modules/esbuild-freebsd-arm64": { - "version": "0.14.29", - "resolved": "https://registry.npmjs.org/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.14.29.tgz", - "integrity": "sha512-WP5L4ejwLWWvd3Fo2J5mlXvG3zQHaw5N1KxFGnUc4+2ZFZknP0ST63i0IQhpJLgEJwnQpXv2uZlU1iWZjFqEIg==", + "version": "0.14.39", + "resolved": "https://registry.npmjs.org/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.14.39.tgz", + "integrity": "sha512-1GHK7kwk57ukY2yI4ILWKJXaxfr+8HcM/r/JKCGCPziIVlL+Wi7RbJ2OzMcTKZ1HpvEqCTBT/J6cO4ZEwW4Ypg==", "cpu": [ "arm64" ], @@ -3560,9 +3403,9 @@ } }, "node_modules/esbuild-linux-32": { - "version": "0.14.29", - "resolved": "https://registry.npmjs.org/esbuild-linux-32/-/esbuild-linux-32-0.14.29.tgz", - "integrity": "sha512-4myeOvFmQBWdI2U1dEBe2DCSpaZyjdQtmjUY11Zu2eQg4ynqLb8Y5mNjNU9UN063aVsCYYfbs8jbken/PjyidA==", + "version": "0.14.39", + "resolved": "https://registry.npmjs.org/esbuild-linux-32/-/esbuild-linux-32-0.14.39.tgz", + "integrity": "sha512-g97Sbb6g4zfRLIxHgW2pc393DjnkTRMeq3N1rmjDUABxpx8SjocK4jLen+/mq55G46eE2TA0MkJ4R3SpKMu7dg==", "cpu": [ "ia32" ], @@ -3576,9 +3419,9 @@ } }, "node_modules/esbuild-linux-64": { - "version": "0.14.29", - "resolved": "https://registry.npmjs.org/esbuild-linux-64/-/esbuild-linux-64-0.14.29.tgz", - "integrity": "sha512-iaEuLhssReAKE7HMwxwFJFn7D/EXEs43fFy5CJeA4DGmU6JHh0qVJD2p/UP46DvUXLRKXsXw0i+kv5TdJ1w5pg==", + "version": "0.14.39", + "resolved": "https://registry.npmjs.org/esbuild-linux-64/-/esbuild-linux-64-0.14.39.tgz", + "integrity": "sha512-4tcgFDYWdI+UbNMGlua9u1Zhu0N5R6u9tl5WOM8aVnNX143JZoBZLpCuUr5lCKhnD0SCO+5gUyMfupGrHtfggQ==", "cpu": [ "x64" ], @@ -3592,9 +3435,9 @@ } }, "node_modules/esbuild-linux-arm": { - "version": "0.14.29", - "resolved": "https://registry.npmjs.org/esbuild-linux-arm/-/esbuild-linux-arm-0.14.29.tgz", - "integrity": "sha512-OXa9D9QL1hwrAnYYAHt/cXAuSCmoSqYfTW/0CEY0LgJNyTxJKtqc5mlwjAZAvgyjmha0auS/sQ0bXfGf2wAokQ==", + "version": "0.14.39", + "resolved": "https://registry.npmjs.org/esbuild-linux-arm/-/esbuild-linux-arm-0.14.39.tgz", + "integrity": "sha512-t0Hn1kWVx5UpCzAJkKRfHeYOLyFnXwYynIkK54/h3tbMweGI7dj400D1k0Vvtj2u1P+JTRT9tx3AjtLEMmfVBQ==", "cpu": [ "arm" ], @@ -3608,9 +3451,9 @@ } }, "node_modules/esbuild-linux-arm64": { - "version": "0.14.29", - "resolved": "https://registry.npmjs.org/esbuild-linux-arm64/-/esbuild-linux-arm64-0.14.29.tgz", - "integrity": "sha512-KYf7s8wDfUy+kjKymW3twyGT14OABjGHRkm9gPJ0z4BuvqljfOOUbq9qT3JYFnZJHOgkr29atT//hcdD0Pi7Mw==", + "version": "0.14.39", + "resolved": "https://registry.npmjs.org/esbuild-linux-arm64/-/esbuild-linux-arm64-0.14.39.tgz", + "integrity": "sha512-23pc8MlD2D6Px1mV8GMglZlKgwgNKAO8gsgsLLcXWSs9lQsCYkIlMo/2Ycfo5JrDIbLdwgP8D2vpfH2KcBqrDQ==", "cpu": [ "arm64" ], @@ -3624,9 +3467,9 @@ } }, "node_modules/esbuild-linux-mips64le": { - "version": "0.14.29", - "resolved": "https://registry.npmjs.org/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.14.29.tgz", - "integrity": "sha512-05jPtWQMsZ1aMGfHOvnR5KrTvigPbU35BtuItSSWLI2sJu5VrM8Pr9Owym4wPvA4153DFcOJ1EPN/2ujcDt54g==", + "version": "0.14.39", + "resolved": "https://registry.npmjs.org/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.14.39.tgz", + "integrity": "sha512-epwlYgVdbmkuRr5n4es3B+yDI0I2e/nxhKejT9H0OLxFAlMkeQZxSpxATpDc9m8NqRci6Kwyb/SfmD1koG2Zuw==", "cpu": [ "mips64el" ], @@ -3640,9 +3483,9 @@ } }, "node_modules/esbuild-linux-ppc64le": { - "version": "0.14.29", - "resolved": "https://registry.npmjs.org/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.14.29.tgz", - "integrity": "sha512-FYhBqn4Ir9xG+f6B5VIQVbRuM4S6qwy29dDNYFPoxLRnwTEKToIYIUESN1qHyUmIbfO0YB4phG2JDV2JDN9Kgw==", + "version": "0.14.39", + "resolved": "https://registry.npmjs.org/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.14.39.tgz", + "integrity": "sha512-W/5ezaq+rQiQBThIjLMNjsuhPHg+ApVAdTz2LvcuesZFMsJoQAW2hutoyg47XxpWi7aEjJGrkS26qCJKhRn3QQ==", "cpu": [ "ppc64" ], @@ -3656,9 +3499,9 @@ } }, "node_modules/esbuild-linux-riscv64": { - "version": "0.14.29", - "resolved": "https://registry.npmjs.org/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.14.29.tgz", - "integrity": "sha512-eqZMqPehkb4nZcffnuOpXJQdGURGd6GXQ4ZsDHSWyIUaA+V4FpMBe+5zMPtXRD2N4BtyzVvnBko6K8IWWr36ew==", + "version": "0.14.39", + "resolved": "https://registry.npmjs.org/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.14.39.tgz", + "integrity": "sha512-IS48xeokcCTKeQIOke2O0t9t14HPvwnZcy+5baG13Z1wxs9ZrC5ig5ypEQQh4QMKxURD5TpCLHw2W42CLuVZaA==", "cpu": [ "riscv64" ], @@ -3672,9 +3515,9 @@ } }, "node_modules/esbuild-linux-s390x": { - "version": "0.14.29", - "resolved": "https://registry.npmjs.org/esbuild-linux-s390x/-/esbuild-linux-s390x-0.14.29.tgz", - "integrity": "sha512-o7EYajF1rC/4ho7kpSG3gENVx0o2SsHm7cJ5fvewWB/TEczWU7teDgusGSujxCYcMottE3zqa423VTglNTYhjg==", + "version": "0.14.39", + "resolved": "https://registry.npmjs.org/esbuild-linux-s390x/-/esbuild-linux-s390x-0.14.39.tgz", + "integrity": "sha512-zEfunpqR8sMomqXhNTFEKDs+ik7HC01m3M60MsEjZOqaywHu5e5682fMsqOlZbesEAAaO9aAtRBsU7CHnSZWyA==", "cpu": [ "s390x" ], @@ -3688,9 +3531,9 @@ } }, "node_modules/esbuild-netbsd-64": { - "version": "0.14.29", - "resolved": "https://registry.npmjs.org/esbuild-netbsd-64/-/esbuild-netbsd-64-0.14.29.tgz", - "integrity": "sha512-/esN6tb6OBSot6+JxgeOZeBk6P8V/WdR3GKBFeFpSqhgw4wx7xWUqPrdx4XNpBVO7X4Ipw9SAqgBrWHlXfddww==", + "version": "0.14.39", + "resolved": "https://registry.npmjs.org/esbuild-netbsd-64/-/esbuild-netbsd-64-0.14.39.tgz", + "integrity": "sha512-Uo2suJBSIlrZCe4E0k75VDIFJWfZy+bOV6ih3T4MVMRJh1lHJ2UyGoaX4bOxomYN3t+IakHPyEoln1+qJ1qYaA==", "cpu": [ "x64" ], @@ -3704,9 +3547,9 @@ } }, "node_modules/esbuild-openbsd-64": { - "version": "0.14.29", - "resolved": "https://registry.npmjs.org/esbuild-openbsd-64/-/esbuild-openbsd-64-0.14.29.tgz", - "integrity": "sha512-jUTdDzhEKrD0pLpjmk0UxwlfNJNg/D50vdwhrVcW/D26Vg0hVbthMfb19PJMatzclbK7cmgk1Nu0eNS+abzoHw==", + "version": "0.14.39", + "resolved": "https://registry.npmjs.org/esbuild-openbsd-64/-/esbuild-openbsd-64-0.14.39.tgz", + "integrity": "sha512-secQU+EpgUPpYjJe3OecoeGKVvRMLeKUxSMGHnK+aK5uQM3n1FPXNJzyz1LHFOo0WOyw+uoCxBYdM4O10oaCAA==", "cpu": [ "x64" ], @@ -3720,9 +3563,9 @@ } }, "node_modules/esbuild-sunos-64": { - "version": "0.14.29", - "resolved": "https://registry.npmjs.org/esbuild-sunos-64/-/esbuild-sunos-64-0.14.29.tgz", - "integrity": "sha512-EfhQN/XO+TBHTbkxwsxwA7EfiTHFe+MNDfxcf0nj97moCppD9JHPq48MLtOaDcuvrTYOcrMdJVeqmmeQ7doTcg==", + "version": "0.14.39", + "resolved": "https://registry.npmjs.org/esbuild-sunos-64/-/esbuild-sunos-64-0.14.39.tgz", + "integrity": "sha512-qHq0t5gePEDm2nqZLb+35p/qkaXVS7oIe32R0ECh2HOdiXXkj/1uQI9IRogGqKkK+QjDG+DhwiUw7QoHur/Rwg==", "cpu": [ "x64" ], @@ -3736,9 +3579,9 @@ } }, "node_modules/esbuild-windows-32": { - "version": "0.14.29", - "resolved": "https://registry.npmjs.org/esbuild-windows-32/-/esbuild-windows-32-0.14.29.tgz", - "integrity": "sha512-uoyb0YAJ6uWH4PYuYjfGNjvgLlb5t6b3zIaGmpWPOjgpr1Nb3SJtQiK4YCPGhONgfg2v6DcJgSbOteuKXhwqAw==", + "version": "0.14.39", + "resolved": "https://registry.npmjs.org/esbuild-windows-32/-/esbuild-windows-32-0.14.39.tgz", + "integrity": "sha512-XPjwp2OgtEX0JnOlTgT6E5txbRp6Uw54Isorm3CwOtloJazeIWXuiwK0ONJBVb/CGbiCpS7iP2UahGgd2p1x+Q==", "cpu": [ "ia32" ], @@ -3752,9 +3595,9 @@ } }, "node_modules/esbuild-windows-64": { - "version": "0.14.29", - "resolved": "https://registry.npmjs.org/esbuild-windows-64/-/esbuild-windows-64-0.14.29.tgz", - "integrity": "sha512-X9cW/Wl95QjsH8WUyr3NqbmfdU72jCp71cH3pwPvI4CgBM2IeOUDdbt6oIGljPu2bf5eGDIo8K3Y3vvXCCTd8A==", + "version": "0.14.39", + "resolved": "https://registry.npmjs.org/esbuild-windows-64/-/esbuild-windows-64-0.14.39.tgz", + "integrity": "sha512-E2wm+5FwCcLpKsBHRw28bSYQw0Ikxb7zIMxw3OPAkiaQhLVr3dnVO8DofmbWhhf6b97bWzg37iSZ45ZDpLw7Ow==", "cpu": [ "x64" ], @@ -3768,9 +3611,9 @@ } }, "node_modules/esbuild-windows-arm64": { - "version": "0.14.29", - "resolved": "https://registry.npmjs.org/esbuild-windows-arm64/-/esbuild-windows-arm64-0.14.29.tgz", - "integrity": "sha512-+O/PI+68fbUZPpl3eXhqGHTGK7DjLcexNnyJqtLZXOFwoAjaXlS5UBCvVcR3o2va+AqZTj8o6URaz8D2K+yfQQ==", + "version": "0.14.39", + "resolved": "https://registry.npmjs.org/esbuild-windows-arm64/-/esbuild-windows-arm64-0.14.39.tgz", + "integrity": "sha512-sBZQz5D+Gd0EQ09tZRnz/PpVdLwvp/ufMtJ1iDFYddDaPpZXKqPyaxfYBLs3ueiaksQ26GGa7sci0OqFzNs7KA==", "cpu": [ "arm64" ], @@ -4439,37 +4282,38 @@ } }, "node_modules/express": { - "version": "4.17.3", - "resolved": "https://registry.npmjs.org/express/-/express-4.17.3.tgz", - "integrity": "sha512-yuSQpz5I+Ch7gFrPCk4/c+dIBKlQUxtgwqzph132bsT6qhuzss6I8cLJQz7B3rFblzd6wtcI0ZbGltH/C4LjUg==", + "version": "4.18.1", + "resolved": "https://registry.npmjs.org/express/-/express-4.18.1.tgz", + "integrity": "sha512-zZBcOX9TfehHQhtupq57OF8lFZ3UZi08Y97dwFCkD8p9d/d2Y3M+ykKcwaMDEL+4qyUolgBDX6AblpR3fL212Q==", "dependencies": { "accepts": "~1.3.8", "array-flatten": "1.1.1", - "body-parser": "1.19.2", + "body-parser": "1.20.0", "content-disposition": "0.5.4", "content-type": "~1.0.4", - "cookie": "0.4.2", + "cookie": "0.5.0", "cookie-signature": "1.0.6", "debug": "2.6.9", - "depd": "~1.1.2", + "depd": "2.0.0", "encodeurl": "~1.0.2", "escape-html": "~1.0.3", "etag": "~1.8.1", - "finalhandler": "~1.1.2", + "finalhandler": "1.2.0", "fresh": "0.5.2", + "http-errors": "2.0.0", "merge-descriptors": "1.0.1", "methods": "~1.1.2", - "on-finished": "~2.3.0", + "on-finished": "2.4.1", "parseurl": "~1.3.3", "path-to-regexp": "0.1.7", "proxy-addr": "~2.0.7", - "qs": "6.9.7", + "qs": "6.10.3", "range-parser": "~1.2.1", "safe-buffer": "5.2.1", - "send": "0.17.2", - "serve-static": "1.14.2", + "send": "0.18.0", + "serve-static": "1.15.0", "setprototypeof": "1.2.0", - "statuses": "~1.5.0", + "statuses": "2.0.1", "type-is": "~1.6.18", "utils-merge": "1.0.1", "vary": "~1.1.2" @@ -4486,6 +4330,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", @@ -4528,14 +4380,6 @@ "node": ">=0.6.0" } }, - "node_modules/extract-stack": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/extract-stack/-/extract-stack-2.0.0.tgz", - "integrity": "sha512-AEo4zm+TenK7zQorGK1f9mJ8L14hnTDi2ZQPR+Mub1NX8zimka1mXpV5LpH8x9HoUmFSHZCfLHqWvp0Y4FxxzQ==", - "engines": { - "node": ">=8" - } - }, "node_modules/fast-deep-equal": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", @@ -4651,16 +4495,16 @@ } }, "node_modules/finalhandler": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz", - "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz", + "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==", "dependencies": { "debug": "2.6.9", "encodeurl": "~1.0.2", "escape-html": "~1.0.3", - "on-finished": "~2.3.0", + "on-finished": "2.4.1", "parseurl": "~1.3.3", - "statuses": "~1.5.0", + "statuses": "2.0.1", "unpipe": "~1.0.0" }, "engines": { @@ -4800,6 +4644,19 @@ } } }, + "node_modules/form-data": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", + "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 6" + } + }, "node_modules/forwarded": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", @@ -4916,7 +4773,6 @@ "version": "1.1.1", "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz", "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==", - "dev": true, "dependencies": { "function-bind": "^1.1.1", "has": "^1.0.3", @@ -5168,7 +5024,6 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.2.tgz", "integrity": "sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==", - "dev": true, "engines": { "node": ">= 0.4" }, @@ -5237,18 +5092,26 @@ } }, "node_modules/http-errors": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.8.1.tgz", - "integrity": "sha512-Kpk9Sm7NmI+RHhnj6OIWDI1d6fIoFAtFt9RLaTMRlg/8w49juAStsrBgp0Dp4OdxdVbRIeKhtCUvoi/RuAhO4g==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", + "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", "dependencies": { - "depd": "~1.1.2", + "depd": "2.0.0", "inherits": "2.0.4", "setprototypeof": "1.2.0", - "statuses": ">= 1.5.0 < 2", + "statuses": "2.0.1", "toidentifier": "1.0.1" }, "engines": { - "node": ">= 0.6" + "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/http-proxy-agent": { @@ -6566,9 +6429,9 @@ "integrity": "sha512-7vO7n28+aYO4J+8w96AzhmU8G+Y/xpPDJz/se19ICsqj/momRbb9mh9ZUtkoJ5X3nTnPdhEJyc0qnM6yAsHBaA==" }, "node_modules/nanoid": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.2.tgz", - "integrity": "sha512-CuHBogktKwpm5g2sRgv83jEy2ijFzBwMoYA60orPDR7ynsLijJDqgsi4RDGj3OJpy3Ieb+LYwiRmIOGyytgITA==", + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz", + "integrity": "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==", "bin": { "nanoid": "bin/nanoid.cjs" }, @@ -6952,7 +6815,6 @@ "version": "1.12.0", "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.0.tgz", "integrity": "sha512-Ho2z80bVIvJloH+YzRmpZVQe87+qASmBUKZDWgx9cu+KDrX2ZDH/3tMy+gXbZETVGs2M8YdxObOh7XAtim9Y0g==", - "dev": true, "funding": { "url": "https://github.com/sponsors/ljharb" } @@ -7084,9 +6946,9 @@ } }, "node_modules/on-finished": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", - "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=", + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", + "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", "dependencies": { "ee-first": "1.1.1" }, @@ -7951,9 +7813,9 @@ } }, "node_modules/postcss": { - "version": "8.4.12", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.12.tgz", - "integrity": "sha512-lg6eITwYe9v6Hr5CncVbK70SoioNQIq81nsaG86ev5hAidQvmOeETBqs7jm43K2F5/Ley3ytDtriImV6TpNiSg==", + "version": "8.4.14", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.14.tgz", + "integrity": "sha512-E398TUmfAYFPBSdzgeieK2Y1+1cpdxJx8yXbK/m57nRhKSmk1GB2tO4lbLBtlkfPQTDKfe4Xqv1ASWPpayPEig==", "dev": true, "funding": [ { @@ -7966,7 +7828,7 @@ } ], "dependencies": { - "nanoid": "^3.3.1", + "nanoid": "^3.3.4", "picocolors": "^1.0.0", "source-map-js": "^1.0.2" }, @@ -8345,9 +8207,12 @@ } }, "node_modules/qs": { - "version": "6.9.7", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.9.7.tgz", - "integrity": "sha512-IhMFgUmuNpyRfxA90umL7ByLlgRXu6tIfKPpF5TmcfRLlLCckfP/g3IQmju6jjpu+Hh8rA+2p6A27ZSPOOHdKw==", + "version": "6.10.3", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.10.3.tgz", + "integrity": "sha512-wr7M2E0OFRfIfJZjKGieI8lBKb7fRCH4Fv5KNPEs7gJ8jadvotdsS08PzOKR7opXhZ/Xkjtt3WF9g38drmyRqQ==", + "dependencies": { + "side-channel": "^1.0.4" + }, "engines": { "node": ">=0.6" }, @@ -8409,12 +8274,12 @@ } }, "node_modules/raw-body": { - "version": "2.4.3", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.3.tgz", - "integrity": "sha512-UlTNLIcu0uzb4D2f4WltY6cVjLi+/jEN4lgEUj3E04tpMDpUlkBo/eSn6zou9hum2VMNpCCUone0O0WeJim07g==", + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.1.tgz", + "integrity": "sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==", "dependencies": { "bytes": "3.1.2", - "http-errors": "1.8.1", + "http-errors": "2.0.0", "iconv-lite": "0.4.24", "unpipe": "1.0.0" }, @@ -8687,9 +8552,9 @@ } }, "node_modules/rollup": { - "version": "2.70.1", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.70.1.tgz", - "integrity": "sha512-CRYsI5EuzLbXdxC6RnYhOuRdtz4bhejPMSWjsFLfVM/7w/85n2szZv6yExqUXsBdz5KT8eoubeyDUDjhLHEslA==", + "version": "2.74.1", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.74.1.tgz", + "integrity": "sha512-K2zW7kV8Voua5eGkbnBtWYfMIhYhT9Pel2uhBk2WO5eMee161nPze/XRfvEQPFYz7KgrCCnmh2Wy0AMFLGGmMA==", "dev": true, "bin": { "rollup": "dist/bin/rollup" @@ -8799,23 +8664,23 @@ } }, "node_modules/send": { - "version": "0.17.2", - "resolved": "https://registry.npmjs.org/send/-/send-0.17.2.tgz", - "integrity": "sha512-UJYB6wFSJE3G00nEivR5rgWp8c2xXvJ3OPWPhmuteU0IKj8nKbG3DrjiOmLwpnHGYWAVwA69zmTm++YG0Hmwww==", + "version": "0.18.0", + "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz", + "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==", "dependencies": { "debug": "2.6.9", - "depd": "~1.1.2", - "destroy": "~1.0.4", + "depd": "2.0.0", + "destroy": "1.2.0", "encodeurl": "~1.0.2", "escape-html": "~1.0.3", "etag": "~1.8.1", "fresh": "0.5.2", - "http-errors": "1.8.1", + "http-errors": "2.0.0", "mime": "1.6.0", "ms": "2.1.3", - "on-finished": "~2.3.0", + "on-finished": "2.4.1", "range-parser": "~1.2.1", - "statuses": "~1.5.0" + "statuses": "2.0.1" }, "engines": { "node": ">= 0.8.0" @@ -8834,20 +8699,28 @@ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" }, + "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", "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" }, "node_modules/serve-static": { - "version": "1.14.2", - "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.14.2.tgz", - "integrity": "sha512-+TMNA9AFxUEGuC0z2mevogSnn9MXKb4fa7ngeRMJaaGv8vTwnIEkKi+QGvPt33HSnf8pRS+WGM0EbMtCJLKMBQ==", + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz", + "integrity": "sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==", "dependencies": { "encodeurl": "~1.0.2", "escape-html": "~1.0.3", "parseurl": "~1.3.3", - "send": "0.17.2" + "send": "0.18.0" }, "engines": { "node": ">= 0.8.0" @@ -8914,7 +8787,6 @@ "version": "1.0.4", "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", - "dev": true, "dependencies": { "call-bind": "^1.0.0", "get-intrinsic": "^1.0.2", @@ -9180,11 +9052,11 @@ } }, "node_modules/statuses": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", - "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", "engines": { - "node": ">= 0.6" + "node": ">= 0.8" } }, "node_modules/stoppable": { @@ -9490,18 +9362,18 @@ "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=" }, "node_modules/tinypool": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/tinypool/-/tinypool-0.1.2.tgz", - "integrity": "sha512-fvtYGXoui2RpeMILfkvGIgOVkzJEGediv8UJt7TxdAOY8pnvUkFg/fkvqTfXG9Acc9S17Cnn1S4osDc2164guA==", + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/tinypool/-/tinypool-0.1.3.tgz", + "integrity": "sha512-2IfcQh7CP46XGWGGbdyO4pjcKqsmVqFAPcXfPxcPXmOWt9cYkTP9HcDmGgsfijYoAEc4z9qcpM/BaBz46Y9/CQ==", "dev": true, "engines": { "node": ">=14.0.0" } }, "node_modules/tinyspy": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/tinyspy/-/tinyspy-0.3.0.tgz", - "integrity": "sha512-c5uFHqtUp74R2DJE3/Efg0mH5xicmgziaQXMm/LvuuZn3RdpADH32aEGDRyCzObXT1DNfwDMqRQ/Drh1MlO12g==", + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/tinyspy/-/tinyspy-0.3.2.tgz", + "integrity": "sha512-2+40EP4D3sFYy42UkgkFFB+kiX2Tg3URG/lVvAZFfLxgGpnWl5qQJuBw1gaLttq8UOS+2p3C0WrhJnQigLTT2Q==", "dev": true, "engines": { "node": ">=14.0.0" @@ -9577,9 +9449,9 @@ } }, "node_modules/tslib": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", - "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", + "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==" }, "node_modules/tsutils": { "version": "3.21.0", @@ -9836,9 +9708,9 @@ } }, "node_modules/typescript": { - "version": "4.6.3", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.6.3.tgz", - "integrity": "sha512-yNIatDa5iaofVozS/uQJEl3JRWLKKGJKh6Yaiv0GLGSuhpFJe7P3SbHZ8/yjAHRQwKRoA6YZqlfjXWmVzoVSMw==", + "version": "4.6.4", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.6.4.tgz", + "integrity": "sha512-9ia/jWHIEbo49HfjrLGfKbZSuWo9iTMwXO+Ca3pRsSpbsMbc7/IU8NKdCZVRRBafVPGnoJeFL76ZOAA84I9fEg==", "dev": true, "bin": { "tsc": "bin/tsc", @@ -10035,13 +9907,13 @@ } }, "node_modules/vite": { - "version": "2.9.0", - "resolved": "https://registry.npmjs.org/vite/-/vite-2.9.0.tgz", - "integrity": "sha512-5NAnNqzPmZzJvrswZGeTS2JHrBGIzIWJA2hBTTMYuoBVEMh0xwE0b5yyIXFxf7F07hrK4ugX2LJ7q6t7iIbd4Q==", + "version": "2.9.9", + "resolved": "https://registry.npmjs.org/vite/-/vite-2.9.9.tgz", + "integrity": "sha512-ffaam+NgHfbEmfw/Vuh6BHKKlI/XIAhxE5QSS7gFLIngxg171mg1P3a4LSRME0z2ZU1ScxoKzphkipcYwSD5Ew==", "dev": true, "dependencies": { "esbuild": "^0.14.27", - "postcss": "^8.4.12", + "postcss": "^8.4.13", "resolve": "^1.22.0", "rollup": "^2.59.0" }, @@ -10072,24 +9944,25 @@ } }, "node_modules/vitest": { - "version": "0.8.0", - "resolved": "https://registry.npmjs.org/vitest/-/vitest-0.8.0.tgz", - "integrity": "sha512-8m8OufAQWXlNpjm5dTe5Lc60zruguKJljunveueYrd4aoeXaQvggLX0SPmIW3G6PDtnBdNEynSi+6pibjnutQA==", + "version": "0.12.9", + "resolved": "https://registry.npmjs.org/vitest/-/vitest-0.12.9.tgz", + "integrity": "sha512-1NtyUANS72Qw5PwYvoztk067NX4fSiis2xQxhByOWS33eL2er/yupHyLxlBCOkF2ANe0dLFRvT1GVb+nczL5aw==", "dev": true, "dependencies": { - "@types/chai": "^4.3.0", + "@types/chai": "^4.3.1", "@types/chai-subset": "^1.3.3", "chai": "^4.3.6", + "debug": "^4.3.4", "local-pkg": "^0.4.1", - "tinypool": "^0.1.2", - "tinyspy": "^0.3.0", - "vite": "^2.8.6" + "tinypool": "^0.1.3", + "tinyspy": "^0.3.2", + "vite": "^2.9.8" }, "bin": { "vitest": "vitest.mjs" }, "engines": { - "node": ">=v14.19.1" + "node": ">=v14.16.0" }, "funding": { "url": "https://github.com/sponsors/antfu" @@ -10162,6 +10035,14 @@ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" }, + "node_modules/whatwg-mimetype": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-3.0.0.tgz", + "integrity": "sha512-nt+N2dzIutVRxARx1nghPKGv1xHikU7HKdfafKkLNLindmPU/ch3U31NOCGGA/dmPcmb1VlofO0vnKAcsm0o/Q==", + "engines": { + "node": ">=12" + } + }, "node_modules/whatwg-url": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", @@ -10986,10 +10867,16 @@ } } }, + "@apollo/utils.logger": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@apollo/utils.logger/-/utils.logger-1.0.0.tgz", + "integrity": "sha512-dx9XrjyisD2pOa+KsB5RcDbWIAdgC91gJfeyLCgy0ctJMjQe7yZK5kdWaWlaOoCeX0z6YI9iYlg7vMPyMpQF3Q==" + }, "@apollographql/apollo-tools": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/@apollographql/apollo-tools/-/apollo-tools-0.5.2.tgz", - "integrity": "sha512-KxZiw0Us3k1d0YkJDhOpVH5rJ+mBfjXcgoRoCcslbgirjgLotKMzOcx4PZ7YTEvvEROmvG7X3Aon41GvMmyGsw==" + "version": "0.5.4", + "resolved": "https://registry.npmjs.org/@apollographql/apollo-tools/-/apollo-tools-0.5.4.tgz", + "integrity": "sha512-shM3q7rUbNyXVVRkQJQseXv6bnYM3BUma/eZhwXR4xsuM+bqWnJKvW7SAfRjP7LuSCocrexa5AXhjjawNHrIlw==", + "requires": {} }, "@apollographql/graphql-playground-html": { "version": "1.6.29", @@ -11122,42 +11009,42 @@ "integrity": "sha512-82cpyJyKRoQoRi+14ibCeGPu0CwypgtBAdBhq1WfvagpCZNKqwXbKwXllYSMG91DhmG4jt9gN8eP6lGOtozuaw==" }, "@graphql-tools/merge": { - "version": "8.2.6", - "resolved": "https://registry.npmjs.org/@graphql-tools/merge/-/merge-8.2.6.tgz", - "integrity": "sha512-dkwTm4czMISi/Io47IVvq2Fl9q4TIGKpJ0VZjuXYdEFkECyH6A5uwxZfPVandZG+gQs8ocFFoa6RisiUJLZrJw==", + "version": "8.2.13", + "resolved": "https://registry.npmjs.org/@graphql-tools/merge/-/merge-8.2.13.tgz", + "integrity": "sha512-lhzjCa6wCthOYl7B6UzER3SGjU2WjSGnW0WGr8giMYsrtf6G3vIRotMcSVMlhDzyyMIOn7uPULOUt3/kaJ/rIA==", "requires": { - "@graphql-tools/utils": "8.6.5", - "tslib": "~2.3.0" + "@graphql-tools/utils": "8.6.12", + "tslib": "~2.4.0" } }, "@graphql-tools/mock": { - "version": "8.6.3", - "resolved": "https://registry.npmjs.org/@graphql-tools/mock/-/mock-8.6.3.tgz", - "integrity": "sha512-Nv095DXWz5Xt6U3SHhkIVtfuWyBNW1yiQk1o+DgM8/4Vj+v6zic1/y3eUpmoiy/qKu3qgagA6mxI8ZU/W6VS8w==", + "version": "8.6.11", + "resolved": "https://registry.npmjs.org/@graphql-tools/mock/-/mock-8.6.11.tgz", + "integrity": "sha512-O9q/tdKCMURAzRLM6hGBCik/bCh8Opk6XUX5AhhDrEyLwTJVwGUsI/vSctRmVq7yfFm0dNBQosz/EsqL0fkNZg==", "requires": { - "@graphql-tools/schema": "8.3.5", - "@graphql-tools/utils": "8.6.5", + "@graphql-tools/schema": "8.3.13", + "@graphql-tools/utils": "8.6.12", "fast-json-stable-stringify": "^2.1.0", - "tslib": "~2.3.0" + "tslib": "~2.4.0" } }, "@graphql-tools/schema": { - "version": "8.3.5", - "resolved": "https://registry.npmjs.org/@graphql-tools/schema/-/schema-8.3.5.tgz", - "integrity": "sha512-3mJ/K7TdL+fnEUtCUqF4qkh1fcNMzaxgwKgO9fSYSTS7zyT16hbi5XSulSTshygHgaD2u+MO588iR4ZJcbZcIg==", + "version": "8.3.13", + "resolved": "https://registry.npmjs.org/@graphql-tools/schema/-/schema-8.3.13.tgz", + "integrity": "sha512-e+bx1VHj1i5v4HmhCYCar0lqdoLmkRi/CfV07rTqHR6CRDbIb/S/qDCajHLt7FCovQ5ozlI5sRVbBhzfq5H0PQ==", "requires": { - "@graphql-tools/merge": "8.2.6", - "@graphql-tools/utils": "8.6.5", - "tslib": "~2.3.0", + "@graphql-tools/merge": "8.2.13", + "@graphql-tools/utils": "8.6.12", + "tslib": "~2.4.0", "value-or-promise": "1.0.11" } }, "@graphql-tools/utils": { - "version": "8.6.5", - "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-8.6.5.tgz", - "integrity": "sha512-mjOtaWiS2WIqRz/cq5gaeM3sVrllcu2xbtHROw1su1v3xWa3D3dKgn8Lrl7+tvWs5WUVySsBss/VZ3WdoPkCrA==", + "version": "8.6.12", + "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-8.6.12.tgz", + "integrity": "sha512-WQ91O40RC+UJgZ9K+IzevSf8oolR1QE+WQ21Oyc2fgDYYiqT0eSf+HVyhZr/8x9rVjn3N9HeqCsywbdmbljg0w==", "requires": { - "tslib": "~2.3.0" + "tslib": "~2.4.0" } }, "@humanwhocodes/config-array": { @@ -11415,32 +11302,6 @@ } } }, - "@oclif/command": { - "version": "1.8.16", - "resolved": "https://registry.npmjs.org/@oclif/command/-/command-1.8.16.tgz", - "integrity": "sha512-rmVKYEsKzurfRU0xJz+iHelbi1LGlihIWZ7Qvmb/CBz1EkhL7nOkW4SVXmG2dA5Ce0si2gr88i6q4eBOMRNJ1w==", - "requires": { - "@oclif/config": "^1.18.2", - "@oclif/errors": "^1.3.5", - "@oclif/help": "^1.0.1", - "@oclif/parser": "^3.8.6", - "debug": "^4.1.1", - "semver": "^7.3.2" - } - }, - "@oclif/config": { - "version": "1.18.3", - "resolved": "https://registry.npmjs.org/@oclif/config/-/config-1.18.3.tgz", - "integrity": "sha512-sBpko86IrTscc39EvHUhL+c++81BVTsIZ3ETu/vG+cCdi0N6vb2DoahR67A9FI2CGnxRRHjnTfa3m6LulwNATA==", - "requires": { - "@oclif/errors": "^1.3.5", - "@oclif/parser": "^3.8.0", - "debug": "^4.1.1", - "globby": "^11.0.1", - "is-wsl": "^2.1.1", - "tslib": "^2.3.1" - } - }, "@oclif/core": { "version": "1.3.4", "resolved": "https://registry.npmjs.org/@oclif/core/-/core-1.3.4.tgz", @@ -11487,100 +11348,11 @@ } } }, - "@oclif/errors": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/@oclif/errors/-/errors-1.3.5.tgz", - "integrity": "sha512-OivucXPH/eLLlOT7FkCMoZXiaVYf8I/w1eTAM1+gKzfhALwWTusxEx7wBmW0uzvkSg/9ovWLycPaBgJbM3LOCQ==", - "requires": { - "clean-stack": "^3.0.0", - "fs-extra": "^8.1", - "indent-string": "^4.0.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^7.0.0" - }, - "dependencies": { - "fs-extra": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", - "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", - "requires": { - "graceful-fs": "^4.2.0", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - } - }, - "jsonfile": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", - "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", - "requires": { - "graceful-fs": "^4.1.6" - } - }, - "universalify": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", - "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==" - } - } - }, - "@oclif/help": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@oclif/help/-/help-1.0.1.tgz", - "integrity": "sha512-8rsl4RHL5+vBUAKBL6PFI3mj58hjPCp2VYyXD4TAa7IMStikFfOH2gtWmqLzIlxAED2EpD0dfYwo9JJxYsH7Aw==", - "requires": { - "@oclif/config": "1.18.2", - "@oclif/errors": "1.3.5", - "chalk": "^4.1.2", - "indent-string": "^4.0.0", - "lodash": "^4.17.21", - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "widest-line": "^3.1.0", - "wrap-ansi": "^6.2.0" - }, - "dependencies": { - "@oclif/config": { - "version": "1.18.2", - "resolved": "https://registry.npmjs.org/@oclif/config/-/config-1.18.2.tgz", - "integrity": "sha512-cE3qfHWv8hGRCP31j7fIS7BfCflm/BNZ2HNqHexH+fDrdF2f1D5S8VmXWLC77ffv3oDvWyvE9AZeR0RfmHCCaA==", - "requires": { - "@oclif/errors": "^1.3.3", - "@oclif/parser": "^3.8.0", - "debug": "^4.1.1", - "globby": "^11.0.1", - "is-wsl": "^2.1.1", - "tslib": "^2.0.0" - } - }, - "wrap-ansi": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", - "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", - "requires": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - } - } - } - }, "@oclif/linewrap": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/@oclif/linewrap/-/linewrap-1.0.0.tgz", "integrity": "sha512-Ups2dShK52xXa8w6iBWLgcjPJWjais6KPJQq3gQ/88AY6BXoTX+MIGFPrWQO1KLMiQfoTpcLnUwloN4brrVUHw==" }, - "@oclif/parser": { - "version": "3.8.6", - "resolved": "https://registry.npmjs.org/@oclif/parser/-/parser-3.8.6.tgz", - "integrity": "sha512-tXb0NKgSgNxmf6baN6naK+CCwOueaFk93FG9u202U7mTBHUKsioOUlw1SG/iPi9aJM3WE4pHLXmty59pci0OEw==", - "requires": { - "@oclif/errors": "^1.2.2", - "@oclif/linewrap": "^1.0.0", - "chalk": "^4.1.0", - "tslib": "^2.0.0" - } - }, "@oclif/plugin-help": { "version": "5.1.11", "resolved": "https://registry.npmjs.org/@oclif/plugin-help/-/plugin-help-5.1.11.tgz", @@ -11762,7 +11534,7 @@ "@protobufjs/aspromise": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/@protobufjs/aspromise/-/aspromise-1.1.2.tgz", - "integrity": "sha1-m4sMxmPWaafY9vXQiToU00jzD78=" + "integrity": "sha512-j+gKExEuLmKwvz3OgROXtrJ2UG2x8Ch2YZUxahh+s1F2HZ+wAceUNLkvy6zKCPVRkU++ZWQrdxsUeQXmcg4uoQ==" }, "@protobufjs/base64": { "version": "1.1.2", @@ -11777,12 +11549,12 @@ "@protobufjs/eventemitter": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/@protobufjs/eventemitter/-/eventemitter-1.1.0.tgz", - "integrity": "sha1-NVy8mLr61ZePntCV85diHx0Ga3A=" + "integrity": "sha512-j9ednRT81vYJ9OfVuXG6ERSTdEL1xVsNgqpkxMsbIabzSo3goCjDIveeGv5d03om39ML71RdmrGNjG5SReBP/Q==" }, "@protobufjs/fetch": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/@protobufjs/fetch/-/fetch-1.1.0.tgz", - "integrity": "sha1-upn7WYYUr2VwDBYZ/wbUVLDYTEU=", + "integrity": "sha512-lljVXpqXebpsijW71PZaCYeIcE5on1w5DlQy5WH6GLbFryLUrBD4932W/E2BSpfRJWseIL4v/KPgBFxDOIdKpQ==", "requires": { "@protobufjs/aspromise": "^1.1.1", "@protobufjs/inquire": "^1.1.0" @@ -11791,27 +11563,27 @@ "@protobufjs/float": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/@protobufjs/float/-/float-1.0.2.tgz", - "integrity": "sha1-Xp4avctz/Ap8uLKR33jIy9l7h9E=" + "integrity": "sha512-Ddb+kVXlXst9d+R9PfTIxh1EdNkgoRe5tOX6t01f1lYWOvJnSPDBlG241QLzcyPdoNTsblLUdujGSE4RzrTZGQ==" }, "@protobufjs/inquire": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/@protobufjs/inquire/-/inquire-1.1.0.tgz", - "integrity": "sha1-/yAOPnzyQp4tyvwRQIKOjMY48Ik=" + "integrity": "sha512-kdSefcPdruJiFMVSbn801t4vFK7KB/5gd2fYvrxhuJYg8ILrmn9SKSX2tZdV6V+ksulWqS7aXjBcRXl3wHoD9Q==" }, "@protobufjs/path": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/@protobufjs/path/-/path-1.1.2.tgz", - "integrity": "sha1-bMKyDFya1q0NzP0hynZz2Nf79o0=" + "integrity": "sha512-6JOcJ5Tm08dOHAbdR3GrvP+yUUfkjG5ePsHYczMFLq3ZmMkAD98cDgcT2iA1lJ9NVwFd4tH/iSSoe44YWkltEA==" }, "@protobufjs/pool": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/@protobufjs/pool/-/pool-1.1.0.tgz", - "integrity": "sha1-Cf0V8tbTq/qbZbw2ZQbWrXhG/1Q=" + "integrity": "sha512-0kELaGSIDBKvcgS4zkjz1PeddatrjYcmMWOlAuAPwAeccUrPHdUqo/J6LiymHHEiJT5NrF1UVwxY14f+fy4WQw==" }, "@protobufjs/utf8": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/@protobufjs/utf8/-/utf8-1.1.0.tgz", - "integrity": "sha1-p3c2C1s5oaLlEG+OhY8v0tBgxXA=" + "integrity": "sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==" }, "@sqltools/formatter": { "version": "1.2.3", @@ -11819,9 +11591,9 @@ "integrity": "sha512-O3uyB/JbkAEMZaP3YqyHH7TMnex7tWyCbCI4EfJdOCoN6HIhqdJBWTM6aCCiWQ/5f5wxjgU735QAIpJbjDvmzg==" }, "@subsquid/archive-registry": { - "version": "0.0.4", - "resolved": "https://registry.npmjs.org/@subsquid/archive-registry/-/archive-registry-0.0.4.tgz", - "integrity": "sha512-qqXUhIcwYWLLrflk1br+F9lCd3K4tZEcJexEVFCM5cuHgHiYy7BxnTfd7UbSJIf+oIo461KxhDXqKQrAfUpqWg==", + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/@subsquid/archive-registry/-/archive-registry-0.0.6.tgz", + "integrity": "sha512-Uy0nav9GujIx7v9yTLBGR+HsuEUSRPYkZfMMXDbl+8ZSCI1wtzFPugB9d3/lJeC0Rslx3PyJl098Vnj+my8mqw==", "requires": { "node-abort-controller": "^3.0.1", "node-fetch": "^2", @@ -11829,33 +11601,46 @@ } }, "@subsquid/cli": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/@subsquid/cli/-/cli-0.2.1.tgz", - "integrity": "sha512-H0UM2KmttBCpjwsKr59oUdj6bcGHp2DxRiT0pDamSJsskV8uYhuqMT9khv3EvQh8WSkjtJVNMqeTX/nYaHo6pw==", + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/@subsquid/cli/-/cli-0.4.1.tgz", + "integrity": "sha512-xTZGj9m0+5+DP2WYa1ZKUvalcOHRhFEIZD976Xa1lBvN8rdmDhjtfnj+tFdeW1gD83mAmavp/iO4bXFdoTYqeg==", "requires": { "@oclif/core": "^1.3.0", "@oclif/plugin-help": "^5.1.11", "@octokit/auth-oauth-device": "^3.1.2", - "@subsquid/openreader": "^0.5.1", - "@subsquid/typeorm-config": "^0.0.4", - "@subsquid/util": "^0.0.4", + "@subsquid/openreader": "^0.7.0", + "@subsquid/typeorm-config": "^0.0.5", + "@subsquid/util": "^0.0.5", "chalk": "^4.1.2", "cli-select": "^1.1.2", - "cli-ux": "^5.6.7", "dotenv": "^10.0.0", + "js-yaml": "^4.1.0", "node-fetch": "^2.6.7", "oclif": "^2.4.3", - "pg": "^8.7.1", + "pg": "^8.7.3", "pgtools": "^0.3.2", "query-string": "^7.1.0", "simple-git": "^2.48.0", "typeorm": "^0.2.41" }, "dependencies": { + "argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" + }, "dotenv": { "version": "10.0.0", "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-10.0.0.tgz", "integrity": "sha512-rlBi9d8jpv9Sf1klPjNfFAuWDjKLwTIJJ/VxtoTwIR6hnZxcEOQCZg2oIL3MWBYw5GpUDKOEnND7LXTbIpQ03Q==" + }, + "js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "requires": { + "argparse": "^2.0.1" + } } } }, @@ -11865,21 +11650,21 @@ "integrity": "sha512-Wh2Oxi9JkK79Y728yDEeY7JelcY1cGiQTbzVIRMFLT2tjkkoQ69goAGXdh9QmM/ANAVrHQkBUNJOLd5oAg//oQ==" }, "@subsquid/graphql-server": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/@subsquid/graphql-server/-/graphql-server-0.1.5.tgz", - "integrity": "sha512-LpHv1Q6vEFMtWJ7oRvrtBWLFuI53EXyk90UVnnp+s0pcEPNIk6apNCrw5igh8ABGz6kIFbqe37JA+r1HFnZiWw==", + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/@subsquid/graphql-server/-/graphql-server-0.3.0.tgz", + "integrity": "sha512-tiyfsrnxoXD12bmTz1BwByuiEgBgjTgHMDJMbTa+1u8AlAiNA57xM0ahzv6yt05OWLIFQDQtSkt1jn+FOk3uAg==", "requires": { "@graphql-tools/merge": "^8", "@graphql-tools/utils": "^8", - "@subsquid/openreader": "^0.5.0", - "@subsquid/typeorm-config": "^0.0.4", - "@subsquid/util": "^0.0.4", + "@subsquid/openreader": "^0.7.0", + "@subsquid/typeorm-config": "^0.0.5", + "@subsquid/util": "^0.0.5", "apollo-server-core": "^3.6.2", "apollo-server-express": "^3.6.2", "dotenv": "^10.0.0", "express": "^4.17.2", "graphql": "^15.8.0", - "pg": "^8.7.1" + "pg": "^8.7.3" }, "dependencies": { "dotenv": { @@ -11890,20 +11675,20 @@ } }, "@subsquid/openreader": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/@subsquid/openreader/-/openreader-0.5.1.tgz", - "integrity": "sha512-qe61sWse9ME9UeZnLSIs8gCi1k1MYU0YZ5gERuLKFRr/KtSIMz+LI9AJNUeddQigFzn6RxR+J8Wa5k5FNDg2uQ==", + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/@subsquid/openreader/-/openreader-0.7.0.tgz", + "integrity": "sha512-/q4FYvNeSzwZwYI8CSHqjAgmM4uE/UKnoMBv/TOJqyPL9c+otM7qMnl981wYsQDEVyZCZh+N5B5zkaD3ca3yIw==", "requires": { "@graphql-tools/merge": "^8", "@graphql-tools/utils": "^8", "@subsquid/graphiql-console": "^0.2.0", - "@subsquid/util": "^0.0.4", + "@subsquid/util": "^0.0.5", "apollo-server-core": "^3.6.2", "apollo-server-express": "^3.6.2", "express": "^4.17.2", "graphql": "^15.8.0", "graphql-parse-resolve-info": "^4.12.0", - "pg": "^8.7.1" + "pg": "^8.7.3" } }, "@subsquid/rpc-client": { @@ -11915,20 +11700,21 @@ } }, "@subsquid/scale-codec": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/@subsquid/scale-codec/-/scale-codec-0.4.1.tgz", - "integrity": "sha512-aulxRPgG0sY4ywORZjcSyw/1sPRTRRjwvyG096/zLhZtjhKmB3XcYH8lkaQ5O4z2PaWGq4vD0rusduH/jQ8Ejg==", + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/@subsquid/scale-codec/-/scale-codec-0.4.2.tgz", + "integrity": "sha512-zhM+JX+RQ3sKsSh+jq4xM9UyiBm8pqdnc4j9VpBIqmJAaW/l5oiUJeKu1+dR7PYDmCIthBR3bWz02rP1tDTQHw==", "requires": { - "@subsquid/ss58-codec": "^0.1.0" + "@subsquid/util-internal-hex": "^0.0.0" } }, "@subsquid/scale-codec-json": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/@subsquid/scale-codec-json/-/scale-codec-json-0.1.3.tgz", - "integrity": "sha512-/e1H1/249ezS00oSBT8kB4MKDed2PkziZerlf+ankPmW6ZGezWs3f6JCNgabCaSv5io191o/zHamf/l2hgqZyw==", + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/@subsquid/scale-codec-json/-/scale-codec-json-0.1.4.tgz", + "integrity": "sha512-rRJHTOz+pdHP6g6ujaqP97buBl4iz17k9hvDgIBUeeup/EPmSp1DdYB2J+4LhhNHO0DDtTcdH+3LwyIUoJxpFw==", "requires": { - "@subsquid/scale-codec": "^0.4.1", - "@subsquid/ss58-codec": "^0.1.0" + "@subsquid/scale-codec": "^0.4.2", + "@subsquid/ss58-codec": "^0.1.0", + "@subsquid/util-internal-hex": "^0.0.0" } }, "@subsquid/ss58": { @@ -11949,36 +11735,36 @@ } }, "@subsquid/substrate-metadata": { - "version": "0.8.0", - "resolved": "https://registry.npmjs.org/@subsquid/substrate-metadata/-/substrate-metadata-0.8.0.tgz", - "integrity": "sha512-jNpLoS23ofacULkXBR9FQPxRVnqoE1CI4fC6aJv3T7346l5t9bDTELCLaRD3ucsWpLkB3cTonra3aBAq0v3ujA==", + "version": "0.8.4", + "resolved": "https://registry.npmjs.org/@subsquid/substrate-metadata/-/substrate-metadata-0.8.4.tgz", + "integrity": "sha512-hpPvrQhTxilMPoLNvPFUDlCKNVR5VtFpYD5A4JWTHvxN913BrPh9dODbYkvdl75nM7izCAZjQA3UyD4thWriBA==", "requires": { - "@subsquid/scale-codec": "^0.4.1", - "@subsquid/util": "^0.0.4" + "@subsquid/scale-codec": "^0.4.2", + "@subsquid/util": "^0.0.5" } }, "@subsquid/substrate-metadata-explorer": { - "version": "0.0.7", - "resolved": "https://registry.npmjs.org/@subsquid/substrate-metadata-explorer/-/substrate-metadata-explorer-0.0.7.tgz", - "integrity": "sha512-Vq3OGjaVlMJUqFm6g3DYhmvUQ49yTcVmkPRDHY0Awy8eI0WTh894S1UX8RyGRRbm9g0TobQHPT1qouiQG7NwWg==", + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/@subsquid/substrate-metadata-explorer/-/substrate-metadata-explorer-0.0.8.tgz", + "integrity": "sha512-CXqAeKVYtKk3U/R7e5m12XBM9lG8Pu1aht3UxaRYgpmvazeGRpFaELE2iNgvxWNNwR13zdGrDD8O3sxLw9YkGw==", "dev": true, "requires": { - "@subsquid/rpc-client": "^0.1.3", - "commander": "^8.3.0", + "@subsquid/rpc-client": "^0.1.5", + "commander": "^9.0.0", "node-fetch": "^2.6.7" } }, "@subsquid/substrate-processor": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/@subsquid/substrate-processor/-/substrate-processor-0.6.1.tgz", - "integrity": "sha512-vo2cWBzTq6v9/uoHYY3NFJtWTXFyvrlUzEwaUqiBHymLsrQkVQLghy+zfX2jT0WnNUie6+5kgOdFUwsHFcIMJQ==", + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/@subsquid/substrate-processor/-/substrate-processor-0.8.0.tgz", + "integrity": "sha512-9AdUzhwisX7oz4qcdJ93dPxDq/dI+pyUf+Cq+2Vl5kmyPagrFB9TJ0lS8w7DGn7Ibg9fg9QszOztYyemxTbSDw==", "requires": { "@subsquid/rpc-client": "^0.1.5", - "@subsquid/scale-codec": "^0.4.1", - "@subsquid/scale-codec-json": "^0.1.3", - "@subsquid/substrate-metadata": "^0.8.0", - "@subsquid/typeorm-config": "^0.0.4", - "@subsquid/util": "^0.0.4", + "@subsquid/scale-codec": "^0.4.2", + "@subsquid/scale-codec-json": "^0.1.4", + "@subsquid/substrate-metadata": "^0.8.3", + "@subsquid/typeorm-config": "^0.0.5", + "@subsquid/util": "^0.0.5", "@subsquid/util-xxhash": "^0.1.0", "blake2b": "^2.1.4", "node-fetch": "^2.6.7", @@ -11987,35 +11773,41 @@ } }, "@subsquid/substrate-typegen": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/@subsquid/substrate-typegen/-/substrate-typegen-0.4.1.tgz", - "integrity": "sha512-M1+zhAjI3YCDoS7ZFy66gxfVMNm8bRmCEd3TGQL17e6ptWafoyb+JZ11H5eYaDwBepCIZaUS9rv9TQX75TjaMw==", + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/@subsquid/substrate-typegen/-/substrate-typegen-0.5.0.tgz", + "integrity": "sha512-mXG2F6YRuN5TdAT6IIKOReb/Rc84UovaolyUQlEGQfSQ/7QoxeIby9L4DEWsZi9pq00m2U0RA7SZyLavnf7I/g==", "dev": true, "requires": { - "@subsquid/scale-codec": "^0.4.1", - "@subsquid/substrate-metadata": "^0.8.0", - "@subsquid/util": "^0.0.4", + "@subsquid/scale-codec": "^0.4.2", + "@subsquid/substrate-metadata": "^0.8.3", + "@subsquid/util": "^0.0.5", "ajv": "^8.9.0", - "commander": "^8.3.0" + "commander": "^9.0.0" } }, "@subsquid/typeorm-config": { - "version": "0.0.4", - "resolved": "https://registry.npmjs.org/@subsquid/typeorm-config/-/typeorm-config-0.0.4.tgz", - "integrity": "sha512-HFJGywcHLL/aXqDUpnALuaiKxUNp093B0dV1m4rUQ4YyEKrMhAY35khnrvUF4dVOefCRduF1TNVtNr9VRwOJ+Q==", + "version": "0.0.5", + "resolved": "https://registry.npmjs.org/@subsquid/typeorm-config/-/typeorm-config-0.0.5.tgz", + "integrity": "sha512-Nay/l6Kg/1lqctg+H03S/CznqezEtX6oG0JR7p5eMSbR/nhUO2mgyWvuHF4SEcjvnKa0//RyCIoblqYzC4UFyQ==", "requires": { - "@subsquid/util": "^0.0.4" + "@subsquid/util": "^0.0.5" } }, "@subsquid/util": { - "version": "0.0.4", - "resolved": "https://registry.npmjs.org/@subsquid/util/-/util-0.0.4.tgz", - "integrity": "sha512-H62DBxWzfWhzbpKNnaRMdFNL8ZksxNAxOlFfZFFBwFGiV5xEFKrjPa/nI/Iz6+8luCo8zcOMZ+xd1IMGlT/FZQ==", + "version": "0.0.5", + "resolved": "https://registry.npmjs.org/@subsquid/util/-/util-0.0.5.tgz", + "integrity": "sha512-lsLccBDaALszIl7TbXTR/pnqReRViglqa7tNRWGxpf10+u31/OTW2EGDLkqtHkoUnf6uU2sspu7rHGY4vI4KHQ==", "requires": { + "@subsquid/util-internal-hex": "^0.0.0", "camelcase": "^6.3.0", "inflected": "^2.1.0" } }, + "@subsquid/util-internal-hex": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/@subsquid/util-internal-hex/-/util-internal-hex-0.0.0.tgz", + "integrity": "sha512-cZ+P9e+kyHRArBroXNBXs1tbROCwx877ETaM4f9M+fbGKqupZU0/IWIwcrOS0tck4evPsaZO7prmLFMSH0/8aQ==" + }, "@subsquid/util-xxhash": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/@subsquid/util-xxhash/-/util-xxhash-0.1.0.tgz", @@ -12048,9 +11840,9 @@ } }, "@types/chai": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/@types/chai/-/chai-4.3.0.tgz", - "integrity": "sha512-/ceqdqeRraGolFTcfoXNiqjyQhZzbINDngeoAq9GoHa8PPK1yNzTaxWjA6BFWp5Ua9JpXEMSS4s5i9tS0hOJtw==", + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/@types/chai/-/chai-4.3.1.tgz", + "integrity": "sha512-/zPMqDkzSZ8t3VtxOa4KPq7uzzW978M9Tvh+j7GHKuo6k6GTLxPJ4J5gE5cjfJ26pnXst0N5Hax8Sr0T2Mi9zQ==", "dev": true }, "@types/chai-subset": { @@ -12123,9 +11915,9 @@ "dev": true }, "@types/long": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/@types/long/-/long-4.0.1.tgz", - "integrity": "sha512-5tXH6Bx/kNGd3MgffdmP4dy2Z+G4eaXw0SE81Tq3BNadtnMR5/ySMzX4SLEzHJzSmPNn4HIdpQsBvXMUykr58w==" + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/@types/long/-/long-4.0.2.tgz", + "integrity": "sha512-MqTGEo5bj5t157U6fA/BiDynNkn0YknVdh48CMPkTSpFTVmvao5UQmm7uEF6xBEo7qIMAlY/JSleYaE6VOdpaA==" }, "@types/md5": { "version": "2.3.2", @@ -12144,9 +11936,9 @@ "integrity": "sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ==" }, "@types/node": { - "version": "17.0.23", - "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.23.tgz", - "integrity": "sha512-UxDxWn7dl97rKVeVS61vErvw086aCYhDLyvRQZ5Rk65rZKepaFdm53GeqXaKBuOhED4e9uWq34IC3TdSdJJ2Gw==" + "version": "17.0.35", + "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.35.tgz", + "integrity": "sha512-vu1SrqBjbbZ3J6vwY17jBs8Sr/BKA+/a/WtjRG+whKg1iuLFOosq872EXS0eXWILdO36DHQQeku/ZcL6hz2fpg==" }, "@types/normalize-package-data": { "version": "2.4.1", @@ -12425,11 +12217,12 @@ } }, "apollo-server-core": { - "version": "3.6.6", - "resolved": "https://registry.npmjs.org/apollo-server-core/-/apollo-server-core-3.6.6.tgz", - "integrity": "sha512-JKxUY4JZVhCKJeEACZRB/uCXFrOZN6p0fqe1NmFc4GDeYnejDirzzuWLMY1rAgI1N5tXhZniyHDR6nU0SpPbRA==", + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/apollo-server-core/-/apollo-server-core-3.7.0.tgz", + "integrity": "sha512-xUCDjrBzPVbttbh/HenuQdivco/dcXE2oIDYwCU6FU2RBXqxWFmuCl2Xe7VPA/5Frw/4snJDLCyVte9PA5edww==", "requires": { - "@apollographql/apollo-tools": "^0.5.1", + "@apollo/utils.logger": "^1.0.0", + "@apollographql/apollo-tools": "^0.5.3", "@apollographql/graphql-playground-html": "1.6.29", "@graphql-tools/mock": "^8.1.2", "@graphql-tools/schema": "^8.0.0", @@ -12439,8 +12232,8 @@ "apollo-server-caching": "^3.3.0", "apollo-server-env": "^4.2.1", "apollo-server-errors": "^3.3.1", - "apollo-server-plugin-base": "^3.5.2", - "apollo-server-types": "^3.5.2", + "apollo-server-plugin-base": "^3.5.3", + "apollo-server-types": "^3.5.3", "async-retry": "^1.2.1", "fast-json-stable-stringify": "^2.1.0", "graphql-tag": "^2.11.0", @@ -12448,7 +12241,8 @@ "loglevel": "^1.6.8", "lru-cache": "^6.0.0", "sha.js": "^2.4.11", - "uuid": "^8.0.0" + "uuid": "^8.0.0", + "whatwg-mimetype": "^3.0.0" } }, "apollo-server-env": { @@ -12466,9 +12260,9 @@ "requires": {} }, "apollo-server-express": { - "version": "3.6.6", - "resolved": "https://registry.npmjs.org/apollo-server-express/-/apollo-server-express-3.6.6.tgz", - "integrity": "sha512-27D+rRd/yfIFx333yYc6WgAhI6hCPbM3r53Ha0SFCGZ7BGvccVvKlhlbLYdkLEO0DQEdVKI7YuZq4yoM0qdZ/g==", + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/apollo-server-express/-/apollo-server-express-3.7.0.tgz", + "integrity": "sha512-176LSK7YBxwfleurtbfr5SYMheNNJSHrQa2h4QuosLqhfFJkfTpI2iBW56N737U47QfyueCOvkjNZVq86e3n2g==", "requires": { "@types/accepts": "^1.3.5", "@types/body-parser": "1.19.2", @@ -12476,25 +12270,25 @@ "@types/express": "4.17.13", "@types/express-serve-static-core": "4.17.28", "accepts": "^1.3.5", - "apollo-server-core": "^3.6.6", - "apollo-server-types": "^3.5.2", + "apollo-server-core": "^3.7.0", + "apollo-server-types": "^3.5.3", "body-parser": "^1.19.0", "cors": "^2.8.5", "parseurl": "^1.3.3" } }, "apollo-server-plugin-base": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/apollo-server-plugin-base/-/apollo-server-plugin-base-3.5.2.tgz", - "integrity": "sha512-SwIf1waDmNDb0kmn57QR++InwK6Iv/X2slpm/aFIoqFBe91r6uJfakJvQZuh8dLEgk68gxqFsT8zHRpxBclE+g==", + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/apollo-server-plugin-base/-/apollo-server-plugin-base-3.5.3.tgz", + "integrity": "sha512-zojm3qiUGYtM5k1PPrCJnLZSDNqvWvmIDvqBjCu3wI3iNZqNm3MOA86eYGFfaBi/WNu3qYIj6QE3T7w0XjRV1A==", "requires": { - "apollo-server-types": "^3.5.2" + "apollo-server-types": "^3.5.3" } }, "apollo-server-types": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/apollo-server-types/-/apollo-server-types-3.5.2.tgz", - "integrity": "sha512-vhcbIWsBkoNibABOym4AAPBoNDjokhjUQokKYdwZMeqrb850PMQdNJFrGyXT5onP408Ghv4O8PfgBuPQmeJhVQ==", + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/apollo-server-types/-/apollo-server-types-3.5.3.tgz", + "integrity": "sha512-Qf5mMVTDyABEeyjGecwMsk0y0km4KuW8/j/UwBDQkAAW1QRy+w8nqi+wvSoA5hNXiYCdJN4U4nxTxm9+2eiT4w==", "requires": { "apollo-reporting-protobuf": "^3.3.1", "apollo-server-caching": "^3.3.0", @@ -12536,7 +12330,7 @@ "array-flatten": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", - "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=" + "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==" }, "array-includes": { "version": "3.1.4", @@ -12602,6 +12396,11 @@ "retry": "0.13.1" } }, + "asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" + }, "at-least-node": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz", @@ -12655,11 +12454,12 @@ } }, "axios": { - "version": "0.26.1", - "resolved": "https://registry.npmjs.org/axios/-/axios-0.26.1.tgz", - "integrity": "sha512-fPwcX4EvnSHuInCMItEhAGnaSEXRBjtzh9fOtsE6E1G6p7vl7edEeZe11QHf18+6+9gR5PbKV/sGKNaD8YaMeA==", + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/axios/-/axios-0.27.2.tgz", + "integrity": "sha512-t+yRIyySRTp/wua5xEr+z1q60QmLq8ABsS5O9Me1AsE5dfKqgnCFzwiCZZ/cGNd1lq4/7akDWMxdhVlucjmnOQ==", "requires": { - "follow-redirects": "^1.14.8" + "follow-redirects": "^1.14.9", + "form-data": "^4.0.0" } }, "b4a": { @@ -12777,20 +12577,22 @@ "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==" }, "body-parser": { - "version": "1.19.2", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.2.tgz", - "integrity": "sha512-SAAwOxgoCKMGs9uUAUFHygfLAyaniaoun6I8mFY9pRAJL9+Kec34aU+oIjDhTycub1jozEfEwx1W1IuOYxVSFw==", + "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==", "requires": { "bytes": "3.1.2", "content-type": "~1.0.4", "debug": "2.6.9", - "depd": "~1.1.2", - "http-errors": "1.8.1", + "depd": "2.0.0", + "destroy": "1.2.0", + "http-errors": "2.0.0", "iconv-lite": "0.4.24", - "on-finished": "~2.3.0", - "qs": "6.9.7", - "raw-body": "2.4.3", - "type-is": "~1.6.18" + "on-finished": "2.4.1", + "qs": "6.10.3", + "raw-body": "2.5.1", + "type-is": "~1.6.18", + "unpipe": "1.0.0" }, "dependencies": { "debug": { @@ -12801,6 +12603,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", @@ -12907,7 +12714,6 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", - "dev": true, "requires": { "function-bind": "^1.1.1", "get-intrinsic": "^1.0.2" @@ -13048,77 +12854,6 @@ "colors": "1.0.3" } }, - "cli-ux": { - "version": "5.6.7", - "resolved": "https://registry.npmjs.org/cli-ux/-/cli-ux-5.6.7.tgz", - "integrity": "sha512-dsKAurMNyFDnO6X1TiiRNiVbL90XReLKcvIq4H777NMqXGBxBws23ag8ubCJE97vVZEgWG2eSUhsyLf63Jv8+g==", - "requires": { - "@oclif/command": "^1.8.15", - "@oclif/errors": "^1.3.5", - "@oclif/linewrap": "^1.0.0", - "@oclif/screen": "^1.0.4", - "ansi-escapes": "^4.3.0", - "ansi-styles": "^4.2.0", - "cardinal": "^2.1.1", - "chalk": "^4.1.0", - "clean-stack": "^3.0.0", - "cli-progress": "^3.4.0", - "extract-stack": "^2.0.0", - "fs-extra": "^8.1", - "hyperlinker": "^1.0.0", - "indent-string": "^4.0.0", - "is-wsl": "^2.2.0", - "js-yaml": "^3.13.1", - "lodash": "^4.17.21", - "natural-orderby": "^2.0.1", - "object-treeify": "^1.1.4", - "password-prompt": "^1.1.2", - "semver": "^7.3.2", - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "supports-color": "^8.1.0", - "supports-hyperlinks": "^2.1.0", - "tslib": "^2.0.0" - }, - "dependencies": { - "@oclif/screen": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/@oclif/screen/-/screen-1.0.4.tgz", - "integrity": "sha512-60CHpq+eqnTxLZQ4PGHYNwUX572hgpMHGPtTWMjdTMsAvlm69lZV/4ly6O3sAYkomo4NggGcomrDpBe34rxUqw==" - }, - "fs-extra": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", - "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", - "requires": { - "graceful-fs": "^4.2.0", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - } - }, - "jsonfile": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", - "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", - "requires": { - "graceful-fs": "^4.1.6" - } - }, - "supports-color": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", - "requires": { - "has-flag": "^4.0.0" - } - }, - "universalify": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", - "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==" - } - } - }, "cli-width": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-3.0.0.tgz", @@ -13224,10 +12959,18 @@ "resolved": "https://registry.npmjs.org/colors/-/colors-1.0.3.tgz", "integrity": "sha1-BDP0TYCWgP3rYO0mDxsMJi6CpAs=" }, + "combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "requires": { + "delayed-stream": "~1.0.0" + } + }, "commander": { - "version": "8.3.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz", - "integrity": "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==", + "version": "9.2.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-9.2.0.tgz", + "integrity": "sha512-e2i4wANQiSXgnrBlIatyHtP1odfUp0BbV5Y5nEGbxtIrStkEOAAzCUirvLBNXHLr7kwLvJl6V+4V3XV9x7Wd9w==", "dev": true }, "common-ancestor-path": { @@ -13295,9 +13038,9 @@ "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==" }, "cookie": { - "version": "0.4.2", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.2.tgz", - "integrity": "sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA==" + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz", + "integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==" }, "cookie-signature": { "version": "1.0.6", @@ -13377,9 +13120,9 @@ "integrity": "sha512-2P0p0pFGzHS5EMnhdxQi7aJN+iMheud0UhG4dlE1DLAlvL8JHjJJTX/CSm4JXwV0Ka5nGk3zC5mcb5bUQUxxMA==" }, "debug": { - "version": "4.3.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", - "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", + "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" } @@ -13443,6 +13186,11 @@ "object-keys": "^1.0.12" } }, + "delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=" + }, "delegates": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", @@ -13459,9 +13207,9 @@ "integrity": "sha512-xmHIy4F3scKVwMsQ4WnVaS8bHOx0DmVwRywosKhaILI0ywMDWPtBSku2HNxRvF7jtwDRsoEwYQSfbxj8b7RlJQ==" }, "destroy": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", - "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=" + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", + "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==" }, "detect-indent": { "version": "6.1.0", @@ -13500,9 +13248,9 @@ } }, "dotenv": { - "version": "16.0.0", - "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.0.0.tgz", - "integrity": "sha512-qD9WU0MPM4SWLPJy/r2Be+2WgQj8plChsyrCNQzW/0WjvcJQiKQJ9mH3ZgB3fxbUUxgc/11ZJ0Fi5KiimWGz2Q==" + "version": "16.0.1", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.0.1.tgz", + "integrity": "sha512-1K6hR6wtk2FviQ4kEiSjFiH5rpzEVi8WW0x96aztHVMhEspNpc4DVOUTEHtEva5VThQ8IaBX1Pe4gSzpVVUsKQ==" }, "ee-first": { "version": "1.1.1", @@ -13656,170 +13404,170 @@ } }, "esbuild": { - "version": "0.14.29", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.14.29.tgz", - "integrity": "sha512-SQS8cO8xFEqevYlrHt6exIhK853Me4nZ4aMW6ieysInLa0FMAL+AKs87HYNRtR2YWRcEIqoXAHh+Ytt5/66qpg==", - "dev": true, - "requires": { - "esbuild-android-64": "0.14.29", - "esbuild-android-arm64": "0.14.29", - "esbuild-darwin-64": "0.14.29", - "esbuild-darwin-arm64": "0.14.29", - "esbuild-freebsd-64": "0.14.29", - "esbuild-freebsd-arm64": "0.14.29", - "esbuild-linux-32": "0.14.29", - "esbuild-linux-64": "0.14.29", - "esbuild-linux-arm": "0.14.29", - "esbuild-linux-arm64": "0.14.29", - "esbuild-linux-mips64le": "0.14.29", - "esbuild-linux-ppc64le": "0.14.29", - "esbuild-linux-riscv64": "0.14.29", - "esbuild-linux-s390x": "0.14.29", - "esbuild-netbsd-64": "0.14.29", - "esbuild-openbsd-64": "0.14.29", - "esbuild-sunos-64": "0.14.29", - "esbuild-windows-32": "0.14.29", - "esbuild-windows-64": "0.14.29", - "esbuild-windows-arm64": "0.14.29" + "version": "0.14.39", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.14.39.tgz", + "integrity": "sha512-2kKujuzvRWYtwvNjYDY444LQIA3TyJhJIX3Yo4+qkFlDDtGlSicWgeHVJqMUP/2sSfH10PGwfsj+O2ro1m10xQ==", + "dev": true, + "requires": { + "esbuild-android-64": "0.14.39", + "esbuild-android-arm64": "0.14.39", + "esbuild-darwin-64": "0.14.39", + "esbuild-darwin-arm64": "0.14.39", + "esbuild-freebsd-64": "0.14.39", + "esbuild-freebsd-arm64": "0.14.39", + "esbuild-linux-32": "0.14.39", + "esbuild-linux-64": "0.14.39", + "esbuild-linux-arm": "0.14.39", + "esbuild-linux-arm64": "0.14.39", + "esbuild-linux-mips64le": "0.14.39", + "esbuild-linux-ppc64le": "0.14.39", + "esbuild-linux-riscv64": "0.14.39", + "esbuild-linux-s390x": "0.14.39", + "esbuild-netbsd-64": "0.14.39", + "esbuild-openbsd-64": "0.14.39", + "esbuild-sunos-64": "0.14.39", + "esbuild-windows-32": "0.14.39", + "esbuild-windows-64": "0.14.39", + "esbuild-windows-arm64": "0.14.39" } }, "esbuild-android-64": { - "version": "0.14.29", - "resolved": "https://registry.npmjs.org/esbuild-android-64/-/esbuild-android-64-0.14.29.tgz", - "integrity": "sha512-tJuaN33SVZyiHxRaVTo1pwW+rn3qetJX/SRuc/83rrKYtyZG0XfsQ1ao1nEudIt9w37ZSNXR236xEfm2C43sbw==", + "version": "0.14.39", + "resolved": "https://registry.npmjs.org/esbuild-android-64/-/esbuild-android-64-0.14.39.tgz", + "integrity": "sha512-EJOu04p9WgZk0UoKTqLId9VnIsotmI/Z98EXrKURGb3LPNunkeffqQIkjS2cAvidh+OK5uVrXaIP229zK6GvhQ==", "dev": true, "optional": true }, "esbuild-android-arm64": { - "version": "0.14.29", - "resolved": "https://registry.npmjs.org/esbuild-android-arm64/-/esbuild-android-arm64-0.14.29.tgz", - "integrity": "sha512-D74dCv6yYnMTlofVy1JKiLM5JdVSQd60/rQfJSDP9qvRAI0laPXIG/IXY1RG6jobmFMUfL38PbFnCqyI/6fPXg==", + "version": "0.14.39", + "resolved": "https://registry.npmjs.org/esbuild-android-arm64/-/esbuild-android-arm64-0.14.39.tgz", + "integrity": "sha512-+twajJqO7n3MrCz9e+2lVOnFplRsaGRwsq1KL/uOy7xK7QdRSprRQcObGDeDZUZsacD5gUkk6OiHiYp6RzU3CA==", "dev": true, "optional": true }, "esbuild-darwin-64": { - "version": "0.14.29", - "resolved": "https://registry.npmjs.org/esbuild-darwin-64/-/esbuild-darwin-64-0.14.29.tgz", - "integrity": "sha512-+CJaRvfTkzs9t+CjGa0Oa28WoXa7EeLutQhxus+fFcu0MHhsBhlmeWHac3Cc/Sf/xPi1b2ccDFfzGYJCfV0RrA==", + "version": "0.14.39", + "resolved": "https://registry.npmjs.org/esbuild-darwin-64/-/esbuild-darwin-64-0.14.39.tgz", + "integrity": "sha512-ImT6eUw3kcGcHoUxEcdBpi6LfTRWaV6+qf32iYYAfwOeV+XaQ/Xp5XQIBiijLeo+LpGci9M0FVec09nUw41a5g==", "dev": true, "optional": true }, "esbuild-darwin-arm64": { - "version": "0.14.29", - "resolved": "https://registry.npmjs.org/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.14.29.tgz", - "integrity": "sha512-5Wgz/+zK+8X2ZW7vIbwoZ613Vfr4A8HmIs1XdzRmdC1kG0n5EG5fvKk/jUxhNlrYPx1gSY7XadQ3l4xAManPSw==", + "version": "0.14.39", + "resolved": "https://registry.npmjs.org/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.14.39.tgz", + "integrity": "sha512-/fcQ5UhE05OiT+bW5v7/up1bDsnvaRZPJxXwzXsMRrr7rZqPa85vayrD723oWMT64dhrgWeA3FIneF8yER0XTw==", "dev": true, "optional": true }, "esbuild-freebsd-64": { - "version": "0.14.29", - "resolved": "https://registry.npmjs.org/esbuild-freebsd-64/-/esbuild-freebsd-64-0.14.29.tgz", - "integrity": "sha512-VTfS7Bm9QA12JK1YXF8+WyYOfvD7WMpbArtDj6bGJ5Sy5xp01c/q70Arkn596aGcGj0TvQRplaaCIrfBG1Wdtg==", + "version": "0.14.39", + "resolved": "https://registry.npmjs.org/esbuild-freebsd-64/-/esbuild-freebsd-64-0.14.39.tgz", + "integrity": "sha512-oMNH8lJI4wtgN5oxuFP7BQ22vgB/e3Tl5Woehcd6i2r6F3TszpCnNl8wo2d/KvyQ4zvLvCWAlRciumhQg88+kQ==", "dev": true, "optional": true }, "esbuild-freebsd-arm64": { - "version": "0.14.29", - "resolved": "https://registry.npmjs.org/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.14.29.tgz", - "integrity": "sha512-WP5L4ejwLWWvd3Fo2J5mlXvG3zQHaw5N1KxFGnUc4+2ZFZknP0ST63i0IQhpJLgEJwnQpXv2uZlU1iWZjFqEIg==", + "version": "0.14.39", + "resolved": "https://registry.npmjs.org/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.14.39.tgz", + "integrity": "sha512-1GHK7kwk57ukY2yI4ILWKJXaxfr+8HcM/r/JKCGCPziIVlL+Wi7RbJ2OzMcTKZ1HpvEqCTBT/J6cO4ZEwW4Ypg==", "dev": true, "optional": true }, "esbuild-linux-32": { - "version": "0.14.29", - "resolved": "https://registry.npmjs.org/esbuild-linux-32/-/esbuild-linux-32-0.14.29.tgz", - "integrity": "sha512-4myeOvFmQBWdI2U1dEBe2DCSpaZyjdQtmjUY11Zu2eQg4ynqLb8Y5mNjNU9UN063aVsCYYfbs8jbken/PjyidA==", + "version": "0.14.39", + "resolved": "https://registry.npmjs.org/esbuild-linux-32/-/esbuild-linux-32-0.14.39.tgz", + "integrity": "sha512-g97Sbb6g4zfRLIxHgW2pc393DjnkTRMeq3N1rmjDUABxpx8SjocK4jLen+/mq55G46eE2TA0MkJ4R3SpKMu7dg==", "dev": true, "optional": true }, "esbuild-linux-64": { - "version": "0.14.29", - "resolved": "https://registry.npmjs.org/esbuild-linux-64/-/esbuild-linux-64-0.14.29.tgz", - "integrity": "sha512-iaEuLhssReAKE7HMwxwFJFn7D/EXEs43fFy5CJeA4DGmU6JHh0qVJD2p/UP46DvUXLRKXsXw0i+kv5TdJ1w5pg==", + "version": "0.14.39", + "resolved": "https://registry.npmjs.org/esbuild-linux-64/-/esbuild-linux-64-0.14.39.tgz", + "integrity": "sha512-4tcgFDYWdI+UbNMGlua9u1Zhu0N5R6u9tl5WOM8aVnNX143JZoBZLpCuUr5lCKhnD0SCO+5gUyMfupGrHtfggQ==", "dev": true, "optional": true }, "esbuild-linux-arm": { - "version": "0.14.29", - "resolved": "https://registry.npmjs.org/esbuild-linux-arm/-/esbuild-linux-arm-0.14.29.tgz", - "integrity": "sha512-OXa9D9QL1hwrAnYYAHt/cXAuSCmoSqYfTW/0CEY0LgJNyTxJKtqc5mlwjAZAvgyjmha0auS/sQ0bXfGf2wAokQ==", + "version": "0.14.39", + "resolved": "https://registry.npmjs.org/esbuild-linux-arm/-/esbuild-linux-arm-0.14.39.tgz", + "integrity": "sha512-t0Hn1kWVx5UpCzAJkKRfHeYOLyFnXwYynIkK54/h3tbMweGI7dj400D1k0Vvtj2u1P+JTRT9tx3AjtLEMmfVBQ==", "dev": true, "optional": true }, "esbuild-linux-arm64": { - "version": "0.14.29", - "resolved": "https://registry.npmjs.org/esbuild-linux-arm64/-/esbuild-linux-arm64-0.14.29.tgz", - "integrity": "sha512-KYf7s8wDfUy+kjKymW3twyGT14OABjGHRkm9gPJ0z4BuvqljfOOUbq9qT3JYFnZJHOgkr29atT//hcdD0Pi7Mw==", + "version": "0.14.39", + "resolved": "https://registry.npmjs.org/esbuild-linux-arm64/-/esbuild-linux-arm64-0.14.39.tgz", + "integrity": "sha512-23pc8MlD2D6Px1mV8GMglZlKgwgNKAO8gsgsLLcXWSs9lQsCYkIlMo/2Ycfo5JrDIbLdwgP8D2vpfH2KcBqrDQ==", "dev": true, "optional": true }, "esbuild-linux-mips64le": { - "version": "0.14.29", - "resolved": "https://registry.npmjs.org/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.14.29.tgz", - "integrity": "sha512-05jPtWQMsZ1aMGfHOvnR5KrTvigPbU35BtuItSSWLI2sJu5VrM8Pr9Owym4wPvA4153DFcOJ1EPN/2ujcDt54g==", + "version": "0.14.39", + "resolved": "https://registry.npmjs.org/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.14.39.tgz", + "integrity": "sha512-epwlYgVdbmkuRr5n4es3B+yDI0I2e/nxhKejT9H0OLxFAlMkeQZxSpxATpDc9m8NqRci6Kwyb/SfmD1koG2Zuw==", "dev": true, "optional": true }, "esbuild-linux-ppc64le": { - "version": "0.14.29", - "resolved": "https://registry.npmjs.org/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.14.29.tgz", - "integrity": "sha512-FYhBqn4Ir9xG+f6B5VIQVbRuM4S6qwy29dDNYFPoxLRnwTEKToIYIUESN1qHyUmIbfO0YB4phG2JDV2JDN9Kgw==", + "version": "0.14.39", + "resolved": "https://registry.npmjs.org/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.14.39.tgz", + "integrity": "sha512-W/5ezaq+rQiQBThIjLMNjsuhPHg+ApVAdTz2LvcuesZFMsJoQAW2hutoyg47XxpWi7aEjJGrkS26qCJKhRn3QQ==", "dev": true, "optional": true }, "esbuild-linux-riscv64": { - "version": "0.14.29", - "resolved": "https://registry.npmjs.org/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.14.29.tgz", - "integrity": "sha512-eqZMqPehkb4nZcffnuOpXJQdGURGd6GXQ4ZsDHSWyIUaA+V4FpMBe+5zMPtXRD2N4BtyzVvnBko6K8IWWr36ew==", + "version": "0.14.39", + "resolved": "https://registry.npmjs.org/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.14.39.tgz", + "integrity": "sha512-IS48xeokcCTKeQIOke2O0t9t14HPvwnZcy+5baG13Z1wxs9ZrC5ig5ypEQQh4QMKxURD5TpCLHw2W42CLuVZaA==", "dev": true, "optional": true }, "esbuild-linux-s390x": { - "version": "0.14.29", - "resolved": "https://registry.npmjs.org/esbuild-linux-s390x/-/esbuild-linux-s390x-0.14.29.tgz", - "integrity": "sha512-o7EYajF1rC/4ho7kpSG3gENVx0o2SsHm7cJ5fvewWB/TEczWU7teDgusGSujxCYcMottE3zqa423VTglNTYhjg==", + "version": "0.14.39", + "resolved": "https://registry.npmjs.org/esbuild-linux-s390x/-/esbuild-linux-s390x-0.14.39.tgz", + "integrity": "sha512-zEfunpqR8sMomqXhNTFEKDs+ik7HC01m3M60MsEjZOqaywHu5e5682fMsqOlZbesEAAaO9aAtRBsU7CHnSZWyA==", "dev": true, "optional": true }, "esbuild-netbsd-64": { - "version": "0.14.29", - "resolved": "https://registry.npmjs.org/esbuild-netbsd-64/-/esbuild-netbsd-64-0.14.29.tgz", - "integrity": "sha512-/esN6tb6OBSot6+JxgeOZeBk6P8V/WdR3GKBFeFpSqhgw4wx7xWUqPrdx4XNpBVO7X4Ipw9SAqgBrWHlXfddww==", + "version": "0.14.39", + "resolved": "https://registry.npmjs.org/esbuild-netbsd-64/-/esbuild-netbsd-64-0.14.39.tgz", + "integrity": "sha512-Uo2suJBSIlrZCe4E0k75VDIFJWfZy+bOV6ih3T4MVMRJh1lHJ2UyGoaX4bOxomYN3t+IakHPyEoln1+qJ1qYaA==", "dev": true, "optional": true }, "esbuild-openbsd-64": { - "version": "0.14.29", - "resolved": "https://registry.npmjs.org/esbuild-openbsd-64/-/esbuild-openbsd-64-0.14.29.tgz", - "integrity": "sha512-jUTdDzhEKrD0pLpjmk0UxwlfNJNg/D50vdwhrVcW/D26Vg0hVbthMfb19PJMatzclbK7cmgk1Nu0eNS+abzoHw==", + "version": "0.14.39", + "resolved": "https://registry.npmjs.org/esbuild-openbsd-64/-/esbuild-openbsd-64-0.14.39.tgz", + "integrity": "sha512-secQU+EpgUPpYjJe3OecoeGKVvRMLeKUxSMGHnK+aK5uQM3n1FPXNJzyz1LHFOo0WOyw+uoCxBYdM4O10oaCAA==", "dev": true, "optional": true }, "esbuild-sunos-64": { - "version": "0.14.29", - "resolved": "https://registry.npmjs.org/esbuild-sunos-64/-/esbuild-sunos-64-0.14.29.tgz", - "integrity": "sha512-EfhQN/XO+TBHTbkxwsxwA7EfiTHFe+MNDfxcf0nj97moCppD9JHPq48MLtOaDcuvrTYOcrMdJVeqmmeQ7doTcg==", + "version": "0.14.39", + "resolved": "https://registry.npmjs.org/esbuild-sunos-64/-/esbuild-sunos-64-0.14.39.tgz", + "integrity": "sha512-qHq0t5gePEDm2nqZLb+35p/qkaXVS7oIe32R0ECh2HOdiXXkj/1uQI9IRogGqKkK+QjDG+DhwiUw7QoHur/Rwg==", "dev": true, "optional": true }, "esbuild-windows-32": { - "version": "0.14.29", - "resolved": "https://registry.npmjs.org/esbuild-windows-32/-/esbuild-windows-32-0.14.29.tgz", - "integrity": "sha512-uoyb0YAJ6uWH4PYuYjfGNjvgLlb5t6b3zIaGmpWPOjgpr1Nb3SJtQiK4YCPGhONgfg2v6DcJgSbOteuKXhwqAw==", + "version": "0.14.39", + "resolved": "https://registry.npmjs.org/esbuild-windows-32/-/esbuild-windows-32-0.14.39.tgz", + "integrity": "sha512-XPjwp2OgtEX0JnOlTgT6E5txbRp6Uw54Isorm3CwOtloJazeIWXuiwK0ONJBVb/CGbiCpS7iP2UahGgd2p1x+Q==", "dev": true, "optional": true }, "esbuild-windows-64": { - "version": "0.14.29", - "resolved": "https://registry.npmjs.org/esbuild-windows-64/-/esbuild-windows-64-0.14.29.tgz", - "integrity": "sha512-X9cW/Wl95QjsH8WUyr3NqbmfdU72jCp71cH3pwPvI4CgBM2IeOUDdbt6oIGljPu2bf5eGDIo8K3Y3vvXCCTd8A==", + "version": "0.14.39", + "resolved": "https://registry.npmjs.org/esbuild-windows-64/-/esbuild-windows-64-0.14.39.tgz", + "integrity": "sha512-E2wm+5FwCcLpKsBHRw28bSYQw0Ikxb7zIMxw3OPAkiaQhLVr3dnVO8DofmbWhhf6b97bWzg37iSZ45ZDpLw7Ow==", "dev": true, "optional": true }, "esbuild-windows-arm64": { - "version": "0.14.29", - "resolved": "https://registry.npmjs.org/esbuild-windows-arm64/-/esbuild-windows-arm64-0.14.29.tgz", - "integrity": "sha512-+O/PI+68fbUZPpl3eXhqGHTGK7DjLcexNnyJqtLZXOFwoAjaXlS5UBCvVcR3o2va+AqZTj8o6URaz8D2K+yfQQ==", + "version": "0.14.39", + "resolved": "https://registry.npmjs.org/esbuild-windows-arm64/-/esbuild-windows-arm64-0.14.39.tgz", + "integrity": "sha512-sBZQz5D+Gd0EQ09tZRnz/PpVdLwvp/ufMtJ1iDFYddDaPpZXKqPyaxfYBLs3ueiaksQ26GGa7sci0OqFzNs7KA==", "dev": true, "optional": true }, @@ -14313,37 +14061,38 @@ } }, "express": { - "version": "4.17.3", - "resolved": "https://registry.npmjs.org/express/-/express-4.17.3.tgz", - "integrity": "sha512-yuSQpz5I+Ch7gFrPCk4/c+dIBKlQUxtgwqzph132bsT6qhuzss6I8cLJQz7B3rFblzd6wtcI0ZbGltH/C4LjUg==", + "version": "4.18.1", + "resolved": "https://registry.npmjs.org/express/-/express-4.18.1.tgz", + "integrity": "sha512-zZBcOX9TfehHQhtupq57OF8lFZ3UZi08Y97dwFCkD8p9d/d2Y3M+ykKcwaMDEL+4qyUolgBDX6AblpR3fL212Q==", "requires": { "accepts": "~1.3.8", "array-flatten": "1.1.1", - "body-parser": "1.19.2", + "body-parser": "1.20.0", "content-disposition": "0.5.4", "content-type": "~1.0.4", - "cookie": "0.4.2", + "cookie": "0.5.0", "cookie-signature": "1.0.6", "debug": "2.6.9", - "depd": "~1.1.2", + "depd": "2.0.0", "encodeurl": "~1.0.2", "escape-html": "~1.0.3", "etag": "~1.8.1", - "finalhandler": "~1.1.2", + "finalhandler": "1.2.0", "fresh": "0.5.2", + "http-errors": "2.0.0", "merge-descriptors": "1.0.1", "methods": "~1.1.2", - "on-finished": "~2.3.0", + "on-finished": "2.4.1", "parseurl": "~1.3.3", "path-to-regexp": "0.1.7", "proxy-addr": "~2.0.7", - "qs": "6.9.7", + "qs": "6.10.3", "range-parser": "~1.2.1", "safe-buffer": "5.2.1", - "send": "0.17.2", - "serve-static": "1.14.2", + "send": "0.18.0", + "serve-static": "1.15.0", "setprototypeof": "1.2.0", - "statuses": "~1.5.0", + "statuses": "2.0.1", "type-is": "~1.6.18", "utils-merge": "1.0.1", "vary": "~1.1.2" @@ -14357,6 +14106,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", @@ -14399,11 +14153,6 @@ } } }, - "extract-stack": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/extract-stack/-/extract-stack-2.0.0.tgz", - "integrity": "sha512-AEo4zm+TenK7zQorGK1f9mJ8L14hnTDi2ZQPR+Mub1NX8zimka1mXpV5LpH8x9HoUmFSHZCfLHqWvp0Y4FxxzQ==" - }, "fast-deep-equal": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", @@ -14500,16 +14249,16 @@ "integrity": "sha1-mzERErxsYSehbgFsbF1/GeCAXFs=" }, "finalhandler": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz", - "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz", + "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==", "requires": { "debug": "2.6.9", "encodeurl": "~1.0.2", "escape-html": "~1.0.3", - "on-finished": "~2.3.0", + "on-finished": "2.4.1", "parseurl": "~1.3.3", - "statuses": "~1.5.0", + "statuses": "2.0.1", "unpipe": "~1.0.0" }, "dependencies": { @@ -14623,6 +14372,16 @@ "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.14.9.tgz", "integrity": "sha512-MQDfihBQYMcyy5dhRDJUHcw7lb2Pv/TuE6xP1vyraLukNDHKbDxDNaOE3NbCAdKQApno+GPRyo1YAp89yCjK4w==" }, + "form-data": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", + "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", + "requires": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + } + }, "forwarded": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", @@ -14711,7 +14470,6 @@ "version": "1.1.1", "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz", "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==", - "dev": true, "requires": { "function-bind": "^1.1.1", "has": "^1.0.3", @@ -14879,8 +14637,7 @@ "has-symbols": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.2.tgz", - "integrity": "sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==", - "dev": true + "integrity": "sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==" }, "has-tostringtag": { "version": "1.0.0", @@ -14928,15 +14685,22 @@ } }, "http-errors": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.8.1.tgz", - "integrity": "sha512-Kpk9Sm7NmI+RHhnj6OIWDI1d6fIoFAtFt9RLaTMRlg/8w49juAStsrBgp0Dp4OdxdVbRIeKhtCUvoi/RuAhO4g==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", + "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", "requires": { - "depd": "~1.1.2", + "depd": "2.0.0", "inherits": "2.0.4", "setprototypeof": "1.2.0", - "statuses": ">= 1.5.0 < 2", + "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==" + } } }, "http-proxy-agent": { @@ -15902,9 +15666,9 @@ "integrity": "sha512-7vO7n28+aYO4J+8w96AzhmU8G+Y/xpPDJz/se19ICsqj/momRbb9mh9ZUtkoJ5X3nTnPdhEJyc0qnM6yAsHBaA==" }, "nanoid": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.2.tgz", - "integrity": "sha512-CuHBogktKwpm5g2sRgv83jEy2ijFzBwMoYA60orPDR7ynsLijJDqgsi4RDGj3OJpy3Ieb+LYwiRmIOGyytgITA==" + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz", + "integrity": "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==" }, "natural-compare": { "version": "1.4.0", @@ -16188,8 +15952,7 @@ "object-inspect": { "version": "1.12.0", "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.0.tgz", - "integrity": "sha512-Ho2z80bVIvJloH+YzRmpZVQe87+qASmBUKZDWgx9cu+KDrX2ZDH/3tMy+gXbZETVGs2M8YdxObOh7XAtim9Y0g==", - "dev": true + "integrity": "sha512-Ho2z80bVIvJloH+YzRmpZVQe87+qASmBUKZDWgx9cu+KDrX2ZDH/3tMy+gXbZETVGs2M8YdxObOh7XAtim9Y0g==" }, "object-keys": { "version": "1.1.1", @@ -16287,9 +16050,9 @@ } }, "on-finished": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", - "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=", + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", + "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", "requires": { "ee-first": "1.1.1" } @@ -16948,12 +16711,12 @@ } }, "postcss": { - "version": "8.4.12", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.12.tgz", - "integrity": "sha512-lg6eITwYe9v6Hr5CncVbK70SoioNQIq81nsaG86ev5hAidQvmOeETBqs7jm43K2F5/Ley3ytDtriImV6TpNiSg==", + "version": "8.4.14", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.14.tgz", + "integrity": "sha512-E398TUmfAYFPBSdzgeieK2Y1+1cpdxJx8yXbK/m57nRhKSmk1GB2tO4lbLBtlkfPQTDKfe4Xqv1ASWPpayPEig==", "dev": true, "requires": { - "nanoid": "^3.3.1", + "nanoid": "^3.3.4", "picocolors": "^1.0.0", "source-map-js": "^1.0.2" } @@ -17236,9 +16999,12 @@ } }, "qs": { - "version": "6.9.7", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.9.7.tgz", - "integrity": "sha512-IhMFgUmuNpyRfxA90umL7ByLlgRXu6tIfKPpF5TmcfRLlLCckfP/g3IQmju6jjpu+Hh8rA+2p6A27ZSPOOHdKw==" + "version": "6.10.3", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.10.3.tgz", + "integrity": "sha512-wr7M2E0OFRfIfJZjKGieI8lBKb7fRCH4Fv5KNPEs7gJ8jadvotdsS08PzOKR7opXhZ/Xkjtt3WF9g38drmyRqQ==", + "requires": { + "side-channel": "^1.0.4" + } }, "query-string": { "version": "7.1.1", @@ -17267,12 +17033,12 @@ "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==" }, "raw-body": { - "version": "2.4.3", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.3.tgz", - "integrity": "sha512-UlTNLIcu0uzb4D2f4WltY6cVjLi+/jEN4lgEUj3E04tpMDpUlkBo/eSn6zou9hum2VMNpCCUone0O0WeJim07g==", + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.1.tgz", + "integrity": "sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==", "requires": { "bytes": "3.1.2", - "http-errors": "1.8.1", + "http-errors": "2.0.0", "iconv-lite": "0.4.24", "unpipe": "1.0.0" } @@ -17476,9 +17242,9 @@ } }, "rollup": { - "version": "2.70.1", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.70.1.tgz", - "integrity": "sha512-CRYsI5EuzLbXdxC6RnYhOuRdtz4bhejPMSWjsFLfVM/7w/85n2szZv6yExqUXsBdz5KT8eoubeyDUDjhLHEslA==", + "version": "2.74.1", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.74.1.tgz", + "integrity": "sha512-K2zW7kV8Voua5eGkbnBtWYfMIhYhT9Pel2uhBk2WO5eMee161nPze/XRfvEQPFYz7KgrCCnmh2Wy0AMFLGGmMA==", "dev": true, "requires": { "fsevents": "~2.3.2" @@ -17541,23 +17307,23 @@ } }, "send": { - "version": "0.17.2", - "resolved": "https://registry.npmjs.org/send/-/send-0.17.2.tgz", - "integrity": "sha512-UJYB6wFSJE3G00nEivR5rgWp8c2xXvJ3OPWPhmuteU0IKj8nKbG3DrjiOmLwpnHGYWAVwA69zmTm++YG0Hmwww==", + "version": "0.18.0", + "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz", + "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==", "requires": { "debug": "2.6.9", - "depd": "~1.1.2", - "destroy": "~1.0.4", + "depd": "2.0.0", + "destroy": "1.2.0", "encodeurl": "~1.0.2", "escape-html": "~1.0.3", "etag": "~1.8.1", "fresh": "0.5.2", - "http-errors": "1.8.1", + "http-errors": "2.0.0", "mime": "1.6.0", "ms": "2.1.3", - "on-finished": "~2.3.0", + "on-finished": "2.4.1", "range-parser": "~1.2.1", - "statuses": "~1.5.0" + "statuses": "2.0.1" }, "dependencies": { "debug": { @@ -17575,6 +17341,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", @@ -17583,14 +17354,14 @@ } }, "serve-static": { - "version": "1.14.2", - "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.14.2.tgz", - "integrity": "sha512-+TMNA9AFxUEGuC0z2mevogSnn9MXKb4fa7ngeRMJaaGv8vTwnIEkKi+QGvPt33HSnf8pRS+WGM0EbMtCJLKMBQ==", + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz", + "integrity": "sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==", "requires": { "encodeurl": "~1.0.2", "escape-html": "~1.0.3", "parseurl": "~1.3.3", - "send": "0.17.2" + "send": "0.18.0" } }, "set-blocking": { @@ -17639,7 +17410,6 @@ "version": "1.0.4", "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", - "dev": true, "requires": { "call-bind": "^1.0.0", "get-intrinsic": "^1.0.2", @@ -17841,9 +17611,9 @@ } }, "statuses": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", - "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=" + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==" }, "stoppable": { "version": "1.1.0", @@ -18076,15 +17846,15 @@ "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=" }, "tinypool": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/tinypool/-/tinypool-0.1.2.tgz", - "integrity": "sha512-fvtYGXoui2RpeMILfkvGIgOVkzJEGediv8UJt7TxdAOY8pnvUkFg/fkvqTfXG9Acc9S17Cnn1S4osDc2164guA==", + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/tinypool/-/tinypool-0.1.3.tgz", + "integrity": "sha512-2IfcQh7CP46XGWGGbdyO4pjcKqsmVqFAPcXfPxcPXmOWt9cYkTP9HcDmGgsfijYoAEc4z9qcpM/BaBz46Y9/CQ==", "dev": true }, "tinyspy": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/tinyspy/-/tinyspy-0.3.0.tgz", - "integrity": "sha512-c5uFHqtUp74R2DJE3/Efg0mH5xicmgziaQXMm/LvuuZn3RdpADH32aEGDRyCzObXT1DNfwDMqRQ/Drh1MlO12g==", + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/tinyspy/-/tinyspy-0.3.2.tgz", + "integrity": "sha512-2+40EP4D3sFYy42UkgkFFB+kiX2Tg3URG/lVvAZFfLxgGpnWl5qQJuBw1gaLttq8UOS+2p3C0WrhJnQigLTT2Q==", "dev": true }, "tmp": { @@ -18144,9 +17914,9 @@ } }, "tslib": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", - "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", + "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==" }, "tsutils": { "version": "3.21.0", @@ -18287,9 +18057,9 @@ } }, "typescript": { - "version": "4.6.3", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.6.3.tgz", - "integrity": "sha512-yNIatDa5iaofVozS/uQJEl3JRWLKKGJKh6Yaiv0GLGSuhpFJe7P3SbHZ8/yjAHRQwKRoA6YZqlfjXWmVzoVSMw==", + "version": "4.6.4", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.6.4.tgz", + "integrity": "sha512-9ia/jWHIEbo49HfjrLGfKbZSuWo9iTMwXO+Ca3pRsSpbsMbc7/IU8NKdCZVRRBafVPGnoJeFL76ZOAA84I9fEg==", "dev": true }, "unbox-primitive": { @@ -18447,31 +18217,32 @@ } }, "vite": { - "version": "2.9.0", - "resolved": "https://registry.npmjs.org/vite/-/vite-2.9.0.tgz", - "integrity": "sha512-5NAnNqzPmZzJvrswZGeTS2JHrBGIzIWJA2hBTTMYuoBVEMh0xwE0b5yyIXFxf7F07hrK4ugX2LJ7q6t7iIbd4Q==", + "version": "2.9.9", + "resolved": "https://registry.npmjs.org/vite/-/vite-2.9.9.tgz", + "integrity": "sha512-ffaam+NgHfbEmfw/Vuh6BHKKlI/XIAhxE5QSS7gFLIngxg171mg1P3a4LSRME0z2ZU1ScxoKzphkipcYwSD5Ew==", "dev": true, "requires": { "esbuild": "^0.14.27", "fsevents": "~2.3.2", - "postcss": "^8.4.12", + "postcss": "^8.4.13", "resolve": "^1.22.0", "rollup": "^2.59.0" } }, "vitest": { - "version": "0.8.0", - "resolved": "https://registry.npmjs.org/vitest/-/vitest-0.8.0.tgz", - "integrity": "sha512-8m8OufAQWXlNpjm5dTe5Lc60zruguKJljunveueYrd4aoeXaQvggLX0SPmIW3G6PDtnBdNEynSi+6pibjnutQA==", + "version": "0.12.9", + "resolved": "https://registry.npmjs.org/vitest/-/vitest-0.12.9.tgz", + "integrity": "sha512-1NtyUANS72Qw5PwYvoztk067NX4fSiis2xQxhByOWS33eL2er/yupHyLxlBCOkF2ANe0dLFRvT1GVb+nczL5aw==", "dev": true, "requires": { - "@types/chai": "^4.3.0", + "@types/chai": "^4.3.1", "@types/chai-subset": "^1.3.3", "chai": "^4.3.6", + "debug": "^4.3.4", "local-pkg": "^0.4.1", - "tinypool": "^0.1.2", - "tinyspy": "^0.3.0", - "vite": "^2.8.6" + "tinypool": "^0.1.3", + "tinyspy": "^0.3.2", + "vite": "^2.9.8" } }, "walk-up-path": { @@ -18520,6 +18291,11 @@ } } }, + "whatwg-mimetype": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-3.0.0.tgz", + "integrity": "sha512-nt+N2dzIutVRxARx1nghPKGv1xHikU7HKdfafKkLNLindmPU/ch3U31NOCGGA/dmPcmb1VlofO0vnKAcsm0o/Q==" + }, "whatwg-url": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", diff --git a/package.json b/package.json index 6189ba3..9a3b317 100644 --- a/package.json +++ b/package.json @@ -15,24 +15,24 @@ "test": "vitest --run --dir tests" }, "dependencies": { - "@subsquid/archive-registry": "^0.0.4", - "@subsquid/cli": "^0.2.1", - "@subsquid/graphql-server": "^0.1.5", + "@subsquid/archive-registry": "^0.0.6", + "@subsquid/cli": "^0.4.1", + "@subsquid/graphql-server": "^0.3.0", "@subsquid/ss58": "^0.1.0", - "@subsquid/substrate-processor": "^0.6.1", - "axios": "^0.26.1", - "dotenv": "^16.0.0", + "@subsquid/substrate-processor": "^0.8.0", + "axios": "^0.27.2", + "dotenv": "^16.0.1", "md5": "^2.3.0", - "nanoid": "^3.3.2", + "nanoid": "^3.3.4", "pg": "^8.7.3", "signale": "^1.4.0", "typeorm": "^0.2.41" }, "devDependencies": { - "@subsquid/substrate-metadata-explorer": "^0.0.7", - "@subsquid/substrate-typegen": "^0.4.1", + "@subsquid/substrate-metadata-explorer": "^0.0.8", + "@subsquid/substrate-typegen": "^0.5.0", "@types/md5": "^2.3.2", - "@types/node": "^17.0.23", + "@types/node": "^17.0.35", "@types/signale": "^1.4.4", "@typescript-eslint/eslint-plugin": "^4.33.0", "eslint": "^7.32.0", @@ -42,7 +42,7 @@ "eslint-plugin-import": "^2.25.3", "eslint-plugin-prettier": "^4.0.0", "eslint-plugin-type-graphql": "^0.3.2", - "typescript": "~4.6.3", - "vitest": "^0.8.0" + "typescript": "~4.6.4", + "vitest": "^0.12.9" } } diff --git a/schema.graphql b/schema.graphql index 30b8c5d..4b7d6d0 100644 --- a/schema.graphql +++ b/schema.graphql @@ -84,13 +84,28 @@ type CollectionEvent implements EventType @entity { collection: CollectionEntity! } +type OfferEvent @entity { + id: ID! + blockNumber: BigInt + caller: String! + currentOwner: String # currentOwner + interaction: OfferInteraction! + meta: String! + offer: Offer! + timestamp: DateTime! +} + type Offer @entity { id: ID! # should be addr-id-amount? - caller: String! - nft: NFTEntity! blockNumber: BigInt! + caller: String! + createdAt: DateTime! + events: [OfferEvent!] @derivedFrom(field: "offer") expiration: BigInt! + nft: NFTEntity! price: BigInt! + status: OfferStatus! + updatedAt: DateTime } enum Interaction { @@ -102,9 +117,7 @@ enum Interaction { SEND CONSUME DESTROY - OFFER - ACCEPT_OFFER # OFFER - CANCEL_OFFER # OFFER + OFFER # ACCEPT OFFER PAY_ROYALTY ROYALTY } @@ -117,6 +130,19 @@ enum CollectionType { HydraHeads } +enum OfferInteraction { + CREATE + ACCEPT + CANCEL +} + +enum OfferStatus { + ACTIVE + ACCEPTED + EXPIRED + WITHDRAWN +} + # Implement in the later stages # type Series @entity { # id: ID! diff --git a/src/mappings/index.ts b/src/mappings/index.ts index 6cae023..7e5181e 100644 --- a/src/mappings/index.ts +++ b/src/mappings/index.ts @@ -7,9 +7,12 @@ import { MetadataEntity as Metadata, NFTEntity as NE, Offer, + OfferEvent, + OfferInteraction, + OfferStatus, } from '../model' import { CollectionType } from '../model/generated/_collectionType' -import { plsBe, plsNotBe, real, remintable } from './utils/consolidator' +import { needTo, plsBe, plsNotBe, real, remintable } from './utils/consolidator' import { create, get, getOrCreate } from './utils/entity' import { createTokenId, unwrap } from './utils/extract' import { @@ -40,6 +43,8 @@ import { eventFrom, eventId, Interaction, + tokenIdOf, + offerIdOf, Optional, TokenMetadata, } from './utils/types' @@ -182,7 +187,7 @@ export async function handleTokenBurn(context: Context): Promise { plsBe(real, entity) entity.burned = true - logger.success(`[BURN] ${id} by ${event.caller}}`) + logger.success(`[BURN] ${id} by ${event.caller}`) await context.store.save(entity) const meta = entity.metadata ?? '' await createEvent(entity, Interaction.CONSUME, event, meta, context.store) @@ -214,7 +219,7 @@ export async function handleTokenBuy(context: Context): Promise { entity.price = undefined // not sure if this is correct entity.currentOwner = event.caller - logger.success(`[BUY] ${id} by ${event.caller}}`) + logger.success(`[BUY] ${id} by ${event.caller}`) await context.store.save(entity) const meta = entity.metadata ?? '' await createEvent(entity, Interaction.BUY, event, meta, context.store, event.currentOwner) @@ -231,7 +236,7 @@ export async function handleRoyaltyAdd(context: Context): Promise { entity.royalty = event.royalty entity.recipient = event.recipient - logger.success(`[ROYALTY] ${id} by ${event.caller}}`) + logger.success(`[ROYALTY] ${id} by ${event.caller}`) await context.store.save(entity) const meta = String(event.royalty || '') await createEvent(entity, Interaction.ROYALTY, event, meta, context.store) @@ -259,30 +264,77 @@ export async function handleOfferPlace(context: Context): Promise { plsBe(real, entity) const offerId = createOfferId(entity.id, event.caller) - const offer = create(Offer, offerId, { - caller: event.caller, - price: event.amount, - blockNumber: BigInt(event.blockNumber), - expiration: event.expiresAt, - }) - - offer.nft = entity - logger.success(`[PLACE OFFER] for ${id} by ${event.caller}} for ${String(event.amount)}`) + const mayOffer = await get(context.store, Offer, offerId) + + const offer = mayOffer ?? create(Offer, offerId, {}) + offer.caller = event.caller + offer.price = event.amount + offer.blockNumber = BigInt(event.blockNumber) + offer.expiration = event.expiresAt + offer.createdAt = event.timestamp + offer.status = OfferStatus.ACTIVE + + if (!mayOffer) { + offer.nft = entity + } + + logger.success(`[PLACE OFFER] for ${id} by ${event.caller} for ${String(event.amount)}`) await context.store.save(offer) const meta = String(event.amount || '') - await createEvent(entity, Interaction.OFFER, event, meta, context.store, entity.currentOwner) + await createOfferEvent(offer, OfferInteraction.CREATE, event, meta, context.store, entity.currentOwner) } -// export async function handleOfferAccept(context: Context): Promise { -// logger.pending(`[ACCEPT OFFER]: ${context.event.blockNumber}`) -// const event = unwrap(context, getAcceptOfferEvent) -// logger.debug(`offer: ${JSON.stringify({ ...event, price: String(event.amount) }, null, 2)}`) -// const id = createOfferId(createTokenId(event.collectionId, event.sn), event.caller) -// const entity = ensure(await get(context.store, Offer, id)) -// // plsBe(real, entity) +export async function handleOfferAccept(context: Context): Promise { + logger.pending(`[ACCEPT OFFER]: ${context.event.blockNumber}`) + const event = unwrap(context, getAcceptOfferEvent) + logger.debug(`offer: ${JSON.stringify({ ...event, amount: String(event.amount) }, null, 2)}`) + const tokenId = tokenIdOf(event) + + if (!event.maker) { + logger.error(`[ACCEPT OFFER] no maker for ${tokenId}`) + return + } + + const id = createOfferId(tokenId, event.maker) + const entity = ensure(await get(context.store, Offer, id)) + + plsBe(real, entity) + + entity.status = OfferStatus.ACCEPTED + entity.updatedAt = event.timestamp + logger.success(`[ACCEPT OFFER] for ${id} by ${event.caller} for ${String(event.amount)}`) + const currentOwner = ensure(await get(context.store, NE, tokenId)).currentOwner + + await context.store.save(entity) + const meta = String(event.amount || '') + await createOfferEvent(entity, OfferInteraction.ACCEPT, event, meta, context.store, currentOwner) +} + +export async function handleOfferWithdraw(context: Context): Promise { + logger.pending(`[WITHDRAW OFFER]: ${context.event.blockNumber}`) + const event = unwrap(context, getWithdrawOfferEvent) + logger.debug(`offer no: ${JSON.stringify(event, null, 2)}`) + const tokenId = tokenIdOf(event) + const id = createOfferId(tokenId, event.caller) + const entity = ensure(await get(context.store, Offer, id)) + plsBe(real, entity) + + entity.status = OfferStatus.WITHDRAWN + entity.updatedAt = event.timestamp + + logger.success(`[WITHDRAW OFFER] for ${id} by ${event.caller} for ${String(entity.price)}`) + const currentOwner = ensure(await get(context.store, NE, tokenId)).currentOwner + + await context.store.save(entity) + const meta = String(entity.price || '') + await createOfferEvent(entity, OfferInteraction.CANCEL, event, meta, context.store, currentOwner) + // TODO: Set expired offers to expired +} + +// async function markOfferExpired(collectionId: string, sn: string, blockNumber: bigint, store: Store): Promise { // } async function createEvent( @@ -331,3 +383,27 @@ async function createCollectionEvent( ) } } + +async function createOfferEvent( + final: Offer, + interaction: OfferInteraction, + call: BaseCall, + meta: string, + store: Store, + currentOwner?: string +) { + try { + const newEventId = eventId(final.id, interaction) + const event = create( + OfferEvent, + newEventId, + eventFrom(interaction, call, meta, currentOwner) + ) + event.offer = final + await store.save(event) + } catch (e) { + logError(e, (e) => + logger.warn(`[[${interaction}]]: ${final.id} Reason: ${e.message}`) + ) + } +} diff --git a/src/mappings/utils/consolidator.ts b/src/mappings/utils/consolidator.ts index 0d2c5cc..b6825eb 100644 --- a/src/mappings/utils/consolidator.ts +++ b/src/mappings/utils/consolidator.ts @@ -1,7 +1,7 @@ -import { CollectionEntity, NFTEntity } from '../../model/generated' -import logger from './logger' +import { CollectionEntity, NFTEntity, Offer } from '../../model/generated' type Entity = CollectionEntity | NFTEntity +type AbstractEntity = Entity | Offer export function real(entity: T | undefined): boolean { return !!entity @@ -15,7 +15,7 @@ export function created(entity: Entity): boolean { return Object.keys(entity).length === 1 && entity.id !== undefined } -export function entityOf(entity: Entity): string { +export function entityOf(entity: AbstractEntity): string { if (entity instanceof CollectionEntity) { return 'Collection' } @@ -24,6 +24,10 @@ export function entityOf(entity: Entity): string { return 'NFT' } + if (entity instanceof Offer) { + return 'Offer' + } + return '' } @@ -31,17 +35,17 @@ export function remintable(entity: Entity): boolean { return burned(entity) || created(entity) } -export function plsBe(callback: (arg: T) => boolean, entity: T) { +export function plsBe(callback: (arg: T) => boolean, entity: T) { return needTo(callback, entity, true) } -export function plsNotBe(callback: (arg: T) => boolean, entity: T) { +export function plsNotBe(callback: (arg: T) => boolean, entity: T) { return needTo(callback, entity, false) } -export function needTo(callback: (arg: T) => boolean, entity: T, positive: boolean = true) { +export function needTo(callback: (arg: T) => boolean, entity: T, positive: boolean = true) { const entityName = entityOf(entity) if (positive ? !callback(entity) : callback(entity)) { - throw new ReferenceError(`[PROBLEM] Entity ${entityName} needs ${positive ? '' : 'not'} to be ${callback.name}`) + throw new ReferenceError(`[PROBLEM] Entity ${entityName} needs ${positive ? '' : 'not'}to be ${callback.name}`) } } diff --git a/src/mappings/utils/entity.ts b/src/mappings/utils/entity.ts index e811b82..55460b6 100644 --- a/src/mappings/utils/entity.ts +++ b/src/mappings/utils/entity.ts @@ -54,6 +54,18 @@ export async function get( }) } +export async function find( + store: Store, + entityConstructor: EntityConstructor, + [key, value]: [keyof T, string | number | boolean] +): Promise { + return store.find(entityConstructor, { + where: { + [key]: value + }, + }) +} + export function create( entityConstructor: EntityConstructor, id: string, diff --git a/src/mappings/utils/getters.ts b/src/mappings/utils/getters.ts index 4c67bca..2ef9d04 100644 --- a/src/mappings/utils/getters.ts +++ b/src/mappings/utils/getters.ts @@ -97,6 +97,11 @@ export function getWithdrawOfferEvent(ctx: Context): BaseOfferEvent { export function getAcceptOfferEvent(ctx: Context): AcceptOfferEvent { const event = new MarketplaceOfferAcceptedEvent(ctx); - const [caller, classId, instanceId, amount] = event.asLatest; - return { collectionId: classId.toString(), sn: instanceId.toString(), caller: addressOf(caller), amount }; + if (event.isV39) { + const [caller, classId, instanceId, amount] = event.asV39; + return { collectionId: classId.toString(), sn: instanceId.toString(), caller: addressOf(caller), amount, maker: '' }; + } + + const [caller, classId, instanceId, amount, maker] = event.asLatest; + return { collectionId: classId.toString(), sn: instanceId.toString(), caller: addressOf(caller), amount, maker: addressOf(maker) }; } \ No newline at end of file diff --git a/src/mappings/utils/try.ts b/src/mappings/utils/try.ts new file mode 100644 index 0000000..9b53d8a --- /dev/null +++ b/src/mappings/utils/try.ts @@ -0,0 +1,12 @@ +import logger, { logError } from './logger' + +export function safelyTry(handler: any) { + try { + handler() + } catch (e) { + logError(e, (e) => + logger.warn(`[[${handler.name}]]: Reason: ${e.message}`) + ) + } +} + diff --git a/src/mappings/utils/types.ts b/src/mappings/utils/types.ts index 905f591..fb32dd5 100644 --- a/src/mappings/utils/types.ts +++ b/src/mappings/utils/types.ts @@ -3,6 +3,8 @@ import { Attribute } from '../../model/generated/_attribute' import { EventHandlerContext } from '@subsquid/substrate-processor' import { nanoid } from 'nanoid' import { CollectionType } from '../../model/generated/_collectionType' +import { OfferInteraction } from '../../model' +import { createTokenId } from './extract' export type BaseCall = { caller: string; @@ -14,11 +16,13 @@ export { Interaction } export type CollectionInteraction = Interaction.MINT | Interaction.DESTROY -export function collectionEventFrom(interaction: CollectionInteraction, basecall: BaseCall, meta: string): IEvent { - return eventFrom(interaction, basecall, meta) +type OneOfInteraction = Interaction | OfferInteraction + +export function collectionEventFrom(interaction: CollectionInteraction, basecall: BaseCall, meta: string): IEvent { + return eventFrom(interaction, basecall, meta) } -export function eventFrom(interaction: Interaction, { blockNumber, caller, timestamp }: BaseCall, meta: string, currentOwner?: string): IEvent { +export function eventFrom(interaction: T, { blockNumber, caller, timestamp }: BaseCall, meta: string, currentOwner?: string): IEvent { return { interaction, blockNumber: BigInt(blockNumber), @@ -41,8 +45,8 @@ export type Context = EventHandlerContext export type Optional = T | null -export interface IEvent { - interaction: Interaction; +export interface IEvent { + interaction: T; blockNumber: bigint, caller: string, currentOwner: string, @@ -100,9 +104,13 @@ export type PayRoyaltyEvent = AddRoyaltyEvent & WithAmount export type BaseOfferEvent = BaseTokenEvent & WithCaller -export type AcceptOfferEvent = BaseOfferEvent & WithAmount +export type OfferWithAmountEvent = BaseOfferEvent & WithAmount + +export type AcceptOfferEvent = OfferWithAmountEvent & { + maker: string; +} -export type MakeOfferEvent = AcceptOfferEvent & { +export type MakeOfferEvent = OfferWithAmountEvent & { expiresAt: bigint; } @@ -135,10 +143,16 @@ export function ensure(value: any): T { return value as T } -export const eventId = (id: string, event: Interaction) => `${id}-${event}-${nanoid()}` +export const eventId = (id: string, event: Interaction | OfferInteraction) => `${id}-${event}-${nanoid()}` export const createOfferId = (id: string, caller: string) => `${id}-${caller}` +const offerIdFrom = (collectionId: string, id: string, caller: string) => createOfferId(createTokenId(collectionId, id), caller) + +export const offerIdOf = (call: CallWith) => offerIdFrom(call.collectionId, call.sn, call.caller) + +export const tokenIdOf = (base: BaseTokenEvent) => createTokenId(base.collectionId, base.sn) + export type TokenMetadata = { name?: string description: string diff --git a/src/model/generated/_interaction.ts b/src/model/generated/_interaction.ts index 1782a10..2bb0279 100644 --- a/src/model/generated/_interaction.ts +++ b/src/model/generated/_interaction.ts @@ -8,8 +8,6 @@ export enum Interaction { CONSUME = "CONSUME", DESTROY = "DESTROY", OFFER = "OFFER", - ACCEPT_OFFER = "ACCEPT_OFFER", - CANCEL_OFFER = "CANCEL_OFFER", PAY_ROYALTY = "PAY_ROYALTY", ROYALTY = "ROYALTY", } diff --git a/src/model/generated/_offerInteraction.ts b/src/model/generated/_offerInteraction.ts new file mode 100644 index 0000000..14d1682 --- /dev/null +++ b/src/model/generated/_offerInteraction.ts @@ -0,0 +1,5 @@ +export enum OfferInteraction { + CREATE = "CREATE", + ACCEPT = "ACCEPT", + CANCEL = "CANCEL", +} diff --git a/src/model/generated/_offerStatus.ts b/src/model/generated/_offerStatus.ts new file mode 100644 index 0000000..4f21d54 --- /dev/null +++ b/src/model/generated/_offerStatus.ts @@ -0,0 +1,6 @@ +export enum OfferStatus { + ACTIVE = "ACTIVE", + ACCEPTED = "ACCEPTED", + EXPIRED = "EXPIRED", + WITHDRAWN = "WITHDRAWN", +} diff --git a/src/model/generated/collectionEvent.model.ts b/src/model/generated/collectionEvent.model.ts index 73dc28f..6a35a81 100644 --- a/src/model/generated/collectionEvent.model.ts +++ b/src/model/generated/collectionEvent.model.ts @@ -24,7 +24,7 @@ export class CollectionEvent { @Column_("text", {nullable: true}) currentOwner!: string | undefined | null - @Column_("varchar", {length: 12, nullable: false}) + @Column_("varchar", {length: 11, nullable: false}) interaction!: Interaction @Column_("text", {nullable: false}) diff --git a/src/model/generated/event.model.ts b/src/model/generated/event.model.ts index 3561cf7..58669de 100644 --- a/src/model/generated/event.model.ts +++ b/src/model/generated/event.model.ts @@ -24,7 +24,7 @@ export class Event { @Column_("text", {nullable: false}) currentOwner!: string - @Column_("varchar", {length: 12, nullable: false}) + @Column_("varchar", {length: 11, nullable: false}) interaction!: Interaction @Column_("text", {nullable: false}) diff --git a/src/model/generated/index.ts b/src/model/generated/index.ts index 4f9af60..703b073 100644 --- a/src/model/generated/index.ts +++ b/src/model/generated/index.ts @@ -6,4 +6,7 @@ export * from "./_attribute" export * from "./event.model" export * from "./_interaction" export * from "./collectionEvent.model" +export * from "./offerEvent.model" +export * from "./_offerInteraction" export * from "./offer.model" +export * from "./_offerStatus" diff --git a/src/model/generated/nftEntity.model.ts b/src/model/generated/nftEntity.model.ts index c2bdccb..116bdd2 100644 --- a/src/model/generated/nftEntity.model.ts +++ b/src/model/generated/nftEntity.model.ts @@ -56,7 +56,7 @@ export class NFTEntity { @Column_("numeric", {transformer: marshal.bigintTransformer, nullable: true}) price!: bigint | undefined | null - @Column_("integer", {nullable: true}) + @Column_("int4", {nullable: true}) royalty!: number | undefined | null @Column_("text", {nullable: true}) diff --git a/src/model/generated/offer.model.ts b/src/model/generated/offer.model.ts index 2479dff..e219059 100644 --- a/src/model/generated/offer.model.ts +++ b/src/model/generated/offer.model.ts @@ -1,6 +1,8 @@ -import {Entity as Entity_, Column as Column_, PrimaryColumn as PrimaryColumn_, ManyToOne as ManyToOne_, Index as Index_} from "typeorm" +import {Entity as Entity_, Column as Column_, PrimaryColumn as PrimaryColumn_, OneToMany as OneToMany_, ManyToOne as ManyToOne_, Index as Index_} from "typeorm" import * as marshal from "./marshal" +import {OfferEvent} from "./offerEvent.model" import {NFTEntity} from "./nftEntity.model" +import {OfferStatus} from "./_offerStatus" @Entity_() export class Offer { @@ -11,19 +13,31 @@ export class Offer { @PrimaryColumn_() id!: string + @Column_("numeric", {transformer: marshal.bigintTransformer, nullable: false}) + blockNumber!: bigint + @Column_("text", {nullable: false}) caller!: string - @Index_() - @ManyToOne_(() => NFTEntity, {nullable: false}) - nft!: NFTEntity + @Column_("timestamp with time zone", {nullable: false}) + createdAt!: Date - @Column_("numeric", {transformer: marshal.bigintTransformer, nullable: false}) - blockNumber!: bigint + @OneToMany_(() => OfferEvent, e => e.offer) + events!: OfferEvent[] @Column_("numeric", {transformer: marshal.bigintTransformer, nullable: false}) expiration!: bigint + @Index_() + @ManyToOne_(() => NFTEntity, {nullable: false}) + nft!: NFTEntity + @Column_("numeric", {transformer: marshal.bigintTransformer, nullable: false}) price!: bigint + + @Column_("varchar", {length: 9, nullable: false}) + status!: OfferStatus + + @Column_("timestamp with time zone", {nullable: true}) + updatedAt!: Date | undefined | null } diff --git a/src/model/generated/offerEvent.model.ts b/src/model/generated/offerEvent.model.ts new file mode 100644 index 0000000..9854419 --- /dev/null +++ b/src/model/generated/offerEvent.model.ts @@ -0,0 +1,36 @@ +import {Entity as Entity_, Column as Column_, PrimaryColumn as PrimaryColumn_, ManyToOne as ManyToOne_, Index as Index_} from "typeorm" +import * as marshal from "./marshal" +import {OfferInteraction} from "./_offerInteraction" +import {Offer} from "./offer.model" + +@Entity_() +export class OfferEvent { + constructor(props?: Partial) { + Object.assign(this, props) + } + + @PrimaryColumn_() + id!: string + + @Column_("numeric", {transformer: marshal.bigintTransformer, nullable: true}) + blockNumber!: bigint | undefined | null + + @Column_("text", {nullable: false}) + caller!: string + + @Column_("text", {nullable: true}) + currentOwner!: string | undefined | null + + @Column_("varchar", {length: 6, nullable: false}) + interaction!: OfferInteraction + + @Column_("text", {nullable: false}) + meta!: string + + @Index_() + @ManyToOne_(() => Offer, {nullable: false}) + offer!: Offer + + @Column_("timestamp with time zone", {nullable: false}) + timestamp!: Date +} diff --git a/src/processor.ts b/src/processor.ts index a6bd7bc..a0cf67b 100644 --- a/src/processor.ts +++ b/src/processor.ts @@ -31,8 +31,8 @@ processor.addEventHandler(Event.destroy, mappings.handleCollectionDestroy); processor.addEventHandler(Event.priceUpdate, mappings.handleTokenList); processor.addEventHandler(Event.sold, mappings.handleTokenBuy); processor.addEventHandler(Event.placeOffer, mappings.handleOfferPlace); -// processor.addEventHandler(Event.withdrawOffer, dummy); -// processor.addEventHandler(Event.acceptOffer, dummy); +processor.addEventHandler(Event.withdrawOffer, mappings.handleOfferWithdraw); +processor.addEventHandler(Event.acceptOffer, mappings.handleOfferAccept); processor.addEventHandler(Event.addRoyalty, mappings.handleRoyaltyAdd); processor.addEventHandler(Event.payRoyalty, mappings.handleRoyaltyPay); diff --git a/src/types/events.ts b/src/types/events.ts index 3d9b894..22e2e89 100644 --- a/src/types/events.ts +++ b/src/types/events.ts @@ -3,6 +3,7 @@ import {EventContext, Result, deprecateLatest} from './support' import * as v39 from './v39' import * as v50 from './v50' import * as v51 from './v51' +import * as v52 from './v52' export class MarketplaceOfferAcceptedEvent { constructor(private ctx: EventContext) { @@ -24,14 +25,29 @@ export class MarketplaceOfferAcceptedEvent { return this.ctx._chain.decodeEvent(this.ctx.event) } + /** + * Offer was accepted \[sender, class_id, instance_id, amount, maker\] + */ + get isV52(): boolean { + return this.ctx._chain.getEventHash('marketplace.OfferAccepted') === '83fa789650cf7e0a68ea0f67c2a68a8e0de3f500393a77592cb755fdb5787c36' + } + + /** + * Offer was accepted \[sender, class_id, instance_id, amount, maker\] + */ + get asV52(): [v52.AccountId32, bigint, bigint, bigint, v52.AccountId32] { + assert(this.isV52) + return this.ctx._chain.decodeEvent(this.ctx.event) + } + get isLatest(): boolean { deprecateLatest() - return this.isV39 + return this.isV52 } - get asLatest(): [v39.AccountId32, bigint, bigint, bigint] { + get asLatest(): [v52.AccountId32, bigint, bigint, bigint, v52.AccountId32] { deprecateLatest() - return this.asV39 + return this.asV52 } } diff --git a/src/types/support.ts b/src/types/support.ts index a5a1ec6..011573e 100644 --- a/src/types/support.ts +++ b/src/types/support.ts @@ -57,6 +57,7 @@ export interface StorageContext { _chain: { getStorageItemTypeHash(prefix: string, name: string): string | undefined getStorage(blockHash: string, prefix: string, name: string, ...args: any[]): Promise + queryStorage(blockHash: string, prefix: string, name: string, ...args: any[]): Promise } block: { hash: string diff --git a/src/types/v52.ts b/src/types/v52.ts new file mode 100644 index 0000000..b4d85f3 --- /dev/null +++ b/src/types/v52.ts @@ -0,0 +1,3 @@ +import type {Result} from './support' + +export type AccountId32 = Uint8Array