diff --git a/.changeset/small-rocks-buy.md b/.changeset/small-rocks-buy.md new file mode 100644 index 00000000..2af1263b --- /dev/null +++ b/.changeset/small-rocks-buy.md @@ -0,0 +1,5 @@ +--- +'@soundxyz/sdk': major +--- + +Major rework Sound.xyz SDK v4 diff --git a/.gitignore b/.gitignore index 6f027f54..7513657e 100644 --- a/.gitignore +++ b/.gitignore @@ -75,3 +75,5 @@ yarn-error.log !.env.vault cache +packages/sdk/src/api/graphql/gql.ts +packages/sdk-viem/src/api/graphql/gql.ts diff --git a/.graphqlrc.yaml b/.graphqlrc.yaml new file mode 100644 index 00000000..630588fc --- /dev/null +++ b/.graphqlrc.yaml @@ -0,0 +1,2 @@ +schema: + - ./schema.graphql diff --git a/example/package.json b/example/package.json index 25408129..c78c164a 100644 --- a/example/package.json +++ b/example/package.json @@ -8,20 +8,20 @@ "mint": "bob-tsm src/mint.ts" }, "dependencies": { - "@soundxyz/tiered-sdk-viem": "workspace:^", "@soundxyz/sdk": "workspace:^", "@soundxyz/sound-protocol": "^1.7.0", - "alchemy-sdk": "^2.9.2", + "@soundxyz/tiered-sdk-viem": "workspace:^", + "alchemy-sdk": "^2.10.1", "date-fns": "^2.30.0", "ethers": "^5.7.2", - "require-env-variable": "^4.0.1" + "require-env-variable": "^4.0.2" }, "devDependencies": { - "@types/node": "20.4.5", + "@types/node": "20.8.6", "bob-tsm": "^1.1.2", "dotenv": "^16.3.1", - "esbuild": "^0.18.17", - "typescript": "5.1.6", - "undici": "^5.22.1" + "esbuild": "^0.19.4", + "typescript": "5.2.2", + "undici": "^5.26.3" } } diff --git a/package.json b/package.json index b4c1fbc2..ede62888 100644 --- a/package.json +++ b/package.json @@ -22,10 +22,11 @@ "codegen": "pnpm -r --filter=sdk-subgraph codegen", "format": "prettier . --write", "postinstall": "husky install", + "prettier:write": "prettier \"**/*.{ts,tsx,mjs,cjs,js}\" --write", "pretty-quick": "pretty-quick --staged", "release": "pnpm -r --access=public publish --no-git-checks", "release:canary": "(node scripts/canary-release.js && pnpm -r publish --access public --no-git-checks --tag alpha) || echo Skipping Canary...", - "test": "pnpm -r --filter=sdk test", + "test": "pnpm -r --filter=sdk --filter=old-sdk test", "tsc": "tsc -p tsconfig.json", "typecheck": "pnpm tsc" }, @@ -39,21 +40,21 @@ "@changesets/cli": "2.26.2", "@changesets/config": "^2.3.1", "@changesets/read": "^0.5.9", - "@manypkg/get-packages": "^1.1.3", - "@types/node": "20.4.5", - "@typescript-eslint/eslint-plugin": "^6.2.0", - "@typescript-eslint/parser": "^6.2.0", + "@manypkg/get-packages": "^2.2.0", + "@types/node": "20.8.6", + "@typescript-eslint/eslint-plugin": "^6.8.0", + "@typescript-eslint/parser": "^6.8.0", "dotenv-vault": "^1.25.0", - "eslint": "^8.45.0", - "eslint-config-prettier": "^8.9.0", - "eslint-plugin-prettier": "^5.0.0", + "eslint": "^8.51.0", + "eslint-config-prettier": "^9.0.0", + "eslint-plugin-prettier": "^5.0.1", "husky": "^8.0.3", - "lint-staged": "^13.2.3", - "prettier": "^3.0.0", - "rimraf": "^5.0.1", + "lint-staged": "^15.0.1", + "prettier": "^3.0.3", + "rimraf": "^5.0.5", "semver": "^7.5.4", - "typescript": "5.1.6", - "vitest": "^0.34.1" + "typescript": "5.2.2", + "vitest": "^0.34.6" }, "packageManager": "pnpm@8.0.0", "engines": { diff --git a/packages/sdk/.eslintrc.js b/packages/old-sdk/.eslintrc.js similarity index 100% rename from packages/sdk/.eslintrc.js rename to packages/old-sdk/.eslintrc.js diff --git a/packages/sdk/.gitignore b/packages/old-sdk/.gitignore similarity index 100% rename from packages/sdk/.gitignore rename to packages/old-sdk/.gitignore diff --git a/packages/sdk/CHANGELOG.md b/packages/old-sdk/CHANGELOG.md similarity index 100% rename from packages/sdk/CHANGELOG.md rename to packages/old-sdk/CHANGELOG.md diff --git a/packages/old-sdk/LICENSE b/packages/old-sdk/LICENSE new file mode 100644 index 00000000..99f049ad --- /dev/null +++ b/packages/old-sdk/LICENSE @@ -0,0 +1,21 @@ +MIT License Copyright (c) 2022 Sound.xyz + +Permission is hereby granted, free of +charge, to any person obtaining a copy of this software and associated +documentation files (the "Software"), to deal in the Software without +restriction, including without limitation the rights to use, copy, modify, merge, +publish, distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to the +following conditions: + +The above copyright notice and this permission notice +(including the next paragraph) shall be included in all copies or substantial +portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF +ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO +EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR +OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/packages/old-sdk/README.md b/packages/old-sdk/README.md new file mode 100644 index 00000000..ebaaf41e --- /dev/null +++ b/packages/old-sdk/README.md @@ -0,0 +1,3 @@ +# Sound.xyz SDK + +Visit [https://docs.sound.xyz](https://docs.sound.xyz) for more information diff --git a/packages/old-sdk/build.mjs b/packages/old-sdk/build.mjs new file mode 100644 index 00000000..2e4d82e1 --- /dev/null +++ b/packages/old-sdk/build.mjs @@ -0,0 +1,96 @@ +// @ts-check + +import { buildCode } from 'bob-ts' +import { execSync, spawn } from 'child_process' +import { writeFile, readFile, copyFile, mkdir } from 'fs/promises' + +execSync('pnpm graphql-codegen', { + stdio: 'inherit', +}) + +spawn(`pnpm tsc -p tsconfig.build.json`, { + stdio: 'inherit', + shell: true, +}) + +await mkdir('dist').catch(() => null) + +const [pkgString] = await Promise.all([ + readFile('package.json', 'utf-8'), + buildCode({ + entryPoints: ['src'], + clean: true, + format: 'interop', + outDir: 'dist', + target: 'es2019', + sourcemap: false, + }), + copyFile('README.md', 'dist/README.md'), + copyFile('LICENSE', 'dist/LICENSE'), +]) + +/** + * @type {{name: string, version: string, exports: Record; main: string; module: string; types: string; sideEffects: false; author: string, license: string, dependencies: Record; peerDependencies: Record} & Record} + */ +const { + name, + version, + exports: pkgExports, + main, + module: modulePkg, + types, + sideEffects, + author, + dependencies, + peerDependencies, + license, + scripts, + devDependencies, + publishConfig, + ...rest +} = JSON.parse(pkgString) + +const exports = {} + +function cleanDistPrefix( + /** + * @type {string} + */ + path, +) { + return path.replace('./dist', '.') +} + +for (const [key, value] of Object.entries(pkgExports)) { + if (typeof value === 'string') { + exports[key] = cleanDistPrefix(value) + } else { + exports[key] = { + types: cleanDistPrefix(value.types), + require: cleanDistPrefix(value.require), + import: cleanDistPrefix(value.import), + } + } +} + +await writeFile( + 'dist/package.json', + JSON.stringify( + { + name, + version, + main: cleanDistPrefix(main), + module: cleanDistPrefix(modulePkg), + types: cleanDistPrefix(types), + exports, + sideEffects, + author, + license, + dependencies, + peerDependencies, + ...rest, + }, + null, + 2, + ), +) diff --git a/packages/old-sdk/codegen.yml b/packages/old-sdk/codegen.yml new file mode 100644 index 00000000..1236053a --- /dev/null +++ b/packages/old-sdk/codegen.yml @@ -0,0 +1,40 @@ +schema: '../../schema.graphql' +documents: + - './graphql/**/*.gql' +generates: + ./src/api/graphql/gql.ts: + plugins: + - typescript + - typescript-operations + - typescript-document-nodes + config: + useTypeImports: true + enumsAsConst: true + skipTypename: true + namingConvention: 'keep' + preResolveTypes: true + onlyOperationTypes: true + strictScalars: true + avoidOptionals: + field: true + object: false + scalars: + DateTime: 'string' + NonNegativeInt: 'number' + PositiveInt: 'number' + JSON: 'unknown' + Timestamp: 'number' + Void: 'null' + UUID: 'string' + CountryCode: 'string' + NonEmptyString: 'string' + URL: 'string' + EmailAddress: 'string' + Address: 'string' + ENS: 'string' + JWT: 'string' + SemanticVersion: 'string' + documentMode: 'string' +hooks: + afterAllFileWrite: + - pnpm prettier --write diff --git a/packages/sdk/graphql/eligibility.gql b/packages/old-sdk/graphql/eligibility.gql similarity index 100% rename from packages/sdk/graphql/eligibility.gql rename to packages/old-sdk/graphql/eligibility.gql diff --git a/packages/sdk/graphql/release.gql b/packages/old-sdk/graphql/release.gql similarity index 100% rename from packages/sdk/graphql/release.gql rename to packages/old-sdk/graphql/release.gql diff --git a/packages/old-sdk/graphql/test.gql b/packages/old-sdk/graphql/test.gql new file mode 100644 index 00000000..7f4fdf3b --- /dev/null +++ b/packages/old-sdk/graphql/test.gql @@ -0,0 +1,3 @@ +query Test { + __typename +} diff --git a/packages/sdk/graphql/token.gql b/packages/old-sdk/graphql/token.gql similarity index 100% rename from packages/sdk/graphql/token.gql rename to packages/old-sdk/graphql/token.gql diff --git a/packages/old-sdk/package.json b/packages/old-sdk/package.json new file mode 100644 index 00000000..b9dc10d3 --- /dev/null +++ b/packages/old-sdk/package.json @@ -0,0 +1,91 @@ +{ + "name": "@soundxyz/old-sdk", + "private": true, + "version": "3.0.0", + "homepage": "https://docs.sound.xyz", + "repository": { + "type": "git", + "url": "https://github.com/soundxyz/sdk", + "directory": "packages/sdk" + }, + "license": "MIT", + "author": "Sound.xyz", + "sideEffects": false, + "exports": { + ".": { + "types": "./dist/index.d.ts", + "require": "./dist/index.js", + "import": "./dist/index.mjs" + }, + "./*": { + "types": "./dist/*.d.ts", + "require": "./dist/*.js", + "import": "./dist/*.mjs" + }, + "./package.json": "./package.json" + }, + "main": "./dist/index.js", + "module": "./dist/index.mjs", + "types": "./dist/index.d.ts", + "scripts": { + "prepack": "node build.mjs", + "prepare": "node build.mjs", + "postpublish": "gh-release", + "validate": "graphql-inspector validate \"./graphql/*.gql\" \"./schema.graphql\" --deprecated" + }, + "dependencies": { + "@ethersproject/abstract-provider": "^5.7.0", + "@ethersproject/abstract-signer": "^5.7.0", + "@ethersproject/address": "^5.7.0", + "keccak256": "^1.0.6", + "zod": "^3.22.4" + }, + "devDependencies": { + "@ethersproject/abi": "^5.7.0", + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/contracts": "^5.7.0", + "@ethersproject/providers": "^5.7.2", + "@ethersproject/sha2": "^5.7.0", + "@ethersproject/solidity": "^5.7.0", + "@ethersproject/units": "^5.7.0", + "@ethersproject/wallet": "^5.7.0", + "@graphql-codegen/cli": "^5.0.0", + "@graphql-codegen/core": "^4.0.0", + "@graphql-codegen/typescript": "^4.0.1", + "@graphql-codegen/typescript-document-nodes": "^4.0.1", + "@graphql-codegen/typescript-operations": "^4.0.1", + "@graphql-inspector/cli": "^4.0.2", + "@graphql-inspector/config": "^4.0.1", + "@graphql-tools/utils": "^10.0.7", + "@soundxyz/sound-protocol": "^1.7.0", + "@soundxyz/sound-protocol-v1-0": "npm:@soundxyz/sound-protocol@1.1.0", + "@soundxyz/sound-protocol-v1-1": "npm:@soundxyz/sound-protocol@1.3.0", + "@types/chai": "^4.3.8", + "@types/mocha": "^10.0.2", + "@types/node": "20.8.6", + "bob-ts": "^4.1.1", + "bob-tsm": "^1.1.2", + "chai": "^4.3.10", + "changesets-github-release": "^0.1.0", + "dotenv": "^16.3.1", + "esbuild": "^0.19.4", + "ethereum-waffle": "^4.0.10", + "ethers": "^5.7.2", + "graphql": "^16.8.1", + "merkletreejs": "^0.3.10", + "prettier": "^3.0.3", + "require-env-variable": "^4.0.2", + "ts-node": "^10.9.1", + "tslib": "^2.6.2", + "typescript": "5.2.2" + }, + "peerDependencies": { + "@soundxyz/sound-protocol": "~1.7.0" + }, + "publishConfig": { + "access": "public", + "directory": "dist", + "linkDirectory": true + } +} diff --git a/packages/sdk/src/api.ts b/packages/old-sdk/src/api.ts similarity index 100% rename from packages/sdk/src/api.ts rename to packages/old-sdk/src/api.ts diff --git a/packages/sdk/src/client/edition/create.ts b/packages/old-sdk/src/client/edition/create.ts similarity index 100% rename from packages/sdk/src/client/edition/create.ts rename to packages/old-sdk/src/client/edition/create.ts diff --git a/packages/sdk/src/client/edition/info.ts b/packages/old-sdk/src/client/edition/info.ts similarity index 100% rename from packages/sdk/src/client/edition/info.ts rename to packages/old-sdk/src/client/edition/info.ts diff --git a/packages/sdk/src/client/edition/interface.ts b/packages/old-sdk/src/client/edition/interface.ts similarity index 100% rename from packages/sdk/src/client/edition/interface.ts rename to packages/old-sdk/src/client/edition/interface.ts diff --git a/packages/sdk/src/client/edition/merkle.ts b/packages/old-sdk/src/client/edition/merkle.ts similarity index 100% rename from packages/sdk/src/client/edition/merkle.ts rename to packages/old-sdk/src/client/edition/merkle.ts diff --git a/packages/sdk/src/client/edition/mint.ts b/packages/old-sdk/src/client/edition/mint.ts similarity index 100% rename from packages/sdk/src/client/edition/mint.ts rename to packages/old-sdk/src/client/edition/mint.ts diff --git a/packages/sdk/src/client/edition/schedules.ts b/packages/old-sdk/src/client/edition/schedules.ts similarity index 100% rename from packages/sdk/src/client/edition/schedules.ts rename to packages/old-sdk/src/client/edition/schedules.ts diff --git a/packages/sdk/src/client/errors.ts b/packages/old-sdk/src/client/errors.ts similarity index 100% rename from packages/sdk/src/client/errors.ts rename to packages/old-sdk/src/client/errors.ts diff --git a/packages/sdk/src/client/instance.ts b/packages/old-sdk/src/client/instance.ts similarity index 100% rename from packages/sdk/src/client/instance.ts rename to packages/old-sdk/src/client/instance.ts diff --git a/packages/sdk/src/client/main.ts b/packages/old-sdk/src/client/main.ts similarity index 100% rename from packages/sdk/src/client/main.ts rename to packages/old-sdk/src/client/main.ts diff --git a/packages/sdk/src/client/sam/api.ts b/packages/old-sdk/src/client/sam/api.ts similarity index 100% rename from packages/sdk/src/client/sam/api.ts rename to packages/old-sdk/src/client/sam/api.ts diff --git a/packages/sdk/src/client/sam/contract.ts b/packages/old-sdk/src/client/sam/contract.ts similarity index 100% rename from packages/sdk/src/client/sam/contract.ts rename to packages/old-sdk/src/client/sam/contract.ts diff --git a/packages/sdk/src/client/sam/types.ts b/packages/old-sdk/src/client/sam/types.ts similarity index 100% rename from packages/sdk/src/client/sam/types.ts rename to packages/old-sdk/src/client/sam/types.ts diff --git a/packages/sdk/src/client/validation.ts b/packages/old-sdk/src/client/validation.ts similarity index 100% rename from packages/sdk/src/client/validation.ts rename to packages/old-sdk/src/client/validation.ts diff --git a/packages/sdk/src/errors.ts b/packages/old-sdk/src/errors.ts similarity index 100% rename from packages/sdk/src/errors.ts rename to packages/old-sdk/src/errors.ts diff --git a/packages/old-sdk/src/index.ts b/packages/old-sdk/src/index.ts new file mode 100644 index 00000000..78c2e680 --- /dev/null +++ b/packages/old-sdk/src/index.ts @@ -0,0 +1,4 @@ +export { SoundClient } from './client/main' + +export * as Errors from './errors' +export * from './types' diff --git a/packages/sdk/src/merkle/lanyard.ts b/packages/old-sdk/src/merkle/lanyard.ts similarity index 100% rename from packages/sdk/src/merkle/lanyard.ts rename to packages/old-sdk/src/merkle/lanyard.ts diff --git a/packages/sdk/src/merkle/types.ts b/packages/old-sdk/src/merkle/types.ts similarity index 100% rename from packages/sdk/src/merkle/types.ts rename to packages/old-sdk/src/merkle/types.ts diff --git a/packages/sdk/src/types.ts b/packages/old-sdk/src/types.ts similarity index 100% rename from packages/sdk/src/types.ts rename to packages/old-sdk/src/types.ts diff --git a/packages/sdk/src/utils/constants.ts b/packages/old-sdk/src/utils/constants.ts similarity index 100% rename from packages/sdk/src/utils/constants.ts rename to packages/old-sdk/src/utils/constants.ts diff --git a/packages/sdk/src/utils/helpers.ts b/packages/old-sdk/src/utils/helpers.ts similarity index 100% rename from packages/sdk/src/utils/helpers.ts rename to packages/old-sdk/src/utils/helpers.ts diff --git a/packages/sdk/src/utils/promise.ts b/packages/old-sdk/src/utils/promise.ts similarity index 100% rename from packages/sdk/src/utils/promise.ts rename to packages/old-sdk/src/utils/promise.ts diff --git a/packages/old-sdk/tsconfig.build.json b/packages/old-sdk/tsconfig.build.json new file mode 100644 index 00000000..5efb4509 --- /dev/null +++ b/packages/old-sdk/tsconfig.build.json @@ -0,0 +1,11 @@ +{ + "extends": "../../tsconfig.json", + "compilerOptions": { + "rootDir": "./src", + "outDir": "./dist", + "noEmit": false, + "declaration": true, + "emitDeclarationOnly": true + }, + "include": ["src"] +} diff --git a/packages/sdk-viem/codegen.yml b/packages/sdk-viem/codegen.yml index d28a868b..dd9fcaaa 100644 --- a/packages/sdk-viem/codegen.yml +++ b/packages/sdk-viem/codegen.yml @@ -1,4 +1,4 @@ -schema: './schema.graphql' +schema: '../../schema.graphql' documents: - './graphql/**/*.gql' generates: diff --git a/packages/sdk-viem/package.json b/packages/sdk-viem/package.json index 745e1f57..85c7914e 100644 --- a/packages/sdk-viem/package.json +++ b/packages/sdk-viem/package.json @@ -32,11 +32,12 @@ "pull-env": "dotenv-vault pull", "test": "vitest dev", "test:cov": "vitest dev --coverage", - "test:ci": "CI=true vitest --coverage" + "test:ci": "CI=true vitest --coverage", + "tsc": "tsc -p tsconfig.build.json" }, "dependencies": { "keccak256": "^1.0.6", - "zod": "^3.21.4" + "zod": "^3.22.4" }, "devDependencies": { "@ethersproject/solidity": "^5.7.0", @@ -47,16 +48,16 @@ "@graphql-codegen/typescript-operations": "^4.0.1", "@graphql-inspector/cli": "^4.0.2", "@graphql-inspector/config": "^4.0.1", - "@graphql-tools/utils": "^10.0.4", - "@types/node": "20.4.5", + "@graphql-tools/utils": "^10.0.7", + "@types/node": "20.8.6", "@viem/anvil": "^0.0.6", "bob-ts": "^4.1.1", "bob-tsm": "^1.1.2", - "esbuild": "^0.18.17", + "esbuild": "^0.19.4", "merkletreejs": "^0.3.10", - "require-env-variable": "^4.0.1", - "typescript": "5.1.6", - "viem": "^1.10.8" + "require-env-variable": "^4.0.2", + "typescript": "5.2.2", + "viem": "^1.16.6" }, "peerDependencies": { "viem": "^1.10.8" diff --git a/packages/sdk-viem/src/api/graphql/gql.ts b/packages/sdk-viem/src/api/graphql/gql.ts deleted file mode 100644 index ebbccef6..00000000 --- a/packages/sdk-viem/src/api/graphql/gql.ts +++ /dev/null @@ -1,1237 +0,0 @@ -export type Maybe = T | null -export type InputMaybe = Maybe -export type Exact = { [K in keyof T]: T[K] } -export type MakeOptional = Omit & { [SubKey in K]?: Maybe } -export type MakeMaybe = Omit & { [SubKey in K]: Maybe } -export type MakeEmpty = { [_ in K]?: never } -export type Incremental = T | { [P in keyof T]?: P extends ' $fragmentName' | '__typename' ? T[P] : never } -/** All built-in and custom scalars, mapped to their actual values */ -export type Scalars = { - ID: string - String: string - Boolean: boolean - Int: number - Float: number - /** Ethereum address */ - Address: string - /** A string that cannot be passed as an empty value */ - CountryCode: string - /** A date-time string at UTC, such as 2007-12-03T10:15:30Z, compliant with the `date-time` format outlined in section 5.6 of the RFC 3339 profile of the ISO 8601 standard for representation of dates and times using the Gregorian calendar. */ - DateTime: string - /** Ethereum name service value with `.eth` suffix */ - ENS: any - /** A field whose value is a JSON Web Token (JWT): https://jwt.io/introduction. */ - JWT: any - /** A string that cannot be passed as an empty value */ - NonEmptyString: string - /** Integers that will have a value of 0 or more. */ - NonNegativeInt: number - /** Integers that will have a value greater than 0. */ - PositiveInt: number - /** Semantic version string */ - SemanticVersion: any - /** The javascript `Date` as integer. Type represents date and time as number of milliseconds from start of UNIX epoch. */ - Timestamp: number - /** UUID v4 */ - UUID: string - /** Represents NULL values */ - Void: null -} - -/** Filter activity feed */ -export type ActivityFeedFilterArgs = { - /** Only get activity feed of certain type */ - activityFeedType?: ActivityFeedType -} - -/** Filter activity feed groups */ -export type ActivityFeedGroupFilterArgs = { - /** Only get activity feed groups of certain type */ - types?: Array -} - -/** Activity feed group filter option */ -export const ActivityFeedGroupFilterOption = { - ADDED_TO_PLAYLIST: 'ADDED_TO_PLAYLIST', - ALL: 'ALL', - COLLECTED: 'COLLECTED', - LIKES: 'LIKES', - RELEASE_DROPPED: 'RELEASE_DROPPED', -} as const - -export type ActivityFeedGroupFilterOption = - (typeof ActivityFeedGroupFilterOption)[keyof typeof ActivityFeedGroupFilterOption] -/** Activity feed type */ -export const ActivityFeedType = { - GLOBAL: 'GLOBAL', - NOTABLE_COLLECTORS: 'NOTABLE_COLLECTORS', - USER: 'USER', -} as const - -export type ActivityFeedType = (typeof ActivityFeedType)[keyof typeof ActivityFeedType] -/** Pagination parameters for allCollectors */ -export type AllCollectorsCursorConnectionArgs = { - /** Start forwards pagination since "after" cursor */ - after?: InputMaybe - /** Start backwards pagination since "before" cursor */ - before?: InputMaybe - /** Limit the amount of nodes to be fetched, to be used with "after", with a maximum of 51 nodes. */ - first?: InputMaybe - /** Limit the amount of nodes to be fetched, to be used with "before", with a maximum of 51 nodes. */ - last?: InputMaybe - /** Customize sort behavior */ - sort?: AllCollectorsCursorConnectionSort -} - -/** Customize sort of collectors */ -export type AllCollectorsCursorConnectionSort = { - /** Sort by date of user first being connected in platform */ - createdAt?: InputMaybe -} - -/** Filter the allCollectors result */ -export type AllCollectorsFilter = { - /** Should it include artists as collectors */ - includeArtists?: Scalars['Boolean'] - /** Should it only include collectors with a valid username (twitterHandle, ens or displayName) */ - onlyWithUsername?: Scalars['Boolean'] -} - -/** Input for allCollectors query */ -export type AllCollectorsInput = { - /** Filter the collectors */ - filter?: AllCollectorsFilter - /** Pagination parameters of collectors */ - pagination?: AllCollectorsCursorConnectionArgs -} - -/** Pagination parameters for allShelves */ -export type AllShelvesCursorConnectionArgs = { - /** Start forwards pagination since "after" cursor */ - after?: InputMaybe - /** Start backwards pagination since "before" cursor */ - before?: InputMaybe - /** Limit the amount of nodes to be fetched, to be used with "after", with a maximum of 51 nodes. */ - first?: InputMaybe - /** Limit the amount of nodes to be fetched, to be used with "before", with a maximum of 51 nodes. */ - last?: InputMaybe - /** Customize sort behavior */ - sort?: AllShelvesCursorConnectionSort -} - -/** Customize sort of shelves */ -export type AllShelvesCursorConnectionSort = { - /** Sort by date of playlist being created */ - createdAt?: InputMaybe -} - -/** Filter the shelves of allShelves query */ -export type AllShelvesFilter = { - /** Filter the shelves based on the expected types */ - type?: Array -} - -/** Input for allShelves query */ -export type AllShelvesInput = { - /** Filter the shelves, by default it gives all the user created shelves */ - filter?: AllShelvesFilter - /** Pagination parameters, by default it gives the last 10 shelves created */ - pagination?: AllShelvesCursorConnectionArgs -} - -/** Artist activity feed action type filter option */ -export const ArtistActivityFeedActivityTypeFilterOption = { - ALL: 'ALL', - COLLECTIONS: 'COLLECTIONS', - LIKES: 'LIKES', - PLAYLISTS: 'PLAYLISTS', - RELEASES: 'RELEASES', -} as const - -export type ArtistActivityFeedActivityTypeFilterOption = - (typeof ArtistActivityFeedActivityTypeFilterOption)[keyof typeof ArtistActivityFeedActivityTypeFilterOption] -/** Filter artist activity types */ -export type ArtistActivityFeedFilterArgs = { - /** Only get activity of given action type */ - activityTypes?: Array - /** Only get activity by the given group */ - types?: Array -} - -/** Artist activity feed type filter option */ -export const ArtistActivityFeedTypeFilterOption = { - ALL: 'ALL', - ARTIST: 'ARTIST', - COLLECTOR: 'COLLECTOR', - RELEASE: 'RELEASE', -} as const - -export type ArtistActivityFeedTypeFilterOption = - (typeof ArtistActivityFeedTypeFilterOption)[keyof typeof ArtistActivityFeedTypeFilterOption] -/** Artist application status */ -export const ArtistApplicationStatus = { - ACCEPTED: 'ACCEPTED', - PENDING: 'PENDING', - REJECTED: 'REJECTED', -} as const - -export type ArtistApplicationStatus = (typeof ArtistApplicationStatus)[keyof typeof ArtistApplicationStatus] -/** Pagination paramaters for artist collectors */ -export type ArtistCollectorCursorConnectionArgs = { - /** Start forwards pagination since "after" cursor */ - after?: InputMaybe - /** Start backwards pagination since "before" cursor */ - before?: InputMaybe - /** Limit the amount of nodes to be fetched, to be used with "after", with a maximum of 51 nodes. */ - first?: InputMaybe - /** Limit the amount of nodes to be fetched, to be used with "before", with a maximum of 51 nodes. */ - last?: InputMaybe - /** Customize sort behavior */ - sort?: ArtistCollectorCursorConnectionSort -} - -/** Customize sort of collectors */ -export type ArtistCollectorCursorConnectionSort = { - /** Sort by first nft collected date */ - firstNftCollectedDate?: InputMaybe - /** Sort by amount nfts collected, with tie-breaker of earliest collector first */ - nftsCount?: InputMaybe -} - -/** Filter for paginated artists */ -export type ArtistCursorFilterArgs = { - /** Specify whether artist already has at least one minted release */ - hasMintedRelease?: InputMaybe - /** Specify season to be filtered */ - season?: InputMaybe -} - -/** Artist releases author filter option */ -export const ArtistReleasesAuthorFilterOption = { - ALL: 'ALL', - ONLY_APPEARS_ON: 'ONLY_APPEARS_ON', - ONLY_AUTHORED_RELEASES: 'ONLY_AUTHORED_RELEASES', -} as const - -export type ArtistReleasesAuthorFilterOption = - (typeof ArtistReleasesAuthorFilterOption)[keyof typeof ArtistReleasesAuthorFilterOption] -/** Artist releases credit split filter option */ -export const ArtistReleasesCreditSplitFilterOption = { - ALL: 'ALL', - ONLY_CREDIT_SPLITS: 'ONLY_CREDIT_SPLITS', - ONLY_NO_CREDIT_SPLITS: 'ONLY_NO_CREDIT_SPLITS', -} as const - -export type ArtistReleasesCreditSplitFilterOption = - (typeof ArtistReleasesCreditSplitFilterOption)[keyof typeof ArtistReleasesCreditSplitFilterOption] -/** Filter for artist releases. Default is only for artist sounds. */ -export type ArtistReleasesFilter = { - /** Filters on release credit split status */ - creditSplit?: ArtistReleasesCreditSplitFilterOption - /** Excludes specific releaseIds */ - excludeReleaseIds?: Array - /** Filters on release with specified mint time status */ - mintTimeStatus?: Array - /** Filters on whether album releases have been revealed or not */ - releaseAlbumRevealStatus?: ReleaseAlbumRevealFilterOption - /** Filters on release author status */ - releaseAuthor?: ArtistReleasesAuthorFilterOption - /** Filters on release type */ - releaseType?: Array -} - -/** Types of seasons for artists */ -export const ArtistSeason = { - GENESIS: 'GENESIS', - SEASON_FOUR: 'SEASON_FOUR', - SEASON_ONE: 'SEASON_ONE', - SEASON_THREE: 'SEASON_THREE', - SEASON_TWO: 'SEASON_TWO', -} as const - -export type ArtistSeason = (typeof ArtistSeason)[keyof typeof ArtistSeason] -/** Types of release sales */ -export const AuctionType = { - FIXED_QUANTITY: 'FIXED_QUANTITY', - OPEN_EDITION: 'OPEN_EDITION', - OPEN_EDITION_WITH_SAM: 'OPEN_EDITION_WITH_SAM', - RANGE_BOUND: 'RANGE_BOUND', -} as const - -export type AuctionType = (typeof AuctionType)[keyof typeof AuctionType] -/** Name of the collection market */ -export const CollectionMarketType = { - AIRDROP: 'AIRDROP', - BONDING_CURVE_SALE: 'BONDING_CURVE_SALE', - PRIMARY_SALE: 'PRIMARY_SALE', - SECONDARY_SALE: 'SECONDARY_SALE', -} as const - -export type CollectionMarketType = (typeof CollectionMarketType)[keyof typeof CollectionMarketType] -/** Filter collector feed activity types */ -export type CollectorActivityFeedFilterArgs = { - /** Only get activity of given type */ - types?: Array -} - -/** Collector activity feed type filter option */ -export const CollectorActivityFeedTypeFilterOption = { - ALL: 'ALL', - COLLECTIONS: 'COLLECTIONS', - LIKES: 'LIKES', - PLAYLISTS: 'PLAYLISTS', -} as const - -export type CollectorActivityFeedTypeFilterOption = - (typeof CollectorActivityFeedTypeFilterOption)[keyof typeof CollectorActivityFeedTypeFilterOption] -/** Input for release by contract */ -export type ContractReleaseInput = { - /** Contract address */ - contractAddress: Scalars['Address'] - /** Optional edition identifier */ - editionId?: InputMaybe -} - -/** Contract type, currently the playform only supports "ARTIST" */ -export const ContractType = { - ARTIST: 'ARTIST', - EDITION: 'EDITION', -} as const - -export type ContractType = (typeof ContractType)[keyof typeof ContractType] -/** Credit role type */ -export const CreditRoleType = { - ARTIST: 'ARTIST', - CURATOR: 'CURATOR', - OTHER: 'OTHER', - PRODUCER: 'PRODUCER', - REMIXER: 'REMIXER', - SONGWRITER: 'SONGWRITER', - VISUAL_ARTIST: 'VISUAL_ARTIST', -} as const - -export type CreditRoleType = (typeof CreditRoleType)[keyof typeof CreditRoleType] -/** Base cursor connection arguments */ -export type CursorConnectionArgs = { - /** Start forwards pagination since "after" cursor */ - after?: InputMaybe - /** Start backwards pagination since "before" cursor */ - before?: InputMaybe - /** Limit the amount of nodes to be fetched, to be used with "after", with a maximum of 51 nodes. */ - first?: InputMaybe - /** Limit the amount of nodes to be fetched, to be used with "before", with a maximum of 51 nodes. */ - last?: InputMaybe - /** Sort the connection ascending or descending */ - sort?: SortOrder -} - -/** Input for draftAllowListFromRelease query */ -export type DraftAllowlistFromReleaseInput = { - /** Merkle tree root */ - merkleRoot: Scalars['String'] - /** Release identifier */ - releaseId: Scalars['UUID'] -} - -/** Different draft allow list types */ -export const DraftAllowlistType = { - ARTIST_COLLECTORS: 'ARTIST_COLLECTORS', - MANUALLY_ADDED_COLLECTORS: 'MANUALLY_ADDED_COLLECTORS', - RELEASE_COLLECTORS: 'RELEASE_COLLECTORS', -} as const - -export type DraftAllowlistType = (typeof DraftAllowlistType)[keyof typeof DraftAllowlistType] -/** Filter the edition owned tokenIds result */ -export type EditionOwnedTokenIdsFilter = { - /** Should it include golden egg */ - includeGoldenEgg?: Scalars['Boolean'] -} - -/** Input for editionOwnedTokenIds query */ -export type EditionOwnedTokenIdsInput = { - /** Edition contract address */ - editionContractAddress: Scalars['Address'] - /** Filter the tokenIds */ - filter?: EditionOwnedTokenIdsFilter - /** Limit the amount of token ids to be returned. By default there is no limit */ - limit?: InputMaybe - /** Public address of owner */ - ownerPublicAddress: Scalars['Address'] - /** Customize sort behavior */ - sort?: NftCursorConnectionSort -} - -/** Event type */ -export const EventType = { - AIRDROP: 'AIRDROP', - EDITION_PURCHASED: 'EDITION_PURCHASED', - ORDERS_MATCHED: 'ORDERS_MATCHED', - OTHER_MINTED: 'OTHER_MINTED', - TRANSFER: 'TRANSFER', - UNKNOWN: 'UNKNOWN', -} as const - -export type EventType = (typeof EventType)[keyof typeof EventType] -/** Customize iframe html parameters */ -export type IframeHtmlParameters = { - /** Customize height */ - height: Scalars['String'] - /** Customize style */ - style: Scalars['String'] - /** Customize width */ - width: Scalars['String'] -} - -/** Status of Key Client */ -export const KeyClientStatus = { - ACTIVE: 'ACTIVE', - INACTIVE: 'INACTIVE', -} as const - -export type KeyClientStatus = (typeof KeyClientStatus)[keyof typeof KeyClientStatus] -/** Pagination parameters for Latest Sales connection */ -export type LatestSalesCursorConnectionArgs = { - /** Start forwards pagination since "after" cursor */ - after?: InputMaybe - /** Start backwards pagination since "before" cursor */ - before?: InputMaybe - /** Limit the amount of nodes to be fetched, to be used with "after", with a maximum of 51 nodes. */ - first?: InputMaybe - /** Limit the amount of nodes to be fetched, to be used with "before", with a maximum of 51 nodes. */ - last?: InputMaybe - /** Customize sorting latest sales */ - sort?: LatestSalesCursorConnectionSort -} - -/** Customize sorting latest sales */ -export type LatestSalesCursorConnectionSort = { - /** Sort by blockchain timestamp */ - blockTimestamp?: InputMaybe - /** Sort by date of creation of event entity */ - createdAt?: InputMaybe -} - -/** Filter for paginated latest sales */ -export type LatestSalesCursorFilterArgs = { - /** Specify event types to be filtered */ - eventTypes?: InputMaybe> -} - -/** License for the release */ -export const LicenseType = { - ALL_RIGHTS_RESERVED: 'ALL_RIGHTS_RESERVED', - CREATIVE_COMMONS: 'CREATIVE_COMMONS', -} as const - -export type LicenseType = (typeof LicenseType)[keyof typeof LicenseType] -/** Input used for link query */ -export type LinkInput = { - /** Link slug */ - slug: Scalars['NonEmptyString'] -} - -/** Type of media entity, either Images or Audio */ -export const MediaType = { - ARTIST_BANNER_IMAGE: 'ARTIST_BANNER_IMAGE', - ARTIST_COLLECTORS_CSV: 'ARTIST_COLLECTORS_CSV', - ARTIST_FREE_SALE_ALLOWLIST: 'ARTIST_FREE_SALE_ALLOWLIST', - ARTIST_PRESALE_ALLOWLIST: 'ARTIST_PRESALE_ALLOWLIST', - AUDIO: 'AUDIO', - AUDIO_128K: 'AUDIO_128K', - AUDIO_192K: 'AUDIO_192K', - AUDIO_256K: 'AUDIO_256K', - AVATAR_IMAGE: 'AVATAR_IMAGE', - DRAFT_ALLOWLISTED_ADDRESSES_CSV: 'DRAFT_ALLOWLISTED_ADDRESSES_CSV', - RELEASE_BANNER_IMAGE: 'RELEASE_BANNER_IMAGE', - RELEASE_COVER_IMAGE: 'RELEASE_COVER_IMAGE', - RELEASE_GOLDEN_EGG_IMAGE: 'RELEASE_GOLDEN_EGG_IMAGE', - RELEASE_HOLDERS_CSV: 'RELEASE_HOLDERS_CSV', - RELEASE_WEB_ANIMATED_GOLDEN_EGG_IMAGE: 'RELEASE_WEB_ANIMATED_GOLDEN_EGG_IMAGE', - RELEASE_WEB_ANIMATED_IMAGE: 'RELEASE_WEB_ANIMATED_IMAGE', - RELEASE_WEB_STATIC_AUTOGEN_IMAGE: 'RELEASE_WEB_STATIC_AUTOGEN_IMAGE', - RELEASE_WEB_STATIC_IMAGE: 'RELEASE_WEB_STATIC_IMAGE', - TMP_ARTIST_BANNER_AUTOGEN_IMAGE: 'TMP_ARTIST_BANNER_AUTOGEN_IMAGE', - TMP_AVATAR_AUTOGEN_IMAGE: 'TMP_AVATAR_AUTOGEN_IMAGE', - TMP_USER_BANNER_AUTOGEN_IMAGE: 'TMP_USER_BANNER_AUTOGEN_IMAGE', - USER_BANNER_IMAGE: 'USER_BANNER_IMAGE', -} as const - -export type MediaType = (typeof MediaType)[keyof typeof MediaType] -/** Mint current time status */ -export const MintTimeStatus = { - PAST: 'PAST', - UPCOMING: 'UPCOMING', -} as const - -export type MintTimeStatus = (typeof MintTimeStatus)[keyof typeof MintTimeStatus] -/** Filter minted releases */ -export type MintedReleasesCursorFilterArgs = { - /** Specify up to 50 contracts to filter the releases */ - contracts?: InputMaybe> - /** Only get releases from specified genres */ - genre?: InputMaybe> - /** Remove currently-featured releases from results */ - hideFeatured?: InputMaybe - /** Only get releases less or equal to than specified mint time */ - mintTimeMaxDate?: InputMaybe - /** Only get releases greater than or equal to specified mint time */ - mintTimeMinDate?: InputMaybe - /** Only get release with specified mint time status */ - mintTimeStatus?: InputMaybe> - /** Filters on whether album releases have been revealed or not */ - releaseAlbumRevealStatus?: InputMaybe - /** Only get release with specified status */ - releaseStatus?: InputMaybe> - /** Filters on release type */ - releaseType?: Array - /** Only get releases from specified seasons */ - season?: InputMaybe> -} - -/** Cursor connection parameters for NFTs */ -export type NftCursorConnectionArgs = { - /** Start forwards pagination since "after" cursor */ - after?: InputMaybe - /** Start backwards pagination since "before" cursor */ - before?: InputMaybe - /** Limit the amount of nodes to be fetched, to be used with "after", with a maximum of 51 nodes. */ - first?: InputMaybe - /** Limit the amount of nodes to be fetched, to be used with "before", with a maximum of 51 nodes. */ - last?: InputMaybe - /** Customize sort behavior */ - sort?: NftCursorConnectionSort -} - -/** Customize the sort behavior of Nfts pagination */ -export type NftCursorConnectionSort = { - /** Sort by date of primary sale */ - primarySaleDate?: InputMaybe - /** Sort by date of last secondary sale with default value of primary sale date */ - secondarySaleDate?: InputMaybe - /** Sort by serial number */ - serialNumber?: InputMaybe -} - -/** Input for "nft" Query */ -export type NftInput = { - /** Contract address of edition */ - contractAddress: Scalars['Address'] - /** Token unique identifier within edition */ - tokenId: Scalars['String'] -} - -/** Platform type */ -export const PlatformType = { - ANDROID: 'ANDROID', - IOS: 'IOS', - WEB: 'WEB', -} as const - -export type PlatformType = (typeof PlatformType)[keyof typeof PlatformType] -/** Filter PlaylistAction details */ -export type PlaylistActionFilterArgs = { - /** If set, only show artist owned releases in paginated release results. Does not apply if the playlist is owned by the artist */ - releaseArtistId?: InputMaybe -} - -/** Cursor connection parameters */ -export type PlaylistActionReleasesCursorConnectionArgs = { - /** Start forwards pagination since "after" cursor */ - after?: InputMaybe - /** Start backwards pagination since "before" cursor */ - before?: InputMaybe - /** Limit the number of nodes to be fetched, to be used with "after", with a maximum of 25 nodes */ - first?: InputMaybe - /** Limit the number of nodes to be fetched, to be used with "before", with a maximum of 25 nodes */ - last?: InputMaybe - /** Sort the releases ascending or descending by release creation date */ - sort?: SortOrder -} - -/** Playlist input */ -export type PlaylistInput = { - /** Association ID based on type of playlist */ - associationId?: InputMaybe - /** Type of playlist */ - type: PlaylistType -} - -/** Currently supported playlists */ -export const PlaylistType = { - ARTIST: 'ARTIST', - HOLDER: 'HOLDER', - HOME: 'HOME', -} as const - -export type PlaylistType = (typeof PlaylistType)[keyof typeof PlaylistType] -/** Pagination parameters of referred users */ -export type ReferredUsersCursorConnectionArgs = { - /** Start forwards pagination since "after" cursor */ - after?: InputMaybe - /** Start backwards pagination since "before" cursor */ - before?: InputMaybe - /** Limit the amount of nodes to be fetched, to be used with "after", with a maximum of 25 nodes. */ - first?: InputMaybe - /** Limit the amount of nodes to be fetched, to be used with "before", with a maximum of 25 nodes. */ - last?: InputMaybe - /** Customize sort behavior */ - sort?: ReferredUsersCursorConnectionSort -} - -/** Customize the sort behavior of release affiliates total purchases */ -export type ReferredUsersCursorConnectionSort = { - /** Sort by purchase block number */ - blockNumber?: InputMaybe -} - -/** Input for referred users within release affiliate total purchases */ -export type ReferredUsersInput = { - /** Pagination parameters */ - pagination?: ReferredUsersCursorConnectionArgs -} - -/** Filter release activity types */ -export type ReleaseActivityFeedFilterArgs = { - /** Only get activity of given type */ - types?: Array -} - -/** Release activity feed input parameters */ -export type ReleaseActivityFeedInput = { - /** Only get activities of given types */ - filter?: ReleaseActivityFeedFilterArgs - /** Pagination parameters */ - pagination?: CursorConnectionArgs -} - -/** Release activity feed type filter option */ -export const ReleaseActivityFeedTypeFilterOption = { - ALL: 'ALL', - COLLECTIONS: 'COLLECTIONS', - LIKES: 'LIKES', - PLAYLISTS: 'PLAYLISTS', - RELEASES: 'RELEASES', -} as const - -export type ReleaseActivityFeedTypeFilterOption = - (typeof ReleaseActivityFeedTypeFilterOption)[keyof typeof ReleaseActivityFeedTypeFilterOption] -/** Release album reveal filter option */ -export const ReleaseAlbumRevealFilterOption = { - ALL: 'ALL', - ONLY_NOT_REVEALED_ALBUMS: 'ONLY_NOT_REVEALED_ALBUMS', - ONLY_REVEALED_ALBUMS: 'ONLY_REVEALED_ALBUMS', -} as const - -export type ReleaseAlbumRevealFilterOption = - (typeof ReleaseAlbumRevealFilterOption)[keyof typeof ReleaseAlbumRevealFilterOption] -/** Input for releaseAllowlist query */ -export type ReleaseAllowlistInput = { - /** Merkle tree root */ - merkleRoot: Scalars['String'] - /** Release identifier */ - releaseId: Scalars['UUID'] -} - -/** Input for releaseChart query */ -export type ReleaseChartByLastDayInput = { - /** Locate chart using the last date of the period (inclusive) */ - lastDayOfChartInclusive: Scalars['DateTime'] -} - -/** Pagination paramaters for release charts */ -export type ReleaseChartCursorConnectionArgs = { - /** Start forwards pagination since "after" cursor */ - after?: InputMaybe - /** Start backwards pagination since "before" cursor */ - before?: InputMaybe - /** Limit the amount of nodes to be fetched, to be used with "after", with a maximum of 51 nodes. */ - first?: InputMaybe - /** Limit the amount of nodes to be fetched, to be used with "before", with a maximum of 51 nodes. */ - last?: InputMaybe - /** Customize sort behavior */ - sort?: ReleaseChartCursorConnectionSort -} - -/** Customize sort of release charts */ -export type ReleaseChartCursorConnectionSort = { - /** Sort by release chart period end exclusive */ - periodEndExclusive?: InputMaybe -} - -/** Input for releaseChart query */ -export type ReleaseChartInput = { - /** Filter on periodEnd date */ - periodEndExclusive: Scalars['DateTime'] -} - -/** Pagination paramaters for release chart ranks */ -export type ReleaseChartRankCursorConnectionArgs = { - /** Start forwards pagination since "after" cursor */ - after?: InputMaybe - /** Start backwards pagination since "before" cursor */ - before?: InputMaybe - /** Limit the amount of nodes to be fetched, to be used with "after", with a maximum of 51 nodes. */ - first?: InputMaybe - /** Limit the amount of nodes to be fetched, to be used with "before", with a maximum of 51 nodes. */ - last?: InputMaybe - /** Customize sort behavior */ - sort?: ReleaseChartRankCursorConnectionSort -} - -/** Customize sort of collectors */ -export type ReleaseChartRankCursorConnectionSort = { - /** Sort by release chart current rank */ - currentRank?: InputMaybe -} - -/** Input for releaseChartRank query */ -export type ReleaseChartRankInput = { - /** Release Chart Rank entity id */ - id: Scalars['UUID'] -} - -/** Input for releaseChart query */ -export type ReleaseChartsInput = { - /** Cursor connection parameters */ - pagination?: ReleaseChartCursorConnectionArgs -} - -/** Pagination paramaters for artist collectors */ -export type ReleaseCollectorCursorConnectionArgs = { - /** Start forwards pagination since "after" cursor */ - after?: InputMaybe - /** Start backwards pagination since "before" cursor */ - before?: InputMaybe - /** Limit the amount of nodes to be fetched, to be used with "after", with a maximum of 51 nodes. */ - first?: InputMaybe - /** Limit the amount of nodes to be fetched, to be used with "before", with a maximum of 51 nodes. */ - last?: InputMaybe - /** Customize sort behavior */ - sort?: ReleaseCollectorCursorConnectionSort -} - -/** Customize sort of collectors */ -export type ReleaseCollectorCursorConnectionSort = { - /** Sort by first nft collected date */ - firstNftCollectedDate?: InputMaybe - /** Sort by lowest owned serial number */ - lowestOwnedSerialNumber?: InputMaybe - /** Sort by amount nfts collected, with tie-breaker of earliest collector first */ - nftsCount?: InputMaybe -} - -/** Release featured status */ -export const ReleaseFeaturedStatus = { - ALL: 'ALL', - HOT: 'HOT', -} as const - -export type ReleaseFeaturedStatus = (typeof ReleaseFeaturedStatus)[keyof typeof ReleaseFeaturedStatus] -/** Input for "releaseFromToken" query */ -export type ReleaseFromTokenInput = { - /** Contract address of release */ - contractAddress: Scalars['Address'] - /** Token chain identifier */ - tokenId: Scalars['String'] -} - -/** Filter the releases to be searched */ -export type ReleaseSearchFilter = { - /** Filters on release type */ - type?: InputMaybe> -} - -/** Pagination parameters of release shelves */ -export type ReleaseShelvesCursorConnectionArgs = { - /** Start forwards pagination since "after" cursor */ - after?: InputMaybe - /** Start backwards pagination since "before" cursor */ - before?: InputMaybe - /** Limit the amount of nodes to be fetched, to be used with "after", with a maximum of 51 nodes. */ - first?: InputMaybe - /** Limit the amount of nodes to be fetched, to be used with "before", with a maximum of 51 nodes. */ - last?: InputMaybe - /** Customize sort behavior */ - sort?: ReleaseShelvesCursorConnectionSort -} - -/** Customize sort of release shelves */ -export type ReleaseShelvesCursorConnectionSort = { - /** Sort by date of release being added in the shelf */ - addedAtDate?: InputMaybe -} - -/** Filter release shelves */ -export type ReleaseShelvesFilter = { - /** Filter shelves to be included by identifier. You can only specify up to 51 shelves. */ - shelfIds?: InputMaybe> -} - -/** Release current status type */ -export const ReleaseStatus = { - AVAILABLE_TO_MINT: 'AVAILABLE_TO_MINT', - SOLD_OUT: 'SOLD_OUT', -} as const - -export type ReleaseStatus = (typeof ReleaseStatus)[keyof typeof ReleaseStatus] -/** Release type, currently the platform only supports "SINGLE" */ -export const ReleaseType = { - ALBUM: 'ALBUM', - ALBUM_TRACK: 'ALBUM_TRACK', - SINGLE: 'SINGLE', -} as const - -export type ReleaseType = (typeof ReleaseType)[keyof typeof ReleaseType] -/** Input for Release.webEmbed */ -export type ReleaseWebEmbedInput = { - /** Customize html parameters */ - html?: IframeHtmlParameters - /** Referral address */ - referralAddress?: InputMaybe -} - -/** Customize webapp uri parameters of release */ -export type ReleaseWebappUriInput = { - /** Referral address */ - referralAddress?: InputMaybe -} - -/** Pagination parameters for releases connection */ -export type ReleasesCursorConnectionArgs = { - /** Start forwards pagination since "after" cursor */ - after?: InputMaybe - /** Start backwards pagination since "before" cursor */ - before?: InputMaybe - /** Limit the amount of nodes to be fetched, to be used with "after", with a maximum of 51 nodes. */ - first?: InputMaybe - /** Limit the amount of nodes to be fetched, to be used with "before", with a maximum of 51 nodes. */ - last?: InputMaybe - /** Start after the first "skip" entities based. It can't be specified alongside "after" or "before" */ - skip?: InputMaybe - /** Customize sort behavior of releases pagination */ - sort?: ReleasesCursorConnectionSort -} - -/** Customize sort behavior of releases pagination */ -export type ReleasesCursorConnectionSort = { - /** Sort by createdAt of release */ - createdAt?: InputMaybe - /** Sort by mintStartTime of release */ - mintStartTime?: InputMaybe -} - -/** Filter releases */ -export type ReleasesCursorFilterArgs = { - /** Filter by getting releases of the artists followed by the specified user identifier */ - artistFollowedByUser?: InputMaybe - /** Specify up to 50 contracts to filter the releases */ - contracts?: InputMaybe> - /** Filters on release featured status */ - featuredStatus?: InputMaybe - /** Only get releases from specified genres */ - genre?: InputMaybe> - /** Remove currently-featured releases from results */ - hideFeatured?: InputMaybe - /** Only get releases less or equal to than specified mint time */ - mintTimeMaxDate?: InputMaybe - /** Only get releases greater than or equal to specified mint time */ - mintTimeMinDate?: InputMaybe - /** Only get release with specified mint time status */ - mintTimeStatus?: InputMaybe> - /** Filters on whether album releases have been revealed or not */ - releaseAlbumRevealStatus?: InputMaybe - /** Only get release with specified status */ - releaseStatus?: InputMaybe> - /** Filters on release type */ - releaseType?: InputMaybe> - /** Only get releases from specified seasons */ - season?: InputMaybe> -} - -/** Input for reportPlayStopped mutation */ -export type ReportPlayStoppedInput = { - /** End of play session */ - finish: Scalars['Timestamp'] - /** Duration of play in seconds */ - listenDuration: Scalars['Int'] - /** Amount of pauses on the same session */ - pauseCount: Scalars['Int'] - /** Start of play session */ - start: Scalars['Timestamp'] - /** Track UUID */ - trackId: Scalars['UUID'] - /** Random UUID generated by client-side */ - uuid: Scalars['String'] -} - -/** Pagination arguments for search */ -export type SearchConnectionArgs = { - /** Start forwards pagination since "after" cursor */ - after?: InputMaybe - /** Limit the amount of nodes to be fetched, to be used with "after", with a maximum of 20 nodes. */ - first?: Scalars['PositiveInt'] -} - -/** Input for "search" query */ -export type SearchInput = { - /** How many entities to be fetched for fixed lists, maximum of 20 */ - limit?: Scalars['PositiveInt'] - /** Text search */ - text: Scalars['String'] -} - -/** Cursor connection parameters for shelves */ -export type ShelfCursorConnectionArgs = { - /** Start forwards pagination since "after" cursor */ - after?: InputMaybe - /** Start backwards pagination since "before" cursor */ - before?: InputMaybe - /** Limit the amount of nodes to be fetched, to be used with "after", with a maximum of 51 nodes. */ - first?: InputMaybe - /** Limit the amount of nodes to be fetched, to be used with "before", with a maximum of 51 nodes. */ - last?: InputMaybe - /** Customize sort behavior */ - sort?: ShelfCursorConnectionSort -} - -/** Customize the sort behavior of shelves pagination */ -export type ShelfCursorConnectionSort = { - /** Sort by created at date */ - createdAt?: InputMaybe - /** Sort by shelf index value */ - index?: InputMaybe -} - -/** Cursor connection parameters for shelf ordered releases */ -export type ShelfOrderedReleaseCursorConnectionArgs = { - /** Start forwards pagination since "after" cursor */ - after?: InputMaybe - /** Start backwards pagination since "before" cursor */ - before?: InputMaybe - /** Limit the amount of nodes to be fetched, to be used with "after", with a maximum of 51 nodes. */ - first?: InputMaybe - /** Limit the amount of nodes to be fetched, to be used with "before", with a maximum of 51 nodes. */ - last?: InputMaybe -} - -/** Customize sort behavior of shelf releases */ -export type ShelfReleasesSort = { - /** Sort by release added to shelf date */ - addedToShelfDate?: InputMaybe - /** Sort by release index of shelf */ - index?: SortOrder -} - -/** Shelf type */ -export const ShelfType = { - DEFAULT: 'DEFAULT', - USER_LIKED_SOUNDS: 'USER_LIKED_SOUNDS', -} as const - -export type ShelfType = (typeof ShelfType)[keyof typeof ShelfType] -/** Filter based the type of shelf */ -export const ShelfTypeFilter = { - ALL: 'ALL', - LIKED: 'LIKED', - USER_CREATED: 'USER_CREATED', -} as const - -export type ShelfTypeFilter = (typeof ShelfTypeFilter)[keyof typeof ShelfTypeFilter] -/** Input for Shelf.webEmbed */ -export type ShelfWebEmbedInput = { - /** Customize html parameters */ - html?: IframeHtmlParameters -} - -/** Key the release was written in */ -export const SongKeyType = { - A_FLAT_MAJOR: 'A_FLAT_MAJOR', - A_MAJOR: 'A_MAJOR', - A_MINOR: 'A_MINOR', - B_FLAT_MAJOR: 'B_FLAT_MAJOR', - B_FLAT_MINOR: 'B_FLAT_MINOR', - B_MAJOR: 'B_MAJOR', - B_MINOR: 'B_MINOR', - C_MAJOR: 'C_MAJOR', - C_MINOR: 'C_MINOR', - C_SHARP_MINOR: 'C_SHARP_MINOR', - D_FLAT_MAJOR: 'D_FLAT_MAJOR', - D_MAJOR: 'D_MAJOR', - D_MINOR: 'D_MINOR', - E_FLAT_MAJOR: 'E_FLAT_MAJOR', - E_FLAT_MINOR: 'E_FLAT_MINOR', - E_MAJOR: 'E_MAJOR', - E_MINOR: 'E_MINOR', - F_MAJOR: 'F_MAJOR', - F_MINOR: 'F_MINOR', - F_SHARP_MAJOR: 'F_SHARP_MAJOR', - F_SHARP_MINOR: 'F_SHARP_MINOR', - G_MAJOR: 'G_MAJOR', - G_MINOR: 'G_MINOR', - G_SHARP_MINOR: 'G_SHARP_MINOR', -} as const - -export type SongKeyType = (typeof SongKeyType)[keyof typeof SongKeyType] -/** Ascending or Descending sort */ -export const SortOrder = { - ASC: 'ASC', - DESC: 'DESC', -} as const - -export type SortOrder = (typeof SortOrder)[keyof typeof SortOrder] -/** Time period to aggregate trending table queries */ -export const TimePeriodAggEnum = { - ALL_TIME: 'ALL_TIME', - ONE_DAY: 'ONE_DAY', - ONE_MONTH: 'ONE_MONTH', - SEVEN_DAY: 'SEVEN_DAY', -} as const - -export type TimePeriodAggEnum = (typeof TimePeriodAggEnum)[keyof typeof TimePeriodAggEnum] -/** Input for top affiliate curators query */ -export type TopAffiliateCuratorsInput = { - /** Limit the amount to be returned, Up to 100 */ - limit?: Scalars['PositiveInt'] - /** Sort logic used */ - sort: TopCuratorsSortEnum - /** For what time period the data should come from */ - timePeriod: TopChartTimePeriodEnum -} - -/** Input for top artists query */ -export type TopArtistsInput = { - /** Limit the amount to be returned, Up to 100 */ - limit?: Scalars['PositiveInt'] - /** Sort logic used */ - sort: TrendingArtistsSortEnum - /** For what time period the data should come from */ - timePeriod: TopChartTimePeriodEnum -} - -/** Time period to aggregate top chart queries */ -export const TopChartTimePeriodEnum = { - ALL_TIME: 'ALL_TIME', - SEVEN_DAY: 'SEVEN_DAY', - THIRTY_DAY: 'THIRTY_DAY', -} as const - -export type TopChartTimePeriodEnum = (typeof TopChartTimePeriodEnum)[keyof typeof TopChartTimePeriodEnum] -export const TopCuratorsSortEnum = { - MINTS: 'MINTS', - SOUNDS_REFERRED: 'SOUNDS_REFERRED', - TOTAL_AFFILIATE_EARNED: 'TOTAL_AFFILIATE_EARNED', - TOTAL_VOLUME: 'TOTAL_VOLUME', -} as const - -export type TopCuratorsSortEnum = (typeof TopCuratorsSortEnum)[keyof typeof TopCuratorsSortEnum] -/** Input for topPlaylists query */ -export type TopPlaylistsInput = { - /** Limit the amount to be returned, Up to 100 */ - limit?: Scalars['PositiveInt'] - /** Sort logic used */ - sort: TrendingPlaylistsSortEnum - /** For what time period the data should come from */ - timePeriod: TimePeriodAggEnum -} - -/** Type of sort parameter used for trending artists */ -export const TrendingArtistsSortEnum = { - NFTS_SOLD: 'NFTS_SOLD', - PRIMARY_SALES: 'PRIMARY_SALES', - SECONDARY_SALES: 'SECONDARY_SALES', - TOTAL_SALES: 'TOTAL_SALES', - UNIQUE_COLLECTORS: 'UNIQUE_COLLECTORS', -} as const - -export type TrendingArtistsSortEnum = (typeof TrendingArtistsSortEnum)[keyof typeof TrendingArtistsSortEnum] -/** Type of sort paratemer used for trending collectors */ -export const TrendingCollectorsSortEnum = { - CREATORS_SUPPORTED: 'CREATORS_SUPPORTED', - NFTS_BOUGHT: 'NFTS_BOUGHT', - TOTAL_SPENT: 'TOTAL_SPENT', -} as const - -export type TrendingCollectorsSortEnum = (typeof TrendingCollectorsSortEnum)[keyof typeof TrendingCollectorsSortEnum] -/** Trending indicator type */ -export const TrendingIndicator = { - DOWN: 'DOWN', - NEW: 'NEW', - SAME: 'SAME', - UP: 'UP', -} as const - -export type TrendingIndicator = (typeof TrendingIndicator)[keyof typeof TrendingIndicator] -/** Type of sort paratemer used for trending playlists */ -export const TrendingPlaylistsSortEnum = { - LIKES: 'LIKES', -} as const - -export type TrendingPlaylistsSortEnum = (typeof TrendingPlaylistsSortEnum)[keyof typeof TrendingPlaylistsSortEnum] -/** Type of sort paratemer used for trending releases */ -export const TrendingReleasesSortEnum = { - NFTS_SOLD: 'NFTS_SOLD', - PRIMARY_SALES: 'PRIMARY_SALES', - SECONDARY_SALES: 'SECONDARY_SALES', - TOTAL_SALES: 'TOTAL_SALES', - UNIQUE_COLLECTORS: 'UNIQUE_COLLECTORS', -} as const - -export type TrendingReleasesSortEnum = (typeof TrendingReleasesSortEnum)[keyof typeof TrendingReleasesSortEnum] -/** User relation type */ -export const TypeOfRelation = { - FOLLOWING: 'FOLLOWING', -} as const - -export type TypeOfRelation = (typeof TypeOfRelation)[keyof typeof TypeOfRelation] -/** Filter of User.collectedReleases paginated field */ -export type UserCollectedReleasesFilter = { - /** Filters on whether album releases have been revealed or not */ - releaseAlbumRevealStatus?: ReleaseAlbumRevealFilterOption - /** Text search on release title or artist's name or handle */ - text?: InputMaybe - /** Filters on release type */ - type?: InputMaybe> -} - -/** Cursor connection parameters */ -export type UserCursorConnectionArgs = { - /** Start forwards pagination since "after" cursor */ - after?: InputMaybe - /** Start backwards pagination since "before" cursor */ - before?: InputMaybe - /** Limit the amount of nodes to be fetched, to be used with "after", with a maximum of 51 nodes. */ - first?: InputMaybe - /** Limit the amount of nodes to be fetched, to be used with "before", with a maximum of 51 nodes. */ - last?: InputMaybe - /** Sort the users ascending or descending relative to the user creation date */ - sort?: SortOrder -} - -/** Filter the NFTs of User */ -export type UserNftsConnectionFilters = { - /** Only include Nfts from specified releases */ - releases?: InputMaybe> -} - -/** Filter the shelves of a user */ -export type UserShelvesFilter = { - /** Case-insensitive text search on shelves names */ - text?: InputMaybe - /** Filter by different types of shelves available for users. */ - type?: ShelfTypeFilter -} - -/** Input of VersionSupported query */ -export type VersionStatusInput = { - /** Platform type */ - platform: PlatformType - /** Semantic version */ - version: Scalars['SemanticVersion'] -} - -export type MerkleProofQueryVariables = Exact<{ - root: Scalars['String'] - unhashedLeaf: Scalars['String'] -}> - -export type MerkleProofQuery = { merkleTreeProof: { proof: Array } | null } - -export type ReleaseInfoQueryVariables = Exact<{ - contractAddress: Scalars['Address'] - editionId?: InputMaybe -}> - -export type ReleaseInfoQuery = { - release: { - id: string - contractAddress: string - editionId: string | null - type: ReleaseType - mintStartTime: number - mintStartTimestamp: number - webappUri: string - externalUrl: string | null - marketPlaceUrl: string | null - title: string - behindTheMusic: string - season: string | null - scheduleIds: Array<{ mintIds: Array; minterAddress: string }> | null - genre: { id: string; name: string } - track: { - id: string - duration: number - audio: { - audio128k: { id: string; url: string } | null - audio192k: { id: string; url: string } | null - audio256k: { id: string; url: string } | null - audioOriginal: { id: string; url: string } - } - } - artist: { - id: string - webappUri: string - season: string | null - soundHandle: string - bannerImage: { id: string; url: string } | null - user: { - id: string - publicAddress: string - description: string | null - displayName: string | null - twitterHandle: string | null - avatar: { id: string; url: string } | null - } - } - rewards: Array<{ id: string; description: string; title: string }> - coverImage: { id: string; url: string } - goldenEggImage: { id: string; url: string } - eggGame: { id: string; winningSerialNum: number } | null - } | null -} - -export type ReleaseShareInfoQueryVariables = Exact<{ - contractAddress: Scalars['Address'] - editionId?: InputMaybe - releaseWebappUriInput?: InputMaybe - releaseEmbedUriInput?: InputMaybe -}> - -export type ReleaseShareInfoQuery = { - release: { - id: string - contractAddress: string - editionId: string | null - type: ReleaseType - mintStartTime: number - mintStartTimestamp: number - webappUri: string - webEmbed: string - coverImage: { id: string; url: string } - track: { - id: string - duration: number - audio: { - audio128k: { id: string; url: string } | null - audio192k: { id: string; url: string } | null - audio256k: { id: string; url: string } | null - audioOriginal: { id: string; url: string } - } - } - } | null -} - -export type TestQueryVariables = Exact<{ [key: string]: never }> - -export type TestQuery = { __typename: 'Query' } - -export type EditionOwnedTokenIdsQueryVariables = Exact<{ - input: EditionOwnedTokenIdsInput -}> - -export type EditionOwnedTokenIdsQuery = { editionOwnedTokenIds: Array } - -export const MerkleProof = `query MerkleProof($root:String!$unhashedLeaf:String!){merkleTreeProof(root:$root unhashedLeaf:$unhashedLeaf){proof}}` -export const ReleaseInfo = `query ReleaseInfo($contractAddress:Address!$editionId:String){release:releaseFromContract(contractAddress:$contractAddress editionId:$editionId){id contractAddress editionId type mintStartTime mintStartTimestamp webappUri externalUrl marketPlaceUrl title behindTheMusic season scheduleIds{mintIds minterAddress}genre{id name}track{id duration audio{audio128k{id url}audio192k{id url}audio256k{id url}audioOriginal{id url}}}artist{id webappUri season soundHandle bannerImage{id url}user{id publicAddress description displayName twitterHandle avatar{id url}}}rewards{id description title}coverImage{id url}goldenEggImage{id url}eggGame{id winningSerialNum}}}` -export const ReleaseShareInfo = `query ReleaseShareInfo($contractAddress:Address!$editionId:String$releaseWebappUriInput:ReleaseWebappUriInput$releaseEmbedUriInput:ReleaseWebEmbedInput){release:releaseFromContract(contractAddress:$contractAddress editionId:$editionId){id contractAddress editionId type mintStartTime mintStartTimestamp webappUri(input:$releaseWebappUriInput)webEmbed(input:$releaseEmbedUriInput)coverImage{id url}track{id duration audio{audio128k{id url}audio192k{id url}audio256k{id url}audioOriginal{id url}}}}}` -export const Test = `query Test{__typename}` -export const EditionOwnedTokenIds = `query EditionOwnedTokenIds($input:EditionOwnedTokenIdsInput!){editionOwnedTokenIds(input:$input)}` diff --git a/packages/sdk-viem/src/client/instance.ts b/packages/sdk-viem/src/client/instance.ts index 107b431f..4e3ffd46 100644 --- a/packages/sdk-viem/src/client/instance.ts +++ b/packages/sdk-viem/src/client/instance.ts @@ -1,7 +1,7 @@ -import type { Address } from 'viem' +import type { Address, Chain } from 'viem' import { SoundAPI } from '../api' import { MissingMerkleProvider, MissingProviderError, MissingSignerError, MissingSoundAPI } from '../errors' -import type { MerkleProvider, SoundClientContractProvider, ClientProvider, Wallet } from '../types' +import type { ClientProvider, MerkleProvider, SoundClientContractProvider, Wallet } from '../types' import { getLazyOption } from '../utils/helpers' export type SoundClientInstanceConfig = SoundClientContractProvider & { @@ -21,13 +21,29 @@ export type SoundClientInstanceConfig = SoundClientContractProvider & { merkleProvider?: MerkleProvider } +export interface SoundClientInstance { + instance: { + client: NonNullable | null + wallet: NonNullable | null + merkleProvider: NonNullable | null + onUnhandledError: NonNullable + soundAPI: NonNullable | null + idempotentCachedCall(key: string, cb: () => Promise>): Promise> | Awaited + } + expectMerkleProvider(): MerkleProvider + expectWallet(): Promise<{ wallet: Wallet; userAddress: Address }> + expectClient(): Promise + expectSoundAPI(): SoundAPI + getNetworkChainId(): Promise +} + export function SoundClientInstance({ client, account, merkleProvider, onUnhandledError = console.error, soundAPI, -}: SoundClientInstanceConfig) { +}: SoundClientInstanceConfig): SoundClientInstance { const IdempotentCache: Record = {} const IdempotentCachePromises: Record> = {} @@ -44,7 +60,7 @@ export function SoundClientInstance({ })) } - const instance = { + const instance: SoundClientInstance['instance'] = { client: client || null, wallet: account || null, merkleProvider: merkleProvider || null, @@ -104,5 +120,3 @@ export function SoundClientInstance({ getNetworkChainId, } } - -export type SoundClientInstance = ReturnType diff --git a/packages/sdk-viem/src/client/main.ts b/packages/sdk-viem/src/client/main.ts index 519af111..6a941c0d 100644 --- a/packages/sdk-viem/src/client/main.ts +++ b/packages/sdk-viem/src/client/main.ts @@ -1,8 +1,13 @@ import type { Address } from 'viem' -import type { SoundClientConfig } from '../types' +import type { EditionConfig, MintConfig, SoundClientConfig, TransactionGasOptions } from '../types' import { curry } from '../utils/helpers' import { LazyPromise } from '../utils/promise' -import { createEdition, estimateCreateEdition, expectedEditionAddress } from './edition/create' +import { + createEdition, + estimateCreateEdition, + expectedEditionAddress, + type CreateEditionOptions, +} from './edition/create' import { editionInfo } from './edition/info' import { eligibleQuantity, estimateMint, mint, numberMinted, numberOfTokensOwned } from './edition/mint' import { editionMinterMintIds, editionRegisteredMinters, editionScheduleIds, mintSchedules } from './edition/schedules' @@ -16,10 +21,71 @@ import { SamTotalBuyPrice, SamTotalSellPrice, } from './sam/contract' -import type { SamEditionAddress } from './sam/types' +import type { SamBuyOptions, SamEditionAddress, SamSellOptions } from './sam/types' import { isSoundEdition } from './validation' -export function SoundClient(config: SoundClientConfig) { +export interface SoundClient { + instance: SoundClientInstance + isSoundEdition: OmitThisParameter + + edition: { + info: OmitThisParameter + mintSchedules: OmitThisParameter + mint: OmitThisParameter + estimateMint: OmitThisParameter + sam: (args: SamEditionAddress) => { + contract: { + address: Promise + info: ReturnType + + totalBuyPrice: (args: { offset: number; quantity: number }) => Promise<{ + total: bigint + platformFee: bigint + artistFee: bigint + goldenEggFee: bigint + affiliateFee: bigint + } | null> + totalSellPrice: (args: { offset: number; quantity: number }) => Promise + + buy: (args: SamBuyOptions) => Promise<{ + transactionHash: Address + }> + + sell: (args: SamSellOptions) => Promise<{ + transactionHash: Address + }> + } + api: { + availableTokensToSell: (args: { quantity: number; ownerPublicAddress: string }) => Promise + } + } + + eligibleQuantity: OmitThisParameter + numberOfTokensOwned: OmitThisParameter + numberMinted: OmitThisParameter + + scheduleIds: OmitThisParameter + registeredMinters: OmitThisParameter + minterMintIds: OmitThisParameter + } + + creation: ({ creatorAddress }: { creatorAddress: Address }) => { + createEdition: (args: CreateEditionOptions) => Promise
+ estimateEdition: ( + args: { + editionConfig: EditionConfig + mintConfigs: MintConfig[] + salt?: string | number | undefined + } & TransactionGasOptions, + ) => ReturnType + expectedEditionAddress: (args: { deployer: `0x${string}`; salt: string | number }) => Promise<{ + editionAddress: `0x${string}` + exists: boolean + }> + } +} + +export function SoundClient(config: SoundClientConfig): SoundClient { const instance = SoundClientInstance(config) const client = instance @@ -79,5 +145,3 @@ export function SoundClient(config: SoundClientConfig) { }, } } - -export type SoundClient = ReturnType diff --git a/packages/sdk/.env.vault b/packages/sdk/.env.vault deleted file mode 100644 index f7de3bbc..00000000 --- a/packages/sdk/.env.vault +++ /dev/null @@ -1,12 +0,0 @@ -################################################################################# -# # -# This file uniquely identifies your project in dotenv-vault. # -# You SHOULD commit this file to source control. # -# # -# Generated with 'npx dotenv-vault new' # -# # -# Learn more at https://dotenv.org/env-vault # -# # -################################################################################# - -DOTENV_VAULT=vlt_d2c4e6101c6ad037cf986e9b1de673615f11c5eb7f14f7e29f2a6a10c739633b \ No newline at end of file diff --git a/packages/sdk/codegen.yml b/packages/sdk/codegen.yml index d28a868b..1236053a 100644 --- a/packages/sdk/codegen.yml +++ b/packages/sdk/codegen.yml @@ -1,4 +1,4 @@ -schema: './schema.graphql' +schema: '../../schema.graphql' documents: - './graphql/**/*.gql' generates: @@ -14,6 +14,7 @@ generates: namingConvention: 'keep' preResolveTypes: true onlyOperationTypes: true + strictScalars: true avoidOptionals: field: true object: false @@ -30,6 +31,9 @@ generates: URL: 'string' EmailAddress: 'string' Address: 'string' + ENS: 'string' + JWT: 'string' + SemanticVersion: 'string' documentMode: 'string' hooks: afterAllFileWrite: diff --git a/packages/sdk/hardhat.config.ts b/packages/sdk/hardhat.config.ts deleted file mode 100644 index 3ff9060b..00000000 --- a/packages/sdk/hardhat.config.ts +++ /dev/null @@ -1,22 +0,0 @@ -import type { HardhatUserConfig } from 'hardhat/config' -import '@nomiclabs/hardhat-ethers' -import '@nomiclabs/hardhat-waffle' -import 'dotenv/config' -import { requireEnv } from 'require-env-variable' - -const { MNEMONIC } = requireEnv('MNEMONIC') - -const config: HardhatUserConfig = { - solidity: { - version: '0.8.16', - }, - networks: { - hardhat: { - accounts: { - mnemonic: MNEMONIC, - }, - }, - }, -} - -export default config diff --git a/packages/sdk/package.json b/packages/sdk/package.json index 930446b4..100d0542 100644 --- a/packages/sdk/package.json +++ b/packages/sdk/package.json @@ -1,6 +1,7 @@ { "name": "@soundxyz/sdk", "version": "3.0.0", + "private": true, "homepage": "https://docs.sound.xyz", "repository": { "type": "git", @@ -30,68 +31,25 @@ "prepack": "node build.mjs", "prepare": "node build.mjs", "postpublish": "gh-release", - "pull-env": "dotenv-vault pull", - "test": "hardhat test", "validate": "graphql-inspector validate \"./graphql/*.gql\" \"./schema.graphql\" --deprecated" }, - "dependencies": { - "@ethersproject/abstract-provider": "^5.7.0", - "@ethersproject/abstract-signer": "^5.7.0", - "@ethersproject/address": "^5.7.0", - "keccak256": "^1.0.6", - "zod": "^3.21.4" - }, "devDependencies": { - "@ethersproject/abi": "^5.7.0", - "@ethersproject/bignumber": "^5.7.0", - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/contracts": "^5.7.0", - "@ethersproject/providers": "^5.7.2", - "@ethersproject/sha2": "^5.7.0", - "@ethersproject/solidity": "^5.7.0", - "@ethersproject/units": "^5.7.0", - "@ethersproject/wallet": "^5.7.0", "@graphql-codegen/cli": "^5.0.0", "@graphql-codegen/core": "^4.0.0", - "@graphql-codegen/typescript": "^4.0.1", - "@graphql-codegen/typescript-document-nodes": "^4.0.1", - "@graphql-codegen/typescript-operations": "^4.0.1", "@graphql-inspector/cli": "^4.0.2", "@graphql-inspector/config": "^4.0.1", - "@graphql-tools/utils": "^10.0.4", - "@nomicfoundation/hardhat-chai-matchers": "^1.0.6", - "@nomicfoundation/hardhat-network-helpers": "^1.0.8", - "@nomiclabs/hardhat-ethers": "^2.2.3", - "@nomiclabs/hardhat-waffle": "^2.0.6", - "@soundxyz/sound-protocol": "^1.7.0", - "@soundxyz/sound-protocol-v1-0": "npm:@soundxyz/sound-protocol@1.1.0", - "@soundxyz/sound-protocol-v1-1": "npm:@soundxyz/sound-protocol@1.3.0", - "@types/chai": "^4.3.5", - "@types/mocha": "^10.0.1", - "@types/node": "20.4.5", + "@parcel/watcher": "^2.3.0", + "@soundxyz/codegen-fragments": "^2.0.0", + "@types/node": "20.8.6", "bob-ts": "^4.1.1", - "bob-tsm": "^1.1.2", - "chai": "^4.3.7", - "changesets-github-release": "^0.1.0", - "dotenv": "^16.3.1", - "esbuild": "^0.18.17", - "ethereum-waffle": "^4.0.10", - "ethers": "^5.7.2", - "graphql": "^16.7.1", - "hardhat": "^2.17.0", - "merkletreejs": "^0.3.10", - "prettier": "^3.0.0", - "require-env-variable": "^4.0.1", - "ts-node": "^10.9.1", - "tslib": "^2.6.1", - "typescript": "5.1.6" + "esbuild": "^0.19.4", + "prettier": "^3.0.3", + "typescript": "5.2.2", + "viem": "^1.16.6", + "zod": "^3.22.4" }, "peerDependencies": { - "@soundxyz/sound-protocol": "~1.7.0" - }, - "publishConfig": { - "access": "public", - "directory": "dist", - "linkDirectory": true + "viem": "^1.16.6", + "zod": "^3.22.4" } } diff --git a/packages/sdk/schema.graphql b/packages/sdk/schema.graphql deleted file mode 100644 index 71a4ba1c..00000000 --- a/packages/sdk/schema.graphql +++ /dev/null @@ -1,8147 +0,0 @@ -schema { - query: Query - mutation: Mutation - subscription: Subscription -} - -""" -Activity Feed entity -""" -type ActivityFeed { - """ - Paginated activity feed groups of activity feed. - """ - groups( - """ - Only get activity feed groups of certain filter values - """ - filter: ActivityFeedGroupFilterArgs! = { types: [ALL] } - """ - Pagination parameters - """ - pagination: CursorConnectionArgs! = { first: 10, sort: DESC } - ): ActivityFeedGroups! - """ - Activity feed UUID - """ - id: ID! -} - -""" -Filter activity feed -""" -input ActivityFeedFilterArgs { - """ - Only get activity feed of certain type - """ - activityFeedType: ActivityFeedType! = GLOBAL -} - -""" -Activity Feed Group entity -""" -type ActivityFeedGroup implements Node { - """ - Activity feed group UUID - """ - id: ID! - """ - Activity feed group info - """ - information: ActivityFeedGroupInfo! - """ - Activity feed group timestamp of most recent activity occurrence - """ - latestActivityOccurenceAt: Timestamp! - """ - Activity feed group ranking score - """ - rankingScore: Int! -} - -""" -Activity feed group collected release entity -""" -type ActivityFeedGroupCollectedRelease { - """ - Amount paid in Wei for all purchases of a single release within activity feed group - """ - amountPaidInWei: String! - """ - Returns whether user has purchased the golden egg within the activity feed group - """ - hasGoldenEgg: Boolean! - """ - Most recent user that release was purchased from - """ - mostRecentPurchasedFromUser: User! - """ - Release corresponding to activity feed group collected release entity - """ - release: Release! - """ - Amount of nfts of a single release within activity feed group - """ - totalOwnedEditions: Int! - """ - Total number of unique users that release was purchased from - """ - totalUsersPurchasedFrom: Int! -} - -""" -Edge of Activity Feed Group Connection -""" -type ActivityFeedGroupConnectionEdge implements Edge { - """ - Cursor to be used for pagination - """ - cursor: String! - """ - Activity Feed Group node - """ - node: ActivityFeedGroup! -} - -""" -Activity feed group featured collector entity -""" -type ActivityFeedGroupFeaturedCollector { - """ - Amount paid in Wei for most recent purchase action in activity feed group by collector - """ - amountPaidInWei: String! - """ - Amount of NFTs bought in activity feed group by collector - """ - nftsCount: Int! - """ - User corresponding to activity feed group featured collector entity - """ - user: User! -} - -""" -Filter activity feed groups -""" -input ActivityFeedGroupFilterArgs { - """ - Only get activity feed groups of certain type - """ - types: [ActivityFeedGroupFilterOption!]! = [ALL] -} - -""" -Activity feed group filter option -""" -enum ActivityFeedGroupFilterOption { - ADDED_TO_PLAYLIST - ALL - COLLECTED - LIKES - RELEASE_DROPPED -} - -""" -Union of activity feed group info -""" -union ActivityFeedGroupInfo = - ReleaseDroppedAggregate - | ReleasesAddedToShelfAggregate - | ShelfCreatedAggregate - | SongCollectedByManyAggregate - | UserCollectedManySongsAggregate - | UserLikedPlaylistAggregate - | UserLikedSongsAggregate - -""" -Paginated activity feed group connection -""" -type ActivityFeedGroups implements Connection { - """ - Edges of current page - """ - edges: [ActivityFeedGroupConnectionEdge]! - """ - Pagination helpers information - """ - pageInfo: PageInfo! -} - -""" -Activity feed type -""" -enum ActivityFeedType { - GLOBAL - NOTABLE_COLLECTORS - USER -} - -""" -Ethereum address -""" -scalar Address - -""" -Affiliate Curator -""" -type AffiliateCurator { - """ - Total volume spent through referrals in wei - """ - affiliateEarned: String! - """ - Total referred mints quantity - """ - mintsQuantity: Int! - """ - Count of different sounds referred - """ - soundsReferred: Int! - """ - Total volume spent through referrals in wei - """ - totalVolume: String! - """ - User entity of affiliate curator - """ - user: User -} - -""" -Collector release added to playlist action entity -""" -type Airdrop implements CollectorAction & Node & ReleaseAction { - """ - Date of action - """ - date: DateTime! - """ - Starting token ID of NFT for bonding curve sale purchase - """ - fromTokenId: Int! - """ - Action id - """ - id: ID! - """ - Number of sequential tokens purchased - """ - quantity: Int! - """ - Release corresponding to collector airdrop action entity - """ - release: Release! - """ - Serial number of nft airdrop - """ - serialNumber: Int! - """ - Ending token ID of NFT for bonding curve sale purchase - """ - toTokenId: Int! - """ - User corresponding to collector action entity - """ - user: User! -} - -""" -Pagination parameters for allCollectors -""" -input AllCollectorsCursorConnectionArgs { - """ - Start forwards pagination since "after" cursor - """ - after: String - """ - Start backwards pagination since "before" cursor - """ - before: String - """ - Limit the amount of nodes to be fetched, to be used with "after", with a maximum of 51 nodes. - """ - first: NonNegativeInt - """ - Limit the amount of nodes to be fetched, to be used with "before", with a maximum of 51 nodes. - """ - last: NonNegativeInt - """ - Customize sort behavior - """ - sort: AllCollectorsCursorConnectionSort! = { createdAt: DESC } -} - -""" -Customize sort of collectors -""" -input AllCollectorsCursorConnectionSort { - """ - Sort by date of user first being connected in platform - """ - createdAt: SortOrder -} - -""" -Filter the allCollectors result -""" -input AllCollectorsFilter { - """ - Should it include artists as collectors - """ - includeArtists: Boolean! = true - """ - Should it only include collectors with a valid username (twitterHandle, ens or displayName) - """ - onlyWithUsername: Boolean! = false -} - -""" -Input for allCollectors query -""" -input AllCollectorsInput { - """ - Filter the collectors - """ - filter: AllCollectorsFilter! = { includeArtists: true, onlyWithUsername: false } - """ - Pagination parameters of collectors - """ - pagination: AllCollectorsCursorConnectionArgs! = { after: null, first: 10, sort: { createdAt: DESC } } -} - -""" -Pagination parameters for allShelves -""" -input AllShelvesCursorConnectionArgs { - """ - Start forwards pagination since "after" cursor - """ - after: String - """ - Start backwards pagination since "before" cursor - """ - before: String - """ - Limit the amount of nodes to be fetched, to be used with "after", with a maximum of 51 nodes. - """ - first: NonNegativeInt - """ - Limit the amount of nodes to be fetched, to be used with "before", with a maximum of 51 nodes. - """ - last: NonNegativeInt - """ - Customize sort behavior - """ - sort: AllShelvesCursorConnectionSort! = { createdAt: DESC } -} - -""" -Customize sort of shelves -""" -input AllShelvesCursorConnectionSort { - """ - Sort by date of playlist being created - """ - createdAt: SortOrder -} - -""" -Filter the shelves of allShelves query -""" -input AllShelvesFilter { - """ - Filter the shelves based on the expected types - """ - type: [ShelfTypeFilter!]! = [USER_CREATED] -} - -""" -Input for allShelves query -""" -input AllShelvesInput { - """ - Filter the shelves, by default it gives all the user created shelves - """ - filter: AllShelvesFilter! = { type: [USER_CREATED] } - """ - Pagination parameters, by default it gives the last 10 shelves created - """ - pagination: AllShelvesCursorConnectionArgs! = { after: null, first: 10, sort: { createdAt: DESC } } -} - -""" -Allowlist entity -""" -type AllowList implements Node { - """ - Allowlist creation date - """ - createdAt: DateTime! - """ - Allowlist identifier - """ - id: ID! - """ - Total number of users in allowlist - """ - totalUsers: Int! - """ - Paginate through all users of the allowlist - """ - users( - """ - Cursor connection parameters - """ - pagination: UserCursorConnectionArgs! = { after: null, first: 20, sort: ASC } - ): UserConnection! -} - -""" -Artist Entity -""" -type Artist implements Node { - """ - Banner image of artist page - """ - bannerImage: Media - """ - Collectors of artist. - """ - collectors( - """ - Pagination parameters - """ - pagination: ArtistCollectorCursorConnectionArgs! = { after: null, first: 10, sort: { nftsCount: DESC } } - ): ArtistCollectorConnection! - """ - Creation date of artist entity - """ - createdAt: DateTime! - """ - Gem Collection URL - """ - gemCollectionUrl: String - """ - Artist identifier - """ - id: ID! - """ - Name of artist - """ - name: String! - """ - Number of unique nft collectors of artist - """ - numCollectors: Int! - """ - Number of nfts minted of artist - """ - numNfts: Int! - """ - Number of artist releases - """ - numReleases( - """ - Filter the releases to be counted - """ - filter: ArtistReleasesFilter! = { - creditSplit: ALL - excludeReleaseIds: [] - mintTimeStatus: [PAST, UPCOMING] - releaseAlbumRevealStatus: ALL - releaseAuthor: ONLY_AUTHORED_RELEASES - releaseType: [SINGLE, ALBUM, ALBUM_TRACK] - } - ): Int! - """ - Paginated releases of artist. - """ - releases( - """ - Filter the artist releases - """ - filter: ArtistReleasesFilter! = { - creditSplit: ALL - excludeReleaseIds: [] - mintTimeStatus: [PAST, UPCOMING] - releaseAlbumRevealStatus: ALL - releaseAuthor: ONLY_AUTHORED_RELEASES - releaseType: [SINGLE, ALBUM, ALBUM_TRACK] - } - """ - Pagination parameters - """ - pagination: CursorConnectionArgs! = { first: 10, sort: DESC } - ): ReleaseConnection! - """ - Genres of artist releases, with the most common genres first - """ - releasesGenres: [String!]! - """ - Season associated with artist - """ - season: String - """ - Sound handle to be used on URLs - """ - soundHandle: String! - """ - Spotify URL - """ - spotifyUrl: String - """ - Token symbol of contract - """ - tokenSymbol: String - """ - User entity of artist - """ - user: User! - """ - User identifier of artist - """ - userId: String! - """ - Webapp URI of Artist - """ - webappUri: String! -} - -""" -Artist action entity -""" -interface ArtistAction implements Node { - """ - Date of action - """ - date: DateTime! - """ - Artist action id - """ - id: ID! - """ - User corresponding to action entity - """ - user: User! -} - -""" -Paginated artist action connection -""" -type ArtistActionConnection implements Connection { - """ - Edges of current page - """ - edges: [ArtistActionConnectionEdge!]! - """ - Pagination helpers information - """ - pageInfo: PageInfo! -} - -""" -Edge of artist action connection -""" -type ArtistActionConnectionEdge implements Edge { - """ - Cursor to be used for pagination - """ - cursor: String! - """ - artist action node - """ - node: ArtistAction! -} - -""" -Artist activity feed action type filter option -""" -enum ArtistActivityFeedActivityTypeFilterOption { - ALL - COLLECTIONS - LIKES - PLAYLISTS - RELEASES -} - -""" -Filter artist activity types -""" -input ArtistActivityFeedFilterArgs { - """ - Only get activity of given action type - """ - activityTypes: [ArtistActivityFeedActivityTypeFilterOption!]! = [ALL] - """ - Only get activity by the given group - """ - types: [ArtistActivityFeedTypeFilterOption!]! = [ALL] -} - -""" -Artist activity feed type filter option -""" -enum ArtistActivityFeedTypeFilterOption { - ALL - ARTIST - COLLECTOR - RELEASE -} - -""" -User appliction to be an artist -""" -type ArtistApplication implements Node { - """ - Creation date of entity - """ - createdAt: DateTime! - """ - Artist application entity identifier - """ - id: ID! - """ - Application info - """ - info: ArtistApplicationInfo - """ - Most recent previously rejected application reason for user - """ - mostRecentApplicationRejectionReason: String - """ - Application status - """ - status: ArtistApplicationStatus! - """ - User who created the application. - """ - user: User! -} - -""" -Edge of artist application connection -""" -type ArtistApplicationConnectionEdge implements Edge { - """ - Cursor to be used for pagination - """ - cursor: String! - """ - Artist application node - """ - node: ArtistApplication! -} - -""" -Artist application info -""" -type ArtistApplicationInfo { - """ - Artist name - """ - artistName: String! - """ - Cover image - """ - coverImage: MediaUploadStepInfo! - """ - Email - """ - email: String! - """ - Instagram handle - """ - instagramHandle: String - """ - Sound handle - """ - soundHandle: String! - """ - Twitter handle - """ - twitterHandle: String -} - -""" -Artist application status -""" -enum ArtistApplicationStatus { - ACCEPTED - PENDING - REJECTED -} - -""" -ArtistCollector -""" -type ArtistCollector implements Node { - """ - Artist entity - """ - artist: Artist! - """ - First artist nft collected by user - """ - firstNftCollected: Nft! - """ - Date of first nft collected - """ - firstNftCollectedDate: DateTime! - """ - Unique id of artist collector - """ - id: ID! - """ - Amount of artist nfts owned - """ - nftsCount: Int! - """ - Collector user - """ - user: User! -} - -""" -Paginated connection of Artist Collectors -""" -type ArtistCollectorConnection implements Connection { - """ - Edges of current page - """ - edges: [ArtistCollectorConnectionEdge!]! - """ - Pagination helpers information - """ - pageInfo: PageInfo! -} - -""" -Edge of Artist Collector Connection -""" -type ArtistCollectorConnectionEdge implements Edge { - """ - Cursor to be used for pagination - """ - cursor: String! - """ - ArtistCollector node - """ - node: ArtistCollector! -} - -""" -Pagination paramaters for artist collectors -""" -input ArtistCollectorCursorConnectionArgs { - """ - Start forwards pagination since "after" cursor - """ - after: String - """ - Start backwards pagination since "before" cursor - """ - before: String - """ - Limit the amount of nodes to be fetched, to be used with "after", with a maximum of 51 nodes. - """ - first: NonNegativeInt - """ - Limit the amount of nodes to be fetched, to be used with "before", with a maximum of 51 nodes. - """ - last: NonNegativeInt - """ - Customize sort behavior - """ - sort: ArtistCollectorCursorConnectionSort! = { nftsCount: DESC } -} - -""" -Customize sort of collectors -""" -input ArtistCollectorCursorConnectionSort { - """ - Sort by first nft collected date - """ - firstNftCollectedDate: SortOrder - """ - Sort by amount nfts collected, with tie-breaker of earliest collector first - """ - nftsCount: SortOrder -} - -""" -Info associated with artist draft allowlist -""" -type ArtistCollectorsAllowlist { - """ - Flag to include or not include all collectors of release artist - """ - allArtistCollectors: Boolean! - """ - Flag to include or not include all collaborating artists of the release - """ - allCollaboratingArtists: Boolean! - """ - Paginated artists of draftAllowlist - """ - artists: ArtistConnection! @deprecated(reason: "Please use ArtistCollectorsAllowlist.filteredArtists") - """ - Paginated artists of draftAllowlist taking into account user toggles - """ - filteredArtists: ArtistConnection! - """ - Total number of artist collector users in draft allowlist - """ - totalCollectors: Int! -} - -""" -Paginated connection of Artists -""" -type ArtistConnection implements Connection { - """ - Edges of current page - """ - edges: [ArtistConnectionEdge!]! - """ - Pagination helpers information - """ - pageInfo: PageInfo! -} - -""" -Edge of Artist Connection -""" -type ArtistConnectionEdge implements Edge { - """ - Cursor to be used for pagination - """ - cursor: String! - """ - Artist node - """ - node: Artist! -} - -""" -Artist contract earnings -""" -type ArtistContractEarning { - """ - Users split of eth on the contract - """ - balanceForUser: String! - """ - Address of the artist contract - """ - contractAddress: String! - """ - Edition id for the release - """ - editionId: String! - """ - Total eth on the contract - """ - totalBalance: String! -} - -""" -Filter for paginated artists -""" -input ArtistCursorFilterArgs { - """ - Specify whether artist already has at least one minted release - """ - hasMintedRelease: Boolean - """ - Specify season to be filtered - """ - season: ArtistSeason -} - -""" -Simplified version of Artist entity -""" -type ArtistInfo implements Node { - """ - Artist user avatar - """ - avatar: Media - """ - Unique identifier of Artist - """ - id: ID! - """ - Name of artist - """ - name: String - """ - Artist public address - """ - publicAddress: String -} - -""" -Artist notification subscription entity that indicates a user has subscribed to updates from a specific artist -""" -type ArtistNotificationSubscription implements Node { - """ - Subscription artist - """ - artist: Artist! - """ - Artist identifier - """ - artistId: ID! - """ - Subscription creation timestamp - """ - createdAt: DateTime! - """ - Subscription unique identifier - """ - id: ID! -} - -""" -Edge of ArtistNotificationSubscription Connection -""" -type ArtistNotificationSubscriptionConnectionEdge implements Edge { - """ - Cursor to be used for pagination - """ - cursor: String! - """ - ArtistNotificationSubscription node - """ - node: ArtistNotificationSubscription! -} - -""" -Artist Partnership call to action information -""" -type ArtistPartnership { - """ - Highlighted partnerships - """ - highlights: [ArtistPartnershipHighlight!] - """ - Unique identifier - """ - id: ID! - """ - Dynamic call-to-action message - """ - message: String! -} - -""" -Artist Partnership Highlight -""" -type ArtistPartnershipHighlight { - """ - Readable label associated with image - """ - imageLabel: String! - """ - Image URL of highlighted artist - """ - imageUrl: String! - """ - Link URL, which can be either a relative pathname of webapp or an absolute path - """ - linkUrl: String! -} - -""" -Artist releases author filter option -""" -enum ArtistReleasesAuthorFilterOption { - ALL - ONLY_APPEARS_ON - ONLY_AUTHORED_RELEASES -} - -""" -Artist releases credit split filter option -""" -enum ArtistReleasesCreditSplitFilterOption { - ALL - ONLY_CREDIT_SPLITS - ONLY_NO_CREDIT_SPLITS -} - -""" -Filter for artist releases. Default is only for artist sounds. -""" -input ArtistReleasesFilter { - """ - Filters on release credit split status - """ - creditSplit: ArtistReleasesCreditSplitFilterOption! = ALL - """ - Excludes specific releaseIds - """ - excludeReleaseIds: [UUID!]! = [] - """ - Filters on release with specified mint time status - """ - mintTimeStatus: [MintTimeStatus!]! = [PAST, UPCOMING] - """ - Filters on whether album releases have been revealed or not - """ - releaseAlbumRevealStatus: ReleaseAlbumRevealFilterOption! = ALL - """ - Filters on release author status - """ - releaseAuthor: ArtistReleasesAuthorFilterOption! = ONLY_AUTHORED_RELEASES - """ - Filters on release type - """ - releaseType: [ReleaseType!]! = [SINGLE, ALBUM, ALBUM_TRACK] -} - -""" -Types of seasons for artists -""" -enum ArtistSeason { - GENESIS - SEASON_FOUR - SEASON_ONE - SEASON_THREE - SEASON_TWO -} - -""" -Connection entity of artist source selected allowlist -""" -type ArtistSourceSelectedAllowlistConnection implements Connection { - """ - List of edges of pagination - """ - edges: [ArtistSourceSelectedAllowlistEdge!]! - """ - Pagination info helpers - """ - pageInfo: PageInfo! -} - -""" -Edge of connection for artist source selected allowlist -""" -type ArtistSourceSelectedAllowlistEdge implements Edge { - """ - Pagination cursor - """ - cursor: String! - """ - Pagination node - """ - node: ArtistSourceSubAllowlist! -} - -""" -Allowlists of artists used as source of collectors -""" -type ArtistSourceSubAllowlist implements Node & ReleaseBaseSubAllowlist { - """ - Node identifier - """ - id: ID! - """ - Artist used as source of collectors - """ - sourceArtist: Artist - """ - Total number of addresses in sub allowlist - """ - totalAddresses: Int! -} - -""" -Types of release sales -""" -enum AuctionType { - FIXED_QUANTITY - OPEN_EDITION - OPEN_EDITION_WITH_SAM - RANGE_BOUND -} - -""" -Audio Media (including all encodings) -""" -type AudioMedia { - """ - Track audio, AAC 128k if available - """ - audio128k: Media - """ - Track audio, AAC 192k if available - """ - audio192k: Media - """ - Track audio, AAC 256k if available - """ - audio256k: Media - """ - Track audio, original non-transcoded version - """ - audioOriginal: Media! -} - -""" -Bonding curve sale collector action entity -""" -type BondingCurveSale implements ArtistAction & CollectorAction & Node & ReleaseAction { - """ - Amount paid in Wei for bonding curve sale - """ - amountPaidInWei: String! - """ - Date of action - """ - date: DateTime! - """ - Starting token ID of NFT for bonding curve sale purchase - """ - fromTokenId: Int! - """ - Action id - """ - id: ID! - """ - Number of sequential tokens purchased - """ - quantity: Int! - """ - Release corresponding to collector bonding curve sale action entity - """ - release: Release! - """ - Starting serial number of nft bonding curve sale purchase - """ - serialNumber: Int! - """ - Ending token ID of NFT for bonding curve sale purchase - """ - toTokenId: Int! - """ - User corresponding to collector action entity - """ - user: User! -} - -""" -Token sold to bonding curve collector action entity -""" -type BondingCurveSold implements ArtistAction & CollectorAction & Node & ReleaseAction { - """ - Date of action - """ - date: DateTime! - """ - First token ID in the unordered batch of sold tokens - """ - firstTokenId: Int! - """ - Action id - """ - id: ID! - """ - Payment received in Wei - """ - paymentInWei: String! - """ - Number of tokens sold - """ - quantity: Int! - """ - Release corresponding to collector bonding curve sold action entity - """ - release: Release! - """ - User corresponding to collector action entity - """ - user: User! -} - -""" -Simplified version of Release entity filtered on the owner public address -""" -type CollectedRelease implements Node { - """ - First backed nft of collected release - """ - firstNftOwned: Nft - """ - Returns golden egg if user owns, otherwise null - """ - goldenEgg: EggGame - """ - Unique identifier of release - """ - id: ID! - """ - List of owned nft serial numbers in ascending serial number order - """ - ownedSerialNumbers: [Int!]! - """ - Release entity - """ - release: Release! -} - -""" -Paginated collected releases connection -""" -type CollectedReleaseConnection implements Connection { - """ - Edges of current page - """ - edges: [CollectedReleaseConnectionEdge!]! - """ - Pagination helpers information - """ - pageInfo: PageInfo! -} - -""" -Edge of Collected Release Connection -""" -type CollectedReleaseConnectionEdge implements Edge { - """ - Cursor to be used for pagination - """ - cursor: String! - """ - Collected Release node - """ - node: CollectedRelease! -} - -""" -Name of the collection market -""" -enum CollectionMarketType { - AIRDROP - BONDING_CURVE_SALE - PRIMARY_SALE - SECONDARY_SALE -} - -""" -Collector action entity -""" -interface CollectorAction implements Node { - """ - Date of action - """ - date: DateTime! - """ - Collector action id - """ - id: ID! - """ - User corresponding to collector action entity - """ - user: User! -} - -""" -Paginated collector action connection -""" -type CollectorActionConnection implements Connection { - """ - Edges of current page - """ - edges: [CollectorActionConnectionEdge!]! - """ - Pagination helpers information - """ - pageInfo: PageInfo! -} - -""" -Edge of collector action connection -""" -type CollectorActionConnectionEdge implements Edge { - """ - Cursor to be used for pagination - """ - cursor: String! - """ - Collector action node - """ - node: CollectorAction! -} - -""" -Filter collector feed activity types -""" -input CollectorActivityFeedFilterArgs { - """ - Only get activity of given type - """ - types: [CollectorActivityFeedTypeFilterOption!]! = [ALL] -} - -""" -Collector activity feed type filter option -""" -enum CollectorActivityFeedTypeFilterOption { - ALL - COLLECTIONS - LIKES - PLAYLISTS -} - -""" -Information of collector from release -""" -type CollectorUpdateInfo { - """ - If collector owns golden egg, the serial number of the golden egg - """ - goldenEggSerialNumber: Int - """ - Unique identifier of collector from release - """ - id: ID! - """ - Lowest serial number collected on release - """ - lowestNftSerialNumber: Int! - """ - Most recent comment message, if any - """ - mostRecentCommentMessage: String - """ - Amount of NFTs collected of release - """ - nftsCount: Int! - """ - If user is an artist, the artist unique identifier - """ - userArtistId: ID - """ - If user is an artist, the artist name - """ - userArtistName: String - """ - If user is an artist, the artist sound handle - """ - userArtistSoundHandle: String - """ - Avatar URL of collecotr - """ - userAvatarUrl: String - """ - Unique user identifier of collector - """ - userId: ID! - """ - Wallet public address of user - """ - userPublicAddress: String! - """ - Webapp URI of collector - """ - userWebappUri: String! - """ - Username of collector - """ - username: String! -} - -""" -Comment entity -""" -type Comment { - """ - Comment unique identifier - """ - id: ID! - """ - Comment message content - """ - message: String! - """ - Comment chain signature - """ - signature: String! - """ - Last update date of comment - """ - updatedAt: DateTime! -} - -""" -Base connection for paginated results -""" -interface Connection { - """ - Edges of current page - """ - edges: [Edge]! - """ - Pagination helpers information - """ - pageInfo: PageInfo! -} - -""" -Contract entity -""" -type Contract { - """ - Contract address - """ - contractAddress: String! - """ - Type of contract - """ - contractType: ContractType! - """ - Date of creation - """ - createdAt: DateTime! - """ - Contract entity unique identifier - """ - id: ID! - """ - Contract owner - """ - owner: User! - """ - Public address of contract owner - """ - ownerPublicAddress: String! - """ - Date of last update - """ - updatedAt: DateTime! -} - -""" -Input for release by contract -""" -input ContractReleaseInput { - """ - Contract address - """ - contractAddress: Address! - """ - Optional edition identifier - """ - editionId: String -} - -""" -Contract type, currently the playform only supports "ARTIST" -""" -enum ContractType { - ARTIST - EDITION -} - -""" -A string that cannot be passed as an empty value -""" -scalar CountryCode - -""" -Credit allocation entity -""" -type CreditAllocation { - """ - Credit split associated with credit allocation - """ - creditSplit: CreditSplit! - """ - Credit allocation entity identifier - """ - id: ID! - """ - Owner of credit allocation - """ - owner: User! - """ - Percent of allocation - """ - percent: Float! - """ - Roles associated with credit allocation - """ - roles: [String!]! -} - -""" -Credit allocation upload step info -""" -type CreditAllocationUploadStepInfo { - """ - Owner of allocation - """ - owner: User! - """ - Owner public address of allocation - """ - ownerAddress: String! - """ - Percent of allocation - """ - percent: Float! - """ - Roles associated with credit allocation - """ - roles: [CreditRoleType!]! -} - -""" -Credit role type -""" -enum CreditRoleType { - ARTIST - CURATOR - OTHER - PRODUCER - REMIXER - SONGWRITER - VISUAL_ARTIST -} - -""" -Credit split entity -""" -type CreditSplit { - """ - Credit allocation of credit split - """ - creditAllocations: [CreditAllocation!]! - """ - Credit split identifier - """ - id: ID! - """ - Releases associated with credit split that are minted - """ - mintedReleases: [Release!]! - """ - Releases associated with credit split - """ - releases: [Release!]! - """ - Split contract address - """ - splitAddress: String -} - -""" -Currencies conversions -""" -type Currencies { - ethToUsd: Float! -} - -""" -Base cursor connection arguments -""" -input CursorConnectionArgs { - """ - Start forwards pagination since "after" cursor - """ - after: String - """ - Start backwards pagination since "before" cursor - """ - before: String - """ - Limit the amount of nodes to be fetched, to be used with "after", with a maximum of 51 nodes. - """ - first: NonNegativeInt - """ - Limit the amount of nodes to be fetched, to be used with "before", with a maximum of 51 nodes. - """ - last: NonNegativeInt - """ - Sort the connection ascending or descending - """ - sort: SortOrder! = DESC -} - -""" -A date-time string at UTC, such as 2007-12-03T10:15:30Z, compliant with the `date-time` format outlined in section 5.6 of the RFC 3339 profile of the ISO 8601 standard for representation of dates and times using the Gregorian calendar. -""" -scalar DateTime - -""" -Draft entity -""" -type Draft implements Node { - """ - Artist of draft - """ - artist: Artist! - """ - Salt for contract address - """ - contractAddressSalt: String! - """ - Draft creation date - """ - createdAt: DateTime! - """ - Post deployment edits - """ - edit: DraftEdit - """ - Draft identifier - """ - id: ID! - """ - Draft info - """ - info: DraftInfo - """ - Release associated with draft - """ - release: Release - """ - Draft slug to be used for release entity - """ - slug: String! - """ - Type of Release - """ - type: ReleaseType! - """ - Draft updated date - """ - updatedAt: DateTime! -} - -""" -DraftAllowlist entity -""" -type DraftAllowList implements Node { - """ - DraftAllowlist creation date - """ - createdAt: DateTime! - """ - DraftAllowlist identifier - """ - id: ID! - """ - DraftAllowlist info - """ - info( - """ - Allowlist type - """ - allowListType: DraftAllowlistType! - """ - Pagination parameters - """ - pagination: CursorConnectionArgs! = { first: 10, sort: DESC } - ): DraftAllowlistInfo! - """ - Description for manually added allowlist - """ - manuallyAddedAllowlistDescription: String - @deprecated(reason: "Use ManuallyAddedCollectorsAllowlist.description instead") - """ - Total number of users in draft allowlist - """ - totalUsers: Int! -} - -""" -Draft allowlist info -""" -type DraftAllowListInfo { - """ - Collectors of artists allowlist configuration - """ - collectorsOfArtists: DraftCollectorsOfArtistsInfo - """ - Collectors of releases allowlist configuration - """ - collectorsOfReleases: DraftCollectorsOfReleasesInfo - """ - Info for manually added draft allow list - """ - manuallyAddedAllowlist: DraftManuallyAddedAllowlistInfo -} - -""" -Draft allow lists info -""" -type DraftAllowListsInfo { - """ - Free mint allowlist configurations - """ - freeMint: DraftAllowListInfo @deprecated(reason: "Free mint category removed") - """ - Presale mint allowlist configurations - """ - presaleMint: DraftAllowListInfo -} - -""" -Input for draftAllowListFromRelease query -""" -input DraftAllowlistFromReleaseInput { - """ - Merkle tree root - """ - merkleRoot: String! - """ - Release identifier - """ - releaseId: UUID! -} - -""" -Union of draft allowlist infos -""" -union DraftAllowlistInfo = ArtistCollectorsAllowlist | ManuallyAddedCollectorsAllowlist | ReleaseCollectorsAllowlist - -""" -Different draft allow list types -""" -enum DraftAllowlistType { - ARTIST_COLLECTORS - MANUALLY_ADDED_COLLECTORS - RELEASE_COLLECTORS -} - -""" -Draft auction configuration step info -""" -type DraftAuctionConfigurationInfo { - """ - End time of auction - """ - endTime: Int - """ - Max mints per wallet for auction - """ - maxMintsPerWallet: Int! - """ - Price per mint - """ - price: Float! - """ - Max supply for auction - """ - quantity: Int! - """ - Start time of auction - """ - startTime: Int! -} - -""" -Release info upload step info -""" -type DraftAuctionConfigurationsInfo { - """ - Type of auction - """ - auctionType: AuctionType! - """ - Toggle to enable SAM for auction - """ - enabledSAM: Boolean - """ - Free mint auction configurations - """ - freeMint: DraftAuctionConfigurationInfo @deprecated(reason: "Free mint category removed") - """ - Max mint supply of auction - """ - maxMintable: Int! - """ - Min mint supply of auction - """ - minQuantity: Int! - """ - Presale mint auction configurations - """ - presaleMint: DraftAuctionConfigurationInfo - """ - Public mint auction configurations - """ - publicMint: DraftPublicSaleAuctionConfigurationInfo! - """ - Breakdown of mint quantities - """ - quantityBreakdown: [Int!] -} - -""" -Draft collectors of artists info -""" -type DraftCollectorsOfArtistsInfo { - """ - Toggle to include or not include all artist releases - """ - allArtistCollectors: Boolean! - """ - Toggle to include or not include all the collectors of all artists that given artist collaborated with - """ - allCollaboratingArtists: Boolean! - """ - Selected artist entities for allowlist artist collectors - """ - selectedArtists: [ArtistInfo!]! -} - -""" -Draft collectors of releases info -""" -type DraftCollectorsOfReleasesInfo { - """ - Toggle to include or not include all artist collaborations - """ - allArtistCollaborations: Boolean! - """ - Toggle to include or not include all artist releases - """ - allArtistReleases: Boolean! - """ - Selected release entities for allowlist release collectors - """ - selectedReleases: [ReleaseInfo!]! -} - -""" -Edge of Draft Connection -""" -type DraftConnectionEdge implements Edge { - """ - Cursor to be used for pagination - """ - cursor: String! - """ - Draft node - """ - node: Draft! -} - -""" -Draft post deployment edits -""" -type DraftEdit implements Node { - """ - Draft creation date - """ - createdAt: DateTime! - """ - Node identifier - """ - id: ID! - """ - Draft Edit info - """ - info: DraftEditInfo - """ - Draft updated date - """ - updatedAt: DateTime! -} - -""" -Draft edit allowlist info -""" -type DraftEditAllowListInfo { - """ - Collectors of artists allowlist configuration - """ - collectorsOfArtists: DraftEditCollectorsOfArtistsInfo - """ - Collectors of releases allowlist configuration - """ - collectorsOfReleases: DraftEditCollectorsOfReleasesInfo - """ - Info for manually added draft allow list - """ - manuallyAddedAllowlist: DraftEditManuallyAddedAllowlistInfo - """ - Merkle root of edited allowlist - """ - merkleRoot: String - """ - Unhashed leaves of allowlist merkle tree - """ - unhashedLeaves: [String!] -} - -""" -Draft Edit allow lists info -""" -type DraftEditAllowListsInfo { - """ - Presale mint allowlist configurations - """ - presaleMint: DraftEditAllowListInfo -} - -""" -Draft Edit for allowlist in collectors of artists section -""" -type DraftEditCollectorsOfArtistsInfo { - """ - Toggle to include or not include all artist releases - """ - allArtistCollectors: Boolean! - """ - Toggle to include or not include all the collectors of all artists that given artist collaborated with - """ - allCollaboratingArtists: Boolean! - """ - Selected artist entities for allowlist artist collectors - """ - selectedArtists: [ArtistInfo!]! -} - -""" -Draft edit for allowlist in collectors of releases section -""" -type DraftEditCollectorsOfReleasesInfo { - """ - Toggle to include or not include all artist collaborations - """ - allArtistCollaborations: Boolean! - """ - Toggle to include or not include all artist releases - """ - allArtistReleases: Boolean! - """ - Selected release entities for allowlist release collectors - """ - selectedReleases: [ReleaseInfo!]! -} - -""" -Draft Edit info -""" -type DraftEditInfo { - """ - Draft possibly edited allowlist info - """ - allowlistInfo: DraftEditAllowListsInfo - """ - Draft arweave hash associated with changes if needed - """ - arweaveHash: String - """ - Draft possibly edited release info - """ - releaseInfo: DraftEditReleaseInfo - """ - Draft possibly edited rewards info - """ - rewardsInfo: RewardsEditStepInfo - """ - Draft possibly edited splits info - """ - splitsInfo: SplitsUploadStepInfo - """ - Draft storefront arweave hash associated with changes if needed - """ - storefrontArweaveHash: String -} - -""" -Draft Edit of allowlist in manually added allowlist section -""" -type DraftEditManuallyAddedAllowlistInfo { - """ - Description for draft manually added allowlist - """ - description: String - """ - List of manually allowlisted addresses - """ - list: [String!]! -} - -""" -Draft edit release info -""" -type DraftEditReleaseInfo { - """ - Release beats per minute - """ - beatsPerMinute: Int - """ - Behind the music text - """ - behindTheMusic: String - """ - Cover image - """ - coverImage: MediaUploadStepInfo - """ - Genre - """ - genre: String - """ - Release key - """ - key: SongKeyType - """ - License for the release - """ - license: LicenseType - """ - Location where the release was created - """ - location: CountryCode - """ - Release lyrics - """ - lyrics: String - """ - Static version of animated cover image of release if the cover is a GIF - """ - staticCoverImage: MediaUploadStepInfo - """ - Title - """ - title: String - """ - Token symbol - """ - tokenSymbol: String - """ - Uploaded tracks - """ - tracks: [TrackUploadStepInfo!] - """ - Release type - """ - type: String -} - -""" -Draft info -""" -type DraftInfo { - """ - Draft allowlist info - """ - allowListInfo: DraftAllowListsInfo - """ - Draft auction configurations info - """ - auctionConfigurations: DraftAuctionConfigurationsInfo - """ - Number of draft upload steps already complete - """ - numUploadStepsComplete: Int! - """ - Draft release info - """ - releaseInfo: DraftReleaseInfo - """ - Draft rewards info - """ - rewardsInfo: RewardsUploadStepInfo - """ - Draft splits info - """ - splitsInfo: SplitsUploadStepInfo -} - -""" -Draft manually added allowlist info -""" -type DraftManuallyAddedAllowlistInfo { - """ - Description for draft manually added allowlist - """ - description: String -} - -""" -Draft public sale auction configuration step info -""" -type DraftPublicSaleAuctionConfigurationInfo { - """ - End time of auction - """ - endTime: Int - """ - Number of days auction should run for - """ - endTimeDays: Int - """ - Max mints per wallet for auction - """ - maxMintsPerWallet: Int! - """ - Price per mint - """ - price: Float! - """ - Max supply for auction - """ - quantity: Int! - """ - Start time of auction - """ - startTime: Int! -} - -""" -Draft release info -""" -type DraftReleaseInfo { - """ - Release beats per minute - """ - beatsPerMinute: Int - """ - Behind the music text - """ - behindTheMusic: String! - """ - Cover image - """ - coverImage: MediaUploadStepInfo! - """ - Genre - """ - genre: String! - """ - Release key - """ - key: SongKeyType - """ - License for the release - """ - license: LicenseType - """ - Location where the release was created - """ - location: CountryCode - """ - Release lyrics - """ - lyrics: String - """ - Static version of animated cover image of release if the cover is a GIF - """ - staticCoverImage: MediaUploadStepInfo - """ - Title - """ - title: String! - """ - Token symbol - """ - tokenSymbol: String! - """ - Uploaded tracks - """ - tracks: [TrackUploadStepInfo!]! - """ - Release type - """ - type: String! -} - -""" -Ethereum name service value with `.eth` suffix -""" -scalar ENS - -""" -Container of Node and the Cursor from the Node -""" -interface Edge { - """ - Cursor to be used for pagination - """ - cursor: String! - """ - Node entity - """ - node: Node! -} - -""" -Edition contract earnings -""" -type EditionContractEarning { - """ - Users split of eth on the contract - """ - balanceForUser: String! - """ - Address of the edition contract - """ - contractAddress: String! - """ - Total eth on the contract - """ - totalBalance: String! -} - -""" -Filter the edition owned tokenIds result -""" -input EditionOwnedTokenIdsFilter { - """ - Should it include golden egg - """ - includeGoldenEgg: Boolean! = true -} - -""" -Input for editionOwnedTokenIds query -""" -input EditionOwnedTokenIdsInput { - """ - Edition contract address - """ - editionContractAddress: Address! - """ - Filter the tokenIds - """ - filter: EditionOwnedTokenIdsFilter! = { includeGoldenEgg: true } - """ - Limit the amount of token ids to be returned. By default there is no limit - """ - limit: PositiveInt - """ - Public address of owner - """ - ownerPublicAddress: Address! - """ - Customize sort behavior - """ - sort: NftCursorConnectionSort! = { serialNumber: ASC } -} - -""" -EggGame Entity -""" -type EggGame { - """ - Animated golden egg image optimized for client rendering - """ - animatedGoldenEggImageOptimized: Media - """ - Block hash of egg game calculation - """ - finalSerialBlockHash: String! - """ - Special golden egg image - """ - goldenEggImage: Media - """ - EggGame identifier - """ - id: ID! - """ - Nft of egg game winner - """ - nft: Nft! - """ - Serial number of nft with egg game - """ - winningSerialNum: Int! -} - -""" -Base Error -""" -interface Error { - """ - Descriptive message of error - """ - message: String! -} - -""" -Event type -""" -enum EventType { - AIRDROP - EDITION_PURCHASED - ORDERS_MATCHED - OTHER_MINTED - TRANSFER - UNKNOWN -} - -""" -Event entity -""" -type EventV2 implements Node { - """ - Timestamp on blockchain of event - """ - blockTimestamp: DateTime! - """ - Contract address - """ - contractAddress: String! - """ - Date of creation of event entity - """ - createdAt: DateTime! - """ - Edition identifier - """ - editionId: String - """ - Event type - """ - eventType: EventType! - """ - Source public address - """ - fromAddress: String - """ - User associated to source public address - """ - fromAddressUser: User - """ - Event identifier - """ - id: ID! - """ - Release associated with event - """ - release: Release - """ - Target public address - """ - toAddress: String - """ - User associated to target public address - """ - toAddressUser: User - """ - Token ID of associated NFT - """ - tokenId: String! - """ - Value exchanged in Wei - """ - valueExchanged: String! - """ - Formatted version of value exchanged - """ - valueExchangedPretty: ValueExchangedPrettyType! -} - -""" -Feature flag entity to describe flagged functionality -""" -type FeatureFlag { - """ - Creation date of feature flag - """ - createdAt: DateTime! - """ - Feature flag UUID - """ - id: ID! - """ - Name of feature flag - """ - name: String! - """ - Last update of feature flag value - """ - updatedAt: DateTime! - """ - Arbitrary string value, it could be need to be parsed stringified json - """ - value: String! -} - -""" -Genre entity -""" -type Genre { - """ - Date of creation - """ - createdAt: DateTime! - """ - Genre associated UUID - """ - id: ID! - """ - Genre name - """ - name: String! - """ - Date of last update of genre - """ - updatedAt: DateTime! -} - -""" -Geographic location associated with Google Maps API -""" -type GeoLocationPlaceGoogle { - """ - Label associated with location - """ - label: String! - """ - Google Maps API Place identifier - """ - placeId: String! -} - -""" -Customize iframe html parameters -""" -input IframeHtmlParameters { - """ - Customize height - """ - height: String! - """ - Customize style - """ - style: String! - """ - Customize width - """ - width: String! -} - -""" -A field whose value is a JSON Web Token (JWT): https://jwt.io/introduction. -""" -scalar JWT - -""" -Client key management entity -""" -type KeyClient implements Node { - """ - Date of creation - """ - createdAt: DateTime! - """ - Unique identifier of client key - """ - id: ID! - """ - Key associated to client for authentication process - """ - key: String! - """ - Human-readable identifier of key client - """ - name: String! - """ - Status of Key Client - """ - status: KeyClientStatus! - """ - Date of last update - """ - updatedAt: DateTime! -} - -""" -Edge of Key Client Connection -""" -type KeyClientConnectionEdge implements Edge { - """ - Cursor to be used for pagination - """ - cursor: String! - """ - Key Client node - """ - node: KeyClient! -} - -""" -Status of Key Client -""" -enum KeyClientStatus { - ACTIVE - INACTIVE -} - -""" -Paginated latest sales events -""" -type LatestSalesConnection implements Connection { - """ - Edges of current page - """ - edges: [LatestSalesConnectionEdge!]! - """ - Pagination helpers information - """ - pageInfo: PageInfo! -} - -""" -Edge of LatestSales Connection -""" -type LatestSalesConnectionEdge implements Edge { - """ - Cursor to be used for pagination - """ - cursor: String! - """ - Event node - """ - node: EventV2! -} - -""" -Pagination parameters for Latest Sales connection -""" -input LatestSalesCursorConnectionArgs { - """ - Start forwards pagination since "after" cursor - """ - after: String - """ - Start backwards pagination since "before" cursor - """ - before: String - """ - Limit the amount of nodes to be fetched, to be used with "after", with a maximum of 51 nodes. - """ - first: NonNegativeInt - """ - Limit the amount of nodes to be fetched, to be used with "before", with a maximum of 51 nodes. - """ - last: NonNegativeInt - """ - Customize sorting latest sales - """ - sort: LatestSalesCursorConnectionSort! = { blockTimestamp: DESC } -} - -""" -Customize sorting latest sales -""" -input LatestSalesCursorConnectionSort { - """ - Sort by blockchain timestamp - """ - blockTimestamp: SortOrder - """ - Sort by date of creation of event entity - """ - createdAt: SortOrder -} - -""" -Filter for paginated latest sales -""" -input LatestSalesCursorFilterArgs { - """ - Specify event types to be filtered - """ - eventTypes: [EventType!] -} - -""" -License for the release -""" -enum LicenseType { - ALL_RIGHTS_RESERVED - CREATIVE_COMMONS -} - -""" -Like action entity -""" -interface LikeAction implements Node { - """ - Date of action - """ - date: DateTime! - """ - Like action id - """ - id: ID! - """ - User corresponding to like action entity - """ - user: User! -} - -""" -Paginated like action connection -""" -type LikeActionConnection implements Connection { - """ - Edges of current page - """ - edges: [LikeActionConnectionEdge!]! - """ - Pagination helpers information - """ - pageInfo: PageInfo! -} - -""" -Edge of like action connection -""" -type LikeActionConnectionEdge implements Edge { - """ - Cursor to be used for pagination - """ - cursor: String! - """ - Like action node - """ - node: LikeAction! -} - -""" -Input used for link query -""" -input LinkInput { - """ - Link slug - """ - slug: NonEmptyString! -} - -""" -Info associated with manually added draft allowlist -""" -type ManuallyAddedCollectorsAllowlist { - """ - Description for manually added allowlist - """ - description: String - """ - Total number of manually added users in draft allowlist - """ - totalCollectors: Int! - """ - Paginated manually added users of draftAllowlist - """ - users: UserConnection! -} - -""" -Media entity -""" -type Media { - """ - AWS S3 Bucket - """ - bucket: String! - """ - Dominant color. Only applies for images - """ - dominantColor: String - """ - Media entity identifier - """ - id: ID! - """ - AWS S3 File key - """ - key: String! - """ - CDN Url - """ - url: String! -} - -""" -Type of media entity, either Images or Audio -""" -enum MediaType { - ARTIST_BANNER_IMAGE - ARTIST_COLLECTORS_CSV - ARTIST_FREE_SALE_ALLOWLIST - ARTIST_PRESALE_ALLOWLIST - AUDIO - AUDIO_128K - AUDIO_192K - AUDIO_256K - AVATAR_IMAGE - DRAFT_ALLOWLISTED_ADDRESSES_CSV - RELEASE_BANNER_IMAGE - RELEASE_COVER_IMAGE - RELEASE_GOLDEN_EGG_IMAGE - RELEASE_HOLDERS_CSV - RELEASE_WEB_ANIMATED_GOLDEN_EGG_IMAGE - RELEASE_WEB_ANIMATED_IMAGE - RELEASE_WEB_STATIC_AUTOGEN_IMAGE - RELEASE_WEB_STATIC_IMAGE - TMP_ARTIST_BANNER_AUTOGEN_IMAGE - TMP_AVATAR_AUTOGEN_IMAGE - TMP_USER_BANNER_AUTOGEN_IMAGE - USER_BANNER_IMAGE -} - -""" -Release info upload step info -""" -type MediaUploadStepInfo { - """ - Media type to be uploaded - """ - mediaType: MediaType! - """ - Upload key received from Query.signedUploadParams - """ - uploadKey: String! -} - -""" -Merkle tree entity -""" -type MerkleTree { - """ - Upload step creation date - """ - createdAt: DateTime! - """ - Upload step identifier - """ - id: ID! - """ - Number of leaves for merkle tree - """ - leafCount: Int! - """ - Merkle tree root - """ - root: String! - """ - List of unhashed leaves for merkle tree - """ - unhashedLeaves: [String!]! -} - -""" -Merkle tree proof information -""" -type MerkleTreeProof { - """ - Merkle proof - """ - proof: [String!]! - """ - Unhashed leaf in merkle tree - """ - unhashedLeaf: String! -} - -""" -Metadata Attribute -""" -type MetadataAttribute { - """ - Trait type - """ - traitType: String - """ - Value - """ - value: String! -} - -""" -Metadata details of song -""" -type MetadataDetails { - """ - Beats per minute - """ - bpm: Float - """ - Song key - """ - key: String - """ - License of song - """ - license: String - """ - Location associated with song - """ - location: String - """ - Lyrics of song - """ - lyrics: String -} - -""" -Mint current time status -""" -enum MintTimeStatus { - PAST - UPCOMING -} - -""" -Filter minted releases -""" -input MintedReleasesCursorFilterArgs { - """ - Specify up to 50 contracts to filter the releases - """ - contracts: [ContractReleaseInput!] - """ - Only get releases from specified genres - """ - genre: [String!] - """ - Remove currently-featured releases from results - """ - hideFeatured: Boolean - """ - Only get releases less or equal to than specified mint time - """ - mintTimeMaxDate: Timestamp - """ - Only get releases greater than or equal to specified mint time - """ - mintTimeMinDate: Timestamp - """ - Only get release with specified mint time status - """ - mintTimeStatus: [MintTimeStatus!] - """ - Filters on whether album releases have been revealed or not - """ - releaseAlbumRevealStatus: ReleaseAlbumRevealFilterOption - """ - Only get release with specified status - """ - releaseStatus: [ReleaseStatus!] - """ - Filters on release type - """ - releaseType: [ReleaseType!]! = [SINGLE, ALBUM, ALBUM_TRACK] - """ - Only get releases from specified seasons - """ - season: [ArtistSeason!] -} - -""" -Mutations -""" -type Mutation { - """ - [PUBLIC] Generate auth challenge for given public address and give back new nonce - """ - generateAuthChallenge(publicAddress: String!): Int! - """ - [PUBLIC] Report a track play session stop - """ - reportPlayStopped( - """ - Input for reportPlayStopped - """ - input: ReportPlayStoppedInput! - ): Void - """ - [PUBLIC] Verify given auth challenge - """ - verifyAuthChallenge( - """ - User public address - """ - publicAddress: String! - """ - Signed message by wallet - """ - signedMessage: String! - ): String! - """ - [PUBLIC] Verify JWT from Dynamic - """ - verifyDynamicJWT( - """ - JWT to verify - """ - jwt: JWT! - ): String! - """ - [PUBLIC] Verifies user notifications token - """ - verifyNotificationEmail( - """ - A valid notification verification token - """ - token: String! - ): MutationVerifyNotificationEmailResult! -} - -""" -Auto-generated result union type for the mutation or query with the same name -""" -union MutationVerifyNotificationEmailResult = - MutationVerifyNotificationEmailSuccess - | NotificationEmailAlreadyClaimedError - | NotificationEmailTokenExpiredOrInvalidError - | NotificationEmailTokenInvalidForUserError - -""" -Auto-generated success type for the mutation or query with the same name -""" -type MutationVerifyNotificationEmailSuccess { - data: Boolean! -} - -""" -NFT Entity -""" -type Nft implements Node { - """ - Release collector entity associated with NFT ownership - """ - collectorRelease: ReleaseCollector - """ - Comment set for NFT - """ - comment: Comment - """ - Contract address - """ - contractAddress: String! - """ - Date of creation of NFT entity - """ - createdAt: DateTime! - """ - Block number of the nft mint - """ - createdAtBlockNum: Int! @deprecated(reason: "Use createdAtBlockTime instead") - """ - Blockchain created date of NFT - """ - createdAtBlockTime: DateTime - """ - Nft UUID - """ - id: ID! - """ - Was the NFT burned. Shortcut for owner.publicAddress === 0x000.... - """ - isBurned: Boolean! - """ - Is the NFT a golden egg - """ - isGoldenEgg: Boolean! - """ - OpenSea metadata attributes. - """ - openSeaMetadataAttributes: [OpenSeaMetadataAttribute!]! - """ - Owner of NFT - """ - owner: User! - """ - Release associated with NFT - """ - release: Release! - """ - Acumulative serial number - """ - serialNumber: Int! - """ - Song slot reserved by NFT - """ - songSlot: Int - """ - Unique chain token identifier - """ - tokenId: ID! - """ - Last update date of NFT - """ - updatedAt: DateTime! - """ - Block number of the last transfer state - """ - updatedAtBlockNum: Int! @deprecated(reason: "Use updatedAt instead") -} - -""" -Paginated NFTs connection -""" -type NftConnection implements Connection { - """ - Edges of current page - """ - edges: [NftConnectionEdge!]! - """ - Pagination helpers information - """ - pageInfo: PageInfo! -} - -""" -NFT Node edge -""" -type NftConnectionEdge implements Edge { - """ - Cursor to be used for pagination - """ - cursor: String! - """ - NFT Entity - """ - node: Nft! -} - -""" -Cursor connection parameters for NFTs -""" -input NftCursorConnectionArgs { - """ - Start forwards pagination since "after" cursor - """ - after: String - """ - Start backwards pagination since "before" cursor - """ - before: String - """ - Limit the amount of nodes to be fetched, to be used with "after", with a maximum of 51 nodes. - """ - first: NonNegativeInt - """ - Limit the amount of nodes to be fetched, to be used with "before", with a maximum of 51 nodes. - """ - last: NonNegativeInt - """ - Customize sort behavior - """ - sort: NftCursorConnectionSort! = { secondarySaleDate: DESC } -} - -""" -Customize the sort behavior of Nfts pagination -""" -input NftCursorConnectionSort { - """ - Sort by date of primary sale - """ - primarySaleDate: SortOrder - """ - Sort by date of last secondary sale with default value of primary sale date - """ - secondarySaleDate: SortOrder - """ - Sort by serial number - """ - serialNumber: SortOrder -} - -""" -Input for "nft" Query -""" -input NftInput { - """ - Contract address of edition - """ - contractAddress: Address! - """ - Token unique identifier within edition - """ - tokenId: String! -} - -""" -Simplified version of Nft entity filtered to be with non-nullable comment -""" -type NftWithComment { - """ - Amount paid in Wei backcompat... - """ - amountPaidInWei: String! - """ - Avatar URL of Nft owner - """ - avatarUrl: String - """ - Comment of NFT - """ - comment: Comment! - """ - Contract address - """ - contractAddress: String! - """ - Unique identifier of Nft - """ - id: ID! - """ - If the Nft owner is an artist, returns the name of the artist - """ - ownerArtistName: String - """ - Public wallet address of owner - """ - ownerPublicAddress: String! - """ - Total number of release nfts owned by user - """ - ownerReleaseNftCount: Int! - """ - Nft owner username - """ - ownerUsername: String! - """ - Webapp URI of Nft owner - """ - ownerWebappUri: String! - """ - Acumulative serial number - """ - serialNumber: Int! - """ - Song slot reserved by NFT - """ - songSlot: Int! - """ - Unique chain token identifier - """ - tokenId: String! - """ - Last update date of NFT - """ - updatedAt: Timestamp! -} - -""" -Base node -""" -interface Node { - """ - Node identifier - """ - id: ID! -} - -""" -A string that cannot be passed as an empty value -""" -scalar NonEmptyString - -""" -Integers that will have a value of 0 or more. -""" -scalar NonNegativeInt - -""" -Info for not supported versions -""" -type NotSupportedVersion implements VersionStatusResponseInterface { - """ - Not supported version message - """ - message: String! - """ - Recommended version - """ - recommendedVersion: String! -} - -""" -Returned when the user attempts to claim an email for notifications that is already claimed by another user -""" -type NotificationEmailAlreadyClaimedError implements Error { - """ - Descriptive message of error - """ - message: String! -} - -""" -Returned when the user attempts to claim a token that has already been claimed or is expired -""" -type NotificationEmailTokenExpiredOrInvalidError implements Error { - """ - Descriptive message of error - """ - message: String! -} - -""" -Returned when the user attempts to claim a token that is not valid for the user -""" -type NotificationEmailTokenInvalidForUserError implements Error { - """ - Descriptive message of error - """ - message: String! -} - -""" -OpenSea Metadata Attribute -""" -type OpenSeaMetadataAttribute { - """ - Trait type - """ - traitType: String - """ - Value - """ - value: String! -} - -""" -Pagination helper information -""" -type PageInfo { - """ - Cursor shorthand of the last node from current page - """ - endCursor: String - """ - Does the current connection have a next page - """ - hasNextPage: Boolean! - """ - Does the current connection have a previous page - """ - hasPreviousPage: Boolean! - """ - Cursor shorthand of the first node from current page - """ - startCursor: String -} - -""" -Platform type -""" -enum PlatformType { - ANDROID - IOS - WEB -} - -""" -Playlist entity that contains tracks -""" -interface Playlist { - """ - Ephemeral Unique UUID. Since right now the playlists are not being persisted, it's a completely randomly created UUID created on memory - """ - id: ID! - """ - Track list - """ - tracks: [PlaylistTrack!]! -} - -""" -Playlist action entity -""" -interface PlaylistAction implements Node { - """ - Date of action - """ - date: DateTime! - """ - Playlist action id - """ - id: ID! - """ - Shelf entity - """ - playlist: Shelf - """ - User corresponding to action entity - """ - user: User! -} - -""" -Paginated playlist action connection -""" -type PlaylistActionConnection implements Connection { - """ - Edges of current page - """ - edges: [PlaylistActionConnectionEdge!]! - """ - Pagination helpers information - """ - pageInfo: PageInfo! -} - -""" -Edge of playlist action connection -""" -type PlaylistActionConnectionEdge implements Edge { - """ - Cursor to be used for pagination - """ - cursor: String! - """ - Playlist action node - """ - node: PlaylistAction! -} - -""" -Filter PlaylistAction details -""" -input PlaylistActionFilterArgs { - """ - If set, only show artist owned releases in paginated release results. Does not apply if the playlist is owned by the artist - """ - releaseArtistId: UUID -} - -""" -Cursor connection parameters -""" -input PlaylistActionReleasesCursorConnectionArgs { - """ - Start forwards pagination since "after" cursor - """ - after: String - """ - Start backwards pagination since "before" cursor - """ - before: String - """ - Limit the number of nodes to be fetched, to be used with "after", with a maximum of 25 nodes - """ - first: NonNegativeInt - """ - Limit the number of nodes to be fetched, to be used with "before", with a maximum of 25 nodes - """ - last: NonNegativeInt - """ - Sort the releases ascending or descending by release creation date - """ - sort: SortOrder! = ASC -} - -""" -Playlist of tracks of an artist -""" -type PlaylistArtist implements Playlist { - artistId: ID! - """ - Ephemeral Unique UUID. Since right now the playlists are not being persisted, it's a completely randomly created UUID created on memory - """ - id: ID! - """ - Track list - """ - tracks: [PlaylistTrack!]! -} - -""" -Playlist created -""" -type PlaylistCreated implements ArtistAction & CollectorAction & Node & PlaylistAction & ReleaseAction { - """ - Date of action - """ - date: DateTime! - """ - Artist action id - """ - id: ID! - """ - Shelf entity - """ - playlist: Shelf - """ - User corresponding to action entity - """ - user: User! -} - -""" -Playlist of tracks of a holder' NFTs -""" -type PlaylistHolder implements Playlist { - """ - Holder public address - """ - holderPublicAddress: String! - """ - Ephemeral Unique UUID. Since right now the playlists are not being persisted, it's a completely randomly created UUID created on memory - """ - id: ID! - """ - Track list - """ - tracks: [PlaylistTrack!]! -} - -""" -Playlist used for Homepage and fallback for extra pages -""" -type PlaylistHome implements Playlist { - createdAt: DateTime! - """ - Ephemeral Unique UUID. Since right now the playlists are not being persisted, it's a completely randomly created UUID created on memory - """ - id: ID! - """ - Track list - """ - tracks: [PlaylistTrack!]! -} - -""" -Playlist input -""" -input PlaylistInput { - """ - Association ID based on type of playlist - """ - associationId: String - """ - Type of playlist - """ - type: PlaylistType! -} - -""" -Playlist liked action entity -""" -type PlaylistLiked implements ArtistAction & CollectorAction & Node & PlaylistAction { - """ - Date of action - """ - date: DateTime! - """ - Action id - """ - id: ID! - """ - Shelf entity - """ - playlist: Shelf - """ - User corresponding to playlist liked action entity - """ - user: User! -} - -""" -Simplified track entity to only contain identifiers to associated entities -""" -type PlaylistTrack { - """ - Artist ID - """ - artistId: ID! - """ - Track ID - """ - id: ID! - """ - Release ID - """ - releaseId: ID! -} - -""" -Currently supported playlists -""" -enum PlaylistType { - ARTIST - HOLDER - HOME -} - -""" -Integers that will have a value greater than 0. -""" -scalar PositiveInt - -""" -Primary sale collector action entity -""" -type PrimarySale implements ArtistAction & CollectorAction & Node & ReleaseAction { - """ - Amount paid in Wei for primary sale - """ - amountPaidInWei: String! - """ - Date of action - """ - date: DateTime! - """ - Starting token ID of NFT for bonding curve sale purchase - """ - fromTokenId: Int! - """ - Action id - """ - id: ID! - """ - Number of sequential tokens purchased - """ - quantity: Int! - """ - Release corresponding to collector primary sale action entity - """ - release: Release! - """ - Serial number of nft primary sale purchase - """ - serialNumber: Int! - """ - Ending token ID of NFT for bonding curve sale purchase - """ - toTokenId: Int! - """ - User corresponding to collector action entity - """ - user: User! -} - -""" -Queries -""" -type Query { - """ - [PUBLIC] Activity Feed with filter parameters - """ - activityFeed( - """ - Only get activity feed of certain type - """ - filter: ActivityFeedFilterArgs! = { activityFeedType: GLOBAL } - ): ActivityFeed - """ - [PUBLIC] Paginate through all collectors of the system - """ - allCollectors( - """ - Parameters of all collectors pagination - """ - input: AllCollectorsInput! = { - filter: { includeArtists: true, onlyWithUsername: false } - pagination: { after: null, first: 10, sort: { createdAt: DESC } } - } - ): UserConnection! - """ - Paginate through all shelves of the system - """ - allShelves( - """ - Parameters of shelves pagination - """ - input: AllShelvesInput! = { - filter: { type: [USER_CREATED] } - pagination: { after: null, first: 10, sort: { createdAt: DESC } } - } - ): ShelfConnection! - """ - [PUBLIC] Artist by UUID - """ - artist( - """ - Artist identifier - """ - id: UUID! - ): Artist - """ - [PUBLIC] Artist activity feed - """ - artistActivityFeed( - """ - Artist id - """ - artistId: UUID! - """ - Only get activities of given types - """ - filter: ArtistActivityFeedFilterArgs! = { activityTypes: [ALL], types: [ALL] } - """ - Pagination parameters - """ - pagination: CursorConnectionArgs! = { first: 10, sort: DESC } - ): ArtistActionConnection! - """ - [PUBLIC] Artist by handle - """ - artistByHandle( - """ - Artist handle - """ - soundHandle: String! - ): Artist - """ - [PUBLIC] Artist Partnership information - """ - artistPartnership: ArtistPartnership! - """ - [PUBLIC] Get all artists of platform. - """ - artists( - """ - Paginated artists filters - """ - filter: ArtistCursorFilterArgs - """ - Pagination parameters - """ - pagination: CursorConnectionArgs! = { first: 10, sort: DESC } - ): ArtistConnection! - """ - [PUBLIC] Get audio from track - """ - audioFromTrack( - """ - Track identifier - """ - trackId: UUID! - ): TrackAudio! @deprecated(reason: "Use Track.audio instead") - """ - [PUBLIC] Get authenticated user information, if any - """ - authUser: User - """ - [PUBLIC] Collector activity feed - """ - collectorActivityFeed( - """ - Only get activities of given types - """ - filter: CollectorActivityFeedFilterArgs! = { types: [ALL] } - """ - Pagination parameters - """ - pagination: CursorConnectionArgs! = { first: 10, sort: DESC } - """ - Collector user id - """ - userId: UUID! - ): CollectorActionConnection! - """ - [PUBLIC] Get credit split by id - """ - creditSplit( - """ - Credit split identifier - """ - id: UUID! - ): CreditSplit - """ - [PUBLIC] Get currencies conversions - """ - currencies: Currencies! - """ - Get current release chart - """ - currentReleaseChart: ReleaseChart! - """ - [PUBLIC] Get DraftAllowList from release and mintType - """ - draftAllowlistFromRelease( - """ - DraftAllowlistFromRelease input fields - """ - input: DraftAllowlistFromReleaseInput! - ): DraftAllowList - """ - Return list of tokenIds owned by user public address - """ - editionOwnedTokenIds( - """ - Parameters of editionOwnedTokenIds query - """ - input: EditionOwnedTokenIdsInput! - ): [String!]! - """ - [PUBLIC] Get EggGame of specified release - """ - eggGame( - """ - Release identifier - """ - releaseId: UUID! - ): EggGame - """ - Get an Event information from the unique identifier - """ - eventFromId( - """ - Unique event identifier - """ - id: UUID! - ): EventV2 - """ - [PUBLIC] Get feature flag value by name - """ - featureFlag( - """ - Feature flag name - """ - name: String! - ): FeatureFlag - """ - [PUBLIC] Get currently-featured releases - """ - featuredReleases: [Release!]! @deprecated(reason: "Use highlightedReleases query instead") - """ - [PUBLIC] Get the top 5 highlighted releases - """ - highlightedReleases: [Release!]! - """ - [PUBLIC] Get the latest events - """ - latestEventsPaginated( - """ - Paginated latest sales filters - """ - filter: LatestSalesCursorFilterArgs - """ - Pagination parameters - """ - pagination: LatestSalesCursorConnectionArgs! = { first: 10, sort: { blockTimestamp: DESC } } - ): LatestSalesConnection! @deprecated(reason: "No longer used") - """ - [PUBLIC] Get playlist based on given type and associationId - """ - legacyPlaylist( - """ - Input for playlist query - """ - input: PlaylistInput! - ): Playlist - """ - [PUBLIC] User like and unlike activity feed - """ - likeActivityFeed( - """ - Pagination parameters - """ - pagination: CursorConnectionArgs! = { first: 10, sort: DESC } - """ - User ID - """ - userId: UUID! - ): LikeActionConnection! - """ - [PUBLIC] Get a node based on specific slug - """ - link( - """ - Specify parameters for link query - """ - input: LinkInput! - ): Node - """ - [PUBLIC] Get merkle tree information - """ - merkleTree( - """ - Merkle tree root input - """ - root: String! - ): MerkleTree! @deprecated(reason: "Use merkleTreeFromRoot instead") - """ - [PUBLIC] Get merkle tree information - """ - merkleTreeFromRoot( - """ - Merkle tree root input - """ - root: String! - ): MerkleTree - """ - [PUBLIC] Get merkle tree information - """ - merkleTreeProof( - """ - Merkle tree root input - """ - root: String! - """ - Merkle tree unhashed leaf input for proof - """ - unhashedLeaf: String! - ): MerkleTreeProof - """ - [PUBLIC] Get minted release by Artist sound handle and release title slug - """ - mintedRelease( - """ - Release title slug - """ - releaseSlug: String! - """ - Artist sound handle - """ - soundHandle: String! - ): Release - """ - [PUBLIC] Request nft with contract fields - """ - nft( - """ - Input to get Nft based on contract fields - """ - input: NftInput! - ): Nft! - """ - [PUBLIC] Request nft from unique sound identifier - """ - nftFromId( - """ - NFT unique identifier - """ - id: UUID! - ): Nft - """ - [PUBLIC] Activity Feed of notable collectors - """ - notableCollectorsActivityFeed: ActivityFeed - """ - [PUBLIC] Current UNIX date to test caching - """ - now: Int! - """ - PlaylistAction by UUID - """ - playlistAction( - """ - Filter criteria for the action - """ - filter: PlaylistActionFilterArgs - """ - PlaylistAction identifier - """ - id: UUID! - """ - Playlist identifier - """ - playlistId: UUID! - ): PlaylistAction - """ - [PUBLIC] Activity Feed with filter parameters - """ - playlistActivityFeed( - """ - Pagination parameters - """ - pagination: CursorConnectionArgs! = { first: 10, sort: DESC } - """ - Playlist id - """ - playlistId: UUID! - ): PlaylistActionConnection! - """ - [PUBLIC] Get specified shelf by id - """ - playlistV2( - """ - Shelf identifier - """ - id: UUID! - ): Shelf - """ - [PUBLIC] Purchase activity Feed with filter parameters - """ - purchaseActivityFeed( - """ - Pagination parameters - """ - pagination: CursorConnectionArgs! = { first: 10, sort: DESC } - ): CollectorActionConnection! - """ - [PUBLIC] Get release by id - """ - release( - """ - Release identifier - """ - id: UUID! - ): Release - """ - [PUBLIC] Release activity feed - """ - releaseActivityFeed( - """ - Only get activities of given types - """ - filter: ReleaseActivityFeedFilterArgs! = { types: [ALL] } - """ - Pagination parameters - """ - pagination: CursorConnectionArgs! = { first: 10, sort: DESC } - """ - Release id - """ - releaseId: UUID! - ): ReleaseActionConnection! - """ - [PUBLIC] Release allow listed addresses csv url - """ - releaseAllowListedAddressesCSVUrl( - """ - Merkle root of allowlisted schedule - """ - merkleRoot: String! - """ - Release identifier - """ - releaseId: UUID! - ): String - """ - [PUBLIC] Get allowlist for release - """ - releaseAllowlist( - """ - Input for release allowlist - """ - input: ReleaseAllowlistInput! - ): ReleaseMerkleAllowlist - """ - Get release chart based on input - """ - releaseChart( - """ - Input parameters for releaseChart query - """ - input: ReleaseChartInput! - ): ReleaseChart! - """ - [PUBLIC] Get release chart based on date input - """ - releaseChartByDate( - """ - Input parameters for releaseChart query - """ - input: ReleaseChartByLastDayInput! - ): ReleaseChart - """ - Get release chart based on identifier - """ - releaseChartById( - """ - Chart identifier - """ - chartId: UUID! - ): ReleaseChart - """ - [PUBLIC] Latest supported ranges for ReleaseCharts - """ - releaseChartPeriods: ReleaseChartsPeriodRange! - """ - [PUBLIC] Get release chart rank based on input - """ - releaseChartRank( - """ - Input parameters for releaseChartRank query - """ - input: ReleaseChartRankInput! - ): ReleaseChartRank! - """ - [PUBLIC] Get release charts based on input - """ - releaseCharts( - """ - Input parameters for releaseCharts query - """ - input: ReleaseChartsInput! - ): ReleaseChartConnection! - """ - [PUBLIC] Get all users that collected the same release in one activity feed group. - """ - releaseCollectedByManyUsers( - """ - Activity feed group id - """ - activityFeedGroupId: UUID! - """ - Pagination parameters - """ - pagination: CursorConnectionArgs! = { first: 10, sort: DESC } - ): UserConnection! - """ - [PUBLIC] Get specifiec release collector from unique identifier - """ - releaseCollectorFromId( - """ - Release collector unique identifier - """ - id: UUID! - ): ReleaseCollector - """ - [PUBLIC] Get release by contract address - """ - releaseFromContract( - """ - Contract address - """ - contractAddress: Address! - """ - Optional editionId of release - """ - editionId: String - ): Release - """ - [PUBLIC] Get the release that's associated with the specific token parameters - """ - releaseFromToken( - """ - Token parameters - """ - input: ReleaseFromTokenInput! - ): Release - """ - [PUBLIC] List of genres that have at least 1 past minted release, sorted by popularity - """ - releaseGenres: [Genre!]! - """ - [PUBLIC] Get all releases - """ - releases( - """ - Filter releases - """ - filter: ReleasesCursorFilterArgs - """ - Pagination parameters - """ - pagination: ReleasesCursorConnectionArgs! = { first: 10, sort: { mintStartTime: DESC } } - ): ReleaseConnection! - """ - [PUBLIC] Search releases or artists based on text inputs - """ - search( - """ - Search text input - """ - input: SearchInput! - ): SearchResult! - """ - [PUBLIC] Get specified shelf by id - """ - shelf( - """ - Shelf identifier - """ - id: UUID! - ): Shelf! - """ - [PUBLIC] Top affiliate curators list - """ - topAffiliateCurators( - """ - Input for top curators information - """ - input: TopAffiliateCuratorsInput! - ): [AffiliateCurator!]! - """ - [PUBLIC] Get trending artists information - """ - topArtists( - """ - Sort logic used - """ - sort: TrendingArtistsSortEnum! - """ - For what time period the data should come from - """ - timePeriod: TimePeriodAggEnum! - ): [TrendingArtistInfo!]! @deprecated(reason: "Please use Query.topArtistsV2") - """ - [PUBLIC] Get top artists - """ - topArtistsV2( - """ - Input for top artists query - """ - input: TopArtistsInput! - ): [TrendingArtistInfo!]! - """ - [PUBLIC] Get top collectors information - """ - topCollectors( - """ - Sort logic used - """ - sort: TrendingCollectorsSortEnum! - """ - For what time period the data should come from - """ - timePeriod: TimePeriodAggEnum! - ): [TrendingCollectorInfo!]! @deprecated(reason: "Use Query.topCollectorsV2 instead") - """ - [PUBLIC] Get top collectors information based on currently owned NFTs - """ - topCollectorsV2( - """ - Limit the amount to be returned, Up to 100 - """ - limit: PositiveInt! = 100 - """ - Sort logic used - """ - sort: TrendingCollectorsSortEnum! - """ - For what time period the data should come from - """ - timePeriod: TopChartTimePeriodEnum! - ): [TrendingCollectorInfo!]! - """ - [PUBLIC] Get trending playlists - """ - topPlaylists( - """ - Input for trending playlists - """ - input: TopPlaylistsInput! - ): [TrendingPlaylistInfo!]! - """ - [PUBLIC] Get trending releases - """ - topReleases( - """ - Sort logic used - """ - sort: TrendingReleasesSortEnum! - """ - For what time period the data should come from - """ - timePeriod: TimePeriodAggEnum! - ): [TrendingReleaseInfo!]! - """ - [PUBLIC] Get total raised of the whole platform - """ - totalRaisedPlatform: TotalRaisedPlatform! - """ - [PUBLIC] Total count of minted releases - """ - totalReleasesCount( - """ - Filter the releases to be counted - """ - filter: MintedReleasesCursorFilterArgs - ): Int! - """ - [PUBLIC] Get track by id - """ - track( - """ - Track identifier - """ - id: UUID! - ): Track - """ - [PUBLIC] Get trending artists information - """ - trendingArtistInfo( - """ - Sort logic used - """ - sort: TrendingArtistsSortEnum! - """ - For what time period the data should come from - """ - timePeriod: TimePeriodAggEnum! - ): [TrendingArtistInfo!]! @deprecated(reason: "Please use Query.topArtists") - """ - [PUBLIC] Get trending collectors information - """ - trendingCollectors( - """ - Sort logic used - """ - sort: TrendingCollectorsSortEnum! - """ - For what time period the data should come from - """ - timePeriod: TimePeriodAggEnum! - ): [TrendingCollectorInfo!]! @deprecated(reason: "Please use Query.topCollectors") - """ - [PUBLIC] Get trending playlists - """ - trendingPlaylists( - """ - Sort logic used - """ - sort: TrendingPlaylistsSortEnum! - """ - For what time period the data should come from - """ - timePeriod: TimePeriodAggEnum! - ): [TrendingPlaylistInfo!]! @deprecated(reason: "Use Query.topPlaylists instead") - """ - [PUBLIC] Get trending releases - """ - trendingReleases( - """ - Sort logic used - """ - sort: TrendingReleasesSortEnum! - """ - For what time period the data should come from - """ - timePeriod: TimePeriodAggEnum! - ): [TrendingReleaseInfo!]! @deprecated(reason: "Please use Query.topReleases") - """ - [PUBLIC] Get specified user by id - """ - user( - """ - User identifier - """ - id: UUID! - ): User - """ - [PUBLIC] Get specified user by public address or ens, if both args provided mismatch, returns null - """ - userByAddress( - """ - User's ethereum name service domain - """ - ens: ENS - """ - Public address of user - """ - publicAddress: Address - ): User - """ - [PUBLIC] Get specified user by sound handle - """ - userByArtistHandle(soundHandle: String!): User - """ - [PUBLIC] User like and unlike activity feed - """ - userLikeActivityFeed( - """ - Pagination parameters - """ - pagination: CursorConnectionArgs! = { first: 10, sort: DESC } - """ - User ID - """ - userId: UUID! - ): CollectorActionConnection! - """ - [PUBLIC] List of top 3 followers of user by follower count - """ - userTopFollowers( - """ - Id of user - """ - id: UUID! - ): [User!]! - """ - [PUBLIC] Get platform version status - """ - versionStatus( - """ - Input for query - """ - input: VersionStatusInput! - ): VersionStatusResponse! -} - -""" -Pagination parameters of referred users -""" -input ReferredUsersCursorConnectionArgs { - """ - Start forwards pagination since "after" cursor - """ - after: String - """ - Start backwards pagination since "before" cursor - """ - before: String - """ - Limit the amount of nodes to be fetched, to be used with "after", with a maximum of 25 nodes. - """ - first: NonNegativeInt - """ - Limit the amount of nodes to be fetched, to be used with "before", with a maximum of 25 nodes. - """ - last: NonNegativeInt - """ - Customize sort behavior - """ - sort: ReferredUsersCursorConnectionSort! = { blockNumber: ASC } -} - -""" -Customize the sort behavior of release affiliates total purchases -""" -input ReferredUsersCursorConnectionSort { - """ - Sort by purchase block number - """ - blockNumber: SortOrder -} - -""" -Input for referred users within release affiliate total purchases -""" -input ReferredUsersInput { - """ - Pagination parameters - """ - pagination: ReferredUsersCursorConnectionArgs! = { after: null, first: 20, sort: { blockNumber: ASC } } -} - -""" -Release entity -""" -type Release implements Node { - """ - Release activity feed - """ - activityFeed( - """ - Input parameters - """ - input: ReleaseActivityFeedInput! - ): ReleaseActionConnection! - """ - Number of nfts airdropped - """ - airdropCount: Int! - """ - Animated cover image of the release if the cover is a GIF. Otherwise, null - """ - animatedCoverImage: Media - """ - Animated golden egg image optimized for client rendering - """ - animatedGoldenEggImageOptimized: Media - """ - Artist of release - """ - artist: Artist! - """ - Auction type defined on upload flow - """ - auctionType: AuctionType - """ - Base metadata attributes (non golden egg). - """ - baseMetadataAttributes: [MetadataAttribute!]! - """ - Behind the music text - """ - behindTheMusic: String! - """ - Can collectors download audio - """ - canCollectorsDownloadAudio: Boolean! - """ - Chain ID on which release is minted on - """ - chainId: Int! - """ - Currently claimed song slots - """ - claimedSongSlots: [Int!]! - """ - Collectors of release - """ - collectors( - """ - Pagination parameters - """ - pagination: ReleaseCollectorCursorConnectionArgs! = { after: null, first: 10, sort: { nftsCount: DESC } } - ): ReleaseCollectorConnection! - """ - Amount of unique collectors of release - """ - collectorsCount: Int! - """ - Contract associated to Sound Edition - """ - contract: Contract! - """ - Contract address - """ - contractAddress: String! - """ - Cover image of release - """ - coverImage: Media! - """ - Release creation date - """ - createdAt: DateTime! - """ - Credit split associated with release, if any - """ - creditSplit: CreditSplit - """ - Users with credits of release - """ - credits: [User!]! - """ - Draft id associated to release - """ - draftId: String - """ - Edition ID - """ - editionId: String - """ - EggGame of Release - """ - eggGame: EggGame - """ - Associated external url - """ - externalUrl: String - """ - Final quantity for a release. Will be defined as soon as a max quantity has been determined - """ - finalQuantity: Int - """ - Last sale schedule end time as number of milliseconds since the ECMAScript epoch. - """ - finalSaleScheduleEndTimestamp: Timestamp - @deprecated(reason: "Use supplyCutoffTimestamp, final schedule is ambiguous and not necessarily the main sale") - """ - Address set as funds recipient on the contract - """ - fundingAddress: String! - """ - Genre of Release - """ - genre: Genre! - """ - Special golden egg image - """ - goldenEggImage: Media! - """ - Is the release a range bound edition - """ - hasRangeBoundSale: Boolean! - """ - Release identifier - """ - id: ID! - """ - Is release sold out relative to the final quantity - """ - isFinalSoldOut: Boolean! @deprecated(reason: "Use 'isFirstPhaseCompleted' instead") - """ - Is release sold out relative to the final quantity on first phase - """ - isFirstPhaseCompleted: Boolean! - """ - Release last updated at timestamp - """ - lastUpdatedAt: DateTime - """ - Associated laylo.com url. - """ - layloUrl: String @deprecated(reason: "No longer supported and will always return NULL") - """ - Paginate through users who like this release. - """ - likedBy( - """ - Pagination parameters - """ - pagination: CursorConnectionArgs! = { first: 10, sort: DESC } - ): UserConnection! - """ - Associated market place url - """ - marketPlaceUrl: String - """ - Metadata details associated of song - """ - metadataDetails: MetadataDetails - """ - Public sale start time in UNIX timestamp - """ - mintStartTime: Int! - """ - Public sale start timestamp - """ - mintStartTimestamp: Timestamp! - """ - NFTs of Release - """ - nftsPaginated( - """ - Pagination parameters - """ - pagination: NftCursorConnectionArgs! = { after: null, first: 30, sort: { secondarySaleDate: DESC } } - ): NftConnection! - """ - Amount of sold NFTs - """ - numSold: Int! - """ - Associated opensea url - """ - openseaUrl: String - """ - Price in Wei - """ - price: String! - """ - Affiliate fee in basis points of the first non-merkle-drop schedule - """ - publicAffiliateFeeBPS: Int - """ - Affiliate fee in percent of the first non-merkle-drop schedule - """ - publicAffiliateFeePercent: String - """ - Public minting start time - """ - publicMintStart: DateTime! - """ - Quantity of available NFTs - """ - quantity: Int! - """ - Lower bound quantity for a releases main sale. - """ - quantityLowerBound: Int! - """ - Upper bound quantity for a releases main sale. - """ - quantityUpperBound: Int! - """ - Rewards of Release - """ - rewards: [Reward!]! - """ - Creator royalty basis points - """ - royaltyBps: Int! - """ - Sale details for release - """ - saleDetails: SaleDetails! - """ - Minting periods - """ - saleSchedules: [SaleSchedule!]! - """ - Unique list of affiliate fees percent ordered by start time of sale schedule - """ - salesAffiliateFeesPercent: [String!]! - """ - Sound Automated Market (SAM) address associated with the release - """ - samAddress: String - """ - Override for the SAM buy buffer in basis points (bps) for this release - """ - samBuyBufferBpsOverride: Int - """ - SAM configuration if enabled for edition - """ - samConfig: SamConfig - """ - Override for the SAM sell buffer in basis points (bps) for this release - """ - samSellBufferBpsOverride: Int - """ - Edition schedule identifiers, used to optimize chain calls - """ - scheduleIds: [ScheduleIdentifier!] - """ - Season associated to release - """ - season: String - """ - Shelves where the release has been added to - """ - shelves( - """ - Filter the shelves of the release - """ - filter: ReleaseShelvesFilter - """ - Pagination parameters - """ - pagination: ReleaseShelvesCursorConnectionArgs! = { after: null, first: 20, sort: { addedAtDate: DESC } } - ): ShelfConnection! - """ - Release collectors that are prioritized based on followers status - """ - socialProofCollectors(userId: UUID): [User!]! - """ - Static version of animated cover image of release if the cover is a GIF. Otherwise, null - """ - staticCoverImage: Media - """ - Time when supply is fixed for open/range based auctions. This is irrelevant for fixed supply auctions. - """ - supplyCutoffTimestamp: Timestamp - """ - Release title - """ - title: String! - """ - Slugified title - """ - titleSlug: String! - """ - Top 5 collectors, sorted by nft count descendingly followed by lowest serial number ascendingly - """ - topCollectors: [TopReleaseCollector!]! - """ - Top 100 Nfts with comment, earlier serial numbers get precedence for conflicting song slots - """ - topNftsWithComment: [NftWithComment!]! - """ - Total minted NFTs - """ - totalMinted: Int! - """ - Total raised in Wei - """ - totalRaised: String! @deprecated(reason: "Use Release.saleDetails.primaryRaisedInWei instead.") - """ - Total amount raised from primary sales converted from eth to usd - """ - totalRaisedPrimaryUsd: Float! @deprecated(reason: "No longer being used") - """ - Total amount raised from secondary sales converted from eth to usd - """ - totalRaisedSecondaryUsd: Float! - """ - Total supply of NFTs - """ - totalSupply: Int! - """ - Track of release - """ - track: Track! - """ - Type of Release - """ - type: ReleaseType! - """ - Web HTML iframe embed - """ - webEmbed( - """ - Input for Release web embed - """ - input: ReleaseWebEmbedInput! = { html: { height: "288px", style: "border-radius:8px", width: "100%" } } - ): String! - """ - Webapp URI of Release - """ - webappUri( - """ - Customize webapp uri parameters - """ - input: ReleaseWebappUriInput - ): String! -} - -""" -Release action entity -""" -interface ReleaseAction implements Node { - """ - Date of action - """ - date: DateTime! - """ - Release action id - """ - id: ID! - """ - User corresponding to action entity - """ - user: User! -} - -""" -Paginated collector action connection -""" -type ReleaseActionConnection implements Connection { - """ - Edges of current page - """ - edges: [ReleaseActionConnectionEdge!]! - """ - Pagination helpers information - """ - pageInfo: PageInfo! -} - -""" -Edge of collector action connection -""" -type ReleaseActionConnectionEdge implements Edge { - """ - Cursor to be used for pagination - """ - cursor: String! - """ - Release action node - """ - node: ReleaseAction! -} - -""" -Filter release activity types -""" -input ReleaseActivityFeedFilterArgs { - """ - Only get activity of given type - """ - types: [ReleaseActivityFeedTypeFilterOption!]! = [ALL] -} - -""" -Release activity feed input parameters -""" -input ReleaseActivityFeedInput { - """ - Only get activities of given types - """ - filter: ReleaseActivityFeedFilterArgs! = { types: [ALL] } - """ - Pagination parameters - """ - pagination: CursorConnectionArgs! = { first: 10, sort: DESC } -} - -""" -Release activity feed type filter option -""" -enum ReleaseActivityFeedTypeFilterOption { - ALL - COLLECTIONS - LIKES - PLAYLISTS - RELEASES -} - -""" -Aggregate of all affiliate purchases of specific affiliate user and release -""" -type ReleaseAffiliateTotalPurchases implements Node { - """ - Affiliate that referred the purchase - """ - affiliate: User! - """ - Total of earnings in eth associated with affiliate purchases - """ - earningsETH: String! - """ - Total of earnings in wei associated with affiliate purchases - """ - earningsWei: String! - """ - Unique identifier from release id and affiliate address - """ - id: ID! - """ - Quantity of purchases - """ - purchasesQuantity: Int! - """ - Referred users of release - """ - referredCollectors( - """ - Input for paginated referred users - """ - input: ReferredUsersInput! = { pagination: { after: null, first: 20, sort: { blockNumber: ASC } } } - ): ReleaseReferredCollectorConnection! - """ - Release associated to affiliate purchases - """ - release: Release! -} - -""" -ReleaseAffiliateTotalPurchases edge -""" -type ReleaseAffiliateTotalPurchasesEdge implements Edge { - """ - Cursor to be used for pagination - """ - cursor: String! - """ - ReleaseAffiliateTotalPurchases Entity - """ - node: ReleaseAffiliateTotalPurchases! -} - -""" -Release album reveal filter option -""" -enum ReleaseAlbumRevealFilterOption { - ALL - ONLY_NOT_REVEALED_ALBUMS - ONLY_REVEALED_ALBUMS -} - -""" -Input for releaseAllowlist query -""" -input ReleaseAllowlistInput { - """ - Merkle tree root - """ - merkleRoot: String! - """ - Release identifier - """ - releaseId: UUID! -} - -""" -Shared sub allowlist information -""" -interface ReleaseBaseSubAllowlist implements Node { - """ - Node identifier - """ - id: ID! - """ - Total number of addresses in sub allowlist - """ - totalAddresses: Int! -} - -""" -Release chart entity -""" -type ReleaseChart implements Node { - """ - Chart ranks of release chart - """ - chartRanks( - """ - Pagination parameters - """ - pagination: ReleaseChartRankCursorConnectionArgs! = { after: null, first: 10, sort: { currentRank: ASC } } - ): ReleaseChartRankConnection! - """ - UUID of Release chart entity - """ - id: ID! - """ - Last full day of the chart period (inclusive) - """ - lastDayOfChartInclusive: DateTime! - """ - Release chart period end exclusive - """ - periodEndExclusive: DateTime! - """ - Release chart period start inclusive - """ - periodStartInclusive: DateTime! -} - -""" -Input for releaseChart query -""" -input ReleaseChartByLastDayInput { - """ - Locate chart using the last date of the period (inclusive) - """ - lastDayOfChartInclusive: DateTime! -} - -""" -Paginated connection of Release Charts -""" -type ReleaseChartConnection implements Connection { - """ - Edges of current page - """ - edges: [ReleaseChartConnectionEdge!]! - """ - Pagination helpers information - """ - pageInfo: PageInfo! -} - -""" -Edge of Release Chart Connection -""" -type ReleaseChartConnectionEdge implements Edge { - """ - Cursor to be used for pagination - """ - cursor: String! - """ - Release Chart node - """ - node: ReleaseChart! -} - -""" -Pagination paramaters for release charts -""" -input ReleaseChartCursorConnectionArgs { - """ - Start forwards pagination since "after" cursor - """ - after: String - """ - Start backwards pagination since "before" cursor - """ - before: String - """ - Limit the amount of nodes to be fetched, to be used with "after", with a maximum of 51 nodes. - """ - first: NonNegativeInt - """ - Limit the amount of nodes to be fetched, to be used with "before", with a maximum of 51 nodes. - """ - last: NonNegativeInt - """ - Customize sort behavior - """ - sort: ReleaseChartCursorConnectionSort! = {} -} - -""" -Customize sort of release charts -""" -input ReleaseChartCursorConnectionSort { - """ - Sort by release chart period end exclusive - """ - periodEndExclusive: SortOrder -} - -""" -Input for releaseChart query -""" -input ReleaseChartInput { - """ - Filter on periodEnd date - """ - periodEndExclusive: DateTime! -} - -""" -Release chart rank entity -""" -type ReleaseChartRank implements Node { - """ - Current ranking of release - """ - currentRank: Int! - """ - UUID of Release chart entity - """ - id: ID! - """ - Last ranking of release - """ - rankLast: Int - """ - Peak ranking of release - """ - rankPeak: Int - """ - Chart rank release - """ - release: Release! - """ - Trending indicator of release - """ - trendingIndicator: TrendingIndicator! - """ - Trending streak of release - """ - trendingStreak: Int! -} - -""" -Paginated connection of Release Chart Ranks -""" -type ReleaseChartRankConnection implements Connection { - """ - Edges of current page - """ - edges: [ReleaseChartRankConnectionEdge!]! - """ - Pagination helpers information - """ - pageInfo: PageInfo! -} - -""" -Edge of Release Chart Rank Connection -""" -type ReleaseChartRankConnectionEdge implements Edge { - """ - Cursor to be used for pagination - """ - cursor: String! - """ - Release Chart Rank node - """ - node: ReleaseChartRank! -} - -""" -Pagination paramaters for release chart ranks -""" -input ReleaseChartRankCursorConnectionArgs { - """ - Start forwards pagination since "after" cursor - """ - after: String - """ - Start backwards pagination since "before" cursor - """ - before: String - """ - Limit the amount of nodes to be fetched, to be used with "after", with a maximum of 51 nodes. - """ - first: NonNegativeInt - """ - Limit the amount of nodes to be fetched, to be used with "before", with a maximum of 51 nodes. - """ - last: NonNegativeInt - """ - Customize sort behavior - """ - sort: ReleaseChartRankCursorConnectionSort! = { currentRank: ASC } -} - -""" -Customize sort of collectors -""" -input ReleaseChartRankCursorConnectionSort { - """ - Sort by release chart current rank - """ - currentRank: SortOrder -} - -""" -Input for releaseChartRank query -""" -input ReleaseChartRankInput { - """ - Release Chart Rank entity id - """ - id: UUID! -} - -""" -Input for releaseChart query -""" -input ReleaseChartsInput { - """ - Cursor connection parameters - """ - pagination: ReleaseChartCursorConnectionArgs! = { after: null, first: 10, sort: { periodEndExclusive: DESC } } -} - -""" -Latest supported ranges for ReleaseCharts -""" -type ReleaseChartsPeriodRange { - """ - Earliest date covered by ReleaseCharts (inclusive in UTC) - """ - earliestPeriodStartInclusive: DateTime! - """ - Latest date covered by ReleaseCharts (exclusive in UTC) - """ - latestPeriodEndExclusive: DateTime! -} - -""" -Release collector -""" -type ReleaseCollector implements Node { - """ - First release nft collected by user - """ - firstNftCollected: Nft! - """ - Date of first nft collected - """ - firstNftCollectedDate: DateTime! - """ - Unique id of release collector - """ - id: ID! - """ - Lowest nft serial number collected - """ - lowestNftSerialNumber: Int! - """ - Lowest serial number release nft collected by user - """ - lowestSerialNumberNftCollected: Nft! - """ - Most recent release nft collected by user with a comment - """ - mostRecentCommentedNft: NftWithComment - """ - Most recent release nft collected by user with a comment - """ - mostRecentNftWithComment: Nft - """ - Amount of release nfts owned - """ - nftsCount: Int! - """ - Returns golden egg of release if user owns, otherwise null - """ - ownedGoldenEgg: EggGame - """ - Release entity - """ - release: Release! - """ - Collector user - """ - user: User! -} - -""" -Paginated connection of Release Collectors -""" -type ReleaseCollectorConnection implements Connection { - """ - Edges of current page - """ - edges: [ReleaseCollectorConnectionEdge!]! - """ - Pagination helpers information - """ - pageInfo: PageInfo! -} - -""" -Edge of Release Collector Connection -""" -type ReleaseCollectorConnectionEdge implements Edge { - """ - Cursor to be used for pagination - """ - cursor: String! - """ - ReleaseCollector node - """ - node: ReleaseCollector! -} - -""" -Pagination paramaters for artist collectors -""" -input ReleaseCollectorCursorConnectionArgs { - """ - Start forwards pagination since "after" cursor - """ - after: String - """ - Start backwards pagination since "before" cursor - """ - before: String - """ - Limit the amount of nodes to be fetched, to be used with "after", with a maximum of 51 nodes. - """ - first: NonNegativeInt - """ - Limit the amount of nodes to be fetched, to be used with "before", with a maximum of 51 nodes. - """ - last: NonNegativeInt - """ - Customize sort behavior - """ - sort: ReleaseCollectorCursorConnectionSort! = { nftsCount: DESC } -} - -""" -Customize sort of collectors -""" -input ReleaseCollectorCursorConnectionSort { - """ - Sort by first nft collected date - """ - firstNftCollectedDate: SortOrder - """ - Sort by lowest owned serial number - """ - lowestOwnedSerialNumber: SortOrder - """ - Sort by amount nfts collected, with tie-breaker of earliest collector first - """ - nftsCount: SortOrder -} - -""" -Release collector updates from subscription -""" -type ReleaseCollectorUpdates { - """ - Release collector information. null if user is no longer collector - """ - collector: CollectorUpdateInfo - """ - Release unique identifier - """ - releaseId: ID! - """ - Wallet public address of user - """ - userPublicAddress: String! -} - -""" -Info associated with release draft allowlist -""" -type ReleaseCollectorsAllowlist { - """ - Flag to include or not include all artist collaborations - """ - allArtistCollaborations: Boolean! - """ - Flag to include or not include all artist releases - """ - allArtistReleases: Boolean! - """ - Paginated releases of draftAllowlist taking into account artist releases and collaborator flags - """ - filteredReleases: ReleaseConnection! - """ - Total number of release collector users in draft allowlist - """ - totalCollectors: Int! -} - -""" -Paginated releases connection -""" -type ReleaseConnection implements Connection { - """ - Edges of current page - """ - edges: [ReleaseConnectionEdge!]! - """ - Pagination helpers information - """ - pageInfo: PageInfo! -} - -""" -Edge of Release Connection -""" -type ReleaseConnectionEdge implements Edge { - """ - Cursor to be used for pagination - """ - cursor: String! - """ - Release node - """ - node: Release! -} - -""" -Union of release contract types -""" -union ReleaseContractEarning = ArtistContractEarning | EditionContractEarning - -""" -Release dropped action entity -""" -type ReleaseDropped implements ArtistAction & Node & ReleaseAction { - """ - Date of action - """ - date: DateTime! - """ - Action id - """ - id: ID! - """ - Release entity dropped by artist - """ - release: Release! - """ - User corresponding to action entity - """ - user: User! -} - -""" -Release dropped aggregate -""" -type ReleaseDroppedAggregate { - """ - Release dropped action in activity feed group - """ - release: Release! -} - -""" -Release earnings of a user -""" -type ReleaseEarnings implements Node { - """ - Earnings on a contract. - """ - earning: ReleaseContractEarning! - """ - Id of the associated release - """ - id: ID! - """ - Ownership percentage of the user in the release - """ - ownershipPercent: Float! - """ - release primary revenue - """ - primaryRevenue: String! - """ - Release entity - """ - release: Release! - """ - Release secondary royalties - """ - secondaryRoyalties: String! - """ - Split contract earnings associated to release. - """ - splitContract: SplitsContractEarning - """ - Split main balance attributable to release - """ - splitMainBalanceFromRelease: String! - """ - Total withdrawable amount for user - """ - totalWithdrawableForUser: String! -} - -""" -Edge of Release Earnings Connection -""" -type ReleaseEarningsConnectionEdge implements Edge { - """ - Cursor to be used for pagination - """ - cursor: String! - """ - Release Earnings node - """ - node: ReleaseEarnings! -} - -""" -Release featured status -""" -enum ReleaseFeaturedStatus { - ALL - HOT -} - -""" -Input for "releaseFromToken" query -""" -input ReleaseFromTokenInput { - """ - Contract address of release - """ - contractAddress: Address! - """ - Token chain identifier - """ - tokenId: String! -} - -""" -Simplified version of Release entity -""" -type ReleaseInfo implements Node { - """ - Release artistId - """ - artistId: String! - """ - Artist name of release - """ - artistName: String! - """ - Artist user id - """ - artistUserId: String! - """ - Cover image of release - """ - coverImage: Media! - """ - User ids of release credits - """ - creditUserIds: [String!]! - """ - Unique identifier of Artist - """ - id: ID! - """ - Static version of animated cover image of release if the cover is a GIF. Otherwise, null - """ - staticCoverImage: Media - """ - Release title - """ - title: String! -} - -""" -Release liked action entity -""" -type ReleaseLiked implements ArtistAction & CollectorAction & LikeAction & Node & ReleaseAction { - """ - Date of action - """ - date: DateTime! - """ - Action id - """ - id: ID! - """ - Release corresponding to release liked action entity - """ - release: Release! - """ - User corresponding to release liked action entity - """ - user: User! -} - -""" -Allowlist containing all manually added addresses -""" -type ReleaseManuallyAddedAddressesAllowlist implements Node & ReleaseBaseSubAllowlist { - """ - Description for manually added allowlist - """ - description: String - """ - Node identifier - """ - id: ID! - """ - Total number of addresses in sub allowlist - """ - totalAddresses: Int! -} - -""" -Release allowlist behind merkle tree -""" -type ReleaseMerkleAllowlist implements Node { - """ - Unique identifier of merkle allowlist of release - """ - id: ID! - """ - Static information associated with allowlist - """ - info: ReleaseMerkleAllowlistInfo! - """ - Manually added addresses by artist - """ - manuallyAddedAddresses: ReleaseManuallyAddedAddressesAllowlist - """ - Pagination of releases from collaborations - """ - releaseCollaborationsSources( - pagination: CursorConnectionArgs! = { after: null, first: 10, sort: ASC } - ): ReleaseSourceSubAllowlistConnection - """ - Pagination of manually selected artists - """ - selectedArtistSources( - pagination: CursorConnectionArgs! = { after: null, first: 10, sort: ASC } - ): ArtistSourceSelectedAllowlistConnection - """ - Pagination of manually selected releases - """ - selectedReleaseSources( - pagination: CursorConnectionArgs! = { after: null, first: 10, sort: ASC } - ): ReleaseSourceSubAllowlistConnection - """ - Total number of users in allowlist - """ - totalUsers: Int! -} - -""" -Release allowlist information -""" -type ReleaseMerkleAllowlistInfo { - """ - Flag to include or not include all artist collaborations - """ - allArtistCollaborations: Boolean! - """ - Flag to include or not include all collectors of release artist - """ - allArtistCollectors: Boolean! - """ - Manually added addresses - """ - manuallyAddedAddresses: [String!] - """ - Manually selected artist identifiers - """ - sourceSelectedArtistIds: [String!] - """ - Manually selected release identifiers - """ - sourceSelectedReleaseIds: [String!] -} - -""" -Release NFT Update -""" -type ReleaseNftUpdate implements ReleaseNftUpdateInfo { - """ - Possible comment associated with NFT - """ - commentMessage: String - """ - Contract address associated with nft - """ - contractAddress: String! - """ - Unique identifier of NFT - """ - id: ID! - """ - Was the NFT burned - """ - isBurned: Boolean! - """ - Is the NFT the golden egg - """ - isGoldenEgg: Boolean! - """ - If user is an artist, the artist unique identifier - """ - ownerArtistId: ID - """ - If user is an artist, the artist name - """ - ownerArtistName: String - """ - If user is an artist, the artist sound handle - """ - ownerArtistSoundHandle: String - """ - Possible avatar URL of NFT owner - """ - ownerAvatarUrl: String - """ - User wallet public address - """ - ownerPublicAddress: String! - """ - Serial number of the lowest owned nft of the collected release - """ - ownerReleaseLowestNftSerialNumber: Int! - """ - Amount of NFTs owned by collector on the same release - """ - ownerReleaseNftCount: Int! - """ - User unique identifier of owner - """ - ownerUserId: ID! - """ - Username of NFT owner - """ - ownerUsername: String! - """ - User webapp uri - """ - ownerWebappUri: String! - """ - Serial number of nft within release - """ - serialNumber: Int! - """ - Selected song slot associated with nft - """ - songSlot: Int - """ - Unique token identifier of nft - """ - tokenId: String! - """ - Date of last ownership transfer - """ - updatedAt: DateTime! -} - -""" -Release NFT Update information -""" -interface ReleaseNftUpdateInfo { - """ - Possible comment associated with NFT - """ - commentMessage: String - """ - Contract address associated with nft - """ - contractAddress: String! - """ - Unique identifier of NFT - """ - id: ID! - """ - Was the NFT burned - """ - isBurned: Boolean! - """ - Is the NFT the golden egg - """ - isGoldenEgg: Boolean! - """ - If user is an artist, the artist unique identifier - """ - ownerArtistId: ID - """ - If user is an artist, the artist name - """ - ownerArtistName: String - """ - If user is an artist, the artist sound handle - """ - ownerArtistSoundHandle: String - """ - Possible avatar URL of NFT owner - """ - ownerAvatarUrl: String - """ - User wallet public address - """ - ownerPublicAddress: String! - """ - Serial number of the lowest owned nft of the collected release - """ - ownerReleaseLowestNftSerialNumber: Int! - """ - Amount of NFTs owned by collector on the same release - """ - ownerReleaseNftCount: Int! - """ - User unique identifier of owner - """ - ownerUserId: ID! - """ - Username of NFT owner - """ - ownerUsername: String! - """ - User webapp uri - """ - ownerWebappUri: String! - """ - Serial number of nft within release - """ - serialNumber: Int! - """ - Selected song slot associated with nft - """ - songSlot: Int - """ - Unique token identifier of nft - """ - tokenId: String! - """ - Date of last ownership transfer - """ - updatedAt: DateTime! -} - -""" -Release NFT Update -""" -type ReleaseNftWithCommentUpdate implements ReleaseNftUpdateInfo { - """ - Comment associated with NFT - """ - commentMessage: String! - """ - Contract address associated with nft - """ - contractAddress: String! - """ - Unique identifier of NFT - """ - id: ID! - """ - Was the NFT burned - """ - isBurned: Boolean! - """ - Is the NFT the golden egg - """ - isGoldenEgg: Boolean! - """ - If user is an artist, the artist unique identifier - """ - ownerArtistId: ID - """ - If user is an artist, the artist name - """ - ownerArtistName: String - """ - If user is an artist, the artist sound handle - """ - ownerArtistSoundHandle: String - """ - Possible avatar URL of NFT owner - """ - ownerAvatarUrl: String - """ - User wallet public address - """ - ownerPublicAddress: String! - """ - Serial number of the lowest owned nft of the collected release - """ - ownerReleaseLowestNftSerialNumber: Int! - """ - Amount of NFTs owned by collector on the same release - """ - ownerReleaseNftCount: Int! - """ - User unique identifier of owner - """ - ownerUserId: ID! - """ - Username of NFT owner - """ - ownerUsername: String! - """ - User webapp uri - """ - ownerWebappUri: String! - """ - Serial number of nft within release - """ - serialNumber: Int! - """ - Selected song slot associated with nft - """ - songSlot: Int! - """ - Unique token identifier of nft - """ - tokenId: String! - """ - Date of last ownership transfer - """ - updatedAt: DateTime! -} - -""" -Referred collector data within a release -""" -type ReleaseReferredCollector implements Node { - """ - Total of earnings in eth associated with affiliate purchases - """ - earningsETH: String! - """ - Total of earnings in wei associated with affiliate purchases - """ - earningsWei: String! - """ - Unique identifier on referred collector within release and affiliate - """ - id: ID! - """ - Amount of editions sold by referred collector for release and affiliate - """ - purchasesQuantity: Int! - """ - User entity of referred collector - """ - user: User! -} - -""" -Paginated connection of referred collectors -""" -type ReleaseReferredCollectorConnection implements Connection { - """ - Edges of current page - """ - edges: [ReleaseReferredCollectorEdge!]! - """ - Pagination helpers information - """ - pageInfo: PageInfo! -} - -""" -Edge of ReleaseReferredCollector -""" -type ReleaseReferredCollectorEdge implements Edge { - """ - Cursor to be used for pagination - """ - cursor: String! - """ - Release referred collector node - """ - node: ReleaseReferredCollector! -} - -""" -Filter the releases to be searched -""" -input ReleaseSearchFilter { - """ - Filters on release type - """ - type: [ReleaseType!] -} - -""" -Pagination parameters of release shelves -""" -input ReleaseShelvesCursorConnectionArgs { - """ - Start forwards pagination since "after" cursor - """ - after: String - """ - Start backwards pagination since "before" cursor - """ - before: String - """ - Limit the amount of nodes to be fetched, to be used with "after", with a maximum of 51 nodes. - """ - first: NonNegativeInt - """ - Limit the amount of nodes to be fetched, to be used with "before", with a maximum of 51 nodes. - """ - last: NonNegativeInt - """ - Customize sort behavior - """ - sort: ReleaseShelvesCursorConnectionSort! = { addedAtDate: DESC } -} - -""" -Customize sort of release shelves -""" -input ReleaseShelvesCursorConnectionSort { - """ - Sort by date of release being added in the shelf - """ - addedAtDate: SortOrder -} - -""" -Filter release shelves -""" -input ReleaseShelvesFilter { - """ - Filter shelves to be included by identifier. You can only specify up to 51 shelves. - """ - shelfIds: [UUID!] -} - -""" -Allowlists of releases used as source of collectors -""" -type ReleaseSourceSubAllowlist implements Node & ReleaseBaseSubAllowlist { - """ - Node identifier - """ - id: ID! - """ - Release used as source of collectors - """ - sourceRelease: Release - """ - Total number of addresses in sub allowlist - """ - totalAddresses: Int! -} - -""" -Connection entity of release source allowlist -""" -type ReleaseSourceSubAllowlistConnection implements Connection { - """ - List of edges of pagination - """ - edges: [ReleaseSourceSubAllowlistEdge!]! - """ - Pagination info helpers - """ - pageInfo: PageInfo! -} - -""" -Edge of connection for release source allowlist -""" -type ReleaseSourceSubAllowlistEdge implements Edge { - """ - Pagination cursor - """ - cursor: String! - """ - Pagination node - """ - node: ReleaseSourceSubAllowlist! -} - -""" -Release current status type -""" -enum ReleaseStatus { - AVAILABLE_TO_MINT - SOLD_OUT -} - -""" -Release type, currently the platform only supports "SINGLE" -""" -enum ReleaseType { - ALBUM - ALBUM_TRACK - SINGLE -} - -""" -Release unliked action entity -""" -type ReleaseUnliked implements ArtistAction & CollectorAction & LikeAction & Node { - """ - Date of action - """ - date: DateTime! - """ - Action id - """ - id: ID! - """ - Release corresponding to unliked release action entity - """ - release: Release! - """ - User corresponding to unliked release action entity - """ - user: User! -} - -""" -Release updates from subscription -""" -type ReleaseUpdates { - """ - Chain ID on which release is minted on - """ - chainId: Int! - """ - Final quantity for a release. Will be defined as soon as a max quantity has been determined - """ - finalQuantity: Int - """ - Release identifier - """ - id: ID! - """ - Is release sold out relative to the final quantity on first phase - """ - isFirstPhaseCompleted: Boolean! - """ - Public sale start timestamp - """ - mintStartTimestamp: Timestamp! - """ - Amount of sold NFTs - """ - numSold: Int! - """ - Number of nfts collected during primary sale - """ - primaryCollected: Int! - """ - Aggregate raised during primary sale - """ - primaryRaisedInWei: String! - """ - Override for the SAM buy buffer in basis points (bps) for this release - """ - samBuyBufferBpsOverride: Int - """ - Override for the SAM sell buffer in basis points (bps) for this release - """ - samSellBufferBpsOverride: Int - """ - Number of nfts collected during sound swap sale - """ - soundSwapCollected: Int! - """ - Aggregate raised during sound swap sale - """ - soundSwapRaisedInWei: String! - """ - Title of release - """ - title: String! - """ - Total minted NFTs - """ - totalMinted: Int! - """ - Total supply of NFTs - """ - totalSupply: Int! - """ - Aggregate raised during sound swap sale - """ - totalVolume: String! -} - -""" -Input for Release.webEmbed -""" -input ReleaseWebEmbedInput { - """ - Customize html parameters - """ - html: IframeHtmlParameters! = { height: "288px", style: "border-radius:8px", width: "100%" } - """ - Referral address - """ - referralAddress: Address -} - -""" -Customize webapp uri parameters of release -""" -input ReleaseWebappUriInput { - """ - Referral address - """ - referralAddress: Address -} - -""" -Releases added AND removed to a playlist in the same playlist action entity -""" -type ReleasesAddedRemovedFromPlaylist implements ArtistAction & CollectorAction & Node & PlaylistAction & ReleaseAction { - """ - Releases added to playlist - """ - addedReleases( - """ - Pagination parameters - """ - pagination: PlaylistActionReleasesCursorConnectionArgs! = { after: null, first: 10, sort: ASC } - ): ReleaseConnection! - """ - Date of action - """ - date: DateTime! - """ - Action id - """ - id: ID! - """ - Total number of releases added to the playlist - """ - numAddedReleases: Int! - """ - Total number of releases removed from the playlist - """ - numRemovedReleases: Int! - """ - Shelf entity - """ - playlist: Shelf - """ - Releases removed from playlist - """ - removedReleases( - """ - Pagination parameters - """ - pagination: PlaylistActionReleasesCursorConnectionArgs! = { after: null, first: 10, sort: ASC } - ): ReleaseConnection! - """ - User corresponding to action entity - """ - user: User! -} - -""" -Releases added to playlist action entity -""" -type ReleasesAddedToPlaylist implements ArtistAction & CollectorAction & Node & PlaylistAction & ReleaseAction { - """ - New releases added to playlist - """ - addedReleases( - """ - Pagination parameters - """ - pagination: PlaylistActionReleasesCursorConnectionArgs! = { after: null, first: 10, sort: ASC } - ): ReleaseConnection! - """ - Date of action - """ - date: DateTime! - """ - Action id - """ - id: ID! - """ - Returns whether playlist was created with this action - """ - isPlaylistCreated: Boolean! - """ - Total number of releases added to the playlist - """ - numAddedReleases: Int! - """ - Shelf entity - """ - playlist: Shelf - """ - User corresponding to action entity - """ - user: User! -} - -""" -Releases added to shelf aggregate -""" -type ReleasesAddedToShelfAggregate { - """ - New releases added to shelf in an activity feed group - """ - releasesAdded: [ShelfRelease!]! - """ - Shelf that releases are added to in activity feed group - """ - shelf: Shelf -} - -""" -Pagination parameters for releases connection -""" -input ReleasesCursorConnectionArgs { - """ - Start forwards pagination since "after" cursor - """ - after: String - """ - Start backwards pagination since "before" cursor - """ - before: String - """ - Limit the amount of nodes to be fetched, to be used with "after", with a maximum of 51 nodes. - """ - first: NonNegativeInt - """ - Limit the amount of nodes to be fetched, to be used with "before", with a maximum of 51 nodes. - """ - last: NonNegativeInt - """ - Start after the first "skip" entities based. It can't be specified alongside "after" or "before" - """ - skip: NonNegativeInt - """ - Customize sort behavior of releases pagination - """ - sort: ReleasesCursorConnectionSort! = { mintStartTime: DESC } -} - -""" -Customize sort behavior of releases pagination -""" -input ReleasesCursorConnectionSort { - """ - Sort by createdAt of release - """ - createdAt: SortOrder - """ - Sort by mintStartTime of release - """ - mintStartTime: SortOrder -} - -""" -Filter releases -""" -input ReleasesCursorFilterArgs { - """ - Filter by getting releases of the artists followed by the specified user identifier - """ - artistFollowedByUser: UUID - """ - Specify up to 50 contracts to filter the releases - """ - contracts: [ContractReleaseInput!] - """ - Filters on release featured status - """ - featuredStatus: ReleaseFeaturedStatus - """ - Only get releases from specified genres - """ - genre: [String!] - """ - Remove currently-featured releases from results - """ - hideFeatured: Boolean - """ - Only get releases less or equal to than specified mint time - """ - mintTimeMaxDate: Timestamp - """ - Only get releases greater than or equal to specified mint time - """ - mintTimeMinDate: Timestamp - """ - Only get release with specified mint time status - """ - mintTimeStatus: [MintTimeStatus!] - """ - Filters on whether album releases have been revealed or not - """ - releaseAlbumRevealStatus: ReleaseAlbumRevealFilterOption - """ - Only get release with specified status - """ - releaseStatus: [ReleaseStatus!] - """ - Filters on release type - """ - releaseType: [ReleaseType!] - """ - Only get releases from specified seasons - """ - season: [ArtistSeason!] -} - -""" -Release removed from playlist entity -""" -type ReleasesRemovedFromPlaylist implements CollectorAction & Node & PlaylistAction { - """ - Date of action - """ - date: DateTime! - """ - Action id - """ - id: ID! - """ - Total number of releases removed from the playlist - """ - numRemovedReleases: Int! - """ - Shelf entity - """ - playlist: Shelf - """ - First release removed from playlist - """ - releaseRemoved: Release! - """ - Releases removed from playlist - """ - removedReleases( - """ - Pagination parameters - """ - pagination: PlaylistActionReleasesCursorConnectionArgs! = { after: null, first: 10, sort: ASC } - ): ReleaseConnection! - """ - User corresponding to action entity - """ - user: User! -} - -""" -Input for reportPlayStopped mutation -""" -input ReportPlayStoppedInput { - """ - End of play session - """ - finish: Timestamp! - """ - Duration of play in seconds - """ - listenDuration: Int! - """ - Amount of pauses on the same session - """ - pauseCount: Int! - """ - Start of play session - """ - start: Timestamp! - """ - Track UUID - """ - trackId: UUID! - """ - Random UUID generated by client-side - """ - uuid: String! -} - -""" -Reward entity -""" -type Reward { - """ - Reward description - """ - description: String! - """ - Reward identifier - """ - id: ID! - """ - Amount of backers of reward - """ - numOfBackers: Int! @deprecated(reason: "No longer used") - """ - Price of reward - """ - price: String! @deprecated(reason: "No longer used") - """ - Reward title - """ - title: String! -} - -""" -Release info upload step info -""" -type RewardUploadStepInfo { - """ - Reward description - """ - description: String! - """ - Reward name - """ - title: String! -} - -""" -Release edit info upload step info -""" -type RewardsEditStepInfo { - """ - Can collectors download audio - """ - canCollectorsDownloadAudio: Boolean - """ - Toggle for curator rewards - """ - curatorRewardsEnabled: Boolean - """ - Special golden egg images - """ - goldenEggImages: [MediaUploadStepInfo!] - """ - Custom rewards - """ - rewards: [RewardUploadStepInfo!] -} - -""" -Release info upload step info -""" -type RewardsUploadStepInfo { - """ - Can collectors download audio - """ - canCollectorsDownloadAudio: Boolean! - """ - Toggle for curator rewards - """ - curatorRewardsEnabled: Boolean! - """ - Special golden egg images - """ - goldenEggImages: [MediaUploadStepInfo!]! - """ - Custom rewards - """ - rewards: [RewardUploadStepInfo!]! -} - -""" -Release sale details -""" -type SaleDetails { - """ - Number of nfts collected during primary sale - """ - primaryCollected: Int! - """ - Aggregate raised during primary sale - """ - primaryRaisedInWei: String! - """ - Number of nfts collected during sound swap sale - """ - soundSwapCollected: Int! - """ - Aggregate raised during sound swap sale - """ - soundSwapRaisedInWei: String! - """ - Aggregate raised during sound swap sale - """ - totalVolume: String! -} - -""" -Single sale schedule information of Release Presale Configuration -""" -type SaleSchedule { - """ - Affiliate fee in basis points within schedule sales - """ - affiliateFeeBPS: Int! - """ - Percentage of affiliate fee within schedule sales - """ - affiliateFeePercent: String! - """ - Total minted for specific sale schedule associated with artist contracts. To not be used for new editions - """ - artistContractTotalMinted: Int - """ - End Time of Sale Schedule - """ - endTime: DateTime! - """ - UUID of Sale Schedule entity - """ - id: ID! - """ - Is the current sale schedule presale - """ - isPresale: Boolean! - """ - Amount to be allowed to be sold for sale schedule - """ - maxMintable: Int! - """ - Merkle tree root hash derived from sale schedule allowlist - """ - merkleTreeRoot: String - """ - Mint id for the minter config - """ - mintId: Int - """ - Minter contract address for the schedule - """ - minterAddress: String - """ - Price for the specific sale schedule - """ - price: String! - """ - Start Time of Sale Schedule - """ - startTime: DateTime! -} - -""" -Sam configuration within edition -""" -type SamConfig { - """ - Fee BPS applied for share affiliate - """ - affiliateFeeBPS: Int! - """ - Fee in percent applied for share affiliate - """ - affiliateFeePercent: String! - """ - Artist fee BPS - """ - artistFeeBPS: Int! - """ - Artist fee in percent - """ - artistFeePercent: String! - """ - Base price - """ - basePrice: String! - """ - When is the SAM to be frozen and not allow purchases - """ - buyFreezeTime: Timestamp! - """ - Fee BPS applied for golden egg holders - """ - goldenEggFeeBPS: Int! - """ - Fee in percent applied for share affiliate - """ - goldenEggFeePercent: String! - """ - SAM edition configuration identifier - """ - id: ID! - """ - Inflection point - """ - inflectionPoint: Int! - """ - Inflection price - """ - inflectionPrice: String! - """ - Max supply of tokens that SAM can provide - """ - maxSupply: Int! - """ - Fee BPS applied for platform - """ - platformFeeBPS: Int! - """ - Flat fee applied for platform per transaction - """ - platformPerTxFlatFee: String! - """ - SAM Contract address - """ - samAddress: String! -} - -""" -Edition schedule identifiers, used to optimize chain calls -""" -type ScheduleIdentifier { - """ - Identifier of schedules by minter address - """ - mintIds: [Int!]! - """ - Minter address of schedule - """ - minterAddress: String! -} - -""" -Pagination arguments for search -""" -input SearchConnectionArgs { - """ - Start forwards pagination since "after" cursor - """ - after: String - """ - Limit the amount of nodes to be fetched, to be used with "after", with a maximum of 20 nodes. - """ - first: PositiveInt! = 10 -} - -""" -Input for "search" query -""" -input SearchInput { - """ - How many entities to be fetched for fixed lists, maximum of 20 - """ - limit: PositiveInt! = 5 - """ - Text search - """ - text: String! -} - -""" -Search result -""" -type SearchResult { - """ - Artists that match the search input, including artists where any of their releases matches the given input - """ - artists( - """ - How many artists to be fetched, maximum of 20 - """ - limit: PositiveInt - ): [Artist!]! - """ - Paginated artists that match the search input, including artists where any of their releases matches the given input - """ - artistsPaginated( - """ - Pagination parameters - """ - pagination: SearchConnectionArgs! = { after: null, first: 10 } - ): ArtistConnection! - """ - Paginated collectors that match the search input within the ens, twitter handle, displayName and publicAddress - """ - collectors( - """ - Pagination parameters - """ - pagination: SearchConnectionArgs! = { after: null, first: 10 } - ): UserConnection! - """ - Unique identifier of search result - """ - id: ID! - """ - Releases that match the search input, including releases where the artist name matches the given input - """ - releases( - """ - Filter the releases to be searched - """ - filter: ReleaseSearchFilter - """ - How many releases to be fetched, maximum of 20 - """ - limit: PositiveInt - ): [Release!]! - """ - Paginated releases that match the search input, including releases where the artist name matches the given input - """ - releasesPaginated( - """ - Filter the releases to be searched - """ - filter: ReleaseSearchFilter - """ - Pagination parameters - """ - pagination: SearchConnectionArgs! = { after: null, first: 10 } - ): ReleaseConnection! - """ - Paginated shelves that match the search input within the shelf name, releases titles and artists names - """ - shelves( - """ - Pagination parameters - """ - pagination: SearchConnectionArgs! = { after: null, first: 10 } - ): ShelfConnection! -} - -""" -Collector release added to playlist action entity -""" -type SecondarySale implements ArtistAction & CollectorAction & Node & ReleaseAction { - """ - Amount paid in Wei for secondary sale - """ - amountPaidInWei: String! - """ - Date of action - """ - date: DateTime! - """ - Starting token ID of NFT for bonding curve sale purchase - """ - fromTokenId: Int! - """ - Action id - """ - id: ID! - """ - User that nft was purchased from for secondary sale action - """ - purchasedFromUser: User! - """ - Number of sequential tokens purchased - """ - quantity: Int! - """ - Release corresponding to collector secondary sale action entity - """ - release: Release! - """ - Serial number of nft secondary sale purchase - """ - serialNumber: Int! - """ - Ending token ID of NFT for bonding curve sale purchase - """ - toTokenId: Int! - """ - User corresponding to collector action entity - """ - user: User! -} - -""" -Semantic version string -""" -scalar SemanticVersion - -""" -Shelf entity -""" -type Shelf implements Node { - """ - Top 4 releases to be used as cover for shelf - """ - coverReleases: [Release!]! - """ - Shelf creation date - """ - createdAt: DateTime! - """ - Shelf deletion date - """ - deletedAt: DateTime - """ - Description of shelf - """ - description: String - """ - Return shelves from where it was possibly extended. If the source shelf is not currently available, it's returned as null - """ - extendedFrom: [Shelf] - """ - Shelf identifier - """ - id: ID! - """ - Relative ordering of the shelves for each user - """ - index: Int! - """ - Paginate through users who like this shelf. - """ - likedBy( - """ - Pagination parameters - """ - pagination: CursorConnectionArgs! = { first: 10, sort: DESC } - ): UserConnection! - """ - Number of likes for the shelf. - """ - likes: Int! - """ - Link slug used to reference and request specific shelf - """ - linkSlug: String! - """ - Shelf name - """ - name: String! - """ - Paginated releases of shelf ordered depending on shelfType - """ - orderedReleases( - """ - Pagination parameters - """ - pagination: ShelfOrderedReleaseCursorConnectionArgs! = { first: 10 } - ): ShelfReleaseConnection! - """ - Total play time of all releases in a shelf in seconds - """ - playTimeInSeconds: Int! - """ - Top 4 releases to be used as preview for shelf - """ - previewReleases: [ShelfRelease!]! - """ - Number of releases in a shelf - """ - releaseCount: Int! - """ - List of release identifiers in the shelf ordered depending on shelfType - """ - releaseIds( - """ - Customize release ids order - """ - sort: ShelfReleasesSort! = { index: ASC } - ): [String!]! - """ - List of track identifiers in the shelf ordered depending on shelfType - """ - trackIds( - """ - Customize track ids order - """ - sort: ShelfReleasesSort! = { index: ASC } - ): [String!]! - """ - Type of shelf - """ - type: ShelfType! - """ - Owner of shelf - """ - user: User! - """ - Web HTML iframe embed - """ - webEmbed( - """ - Input for Shelf web embed - """ - input: ShelfWebEmbedInput! = { - html: { - height: "355px" - style: "border-radius: 8px; box-shadow: 0px 6px 16px 1px rgba(0, 0, 0, 0.08);" - width: "100%" - } - } - ): String! - """ - Webapp URI of Shelf - """ - webappUri: String! -} - -""" -Paginated shelves connection -""" -type ShelfConnection implements Connection { - """ - Edges of current page - """ - edges: [ShelfConnectionEdge!]! - """ - Pagination helpers information - """ - pageInfo: PageInfo! -} - -""" -Shelf Node edge -""" -type ShelfConnectionEdge implements Edge { - """ - Cursor to be used for pagination - """ - cursor: String! - """ - Shelf Entity - """ - node: Shelf! -} - -""" -Shelf created aggregate -""" -type ShelfCreatedAggregate { - """ - Shelf creation action in activity feed group - """ - shelf: Shelf -} - -""" -Cursor connection parameters for shelves -""" -input ShelfCursorConnectionArgs { - """ - Start forwards pagination since "after" cursor - """ - after: String - """ - Start backwards pagination since "before" cursor - """ - before: String - """ - Limit the amount of nodes to be fetched, to be used with "after", with a maximum of 51 nodes. - """ - first: NonNegativeInt - """ - Limit the amount of nodes to be fetched, to be used with "before", with a maximum of 51 nodes. - """ - last: NonNegativeInt - """ - Customize sort behavior - """ - sort: ShelfCursorConnectionSort! = { index: ASC } -} - -""" -Customize the sort behavior of shelves pagination -""" -input ShelfCursorConnectionSort { - """ - Sort by created at date - """ - createdAt: SortOrder - """ - Sort by shelf index value - """ - index: SortOrder -} - -""" -Cursor connection parameters for shelf ordered releases -""" -input ShelfOrderedReleaseCursorConnectionArgs { - """ - Start forwards pagination since "after" cursor - """ - after: String - """ - Start backwards pagination since "before" cursor - """ - before: String - """ - Limit the amount of nodes to be fetched, to be used with "after", with a maximum of 51 nodes. - """ - first: NonNegativeInt - """ - Limit the amount of nodes to be fetched, to be used with "before", with a maximum of 51 nodes. - """ - last: NonNegativeInt -} - -""" -Shelf release entity -""" -type ShelfRelease implements Node { - """ - Date of release being added in shelf - """ - addedAt: Timestamp! - """ - Shelf Release identifier - """ - id: ID! - """ - Index of release within shelf - """ - index: Int! - """ - First backed nft of possibly collected release - """ - ownedFirstNft: Nft - """ - Returns golden egg if user owns, otherwise null - """ - ownedGoldenEgg: EggGame - """ - List of possibly owned nft serial numbers in ascending serial number order. If user does not own the release, it returns null - """ - ownedSerialNumbers: [Int!] - """ - Release of the shelf - """ - release: Release! -} - -""" -Paginated shelf release connection -""" -type ShelfReleaseConnection implements Connection { - """ - Edges of current page - """ - edges: [ShelfReleaseConnectionEdge!]! - """ - Pagination helpers information - """ - pageInfo: PageInfo! -} - -""" -Shelf release node edge -""" -type ShelfReleaseConnectionEdge implements Edge { - """ - Cursor to be used for pagination - """ - cursor: String! - """ - Shelf release entity - """ - node: ShelfRelease! -} - -""" -Customize sort behavior of shelf releases -""" -input ShelfReleasesSort { - """ - Sort by release added to shelf date - """ - addedToShelfDate: SortOrder - """ - Sort by release index of shelf - """ - index: SortOrder! = ASC -} - -""" -Shelf type -""" -enum ShelfType { - DEFAULT - USER_LIKED_SOUNDS -} - -""" -Filter based the type of shelf -""" -enum ShelfTypeFilter { - ALL - LIKED - USER_CREATED -} - -""" -Input for Shelf.webEmbed -""" -input ShelfWebEmbedInput { - """ - Customize html parameters - """ - html: IframeHtmlParameters! = { - height: "355px" - style: "border-radius: 8px; box-shadow: 0px 6px 16px 1px rgba(0, 0, 0, 0.08);" - width: "100%" - } -} - -""" -Song collected by many aggregate -""" -type SongCollectedByManyAggregate { - """ - Release corresponding to most recent purchase action in activity feed group - """ - collectedRelease: ActivityFeedGroupCollectedRelease! - """ - Featured collectors that purchased same release in an activity feed group - """ - featuredCollectors: [ActivityFeedGroupFeaturedCollector!]! - """ - Number of collectors that purchased same release in an activity feed group - """ - numCollectors: Int! -} - -""" -Key the release was written in -""" -enum SongKeyType { - A_FLAT_MAJOR - A_MAJOR - A_MINOR - B_FLAT_MAJOR - B_FLAT_MINOR - B_MAJOR - B_MINOR - C_MAJOR - C_MINOR - C_SHARP_MINOR - D_FLAT_MAJOR - D_MAJOR - D_MINOR - E_FLAT_MAJOR - E_FLAT_MINOR - E_MAJOR - E_MINOR - F_MAJOR - F_MINOR - F_SHARP_MAJOR - F_SHARP_MINOR - G_MAJOR - G_MINOR - G_SHARP_MINOR -} - -""" -Ascending or Descending sort -""" -enum SortOrder { - ASC - DESC -} - -""" -Splits contract earnings -""" -type SplitsContractEarning { - """ - Users split of eth on the contract - """ - balanceForUser: String! - """ - Address of the split wallet - """ - contractAddress: String! - """ - Distributor fee of the split - """ - distributorFee: Int! - """ - List of addresses that are on the split. Sorted for passing into distributeEth transaction - """ - participantAddresses: [String!]! - """ - List of allocations for each participant. Matches ordering of participantAddresses - """ - participantAllocations: [Int!]! - """ - Total eth on the contract - """ - totalBalance: String! -} - -""" -Splits upload step info -""" -type SplitsUploadStepInfo { - """ - Split contract address - """ - splitContractAddress: String - """ - Splits auction configurations - """ - splits: [CreditAllocationUploadStepInfo!]! -} - -""" -Realtime Subscriptions -""" -type Subscription { - """ - Subscribe to new activity feed groups added to a particular activity feed - """ - activityFeedNewGroup( - """ - Activity Feed identifier - """ - activityFeedId: UUID! - ): SubscriptionNewActivityFeedGroup! - count(n: Int! = 5): Int! - """ - Subscribe to updates of release collectors - """ - releaseCollectorUpdates( - """ - Release identifier - """ - releaseId: UUID! - ): ReleaseCollectorUpdates! - """ - Subscribe to NFTs comments updates of specified release - """ - releaseNftCommentUpdate( - """ - Release identifier - """ - releaseId: UUID! - ): [ReleaseNftWithCommentUpdate!]! - """ - Subscribe to NFTs updates of specified release - """ - releaseNftUpdate( - """ - Release identifier - """ - releaseId: UUID! - ): [ReleaseNftUpdate!]! - """ - Subscribe to release updates - """ - releaseUpdates( - """ - Release identifier - """ - id: UUID! - ): ReleaseUpdates! -} - -""" -Entity of new activity feed group created -""" -type SubscriptionNewActivityFeedGroup { - """ - New activity feed group id created - """ - activityFeedGroupId: String! - """ - Typename of activity feed group information - """ - activityFeedGroupInformationTypename: String! -} - -""" -Info for supported versions -""" -type SupportedVersion implements VersionStatusResponseInterface { - """ - Recommended version - """ - recommendedVersion: String! -} - -""" -Time period to aggregate trending table queries -""" -enum TimePeriodAggEnum { - ALL_TIME - ONE_DAY - ONE_MONTH - SEVEN_DAY -} - -""" -The javascript `Date` as integer. Type represents date and time as number of milliseconds from start of UNIX epoch. -""" -scalar Timestamp - -""" -Input for top affiliate curators query -""" -input TopAffiliateCuratorsInput { - """ - Limit the amount to be returned, Up to 100 - """ - limit: PositiveInt! = 100 - """ - Sort logic used - """ - sort: TopCuratorsSortEnum! - """ - For what time period the data should come from - """ - timePeriod: TopChartTimePeriodEnum! -} - -""" -Input for top artists query -""" -input TopArtistsInput { - """ - Limit the amount to be returned, Up to 100 - """ - limit: PositiveInt! = 100 - """ - Sort logic used - """ - sort: TrendingArtistsSortEnum! - """ - For what time period the data should come from - """ - timePeriod: TopChartTimePeriodEnum! -} - -""" -Time period to aggregate top chart queries -""" -enum TopChartTimePeriodEnum { - ALL_TIME - SEVEN_DAY - THIRTY_DAY -} - -enum TopCuratorsSortEnum { - MINTS - SOUNDS_REFERRED - TOTAL_AFFILIATE_EARNED - TOTAL_VOLUME -} - -""" -Input for topPlaylists query -""" -input TopPlaylistsInput { - """ - Limit the amount to be returned, Up to 100 - """ - limit: PositiveInt! = 100 - """ - Sort logic used - """ - sort: TrendingPlaylistsSortEnum! - """ - For what time period the data should come from - """ - timePeriod: TimePeriodAggEnum! -} - -""" -Top Release Collector -""" -type TopReleaseCollector { - """ - Date of first nft collected - """ - firstNftCollectedDate: DateTime! - """ - Lowest serial number of collected nfts - """ - lowestNftSerialNumber: Int! - """ - Amount of collected nfts - """ - nftsCount: Int! - """ - Position of collector on top list - """ - position: Int! - """ - User entity of collector - """ - user: User! -} - -""" -Total raised on Ethereum and USD -""" -type TotalRaisedPlatform { - """ - Total Ethereum in wei raised on platform - """ - ethInWei: String! - """ - Total USD raised on platform - """ - usd: Float! -} - -""" -Track entity -""" -type Track { - """ - Audio of Track - """ - audio: AudioMedia! - """ - Duration in seconds - """ - duration: Int! - """ - Track identifier - """ - id: ID! - """ - Normalized peaks of song - """ - normalizedPeaks: [Int!]! - """ - Track's Release - """ - release: Release! - """ - Release Identifier - """ - releaseId: ID! - """ - Track audio post-reveal of release - """ - revealedAudio: Media @deprecated(reason: "Use 'audio' instead") - """ - Track audio post-reveal for all encodings - """ - revealedAudioMedia: AudioMedia @deprecated(reason: "Use 'audio' instead") - """ - Track original audio (non-transcoded) post-reveal of release - """ - revealedAudioOriginal: Media @deprecated(reason: "Use 'audio' instead") - """ - Track title - """ - title: String! - """ - Track number relative to other tracks (unused) - """ - trackNumber: Int! -} - -""" -Track audio -""" -type TrackAudio { - """ - Track audio, transcoded version if available - """ - audio: Media! - """ - Track audio media, including encodings if available - """ - audioMedia: AudioMedia! - """ - Track audio, original non-transcoded version - """ - audioOriginal: Media! - """ - Track duration in seconds - """ - duration: Int! - """ - Track identifier - """ - id: ID! - """ - Release entity of track - """ - release: Release! - """ - Release identifier - """ - releaseId: ID! - """ - Reveal time in UNIX timestamp of track based on authenticated user (if authenticated) - """ - revealTime: Int! @deprecated(reason: "Audio is always revealed") -} - -""" -Release info upload step info -""" -type TrackUploadStepInfo { - """ - Details of uploaded track cover image - """ - coverImage: MediaUploadStepInfo - """ - Duration of track in seconds - """ - duration: Int! - """ - Details of uploaded track file - """ - fileDetail: MediaUploadStepInfo! - """ - Normalized peaks of track - """ - normalizedPeaks: [Int!]! - """ - Title - """ - title: String! -} - -""" -Trending Artist Info -""" -type TrendingArtistInfo { - """ - Artist entity - """ - artist: Artist - """ - Artist identifier - """ - artistId: ID! - """ - Amount of NFTs sold - """ - nftsSold: Int! - """ - Primary sales of artist in Wei - """ - primarySales: String! - """ - Primary sales of artist in USD - """ - primarySalesUsd: Float! - """ - Secondary sales of artist in Wei - """ - secondarySales: String! - """ - Secondary sales of artist in USD - """ - secondarySalesUsd: Float! - """ - Sum of primary and secondary sales in Wei - """ - totalSales: String! - """ - Sum of primary and secondary sales in USD - """ - totalSalesUsd: Float! - """ - Amount of unique collectors - """ - uniqueCollectors: Int! -} - -""" -Type of sort parameter used for trending artists -""" -enum TrendingArtistsSortEnum { - NFTS_SOLD - PRIMARY_SALES - SECONDARY_SALES - TOTAL_SALES - UNIQUE_COLLECTORS -} - -""" -Trending Collector information -""" -type TrendingCollectorInfo { - """ - Amount of unique creators supported - """ - creatorsSupported: Int! - """ - Amount of NFTs bought - """ - nftsBought: Int! - """ - Total spent in Wei - """ - totalSpent: String! - """ - Total spent in USD - """ - totalSpentUsd: Float! - """ - Collector user entity - """ - user: User - """ - User public address of the collector - """ - userAddress: String! -} - -""" -Type of sort paratemer used for trending collectors -""" -enum TrendingCollectorsSortEnum { - CREATORS_SUPPORTED - NFTS_BOUGHT - TOTAL_SPENT -} - -""" -Trending indicator type -""" -enum TrendingIndicator { - DOWN - NEW - SAME - UP -} - -""" -Trending Playlist Info -""" -type TrendingPlaylistInfo { - """ - Amount of likes for playlist - """ - numLikes: Int! - """ - Playlist entity - """ - playlist: Shelf! -} - -""" -Type of sort paratemer used for trending playlists -""" -enum TrendingPlaylistsSortEnum { - LIKES -} - -""" -Trending Release Info -""" -type TrendingReleaseInfo { - """ - Amount of NFTs sold - """ - nftsSold: Int! - """ - Primary sales of release in Wei - """ - primarySales: String! - """ - Primary sales of release in USD - """ - primarySalesUsd: Float! - """ - release entity - """ - release: Release! - """ - Secondary sales of release in Wei - """ - secondarySales: String! - """ - Secondary sales of release in USD - """ - secondarySalesUsd: Float! - """ - Sum of primary and secondary sales in Wei - """ - totalSales: String! - """ - Sum of primary and secondary sales in USD - """ - totalSalesUsd: Float! - """ - Amount of unique collectors - """ - uniqueCollectors: Int! -} - -""" -Type of sort paratemer used for trending releases -""" -enum TrendingReleasesSortEnum { - NFTS_SOLD - PRIMARY_SALES - SECONDARY_SALES - TOTAL_SALES - UNIQUE_COLLECTORS -} - -""" -User relation type -""" -enum TypeOfRelation { - FOLLOWING -} - -""" -UUID v4 -""" -scalar UUID - -""" -User entity -""" -type User implements Node { - """ - Optional artist entity for users with artist profile - """ - artist: Artist - """ - User avatar - """ - avatar: Media - """ - Artists backed by user - """ - backedArtists( - """ - Pagination parameters - """ - pagination: ArtistCollectorCursorConnectionArgs! = { after: null, first: 10, sort: { nftsCount: DESC } } - ): ArtistCollectorConnection! - """ - Banner image for user profile - """ - bannerImage: Media - """ - Paginated collected releases of user - """ - collectedReleases( - """ - Filter the collected releases of the user - """ - filter: UserCollectedReleasesFilter - """ - Pagination parameters - """ - pagination: CursorConnectionArgs! = { first: 10, sort: DESC } - ): CollectedReleaseConnection! - """ - Total amount of collected release of user - """ - collectedReleasesCount: Int! - """ - List of all the identifiers of releases currently collected by the user. If no releases have been collected yet, it returns null instead of an empty list - """ - collectedReleasesIds: [String!] - """ - Rank of user for number of bought nfts - """ - collectorPosition: Int - """ - User entity creation - """ - createdAt: DateTime! - """ - Credit allocations associated with user - """ - creditAllocations: [CreditAllocation!]! - """ - Delegate wallet public address - """ - delegateWalletAddress: String - """ - User custom description - """ - description: String - """ - Custom display name - """ - displayName: String - """ - Optional user email - """ - email: String - """ - User's ethereum name service domain - """ - ens: String - """ - List of releases in featured sounds - """ - featuredReleases: [CollectedRelease!] - """ - List of releases in featured sounds - """ - featuredSounds: [CollectedRelease!]! @deprecated(reason: "Use User.featuredReleases instead") - """ - How many followers a user has - """ - followerCount: Int! - """ - Paginated followers of user - """ - followers( - """ - Pagination parameters - """ - pagination: CursorConnectionArgs! = { first: 10, sort: DESC } - ): UserRelationConnection! - """ - Paginated following of user - """ - following( - """ - Pagination parameters - """ - pagination: CursorConnectionArgs! = { first: 10, sort: DESC } - ): UserRelationConnection! - """ - How many users a user is following - """ - followingCount: Int! - """ - Does the user have the artist role to be able to have an artist profile - """ - hasArtistRole: Boolean! @deprecated(reason: "No longer relevant with new artist verification") - """ - Returns whether user has at least one shelf with at least one release - """ - hasShelfWithItems: Boolean! - """ - User UUID - """ - id: ID! - """ - User instagram handle - """ - instagramHandle: String - """ - Is top notable collector - """ - isTopNotableCollector: Boolean! - """ - Last tracked referral withdrawable balance. Only available for own authenticated user - """ - lastReferralWithdrawableBalance: String - """ - An autogenerated playlist that contains all the releases the user liked - """ - likedSounds: Shelf - """ - User provided location - """ - location: GeoLocationPlaceGoogle - """ - How many nfts a user owns - """ - nftsOwned: Int! - """ - Paginated NFTs owned by user - """ - nftsPaginated( - """ - Filter the NFTs to be requested - """ - filter: UserNftsConnectionFilters - """ - Pagination parameters - """ - pagination: NftCursorConnectionArgs! = { after: null, first: 30, sort: { secondarySaleDate: DESC } } - ): NftConnection! - """ - Nonce for authentication purposes - """ - nonce: Int! - """ - Number of artists backed by user - """ - numBackedArtists: Int! - """ - Wallet public address - """ - publicAddress: String! - """ - Possible roles for user - """ - roles: UserRoles! - """ - Paginated shelves of user - """ - shelves( - """ - Filter the shelves of the user - """ - filter: UserShelvesFilter! = { type: USER_CREATED } - """ - Pagination parameters - """ - pagination: ShelfCursorConnectionArgs! = { after: null, first: 5, sort: { index: ASC } } - ): ShelfConnection! - """ - Shelves count of the user - """ - shelvesCount( - """ - Filter the shelves of the user - """ - filter: UserShelvesFilter! = { type: USER_CREATED } - ): Int! - """ - Should the user show the splits feature - """ - showSplitsFeature: Boolean! - """ - Rank of user for total number of bought nfts with secondary sort on total spent. Rank is capped at 200. - """ - topCollectorPosition: Int - """ - Verifier twitter handle - """ - twitterHandle: String - """ - Returns user username - """ - username: String! - """ - Webapp URI of User. - """ - webappUri: String! -} - -""" -User collected many songs aggregate -""" -type UserCollectedManySongsAggregate { - """ - Releases corresponding to user collected many songs activity feed group - """ - collectedReleases: [ActivityFeedGroupCollectedRelease!]! - """ - Set of the distinct market classifications grouped in the aggregate - """ - collectionTypes: [CollectionMarketType!]! - """ - Number of releases that a user purchased in an activity feed group - """ - numReleases: Int! - """ - User that collected many songs in activity feed group - """ - user: User! -} - -""" -Filter of User.collectedReleases paginated field -""" -input UserCollectedReleasesFilter { - """ - Filters on whether album releases have been revealed or not - """ - releaseAlbumRevealStatus: ReleaseAlbumRevealFilterOption! = ALL - """ - Text search on release title or artist's name or handle - """ - text: NonEmptyString - """ - Filters on release type - """ - type: [ReleaseType!] -} - -""" -Paginated connection of Users -""" -type UserConnection implements Connection { - """ - Edges of current page - """ - edges: [UserConnectionEdge!]! - """ - Pagination helpers information - """ - pageInfo: PageInfo! -} - -""" -Edge of User Connection -""" -type UserConnectionEdge implements Edge { - """ - Cursor to be used for pagination - """ - cursor: String! - """ - User node - """ - node: User! -} - -""" -Cursor connection parameters -""" -input UserCursorConnectionArgs { - """ - Start forwards pagination since "after" cursor - """ - after: String - """ - Start backwards pagination since "before" cursor - """ - before: String - """ - Limit the amount of nodes to be fetched, to be used with "after", with a maximum of 51 nodes. - """ - first: NonNegativeInt - """ - Limit the amount of nodes to be fetched, to be used with "before", with a maximum of 51 nodes. - """ - last: NonNegativeInt - """ - Sort the users ascending or descending relative to the user creation date - """ - sort: SortOrder! = ASC -} - -""" -User liked shelf aggregate -""" -type UserLikedPlaylistAggregate { - """ - Shelf that the user liked. Can be NULL if the shelf is no longer liked by the user or deleted by the owner - """ - shelf: Shelf - """ - User that liked the shelf - """ - user: User! -} - -""" -User liked releases aggregate -""" -type UserLikedSongsAggregate { - """ - Releases liked in an activity feed group - """ - releasesLiked: [ShelfRelease!]! - """ - Shelf that releases are added to in activity feed group - """ - shelf: Shelf - """ - User that liked the releases - """ - user: User! -} - -""" -Filter the NFTs of User -""" -input UserNftsConnectionFilters { - """ - Only include Nfts from specified releases - """ - releases: [UUID!] -} - -""" -User relation entity -""" -type UserRelation implements Node { - """ - User relation creation date - """ - createdAt: DateTime! - """ - User relation identifier - """ - id: ID! - """ - Type of user relation - """ - relation: TypeOfRelation! - """ - UserA of relation - """ - userA: User! - """ - UserB of relation - """ - userB: User! -} - -""" -Paginated user relation connection -""" -type UserRelationConnection implements Connection { - """ - Edges of current page - """ - edges: [UserRelationConnectionEdge!]! - """ - Pagination helpers information - """ - pageInfo: PageInfo! -} - -""" -User Relation Node edge -""" -type UserRelationConnectionEdge implements Edge { - """ - Cursor to be used for pagination - """ - cursor: String! - """ - User Relation Entity - """ - node: UserRelation! -} - -""" -Roles available for users -""" -type UserRoles { - """ - Administrator of platform - """ - isAdmin: Boolean! - """ - Member of artist relations team - """ - isArtistRelations: Boolean! -} - -""" -Filter the shelves of a user -""" -input UserShelvesFilter { - """ - Case-insensitive text search on shelves names - """ - text: NonEmptyString - """ - Filter by different types of shelves available for users. - """ - type: ShelfTypeFilter! = USER_CREATED -} - -""" -Exchanged amount pretty equivalent -""" -type ValueExchangedPrettyType { - """ - Formatted Ethereum value - """ - eth: String! -} - -""" -Input of VersionSupported query -""" -input VersionStatusInput { - """ - Platform type - """ - platform: PlatformType! - """ - Semantic version - """ - version: SemanticVersion! -} - -""" -Union of version status response types -""" -union VersionStatusResponse = NotSupportedVersion | SupportedVersion - -""" -Version status response interface -""" -interface VersionStatusResponseInterface { - """ - Recommended version - """ - recommendedVersion: String! -} - -""" -Represents NULL values -""" -scalar Void diff --git a/packages/sdk/src/index.ts b/packages/sdk/src/index.ts index 78c2e680..336ce12b 100644 --- a/packages/sdk/src/index.ts +++ b/packages/sdk/src/index.ts @@ -1,4 +1 @@ -export { SoundClient } from './client/main' - -export * as Errors from './errors' -export * from './types' +export {} diff --git a/packages/sdk/test/client.test.ts b/packages/sdk/test/client.test.ts deleted file mode 100644 index b1d7f13b..00000000 --- a/packages/sdk/test/client.test.ts +++ /dev/null @@ -1,3015 +0,0 @@ -import assert from 'assert' -import { expect } from 'chai' -import { randomUUID } from 'crypto' -import { ethers } from 'hardhat' - -import { BigNumber } from '@ethersproject/bignumber' -import { Wallet } from '@ethersproject/wallet' -import { loadFixture } from '@nomicfoundation/hardhat-network-helpers' -import { SoundEditionV1__factory } from '@soundxyz/sound-protocol-v1-0/typechain/index' -import { SoundEditionV1_1__factory } from '@soundxyz/sound-protocol-v1-1/typechain/index' -import { - type MerkleDropMinter, - MerkleDropMinter__factory, - type MerkleDropMinterV2, - MerkleDropMinterV2__factory, - type RangeEditionMinter, - RangeEditionMinter__factory, - type RangeEditionMinterV2, - RangeEditionMinterV2__factory, - type SAM, - SAM__factory, - type SoundCreatorV1, - SoundCreatorV1__factory, - SoundEditionV1_2__factory, - SoundFeeRegistry__factory, -} from '@soundxyz/sound-protocol/typechain/index' -import { mintInfosFromMinter } from '../src/client/edition/schedules' -import { SoundClient } from '../src/client/main' -import { - InvalidAddressError, - InvalidEditionMaxMintableError, - InvalidMaxMintableError, - InvalidMaxMintablePerAccountError, - InvalidMerkleRootError, - InvalidQuantityError, - InvalidTimeValuesError, - MissingMerkleProvider, - MissingSoundAPI, - NotEligibleMint, - SoundNotFoundError, -} from '../src/errors' -import { - ContractErrorName, - MINT_GAS_LIMIT_MULTIPLIER, - MINTER_ROLE, - NON_NULL_ADDRESS, - NULL_ADDRESS, - NULL_BYTES32, - UINT32_MAX, -} from '../src/utils/constants' -import { getSaltAsBytes32, scaleAmount } from '../src/utils/helpers' -import { - didntThrowExpectedError, - getGenericEditionConfig, - getGenericMerkleMintConfig, - getGenericRangeMintConfig, - MerkleTestHelper, - mineBlock, - now, - setAutoMine, -} from './helpers' -import { MockAPI } from './helpers/api' -import { BAD_ADDRESS, DEFAULT_SALT, EDITION_MAX, ONE_HOUR, PRICE, SOUND_FEE } from './test-constants' - -import type { SignerWithAddress } from '@nomiclabs/hardhat-ethers/signers' -import type MerkleTree from 'merkletreejs' - -import type { ContractCall, MintConfig, MintSchedule } from '../src/types' -const SoundCreatorV1 = new SoundCreatorV1__factory() -const SoundFeeRegistry = new SoundFeeRegistry__factory() -const RangeEditionMinter = new RangeEditionMinter__factory() -const RangeEditionMinterV2 = new RangeEditionMinterV2__factory() -const MerkleDropMinter = new MerkleDropMinter__factory() -const MerkleDropMinterV2 = new MerkleDropMinterV2__factory() -const SamMinter = new SAM__factory() - -let client: SoundClient -let soundCreator: SoundCreatorV1 -let precomputedEditionAddress: string -let merkleDropMinter: MerkleDropMinter -let merkleDropMinterV2: MerkleDropMinterV2 -let rangeEditionMinter: RangeEditionMinter -let rangeEditionMinterV2: RangeEditionMinterV2 -let samMinter: SAM -let signers: SignerWithAddress[] -let soundWallet: SignerWithAddress -let artistWallet: SignerWithAddress -let buyerWallet: SignerWithAddress -let buyer2Wallet: SignerWithAddress - -/********************************************************* - SETUP - ********************************************************/ - -async function deployProtocol() { - // NOTE: DO NOT CHANGE THE ORDER OF THESE DEPLOYMENTS - it will make the tests fail because - // the addresses are deterministically generated based on the order of deployment - - // Deploy edition implmementation - const SoundEditionV1_2 = new SoundEditionV1_2__factory() - const soundEditionV1_2Imp = await SoundEditionV1_2.connect(soundWallet).deploy() - - const SoundEditionV1_1 = new SoundEditionV1_1__factory() - const soundEditionV1_1Imp = await SoundEditionV1_1.connect(soundWallet).deploy() - const soundCreatorV1_1 = await SoundCreatorV1.connect(soundWallet).deploy(soundEditionV1_1Imp.address) - - const SoundEditionV1_0 = new SoundEditionV1__factory() - const soundEditionV1_0Imp = await SoundEditionV1_0.connect(soundWallet).deploy() - const soundCreatorV1_0 = await SoundCreatorV1.connect(soundWallet).deploy(soundEditionV1_0Imp.address) - - // Deploy & initialize creator - - const soundCreator = await SoundCreatorV1.connect(soundWallet).deploy(soundEditionV1_2Imp.address) - const feeRegistry = await SoundFeeRegistry.connect(soundWallet).deploy(NON_NULL_ADDRESS, SOUND_FEE) - - // Deploy minters - const merkleDropMinter = await MerkleDropMinter.connect(soundWallet).deploy(feeRegistry.address) - const merkleDropMinterV2 = await MerkleDropMinterV2.connect(soundWallet).deploy() - - const rangeEditionMinter = await RangeEditionMinter.connect(soundWallet).deploy(feeRegistry.address) - const rangeEditionMinterV2 = await RangeEditionMinterV2.connect(soundWallet).deploy() - - // SAM minter - const samMinter = await SamMinter.connect(soundWallet).deploy() - - await samMinter.setApprovedEditionFactories([soundCreator.address]) - - expect(await samMinter.approvedEditionFactories()).includes(soundCreator.address) - - // Get precomputed edition address using default salt - const [precomputedEditionAddress, _] = await soundCreator.soundEditionAddress(artistWallet.address, DEFAULT_SALT) - - return { - soundCreator, - precomputedEditionAddress, - merkleDropMinter, - merkleDropMinterV2, - rangeEditionMinter, - rangeEditionMinterV2, - samMinter, - SoundEditionV1_2, - soundEditionV1_2Imp, - SoundEditionV1_1, - soundEditionV1_1Imp, - soundCreatorV1_1, - SoundEditionV1_0, - soundEditionV1_0Imp, - soundCreatorV1_0, - } -} - -beforeEach(async () => { - signers = await ethers.getSigners() - soundWallet = signers[0] - artistWallet = signers[1] - buyerWallet = signers[2] - buyer2Wallet = signers[3] - - const fixture = await loadFixture(deployProtocol) - - soundCreator = fixture.soundCreator - precomputedEditionAddress = fixture.precomputedEditionAddress - merkleDropMinter = fixture.merkleDropMinter - merkleDropMinterV2 = fixture.merkleDropMinterV2 - rangeEditionMinter = fixture.rangeEditionMinter - rangeEditionMinterV2 = fixture.rangeEditionMinterV2 - samMinter = fixture.samMinter - - client = SoundClient({ - provider: ethers.provider, - soundAPI: MockAPI(), - }) -}) - -/** - * Sets up an edition and mint schedules. - */ -export async function setupTest({ minterCalls = [] }: { minterCalls?: ContractCall[] }) { - const editionInterface = new ethers.utils.Interface(SoundEditionV1_1__factory.abi) - const editionInitData = editionInterface.encodeFunctionData('initialize', [ - 'Song Name', - 'SYMBOL', - NULL_ADDRESS, - 'https://baseURI.com', - 'https://contractURI.com', - NON_NULL_ADDRESS, - 0, //royaltyBPS, - EDITION_MAX, // maxMintableLower - EDITION_MAX, // maxMintableUpper - UINT32_MAX, // cutoffTime - 2, - ]) - const [editionAddress, _] = await soundCreator.soundEditionAddress(artistWallet.address, DEFAULT_SALT) - - const grantRolesCalls = [ - { - contractAddress: editionAddress, - calldata: editionInterface.encodeFunctionData('grantRoles', [merkleDropMinter.address, MINTER_ROLE]), - }, - { - contractAddress: editionAddress, - calldata: editionInterface.encodeFunctionData('grantRoles', [merkleDropMinterV2.address, MINTER_ROLE]), - }, - { - contractAddress: editionAddress, - calldata: editionInterface.encodeFunctionData('grantRoles', [rangeEditionMinter.address, MINTER_ROLE]), - }, - { - contractAddress: editionAddress, - calldata: editionInterface.encodeFunctionData('grantRoles', [rangeEditionMinterV2.address, MINTER_ROLE]), - }, - ] - - const allContractCalls = [...grantRolesCalls, ...minterCalls] - - await soundCreator.connect(artistWallet).createSoundAndMints( - DEFAULT_SALT, - editionInitData, - allContractCalls.map((d) => d.contractAddress), - allContractCalls.map((d) => d.calldata), - ) -} - -/********************************************************* - TESTS - ********************************************************/ - -describe('isSoundEdition', () => { - it("Should throw error if the address isn't valid", async () => { - const err1 = await client - .isSoundEdition({ editionAddress: BAD_ADDRESS }) - .then(didntThrowExpectedError) - .catch((error) => { - expect(error.message).to.equal('Invalid address') - expect(error.type).equal('SOUND_EDITION') - expect(error.address).equal(BAD_ADDRESS) - - return error - }) - - const err2 = await client - .isSoundEdition({ editionAddress: BAD_ADDRESS }) - .then(didntThrowExpectedError) - .catch((error) => { - expect(error).to.be.instanceOf(InvalidAddressError) - expect(error.message).to.equal('Invalid address') - expect(error.type).equal('SOUND_EDITION') - expect(error.address).equal(BAD_ADDRESS) - - return error - }) - - expect(err1).instanceOf(Error) - expect(err2).instanceOf(Error) - - expect(err1).not.equal(err2) - }) - - it('Correctly identifies SoundEdition addresses', async () => { - await setupTest({}) - - const wallet = Wallet.createRandom() - let isEdition = await client.isSoundEdition({ editionAddress: wallet.address }) - expect(isEdition).to.be.false - - isEdition = await client.isSoundEdition({ editionAddress: precomputedEditionAddress }) - expect(isEdition).to.be.true - }) -}) - -describe('numberMinted', () => { - it('returns the number of tokens minted', async () => { - const startTime = now() - const MINT_ID = 0 - const minterCalls = [ - { - contractAddress: rangeEditionMinter.address, - calldata: RangeEditionMinter__factory.createInterface().encodeFunctionData('createEditionMint', [ - precomputedEditionAddress, - PRICE, - startTime, - startTime + ONE_HOUR, // cutoffTime - startTime + ONE_HOUR * 2, // endTime - 0, // affiliateFeeBPS, - 4, // maxMintableLower, - 5, // maxMintableUpper, - 2, // maxMintablePerAccount - ]), - }, - { - contractAddress: rangeEditionMinterV2.address, - calldata: RangeEditionMinterV2__factory.createInterface().encodeFunctionData('createEditionMint', [ - precomputedEditionAddress, - PRICE, - startTime, - startTime + ONE_HOUR, // cutoffTime - startTime + ONE_HOUR * 2, // endTime - 0, // affiliateFeeBPS, - 4, // maxMintableLower, - 5, // maxMintableUpper, - 2, // maxMintablePerAccount - ]), - }, - ] - await setupTest({ minterCalls }) - - // numberMintedBefore shows 0 - const numberMintedBefore = await client.edition.numberMinted({ - editionAddress: precomputedEditionAddress, - userAddress: buyerWallet.address, - }) - expect(numberMintedBefore).to.equal(0) - - // mint one - await RangeEditionMinter__factory.connect(rangeEditionMinter.address, buyerWallet).mint( - precomputedEditionAddress, - MINT_ID, - 1, - NULL_ADDRESS, - { - value: PRICE, - }, - ) - - // numberMintedAfter shows 1 - const numberMintedAfterOne = await client.edition.numberMinted({ - editionAddress: precomputedEditionAddress, - userAddress: buyerWallet.address, - }) - expect(numberMintedAfterOne).to.equal(1) - - // mint second, and also one for another buyer - await RangeEditionMinter__factory.connect(rangeEditionMinter.address, buyerWallet).mint( - precomputedEditionAddress, - MINT_ID, - 1, - NULL_ADDRESS, - { - value: PRICE, - }, - ) - await RangeEditionMinterV2__factory.connect(rangeEditionMinterV2.address, buyerWallet).mintTo( - precomputedEditionAddress, - MINT_ID, - buyer2Wallet.address, - 1, - NULL_ADDRESS, - [], - 0, - { - value: PRICE, - }, - ) - - // numberMintedAfter shows 2 for buyer 1, and 1 for buyer 2 - const [buyer1Minted, buyer2Minted] = await Promise.all([ - client.edition.numberMinted({ - editionAddress: precomputedEditionAddress, - userAddress: buyerWallet.address, - }), - client.edition.numberMinted({ - editionAddress: precomputedEditionAddress, - userAddress: buyer2Wallet.address, - }), - ]) - expect(buyer1Minted).to.equal(2) - expect(buyer2Minted).to.equal(1) - }) -}) - -describe('eligibleQuantity: merkleDrop', () => { - const merkleTestHelper = MerkleTestHelper() - let merkleTree: MerkleTree - let mintSchedules: MintSchedule[] = [] - - beforeEach(async () => { - merkleTree = merkleTestHelper.getMerkleTree() - const merkleRoot = merkleTestHelper.getMerkleRoot(merkleTree) - - const startTime = now() - - const minterCalls = [ - { - contractAddress: merkleDropMinter.address, - calldata: MerkleDropMinter__factory.createInterface().encodeFunctionData('createEditionMint', [ - precomputedEditionAddress, - merkleRoot, - PRICE, - startTime, - startTime + ONE_HOUR, - 0, // affiliateFeeBPS - 5, // maxMintable, - 1, // maxMintablePerAccount - ]), - }, - { - contractAddress: merkleDropMinterV2.address, - calldata: MerkleDropMinterV2__factory.createInterface().encodeFunctionData('createEditionMint', [ - precomputedEditionAddress, - merkleRoot, - PRICE, - startTime, - startTime + ONE_HOUR, - 0, // affiliateFeeBPS - 5, // maxMintable, - 2, // maxMintablePerAccount - ]), - }, - ] - - await setupTest({ minterCalls }) - - // provide signer to the sdk - client = SoundClient({ - provider: ethers.provider, - signer: buyerWallet, - merkleProvider: { - merkleProof({ userAddress }) { - return merkleTestHelper.getProof({ merkleTree, address: userAddress }) - }, - }, - }) - mintSchedules = (await client.edition.mintSchedules({ editionAddress: precomputedEditionAddress })).activeSchedules - expect(mintSchedules[0].mintType).to.eq('MerkleDrop') - expect(mintSchedules[1].mintType).to.eq('MerkleDrop') - }) - - it('returns eligible quantity if the user is in the allowlist', async () => { - const [v1EligibleQuantity, v2EligibleQuantity] = await Promise.all([ - client.edition.eligibleQuantity({ - userAddress: buyerWallet.address, - mintSchedule: mintSchedules[0], - }), - client.edition.eligibleQuantity({ - userAddress: buyerWallet.address, - mintSchedule: mintSchedules[1], - }), - ]) - - expect(v1EligibleQuantity).to.equal(1) - expect(v2EligibleQuantity).to.equal(2) - }) - - it('returns 0 if the user is not in the allowlist', async () => { - const [v1EligibleQuantity, v2EligibleQuantity] = await Promise.all([ - client.edition.eligibleQuantity({ - userAddress: '0x52D52188D89f912538fe5933F1d2307Bc8076D05', - mintSchedule: mintSchedules[0], - }), - client.edition.eligibleQuantity({ - userAddress: '0x52D52188D89f912538fe5933F1d2307Bc8076D05', - mintSchedule: mintSchedules[1], - }), - ]) - - expect(v1EligibleQuantity).to.equal(0) - expect(v2EligibleQuantity).to.equal(0) - }) -}) - -describe('eligibleQuantity: single RangeEditionMinter instance', () => { - it(`Eligible quantity is user specific and changes with mint`, async () => { - const startTime = now() - const MINT_ID = 0 - - const minterCalls = [ - { - contractAddress: rangeEditionMinter.address, - calldata: RangeEditionMinter__factory.createInterface().encodeFunctionData('createEditionMint', [ - precomputedEditionAddress, - PRICE, - startTime, - startTime + ONE_HOUR, // cutoffTime - startTime + ONE_HOUR * 2, // endTime - 0, // affiliateFeeBPS, - 4, // maxMintableLower, - 5, // maxMintableUpper, - 2, // maxMintablePerAccount - ]), - }, - { - contractAddress: rangeEditionMinterV2.address, - calldata: RangeEditionMinterV2__factory.createInterface().encodeFunctionData('createEditionMint', [ - precomputedEditionAddress, - PRICE, - startTime, - startTime + ONE_HOUR, // cutoffTime - startTime + ONE_HOUR * 2, // endTime - 0, // affiliateFeeBPS, - 4, // maxMintableLower, - 5, // maxMintableUpper, - 2, // maxMintablePerAccount - ]), - }, - ] - - await setupTest({ minterCalls }) - - // shows active mints - const mints = (await client.edition.mintSchedules({ editionAddress: precomputedEditionAddress })).activeSchedules - - expect(mints.length).to.equal(2) - - // eligible for 2 - const eligibleQuantity = await client.edition.eligibleQuantity({ - mintSchedule: mints[0], - userAddress: buyerWallet.address, - }) - expect(eligibleQuantity).to.equal(2) - - // Test balances decreases after minting - await RangeEditionMinter__factory.connect(rangeEditionMinter.address, buyerWallet).mint( - precomputedEditionAddress, - MINT_ID, - 1, - NULL_ADDRESS, - { - value: PRICE, - }, - ) - - // only eligible for 1 now - const newEligibleQuantity = await client.edition.eligibleQuantity({ - mintSchedule: mints[0], - userAddress: buyerWallet.address, - }) - expect(newEligibleQuantity).to.equal(1) - - // minting to another person does not affect the minters limit - await RangeEditionMinterV2__factory.connect(rangeEditionMinterV2.address, buyerWallet).mintTo( - precomputedEditionAddress, - MINT_ID, - buyer2Wallet.address, - 1, - NULL_ADDRESS, - [], - 0, - { - value: PRICE, - }, - ) - - // still eligible for 1 now - const eligibleAfterMintToSeparate = await client.edition.eligibleQuantity({ - mintSchedule: mints[0], - userAddress: buyerWallet.address, - }) - expect(eligibleAfterMintToSeparate).to.equal(1) - - // mint on v2 range minter - await RangeEditionMinterV2__factory.connect(rangeEditionMinter.address, buyerWallet).mint( - precomputedEditionAddress, - MINT_ID, - 1, - NULL_ADDRESS, - { - value: PRICE, - }, - ) - - // another user is still eligible for 2 - const eligibleQuantityForOther = await client.edition.eligibleQuantity({ - mintSchedule: mints[0], - userAddress: artistWallet.address, - }) - expect(eligibleQuantityForOther).to.equal(2) - - const editionInfo = await client.edition.info({ contractAddress: precomputedEditionAddress }).contract.info - - expect(editionInfo.totalMinted).to.equal(3) - - expect(editionInfo.editionMaxMintable).to.equal(EDITION_MAX) - }) - - it(`Eligible quantity is zero outside of minting time`, async () => { - const startTime = now() - const cutoffTime = startTime + ONE_HOUR - const endTime = cutoffTime + ONE_HOUR - const maxMintablePerAccount = 5 - - const minterCalls = [ - { - contractAddress: rangeEditionMinterV2.address, - calldata: RangeEditionMinterV2__factory.createInterface().encodeFunctionData('createEditionMint', [ - precomputedEditionAddress, - PRICE, - startTime, - cutoffTime, - endTime, - 0, // affiliateFeeBPS - 10, // maxMintableLower - 10, // maxMintableUpper - maxMintablePerAccount, - ]), - }, - ] - - await setupTest({ minterCalls }) - - const mints = (await client.edition.mintSchedules({ editionAddress: precomputedEditionAddress })).activeSchedules - expect(mints.length).to.equal(1) - - const eligibleQuantityBeforeStart = await client.edition.eligibleQuantity({ - mintSchedule: mints[0], - userAddress: buyerWallet.address, - timestamp: startTime - 1, - }) - expect(eligibleQuantityBeforeStart).to.equal(0) - - const eligibleQuantityAtStart = await client.edition.eligibleQuantity({ - mintSchedule: mints[0], - userAddress: buyerWallet.address, - timestamp: startTime, - }) - expect(eligibleQuantityAtStart).to.equal(maxMintablePerAccount) - - const eligibleQuantityAtEnd = await client.edition.eligibleQuantity({ - mintSchedule: mints[0], - userAddress: buyerWallet.address, - timestamp: endTime + 1, - }) - expect(eligibleQuantityAtEnd).to.equal(0) - - const editionInfo = await client.edition.info({ contractAddress: precomputedEditionAddress }).contract.info - - expect(editionInfo.totalMinted).to.equal(0) - - expect(editionInfo.editionMaxMintable).to.equal(EDITION_MAX) - }) - - it(`Eligible quantity becomes zero for every user if range edition mint instance is sold out before cutoffTime`, async () => { - const maxMintableUpper = 8 - const startTime = now() - const MINT_ID = 0 - - const minter = RangeEditionMinter__factory.connect(rangeEditionMinter.address, artistWallet) - const minterCalls = [ - { - contractAddress: rangeEditionMinter.address, - calldata: minter.interface.encodeFunctionData('createEditionMint', [ - precomputedEditionAddress, - PRICE, - startTime, - startTime + ONE_HOUR, // cutoffTime, - startTime + ONE_HOUR * 2, // endTime, - 0, // affiliateFeeBPS - 4, // maxMintableLower - maxMintableUpper, // maxMintableUpper - 1, // maxMintablePerAccount, - ]), - }, - ] - - await setupTest({ minterCalls }) - - // Mint upper range limit - for (let i = 0; i < maxMintableUpper; i++) { - const minter = RangeEditionMinter__factory.connect(rangeEditionMinter.address, signers[i]) - await minter.mint(precomputedEditionAddress, MINT_ID, 1, NULL_ADDRESS, { value: PRICE }) - } - - // Check that all users have zero eligible balance - await Promise.all( - Array.from({ - length: 10, - }).map(async () => { - const randomSigner = Wallet.createRandom() - randomSigner.connect(ethers.provider) - - const mints = (await client.edition.mintSchedules({ editionAddress: precomputedEditionAddress })) - .activeSchedules - expect(mints.length).to.equal(1) - - const eligibleQuantity = await client.edition.eligibleQuantity({ - mintSchedule: mints[0], - userAddress: randomSigner.address, - }) - expect(eligibleQuantity).to.equal(0) - }), - ) - }) - - it(`Eligible balance switches to zero after closing time if maxMintableLower has been surpassed`, async () => { - const maxMintableLower = 5 - const maxMintablePerAccount = 1 - const signers = await ethers.getSigners() - const startTime = now() - const cutoffTime = startTime + ONE_HOUR - const MINT_ID = 0 - - const minter = RangeEditionMinter__factory.connect(rangeEditionMinter.address, artistWallet) - const minterCalls = [ - { - contractAddress: rangeEditionMinter.address, - calldata: minter.interface.encodeFunctionData('createEditionMint', [ - precomputedEditionAddress, - PRICE, - startTime, - cutoffTime, - startTime + ONE_HOUR * 2, // endTime, - 0, // affiliateFeeBPS - maxMintableLower, - 10, // maxMintableUpper, - maxMintablePerAccount, - ]), - }, - ] - - await setupTest({ minterCalls }) - - // Mint lower range limit - for (let i = 0; i < maxMintableLower; i++) { - const minter = RangeEditionMinter__factory.connect(rangeEditionMinter.address, signers[i]) - await minter.mint(precomputedEditionAddress, MINT_ID, 1, NULL_ADDRESS, { value: PRICE }) - } - - const mints = (await client.edition.mintSchedules({ editionAddress: precomputedEditionAddress })).activeSchedules - expect(mints.length).to.equal(1) - - // Check that random users still have an eligible quantity at current time - for (let i = 0; i < 1; i++) { - const randomSigner = Wallet.createRandom() - randomSigner.connect(ethers.provider) - - const eligibleQuantity = await client.edition.eligibleQuantity({ - mintSchedule: mints[0], - userAddress: randomSigner.address, - timestamp: now(), - }) - expect(eligibleQuantity).to.equal(maxMintablePerAccount) - } - - // Check that random users have no eligible quantity at closing time - for (let i = 0; i < 1; i++) { - const randomSigner = Wallet.createRandom() - randomSigner.connect(ethers.provider) - - const eligibleQuantity = await client.edition.eligibleQuantity({ - mintSchedule: mints[0], - userAddress: randomSigner.address, - timestamp: cutoffTime, - }) - expect(eligibleQuantity).to.equal(0) - } - }) - - it(`Eligible quantity changes if querying between multiple mints with different start times and max mintable quantities.`, async () => { - const mint1StartTime = now() - const mint1EndTime = mint1StartTime + ONE_HOUR - const mint2StartTime = mint1EndTime - - const mint1MaxMintablePerAccount = 40 - const mint2MaxMintablePerAccount = 42 - - const minter = RangeEditionMinterV2__factory.connect(rangeEditionMinter.address, artistWallet) - const minterCalls = [ - { - contractAddress: rangeEditionMinter.address, - calldata: minter.interface.encodeFunctionData('createEditionMint', [ - precomputedEditionAddress, - PRICE, - mint1StartTime, - mint1EndTime - 1, // cutoffTime, - mint1EndTime, - 0, // affiliateFeeBPS - 50, // maxMintableLower, - 60, // maxMintableUpper, - mint1MaxMintablePerAccount, - ]), - }, - { - contractAddress: rangeEditionMinter.address, - calldata: minter.interface.encodeFunctionData('createEditionMint', [ - precomputedEditionAddress, - PRICE, - mint2StartTime, - mint2StartTime + ONE_HOUR, // cutoffTime, - mint2StartTime + ONE_HOUR + 1, // endTime - 0, // affiliateFeeBPS - 99, // maxMintableLower, - 100, // maxMintableUpper, - mint2MaxMintablePerAccount, - ]), - }, - ] - - await setupTest({ minterCalls }) - - // 1 active mint - const activeMints = (await client.edition.mintSchedules({ editionAddress: precomputedEditionAddress })) - .activeSchedules - expect(activeMints.length).to.equal(1) - // 2 total mints (1 in the future) - const allMints = (await client.edition.mintSchedules({ editionAddress: precomputedEditionAddress })).schedules - expect(allMints.length).to.equal(2) - - const eligibleQuantity1 = await client.edition.eligibleQuantity({ - mintSchedule: allMints[0], - userAddress: buyerWallet.address, - }) - - const eligibleQuantity2 = await client.edition.eligibleQuantity({ - mintSchedule: allMints[1], - userAddress: buyerWallet.address, - timestamp: mint2StartTime, - }) - - expect(eligibleQuantity1).to.equal(mint1MaxMintablePerAccount) - expect(eligibleQuantity2).to.equal(mint2MaxMintablePerAccount) - - client.client.instance.signer = buyer2Wallet - - await client.edition.mint({ - mintSchedule: allMints[0], - quantity: mint1MaxMintablePerAccount, - }) - - const mintSchedule = ( - await client.edition.mintSchedules({ editionAddress: precomputedEditionAddress }) - ).schedules.shift()! - - expect(mintSchedule).exist - - const remainingQuantityBuyer1 = await client.edition.eligibleQuantity({ - mintSchedule, - userAddress: buyerWallet.address, - }) - - assert('maxMintable' in mintSchedule) - - // Eligible quantity should take in account the remaining supply - expect(remainingQuantityBuyer1).to.equal( - (typeof mintSchedule.maxMintable === 'function' ? mintSchedule.maxMintable() : mintSchedule.maxMintable) - - mint1MaxMintablePerAccount, - ) - }) - - it('eligibleQuantity respects the available quantity on the edition over the eligible quantity on mint schedules', async () => { - const client = SoundClient({ - provider: ethers.provider, - signer: buyerWallet, - merkleProvider: { - merkleProof({ userAddress }) { - return merkleTestHelper.getProof({ merkleTree, address: userAddress }) - }, - }, - }) - - const merkleTestHelper = MerkleTestHelper() - const startTimeForBoth = now() - const endTimeForBoth = UINT32_MAX - const maxMintable = EDITION_MAX - const maxMintablePerAccount = EDITION_MAX - - const merkleMinter = MerkleDropMinter__factory.connect(merkleDropMinterV2.address, artistWallet) - const rangeMinter = RangeEditionMinterV2__factory.connect(rangeEditionMinter.address, artistWallet) - - const merkleTree = merkleTestHelper.getMerkleTree() - const merkleRoot = merkleTestHelper.getMerkleRoot(merkleTree) - - const minterCalls = [ - { - contractAddress: merkleDropMinter.address, - calldata: merkleMinter.interface.encodeFunctionData('createEditionMint', [ - precomputedEditionAddress, - merkleRoot, - PRICE, - startTimeForBoth, - endTimeForBoth, - 0, // affiliateFeeBPS - maxMintable, - maxMintablePerAccount, - ]), - }, - { - contractAddress: rangeEditionMinter.address, - calldata: rangeMinter.interface.encodeFunctionData('createEditionMint', [ - precomputedEditionAddress, - PRICE, - startTimeForBoth, - startTimeForBoth + ONE_HOUR, // cutoffTime, - startTimeForBoth + ONE_HOUR + 1, // endTime - 0, // affiliateFeeBPS - maxMintable - 1, // maxMintableLower, - maxMintable, // maxMintableUpper, - maxMintablePerAccount, - ]), - }, - ] - - await setupTest({ minterCalls }) - - const mintSchedules = (await client.edition.mintSchedules({ editionAddress: precomputedEditionAddress })) - .activeSchedules - - expect(mintSchedules.length).to.equal(2) - - // Mint entire supply from first mint schedule - await client.edition.mint({ - mintSchedule: mintSchedules[0], - quantity: EDITION_MAX, - }) - - // Check that the eligible quantity for the next mint schedule is zero for both buyers - const eligibleQuantityBuyer1 = await client.edition.eligibleQuantity({ - mintSchedule: mintSchedules[1], - userAddress: buyerWallet.address, - }) - - const eligibleQuantityBuyer2 = await client.edition.eligibleQuantity({ - mintSchedule: mintSchedules[1], - userAddress: buyer2Wallet.address, - }) - - expect(eligibleQuantityBuyer1).to.equal(0) - expect(eligibleQuantityBuyer2).to.equal(0) - }) -}) - -describe('numberOfTokensOwned', () => { - it('should buy a token and transfer it out', async () => { - let minter = RangeEditionMinterV2__factory.connect(rangeEditionMinter.address, artistWallet) - const startTime = now() - const MINT_ID = 0 - const minterCalls = [ - { - contractAddress: rangeEditionMinter.address, - calldata: minter.interface.encodeFunctionData('createEditionMint', [ - precomputedEditionAddress, - PRICE, - startTime, - startTime + ONE_HOUR, // cutoffTime - startTime + ONE_HOUR * 2, // endTime - 0, // affiliateFeeBPS, - 4, // maxMintableLower, - 5, // maxMintableUpper, - 2, // maxMintablePerAccount - ]), - }, - ] - await setupTest({ minterCalls }) - - // numberMintedBefore shows 0 - const numberOfTokensOwnedBefore = await client.edition.numberOfTokensOwned({ - editionAddress: precomputedEditionAddress, - userAddress: buyerWallet.address, - }) - expect(numberOfTokensOwnedBefore).to.equal(0) - - // mint one - minter = RangeEditionMinterV2__factory.connect(rangeEditionMinter.address, buyerWallet) - await minter.mint(precomputedEditionAddress, MINT_ID, 1, NULL_ADDRESS, { - value: PRICE, - }) - - // Burn token - const songContract = SoundEditionV1_2__factory.connect(precomputedEditionAddress, buyerWallet) - const numberOfTokensOwnedBeforeBurn = await client.edition.numberOfTokensOwned({ - editionAddress: precomputedEditionAddress, - userAddress: buyerWallet.address, - }) - expect(numberOfTokensOwnedBeforeBurn).to.equal(1) - await songContract.burn(1) - - // numberMintedAfter shows 0 - const numberOfTokensOwnedAfter = await client.edition.numberOfTokensOwned({ - editionAddress: precomputedEditionAddress, - userAddress: buyerWallet.address, - }) - expect(numberOfTokensOwnedAfter).to.equal(0) - }) - - it('should buy tokens', async () => { - let minter = RangeEditionMinterV2__factory.connect(rangeEditionMinter.address, artistWallet) - const startTime = now() - const MINT_ID = 0 - const minterCalls = [ - { - contractAddress: rangeEditionMinter.address, - calldata: minter.interface.encodeFunctionData('createEditionMint', [ - precomputedEditionAddress, - PRICE, - startTime, - startTime + ONE_HOUR, // cutoffTime - startTime + ONE_HOUR * 2, // endTime - 0, // affiliateFeeBPS, - 4, // maxMintableLower, - 5, // maxMintableUpper, - 2, // maxMintablePerAccount - ]), - }, - ] - await setupTest({ minterCalls }) - - // numberMintedBefore shows 0 - const numberOfTokensOwnedBefore = await client.edition.numberOfTokensOwned({ - editionAddress: precomputedEditionAddress, - userAddress: buyerWallet.address, - }) - expect(numberOfTokensOwnedBefore).to.equal(0) - - // mint one - minter = RangeEditionMinterV2__factory.connect(rangeEditionMinter.address, buyerWallet) - await minter.mint(precomputedEditionAddress, MINT_ID, 1, NULL_ADDRESS, { - value: PRICE, - }) - - // numberMintedAfter shows 1 - const numberOfTokensOwnedAfter = await client.edition.numberOfTokensOwned({ - editionAddress: precomputedEditionAddress, - userAddress: buyerWallet.address, - }) - expect(numberOfTokensOwnedAfter).to.equal(1) - }) - - it('should transfer in tokens', async () => { - let minter = RangeEditionMinterV2__factory.connect(rangeEditionMinter.address, artistWallet) - const startTime = now() - const MINT_ID = 0 - const minterCalls = [ - { - contractAddress: rangeEditionMinter.address, - calldata: minter.interface.encodeFunctionData('createEditionMint', [ - precomputedEditionAddress, - PRICE, - startTime, - startTime + ONE_HOUR, // cutoffTime - startTime + ONE_HOUR * 2, // endTime - 0, // affiliateFeeBPS, - 4, // maxMintableLower, - 5, // maxMintableUpper, - 2, // maxMintablePerAccount - ]), - }, - ] - await setupTest({ minterCalls }) - - // mint one - minter = RangeEditionMinterV2__factory.connect(rangeEditionMinter.address, buyerWallet) - await minter.mint(precomputedEditionAddress, MINT_ID, 1, NULL_ADDRESS, { - value: PRICE, - }) - - const numberOfTokensOwnedBeforeBuyer1 = await client.edition.numberOfTokensOwned({ - editionAddress: precomputedEditionAddress, - userAddress: buyerWallet.address, - }) - expect(numberOfTokensOwnedBeforeBuyer1).to.equal(1) - - const numberOfTokensOwnedBeforeBuyer2 = await client.edition.numberOfTokensOwned({ - editionAddress: precomputedEditionAddress, - userAddress: buyer2Wallet.address, - }) - expect(numberOfTokensOwnedBeforeBuyer2).to.equal(0) - - // Transfer out the song - const songContract = SoundEditionV1_2__factory.connect(precomputedEditionAddress, buyerWallet) - await songContract.transferFrom(buyerWallet.address, buyer2Wallet.address, 1) - - const numberOfTokensOwnedAfterBuyer1 = await client.edition.numberOfTokensOwned({ - editionAddress: precomputedEditionAddress, - userAddress: buyerWallet.address, - }) - expect(numberOfTokensOwnedAfterBuyer1).to.equal(0) - - const numberOfTokensOwnedAfterBuyer2 = await client.edition.numberOfTokensOwned({ - editionAddress: precomputedEditionAddress, - userAddress: buyer2Wallet.address, - }) - expect(numberOfTokensOwnedAfterBuyer2).to.equal(1) - }) - - it('should have no tokens owned', async () => { - const minter = RangeEditionMinterV2__factory.connect(rangeEditionMinter.address, artistWallet) - const startTime = now() - const minterCalls = [ - { - contractAddress: rangeEditionMinter.address, - calldata: minter.interface.encodeFunctionData('createEditionMint', [ - precomputedEditionAddress, - PRICE, - startTime, - startTime + ONE_HOUR, // cutoffTime - startTime + ONE_HOUR * 2, // endTime - 0, // affiliateFeeBPS, - 4, // maxMintableLower, - 5, // maxMintableUpper, - 2, // maxMintablePerAccount - ]), - }, - ] - await setupTest({ minterCalls }) - - // numberMintedBefore shows 0 - const numberOfTokensOwnedBefore = await client.edition.numberOfTokensOwned({ - editionAddress: precomputedEditionAddress, - userAddress: buyerWallet.address, - }) - expect(numberOfTokensOwnedBefore).to.equal(0) - }) -}) - -describe('mint', () => { - describe('RangeEditionMinter', () => { - let mintSchedules: MintSchedule[] = [] - beforeEach(async () => { - const startTime = now() - - const minter = RangeEditionMinterV2__factory.connect(rangeEditionMinter.address, artistWallet) - const minterCalls = [ - { - contractAddress: rangeEditionMinter.address, - calldata: minter.interface.encodeFunctionData('createEditionMint', [ - precomputedEditionAddress, - PRICE, - startTime, - startTime + ONE_HOUR, // cutoffTime, - startTime + ONE_HOUR * 2, // endTime, - 0, // affiliateFeeBPS - 4, // maxMintableLower, - 5, // maxMintableUpper, - 2, // maxMintablePerAccount, - ]), - }, - ] - - await setupTest({ minterCalls }) - - // provide signer to the sdk - client = SoundClient({ - provider: ethers.provider, - signer: buyerWallet, - }) - mintSchedules = (await client.edition.mintSchedules({ editionAddress: precomputedEditionAddress })).schedules - expect(mintSchedules[0].mintType).to.eq('RangeEdition') - }) - - it(`Successfully mints via RangeEditionMinter`, async () => { - const quantity = 2 - const initialBalance = await SoundEditionV1_2__factory.connect( - precomputedEditionAddress, - ethers.provider, - ).balanceOf(buyerWallet.address) - - await client.edition.mint({ mintSchedule: mintSchedules[0], quantity }) - - const finalBalance = await SoundEditionV1_2__factory.connect( - precomputedEditionAddress, - ethers.provider, - ).balanceOf(buyerWallet.address) - expect(finalBalance.sub(initialBalance)).to.eq(quantity) - }) - - it(`Scales gasLimit by ${MINT_GAS_LIMIT_MULTIPLIER * 100}% if gasLimit not provided`, async () => { - const gasEstimate = await RangeEditionMinter__factory.connect( - rangeEditionMinter.address, - buyerWallet, - ).estimateGas.mint(precomputedEditionAddress, 0, 1, NULL_ADDRESS, { - value: PRICE, - }) - - const expectedGasLimit = scaleAmount({ amount: gasEstimate, multiplier: MINT_GAS_LIMIT_MULTIPLIER }) - - const clientMintCall = await client.edition.mint({ mintSchedule: mintSchedules[0], quantity: 1 }) - - expect(clientMintCall.gasLimit).to.equal(expectedGasLimit) - }) - - it(`Doesn't scale gasLimit if custom gasLimit not provided`, async () => { - const gasLimit = 12345678 - - const clientMintCall = await client.edition.mint({ mintSchedule: mintSchedules[0], quantity: 1, gasLimit }) - - expect(clientMintCall.gasLimit).to.equal(gasLimit) - }) - - it(`Should throw error if invalid quantity requested`, async () => { - const quantity = 0 - await client.edition - .mint({ mintSchedule: mintSchedules[0], quantity }) - .then(didntThrowExpectedError) - .catch((error) => { - expect(error).instanceOf(InvalidQuantityError) - }) - }) - - it(`Should throw error if more than eligibleQuantity requested`, async () => { - const quantity = 5 - const eligibleQuantity = await client.edition.eligibleQuantity({ - mintSchedule: mintSchedules[0], - userAddress: buyerWallet.address, - }) - await client.edition - .mint({ mintSchedule: mintSchedules[0], quantity }) - .then(didntThrowExpectedError) - .catch((error) => { - expect(error).instanceOf(NotEligibleMint) - - assert(error instanceof NotEligibleMint) - - expect(error.eligibleMintQuantity).equal(eligibleQuantity) - }) - }) - }) - - describe('MerkleDropMinter', () => { - const merkleTestHelper = MerkleTestHelper() - let merkleTree: MerkleTree - let mintSchedules: MintSchedule[] = [] - - beforeEach(async () => { - merkleTree = merkleTestHelper.getMerkleTree() - const merkleRoot = merkleTestHelper.getMerkleRoot(merkleTree) - - const minter = MerkleDropMinter__factory.connect(merkleDropMinterV2.address, artistWallet) - const startTime = now() - - const minterCalls = [ - { - contractAddress: merkleDropMinter.address, - calldata: minter.interface.encodeFunctionData('createEditionMint', [ - precomputedEditionAddress, - merkleRoot, - PRICE, - startTime, - startTime + ONE_HOUR, - 0, // affiliateFeeBPS - 5, // maxMintable, - 1, // maxMintablePerAccount - ]), - }, - ] - - await setupTest({ minterCalls }) - - // provide signer to the sdk - client = SoundClient({ - provider: ethers.provider, - signer: buyerWallet, - merkleProvider: { - merkleProof({ userAddress }) { - return merkleTestHelper.getProof({ merkleTree, address: userAddress }) - }, - }, - }) - mintSchedules = (await client.edition.mintSchedules({ editionAddress: precomputedEditionAddress })) - .activeSchedules - expect(mintSchedules[0].mintType).to.eq('MerkleDrop') - }) - - it(`Successfully mints via MerkleDropMinter`, async () => { - const quantity = 1 - const initialBalance = await SoundEditionV1_2__factory.connect( - precomputedEditionAddress, - ethers.provider, - ).balanceOf(buyerWallet.address) - - await client.edition.mint({ - mintSchedule: mintSchedules[0], - quantity, - }) - - const finalBalance = await SoundEditionV1_2__factory.connect( - precomputedEditionAddress, - ethers.provider, - ).balanceOf(buyerWallet.address) - expect(finalBalance.sub(initialBalance)).to.eq(quantity) - }) - - it('Should throw error if merkle proof is null', async () => { - client.client.instance.merkleProvider!.merkleProof = () => null - - // Test client throws expected error - await client.edition - .mint({ - mintSchedule: mintSchedules[0], - quantity: 1, - }) - .then(didntThrowExpectedError) - .catch((error) => { - expect(error).instanceOf(NotEligibleMint) - }) - }) - - it('Missing merkle provider', async () => { - client.client.instance.merkleProvider = null - - const expectedError = await client.edition - .mint({ - mintSchedule: mintSchedules[0], - quantity: 1, - }) - .catch((err) => err) - - expect(expectedError).to.instanceOf(MissingMerkleProvider) - }) - }) -}) - -describe('createEdition', () => { - const SALT = 'hello' - - beforeEach(() => { - client = SoundClient({ signer: artistWallet }) - }) - - it('Creates a sound edition and mint schedules', async () => { - const editionConfig = getGenericEditionConfig() - - const mint1StartTime = now() - const mint1CutoffTime = mint1StartTime + ONE_HOUR / 2 - const mint2StartTime = mint1StartTime + ONE_HOUR - const mint3StartTime = mint1StartTime + ONE_HOUR * 2 - const mint1MaxMintablePerAccount = 2 - const mint3MaxMintablePerAccount = 3 - const merkleTestHelper = MerkleTestHelper() - const merkleRoot = merkleTestHelper.getMerkleRoot(merkleTestHelper.getMerkleTree()) - - const mintConfigs: MintConfig[] = [ - { - mintType: 'RangeEdition' as const, - minterAddress: rangeEditionMinterV2.address, - price: PRICE, - startTime: mint1StartTime, - cutoffTime: mint1CutoffTime, - endTime: mint2StartTime, - maxMintableLower: 5, - maxMintableUpper: 10, - maxMintablePerAccount: mint1MaxMintablePerAccount, - affiliateFeeBPS: 0, - }, - { - mintType: 'MerkleDrop' as const, - minterAddress: merkleDropMinterV2.address, - price: PRICE, - merkleRoot, - startTime: mint3StartTime, - endTime: mint3StartTime + ONE_HOUR, - maxMintable: 9, - maxMintablePerAccount: mint3MaxMintablePerAccount, - affiliateFeeBPS: 0, - }, - ] - - const [precomputedEditionAddress, _] = await SoundCreatorV1__factory.connect( - soundCreator.address, - ethers.provider, - ).soundEditionAddress(artistWallet.address, getSaltAsBytes32(SALT)) - - /** - * Create sound edition and mint schedules. - */ - await client.creation({ creatorAddress: soundCreator.address }).createEdition({ - editionConfig, - mintConfigs, - salt: SALT, - }) - - const editionContract = SoundEditionV1_2__factory.connect(precomputedEditionAddress, ethers.provider) - - const [ - editionBaseURI, - editionMaxMintableLower, - editionMaxMintableUpper, - editionCutoffTime, - fundingRecipient, - mintRandomnessEnabled, - operatorFilteringEnabled, - ] = await Promise.all([ - editionContract.baseURI(), - editionContract.editionMaxMintableLower(), - editionContract.editionMaxMintableUpper(), - editionContract.editionCutoffTime(), - editionContract.fundingRecipient(), - editionContract.mintRandomnessEnabled(), - editionContract.operatorFilteringEnabled(), - ]) - - expect(editionBaseURI).to.eq(editionConfig.baseURI) - expect(editionMaxMintableLower).to.eq(editionConfig.editionMaxMintableLower) - expect(editionMaxMintableUpper).to.eq(editionConfig.editionMaxMintableLower) - expect(editionCutoffTime).to.eq(editionConfig.editionCutoffTime) - expect(fundingRecipient).to.eq(editionConfig.fundingRecipient) - expect(mintRandomnessEnabled).to.eq(editionConfig.shouldEnableMintRandomness) - expect(operatorFilteringEnabled).to.eq(editionConfig.enableOperatorFiltering) - - const MINT_ID = 0 - - // Verify mint configs exist - for (const mintConfig of mintConfigs) { - switch (mintConfig.mintType) { - case 'RangeEdition': { - const minter = RangeEditionMinterV2__factory.connect(mintConfig.minterAddress, ethers.provider) - const mintSchedule = await minter.mintInfo(precomputedEditionAddress, MINT_ID) - expect(mintSchedule.startTime).to.equal(mint1StartTime) - expect(mintSchedule.cutoffTime).to.equal(mint1CutoffTime) - expect(mintSchedule.endTime).to.equal(mint2StartTime) - expect(mintSchedule.maxMintableLower).to.equal(mintConfig.maxMintableLower) - expect(mintSchedule.maxMintableUpper).to.equal(mintConfig.maxMintableUpper) - expect(mintSchedule.maxMintablePerAccount).to.equal(mint1MaxMintablePerAccount) - break - } - case 'MerkleDrop': { - const minter = MerkleDropMinterV2__factory.connect(mintConfig.minterAddress, ethers.provider) - const mintSchedule = await minter.mintInfo(precomputedEditionAddress, MINT_ID) - expect(mintSchedule.startTime).to.equal(mint3StartTime) - expect(mintSchedule.endTime).to.equal(mint3StartTime + ONE_HOUR) - expect(mintSchedule.merkleRootHash).to.equal(merkleRoot) - expect(mintSchedule.maxMintablePerAccount).to.equal(mint3MaxMintablePerAccount) - break - } - } - } - }) - - it('mint schedules tie-breaker on merkle first, contract merkle first', async () => { - const editionConfig = getGenericEditionConfig() - - const mintStartTime = now() - const mint1CutoffTime = mintStartTime + ONE_HOUR / 2 - const mint1MaxMintablePerAccount = 2 - const mint3MaxMintablePerAccount = 3 - const merkleTestHelper = MerkleTestHelper() - const merkleRoot = merkleTestHelper.getMerkleRoot(merkleTestHelper.getMerkleTree()) - - const mintConfigs: MintConfig[] = [ - { - mintType: 'MerkleDrop' as const, - minterAddress: merkleDropMinter.address, - price: PRICE, - merkleRoot, - startTime: mintStartTime, - endTime: mintStartTime + ONE_HOUR, - maxMintable: 9, - maxMintablePerAccount: mint3MaxMintablePerAccount, - affiliateFeeBPS: 0, - }, - { - mintType: 'RangeEdition' as const, - minterAddress: rangeEditionMinter.address, - price: PRICE, - startTime: mintStartTime, - cutoffTime: mint1CutoffTime, - endTime: mintStartTime + ONE_HOUR, - maxMintableLower: 5, - maxMintableUpper: 10, - maxMintablePerAccount: mint1MaxMintablePerAccount, - affiliateFeeBPS: 0, - }, - ] - - const [precomputedEditionAddress, _] = await SoundCreatorV1__factory.connect( - soundCreator.address, - ethers.provider, - ).soundEditionAddress(artistWallet.address, getSaltAsBytes32(SALT)) - - /** - * Create sound edition and mint schedules. - */ - await client.creation({ creatorAddress: soundCreator.address }).createEdition({ - editionConfig, - mintConfigs, - salt: SALT, - }) - - const { schedules } = await client.edition.mintSchedules({ - editionAddress: precomputedEditionAddress, - }) - - expect(new Set(schedules.map((v) => v.startTime))).deep.equal(new Set([mintStartTime])) - - expect(schedules.map((v) => v.mintType)).deep.equal([ - 'MerkleDrop', - 'RangeEdition', - ] satisfies MintConfig['mintType'][]) - - const scheduleIds = await client.edition.scheduleIds({ - editionAddress: precomputedEditionAddress, - }) - - const mintSchedulesLists = await Promise.all( - scheduleIds.map(({ minterAddress, mintIds }) => - mintInfosFromMinter.call(client.client, { editionAddress: precomputedEditionAddress, minterAddress, mintIds }), - ), - ) - - expect(mintSchedulesLists.flat().map((v) => v.mintType)).deep.equal([ - 'MerkleDrop', - 'RangeEdition', - ] satisfies MintConfig['mintType'][]) - }) - - it('mint schedules tie-breaker on merkle first, contract range first', async () => { - const editionConfig = getGenericEditionConfig() - - const mintStartTime = now() - const mint1CutoffTime = mintStartTime + ONE_HOUR / 2 - const mint1MaxMintablePerAccount = 2 - const mint3MaxMintablePerAccount = 3 - const merkleTestHelper = MerkleTestHelper() - const merkleRoot = merkleTestHelper.getMerkleRoot(merkleTestHelper.getMerkleTree()) - - const mintConfigs: MintConfig[] = [ - { - mintType: 'RangeEdition' as const, - minterAddress: rangeEditionMinter.address, - price: PRICE, - startTime: mintStartTime, - cutoffTime: mint1CutoffTime, - endTime: mintStartTime + ONE_HOUR, - maxMintableLower: 5, - maxMintableUpper: 10, - maxMintablePerAccount: mint1MaxMintablePerAccount, - affiliateFeeBPS: 0, - }, - { - mintType: 'MerkleDrop' as const, - minterAddress: merkleDropMinter.address, - price: PRICE, - merkleRoot, - startTime: mintStartTime, - endTime: mintStartTime + ONE_HOUR, - maxMintable: 9, - maxMintablePerAccount: mint3MaxMintablePerAccount, - affiliateFeeBPS: 0, - }, - ] - - const [precomputedEditionAddress, _] = await SoundCreatorV1__factory.connect( - soundCreator.address, - ethers.provider, - ).soundEditionAddress(artistWallet.address, getSaltAsBytes32(SALT)) - - /** - * Create sound edition and mint schedules. - */ - await client.creation({ creatorAddress: soundCreator.address }).createEdition({ - editionConfig, - mintConfigs, - salt: SALT, - }) - - const { schedules } = await client.edition.mintSchedules({ - editionAddress: precomputedEditionAddress, - }) - - expect(new Set(schedules.map((v) => v.startTime))).deep.equal(new Set([mintStartTime])) - - expect(schedules.map((v) => v.mintType)).deep.equal([ - 'MerkleDrop', - 'RangeEdition', - ] satisfies MintConfig['mintType'][]) - - const scheduleIds = await client.edition.scheduleIds({ - editionAddress: precomputedEditionAddress, - }) - - const mintSchedulesLists = await Promise.all( - scheduleIds.map(({ minterAddress, mintIds }) => - mintInfosFromMinter.call(client.client, { editionAddress: precomputedEditionAddress, minterAddress, mintIds }), - ), - ) - - expect(mintSchedulesLists.flat().map((v) => v.mintType)).deep.equal([ - 'RangeEdition', - 'MerkleDrop', - ] satisfies MintConfig['mintType'][]) - }) - - it('throws if fundingRecipient is a null address', async () => { - const editionConfig = getGenericEditionConfig() - editionConfig.fundingRecipient = NULL_ADDRESS - - await client - .creation({ creatorAddress: soundCreator.address }) - .createEdition({ - editionConfig, - mintConfigs: [getGenericRangeMintConfig({ minterAddress: rangeEditionMinter.address })], - salt: SALT, - }) - .then(didntThrowExpectedError) - .catch((error) => { - expect(error).instanceOf(InvalidAddressError) - expect(error.type).equal('FUNDING_RECIPIENT') - expect(error.message).equal('Address cannot be null address') - expect(error.address).equal(NULL_ADDRESS) - }) - }) - - it(`throws if fundingRecipient isn't an address`, async () => { - const editionConfig = getGenericEditionConfig() - editionConfig.fundingRecipient = BAD_ADDRESS - - await client - .creation({ creatorAddress: soundCreator.address }) - .createEdition({ - editionConfig, - mintConfigs: [getGenericRangeMintConfig({ minterAddress: rangeEditionMinter.address })], - salt: SALT, - }) - .then(didntThrowExpectedError) - .catch((error) => { - expect(error).instanceOf(InvalidAddressError) - expect(error.type).equal('FUNDING_RECIPIENT') - expect(error.message).equal('Invalid address') - expect(error.address).equal(BAD_ADDRESS) - }) - }) - - it(`throws if minterAddress isn't an address`, async () => { - const editionConfig = getGenericEditionConfig() - - await client - .creation({ creatorAddress: soundCreator.address }) - .createEdition({ - editionConfig, - mintConfigs: [getGenericRangeMintConfig({ minterAddress: BAD_ADDRESS })], - salt: SALT, - }) - .then(didntThrowExpectedError) - .catch((error) => { - expect(error).instanceOf(InvalidAddressError) - expect(error.type).equal('MINTER') - expect(error.message).equal('Invalid address') - expect(error.address).equal(BAD_ADDRESS) - }) - }) - - it(`throws if metadataModule isn't an address`, async () => { - const editionConfig = getGenericEditionConfig() - editionConfig.metadataModule = BAD_ADDRESS - - await client - .creation({ creatorAddress: soundCreator.address }) - .createEdition({ - editionConfig, - mintConfigs: [getGenericRangeMintConfig({ minterAddress: rangeEditionMinter.address })], - salt: SALT, - }) - .then(didntThrowExpectedError) - .catch((error) => { - expect(error).instanceOf(InvalidAddressError) - expect(error.type).equal('METADATA_MODULE') - expect(error.message).equal('Invalid address') - expect(error.address).equal(BAD_ADDRESS) - }) - }) - - it('throws if editionMaxMintableLower > editionMaxMintableUpper', async () => { - const editionConfig = getGenericEditionConfig() - editionConfig.editionMaxMintableLower = 2 - editionConfig.editionMaxMintableUpper = 1 - - await client - .creation({ creatorAddress: soundCreator.address }) - .createEdition({ - editionConfig, - mintConfigs: [getGenericRangeMintConfig({ minterAddress: rangeEditionMinter.address })], - salt: SALT, - }) - .then(didntThrowExpectedError) - .catch((error) => { - expect(error).instanceOf(InvalidEditionMaxMintableError) - }) - }) - - it('throws if maxMintablePerAccount is zero', async () => { - const editionConfig = getGenericEditionConfig() - - const mintConfig = getGenericRangeMintConfig({ minterAddress: rangeEditionMinter.address }) - mintConfig.maxMintablePerAccount = 0 - - await client - .creation({ creatorAddress: soundCreator.address }) - .createEdition({ - editionConfig, - mintConfigs: [mintConfig], - salt: SALT, - }) - .then(didntThrowExpectedError) - .catch((error) => { - expect(error).instanceOf(InvalidMaxMintablePerAccountError) - }) - }) - - it('throws if range mint maxMintableLower exceeds maxMintableUpper', async () => { - const editionConfig = getGenericEditionConfig() - - const mintConfig = getGenericRangeMintConfig({ minterAddress: rangeEditionMinter.address }) - mintConfig.maxMintableLower = 2 - mintConfig.maxMintableUpper = 1 - - await client - .creation({ creatorAddress: soundCreator.address }) - .createEdition({ - editionConfig, - mintConfigs: [mintConfig], - salt: SALT, - }) - .then(didntThrowExpectedError) - .catch((error) => { - expect(error).instanceOf(InvalidMaxMintableError) - }) - }) - - it('throws if range mint startTime == cutoffTime', async () => { - const editionConfig = getGenericEditionConfig() - - const mintConfig = getGenericRangeMintConfig({ minterAddress: rangeEditionMinter.address }) - mintConfig.startTime = mintConfig.cutoffTime - - await client - .creation({ creatorAddress: soundCreator.address }) - .createEdition({ - editionConfig, - mintConfigs: [mintConfig], - salt: SALT, - }) - .then(didntThrowExpectedError) - .catch((error) => { - expect(error).instanceOf(InvalidTimeValuesError) - }) - }) - - it('throws if range mint cutoffTime === endTime', async () => { - const editionConfig = getGenericEditionConfig() - - const mintConfig = getGenericRangeMintConfig({ minterAddress: rangeEditionMinter.address }) - mintConfig.cutoffTime = mintConfig.endTime - - await client - .creation({ creatorAddress: soundCreator.address }) - .createEdition({ - editionConfig, - mintConfigs: [mintConfig], - salt: SALT, - }) - .then(didntThrowExpectedError) - .catch((error) => { - expect(error).instanceOf(InvalidTimeValuesError) - }) - }) - - it('throws if merkle mint merkleRoot is invalid', async () => { - const editionConfig = getGenericEditionConfig() - - const startTime = now() - const endTime = startTime + 1 - - const mintConfig = { - mintType: 'MerkleDrop' as const, - minterAddress: merkleDropMinter.address, - price: PRICE, - merkleRoot: NULL_BYTES32, - startTime, - endTime, - maxMintable: 9, - maxMintablePerAccount: 1, - affiliateFeeBPS: 0, - } - - await client - .creation({ creatorAddress: soundCreator.address }) - .createEdition({ - editionConfig, - mintConfigs: [mintConfig], - salt: SALT, - }) - .then(didntThrowExpectedError) - .catch((error) => { - expect(error).instanceOf(InvalidMerkleRootError) - }) - - mintConfig.merkleRoot = '1x0000000000000000000000000000000000000000000000000000000000000000' - - await client - .creation({ creatorAddress: soundCreator.address }) - .createEdition({ - editionConfig, - mintConfigs: [mintConfig], - salt: SALT, - }) - .then(didntThrowExpectedError) - .catch((error) => { - expect(error).instanceOf(InvalidMerkleRootError) - }) - - mintConfig.merkleRoot = '' - - client - .creation({ creatorAddress: soundCreator.address }) - .createEdition({ - editionConfig, - mintConfigs: [mintConfig], - salt: SALT, - }) - .then(didntThrowExpectedError) - .catch((error) => { - expect(error).instanceOf(InvalidMerkleRootError) - }) - }) -}) - -describe('expectedEditionAddress', () => { - it('throws if provided deployerAddress is invalid', async () => { - await client - .creation({ creatorAddress: soundCreator.address }) - .expectedEditionAddress({ deployer: '0x0', salt: '123' }) - .then(didntThrowExpectedError) - .catch((error) => { - expect(error).instanceOf(InvalidAddressError) - }) - }) - - it('returns expected address', async () => { - const deployer = artistWallet.address - const salt1 = Math.random() - const salt2 = Math.random() - - const [expectedAddress1, _0] = await SoundCreatorV1__factory.connect( - soundCreator.address, - ethers.provider, - ).soundEditionAddress(deployer, getSaltAsBytes32(salt1)) - - const [expectedAddress2, _1] = await SoundCreatorV1__factory.connect( - soundCreator.address, - ethers.provider, - ).soundEditionAddress(deployer, getSaltAsBytes32(salt2)) - - const { editionAddress: address1 } = await client - .creation({ creatorAddress: soundCreator.address }) - .expectedEditionAddress({ deployer, salt: salt1 }) - const { editionAddress: address2 } = await client - .creation({ creatorAddress: soundCreator.address }) - .expectedEditionAddress({ deployer, salt: salt2 }) - - expect(address1).to.eq(expectedAddress1) - expect(address2).to.eq(expectedAddress2) - expect(address1).not.to.eq(address2) - }) -}) - -describe('networkChainMatches', () => { - it('provider', async () => { - client = SoundClient({ - provider: ethers.provider, - }) - - const mismatch = await client.networkChainMatches({ chainId: 1 }) - - expect(mismatch).eq(false) - - const testNet = await client.networkChainMatches({ - chainId: 31337, - }) - - expect(testNet).eq(true) - }) - - it('signer', async () => { - client = SoundClient({ - signer: artistWallet, - }) - - const mismatch = await client.networkChainMatches({ chainId: 1 }) - - expect(mismatch).eq(false) - - const testNet = await client.networkChainMatches({ - chainId: 31337, - }) - - expect(testNet).eq(true) - }) -}) - -describe('editionInfo', () => { - let editionAddress: string - let salt: string - - beforeEach(async () => { - client = SoundClient({ - signer: artistWallet, - merkleProvider: MockAPI(), - soundAPI: MockAPI(), - }) - - salt = randomUUID() - editionAddress = await client - .creation({ creatorAddress: soundCreator.address }) - .expectedEditionAddress({ - deployer: artistWallet.address, - salt, - }) - .then((v) => v.editionAddress) - - const mint1StartTime = now() - const mint1CutoffTime = mint1StartTime + ONE_HOUR / 2 - const mint2StartTime = mint1StartTime + ONE_HOUR - const mint1MaxMintablePerAccount = 2 - - await client.creation({ creatorAddress: soundCreator.address }).createEdition({ - editionConfig: { - name: 'Test', - symbol: 'TEST', - metadataModule: NULL_ADDRESS, - baseURI: 'https://test.com', - contractURI: 'https://test.com', - fundingRecipient: NON_NULL_ADDRESS, - royaltyBPS: 0, - editionMaxMintableLower: 10, - editionMaxMintableUpper: 10, - editionCutoffTime: 999999, - shouldEnableMintRandomness: true, - shouldFreezeMetadata: false, - enableOperatorFiltering: true, - - setSAM: null, - }, - mintConfigs: [ - { - mintType: 'RangeEdition' as const, - minterAddress: rangeEditionMinter.address, - price: PRICE, - startTime: mint1StartTime, - cutoffTime: mint1CutoffTime, - endTime: mint2StartTime, - maxMintableLower: 5, - maxMintableUpper: 10, - maxMintablePerAccount: mint1MaxMintablePerAccount, - affiliateFeeBPS: 0, - }, - ], - }) - }) - - it('throws if no soundAPI', async () => { - client.client.instance.soundAPI = null - const expectedError = await client.edition - .info({ - contractAddress: editionAddress, - }) - .api.catch((err) => err) - - expect(expectedError).instanceOf(MissingSoundAPI) - }) - - it('throws on non-existent editionInfo', async () => { - const expectedError = await client.edition - .info({ - contractAddress: editionAddress, - }) - .api.catch((err) => err) - - expect(expectedError).instanceOf(SoundNotFoundError) - - assert(expectedError instanceof SoundNotFoundError) - - expect(expectedError.contractAddress).equal(editionAddress) - expect(expectedError.editionId).equal(null) - expect(expectedError.graphqlErrors).equal(undefined) - }) -}) - -describe('editionRegisteredMinters', () => { - it('returns registered minter addresses', async () => { - await setupTest({}) - - let registeredMinters = await client.edition.registeredMinters({ - editionAddress: precomputedEditionAddress, - fromBlockOrBlockHash: 0, - }) - - expect(registeredMinters).members([ - merkleDropMinter.address, - merkleDropMinterV2.address, - rangeEditionMinter.address, - rangeEditionMinterV2.address, - ]) - - // Deploy a new minter and grant it minter role - const newMinter = await RangeEditionMinter.connect(soundWallet).deploy('0x0000000000000000000000000000000000000001') - const soundEdition = SoundEditionV1_2__factory.connect(precomputedEditionAddress, artistWallet) - - await soundEdition.grantRoles(newMinter.address, MINTER_ROLE) - - registeredMinters = await client.edition.registeredMinters({ - editionAddress: precomputedEditionAddress, - fromBlockOrBlockHash: 0, - }) - - expect(registeredMinters).members([ - merkleDropMinter.address, - merkleDropMinterV2.address, - rangeEditionMinter.address, - rangeEditionMinterV2.address, - newMinter.address, - ]) - }) -}) - -describe('editionMinterMintIds', () => { - it('returns v1 mint ids', async () => { - await setupTest({}) - const MINT_SCHEDULE_COUNT = 10 - - const mintConfig = getGenericRangeMintConfig({ minterAddress: rangeEditionMinter.address }) - - // Make mint schedules - for (let i = 0; i < MINT_SCHEDULE_COUNT; i++) { - await rangeEditionMinter - .connect(artistWallet) - .createEditionMint( - precomputedEditionAddress, - mintConfig.price, - mintConfig.startTime, - mintConfig.cutoffTime, - mintConfig.endTime, - mintConfig.affiliateFeeBPS, - mintConfig.maxMintableLower, - mintConfig.maxMintableUpper, - mintConfig.maxMintablePerAccount, - ) - } - - const mintIds = await client.edition.minterMintIds({ - editionAddress: precomputedEditionAddress, - minterAddress: rangeEditionMinter.address, - fromBlockOrBlockHash: 0, - }) - - expect(mintIds).deep.eq(Array.from({ length: MINT_SCHEDULE_COUNT }, (_, i) => i)) - }) - it('returns v2 mint ids', async () => { - await setupTest({}) - const MINT_SCHEDULE_COUNT = 10 - - const mintConfig = getGenericRangeMintConfig({ minterAddress: rangeEditionMinterV2.address }) - - // Make mint schedules - for (let i = 0; i < MINT_SCHEDULE_COUNT; i++) { - await rangeEditionMinterV2 - .connect(artistWallet) - .createEditionMint( - precomputedEditionAddress, - mintConfig.price, - mintConfig.startTime, - mintConfig.cutoffTime, - mintConfig.endTime, - mintConfig.affiliateFeeBPS, - mintConfig.maxMintableLower, - mintConfig.maxMintableUpper, - mintConfig.maxMintablePerAccount, - ) - } - - const mintIds = await client.edition.minterMintIds({ - editionAddress: precomputedEditionAddress, - minterAddress: rangeEditionMinterV2.address, - fromBlockOrBlockHash: 0, - }) - - expect(mintIds).deep.eq(Array.from({ length: MINT_SCHEDULE_COUNT }, (_, i) => i)) - }) -}) - -describe('editionScheduleIds', () => { - it('returns edition schedule ids', async () => { - await setupTest({}) - - const rangeMintConfig = getGenericRangeMintConfig({ minterAddress: rangeEditionMinter.address }) - const rangeMintV2Config = getGenericRangeMintConfig({ minterAddress: rangeEditionMinterV2.address }) - const merkleMintConfig = getGenericMerkleMintConfig({ minterAddress: merkleDropMinter.address }) - const merkleMintV2Config = getGenericMerkleMintConfig({ minterAddress: merkleDropMinterV2.address }) - - let scheduleIds = await client.edition.scheduleIds({ - editionAddress: precomputedEditionAddress, - fromBlockOrBlockHash: 0, - }) - - // Make 1 mint schedule per minter - await Promise.all([ - rangeEditionMinter - .connect(artistWallet) - .createEditionMint( - precomputedEditionAddress, - rangeMintConfig.price, - rangeMintConfig.startTime, - rangeMintConfig.cutoffTime, - rangeMintConfig.endTime, - rangeMintConfig.affiliateFeeBPS, - rangeMintConfig.maxMintableLower, - rangeMintConfig.maxMintableUpper, - rangeMintConfig.maxMintablePerAccount, - ), - - rangeEditionMinterV2 - .connect(artistWallet) - .createEditionMint( - precomputedEditionAddress, - rangeMintV2Config.price, - rangeMintV2Config.startTime, - rangeMintV2Config.cutoffTime, - rangeMintV2Config.endTime, - rangeMintV2Config.affiliateFeeBPS, - rangeMintV2Config.maxMintableLower, - rangeMintV2Config.maxMintableUpper, - rangeMintV2Config.maxMintablePerAccount, - ), - - merkleDropMinter - .connect(artistWallet) - .createEditionMint( - precomputedEditionAddress, - merkleMintConfig.merkleRoot, - merkleMintConfig.price, - merkleMintConfig.startTime, - merkleMintConfig.endTime, - merkleMintConfig.affiliateFeeBPS, - merkleMintConfig.maxMintable, - merkleMintConfig.maxMintablePerAccount, - ), - - merkleDropMinterV2 - .connect(artistWallet) - .createEditionMint( - precomputedEditionAddress, - merkleMintV2Config.merkleRoot, - merkleMintV2Config.price, - merkleMintV2Config.startTime, - merkleMintV2Config.endTime, - merkleMintV2Config.affiliateFeeBPS, - merkleMintV2Config.maxMintable, - merkleMintV2Config.maxMintablePerAccount, - ), - ]) - - scheduleIds = await client.edition.scheduleIds({ - editionAddress: precomputedEditionAddress, - fromBlockOrBlockHash: 0, - }) - - expect(scheduleIds).to.have.deep.members([ - { minterAddress: merkleDropMinter.address, mintIds: [0] }, - { minterAddress: merkleDropMinterV2.address, mintIds: [0] }, - { minterAddress: rangeEditionMinter.address, mintIds: [0] }, - { minterAddress: rangeEditionMinterV2.address, mintIds: [0] }, - ]) - }) -}) - -describe('editionMintSchedules', () => { - it('returns mint schedules for given ids', async () => { - await setupTest({}) - const MINT_SCHEDULE_COUNT = 10 - - const rangeMintConfig = getGenericRangeMintConfig({ minterAddress: rangeEditionMinter.address }) - const merkleMintConfig = getGenericMerkleMintConfig({ minterAddress: merkleDropMinter.address }) - - // Make mint schedules - for (let i = 0; i < MINT_SCHEDULE_COUNT; i++) { - await rangeEditionMinter.connect(artistWallet).createEditionMint( - precomputedEditionAddress, - rangeMintConfig.price, - i, // Using startTime to make unique - rangeMintConfig.cutoffTime, - rangeMintConfig.endTime, - rangeMintConfig.affiliateFeeBPS, - rangeMintConfig.maxMintableLower, - rangeMintConfig.maxMintableUpper, - rangeMintConfig.maxMintablePerAccount, - ) - - await merkleDropMinter.connect(artistWallet).createEditionMint( - precomputedEditionAddress, - merkleMintConfig.merkleRoot, - merkleMintConfig.price, - merkleMintConfig.startTime, - merkleMintConfig.endTime, - merkleMintConfig.affiliateFeeBPS, - i, // Using maxMintable to make unique - merkleMintConfig.maxMintablePerAccount, - ) - } - - const rangeMintIds = [0, 3, 5, 7, 9] - const merkleMintIds = [0, 2, 4, 6, 8] - - const schedules = ( - await client.edition.mintSchedules({ - editionAddress: precomputedEditionAddress, - scheduleIds: [ - { minterAddress: rangeEditionMinter.address, mintIds: rangeMintIds }, - { minterAddress: merkleDropMinter.address, mintIds: merkleMintIds }, - ], - }) - ).schedules - - expect(schedules.length).to.equal(rangeMintIds.length + merkleMintIds.length) - - const rangeSchedules = schedules.filter( - (s) => 'minterAddress' in s && s.minterAddress === rangeEditionMinter.address, - ) - const merkleSchedules = schedules.filter( - (s) => 'minterAddress' in s && s.minterAddress === merkleDropMinter.address, - ) - - rangeSchedules.forEach((schedule, i) => { - const id = rangeMintIds[i] - expect(schedule.mintType).to.equal('RangeEdition') - expect(schedule.startTime).to.equal(id) - }) - - merkleSchedules.forEach((schedule, i) => { - const id = merkleMintIds[i] - expect(schedule.mintType).to.equal('MerkleDrop') - assert('maxMintable' in schedule) - expect(schedule.maxMintable).to.equal(id) - }) - }) -}) - -describe('mintSchedules', () => { - beforeEach(async () => { - const mint1StartTime = now() - const mint1EndTime = mint1StartTime + ONE_HOUR - const mint2StartTime = mint1EndTime - - const mint1MaxMintablePerAccount = 40 - const mint2MaxMintablePerAccount = 42 - - const minter = RangeEditionMinterV2__factory.connect(rangeEditionMinter.address, artistWallet) - const minterCalls = [ - { - contractAddress: rangeEditionMinter.address, - calldata: minter.interface.encodeFunctionData('createEditionMint', [ - precomputedEditionAddress, - PRICE, - mint1StartTime, - mint1EndTime - 1, // cutoffTime, - mint1EndTime, - 0, // affiliateFeeBPS - 50, // maxMintableLower, - 60, // maxMintableUpper, - mint1MaxMintablePerAccount, - ]), - }, - { - contractAddress: rangeEditionMinter.address, - calldata: minter.interface.encodeFunctionData('createEditionMint', [ - precomputedEditionAddress, - PRICE, - mint2StartTime, - mint2StartTime + ONE_HOUR, // cutoffTime, - mint2StartTime + ONE_HOUR + 1, // endTime - 0, // affiliateFeeBPS - 99, // maxMintableLower, - 100, // maxMintableUpper, - mint2MaxMintablePerAccount, - ]), - }, - ] - - await setupTest({ minterCalls }) - }) - - it('activeMintSchedules matches and accepts scheduleIds', async () => { - const [dataRaw, scheduleIds] = await Promise.all([ - client.edition - .mintSchedules({ - editionAddress: precomputedEditionAddress, - }) - .then((v) => v.schedules), - client.edition.scheduleIds({ - editionAddress: precomputedEditionAddress, - }), - ]) - - expect(dataRaw.length).to.equal(2) - - const [first, second] = dataRaw - - assert(first && second && 'mintId' in first && 'mintId' in second) - - expect(first.mintId).not.equal(second.mintId) - - const [dataWithScheduleIds, dataNoScheduleIds] = await Promise.all([ - client.edition - .mintSchedules({ - editionAddress: precomputedEditionAddress, - scheduleIds, - }) - .then((v) => v.activeSchedules), - client.edition - .mintSchedules({ - editionAddress: precomputedEditionAddress, - }) - .then((v) => v.activeSchedules), - ]) - - expect(dataNoScheduleIds.length).to.equal(1) - expect(dataWithScheduleIds.length).to.equal(1) - - assert('mintId' in dataWithScheduleIds[0] && 'mintId' in dataNoScheduleIds[0]) - - expect(dataWithScheduleIds[0].mintId).equal(dataNoScheduleIds[0].mintId) - - expect(dataNoScheduleIds[0].mintId).to.equal(first.mintId) - }) -}) - -describe('getContractError returns expected error', () => { - let client: SoundClient - const START_TIME = now() - const MAX_QUANTITY = 10 - const merkleTestHelper = MerkleTestHelper() - const merkleTree = merkleTestHelper.getMerkleTree() - - beforeEach(async () => { - client = SoundClient({ - provider: ethers.provider, - signer: buyerWallet, - merkleProvider: { - merkleProof({ userAddress }) { - return merkleTestHelper.getProof({ merkleTree, address: userAddress }) - }, - }, - }) - }) - - afterEach(async () => { - await setAutoMine(true) - }) - - it('mint attempt on a sold-out edition', async () => { - const minter = RangeEditionMinterV2__factory.connect(rangeEditionMinter.address, artistWallet) - const minterCalls = [ - { - contractAddress: rangeEditionMinter.address, - calldata: minter.interface.encodeFunctionData('createEditionMint', [ - precomputedEditionAddress, - PRICE, - START_TIME, - START_TIME + ONE_HOUR, // cutoffTime, - START_TIME + ONE_HOUR * 2, // endTime, - 0, // affiliateFeeBPS - EDITION_MAX * 2 - 1, // maxMintableLower - EDITION_MAX * 2, // maxMintableUpper - EDITION_MAX * 2, // maxMintablePerAccount, - ]), - }, - ] - - await setupTest({ minterCalls }) - - const { schedules: mintSchedules } = await client.edition.mintSchedules({ - editionAddress: precomputedEditionAddress, - }) - - await setAutoMine(false) - - // Mint full quantity - await client.edition.mint({ mintSchedule: mintSchedules[0], quantity: EDITION_MAX }) - - // Attempt to mint again - const tx = await client.edition.mint({ mintSchedule: mintSchedules[0], quantity: 1 }) - - await mineBlock() - - const customError = await client.getContractError(tx.hash) - - expect(customError).to.equal(ContractErrorName.ExceedsEditionAvailableSupply) - }) - - context('RangeMinter', () => { - it('mint attempt on a sold-out schedule', async () => { - const minter = RangeEditionMinterV2__factory.connect(rangeEditionMinter.address, artistWallet) - const minterCalls = [ - { - contractAddress: rangeEditionMinter.address, - calldata: minter.interface.encodeFunctionData('createEditionMint', [ - precomputedEditionAddress, - PRICE, - START_TIME, - START_TIME + ONE_HOUR, // cutoffTime, - START_TIME + ONE_HOUR * 2, // endTime, - 0, // affiliateFeeBPS - MAX_QUANTITY - 1, // maxMintableLower - MAX_QUANTITY, // maxMintableUpper - MAX_QUANTITY, // maxMintablePerAccount, - ]), - }, - ] - - await setupTest({ minterCalls }) - - const { schedules: mintSchedules } = await client.edition.mintSchedules({ - editionAddress: precomputedEditionAddress, - }) - - await setAutoMine(false) - - // Mint full quantity - client.edition.mint({ mintSchedule: mintSchedules[0], quantity: MAX_QUANTITY }) - - // Attempt to mint again - const tx = await client.edition.mint({ mintSchedule: mintSchedules[0], quantity: 1 }) - - await mineBlock() - - const customError = await client.getContractError(tx.hash) - - expect(customError).to.equal(ContractErrorName.ExceedsAvailableSupply) - }) - - it('mint attempt when user has already hit their max', async () => { - const MAX_MINTABLE_PER_ACCOUNT = 1 - const minter = RangeEditionMinterV2__factory.connect(rangeEditionMinter.address, artistWallet) - const minterCalls = [ - { - contractAddress: rangeEditionMinter.address, - calldata: minter.interface.encodeFunctionData('createEditionMint', [ - precomputedEditionAddress, - PRICE, - START_TIME, - START_TIME + ONE_HOUR, // cutoffTime, - START_TIME + ONE_HOUR * 2, // endTime, - 0, // affiliateFeeBPS - MAX_QUANTITY - 1, // maxMintableLower - MAX_QUANTITY, // maxMintableUpper - MAX_MINTABLE_PER_ACCOUNT, // maxMintablePerAccount, - ]), - }, - ] - - await setupTest({ minterCalls }) - - const { schedules: mintSchedules } = await client.edition.mintSchedules({ - editionAddress: precomputedEditionAddress, - }) - - await setAutoMine(false) - - await client.edition.mint({ mintSchedule: mintSchedules[0], quantity: MAX_MINTABLE_PER_ACCOUNT }) - - // Attempt to mint again - const tx = await client.edition.mint({ mintSchedule: mintSchedules[0], quantity: 1 }) - - await mineBlock() - - const customError = await client.getContractError(tx.hash) - - expect(customError).to.equal(ContractErrorName.ExceedsMaxPerAccount) - }) - }) - - context('MerkleDropMinter', () => { - it('mint attempt on a sold-out schedule', async () => { - const merkleRoot = merkleTestHelper.getMerkleRoot(merkleTree) - const minterCalls = [ - { - contractAddress: merkleDropMinter.address, - calldata: merkleDropMinter.interface.encodeFunctionData('createEditionMint', [ - precomputedEditionAddress, - merkleRoot, - PRICE, - START_TIME, - START_TIME + ONE_HOUR, - 0, // affiliateFeeBPS - MAX_QUANTITY, // maxMintable, - MAX_QUANTITY, // maxMintablePerAccount - ]), - }, - ] - - await setupTest({ minterCalls }) - - const { schedules: mintSchedules } = await client.edition.mintSchedules({ - editionAddress: precomputedEditionAddress, - }) - - await setAutoMine(false) - - // Mint full quantity - await client.edition.mint({ mintSchedule: mintSchedules[0], quantity: MAX_QUANTITY }) - - // Attempt to mint again - const tx = await client.edition.mint({ mintSchedule: mintSchedules[0], quantity: 1 }) - - await mineBlock() - - const customError = await client.getContractError(tx.hash) - - expect(customError).to.equal(ContractErrorName.ExceedsAvailableSupply) - }) - - it('mint attempt when user has already hit their max', async () => { - const MAX_MINTABLE_PER_ACCOUNT = 1 - const merkleRoot = merkleTestHelper.getMerkleRoot(merkleTree) - const minterCalls = [ - { - contractAddress: merkleDropMinter.address, - calldata: merkleDropMinter.interface.encodeFunctionData('createEditionMint', [ - precomputedEditionAddress, - merkleRoot, - PRICE, - START_TIME, - START_TIME + ONE_HOUR, - 0, // affiliateFeeBPS - EDITION_MAX, // maxMintable, - MAX_MINTABLE_PER_ACCOUNT, // maxMintablePerAccount - ]), - }, - ] - - await setupTest({ minterCalls }) - - const { schedules: mintSchedules } = await client.edition.mintSchedules({ - editionAddress: precomputedEditionAddress, - }) - - await setAutoMine(false) - - await client.edition.mint({ mintSchedule: mintSchedules[0], quantity: MAX_MINTABLE_PER_ACCOUNT }) - - // Attempt to mint again - const tx = await client.edition.mint({ mintSchedule: mintSchedules[0], quantity: 1 }) - - await mineBlock() - - const customError = await client.getContractError(tx.hash) - - expect(customError).to.equal(ContractErrorName.ExceedsMaxPerAccount) - }) - }) -}) - -describe('SAM', () => { - let client: SoundClient - const START_TIME = now() - - beforeEach(async () => { - signers = await ethers.getSigners() - soundWallet = signers[0] - artistWallet = signers[1] - buyerWallet = signers[2] - buyer2Wallet = signers[3] - - const fixture = await loadFixture(deployProtocol) - - soundCreator = fixture.soundCreator - precomputedEditionAddress = fixture.precomputedEditionAddress - merkleDropMinter = fixture.merkleDropMinter - rangeEditionMinter = fixture.rangeEditionMinter - samMinter = fixture.samMinter - - client = SoundClient({ - provider: ethers.provider, - signer: soundWallet, - }) - }) - - it('create sam and basic info', async () => { - expect(samMinter).ok - - const editionCreator = client.creation({ - creatorAddress: soundCreator.address, - }) - - const salt = randomUUID() - - const { editionAddress } = await editionCreator.expectedEditionAddress({ - deployer: soundWallet.address, - salt, - }) - - await editionCreator.createEdition({ - salt, - editionConfig: { - name: 'Test', - symbol: 'TEST', - metadataModule: NULL_ADDRESS, - baseURI: 'https://test.com', - contractURI: 'https://test.com', - fundingRecipient: NON_NULL_ADDRESS, - royaltyBPS: 0, - editionMaxMintableLower: 10, - editionMaxMintableUpper: 10, - editionCutoffTime: 999999, - shouldEnableMintRandomness: true, - shouldFreezeMetadata: false, - enableOperatorFiltering: true, - setSAM: { - affiliateFeeBPS: 0, - artistFeeBPS: 0, - basePrice: PRICE, - contractAddress: samMinter.address, - goldenEggFeeBPS: 0, - inflectionPoint: 1500, - inflectionPrice: 20000, - linearPriceSlope: '0', - }, - }, - mintConfigs: [ - { - mintType: 'RangeEdition', - minterAddress: rangeEditionMinter.address, - price: PRICE, - startTime: START_TIME, - cutoffTime: START_TIME + 2, - endTime: START_TIME + 3, - maxMintableLower: 5, - maxMintableUpper: 10, - maxMintablePerAccount: 1, - affiliateFeeBPS: 0, - }, - ], - }) - - const samAddress = await client.edition.sam({ - editionAddress, - }).contract.address - - expect(samAddress).to.eq(samMinter.address) - - const samInfo = await client.edition.sam({ - editionAddress, - }).contract.info - - assert(samInfo) - - const { - affiliateFeeBPS, - affiliateMerkleRoot, - artistFeeBPS, - balance, - basePrice, - buyFreezeTime, - goldenEggFeeBPS, - goldenEggFeesAccrued, - inflectionPoint, - inflectionPrice, - linearPriceSlope, - maxSupply, - supply, - platformFeeBPS, - platformPerTxFlatFee, - } = samInfo - - expect({ - affiliateFeeBPS, - affiliateMerkleRoot, - artistFeeBPS, - balance, - basePrice, - buyFreezeTime, - goldenEggFeeBPS, - goldenEggFeesAccrued, - inflectionPoint, - inflectionPrice, - linearPriceSlope, - maxSupply, - supply, - platformFeeBPS, - platformPerTxFlatFee, - }).to.deep.eq({ - affiliateFeeBPS: 0, - affiliateMerkleRoot, - artistFeeBPS: 0, - balance: BigNumber.from(0), - basePrice: BigNumber.from(PRICE), - buyFreezeTime: UINT32_MAX, - goldenEggFeeBPS: 0, - goldenEggFeesAccrued: BigNumber.from(0), - inflectionPoint: 1500, - inflectionPrice: BigNumber.from(20000), - linearPriceSlope: BigNumber.from(0), - maxSupply: UINT32_MAX, - supply: 0, - platformFeeBPS: 0, - platformPerTxFlatFee: BigNumber.from(0), - } satisfies typeof samInfo) - }) - - it('create sam buy and sell', async () => { - expect(samMinter).ok - - const editionCreator = client.creation({ - creatorAddress: soundCreator.address, - }) - - const salt = randomUUID() - - const { editionAddress } = await editionCreator.expectedEditionAddress({ - deployer: soundWallet.address, - salt, - }) - - await editionCreator.createEdition({ - salt, - editionConfig: { - name: 'Test', - symbol: 'TEST', - metadataModule: NULL_ADDRESS, - baseURI: 'https://test.com', - contractURI: 'https://test.com', - fundingRecipient: NON_NULL_ADDRESS, - royaltyBPS: 0, - editionMaxMintableLower: 10, - editionMaxMintableUpper: 10, - editionCutoffTime: 999999, - shouldEnableMintRandomness: true, - shouldFreezeMetadata: false, - enableOperatorFiltering: true, - setSAM: { - affiliateFeeBPS: 0, - artistFeeBPS: 0, - basePrice: PRICE, - contractAddress: samMinter.address, - goldenEggFeeBPS: 0, - inflectionPoint: 1500, - inflectionPrice: 20000, - linearPriceSlope: '0', - }, - }, - mintConfigs: [ - { - mintType: 'RangeEdition', - minterAddress: rangeEditionMinter.address, - price: PRICE, - startTime: START_TIME, - cutoffTime: START_TIME + 1000, - endTime: START_TIME + 2000, - maxMintableLower: 5, - maxMintableUpper: 10, - maxMintablePerAccount: 999, - affiliateFeeBPS: 0, - }, - ], - }) - - const samAddress = await client.edition.sam({ - editionAddress, - }).contract.address - - expect(samAddress).to.eq(samMinter.address) - - expect( - await client.edition.info({ - contractAddress: editionAddress, - }).contract.isVersionAtLeastV1_2, - ).eq(true) - - const { - activeSchedules: [mintSchedule], - } = await client.edition.mintSchedules({ - editionAddress, - }) - - assert(mintSchedule) - - await client.edition.mint({ - mintSchedule: mintSchedule, - quantity: 10, - }) - - expect( - await client.edition - .info({ - contractAddress: editionAddress, - }) - .contract.info.then((v) => v.totalMinted.toNumber()), - ).eq(10) - - const sam = client.edition.sam({ - editionAddress, - }) - - const totalBuyPrice = await sam.contract.totalBuyPrice({ - quantity: 10, - offset: 0, - }) - - assert(totalBuyPrice) - - await sam.contract.buy({ - maxTotalValue: totalBuyPrice.total, - quantity: 10, - }) - - expect( - await client.edition - .info({ - contractAddress: editionAddress, - }) - .contract.info.then((v) => v.totalMinted.toNumber()), - ).eq(20) - - const totalSellPrice = await sam.contract.totalSellPrice({ - quantity: 5, - offset: 0, - }) - - assert(totalSellPrice) - - await sam.contract.sell({ - minimumPayout: totalSellPrice, - tokenIds: [1, 2, 3, 4, 5], - }) - - expect( - await client.edition - .info({ - contractAddress: editionAddress, - }) - .contract.info.then((v) => v.totalMinted.toNumber()), - ).eq(20) - - expect( - await client.edition - .info({ - contractAddress: editionAddress, - }) - .contract.info.then((v) => v.totalBurned.toNumber()), - ).eq(5) - }) -}) - -describe('Legacy protocol versions', () => { - it('Sound v1.1', async () => { - const { soundCreatorV1_1 } = await loadFixture(deployProtocol) - - const startTime = now() - - const salt = randomUUID() - const saltBytes = getSaltAsBytes32(salt) - - const { addr: expectedEditionAddress } = await soundCreatorV1_1 - .connect(soundCreatorV1_1.address) - .soundEditionAddress(artistWallet.address, saltBytes) - - const minter = RangeEditionMinter__factory.connect(rangeEditionMinter.address, artistWallet) - const minterCalls = [ - { - contractAddress: rangeEditionMinter.address, - calldata: minter.interface.encodeFunctionData('createEditionMint', [ - expectedEditionAddress, - PRICE, - startTime, - startTime + ONE_HOUR, // cutoffTime, - startTime + ONE_HOUR * 2, // endTime, - 0, // affiliateFeeBPS - 4, // maxMintableLower - 4, // maxMintableUpper - 1, // maxMintablePerAccount, - ]), - }, - ] - - const editionInterface = new ethers.utils.Interface(SoundEditionV1_1__factory.abi) - const editionInitData = editionInterface.encodeFunctionData('initialize', [ - 'Song Name', - 'SYMBOL', - NULL_ADDRESS, - 'https://baseURI.com', - 'https://contractURI.com', - NON_NULL_ADDRESS, - 0, //royaltyBPS, - EDITION_MAX, // maxMintableLower - EDITION_MAX, // maxMintableUpper - UINT32_MAX, // cutoffTime - 2, - ]) - - const grantRolesCalls = [ - { - contractAddress: expectedEditionAddress, - calldata: editionInterface.encodeFunctionData('grantRoles', [rangeEditionMinter.address, MINTER_ROLE]), - }, - ] - - const allContractCalls = [...grantRolesCalls, ...minterCalls] - - await soundCreatorV1_1.connect(artistWallet).createSoundAndMints( - getSaltAsBytes32(salt), - editionInitData, - allContractCalls.map((d) => d.contractAddress), - allContractCalls.map((d) => d.calldata), - ) - - const client = SoundClient({ - signer: artistWallet, - }) - - expect(await client.isSoundEdition({ editionAddress: expectedEditionAddress })).eq(true) - - expect( - await client.edition.info({ - contractAddress: expectedEditionAddress, - }).contract.isVersionAtLeastV1_2, - ).eq(false) - - expect(await client.edition.sam({ editionAddress: expectedEditionAddress }).contract.address).eq(null) - - const { name, symbol } = await client.edition.info({ - contractAddress: expectedEditionAddress, - }).contract.info - - expect({ name, symbol }).deep.eq({ - name: 'Song Name', - symbol: 'SYMBOL', - }) - - const { schedules } = await client.edition.mintSchedules({ - editionAddress: expectedEditionAddress, - }) - - expect(schedules.length).eq(1) - - expect(schedules[0].startTime).eq(startTime) - }) - - it('Sound v1.0', async () => { - const { soundCreatorV1_0 } = await loadFixture(deployProtocol) - - const startTime = now() - - const salt = randomUUID() - const saltBytes = getSaltAsBytes32(salt) - - const { addr: expectedEditionAddress } = await soundCreatorV1_0 - .connect(soundCreatorV1_0.address) - .soundEditionAddress(artistWallet.address, saltBytes) - - const minter = RangeEditionMinter__factory.connect(rangeEditionMinter.address, artistWallet) - const minterCalls = [ - { - contractAddress: rangeEditionMinter.address, - calldata: minter.interface.encodeFunctionData('createEditionMint', [ - expectedEditionAddress, - PRICE, - startTime, - startTime + ONE_HOUR, // cutoffTime, - startTime + ONE_HOUR * 2, // endTime, - 0, // affiliateFeeBPS - 4, // maxMintableLower - 4, // maxMintableUpper - 1, // maxMintablePerAccount, - ]), - }, - ] - - const editionInterface = new ethers.utils.Interface(SoundEditionV1__factory.abi) - const editionInitData = editionInterface.encodeFunctionData('initialize', [ - 'Song Name', - 'SYMBOL', - NULL_ADDRESS, - 'https://baseURI.com', - 'https://contractURI.com', - NON_NULL_ADDRESS, - 0, //royaltyBPS, - EDITION_MAX, // maxMintableLower - EDITION_MAX, // maxMintableUpper - UINT32_MAX, // cutoffTime - 2, - ]) - - const grantRolesCalls = [ - { - contractAddress: expectedEditionAddress, - calldata: editionInterface.encodeFunctionData('grantRoles', [rangeEditionMinter.address, MINTER_ROLE]), - }, - ] - - const allContractCalls = [...grantRolesCalls, ...minterCalls] - - await soundCreatorV1_0.connect(artistWallet).createSoundAndMints( - getSaltAsBytes32(salt), - editionInitData, - allContractCalls.map((d) => d.contractAddress), - allContractCalls.map((d) => d.calldata), - ) - - const client = SoundClient({ - signer: artistWallet, - }) - - expect(await client.isSoundEdition({ editionAddress: expectedEditionAddress })).eq(true) - - expect( - await client.edition.info({ - contractAddress: expectedEditionAddress, - }).contract.isVersionAtLeastV1_2, - ).eq(false) - - expect(await client.edition.sam({ editionAddress: expectedEditionAddress }).contract.address).eq(null) - - const { name, symbol } = await client.edition.info({ - contractAddress: expectedEditionAddress, - }).contract.info - - expect({ name, symbol }).deep.eq({ - name: 'Song Name', - symbol: 'SYMBOL', - }) - - const { schedules } = await client.edition.mintSchedules({ - editionAddress: expectedEditionAddress, - }) - - expect(schedules.length).eq(1) - - expect(schedules[0].startTime).eq(startTime) - }) -}) diff --git a/packages/sdk/test/helpers/api.ts b/packages/sdk/test/helpers/api.ts deleted file mode 100644 index d76010f1..00000000 --- a/packages/sdk/test/helpers/api.ts +++ /dev/null @@ -1,28 +0,0 @@ -import type { SoundAPI } from '../../src/api' - -export function MockAPI(api?: Partial): SoundAPI { - return { - async check() { - return null - }, - async merkleProof() { - return null - }, - async releaseInfo() { - return { - data: null, - } - }, - async releaseShareInfo() { - return { - data: null, - } - }, - async editionOwnedTokenIds() { - return { - data: null, - } - }, - ...api, - } -} diff --git a/packages/sdk/test/helpers/index.ts b/packages/sdk/test/helpers/index.ts deleted file mode 100644 index 4cbca284..00000000 --- a/packages/sdk/test/helpers/index.ts +++ /dev/null @@ -1,78 +0,0 @@ -import { ethers } from 'hardhat' - -import { NON_NULL_ADDRESS, NULL_ADDRESS } from '../../src/utils/constants' -import { ONE_HOUR, PRICE } from '../test-constants' -import { MerkleTestHelper } from './merkle' - -import type { EditionConfig, MerkleDropConfig, RangeEditionConfig } from '../../src/types' -export function now() { - return Math.floor(Date.now() / 1000) -} - -export const getGenericEditionConfig = () => - ({ - name: 'Test', - symbol: 'TEST', - metadataModule: NULL_ADDRESS, - baseURI: 'https://test.com', - contractURI: 'https://test.com', - fundingRecipient: NON_NULL_ADDRESS, - royaltyBPS: 0, - editionMaxMintableLower: 10, - editionMaxMintableUpper: 10, - editionCutoffTime: 999999, - shouldEnableMintRandomness: true, - shouldFreezeMetadata: false, - enableOperatorFiltering: true, - - setSAM: null, - } satisfies EditionConfig) - -const startTime = now() -const cutoffTime = startTime + ONE_HOUR / 2 -const endTime = cutoffTime + ONE_HOUR - -export const getGenericRangeMintConfig = ({ minterAddress }: { minterAddress: string }): RangeEditionConfig => ({ - mintType: 'RangeEdition' as const, - minterAddress, - price: PRICE, - startTime, - cutoffTime, - endTime, - maxMintableLower: 3, - maxMintableUpper: 4, - maxMintablePerAccount: 1, - affiliateFeeBPS: 0, -}) - -export const getGenericMerkleMintConfig = ({ minterAddress }: { minterAddress: string }): MerkleDropConfig => { - const merkleTestHelper = MerkleTestHelper() - const merkleTree = merkleTestHelper.getMerkleTree() - const merkleRoot = merkleTestHelper.getMerkleRoot(merkleTree) - - return { - mintType: 'MerkleDrop' as const, - minterAddress, - price: PRICE, - startTime, - endTime, - maxMintable: 4, - maxMintablePerAccount: 1, - affiliateFeeBPS: 0, - merkleRoot, - } -} - -export const didntThrowExpectedError = () => { - throw Error(`Didn't throw expected error`) -} - -export const mineBlock = async () => { - await ethers.provider.send('evm_mine', []) -} - -export const setAutoMine = async (turnOn: boolean) => { - await ethers.provider.send('evm_setAutomine', [turnOn]) -} - -export { MerkleTestHelper } diff --git a/packages/sdk/test/helpers/merkle.ts b/packages/sdk/test/helpers/merkle.ts deleted file mode 100644 index 88aa431d..00000000 --- a/packages/sdk/test/helpers/merkle.ts +++ /dev/null @@ -1,45 +0,0 @@ -import { keccak256 as solidityKeccak256 } from '@ethersproject/solidity' -import keccak256 from 'keccak256' -import { MerkleTree } from 'merkletreejs' - -// default addresses generated for 'test test ...' mnemonic -const snapshot = [ - '0xb0a36b3cedf210f37a5e7bc28d4b8e91d4e3c412', - '0x6fc4792b1bbe0df6b0d80e9cc7bd61d872bf2768', - '0xe34056ad5a4dbe825ea93cfb5b62ab5f2548c294', - '0x1372c547e54733ea35f28ef3ab00d4816a488208', - '0xde8cdc32a83854e55928ad0f881664e08ec4465a', -] - -const getNodeLeaf = (address: string) => { - return Buffer.from(solidityKeccak256(['address'], [address]).slice(2), 'hex') -} - -export const MerkleTestHelper = () => { - function getMerkleTree(): MerkleTree { - const merkleTree = new MerkleTree( - snapshot.map((address) => getNodeLeaf(address)), - keccak256, - { sortPairs: true }, - ) - - return merkleTree - } - - function getMerkleRoot(merkleTree: MerkleTree): string { - return merkleTree.getHexRoot() - } - - function getProof({ merkleTree, address }: { merkleTree: MerkleTree; address: string }) { - return merkleTree.getHexProof(getNodeLeaf(address)) - } - - const emptyMerkleTree = new MerkleTree([], keccak256, { sortPairs: true }) - - return { - getMerkleTree, - getMerkleRoot, - getProof, - emptyMerkleTree, - } -} diff --git a/packages/sdk/test/test-constants.ts b/packages/sdk/test/test-constants.ts deleted file mode 100644 index f00c96b1..00000000 --- a/packages/sdk/test/test-constants.ts +++ /dev/null @@ -1,8 +0,0 @@ -import { getSaltAsBytes32 } from '../src/utils/helpers' - -export const DEFAULT_SALT = getSaltAsBytes32(12345678) -export const SOUND_FEE = 0 -export const ONE_HOUR = 3600 -export const PRICE = 420420420 -export const BAD_ADDRESS = 'not an address' -export const EDITION_MAX = 100 diff --git a/packages/subgraph/package.json b/packages/subgraph/package.json index 6041e910..0d9366a7 100644 --- a/packages/subgraph/package.json +++ b/packages/subgraph/package.json @@ -13,12 +13,12 @@ "author": "Saihajpreet Singh (https://saihaj.dev/)", "license": "MIT", "dependencies": { - "@graphprotocol/graph-cli": "0.46.1", - "@graphprotocol/graph-ts": "0.29.3" + "@graphprotocol/graph-cli": "0.59.0", + "@graphprotocol/graph-ts": "0.31.0" }, "devDependencies": { "@graphprotocol/graph-cli": "^0.35.0", "js-yaml": "^4.1.0", - "matchstick-as": "0.5.2" + "matchstick-as": "0.6.0" } } diff --git a/packages/tiered-sdk-viem/codegen.yml b/packages/tiered-sdk-viem/codegen.yml index d28a868b..dd9fcaaa 100644 --- a/packages/tiered-sdk-viem/codegen.yml +++ b/packages/tiered-sdk-viem/codegen.yml @@ -1,4 +1,4 @@ -schema: './schema.graphql' +schema: '../../schema.graphql' documents: - './graphql/**/*.gql' generates: diff --git a/packages/tiered-sdk-viem/package.json b/packages/tiered-sdk-viem/package.json index 04cfeec0..310f0d1b 100644 --- a/packages/tiered-sdk-viem/package.json +++ b/packages/tiered-sdk-viem/package.json @@ -36,20 +36,20 @@ }, "dependencies": { "keccak256": "^1.0.6", - "zod": "^3.21.4" + "zod": "^3.22.4" }, "devDependencies": { "@ethersproject/solidity": "^5.7.0", - "@types/node": "20.4.5", + "@types/node": "20.8.6", "@viem/anvil": "^0.0.6", "bob-ts": "^4.1.1", "bob-tsm": "^1.1.2", "cross-undici-fetch": "^0.4.14", - "esbuild": "^0.18.17", + "esbuild": "^0.19.4", "merkletreejs": "^0.3.10", - "require-env-variable": "^4.0.1", - "typescript": "5.1.6", - "viem": "^1.10.9" + "require-env-variable": "^4.0.2", + "typescript": "5.2.2", + "viem": "^1.16.6" }, "peerDependencies": { "viem": "^1.10.9" diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 6418dd60..3571b39d 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -35,56 +35,56 @@ importers: specifier: ^0.5.9 version: 0.5.9 '@manypkg/get-packages': - specifier: ^1.1.3 - version: 1.1.3 + specifier: ^2.2.0 + version: 2.2.0 '@types/node': - specifier: 20.4.5 - version: 20.4.5 + specifier: 20.8.6 + version: 20.8.6 '@typescript-eslint/eslint-plugin': - specifier: ^6.2.0 - version: 6.2.0(@typescript-eslint/parser@6.2.0)(eslint@8.45.0)(typescript@5.1.6) + specifier: ^6.8.0 + version: 6.8.0(@typescript-eslint/parser@6.8.0)(eslint@8.51.0)(typescript@5.2.2) '@typescript-eslint/parser': - specifier: ^6.2.0 - version: 6.2.0(eslint@8.45.0)(typescript@5.1.6) + specifier: ^6.8.0 + version: 6.8.0(eslint@8.51.0)(typescript@5.2.2) dotenv-vault: specifier: ^1.25.0 - version: 1.25.0(@types/node@20.4.5)(typescript@5.1.6) + version: 1.25.0(@types/node@20.8.6)(typescript@5.2.2) eslint: - specifier: ^8.45.0 - version: 8.45.0 + specifier: ^8.51.0 + version: 8.51.0 eslint-config-prettier: - specifier: ^8.9.0 - version: 8.9.0(eslint@8.45.0) + specifier: ^9.0.0 + version: 9.0.0(eslint@8.51.0) eslint-plugin-prettier: - specifier: ^5.0.0 - version: 5.0.0(eslint-config-prettier@8.9.0)(eslint@8.45.0)(prettier@3.0.0) + specifier: ^5.0.1 + version: 5.0.1(eslint-config-prettier@9.0.0)(eslint@8.51.0)(prettier@3.0.3) husky: specifier: ^8.0.3 version: 8.0.3 lint-staged: - specifier: ^13.2.3 - version: 13.2.3 + specifier: ^15.0.1 + version: 15.0.1 prettier: - specifier: ^3.0.0 - version: 3.0.0 + specifier: ^3.0.3 + version: 3.0.3 rimraf: - specifier: ^5.0.1 - version: 5.0.1 + specifier: ^5.0.5 + version: 5.0.5 semver: specifier: ^7.5.4 version: 7.5.4 typescript: - specifier: 5.1.6 - version: 5.1.6 + specifier: 5.2.2 + version: 5.2.2 vitest: - specifier: ^0.34.1 - version: 0.34.1 + specifier: ^0.34.6 + version: 0.34.6 example: dependencies: '@soundxyz/sdk': specifier: workspace:^ - version: link:../packages/sdk/dist + version: link:../packages/sdk '@soundxyz/sound-protocol': specifier: ^1.7.0 version: 1.7.0 @@ -92,8 +92,8 @@ importers: specifier: workspace:^ version: link:../packages/tiered-sdk-viem/dist alchemy-sdk: - specifier: ^2.9.2 - version: 2.9.2 + specifier: ^2.10.1 + version: 2.10.1 date-fns: specifier: ^2.30.0 version: 2.30.0 @@ -101,29 +101,29 @@ importers: specifier: ^5.7.2 version: 5.7.2 require-env-variable: - specifier: ^4.0.1 - version: 4.0.1 + specifier: ^4.0.2 + version: 4.0.2 devDependencies: '@types/node': - specifier: 20.4.5 - version: 20.4.5 + specifier: 20.8.6 + version: 20.8.6 bob-tsm: specifier: ^1.1.2 - version: 1.1.2(esbuild@0.18.17)(typescript@5.1.6) + version: 1.1.2(esbuild@0.19.4)(typescript@5.2.2) dotenv: specifier: ^16.3.1 version: 16.3.1 esbuild: - specifier: ^0.18.17 - version: 0.18.17 + specifier: ^0.19.4 + version: 0.19.4 typescript: - specifier: 5.1.6 - version: 5.1.6 + specifier: 5.2.2 + version: 5.2.2 undici: - specifier: ^5.22.1 - version: 5.22.1 + specifier: ^5.26.3 + version: 5.26.3 - packages/sdk: + packages/old-sdk: dependencies: '@ethersproject/abstract-provider': specifier: ^5.7.0 @@ -138,8 +138,8 @@ importers: specifier: ^1.0.6 version: 1.0.6 zod: - specifier: ^3.21.4 - version: 3.21.4 + specifier: ^3.22.4 + version: 3.22.4 devDependencies: '@ethersproject/abi': specifier: ^5.7.0 @@ -170,40 +170,28 @@ importers: version: 5.7.0 '@graphql-codegen/cli': specifier: ^5.0.0 - version: 5.0.0(@types/node@20.4.5)(graphql@16.7.1) + version: 5.0.0(@parcel/watcher@2.3.0)(@types/node@20.8.6)(graphql@16.8.1)(typescript@5.2.2) '@graphql-codegen/core': specifier: ^4.0.0 - version: 4.0.0(graphql@16.7.1) + version: 4.0.0(graphql@16.8.1) '@graphql-codegen/typescript': specifier: ^4.0.1 - version: 4.0.1(graphql@16.7.1) + version: 4.0.1(graphql@16.8.1) '@graphql-codegen/typescript-document-nodes': specifier: ^4.0.1 - version: 4.0.1(graphql@16.7.1) + version: 4.0.1(graphql@16.8.1) '@graphql-codegen/typescript-operations': specifier: ^4.0.1 - version: 4.0.1(graphql@16.7.1) + version: 4.0.1(graphql@16.8.1) '@graphql-inspector/cli': specifier: ^4.0.2 - version: 4.0.2(@types/node@20.4.5)(graphql@16.7.1) + version: 4.0.2(@types/node@20.8.6)(graphql@16.8.1) '@graphql-inspector/config': specifier: ^4.0.1 - version: 4.0.1(graphql@16.7.1) + version: 4.0.1(graphql@16.8.1) '@graphql-tools/utils': - specifier: ^10.0.4 - version: 10.0.4(graphql@16.7.1) - '@nomicfoundation/hardhat-chai-matchers': - specifier: ^1.0.6 - version: 1.0.6(@nomiclabs/hardhat-ethers@2.2.3)(chai@4.3.7)(ethers@5.7.2)(hardhat@2.17.0) - '@nomicfoundation/hardhat-network-helpers': - specifier: ^1.0.8 - version: 1.0.8(hardhat@2.17.0) - '@nomiclabs/hardhat-ethers': - specifier: ^2.2.3 - version: 2.2.3(ethers@5.7.2)(hardhat@2.17.0) - '@nomiclabs/hardhat-waffle': - specifier: ^2.0.6 - version: 2.0.6(@nomiclabs/hardhat-ethers@2.2.3)(@types/sinon-chai@3.2.9)(ethereum-waffle@4.0.10)(ethers@5.7.2)(hardhat@2.17.0) + specifier: ^10.0.7 + version: 10.0.7(graphql@16.8.1) '@soundxyz/sound-protocol': specifier: ^1.7.0 version: 1.7.0 @@ -214,23 +202,23 @@ importers: specifier: npm:@soundxyz/sound-protocol@1.3.0 version: /@soundxyz/sound-protocol@1.3.0 '@types/chai': - specifier: ^4.3.5 - version: 4.3.5 + specifier: ^4.3.8 + version: 4.3.8 '@types/mocha': - specifier: ^10.0.1 - version: 10.0.1 + specifier: ^10.0.2 + version: 10.0.2 '@types/node': - specifier: 20.4.5 - version: 20.4.5 + specifier: 20.8.6 + version: 20.8.6 bob-ts: specifier: ^4.1.1 - version: 4.1.1(@types/node@20.4.5)(esbuild@0.18.17)(typescript@5.1.6) + version: 4.1.1(@types/node@20.8.6)(esbuild@0.19.4)(typescript@5.2.2) bob-tsm: specifier: ^1.1.2 - version: 1.1.2(esbuild@0.18.17)(typescript@5.1.6) + version: 1.1.2(esbuild@0.19.4)(typescript@5.2.2) chai: - specifier: ^4.3.7 - version: 4.3.7 + specifier: ^4.3.10 + version: 4.3.10 changesets-github-release: specifier: ^0.1.0 version: 0.1.0 @@ -238,120 +226,159 @@ importers: specifier: ^16.3.1 version: 16.3.1 esbuild: - specifier: ^0.18.17 - version: 0.18.17 + specifier: ^0.19.4 + version: 0.19.4 ethereum-waffle: specifier: ^4.0.10 - version: 4.0.10(@ensdomains/ens@0.4.5)(@ensdomains/resolver@0.2.4)(@ethersproject/abi@5.7.0)(@ethersproject/bytes@5.7.0)(@ethersproject/providers@5.7.2)(ethers@5.7.2)(typescript@5.1.6) + version: 4.0.10(@ensdomains/ens@0.4.5)(@ensdomains/resolver@0.2.4)(@ethersproject/abi@5.7.0)(@ethersproject/providers@5.7.2)(ethers@5.7.2)(typescript@5.2.2) ethers: specifier: ^5.7.2 version: 5.7.2 graphql: - specifier: ^16.7.1 - version: 16.7.1 - hardhat: - specifier: ^2.17.0 - version: 2.17.0(ts-node@10.9.1)(typescript@5.1.6) + specifier: ^16.8.1 + version: 16.8.1 merkletreejs: specifier: ^0.3.10 version: 0.3.10 prettier: - specifier: ^3.0.0 - version: 3.0.0 + specifier: ^3.0.3 + version: 3.0.3 require-env-variable: - specifier: ^4.0.1 - version: 4.0.1 + specifier: ^4.0.2 + version: 4.0.2 ts-node: specifier: ^10.9.1 - version: 10.9.1(@types/node@20.4.5)(typescript@5.1.6) + version: 10.9.1(@types/node@20.8.6)(typescript@5.2.2) tslib: - specifier: ^2.6.1 - version: 2.6.1 + specifier: ^2.6.2 + version: 2.6.2 typescript: - specifier: 5.1.6 - version: 5.1.6 + specifier: 5.2.2 + version: 5.2.2 publishDirectory: dist + packages/sdk: + devDependencies: + '@graphql-codegen/cli': + specifier: ^5.0.0 + version: 5.0.0(@parcel/watcher@2.3.0)(@types/node@20.8.6)(graphql@16.8.1)(typescript@5.2.2) + '@graphql-codegen/core': + specifier: ^4.0.0 + version: 4.0.0(graphql@16.8.1) + '@graphql-inspector/cli': + specifier: ^4.0.2 + version: 4.0.2(@types/node@20.8.6)(graphql@16.8.1) + '@graphql-inspector/config': + specifier: ^4.0.1 + version: 4.0.1(graphql@16.8.1) + '@parcel/watcher': + specifier: ^2.3.0 + version: 2.3.0 + '@soundxyz/codegen-fragments': + specifier: ^2.0.0 + version: 2.0.0(@graphql-codegen/core@4.0.0)(@soundxyz/gql-string@0.1.0)(graphql@16.8.1) + '@types/node': + specifier: 20.8.6 + version: 20.8.6 + bob-ts: + specifier: ^4.1.1 + version: 4.1.1(@types/node@20.8.6)(esbuild@0.19.4)(typescript@5.2.2) + esbuild: + specifier: ^0.19.4 + version: 0.19.4 + prettier: + specifier: ^3.0.3 + version: 3.0.3 + typescript: + specifier: 5.2.2 + version: 5.2.2 + viem: + specifier: ^1.16.6 + version: 1.16.6(typescript@5.2.2)(zod@3.22.4) + zod: + specifier: ^3.22.4 + version: 3.22.4 + packages/sdk-viem: dependencies: keccak256: specifier: ^1.0.6 version: 1.0.6 zod: - specifier: ^3.21.4 - version: 3.21.4 + specifier: ^3.22.4 + version: 3.22.4 devDependencies: '@ethersproject/solidity': specifier: ^5.7.0 version: 5.7.0 '@graphql-codegen/cli': specifier: ^5.0.0 - version: 5.0.0(@types/node@20.4.5)(graphql@16.7.1) + version: 5.0.0(@parcel/watcher@2.3.0)(@types/node@20.8.6)(graphql@16.8.1)(typescript@5.2.2) '@graphql-codegen/core': specifier: ^4.0.0 - version: 4.0.0(graphql@16.7.1) + version: 4.0.0(graphql@16.8.1) '@graphql-codegen/typescript': specifier: ^4.0.1 - version: 4.0.1(graphql@16.7.1) + version: 4.0.1(graphql@16.8.1) '@graphql-codegen/typescript-document-nodes': specifier: ^4.0.1 - version: 4.0.1(graphql@16.7.1) + version: 4.0.1(graphql@16.8.1) '@graphql-codegen/typescript-operations': specifier: ^4.0.1 - version: 4.0.1(graphql@16.7.1) + version: 4.0.1(graphql@16.8.1) '@graphql-inspector/cli': specifier: ^4.0.2 - version: 4.0.2(@types/node@20.4.5)(graphql@16.7.1) + version: 4.0.2(@types/node@20.8.6)(graphql@16.8.1) '@graphql-inspector/config': specifier: ^4.0.1 - version: 4.0.1(graphql@16.7.1) + version: 4.0.1(graphql@16.8.1) '@graphql-tools/utils': - specifier: ^10.0.4 - version: 10.0.4(graphql@16.7.1) + specifier: ^10.0.7 + version: 10.0.7(graphql@16.8.1) '@types/node': - specifier: 20.4.5 - version: 20.4.5 + specifier: 20.8.6 + version: 20.8.6 '@viem/anvil': specifier: ^0.0.6 version: 0.0.6 bob-ts: specifier: ^4.1.1 - version: 4.1.1(@types/node@20.4.5)(esbuild@0.18.17)(typescript@5.1.6) + version: 4.1.1(@types/node@20.8.6)(esbuild@0.19.4)(typescript@5.2.2) bob-tsm: specifier: ^1.1.2 - version: 1.1.2(esbuild@0.18.17)(typescript@5.1.6) + version: 1.1.2(esbuild@0.19.4)(typescript@5.2.2) esbuild: - specifier: ^0.18.17 - version: 0.18.17 + specifier: ^0.19.4 + version: 0.19.4 merkletreejs: specifier: ^0.3.10 version: 0.3.10 require-env-variable: - specifier: ^4.0.1 - version: 4.0.1 + specifier: ^4.0.2 + version: 4.0.2 typescript: - specifier: 5.1.6 - version: 5.1.6 + specifier: 5.2.2 + version: 5.2.2 viem: - specifier: ^1.10.8 - version: 1.10.9(typescript@5.1.6)(zod@3.21.4) + specifier: ^1.16.6 + version: 1.16.6(typescript@5.2.2)(zod@3.22.4) publishDirectory: dist packages/subgraph: dependencies: '@graphprotocol/graph-cli': - specifier: 0.46.1 - version: 0.46.1(@types/node@20.4.5)(node-fetch@3.3.1)(typescript@5.1.6) + specifier: 0.59.0 + version: 0.59.0(@types/node@20.8.6)(node-fetch@3.3.2)(typescript@5.2.2) '@graphprotocol/graph-ts': - specifier: 0.29.3 - version: 0.29.3 + specifier: 0.31.0 + version: 0.31.0 devDependencies: js-yaml: specifier: ^4.1.0 version: 4.1.0 matchstick-as: - specifier: 0.5.2 - version: 0.5.2 + specifier: 0.6.0 + version: 0.6.0 packages/tiered-sdk-viem: dependencies: @@ -359,42 +386,42 @@ importers: specifier: ^1.0.6 version: 1.0.6 zod: - specifier: ^3.21.4 - version: 3.21.4 + specifier: ^3.22.4 + version: 3.22.4 devDependencies: '@ethersproject/solidity': specifier: ^5.7.0 version: 5.7.0 '@types/node': - specifier: 20.4.5 - version: 20.4.5 + specifier: 20.8.6 + version: 20.8.6 '@viem/anvil': specifier: ^0.0.6 version: 0.0.6 bob-ts: specifier: ^4.1.1 - version: 4.1.1(@types/node@20.4.5)(esbuild@0.18.17)(typescript@5.1.6) + version: 4.1.1(@types/node@20.8.6)(esbuild@0.19.4)(typescript@5.2.2) bob-tsm: specifier: ^1.1.2 - version: 1.1.2(esbuild@0.18.17)(typescript@5.1.6) + version: 1.1.2(esbuild@0.19.4)(typescript@5.2.2) cross-undici-fetch: specifier: ^0.4.14 version: 0.4.14 esbuild: - specifier: ^0.18.17 - version: 0.18.17 + specifier: ^0.19.4 + version: 0.19.4 merkletreejs: specifier: ^0.3.10 version: 0.3.10 require-env-variable: - specifier: ^4.0.1 - version: 4.0.1 + specifier: ^4.0.2 + version: 4.0.2 typescript: - specifier: 5.1.6 - version: 5.1.6 + specifier: 5.2.2 + version: 5.2.2 viem: - specifier: ^1.10.9 - version: 1.10.9(typescript@5.1.6)(zod@3.21.4) + specifier: ^1.16.6 + version: 1.16.6(typescript@5.2.2)(zod@3.22.4) publishDirectory: dist packages: @@ -413,27 +440,27 @@ packages: engines: {node: '>=6.0.0'} dependencies: '@jridgewell/gen-mapping': 0.3.3 - '@jridgewell/trace-mapping': 0.3.18 + '@jridgewell/trace-mapping': 0.3.19 dev: true - /@ardatan/relay-compiler@12.0.0(graphql@16.7.1): + /@ardatan/relay-compiler@12.0.0(graphql@16.8.1): resolution: {integrity: sha512-9anThAaj1dQr6IGmzBMcfzOQKTa5artjuPmw8NYK/fiGEMjADbSguBY2FMDykt+QhilR3wc9VA/3yVju7JHg7Q==} hasBin: true peerDependencies: graphql: '*' dependencies: - '@babel/core': 7.22.9 - '@babel/generator': 7.22.9 - '@babel/parser': 7.22.7 - '@babel/runtime': 7.22.6 - '@babel/traverse': 7.22.8 - '@babel/types': 7.22.5 - babel-preset-fbjs: 3.4.0(@babel/core@7.22.9) + '@babel/core': 7.23.2 + '@babel/generator': 7.23.0 + '@babel/parser': 7.23.0 + '@babel/runtime': 7.23.2 + '@babel/traverse': 7.23.2 + '@babel/types': 7.23.0 + babel-preset-fbjs: 3.4.0(@babel/core@7.23.2) chalk: 4.1.2 fb-watchman: 2.0.2 fbjs: 3.0.5 glob: 7.2.3 - graphql: 16.7.1 + graphql: 16.8.1 immutable: 3.7.6 invariant: 2.2.4 nullthrows: 1.1.1 @@ -449,19 +476,20 @@ packages: resolution: {integrity: sha512-xhlTqH0m31mnsG0tIP4ETgfSB6gXDaYYsUWTrlUV93fFQPI9dd8hE0Ot6MHLCtqgB32hwJAC3YZMWlXZw7AleA==} engines: {node: '>=14'} dependencies: - node-fetch: 2.6.12 + node-fetch: 2.7.0 transitivePeerDependencies: - encoding dev: true - /@babel/code-frame@7.22.5: - resolution: {integrity: sha512-Xmwn266vad+6DAqEB2A6V/CcZVp62BbwVmcOJc2RPuwih1kw02TjQvWVWlcKGbBPd+8/0V5DEkOcizRGYsspYQ==} + /@babel/code-frame@7.22.13: + resolution: {integrity: sha512-XktuhWlJ5g+3TJXc5upd9Ks1HutSArik6jf2eAjYFyIOf4ej3RN+184cZbzDvbPnuTJIUhPKKJE3cIsYTiAT3w==} engines: {node: '>=6.9.0'} dependencies: - '@babel/highlight': 7.22.5 + '@babel/highlight': 7.22.20 + chalk: 2.4.2 - /@babel/compat-data@7.22.9: - resolution: {integrity: sha512-5UamI7xkUcJ3i9qVDS+KFDEK8/7oJ55/sJMB1Ge7IEapr7KfdfV/HErR+koZwOfd+SgtFKOKRhRakdg++DcJpQ==} + /@babel/compat-data@7.23.2: + resolution: {integrity: sha512-0S9TQMmDHlqAZ2ITT95irXKfxN9bncq8ZCoJhun3nHL/lLUxd2NKBJYoNGWH7S0hz6fRQwWlAWn/ILM0C70KZQ==} engines: {node: '>=6.9.0'} dev: true @@ -470,15 +498,15 @@ packages: engines: {node: '>=6.9.0'} dependencies: '@ampproject/remapping': 2.2.1 - '@babel/code-frame': 7.22.5 - '@babel/generator': 7.22.9 - '@babel/helper-compilation-targets': 7.22.9(@babel/core@7.22.8) - '@babel/helper-module-transforms': 7.22.9(@babel/core@7.22.8) - '@babel/helpers': 7.22.6 - '@babel/parser': 7.22.7 - '@babel/template': 7.22.5 - '@babel/traverse': 7.22.8 - '@babel/types': 7.22.5 + '@babel/code-frame': 7.22.13 + '@babel/generator': 7.23.0 + '@babel/helper-compilation-targets': 7.22.15 + '@babel/helper-module-transforms': 7.23.0(@babel/core@7.22.8) + '@babel/helpers': 7.23.2 + '@babel/parser': 7.23.0 + '@babel/template': 7.22.15 + '@babel/traverse': 7.23.2 + '@babel/types': 7.23.0 '@nicolo-ribaudo/semver-v6': 6.3.3 convert-source-map: 1.9.0 debug: 4.3.4(supports-color@8.1.1) @@ -488,21 +516,21 @@ packages: - supports-color dev: true - /@babel/core@7.22.9: - resolution: {integrity: sha512-G2EgeufBcYw27U4hhoIwFcgc1XU7TlXJ3mv04oOv1WCuo900U/anZSPzEqNjwdjgffkk2Gs0AN0dW1CKVLcG7w==} + /@babel/core@7.23.2: + resolution: {integrity: sha512-n7s51eWdaWZ3vGT2tD4T7J6eJs3QoBXydv7vkUM06Bf1cbVD2Kc2UrkzhiQwobfV7NwOnQXYL7UBJ5VPU+RGoQ==} engines: {node: '>=6.9.0'} dependencies: '@ampproject/remapping': 2.2.1 - '@babel/code-frame': 7.22.5 - '@babel/generator': 7.22.9 - '@babel/helper-compilation-targets': 7.22.9(@babel/core@7.22.9) - '@babel/helper-module-transforms': 7.22.9(@babel/core@7.22.9) - '@babel/helpers': 7.22.6 - '@babel/parser': 7.22.7 - '@babel/template': 7.22.5 - '@babel/traverse': 7.22.8 - '@babel/types': 7.22.5 - convert-source-map: 1.9.0 + '@babel/code-frame': 7.22.13 + '@babel/generator': 7.23.0 + '@babel/helper-compilation-targets': 7.22.15 + '@babel/helper-module-transforms': 7.23.0(@babel/core@7.23.2) + '@babel/helpers': 7.23.2 + '@babel/parser': 7.23.0 + '@babel/template': 7.22.15 + '@babel/traverse': 7.23.2 + '@babel/types': 7.23.0 + convert-source-map: 2.0.0 debug: 4.3.4(supports-color@8.1.1) gensync: 1.0.0-beta.2 json5: 2.2.3 @@ -511,13 +539,13 @@ packages: - supports-color dev: true - /@babel/generator@7.22.9: - resolution: {integrity: sha512-KtLMbmicyuK2Ak/FTCJVbDnkN1SlT8/kceFTiuDiiRUUSMnHMidxSCdG4ndkTOHHpoomWe/4xkvHkEOncwjYIw==} + /@babel/generator@7.23.0: + resolution: {integrity: sha512-lN85QRR+5IbYrMWM6Y4pE/noaQtg4pNiqeNGX60eqOfo6gtEj6uw/JagelB8vVztSd7R6M5n1+PQkDbHbBRU4g==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.22.5 + '@babel/types': 7.23.0 '@jridgewell/gen-mapping': 0.3.3 - '@jridgewell/trace-mapping': 0.3.18 + '@jridgewell/trace-mapping': 0.3.19 jsesc: 2.5.2 dev: true @@ -525,122 +553,105 @@ packages: resolution: {integrity: sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.22.5 - dev: true - - /@babel/helper-compilation-targets@7.22.9(@babel/core@7.22.8): - resolution: {integrity: sha512-7qYrNM6HjpnPHJbopxmb8hSPoZ0gsX8IvUS32JGVoy+pU9e5N0nLr1VjJoR6kA4d9dmGLxNYOjeB8sUDal2WMw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - dependencies: - '@babel/compat-data': 7.22.9 - '@babel/core': 7.22.8 - '@babel/helper-validator-option': 7.22.5 - browserslist: 4.21.9 - lru-cache: 5.1.1 - semver: 6.3.1 + '@babel/types': 7.23.0 dev: true - /@babel/helper-compilation-targets@7.22.9(@babel/core@7.22.9): - resolution: {integrity: sha512-7qYrNM6HjpnPHJbopxmb8hSPoZ0gsX8IvUS32JGVoy+pU9e5N0nLr1VjJoR6kA4d9dmGLxNYOjeB8sUDal2WMw==} + /@babel/helper-compilation-targets@7.22.15: + resolution: {integrity: sha512-y6EEzULok0Qvz8yyLkCvVX+02ic+By2UdOhylwUOvOn9dvYc9mKICJuuU1n1XBI02YWsNsnrY1kc6DVbjcXbtw==} engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 dependencies: - '@babel/compat-data': 7.22.9 - '@babel/core': 7.22.9 - '@babel/helper-validator-option': 7.22.5 - browserslist: 4.21.9 + '@babel/compat-data': 7.23.2 + '@babel/helper-validator-option': 7.22.15 + browserslist: 4.22.1 lru-cache: 5.1.1 semver: 6.3.1 dev: true - /@babel/helper-create-class-features-plugin@7.22.9(@babel/core@7.22.9): - resolution: {integrity: sha512-Pwyi89uO4YrGKxL/eNJ8lfEH55DnRloGPOseaA8NFNL6jAUnn+KccaISiFazCj5IolPPDjGSdzQzXVzODVRqUQ==} + /@babel/helper-create-class-features-plugin@7.22.15(@babel/core@7.23.2): + resolution: {integrity: sha512-jKkwA59IXcvSaiK2UN45kKwSC9o+KuoXsBDvHvU/7BecYIp8GQ2UwrVvFgJASUT+hBnwJx6MhvMCuMzwZZ7jlg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.22.9 + '@babel/core': 7.23.2 '@babel/helper-annotate-as-pure': 7.22.5 - '@babel/helper-environment-visitor': 7.22.5 - '@babel/helper-function-name': 7.22.5 - '@babel/helper-member-expression-to-functions': 7.22.5 + '@babel/helper-environment-visitor': 7.22.20 + '@babel/helper-function-name': 7.23.0 + '@babel/helper-member-expression-to-functions': 7.23.0 '@babel/helper-optimise-call-expression': 7.22.5 - '@babel/helper-replace-supers': 7.22.9(@babel/core@7.22.9) + '@babel/helper-replace-supers': 7.22.20(@babel/core@7.23.2) '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 '@babel/helper-split-export-declaration': 7.22.6 semver: 6.3.1 dev: true - /@babel/helper-environment-visitor@7.22.5: - resolution: {integrity: sha512-XGmhECfVA/5sAt+H+xpSg0mfrHq6FzNr9Oxh7PSEBBRUb/mL7Kz3NICXb194rCqAEdxkhPT1a88teizAFyvk8Q==} + /@babel/helper-environment-visitor@7.22.20: + resolution: {integrity: sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==} engines: {node: '>=6.9.0'} dev: true - /@babel/helper-function-name@7.22.5: - resolution: {integrity: sha512-wtHSq6jMRE3uF2otvfuD3DIvVhOsSNshQl0Qrd7qC9oQJzHvOL4qQXlQn2916+CXGywIjpGuIkoyZRRxHPiNQQ==} + /@babel/helper-function-name@7.23.0: + resolution: {integrity: sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==} engines: {node: '>=6.9.0'} dependencies: - '@babel/template': 7.22.5 - '@babel/types': 7.22.5 + '@babel/template': 7.22.15 + '@babel/types': 7.23.0 dev: true /@babel/helper-hoist-variables@7.22.5: resolution: {integrity: sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.22.5 + '@babel/types': 7.23.0 dev: true - /@babel/helper-member-expression-to-functions@7.22.5: - resolution: {integrity: sha512-aBiH1NKMG0H2cGZqspNvsaBe6wNGjbJjuLy29aU+eDZjSbbN53BaxlpB02xm9v34pLTZ1nIQPFYn2qMZoa5BQQ==} + /@babel/helper-member-expression-to-functions@7.23.0: + resolution: {integrity: sha512-6gfrPwh7OuT6gZyJZvd6WbTfrqAo7vm4xCzAXOusKqq/vWdKXphTpj5klHKNmRUU6/QRGlBsyU9mAIPaWHlqJA==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.22.5 + '@babel/types': 7.23.0 dev: true - /@babel/helper-module-imports@7.22.5: - resolution: {integrity: sha512-8Dl6+HD/cKifutF5qGd/8ZJi84QeAKh+CEe1sBzz8UayBBGg1dAIJrdHOcOM5b2MpzWL2yuotJTtGjETq0qjXg==} + /@babel/helper-module-imports@7.22.15: + resolution: {integrity: sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.22.5 + '@babel/types': 7.23.0 dev: true - /@babel/helper-module-transforms@7.22.9(@babel/core@7.22.8): - resolution: {integrity: sha512-t+WA2Xn5K+rTeGtC8jCsdAH52bjggG5TKRuRrAGNM/mjIbO4GxvlLMFOEz9wXY5I2XQ60PMFsAG2WIcG82dQMQ==} + /@babel/helper-module-transforms@7.23.0(@babel/core@7.22.8): + resolution: {integrity: sha512-WhDWw1tdrlT0gMgUJSlX0IQvoO1eN279zrAUbVB+KpV2c3Tylz8+GnKOLllCS6Z/iZQEyVYxhZVUdPTqs2YYPw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: '@babel/core': 7.22.8 - '@babel/helper-environment-visitor': 7.22.5 - '@babel/helper-module-imports': 7.22.5 + '@babel/helper-environment-visitor': 7.22.20 + '@babel/helper-module-imports': 7.22.15 '@babel/helper-simple-access': 7.22.5 '@babel/helper-split-export-declaration': 7.22.6 - '@babel/helper-validator-identifier': 7.22.5 + '@babel/helper-validator-identifier': 7.22.20 dev: true - /@babel/helper-module-transforms@7.22.9(@babel/core@7.22.9): - resolution: {integrity: sha512-t+WA2Xn5K+rTeGtC8jCsdAH52bjggG5TKRuRrAGNM/mjIbO4GxvlLMFOEz9wXY5I2XQ60PMFsAG2WIcG82dQMQ==} + /@babel/helper-module-transforms@7.23.0(@babel/core@7.23.2): + resolution: {integrity: sha512-WhDWw1tdrlT0gMgUJSlX0IQvoO1eN279zrAUbVB+KpV2c3Tylz8+GnKOLllCS6Z/iZQEyVYxhZVUdPTqs2YYPw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.22.9 - '@babel/helper-environment-visitor': 7.22.5 - '@babel/helper-module-imports': 7.22.5 + '@babel/core': 7.23.2 + '@babel/helper-environment-visitor': 7.22.20 + '@babel/helper-module-imports': 7.22.15 '@babel/helper-simple-access': 7.22.5 '@babel/helper-split-export-declaration': 7.22.6 - '@babel/helper-validator-identifier': 7.22.5 + '@babel/helper-validator-identifier': 7.22.20 dev: true /@babel/helper-optimise-call-expression@7.22.5: resolution: {integrity: sha512-HBwaojN0xFRx4yIvpwGqxiV2tUfl7401jlok564NgB9EHS1y6QT17FmKWm4ztqjeVdXLuC4fSvHc5ePpQjoTbw==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.22.5 + '@babel/types': 7.23.0 dev: true /@babel/helper-plugin-utils@7.22.5: @@ -648,15 +659,15 @@ packages: engines: {node: '>=6.9.0'} dev: true - /@babel/helper-replace-supers@7.22.9(@babel/core@7.22.9): - resolution: {integrity: sha512-LJIKvvpgPOPUThdYqcX6IXRuIcTkcAub0IaDRGCZH0p5GPUp7PhRU9QVgFcDDd51BaPkk77ZjqFwh6DZTAEmGg==} + /@babel/helper-replace-supers@7.22.20(@babel/core@7.23.2): + resolution: {integrity: sha512-qsW0In3dbwQUbK8kejJ4R7IHVGwHJlV6lpG6UA7a9hSa2YEiAib+N1T2kr6PEeUT+Fl7najmSOS6SmAwCHK6Tw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.22.9 - '@babel/helper-environment-visitor': 7.22.5 - '@babel/helper-member-expression-to-functions': 7.22.5 + '@babel/core': 7.23.2 + '@babel/helper-environment-visitor': 7.22.20 + '@babel/helper-member-expression-to-functions': 7.23.0 '@babel/helper-optimise-call-expression': 7.22.5 dev: true @@ -664,21 +675,21 @@ packages: resolution: {integrity: sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.22.5 + '@babel/types': 7.23.0 dev: true /@babel/helper-skip-transparent-expression-wrappers@7.22.5: resolution: {integrity: sha512-tK14r66JZKiC43p8Ki33yLBVJKlQDFoA8GYN67lWCDCqoL6EMMSuM9b+Iff2jHaM/RRFYl7K+iiru7hbRqNx8Q==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.22.5 + '@babel/types': 7.23.0 dev: true /@babel/helper-split-export-declaration@7.22.6: resolution: {integrity: sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.22.5 + '@babel/types': 7.23.0 dev: true /@babel/helper-string-parser@7.22.5: @@ -686,83 +697,85 @@ packages: engines: {node: '>=6.9.0'} dev: true - /@babel/helper-validator-identifier@7.22.5: - resolution: {integrity: sha512-aJXu+6lErq8ltp+JhkJUfk1MTGyuA4v7f3pA+BJ5HLfNC6nAQ0Cpi9uOquUj8Hehg0aUiHzWQbOVJGao6ztBAQ==} + /@babel/helper-validator-identifier@7.22.20: + resolution: {integrity: sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==} engines: {node: '>=6.9.0'} - /@babel/helper-validator-option@7.22.5: - resolution: {integrity: sha512-R3oB6xlIVKUnxNUxbmgq7pKjxpru24zlimpE8WK47fACIlM0II/Hm1RS8IaOI7NgCr6LNS+jl5l75m20npAziw==} + /@babel/helper-validator-option@7.22.15: + resolution: {integrity: sha512-bMn7RmyFjY/mdECUbgn9eoSY4vqvacUnS9i9vGAGttgFWesO6B4CYWA7XlpbWgBt71iv/hfbPlynohStqnu5hA==} engines: {node: '>=6.9.0'} dev: true - /@babel/helpers@7.22.6: - resolution: {integrity: sha512-YjDs6y/fVOYFV8hAf1rxd1QvR9wJe1pDBZ2AREKq/SDayfPzgk0PBnVuTCE5X1acEpMMNOVUqoe+OwiZGJ+OaA==} + /@babel/helpers@7.23.2: + resolution: {integrity: sha512-lzchcp8SjTSVe/fPmLwtWVBFC7+Tbn8LGHDVfDp9JGxpAY5opSaEFgt8UQvrnECWOTdji2mOWMz1rOhkHscmGQ==} engines: {node: '>=6.9.0'} dependencies: - '@babel/template': 7.22.5 - '@babel/traverse': 7.22.8 - '@babel/types': 7.22.5 + '@babel/template': 7.22.15 + '@babel/traverse': 7.23.2 + '@babel/types': 7.23.0 transitivePeerDependencies: - supports-color dev: true - /@babel/highlight@7.22.5: - resolution: {integrity: sha512-BSKlD1hgnedS5XRnGOljZawtag7H1yPfQp0tdNJCHoH6AZ+Pcm9VvkrK59/Yy593Ypg0zMxH2BxD1VPYUQ7UIw==} + /@babel/highlight@7.22.20: + resolution: {integrity: sha512-dkdMCN3py0+ksCgYmGG8jKeGA/8Tk+gJwSYYlFGxG5lmhfKNoAy004YpLxpS1W2J8m/EK2Ew+yOs9pVRwO89mg==} engines: {node: '>=6.9.0'} dependencies: - '@babel/helper-validator-identifier': 7.22.5 + '@babel/helper-validator-identifier': 7.22.20 chalk: 2.4.2 js-tokens: 4.0.0 - /@babel/parser@7.22.7: - resolution: {integrity: sha512-7NF8pOkHP5o2vpmGgNGcfAeCvOYhGLyA3Z4eBQkT1RJlWu47n63bCs93QfJ2hIAFCil7L5P2IWhs1oToVgrL0Q==} + /@babel/parser@7.23.0: + resolution: {integrity: sha512-vvPKKdMemU85V9WE/l5wZEmImpCtLqbnTvqDS2U1fJ96KrxoW7KrXhNsNCblQlg8Ck4b85yxdTyelsMUgFUXiw==} engines: {node: '>=6.0.0'} hasBin: true dependencies: - '@babel/types': 7.22.5 + '@babel/types': 7.23.0 dev: true - /@babel/plugin-proposal-class-properties@7.18.6(@babel/core@7.22.9): + /@babel/plugin-proposal-class-properties@7.18.6(@babel/core@7.23.2): resolution: {integrity: sha512-cumfXOF0+nzZrrN8Rf0t7M+tF6sZc7vhQwYQck9q1/5w2OExlD+b4v4RpMJFaV1Z7WcDRgO6FqvxqxGlwo+RHQ==} engines: {node: '>=6.9.0'} + deprecated: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-class-properties instead. peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.9 - '@babel/helper-create-class-features-plugin': 7.22.9(@babel/core@7.22.9) + '@babel/core': 7.23.2 + '@babel/helper-create-class-features-plugin': 7.22.15(@babel/core@7.23.2) '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-proposal-object-rest-spread@7.20.7(@babel/core@7.22.9): + /@babel/plugin-proposal-object-rest-spread@7.20.7(@babel/core@7.23.2): resolution: {integrity: sha512-d2S98yCiLxDVmBmE8UjGcfPvNEUbA1U5q5WxaWFUGRzJSVAZqm5W6MbPct0jxnegUZ0niLeNX+IOzEs7wYg9Dg==} engines: {node: '>=6.9.0'} + deprecated: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-object-rest-spread instead. peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/compat-data': 7.22.9 - '@babel/core': 7.22.9 - '@babel/helper-compilation-targets': 7.22.9(@babel/core@7.22.9) + '@babel/compat-data': 7.23.2 + '@babel/core': 7.23.2 + '@babel/helper-compilation-targets': 7.22.15 '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.22.9) - '@babel/plugin-transform-parameters': 7.22.5(@babel/core@7.22.9) + '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.23.2) + '@babel/plugin-transform-parameters': 7.22.15(@babel/core@7.23.2) dev: true - /@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.22.9): + /@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.23.2): resolution: {integrity: sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.9 + '@babel/core': 7.23.2 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-flow@7.22.5(@babel/core@7.22.9): + /@babel/plugin-syntax-flow@7.22.5(@babel/core@7.23.2): resolution: {integrity: sha512-9RdCl0i+q0QExayk2nOS7853w08yLucnnPML6EN9S8fgMPVtdLDCdx/cOQ/i44Lb9UeQX9A35yaqBBOMMZxPxQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.9 + '@babel/core': 7.23.2 '@babel/helper-plugin-utils': 7.22.5 dev: true @@ -776,332 +789,301 @@ packages: '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-import-assertions@7.22.5(@babel/core@7.22.9): + /@babel/plugin-syntax-import-assertions@7.22.5(@babel/core@7.23.2): resolution: {integrity: sha512-rdV97N7KqsRzeNGoWUOK6yUsWarLjE5Su/Snk9IYPU9CwkWHs4t+rTGOvffTR8XGkJMTAdLfO0xVnXm8wugIJg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.9 + '@babel/core': 7.23.2 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-jsx@7.22.5(@babel/core@7.22.9): + /@babel/plugin-syntax-jsx@7.22.5(@babel/core@7.23.2): resolution: {integrity: sha512-gvyP4hZrgrs/wWMaocvxZ44Hw0b3W8Pe+cMxc8V1ULQ07oh8VNbIRaoD1LRZVTvD+0nieDKjfgKg89sD7rrKrg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.9 + '@babel/core': 7.23.2 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.22.9): + /@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.23.2): resolution: {integrity: sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.9 + '@babel/core': 7.23.2 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-arrow-functions@7.22.5(@babel/core@7.22.9): + /@babel/plugin-transform-arrow-functions@7.22.5(@babel/core@7.23.2): resolution: {integrity: sha512-26lTNXoVRdAnsaDXPpvCNUq+OVWEVC6bx7Vvz9rC53F2bagUWW4u4ii2+h8Fejfh7RYqPxn+libeFBBck9muEw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.9 + '@babel/core': 7.23.2 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-block-scoped-functions@7.22.5(@babel/core@7.22.9): + /@babel/plugin-transform-block-scoped-functions@7.22.5(@babel/core@7.23.2): resolution: {integrity: sha512-tdXZ2UdknEKQWKJP1KMNmuF5Lx3MymtMN/pvA+p/VEkhK8jVcQ1fzSy8KM9qRYhAf2/lV33hoMPKI/xaI9sADA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.9 + '@babel/core': 7.23.2 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-block-scoping@7.22.5(@babel/core@7.22.9): - resolution: {integrity: sha512-EcACl1i5fSQ6bt+YGuU/XGCeZKStLmyVGytWkpyhCLeQVA0eu6Wtiw92V+I1T/hnezUv7j74dA/Ro69gWcU+hg==} + /@babel/plugin-transform-block-scoping@7.23.0(@babel/core@7.23.2): + resolution: {integrity: sha512-cOsrbmIOXmf+5YbL99/S49Y3j46k/T16b9ml8bm9lP6N9US5iQ2yBK7gpui1pg0V/WMcXdkfKbTb7HXq9u+v4g==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.9 + '@babel/core': 7.23.2 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-classes@7.22.6(@babel/core@7.22.9): - resolution: {integrity: sha512-58EgM6nuPNG6Py4Z3zSuu0xWu2VfodiMi72Jt5Kj2FECmaYk1RrTXA45z6KBFsu9tRgwQDwIiY4FXTt+YsSFAQ==} + /@babel/plugin-transform-classes@7.22.15(@babel/core@7.23.2): + resolution: {integrity: sha512-VbbC3PGjBdE0wAWDdHM9G8Gm977pnYI0XpqMd6LrKISj8/DJXEsWqgRuTYaNE9Bv0JGhTZUzHDlMk18IpOuoqw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.9 + '@babel/core': 7.23.2 '@babel/helper-annotate-as-pure': 7.22.5 - '@babel/helper-compilation-targets': 7.22.9(@babel/core@7.22.9) - '@babel/helper-environment-visitor': 7.22.5 - '@babel/helper-function-name': 7.22.5 + '@babel/helper-compilation-targets': 7.22.15 + '@babel/helper-environment-visitor': 7.22.20 + '@babel/helper-function-name': 7.23.0 '@babel/helper-optimise-call-expression': 7.22.5 '@babel/helper-plugin-utils': 7.22.5 - '@babel/helper-replace-supers': 7.22.9(@babel/core@7.22.9) + '@babel/helper-replace-supers': 7.22.20(@babel/core@7.23.2) '@babel/helper-split-export-declaration': 7.22.6 globals: 11.12.0 dev: true - /@babel/plugin-transform-computed-properties@7.22.5(@babel/core@7.22.9): + /@babel/plugin-transform-computed-properties@7.22.5(@babel/core@7.23.2): resolution: {integrity: sha512-4GHWBgRf0krxPX+AaPtgBAlTgTeZmqDynokHOX7aqqAB4tHs3U2Y02zH6ETFdLZGcg9UQSD1WCmkVrE9ErHeOg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.9 + '@babel/core': 7.23.2 '@babel/helper-plugin-utils': 7.22.5 - '@babel/template': 7.22.5 + '@babel/template': 7.22.15 dev: true - /@babel/plugin-transform-destructuring@7.22.5(@babel/core@7.22.9): - resolution: {integrity: sha512-GfqcFuGW8vnEqTUBM7UtPd5A4q797LTvvwKxXTgRsFjoqaJiEg9deBG6kWeQYkVEL569NpnmpC0Pkr/8BLKGnQ==} + /@babel/plugin-transform-destructuring@7.23.0(@babel/core@7.23.2): + resolution: {integrity: sha512-vaMdgNXFkYrB+8lbgniSYWHsgqK5gjaMNcc84bMIOMRLH0L9AqYq3hwMdvnyqj1OPqea8UtjPEuS/DCenah1wg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.9 + '@babel/core': 7.23.2 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-flow-strip-types@7.22.5(@babel/core@7.22.9): + /@babel/plugin-transform-flow-strip-types@7.22.5(@babel/core@7.23.2): resolution: {integrity: sha512-tujNbZdxdG0/54g/oua8ISToaXTFBf8EnSb5PgQSciIXWOWKX3S4+JR7ZE9ol8FZwf9kxitzkGQ+QWeov/mCiA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.9 + '@babel/core': 7.23.2 '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-flow': 7.22.5(@babel/core@7.22.9) + '@babel/plugin-syntax-flow': 7.22.5(@babel/core@7.23.2) dev: true - /@babel/plugin-transform-for-of@7.22.5(@babel/core@7.22.9): - resolution: {integrity: sha512-3kxQjX1dU9uudwSshyLeEipvrLjBCVthCgeTp6CzE/9JYrlAIaeekVxRpCWsDDfYTfRZRoCeZatCQvwo+wvK8A==} + /@babel/plugin-transform-for-of@7.22.15(@babel/core@7.23.2): + resolution: {integrity: sha512-me6VGeHsx30+xh9fbDLLPi0J1HzmeIIyenoOQHuw2D4m2SAU3NrspX5XxJLBpqn5yrLzrlw2Iy3RA//Bx27iOA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.9 + '@babel/core': 7.23.2 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-function-name@7.22.5(@babel/core@7.22.9): + /@babel/plugin-transform-function-name@7.22.5(@babel/core@7.23.2): resolution: {integrity: sha512-UIzQNMS0p0HHiQm3oelztj+ECwFnj+ZRV4KnguvlsD2of1whUeM6o7wGNj6oLwcDoAXQ8gEqfgC24D+VdIcevg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.9 - '@babel/helper-compilation-targets': 7.22.9(@babel/core@7.22.9) - '@babel/helper-function-name': 7.22.5 + '@babel/core': 7.23.2 + '@babel/helper-compilation-targets': 7.22.15 + '@babel/helper-function-name': 7.23.0 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-literals@7.22.5(@babel/core@7.22.9): + /@babel/plugin-transform-literals@7.22.5(@babel/core@7.23.2): resolution: {integrity: sha512-fTLj4D79M+mepcw3dgFBTIDYpbcB9Sm0bpm4ppXPaO+U+PKFFyV9MGRvS0gvGw62sd10kT5lRMKXAADb9pWy8g==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.9 + '@babel/core': 7.23.2 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-member-expression-literals@7.22.5(@babel/core@7.22.9): + /@babel/plugin-transform-member-expression-literals@7.22.5(@babel/core@7.23.2): resolution: {integrity: sha512-RZEdkNtzzYCFl9SE9ATaUMTj2hqMb4StarOJLrZRbqqU4HSBE7UlBw9WBWQiDzrJZJdUWiMTVDI6Gv/8DPvfew==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.9 + '@babel/core': 7.23.2 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-modules-commonjs@7.22.5(@babel/core@7.22.9): - resolution: {integrity: sha512-B4pzOXj+ONRmuaQTg05b3y/4DuFz3WcCNAXPLb2Q0GT0TrGKGxNKV4jwsXts+StaM0LQczZbOpj8o1DLPDJIiA==} + /@babel/plugin-transform-modules-commonjs@7.23.0(@babel/core@7.23.2): + resolution: {integrity: sha512-32Xzss14/UVc7k9g775yMIvkVK8xwKE0DPdP5JTapr3+Z9w4tzeOuLNY6BXDQR6BdnzIlXnCGAzsk/ICHBLVWQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.9 - '@babel/helper-module-transforms': 7.22.9(@babel/core@7.22.9) + '@babel/core': 7.23.2 + '@babel/helper-module-transforms': 7.23.0(@babel/core@7.23.2) '@babel/helper-plugin-utils': 7.22.5 '@babel/helper-simple-access': 7.22.5 dev: true - /@babel/plugin-transform-object-super@7.22.5(@babel/core@7.22.9): + /@babel/plugin-transform-object-super@7.22.5(@babel/core@7.23.2): resolution: {integrity: sha512-klXqyaT9trSjIUrcsYIfETAzmOEZL3cBYqOYLJxBHfMFFggmXOv+NYSX/Jbs9mzMVESw/WycLFPRx8ba/b2Ipw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.9 + '@babel/core': 7.23.2 '@babel/helper-plugin-utils': 7.22.5 - '@babel/helper-replace-supers': 7.22.9(@babel/core@7.22.9) + '@babel/helper-replace-supers': 7.22.20(@babel/core@7.23.2) dev: true - /@babel/plugin-transform-parameters@7.22.5(@babel/core@7.22.9): - resolution: {integrity: sha512-AVkFUBurORBREOmHRKo06FjHYgjrabpdqRSwq6+C7R5iTCZOsM4QbcB27St0a4U6fffyAOqh3s/qEfybAhfivg==} + /@babel/plugin-transform-parameters@7.22.15(@babel/core@7.23.2): + resolution: {integrity: sha512-hjk7qKIqhyzhhUvRT683TYQOFa/4cQKwQy7ALvTpODswN40MljzNDa0YldevS6tGbxwaEKVn502JmY0dP7qEtQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.9 + '@babel/core': 7.23.2 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-property-literals@7.22.5(@babel/core@7.22.9): + /@babel/plugin-transform-property-literals@7.22.5(@babel/core@7.23.2): resolution: {integrity: sha512-TiOArgddK3mK/x1Qwf5hay2pxI6wCZnvQqrFSqbtg1GLl2JcNMitVH/YnqjP+M31pLUeTfzY1HAXFDnUBV30rQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.9 + '@babel/core': 7.23.2 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-react-display-name@7.22.5(@babel/core@7.22.9): + /@babel/plugin-transform-react-display-name@7.22.5(@babel/core@7.23.2): resolution: {integrity: sha512-PVk3WPYudRF5z4GKMEYUrLjPl38fJSKNaEOkFuoprioowGuWN6w2RKznuFNSlJx7pzzXXStPUnNSOEO0jL5EVw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.9 + '@babel/core': 7.23.2 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-react-jsx@7.22.5(@babel/core@7.22.9): - resolution: {integrity: sha512-rog5gZaVbUip5iWDMTYbVM15XQq+RkUKhET/IHR6oizR+JEoN6CAfTTuHcK4vwUyzca30qqHqEpzBOnaRMWYMA==} + /@babel/plugin-transform-react-jsx@7.22.15(@babel/core@7.23.2): + resolution: {integrity: sha512-oKckg2eZFa8771O/5vi7XeTvmM6+O9cxZu+kanTU7tD4sin5nO/G8jGJhq8Hvt2Z0kUoEDRayuZLaUlYl8QuGA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.9 + '@babel/core': 7.23.2 '@babel/helper-annotate-as-pure': 7.22.5 - '@babel/helper-module-imports': 7.22.5 + '@babel/helper-module-imports': 7.22.15 '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-jsx': 7.22.5(@babel/core@7.22.9) - '@babel/types': 7.22.5 + '@babel/plugin-syntax-jsx': 7.22.5(@babel/core@7.23.2) + '@babel/types': 7.23.0 dev: true - /@babel/plugin-transform-shorthand-properties@7.22.5(@babel/core@7.22.9): + /@babel/plugin-transform-shorthand-properties@7.22.5(@babel/core@7.23.2): resolution: {integrity: sha512-vM4fq9IXHscXVKzDv5itkO1X52SmdFBFcMIBZ2FRn2nqVYqw6dBexUgMvAjHW+KXpPPViD/Yo3GrDEBaRC0QYA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.9 + '@babel/core': 7.23.2 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-spread@7.22.5(@babel/core@7.22.9): + /@babel/plugin-transform-spread@7.22.5(@babel/core@7.23.2): resolution: {integrity: sha512-5ZzDQIGyvN4w8+dMmpohL6MBo+l2G7tfC/O2Dg7/hjpgeWvUx8FzfeOKxGog9IimPa4YekaQ9PlDqTLOljkcxg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.9 + '@babel/core': 7.23.2 '@babel/helper-plugin-utils': 7.22.5 '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 dev: true - /@babel/plugin-transform-template-literals@7.22.5(@babel/core@7.22.9): + /@babel/plugin-transform-template-literals@7.22.5(@babel/core@7.23.2): resolution: {integrity: sha512-5ciOehRNf+EyUeewo8NkbQiUs4d6ZxiHo6BcBcnFlgiJfu16q0bQUw9Jvo0b0gBKFG1SMhDSjeKXSYuJLeFSMA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.9 + '@babel/core': 7.23.2 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/runtime@7.22.6: - resolution: {integrity: sha512-wDb5pWm4WDdF6LFUde3Jl8WzPA+3ZbxYqkC6xAXuD3irdEHN1k0NfTRrJD8ZD378SJ61miMLCqIOXYhd8x+AJQ==} + /@babel/runtime@7.23.2: + resolution: {integrity: sha512-mM8eg4yl5D6i3lu2QKPuPH4FArvJ8KhTofbE7jwMUv9KX5mBvwPAqnV3MlyBNqdp9RyRKP6Yck8TrfYrPvX3bg==} engines: {node: '>=6.9.0'} dependencies: - regenerator-runtime: 0.13.11 + regenerator-runtime: 0.14.0 - /@babel/template@7.22.5: - resolution: {integrity: sha512-X7yV7eiwAxdj9k94NEylvbVHLiVG1nvzCV2EAowhxLTwODV1jl9UzZ48leOC0sH7OnuHrIkllaBgneUykIcZaw==} + /@babel/template@7.22.15: + resolution: {integrity: sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w==} engines: {node: '>=6.9.0'} dependencies: - '@babel/code-frame': 7.22.5 - '@babel/parser': 7.22.7 - '@babel/types': 7.22.5 + '@babel/code-frame': 7.22.13 + '@babel/parser': 7.23.0 + '@babel/types': 7.23.0 dev: true - /@babel/traverse@7.22.8: - resolution: {integrity: sha512-y6LPR+wpM2I3qJrsheCTwhIinzkETbplIgPBbwvqPKc+uljeA5gP+3nP8irdYt1mjQaDnlIcG+dw8OjAco4GXw==} + /@babel/traverse@7.23.2: + resolution: {integrity: sha512-azpe59SQ48qG6nu2CzcMLbxUudtN+dOM9kDbUqGq3HXUJRlo7i8fvPoxQUzYgLZ4cMVmuZgm8vvBpNeRhd6XSw==} engines: {node: '>=6.9.0'} dependencies: - '@babel/code-frame': 7.22.5 - '@babel/generator': 7.22.9 - '@babel/helper-environment-visitor': 7.22.5 - '@babel/helper-function-name': 7.22.5 + '@babel/code-frame': 7.22.13 + '@babel/generator': 7.23.0 + '@babel/helper-environment-visitor': 7.22.20 + '@babel/helper-function-name': 7.23.0 '@babel/helper-hoist-variables': 7.22.5 '@babel/helper-split-export-declaration': 7.22.6 - '@babel/parser': 7.22.7 - '@babel/types': 7.22.5 + '@babel/parser': 7.23.0 + '@babel/types': 7.23.0 debug: 4.3.4(supports-color@8.1.1) globals: 11.12.0 transitivePeerDependencies: - supports-color dev: true - /@babel/types@7.22.5: - resolution: {integrity: sha512-zo3MIHGOkPOfoRXitsgHLjEXmlDaD/5KU1Uzuc9GNiZPhSqVxVRtxuPaSBZDsYZ9qV88AjtMtWW7ww98loJ9KA==} + /@babel/types@7.23.0: + resolution: {integrity: sha512-0oIyUfKoI3mSqMvsxBdclDwxXKXAUA8v/apZbc+iSyARYou1o8ZGDxbUYyLFoW2arqS2jDGqJuZvv1d/io1axg==} engines: {node: '>=6.9.0'} dependencies: '@babel/helper-string-parser': 7.22.5 - '@babel/helper-validator-identifier': 7.22.5 + '@babel/helper-validator-identifier': 7.22.20 to-fast-properties: 2.0.0 dev: true - /@chainsafe/as-sha256@0.3.1: - resolution: {integrity: sha512-hldFFYuf49ed7DAakWVXSJODuq3pzJEguD8tQ7h+sGkM18vja+OFoJI9krnGmgzyuZC2ETX0NOIcCTy31v2Mtg==} - dev: true - - /@chainsafe/persistent-merkle-tree@0.4.2: - resolution: {integrity: sha512-lLO3ihKPngXLTus/L7WHKaw9PnNJWizlOF1H9NNzHP6Xvh82vzg9F2bzkXhYIFshMZ2gTCEz8tq6STe7r5NDfQ==} - dependencies: - '@chainsafe/as-sha256': 0.3.1 - dev: true - - /@chainsafe/persistent-merkle-tree@0.5.0: - resolution: {integrity: sha512-l0V1b5clxA3iwQLXP40zYjyZYospQLZXzBVIhhr9kDg/1qHZfzzHw0jj4VPBijfYCArZDlPkRi1wZaV2POKeuw==} - dependencies: - '@chainsafe/as-sha256': 0.3.1 - dev: true - - /@chainsafe/ssz@0.10.2: - resolution: {integrity: sha512-/NL3Lh8K+0q7A3LsiFq09YXS9fPE+ead2rr7vM2QK8PLzrNsw3uqrif9bpRX5UxgeRjM+vYi+boCM3+GM4ovXg==} - dependencies: - '@chainsafe/as-sha256': 0.3.1 - '@chainsafe/persistent-merkle-tree': 0.5.0 - dev: true - - /@chainsafe/ssz@0.9.4: - resolution: {integrity: sha512-77Qtg2N1ayqs4Bg/wvnWfg5Bta7iy7IRh8XqXh7oNMeP2HBbBwx8m6yTpA8p0EHItWPEBkgZd5S5/LSlp3GXuQ==} - dependencies: - '@chainsafe/as-sha256': 0.3.1 - '@chainsafe/persistent-merkle-tree': 0.4.2 - case: 1.6.3 - dev: true - /@changesets/apply-release-plan@6.1.4: resolution: {integrity: sha512-FMpKF1fRlJyCZVYHr3CbinpZZ+6MwvOtWUuO8uo+svcATEoc1zRDcj23pAurJ2TZ/uVz1wFHH6K3NlACy0PLew==} dependencies: - '@babel/runtime': 7.22.6 + '@babel/runtime': 7.23.2 '@changesets/config': 2.3.1 '@changesets/get-version-range-type': 0.3.2 '@changesets/git': 2.0.0 @@ -1119,7 +1101,7 @@ packages: /@changesets/assemble-release-plan@5.2.4: resolution: {integrity: sha512-xJkWX+1/CUaOUWTguXEbCDTyWJFECEhmdtbkjhn5GVBGxdP/JwaHBIU9sW3FR6gD07UwZ7ovpiPclQZs+j+mvg==} dependencies: - '@babel/runtime': 7.22.6 + '@babel/runtime': 7.23.2 '@changesets/errors': 0.1.4 '@changesets/get-dependents-graph': 1.3.6 '@changesets/types': 5.2.1 @@ -1147,7 +1129,7 @@ packages: resolution: {integrity: sha512-dnWrJTmRR8bCHikJHl9b9HW3gXACCehz4OasrXpMp7sx97ECuBGGNjJhjPhdZNCvMy9mn4BWdplI323IbqsRig==} hasBin: true dependencies: - '@babel/runtime': 7.22.6 + '@babel/runtime': 7.23.2 '@changesets/apply-release-plan': 6.1.4 '@changesets/assemble-release-plan': 5.2.4 '@changesets/changelog-git': 0.1.14 @@ -1162,11 +1144,11 @@ packages: '@changesets/types': 5.2.1 '@changesets/write': 0.2.3 '@manypkg/get-packages': 1.1.3 - '@types/is-ci': 3.0.0 - '@types/semver': 7.5.0 + '@types/is-ci': 3.0.2 + '@types/semver': 7.5.3 ansi-colors: 4.1.3 chalk: 2.4.2 - enquirer: 2.4.0 + enquirer: 2.4.1 external-editor: 3.1.0 fs-extra: 7.0.1 human-id: 1.0.2 @@ -1174,12 +1156,12 @@ packages: meow: 6.1.1 outdent: 0.5.0 p-limit: 2.3.0 - preferred-pm: 3.0.3 + preferred-pm: 3.1.2 resolve-from: 5.0.0 semver: 7.5.4 spawndamnit: 2.0.0 term-size: 2.2.1 - tty-table: 4.2.1 + tty-table: 4.2.2 dev: true /@changesets/config@2.3.1: @@ -1214,7 +1196,7 @@ packages: resolution: {integrity: sha512-JppheLu7S114aEs157fOZDjFqUDpm7eHdq5E8SSR0gUBTEK0cNSHsrSR5a66xs0z3RWuo46QvA3vawp8BxDHvg==} dependencies: dataloader: 1.4.0 - node-fetch: 2.6.12 + node-fetch: 2.7.0 transitivePeerDependencies: - encoding dev: true @@ -1222,7 +1204,7 @@ packages: /@changesets/get-release-plan@3.0.17: resolution: {integrity: sha512-6IwKTubNEgoOZwDontYc2x2cWXfr6IKxP3IhKeK+WjyD6y3M4Gl/jdQvBw+m/5zWILSOCAaGLu2ZF6Q+WiPniw==} dependencies: - '@babel/runtime': 7.22.6 + '@babel/runtime': 7.23.2 '@changesets/assemble-release-plan': 5.2.4 '@changesets/config': 2.3.1 '@changesets/pre': 1.0.14 @@ -1238,7 +1220,7 @@ packages: /@changesets/git@2.0.0: resolution: {integrity: sha512-enUVEWbiqUTxqSnmesyJGWfzd51PY4H7mH9yUw0hPVpZBJ6tQZFMU3F3mT/t9OJ/GjyiM4770i+sehAn6ymx6A==} dependencies: - '@babel/runtime': 7.22.6 + '@babel/runtime': 7.23.2 '@changesets/errors': 0.1.4 '@changesets/types': 5.2.1 '@manypkg/get-packages': 1.1.3 @@ -1263,7 +1245,7 @@ packages: /@changesets/pre@1.0.14: resolution: {integrity: sha512-dTsHmxQWEQekHYHbg+M1mDVYFvegDh9j/kySNuDKdylwfMEevTeDouR7IfHNyVodxZXu17sXoJuf2D0vi55FHQ==} dependencies: - '@babel/runtime': 7.22.6 + '@babel/runtime': 7.23.2 '@changesets/errors': 0.1.4 '@changesets/types': 5.2.1 '@manypkg/get-packages': 1.1.3 @@ -1273,7 +1255,7 @@ packages: /@changesets/read@0.5.9: resolution: {integrity: sha512-T8BJ6JS6j1gfO1HFq50kU3qawYxa4NTbI/ASNVVCBTsKquy2HYwM9r7ZnzkiMe8IEObAJtUVGSrePCOxAK2haQ==} dependencies: - '@babel/runtime': 7.22.6 + '@babel/runtime': 7.23.2 '@changesets/git': 2.0.0 '@changesets/logger': 0.0.5 '@changesets/parse': 0.3.16 @@ -1294,7 +1276,7 @@ packages: /@changesets/write@0.2.3: resolution: {integrity: sha512-Dbamr7AIMvslKnNYsLFafaVORx4H0pvCA2MHqgtNCySMe1blImEyAEOzDmcgKAkgz4+uwoLz7demIrX+JBr/Xw==} dependencies: - '@babel/runtime': 7.22.6 + '@babel/runtime': 7.23.2 '@changesets/types': 5.2.1 fs-extra: 7.0.1 human-id: 1.0.2 @@ -1322,7 +1304,7 @@ packages: eth-ens-namehash: 2.0.8 solc: 0.4.26 testrpc: 0.0.1 - web3-utils: 1.10.0 + web3-utils: 1.10.2 dev: true /@ensdomains/resolver@0.2.4: @@ -1330,23 +1312,32 @@ packages: deprecated: Please use @ensdomains/ens-contracts dev: true - /@envelop/core@4.0.0: - resolution: {integrity: sha512-6usEZO86hWT0ZajAbhOX0QXlV++lrlEmu8br6KQVvyXOxttiHADIibgfzb3GtSI7RnnJDnrcRb7Jynv6Lca3iQ==} + /@envelop/core@4.0.3: + resolution: {integrity: sha512-O0Vz8E0TObT6ijAob8jYFVJavcGywKThM3UAsxUIBBVPYZTMiqI9lo2gmAnbMUnrDcAYkUTZEW9FDYPRdF5l6g==} engines: {node: '>=16.0.0'} dependencies: - '@envelop/types': 4.0.0 - tslib: 2.6.1 + '@envelop/types': 4.0.1 + tslib: 2.6.2 dev: true - /@envelop/types@4.0.0: - resolution: {integrity: sha512-dmBK16VVfKCkqYYemvE+gt1cPBP0d9CbYO4yjNhSSYy9K+w6+Lw48wOLK238mSR339PNAvwj/JW/qzNy2llggA==} + /@envelop/types@4.0.1: + resolution: {integrity: sha512-ULo27/doEsP7uUhm2iTnElx13qTO6I5FKvmLoX41cpfuw8x6e0NUFknoqhEsLzAbgz8xVS5mjwcxGCXh4lDYzg==} engines: {node: '>=16.0.0'} dependencies: - tslib: 2.6.1 + tslib: 2.6.2 + dev: true + + /@esbuild/android-arm64@0.18.20: + resolution: {integrity: sha512-Nz4rJcchGDtENV0eMKUNa6L12zz2zBDXuhj/Vjh18zGqB44Bi7MBMSXjgunJgjRhCmKOjnPuZp4Mb6OKqtMHLQ==} + engines: {node: '>=12'} + cpu: [arm64] + os: [android] + requiresBuild: true dev: true + optional: true - /@esbuild/android-arm64@0.18.17: - resolution: {integrity: sha512-9np+YYdNDed5+Jgr1TdWBsozZ85U1Oa3xW0c7TWqH0y2aGghXtZsuT8nYRbzOMcl0bXZXjOGbksoTtVOlWrRZg==} + /@esbuild/android-arm64@0.19.4: + resolution: {integrity: sha512-mRsi2vJsk4Bx/AFsNBqOH2fqedxn5L/moT58xgg51DjX1la64Z3Npicut2VbhvDFO26qjWtPMsVxCd80YTFVeg==} engines: {node: '>=12'} cpu: [arm64] os: [android] @@ -1354,8 +1345,17 @@ packages: dev: true optional: true - /@esbuild/android-arm@0.18.17: - resolution: {integrity: sha512-wHsmJG/dnL3OkpAcwbgoBTTMHVi4Uyou3F5mf58ZtmUyIKfcdA7TROav/6tCzET4A3QW2Q2FC+eFneMU+iyOxg==} + /@esbuild/android-arm@0.18.20: + resolution: {integrity: sha512-fyi7TDI/ijKKNZTUJAQqiG5T7YjJXgnzkURqmGj13C6dCqckZBLdl4h7bkhHt/t0WP+zO9/zwroDvANaOqO5Sw==} + engines: {node: '>=12'} + cpu: [arm] + os: [android] + requiresBuild: true + dev: true + optional: true + + /@esbuild/android-arm@0.19.4: + resolution: {integrity: sha512-uBIbiYMeSsy2U0XQoOGVVcpIktjLMEKa7ryz2RLr7L/vTnANNEsPVAh4xOv7ondGz6ac1zVb0F8Jx20rQikffQ==} engines: {node: '>=12'} cpu: [arm] os: [android] @@ -1363,8 +1363,17 @@ packages: dev: true optional: true - /@esbuild/android-x64@0.18.17: - resolution: {integrity: sha512-O+FeWB/+xya0aLg23hHEM2E3hbfwZzjqumKMSIqcHbNvDa+dza2D0yLuymRBQQnC34CWrsJUXyH2MG5VnLd6uw==} + /@esbuild/android-x64@0.18.20: + resolution: {integrity: sha512-8GDdlePJA8D6zlZYJV/jnrRAi6rOiNaCC/JclcXpB+KIuvfBN4owLtgzY2bsxnx666XjJx2kDPUmnTtR8qKQUg==} + engines: {node: '>=12'} + cpu: [x64] + os: [android] + requiresBuild: true + dev: true + optional: true + + /@esbuild/android-x64@0.19.4: + resolution: {integrity: sha512-4iPufZ1TMOD3oBlGFqHXBpa3KFT46aLl6Vy7gwed0ZSYgHaZ/mihbYb4t7Z9etjkC9Al3ZYIoOaHrU60gcMy7g==} engines: {node: '>=12'} cpu: [x64] os: [android] @@ -1372,8 +1381,17 @@ packages: dev: true optional: true - /@esbuild/darwin-arm64@0.18.17: - resolution: {integrity: sha512-M9uJ9VSB1oli2BE/dJs3zVr9kcCBBsE883prage1NWz6pBS++1oNn/7soPNS3+1DGj0FrkSvnED4Bmlu1VAE9g==} + /@esbuild/darwin-arm64@0.18.20: + resolution: {integrity: sha512-bxRHW5kHU38zS2lPTPOyuyTm+S+eobPUnTNkdJEfAddYgEcll4xkT8DB9d2008DtTbl7uJag2HuE5NZAZgnNEA==} + engines: {node: '>=12'} + cpu: [arm64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + + /@esbuild/darwin-arm64@0.19.4: + resolution: {integrity: sha512-Lviw8EzxsVQKpbS+rSt6/6zjn9ashUZ7Tbuvc2YENgRl0yZTktGlachZ9KMJUsVjZEGFVu336kl5lBgDN6PmpA==} engines: {node: '>=12'} cpu: [arm64] os: [darwin] @@ -1381,8 +1399,8 @@ packages: dev: true optional: true - /@esbuild/darwin-x64@0.18.17: - resolution: {integrity: sha512-XDre+J5YeIJDMfp3n0279DFNrGCXlxOuGsWIkRb1NThMZ0BsrWXoTg23Jer7fEXQ9Ye5QjrvXpxnhzl3bHtk0g==} + /@esbuild/darwin-x64@0.18.20: + resolution: {integrity: sha512-pc5gxlMDxzm513qPGbCbDukOdsGtKhfxD1zJKXjCCcU7ju50O7MeAZ8c4krSJcOIJGFR+qx21yMMVYwiQvyTyQ==} engines: {node: '>=12'} cpu: [x64] os: [darwin] @@ -1390,8 +1408,26 @@ packages: dev: true optional: true - /@esbuild/freebsd-arm64@0.18.17: - resolution: {integrity: sha512-cjTzGa3QlNfERa0+ptykyxs5A6FEUQQF0MuilYXYBGdBxD3vxJcKnzDlhDCa1VAJCmAxed6mYhA2KaJIbtiNuQ==} + /@esbuild/darwin-x64@0.19.4: + resolution: {integrity: sha512-YHbSFlLgDwglFn0lAO3Zsdrife9jcQXQhgRp77YiTDja23FrC2uwnhXMNkAucthsf+Psr7sTwYEryxz6FPAVqw==} + engines: {node: '>=12'} + cpu: [x64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + + /@esbuild/freebsd-arm64@0.18.20: + resolution: {integrity: sha512-yqDQHy4QHevpMAaxhhIwYPMv1NECwOvIpGCZkECn8w2WFHXjEwrBn3CeNIYsibZ/iZEUemj++M26W3cNR5h+Tw==} + engines: {node: '>=12'} + cpu: [arm64] + os: [freebsd] + requiresBuild: true + dev: true + optional: true + + /@esbuild/freebsd-arm64@0.19.4: + resolution: {integrity: sha512-vz59ijyrTG22Hshaj620e5yhs2dU1WJy723ofc+KUgxVCM6zxQESmWdMuVmUzxtGqtj5heHyB44PjV/HKsEmuQ==} engines: {node: '>=12'} cpu: [arm64] os: [freebsd] @@ -1399,8 +1435,17 @@ packages: dev: true optional: true - /@esbuild/freebsd-x64@0.18.17: - resolution: {integrity: sha512-sOxEvR8d7V7Kw8QqzxWc7bFfnWnGdaFBut1dRUYtu+EIRXefBc/eIsiUiShnW0hM3FmQ5Zf27suDuHsKgZ5QrA==} + /@esbuild/freebsd-x64@0.18.20: + resolution: {integrity: sha512-tgWRPPuQsd3RmBZwarGVHZQvtzfEBOreNuxEMKFcd5DaDn2PbBxfwLcj4+aenoh7ctXcbXmOQIn8HI6mCSw5MQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [freebsd] + requiresBuild: true + dev: true + optional: true + + /@esbuild/freebsd-x64@0.19.4: + resolution: {integrity: sha512-3sRbQ6W5kAiVQRBWREGJNd1YE7OgzS0AmOGjDmX/qZZecq8NFlQsQH0IfXjjmD0XtUYqr64e0EKNFjMUlPL3Cw==} engines: {node: '>=12'} cpu: [x64] os: [freebsd] @@ -1408,8 +1453,17 @@ packages: dev: true optional: true - /@esbuild/linux-arm64@0.18.17: - resolution: {integrity: sha512-c9w3tE7qA3CYWjT+M3BMbwMt+0JYOp3vCMKgVBrCl1nwjAlOMYzEo+gG7QaZ9AtqZFj5MbUc885wuBBmu6aADQ==} + /@esbuild/linux-arm64@0.18.20: + resolution: {integrity: sha512-2YbscF+UL7SQAVIpnWvYwM+3LskyDmPhe31pE7/aoTMFKKzIc9lLbyGUpmmb8a8AixOL61sQ/mFh3jEjHYFvdA==} + engines: {node: '>=12'} + cpu: [arm64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-arm64@0.19.4: + resolution: {integrity: sha512-ZWmWORaPbsPwmyu7eIEATFlaqm0QGt+joRE9sKcnVUG3oBbr/KYdNE2TnkzdQwX6EDRdg/x8Q4EZQTXoClUqqA==} engines: {node: '>=12'} cpu: [arm64] os: [linux] @@ -1417,8 +1471,17 @@ packages: dev: true optional: true - /@esbuild/linux-arm@0.18.17: - resolution: {integrity: sha512-2d3Lw6wkwgSLC2fIvXKoMNGVaeY8qdN0IC3rfuVxJp89CRfA3e3VqWifGDfuakPmp90+ZirmTfye1n4ncjv2lg==} + /@esbuild/linux-arm@0.18.20: + resolution: {integrity: sha512-/5bHkMWnq1EgKr1V+Ybz3s1hWXok7mDFUMQ4cG10AfW3wL02PSZi5kFpYKrptDsgb2WAJIvRcDm+qIvXf/apvg==} + engines: {node: '>=12'} + cpu: [arm] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-arm@0.19.4: + resolution: {integrity: sha512-z/4ArqOo9EImzTi4b6Vq+pthLnepFzJ92BnofU1jgNlcVb+UqynVFdoXMCFreTK7FdhqAzH0vmdwW5373Hm9pg==} engines: {node: '>=12'} cpu: [arm] os: [linux] @@ -1426,8 +1489,17 @@ packages: dev: true optional: true - /@esbuild/linux-ia32@0.18.17: - resolution: {integrity: sha512-1DS9F966pn5pPnqXYz16dQqWIB0dmDfAQZd6jSSpiT9eX1NzKh07J6VKR3AoXXXEk6CqZMojiVDSZi1SlmKVdg==} + /@esbuild/linux-ia32@0.18.20: + resolution: {integrity: sha512-P4etWwq6IsReT0E1KHU40bOnzMHoH73aXp96Fs8TIT6z9Hu8G6+0SHSw9i2isWrD2nbx2qo5yUqACgdfVGx7TA==} + engines: {node: '>=12'} + cpu: [ia32] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-ia32@0.19.4: + resolution: {integrity: sha512-EGc4vYM7i1GRUIMqRZNCTzJh25MHePYsnQfKDexD8uPTCm9mK56NIL04LUfX2aaJ+C9vyEp2fJ7jbqFEYgO9lQ==} engines: {node: '>=12'} cpu: [ia32] os: [linux] @@ -1435,8 +1507,17 @@ packages: dev: true optional: true - /@esbuild/linux-loong64@0.18.17: - resolution: {integrity: sha512-EvLsxCk6ZF0fpCB6w6eOI2Fc8KW5N6sHlIovNe8uOFObL2O+Mr0bflPHyHwLT6rwMg9r77WOAWb2FqCQrVnwFg==} + /@esbuild/linux-loong64@0.18.20: + resolution: {integrity: sha512-nXW8nqBTrOpDLPgPY9uV+/1DjxoQ7DoB2N8eocyq8I9XuqJ7BiAMDMf9n1xZM9TgW0J8zrquIb/A7s3BJv7rjg==} + engines: {node: '>=12'} + cpu: [loong64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-loong64@0.19.4: + resolution: {integrity: sha512-WVhIKO26kmm8lPmNrUikxSpXcgd6HDog0cx12BUfA2PkmURHSgx9G6vA19lrlQOMw+UjMZ+l3PpbtzffCxFDRg==} engines: {node: '>=12'} cpu: [loong64] os: [linux] @@ -1444,8 +1525,17 @@ packages: dev: true optional: true - /@esbuild/linux-mips64el@0.18.17: - resolution: {integrity: sha512-e0bIdHA5p6l+lwqTE36NAW5hHtw2tNRmHlGBygZC14QObsA3bD4C6sXLJjvnDIjSKhW1/0S3eDy+QmX/uZWEYQ==} + /@esbuild/linux-mips64el@0.18.20: + resolution: {integrity: sha512-d5NeaXZcHp8PzYy5VnXV3VSd2D328Zb+9dEq5HE6bw6+N86JVPExrA6O68OPwobntbNJ0pzCpUFZTo3w0GyetQ==} + engines: {node: '>=12'} + cpu: [mips64el] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-mips64el@0.19.4: + resolution: {integrity: sha512-keYY+Hlj5w86hNp5JJPuZNbvW4jql7c1eXdBUHIJGTeN/+0QFutU3GrS+c27L+NTmzi73yhtojHk+lr2+502Mw==} engines: {node: '>=12'} cpu: [mips64el] os: [linux] @@ -1453,8 +1543,8 @@ packages: dev: true optional: true - /@esbuild/linux-ppc64@0.18.17: - resolution: {integrity: sha512-BAAilJ0M5O2uMxHYGjFKn4nJKF6fNCdP1E0o5t5fvMYYzeIqy2JdAP88Az5LHt9qBoUa4tDaRpfWt21ep5/WqQ==} + /@esbuild/linux-ppc64@0.18.20: + resolution: {integrity: sha512-WHPyeScRNcmANnLQkq6AfyXRFr5D6N2sKgkFo2FqguP44Nw2eyDlbTdZwd9GYk98DZG9QItIiTlFLHJHjxP3FA==} engines: {node: '>=12'} cpu: [ppc64] os: [linux] @@ -1462,8 +1552,26 @@ packages: dev: true optional: true - /@esbuild/linux-riscv64@0.18.17: - resolution: {integrity: sha512-Wh/HW2MPnC3b8BqRSIme/9Zhab36PPH+3zam5pqGRH4pE+4xTrVLx2+XdGp6fVS3L2x+DrsIcsbMleex8fbE6g==} + /@esbuild/linux-ppc64@0.19.4: + resolution: {integrity: sha512-tQ92n0WMXyEsCH4m32S21fND8VxNiVazUbU4IUGVXQpWiaAxOBvtOtbEt3cXIV3GEBydYsY8pyeRMJx9kn3rvw==} + engines: {node: '>=12'} + cpu: [ppc64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-riscv64@0.18.20: + resolution: {integrity: sha512-WSxo6h5ecI5XH34KC7w5veNnKkju3zBRLEQNY7mv5mtBmrP/MjNBCAlsM2u5hDBlS3NGcTQpoBvRzqBcRtpq1A==} + engines: {node: '>=12'} + cpu: [riscv64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-riscv64@0.19.4: + resolution: {integrity: sha512-tRRBey6fG9tqGH6V75xH3lFPpj9E8BH+N+zjSUCnFOX93kEzqS0WdyJHkta/mmJHn7MBaa++9P4ARiU4ykjhig==} engines: {node: '>=12'} cpu: [riscv64] os: [linux] @@ -1471,8 +1579,17 @@ packages: dev: true optional: true - /@esbuild/linux-s390x@0.18.17: - resolution: {integrity: sha512-j/34jAl3ul3PNcK3pfI0NSlBANduT2UO5kZ7FCaK33XFv3chDhICLY8wJJWIhiQ+YNdQ9dxqQctRg2bvrMlYgg==} + /@esbuild/linux-s390x@0.18.20: + resolution: {integrity: sha512-+8231GMs3mAEth6Ja1iK0a1sQ3ohfcpzpRLH8uuc5/KVDFneH6jtAJLFGafpzpMRO6DzJ6AvXKze9LfFMrIHVQ==} + engines: {node: '>=12'} + cpu: [s390x] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-s390x@0.19.4: + resolution: {integrity: sha512-152aLpQqKZYhThiJ+uAM4PcuLCAOxDsCekIbnGzPKVBRUDlgaaAfaUl5NYkB1hgY6WN4sPkejxKlANgVcGl9Qg==} engines: {node: '>=12'} cpu: [s390x] os: [linux] @@ -1480,8 +1597,17 @@ packages: dev: true optional: true - /@esbuild/linux-x64@0.18.17: - resolution: {integrity: sha512-QM50vJ/y+8I60qEmFxMoxIx4de03pGo2HwxdBeFd4nMh364X6TIBZ6VQ5UQmPbQWUVWHWws5MmJXlHAXvJEmpQ==} + /@esbuild/linux-x64@0.18.20: + resolution: {integrity: sha512-UYqiqemphJcNsFEskc73jQ7B9jgwjWrSayxawS6UVFZGWrAAtkzjxSqnoclCXxWtfwLdzU+vTpcNYhpn43uP1w==} + engines: {node: '>=12'} + cpu: [x64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-x64@0.19.4: + resolution: {integrity: sha512-Mi4aNA3rz1BNFtB7aGadMD0MavmzuuXNTaYL6/uiYIs08U7YMPETpgNn5oue3ICr+inKwItOwSsJDYkrE9ekVg==} engines: {node: '>=12'} cpu: [x64] os: [linux] @@ -1489,8 +1615,17 @@ packages: dev: true optional: true - /@esbuild/netbsd-x64@0.18.17: - resolution: {integrity: sha512-/jGlhWR7Sj9JPZHzXyyMZ1RFMkNPjC6QIAan0sDOtIo2TYk3tZn5UDrkE0XgsTQCxWTTOcMPf9p6Rh2hXtl5TQ==} + /@esbuild/netbsd-x64@0.18.20: + resolution: {integrity: sha512-iO1c++VP6xUBUmltHZoMtCUdPlnPGdBom6IrO4gyKPFFVBKioIImVooR5I83nTew5UOYrk3gIJhbZh8X44y06A==} + engines: {node: '>=12'} + cpu: [x64] + os: [netbsd] + requiresBuild: true + dev: true + optional: true + + /@esbuild/netbsd-x64@0.19.4: + resolution: {integrity: sha512-9+Wxx1i5N/CYo505CTT7T+ix4lVzEdz0uCoYGxM5JDVlP2YdDC1Bdz+Khv6IbqmisT0Si928eAxbmGkcbiuM/A==} engines: {node: '>=12'} cpu: [x64] os: [netbsd] @@ -1498,8 +1633,17 @@ packages: dev: true optional: true - /@esbuild/openbsd-x64@0.18.17: - resolution: {integrity: sha512-rSEeYaGgyGGf4qZM2NonMhMOP/5EHp4u9ehFiBrg7stH6BYEEjlkVREuDEcQ0LfIl53OXLxNbfuIj7mr5m29TA==} + /@esbuild/openbsd-x64@0.18.20: + resolution: {integrity: sha512-e5e4YSsuQfX4cxcygw/UCPIEP6wbIL+se3sxPdCiMbFLBWu0eiZOJ7WoD+ptCLrmjZBK1Wk7I6D/I3NglUGOxg==} + engines: {node: '>=12'} + cpu: [x64] + os: [openbsd] + requiresBuild: true + dev: true + optional: true + + /@esbuild/openbsd-x64@0.19.4: + resolution: {integrity: sha512-MFsHleM5/rWRW9EivFssop+OulYVUoVcqkyOkjiynKBCGBj9Lihl7kh9IzrreDyXa4sNkquei5/DTP4uCk25xw==} engines: {node: '>=12'} cpu: [x64] os: [openbsd] @@ -1507,8 +1651,17 @@ packages: dev: true optional: true - /@esbuild/sunos-x64@0.18.17: - resolution: {integrity: sha512-Y7ZBbkLqlSgn4+zot4KUNYst0bFoO68tRgI6mY2FIM+b7ZbyNVtNbDP5y8qlu4/knZZ73fgJDlXID+ohY5zt5g==} + /@esbuild/sunos-x64@0.18.20: + resolution: {integrity: sha512-kDbFRFp0YpTQVVrqUd5FTYmWo45zGaXe0X8E1G/LKFC0v8x0vWrhOWSLITcCn63lmZIxfOMXtCfti/RxN/0wnQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [sunos] + requiresBuild: true + dev: true + optional: true + + /@esbuild/sunos-x64@0.19.4: + resolution: {integrity: sha512-6Xq8SpK46yLvrGxjp6HftkDwPP49puU4OF0hEL4dTxqCbfx09LyrbUj/D7tmIRMj5D5FCUPksBbxyQhp8tmHzw==} engines: {node: '>=12'} cpu: [x64] os: [sunos] @@ -1516,8 +1669,17 @@ packages: dev: true optional: true - /@esbuild/win32-arm64@0.18.17: - resolution: {integrity: sha512-bwPmTJsEQcbZk26oYpc4c/8PvTY3J5/QK8jM19DVlEsAB41M39aWovWoHtNm78sd6ip6prilxeHosPADXtEJFw==} + /@esbuild/win32-arm64@0.18.20: + resolution: {integrity: sha512-ddYFR6ItYgoaq4v4JmQQaAI5s7npztfV4Ag6NrhiaW0RrnOXqBkgwZLofVTlq1daVTQNhtI5oieTvkRPfZrePg==} + engines: {node: '>=12'} + cpu: [arm64] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /@esbuild/win32-arm64@0.19.4: + resolution: {integrity: sha512-PkIl7Jq4mP6ke7QKwyg4fD4Xvn8PXisagV/+HntWoDEdmerB2LTukRZg728Yd1Fj+LuEX75t/hKXE2Ppk8Hh1w==} engines: {node: '>=12'} cpu: [arm64] os: [win32] @@ -1525,8 +1687,8 @@ packages: dev: true optional: true - /@esbuild/win32-ia32@0.18.17: - resolution: {integrity: sha512-H/XaPtPKli2MhW+3CQueo6Ni3Avggi6hP/YvgkEe1aSaxw+AeO8MFjq8DlgfTd9Iz4Yih3QCZI6YLMoyccnPRg==} + /@esbuild/win32-ia32@0.18.20: + resolution: {integrity: sha512-Wv7QBi3ID/rROT08SABTS7eV4hX26sVduqDOTe1MvGMjNd3EjOz4b7zeexIR62GTIEKrfJXKL9LFxTYgkyeu7g==} engines: {node: '>=12'} cpu: [ia32] os: [win32] @@ -1534,8 +1696,26 @@ packages: dev: true optional: true - /@esbuild/win32-x64@0.18.17: - resolution: {integrity: sha512-fGEb8f2BSA3CW7riJVurug65ACLuQAzKq0SSqkY2b2yHHH0MzDfbLyKIGzHwOI/gkHcxM/leuSW6D5w/LMNitA==} + /@esbuild/win32-ia32@0.19.4: + resolution: {integrity: sha512-ga676Hnvw7/ycdKB53qPusvsKdwrWzEyJ+AtItHGoARszIqvjffTwaaW3b2L6l90i7MO9i+dlAW415INuRhSGg==} + engines: {node: '>=12'} + cpu: [ia32] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /@esbuild/win32-x64@0.18.20: + resolution: {integrity: sha512-kTdfRcSiDfQca/y9QIkng02avJ+NCaQvrMejlsB3RRv5sE9rRoeBPISaZpKxHELzRxZyLvNts1P27W3wV+8geQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /@esbuild/win32-x64@0.19.4: + resolution: {integrity: sha512-HP0GDNla1T3ZL8Ko/SHAS2GgtjOg+VmWnnYLhuTksr++EnduYB0f3Y2LzHsUwb2iQ13JGoY6G3R8h6Du/WG6uA==} engines: {node: '>=12'} cpu: [x64] os: [win32] @@ -1543,29 +1723,29 @@ packages: dev: true optional: true - /@eslint-community/eslint-utils@4.4.0(eslint@8.45.0): + /@eslint-community/eslint-utils@4.4.0(eslint@8.51.0): resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 dependencies: - eslint: 8.45.0 - eslint-visitor-keys: 3.4.1 + eslint: 8.51.0 + eslint-visitor-keys: 3.4.3 dev: true - /@eslint-community/regexpp@4.6.2: - resolution: {integrity: sha512-pPTNuaAG3QMH+buKyBIGJs3g/S5y0caxw0ygM3YyE6yJFySwiGGSzA+mM3KJ8QQvzeLh3blwgSonkFjgQdxzMw==} + /@eslint-community/regexpp@4.9.1: + resolution: {integrity: sha512-Y27x+MBLjXa+0JWDhykM3+JE+il3kHKAEqabfEWq3SDhZjLYb6/BHL/JKFnH3fe207JaXkyDo685Oc2Glt6ifA==} engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} dev: true - /@eslint/eslintrc@2.1.0: - resolution: {integrity: sha512-Lj7DECXqIVCqnqjjHMPna4vn6GJcMgul/wuS0je9OZ9gsL0zzDpKPVtcG1HaDVc+9y+qgXneTeUMbCqXJNpH1A==} + /@eslint/eslintrc@2.1.2: + resolution: {integrity: sha512-+wvgpDsrB1YqAMdEUCcnTlpfVBH7Vqn6A/NT3D8WVXFIaKMlErPIZT3oCIAVCOtarRpMtelZLqJeU3t7WY6X6g==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: ajv: 6.12.6 debug: 4.3.4(supports-color@8.1.1) espree: 9.6.1 - globals: 13.20.0 + globals: 13.23.0 ignore: 5.2.4 import-fresh: 3.3.0 js-yaml: 4.1.0 @@ -1575,8 +1755,8 @@ packages: - supports-color dev: true - /@eslint/js@8.44.0: - resolution: {integrity: sha512-Ag+9YM4ocKQx9AarydN0KY2j0ErMHNIocPDrVo8zAE44xLTjEtz81OdR68/cydGtk6m6jDb5Za3r2useMzYmSw==} + /@eslint/js@8.51.0: + resolution: {integrity: sha512-HxjQ8Qn+4SI3/AFv6sOrDB+g6PpUTDwSJiQqOrnneEk8L71161srI9gjzzZvYVbzHiVg/BvcH95+cK/zfIt4pg==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dev: true @@ -1596,7 +1776,7 @@ packages: - supports-color dev: true - /@ethereum-waffle/compiler@4.0.3(@ethersproject/abi@5.7.0)(@ethersproject/bytes@5.7.0)(@ethersproject/providers@5.7.2)(ethers@5.7.2)(solc@0.8.15)(typechain@8.1.1)(typescript@5.1.6): + /@ethereum-waffle/compiler@4.0.3(@ethersproject/abi@5.7.0)(@ethersproject/providers@5.7.2)(ethers@5.7.2)(solc@0.8.15)(typechain@8.3.2)(typescript@5.2.2): resolution: {integrity: sha512-5x5U52tSvEVJS6dpCeXXKvRKyf8GICDwiTwUvGD3/WD+DpvgvaoHOL82XqpTSUHgV3bBq6ma5/8gKUJUIAnJCw==} engines: {node: '>=10.0'} peerDependencies: @@ -1606,17 +1786,16 @@ packages: dependencies: '@resolver-engine/imports': 0.3.3 '@resolver-engine/imports-fs': 0.3.3 - '@typechain/ethers-v5': 10.2.0(@ethersproject/abi@5.7.0)(@ethersproject/bytes@5.7.0)(@ethersproject/providers@5.7.2)(ethers@5.7.2)(typechain@8.1.1)(typescript@5.1.6) + '@typechain/ethers-v5': 10.2.1(@ethersproject/abi@5.7.0)(@ethersproject/providers@5.7.2)(ethers@5.7.2)(typechain@8.3.2)(typescript@5.2.2) '@types/mkdirp': 0.5.2 - '@types/node-fetch': 2.6.3 + '@types/node-fetch': 2.6.6 ethers: 5.7.2 mkdirp: 0.5.6 - node-fetch: 2.6.12 + node-fetch: 2.7.0 solc: 0.8.15 - typechain: 8.1.1(typescript@5.1.6) + typechain: 8.3.2(typescript@5.2.2) transitivePeerDependencies: - '@ethersproject/abi' - - '@ethersproject/bytes' - '@ethersproject/providers' - encoding - supports-color @@ -1690,7 +1869,7 @@ packages: resolution: {integrity: sha512-Cq2qS0FTu6O2VU1sgg+WyU9Ps0M6j/BEMHN+hRaECXCV/r0aI78u4N6p52QW/BDVhwWZpCdrvG8X7NJdzlpNUA==} dependencies: crc-32: 1.2.2 - ethereumjs-util: 7.1.5 + ethereumjs-util: 7.1.3 dev: true /@ethereumjs/common@2.6.5: @@ -1710,11 +1889,17 @@ packages: miller-rabin: 4.0.1 dev: true + /@ethereumjs/rlp@4.0.1: + resolution: {integrity: sha512-tqsQiBQDQdmPWE1xkkBq4rlSW5QZpLOUJ5RJh2/9fug+q9tnUhuZoVLk7s0scUIKTOzEtR72DFBXI4WiZcMpvw==} + engines: {node: '>=14'} + hasBin: true + dev: true + /@ethereumjs/tx@3.4.0: resolution: {integrity: sha512-WWUwg1PdjHKZZxPPo274ZuPsJCWV3SqATrEKQP1n2DrVYVP1aZIYpo/mFaA0BDoE0tIQmBeimRCEA0Lgil+yYw==} dependencies: - '@ethereumjs/common': 2.6.5 - ethereumjs-util: 7.1.5 + '@ethereumjs/common': 2.6.0 + ethereumjs-util: 7.1.3 dev: true /@ethereumjs/tx@3.5.2: @@ -1724,17 +1909,26 @@ packages: ethereumjs-util: 7.1.5 dev: true + /@ethereumjs/util@8.1.0: + resolution: {integrity: sha512-zQ0IqbdX8FZ9aw11vP+dZkKDkS+kgIvQPHnSAXzP9pLu+Rfu3D3XEeLbicvoXJTYnhZiPmsZUxgdzXwNKxRPbA==} + engines: {node: '>=14'} + dependencies: + '@ethereumjs/rlp': 4.0.1 + ethereum-cryptography: 2.1.2 + micro-ftch: 0.3.1 + dev: true + /@ethereumjs/vm@5.6.0: resolution: {integrity: sha512-J2m/OgjjiGdWF2P9bj/4LnZQ1zRoZhY8mRNVw/N3tXliGI8ai1sI1mlDPkLpeUUM4vq54gH6n0ZlSpz8U/qlYQ==} dependencies: '@ethereumjs/block': 3.6.3 '@ethereumjs/blockchain': 5.5.3 - '@ethereumjs/common': 2.6.5 - '@ethereumjs/tx': 3.5.2 + '@ethereumjs/common': 2.6.0 + '@ethereumjs/tx': 3.4.0 async-eventemitter: 0.2.4 - core-js-pure: 3.30.1 + core-js-pure: 3.33.0 debug: 2.6.9 - ethereumjs-util: 7.1.5 + ethereumjs-util: 7.1.3 functional-red-black-tree: 1.0.1 mcl-wasm: 0.7.9 merkle-patricia-tree: 4.2.4 @@ -2042,13 +2236,18 @@ packages: '@ethersproject/properties': 5.7.0 '@ethersproject/strings': 5.7.0 + /@fastify/busboy@2.0.0: + resolution: {integrity: sha512-JUFJad5lv7jxj926GPgymrWQxxjPYuJNiNjNMzqT+HiuP6Vl3dk5xzG+8sTX96np0ZAluvaMzPsjhHZ5rNuNQQ==} + engines: {node: '>=14'} + dev: true + /@float-capital/float-subgraph-uncrashable@0.0.0-internal-testing.5: resolution: {integrity: sha512-yZ0H5e3EpAYKokX/AbtplzlvSxEJY7ZfpvQyDzyODkks0hakAAlDG6fQu1SlDJMWorY7bbq1j7fCiFeTWci6TA==} hasBin: true dependencies: '@rescript/std': 9.0.0 - graphql: 16.7.1 - graphql-import-node: 0.0.5(graphql@16.7.1) + graphql: 16.8.1 + graphql-import-node: 0.0.5(graphql@16.8.1) js-yaml: 4.1.0 dev: false @@ -2112,13 +2311,15 @@ packages: '@trufflesuite/bigint-buffer': 1.1.9 dev: true - /@graphprotocol/graph-cli@0.46.1(@types/node@20.4.5)(node-fetch@3.3.1)(typescript@5.1.6): - resolution: {integrity: sha512-594BiH2m9gThP1xdvxguVzvVlOb1KzJyVdh2F4dV78NPfMRFY2fe1nakmadKcewc72VVLXNgfdBu/J4IPfo0eg==} + /@graphprotocol/graph-cli@0.59.0(@types/node@20.8.6)(node-fetch@3.3.2)(typescript@5.2.2): + resolution: {integrity: sha512-uddsyUootdhQgMqQXkrD0INn/nNkQB+3t5luRzjY0pxA4O9hidXjYZNScjvSgf3eiaN0rcEs/s56qa/dsy4LwA==} engines: {node: '>=14'} hasBin: true dependencies: '@float-capital/float-subgraph-uncrashable': 0.0.0-internal-testing.5 - '@oclif/core': 2.8.0(@types/node@20.4.5)(typescript@5.1.6) + '@oclif/core': 2.8.6(@types/node@20.8.6)(typescript@5.2.2) + '@oclif/plugin-autocomplete': 2.3.9(@types/node@20.8.6)(typescript@5.2.2) + '@oclif/plugin-not-found': 2.4.3(@types/node@20.8.6)(typescript@5.2.2) '@whatwg-node/fetch': 0.8.8 assemblyscript: 0.19.23 binary-install-raw: 0.0.13(debug@4.3.4) @@ -2128,16 +2329,16 @@ packages: docker-compose: 0.23.19 dockerode: 2.5.8 fs-extra: 9.1.0 - glob: 9.3.4 - gluegun: github.com/edgeandnode/gluegun/b34b9003d7bf556836da41b57ef36eb21570620a(debug@4.3.4) + glob: 9.3.5 + gluegun: 5.1.2(debug@4.3.4) graphql: 15.5.0 immutable: 4.2.1 - ipfs-http-client: 55.0.0(node-fetch@3.3.1) + ipfs-http-client: 55.0.0(node-fetch@3.3.2) jayson: 4.0.0 js-yaml: 3.14.1 prettier: 1.19.1 request: 2.88.2 - semver: 7.3.8 + semver: 7.4.0 sync-request: 6.1.0 tmp-promise: 3.0.3 web3-eth-abi: 1.7.0 @@ -2155,13 +2356,23 @@ packages: - utf-8-validate dev: false - /@graphprotocol/graph-ts@0.29.3: - resolution: {integrity: sha512-FXBLGlunOSwjiUXYEz1J9J/I2D/myldyib/9v0R+gn/NJaYqUkXD39UmIuRxqj9cBzB/FYojHzoHidIG5nYZDw==} + /@graphprotocol/graph-ts@0.31.0: + resolution: {integrity: sha512-xreRVM6ho2BtolyOh2flDkNoGZximybnzUnF53zJVp0+Ed0KnAlO1/KOCUYw06euVI9tk0c9nA2Z/D5SIQV2Rg==} dependencies: assemblyscript: 0.19.10 dev: false - /@graphql-codegen/cli@5.0.0(@types/node@20.4.5)(graphql@16.7.1): + /@graphql-codegen/add@5.0.0(graphql@16.8.1): + resolution: {integrity: sha512-ynWDOsK2yxtFHwcJTB9shoSkUd7YXd6ZE57f0nk7W5cu/nAgxZZpEsnTPEpZB/Mjf14YRGe2uJHQ7AfElHjqUQ==} + peerDependencies: + graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 + dependencies: + '@graphql-codegen/plugin-helpers': 5.0.1(graphql@16.8.1) + graphql: 16.8.1 + tslib: 2.5.3 + dev: true + + /@graphql-codegen/cli@5.0.0(@parcel/watcher@2.3.0)(@types/node@20.8.6)(graphql@16.8.1)(typescript@5.2.2): resolution: {integrity: sha512-A7J7+be/a6e+/ul2KI5sfJlpoqeqwX8EzktaKCeduyVKgOLA6W5t+NUGf6QumBDXU8PEOqXk3o3F+RAwCWOiqA==} hasBin: true peerDependencies: @@ -2171,31 +2382,32 @@ packages: '@parcel/watcher': optional: true dependencies: - '@babel/generator': 7.22.9 - '@babel/template': 7.22.5 - '@babel/types': 7.22.5 - '@graphql-codegen/core': 4.0.0(graphql@16.7.1) - '@graphql-codegen/plugin-helpers': 5.0.1(graphql@16.7.1) - '@graphql-tools/apollo-engine-loader': 8.0.0(graphql@16.7.1) - '@graphql-tools/code-file-loader': 8.0.2(graphql@16.7.1) - '@graphql-tools/git-loader': 8.0.2(graphql@16.7.1) - '@graphql-tools/github-loader': 8.0.0(@types/node@20.4.5)(graphql@16.7.1) - '@graphql-tools/graphql-file-loader': 8.0.0(graphql@16.7.1) - '@graphql-tools/json-file-loader': 8.0.0(graphql@16.7.1) - '@graphql-tools/load': 8.0.0(graphql@16.7.1) - '@graphql-tools/prisma-loader': 8.0.1(@types/node@20.4.5)(graphql@16.7.1) - '@graphql-tools/url-loader': 8.0.0(@types/node@20.4.5)(graphql@16.7.1) - '@graphql-tools/utils': 10.0.4(graphql@16.7.1) + '@babel/generator': 7.23.0 + '@babel/template': 7.22.15 + '@babel/types': 7.23.0 + '@graphql-codegen/core': 4.0.0(graphql@16.8.1) + '@graphql-codegen/plugin-helpers': 5.0.1(graphql@16.8.1) + '@graphql-tools/apollo-engine-loader': 8.0.0(graphql@16.8.1) + '@graphql-tools/code-file-loader': 8.0.2(graphql@16.8.1) + '@graphql-tools/git-loader': 8.0.2(graphql@16.8.1) + '@graphql-tools/github-loader': 8.0.0(@types/node@20.8.6)(graphql@16.8.1) + '@graphql-tools/graphql-file-loader': 8.0.0(graphql@16.8.1) + '@graphql-tools/json-file-loader': 8.0.0(graphql@16.8.1) + '@graphql-tools/load': 8.0.0(graphql@16.8.1) + '@graphql-tools/prisma-loader': 8.0.1(@types/node@20.8.6)(graphql@16.8.1) + '@graphql-tools/url-loader': 8.0.0(@types/node@20.8.6)(graphql@16.8.1) + '@graphql-tools/utils': 10.0.7(graphql@16.8.1) + '@parcel/watcher': 2.3.0 '@whatwg-node/fetch': 0.8.8 chalk: 4.1.2 - cosmiconfig: 8.2.0 + cosmiconfig: 8.3.6(typescript@5.2.2) debounce: 1.2.1 detect-indent: 6.1.0 - graphql: 16.7.1 - graphql-config: 5.0.2(@types/node@20.4.5)(graphql@16.7.1) - inquirer: 8.2.5 + graphql: 16.8.1 + graphql-config: 5.0.3(@types/node@20.8.6)(graphql@16.8.1)(typescript@5.2.2) + inquirer: 8.2.6 is-glob: 4.0.3 - jiti: 1.19.1 + jiti: 1.20.0 json-to-pretty-yaml: 1.2.2 listr2: 4.0.5 log-symbols: 4.1.0 @@ -2203,8 +2415,8 @@ packages: shell-quote: 1.8.1 string-env-interpolation: 1.0.1 ts-log: 2.2.5 - tslib: 2.6.1 - yaml: 2.3.1 + tslib: 2.6.2 + yaml: 2.3.3 yargs: 17.7.2 transitivePeerDependencies: - '@types/node' @@ -2213,121 +2425,138 @@ packages: - encoding - enquirer - supports-color + - typescript - utf-8-validate dev: true - /@graphql-codegen/core@4.0.0(graphql@16.7.1): + /@graphql-codegen/core@4.0.0(graphql@16.8.1): resolution: {integrity: sha512-JAGRn49lEtSsZVxeIlFVIRxts2lWObR+OQo7V2LHDJ7ohYYw3ilv7nJ8pf8P4GTg/w6ptcYdSdVVdkI8kUHB/Q==} peerDependencies: graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 dependencies: - '@graphql-codegen/plugin-helpers': 5.0.1(graphql@16.7.1) - '@graphql-tools/schema': 10.0.0(graphql@16.7.1) - '@graphql-tools/utils': 10.0.4(graphql@16.7.1) - graphql: 16.7.1 + '@graphql-codegen/plugin-helpers': 5.0.1(graphql@16.8.1) + '@graphql-tools/schema': 10.0.0(graphql@16.8.1) + '@graphql-tools/utils': 10.0.7(graphql@16.8.1) + graphql: 16.8.1 + tslib: 2.5.3 + dev: true + + /@graphql-codegen/gql-tag-operations@4.0.1(graphql@16.8.1): + resolution: {integrity: sha512-qF6wIbBzW8BNT+wiVsBxrYOs2oYcsxQ7mRvCpfEI3HnNZMAST/uX76W8MqFEJvj4mw7NIDv7xYJAcAZIWM5LWw==} + peerDependencies: + graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 + dependencies: + '@graphql-codegen/plugin-helpers': 5.0.1(graphql@16.8.1) + '@graphql-codegen/visitor-plugin-common': 3.0.2(patch_hash=xtxcf4pgtkvnkzcgi2zrafsufi)(graphql@16.8.1) + '@graphql-tools/utils': 10.0.7(graphql@16.8.1) + auto-bind: 4.0.0 + graphql: 16.8.1 tslib: 2.5.3 + transitivePeerDependencies: + - encoding + - supports-color dev: true - /@graphql-codegen/plugin-helpers@4.2.0(graphql@16.7.1): + /@graphql-codegen/plugin-helpers@4.2.0(graphql@16.8.1): resolution: {integrity: sha512-THFTCfg+46PXlXobYJ/OoCX6pzjI+9woQqCjdyKtgoI0tn3Xq2HUUCiidndxUpEYVrXb5pRiRXb7b/ZbMQqD0A==} peerDependencies: graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 dependencies: - '@graphql-tools/utils': 9.2.1(graphql@16.7.1) + '@graphql-tools/utils': 9.2.1(graphql@16.8.1) change-case-all: 1.0.15 common-tags: 1.8.2 - graphql: 16.7.1 + graphql: 16.8.1 import-from: 4.0.0 lodash: 4.17.21 tslib: 2.5.3 dev: true - /@graphql-codegen/plugin-helpers@5.0.1(graphql@16.7.1): + /@graphql-codegen/plugin-helpers@5.0.1(graphql@16.8.1): resolution: {integrity: sha512-6L5sb9D8wptZhnhLLBcheSPU7Tg//DGWgc5tQBWX46KYTOTQHGqDpv50FxAJJOyFVJrveN9otWk9UT9/yfY4ww==} peerDependencies: graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 dependencies: - '@graphql-tools/utils': 10.0.4(graphql@16.7.1) + '@graphql-tools/utils': 10.0.7(graphql@16.8.1) change-case-all: 1.0.15 common-tags: 1.8.2 - graphql: 16.7.1 + graphql: 16.8.1 import-from: 4.0.0 lodash: 4.17.21 tslib: 2.5.3 dev: true - /@graphql-codegen/schema-ast@4.0.0(graphql@16.7.1): + /@graphql-codegen/schema-ast@4.0.0(graphql@16.8.1): resolution: {integrity: sha512-WIzkJFa9Gz28FITAPILbt+7A8+yzOyd1NxgwFh7ie+EmO9a5zQK6UQ3U/BviirguXCYnn+AR4dXsoDrSrtRA1g==} peerDependencies: graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 dependencies: - '@graphql-codegen/plugin-helpers': 5.0.1(graphql@16.7.1) - '@graphql-tools/utils': 10.0.4(graphql@16.7.1) - graphql: 16.7.1 + '@graphql-codegen/plugin-helpers': 5.0.1(graphql@16.8.1) + '@graphql-tools/utils': 10.0.7(graphql@16.8.1) + graphql: 16.8.1 tslib: 2.5.3 dev: true - /@graphql-codegen/typescript-document-nodes@4.0.1(graphql@16.7.1): + /@graphql-codegen/typescript-document-nodes@4.0.1(graphql@16.8.1): resolution: {integrity: sha512-Q+0xER6T5/qVY3XYdT+H5Dnn4kWIQefV8IlV2KyxRfCxQVgJT4h5wA4NU+n2qd4B6Kn39gBA+mle9x8Lx2acrw==} peerDependencies: graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 dependencies: - '@graphql-codegen/plugin-helpers': 5.0.1(graphql@16.7.1) - '@graphql-codegen/visitor-plugin-common': 3.0.2(patch_hash=xtxcf4pgtkvnkzcgi2zrafsufi)(graphql@16.7.1) + '@graphql-codegen/plugin-helpers': 5.0.1(graphql@16.8.1) + '@graphql-codegen/visitor-plugin-common': 3.0.2(patch_hash=xtxcf4pgtkvnkzcgi2zrafsufi)(graphql@16.8.1) auto-bind: 4.0.0 - graphql: 16.7.1 + graphql: 16.8.1 tslib: 2.5.3 transitivePeerDependencies: - encoding - supports-color dev: true - /@graphql-codegen/typescript-operations@4.0.1(graphql@16.7.1): + /@graphql-codegen/typescript-operations@4.0.1(graphql@16.8.1): resolution: {integrity: sha512-GpUWWdBVUec/Zqo23aFLBMrXYxN2irypHqDcKjN78JclDPdreasAEPcIpMfqf4MClvpmvDLy4ql+djVAwmkjbw==} peerDependencies: graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 dependencies: - '@graphql-codegen/plugin-helpers': 5.0.1(graphql@16.7.1) - '@graphql-codegen/typescript': 4.0.1(graphql@16.7.1) - '@graphql-codegen/visitor-plugin-common': 3.0.2(patch_hash=xtxcf4pgtkvnkzcgi2zrafsufi)(graphql@16.7.1) + '@graphql-codegen/plugin-helpers': 5.0.1(graphql@16.8.1) + '@graphql-codegen/typescript': 4.0.1(graphql@16.8.1) + '@graphql-codegen/visitor-plugin-common': 3.0.2(patch_hash=xtxcf4pgtkvnkzcgi2zrafsufi)(graphql@16.8.1) auto-bind: 4.0.0 - graphql: 16.7.1 + graphql: 16.8.1 tslib: 2.5.3 transitivePeerDependencies: - encoding - supports-color dev: true - /@graphql-codegen/typescript@4.0.1(graphql@16.7.1): + /@graphql-codegen/typescript@4.0.1(graphql@16.8.1): resolution: {integrity: sha512-3YziQ21dCVdnHb+Us1uDb3pA6eG5Chjv0uTK+bt9dXeMlwYBU8MbtzvQTo4qvzWVC1AxSOKj0rgfNu1xCXqJyA==} peerDependencies: graphql: ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 dependencies: - '@graphql-codegen/plugin-helpers': 5.0.1(graphql@16.7.1) - '@graphql-codegen/schema-ast': 4.0.0(graphql@16.7.1) - '@graphql-codegen/visitor-plugin-common': 3.0.2(patch_hash=xtxcf4pgtkvnkzcgi2zrafsufi)(graphql@16.7.1) + '@graphql-codegen/plugin-helpers': 5.0.1(graphql@16.8.1) + '@graphql-codegen/schema-ast': 4.0.0(graphql@16.8.1) + '@graphql-codegen/visitor-plugin-common': 3.0.2(patch_hash=xtxcf4pgtkvnkzcgi2zrafsufi)(graphql@16.8.1) auto-bind: 4.0.0 - graphql: 16.7.1 + graphql: 16.8.1 tslib: 2.5.3 transitivePeerDependencies: - encoding - supports-color dev: true - /@graphql-codegen/visitor-plugin-common@3.0.2(patch_hash=xtxcf4pgtkvnkzcgi2zrafsufi)(graphql@16.7.1): + /@graphql-codegen/visitor-plugin-common@3.0.2(patch_hash=xtxcf4pgtkvnkzcgi2zrafsufi)(graphql@16.8.1): resolution: {integrity: sha512-dKblRFrB0Fdl3+nPlzlLBka+TN/EGwr/q09mwry0H58z3j6gXkMbsdPr+dc8MhgOV7w/8egRvSPIvd7m6eFCnw==} peerDependencies: graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 dependencies: - '@graphql-codegen/plugin-helpers': 4.2.0(graphql@16.7.1) - '@graphql-tools/optimize': 1.4.0(graphql@16.7.1) - '@graphql-tools/relay-operation-optimizer': 6.5.18(graphql@16.7.1) - '@graphql-tools/utils': 9.2.1(graphql@16.7.1) + '@graphql-codegen/plugin-helpers': 4.2.0(graphql@16.8.1) + '@graphql-tools/optimize': 1.4.0(graphql@16.8.1) + '@graphql-tools/relay-operation-optimizer': 6.5.18(graphql@16.8.1) + '@graphql-tools/utils': 9.2.1(graphql@16.8.1) auto-bind: 4.0.0 change-case-all: 1.0.15 dependency-graph: 0.11.0 - graphql: 16.7.1 - graphql-tag: 2.12.6(graphql@16.7.1) + graphql: 16.8.1 + graphql-tag: 2.12.6(graphql@16.8.1) parse-filepath: 1.0.2 tslib: 2.5.3 transitivePeerDependencies: @@ -2336,18 +2565,18 @@ packages: dev: true patched: true - /@graphql-inspector/audit-command@4.0.2(@graphql-inspector/config@4.0.1)(@graphql-inspector/loaders@4.0.2)(graphql@16.7.1)(yargs@17.7.2): + /@graphql-inspector/audit-command@4.0.2(@graphql-inspector/config@4.0.1)(@graphql-inspector/loaders@4.0.2)(graphql@16.8.1)(yargs@17.7.2): resolution: {integrity: sha512-KSCzHCEpmw/Eb8FuboRf+P8MWeAPj4jwwBB9AQp3zwry4PzYCut/h9z52ZPFXyrykeHbjKSkIQJwdrFxiWNmxQ==} engines: {node: '>=16.0.0'} peerDependencies: graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 dependencies: - '@graphql-inspector/commands': 4.0.2(@graphql-inspector/config@4.0.1)(@graphql-inspector/loaders@4.0.2)(graphql@16.7.1)(yargs@17.7.2) - '@graphql-inspector/core': 5.0.1(graphql@16.7.1) + '@graphql-inspector/commands': 4.0.2(@graphql-inspector/config@4.0.1)(@graphql-inspector/loaders@4.0.2)(graphql@16.8.1)(yargs@17.7.2) + '@graphql-inspector/core': 5.0.1(graphql@16.8.1) '@graphql-inspector/logger': 4.0.1 - '@graphql-tools/utils': 10.0.1(graphql@16.7.1) + '@graphql-tools/utils': 10.0.1(graphql@16.8.1) cli-table3: 0.6.3 - graphql: 16.7.1 + graphql: 16.8.1 tslib: 2.6.0 transitivePeerDependencies: - '@graphql-inspector/config' @@ -2355,7 +2584,7 @@ packages: - yargs dev: true - /@graphql-inspector/cli@4.0.2(@types/node@20.4.5)(graphql@16.7.1): + /@graphql-inspector/cli@4.0.2(@types/node@20.8.6)(graphql@16.8.1): resolution: {integrity: sha512-0dNrsyQ04LpMmg/jnfaIpj/3MDKWSz6be7ONL+T/EI4oXLvc0j3UU3IzkfZUb5x9ORPYfu4nbYVKSQ1ZdR5oNQ==} engines: {node: '>=16.0.0'} hasBin: true @@ -2363,24 +2592,24 @@ packages: graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 dependencies: '@babel/core': 7.22.8 - '@graphql-inspector/audit-command': 4.0.2(@graphql-inspector/config@4.0.1)(@graphql-inspector/loaders@4.0.2)(graphql@16.7.1)(yargs@17.7.2) - '@graphql-inspector/code-loader': 4.0.1(@babel/core@7.22.8)(graphql@16.7.1) - '@graphql-inspector/commands': 4.0.2(@graphql-inspector/config@4.0.1)(@graphql-inspector/loaders@4.0.2)(graphql@16.7.1)(yargs@17.7.2) - '@graphql-inspector/config': 4.0.1(graphql@16.7.1) - '@graphql-inspector/coverage-command': 5.0.2(@graphql-inspector/config@4.0.1)(@graphql-inspector/loaders@4.0.2)(graphql@16.7.1)(yargs@17.7.2) - '@graphql-inspector/diff-command': 4.0.2(@graphql-inspector/config@4.0.1)(@graphql-inspector/loaders@4.0.2)(graphql@16.7.1)(yargs@17.7.2) - '@graphql-inspector/docs-command': 4.0.2(@graphql-inspector/config@4.0.1)(@graphql-inspector/loaders@4.0.2)(graphql@16.7.1)(yargs@17.7.2) - '@graphql-inspector/git-loader': 4.0.1(@babel/core@7.22.8)(graphql@16.7.1) - '@graphql-inspector/github-loader': 4.0.1(@types/node@20.4.5)(graphql@16.7.1) - '@graphql-inspector/graphql-loader': 4.0.1(graphql@16.7.1) - '@graphql-inspector/introspect-command': 4.0.2(@graphql-inspector/config@4.0.1)(@graphql-inspector/loaders@4.0.2)(graphql@16.7.1)(yargs@17.7.2) - '@graphql-inspector/json-loader': 4.0.1(graphql@16.7.1) - '@graphql-inspector/loaders': 4.0.2(@babel/core@7.22.8)(@graphql-inspector/config@4.0.1)(graphql@16.7.1) - '@graphql-inspector/serve-command': 4.0.2(@graphql-inspector/config@4.0.1)(@graphql-inspector/loaders@4.0.2)(graphql@16.7.1)(yargs@17.7.2) - '@graphql-inspector/similar-command': 4.0.2(@graphql-inspector/config@4.0.1)(@graphql-inspector/loaders@4.0.2)(graphql@16.7.1)(yargs@17.7.2) - '@graphql-inspector/url-loader': 4.0.1(@types/node@20.4.5)(graphql@16.7.1) - '@graphql-inspector/validate-command': 4.0.2(@graphql-inspector/config@4.0.1)(@graphql-inspector/loaders@4.0.2)(graphql@16.7.1)(yargs@17.7.2) - graphql: 16.7.1 + '@graphql-inspector/audit-command': 4.0.2(@graphql-inspector/config@4.0.1)(@graphql-inspector/loaders@4.0.2)(graphql@16.8.1)(yargs@17.7.2) + '@graphql-inspector/code-loader': 4.0.1(@babel/core@7.22.8)(graphql@16.8.1) + '@graphql-inspector/commands': 4.0.2(@graphql-inspector/config@4.0.1)(@graphql-inspector/loaders@4.0.2)(graphql@16.8.1)(yargs@17.7.2) + '@graphql-inspector/config': 4.0.1(graphql@16.8.1) + '@graphql-inspector/coverage-command': 5.0.2(@graphql-inspector/config@4.0.1)(@graphql-inspector/loaders@4.0.2)(graphql@16.8.1)(yargs@17.7.2) + '@graphql-inspector/diff-command': 4.0.2(@graphql-inspector/config@4.0.1)(@graphql-inspector/loaders@4.0.2)(graphql@16.8.1)(yargs@17.7.2) + '@graphql-inspector/docs-command': 4.0.2(@graphql-inspector/config@4.0.1)(@graphql-inspector/loaders@4.0.2)(graphql@16.8.1)(yargs@17.7.2) + '@graphql-inspector/git-loader': 4.0.1(@babel/core@7.22.8)(graphql@16.8.1) + '@graphql-inspector/github-loader': 4.0.1(@types/node@20.8.6)(graphql@16.8.1) + '@graphql-inspector/graphql-loader': 4.0.1(graphql@16.8.1) + '@graphql-inspector/introspect-command': 4.0.2(@graphql-inspector/config@4.0.1)(@graphql-inspector/loaders@4.0.2)(graphql@16.8.1)(yargs@17.7.2) + '@graphql-inspector/json-loader': 4.0.1(graphql@16.8.1) + '@graphql-inspector/loaders': 4.0.2(@babel/core@7.22.8)(@graphql-inspector/config@4.0.1)(graphql@16.8.1) + '@graphql-inspector/serve-command': 4.0.2(@graphql-inspector/config@4.0.1)(@graphql-inspector/loaders@4.0.2)(graphql@16.8.1)(yargs@17.7.2) + '@graphql-inspector/similar-command': 4.0.2(@graphql-inspector/config@4.0.1)(@graphql-inspector/loaders@4.0.2)(graphql@16.8.1)(yargs@17.7.2) + '@graphql-inspector/url-loader': 4.0.1(@types/node@20.8.6)(graphql@16.8.1) + '@graphql-inspector/validate-command': 4.0.2(@graphql-inspector/config@4.0.1)(@graphql-inspector/loaders@4.0.2)(graphql@16.8.1)(yargs@17.7.2) + graphql: 16.8.1 tslib: 2.6.0 yargs: 17.7.2 transitivePeerDependencies: @@ -2391,21 +2620,21 @@ packages: - utf-8-validate dev: true - /@graphql-inspector/code-loader@4.0.1(@babel/core@7.22.8)(graphql@16.7.1): + /@graphql-inspector/code-loader@4.0.1(@babel/core@7.22.8)(graphql@16.8.1): resolution: {integrity: sha512-TTQFvfL7LiXb4FdXneVwbKRIOjeMA4wNltMGHW2Bej0djhfvMQpMPfUabf/cQLVdRjrNiUQnD1x5J6QeVp9djg==} engines: {node: '>=16.0.0'} peerDependencies: graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 dependencies: - '@graphql-tools/code-file-loader': 8.0.1(@babel/core@7.22.8)(graphql@16.7.1) - graphql: 16.7.1 + '@graphql-tools/code-file-loader': 8.0.1(@babel/core@7.22.8)(graphql@16.8.1) + graphql: 16.8.1 tslib: 2.6.0 transitivePeerDependencies: - '@babel/core' - supports-color dev: true - /@graphql-inspector/commands@4.0.2(@graphql-inspector/config@4.0.1)(@graphql-inspector/loaders@4.0.2)(graphql@16.7.1)(yargs@17.7.2): + /@graphql-inspector/commands@4.0.2(@graphql-inspector/config@4.0.1)(@graphql-inspector/loaders@4.0.2)(graphql@16.8.1)(yargs@17.7.2): resolution: {integrity: sha512-6tDTYBPPjPH0JR4Vmw5948ezJZicrDNahcy90XJxJQAXLofdl1d5MAkR33kkBKzborHEkFOx9fNPCgH5vb+GmA==} engines: {node: '>=16.0.0'} peerDependencies: @@ -2414,46 +2643,46 @@ packages: graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 yargs: 17.7.2 dependencies: - '@graphql-inspector/config': 4.0.1(graphql@16.7.1) - '@graphql-inspector/loaders': 4.0.2(@babel/core@7.22.8)(@graphql-inspector/config@4.0.1)(graphql@16.7.1) - graphql: 16.7.1 + '@graphql-inspector/config': 4.0.1(graphql@16.8.1) + '@graphql-inspector/loaders': 4.0.2(@babel/core@7.22.8)(@graphql-inspector/config@4.0.1)(graphql@16.8.1) + graphql: 16.8.1 tslib: 2.6.0 yargs: 17.7.2 dev: true - /@graphql-inspector/config@4.0.1(graphql@16.7.1): + /@graphql-inspector/config@4.0.1(graphql@16.8.1): resolution: {integrity: sha512-wkdlbnwu89WXYKInPV2evsgEz6xdfY9B3hUxQ6k8RpymbaYWnPfrhwE0+vXzUWjrwC7K70AlPvonJ3n/gGGRtQ==} engines: {node: '>=16.0.0'} peerDependencies: graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 dependencies: - graphql: 16.7.1 + graphql: 16.8.1 tslib: 2.6.0 dev: true - /@graphql-inspector/core@5.0.1(graphql@16.7.1): + /@graphql-inspector/core@5.0.1(graphql@16.8.1): resolution: {integrity: sha512-1CWfFYucnRdULGiN1NDSinlNlpucBT+0x4i4AIthKe5n5jD9RIVyJtkA8zBbujUFrP++YE3l+TQifwbN1yTQsw==} engines: {node: '>=16.0.0'} peerDependencies: graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 dependencies: dependency-graph: 0.11.0 - graphql: 16.7.1 + graphql: 16.8.1 object-inspect: 1.12.3 tslib: 2.6.0 dev: true - /@graphql-inspector/coverage-command@5.0.2(@graphql-inspector/config@4.0.1)(@graphql-inspector/loaders@4.0.2)(graphql@16.7.1)(yargs@17.7.2): + /@graphql-inspector/coverage-command@5.0.2(@graphql-inspector/config@4.0.1)(@graphql-inspector/loaders@4.0.2)(graphql@16.8.1)(yargs@17.7.2): resolution: {integrity: sha512-kCrZBGYixH2AfcWOqsBp9EFddQ3d+6NHBW6npm6LHyLl6B/HfwVEwaf9I/TcJcGVCiBPM5OSrqGt9pddvFgYOQ==} engines: {node: '>=16.0.0'} peerDependencies: graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 dependencies: - '@graphql-inspector/commands': 4.0.2(@graphql-inspector/config@4.0.1)(@graphql-inspector/loaders@4.0.2)(graphql@16.7.1)(yargs@17.7.2) - '@graphql-inspector/core': 5.0.1(graphql@16.7.1) + '@graphql-inspector/commands': 4.0.2(@graphql-inspector/config@4.0.1)(@graphql-inspector/loaders@4.0.2)(graphql@16.8.1)(yargs@17.7.2) + '@graphql-inspector/core': 5.0.1(graphql@16.8.1) '@graphql-inspector/logger': 4.0.1 - '@graphql-tools/utils': 10.0.1(graphql@16.7.1) - graphql: 16.7.1 + '@graphql-tools/utils': 10.0.1(graphql@16.8.1) + graphql: 16.8.1 tslib: 2.6.0 transitivePeerDependencies: - '@graphql-inspector/config' @@ -2461,16 +2690,16 @@ packages: - yargs dev: true - /@graphql-inspector/diff-command@4.0.2(@graphql-inspector/config@4.0.1)(@graphql-inspector/loaders@4.0.2)(graphql@16.7.1)(yargs@17.7.2): + /@graphql-inspector/diff-command@4.0.2(@graphql-inspector/config@4.0.1)(@graphql-inspector/loaders@4.0.2)(graphql@16.8.1)(yargs@17.7.2): resolution: {integrity: sha512-ADSTyzPvmhwXAaRWkwAT1Ozdk64HXJQqvDPIQuTlg6CAKLDvjcUgqiElNw7fn6JQ3RlOTXPAgAEEk31V4wFEPg==} engines: {node: '>=16.0.0'} peerDependencies: graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 dependencies: - '@graphql-inspector/commands': 4.0.2(@graphql-inspector/config@4.0.1)(@graphql-inspector/loaders@4.0.2)(graphql@16.7.1)(yargs@17.7.2) - '@graphql-inspector/core': 5.0.1(graphql@16.7.1) + '@graphql-inspector/commands': 4.0.2(@graphql-inspector/config@4.0.1)(@graphql-inspector/loaders@4.0.2)(graphql@16.8.1)(yargs@17.7.2) + '@graphql-inspector/core': 5.0.1(graphql@16.8.1) '@graphql-inspector/logger': 4.0.1 - graphql: 16.7.1 + graphql: 16.8.1 tslib: 2.6.0 transitivePeerDependencies: - '@graphql-inspector/config' @@ -2478,14 +2707,14 @@ packages: - yargs dev: true - /@graphql-inspector/docs-command@4.0.2(@graphql-inspector/config@4.0.1)(@graphql-inspector/loaders@4.0.2)(graphql@16.7.1)(yargs@17.7.2): + /@graphql-inspector/docs-command@4.0.2(@graphql-inspector/config@4.0.1)(@graphql-inspector/loaders@4.0.2)(graphql@16.8.1)(yargs@17.7.2): resolution: {integrity: sha512-Y6ME8/4oXXoMF66WEBs83QhIeeOqJUEaSVmCyMzWEZKn8EsoxmJDx7PCXd3a7r39Vk16vt2IYkgo3BX/f8mxoQ==} engines: {node: '>=16.0.0'} peerDependencies: graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 dependencies: - '@graphql-inspector/commands': 4.0.2(@graphql-inspector/config@4.0.1)(@graphql-inspector/loaders@4.0.2)(graphql@16.7.1)(yargs@17.7.2) - graphql: 16.7.1 + '@graphql-inspector/commands': 4.0.2(@graphql-inspector/config@4.0.1)(@graphql-inspector/loaders@4.0.2)(graphql@16.8.1)(yargs@17.7.2) + graphql: 16.8.1 open: 8.4.2 tslib: 2.6.0 transitivePeerDependencies: @@ -2494,28 +2723,28 @@ packages: - yargs dev: true - /@graphql-inspector/git-loader@4.0.1(@babel/core@7.22.8)(graphql@16.7.1): + /@graphql-inspector/git-loader@4.0.1(@babel/core@7.22.8)(graphql@16.8.1): resolution: {integrity: sha512-jgaaY0LieJXbvcjX7zTQ8m4vGRMWNqj4LFZiyQWazGcGoSqxJ/HSt/TbB5HaI+7YgVFWaVns+TfzEgakbSrkvA==} engines: {node: '>=16.0.0'} peerDependencies: graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 dependencies: - '@graphql-tools/git-loader': 8.0.1(@babel/core@7.22.8)(graphql@16.7.1) - graphql: 16.7.1 + '@graphql-tools/git-loader': 8.0.1(@babel/core@7.22.8)(graphql@16.8.1) + graphql: 16.8.1 tslib: 2.6.0 transitivePeerDependencies: - '@babel/core' - supports-color dev: true - /@graphql-inspector/github-loader@4.0.1(@types/node@20.4.5)(graphql@16.7.1): + /@graphql-inspector/github-loader@4.0.1(@types/node@20.8.6)(graphql@16.8.1): resolution: {integrity: sha512-PGtBgN5HErSPPxQ5U7Wnf7dBmxXtVyj4Tpi/5eDZEn9MdaqBH1MUy8HopNfv5KocgXork/CHNsroqbffSw6i+w==} engines: {node: '>=16.0.0'} peerDependencies: graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 dependencies: - '@graphql-tools/github-loader': 8.0.0(@types/node@20.4.5)(graphql@16.7.1) - graphql: 16.7.1 + '@graphql-tools/github-loader': 8.0.0(@types/node@20.8.6)(graphql@16.8.1) + graphql: 16.8.1 tslib: 2.6.0 transitivePeerDependencies: - '@types/node' @@ -2523,27 +2752,27 @@ packages: - supports-color dev: true - /@graphql-inspector/graphql-loader@4.0.1(graphql@16.7.1): + /@graphql-inspector/graphql-loader@4.0.1(graphql@16.8.1): resolution: {integrity: sha512-TFm96rT+MCVmutpB1qAvow+iBjBNPdbUhKo9NrCbNaU3y4Lq+7/srlNsvgLNz2ipaTEDYsosy3nOhUaOXlal7Q==} engines: {node: '>=16.0.0'} peerDependencies: graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 dependencies: - '@graphql-tools/graphql-file-loader': 8.0.0(graphql@16.7.1) - graphql: 16.7.1 + '@graphql-tools/graphql-file-loader': 8.0.0(graphql@16.8.1) + graphql: 16.8.1 tslib: 2.6.0 dev: true - /@graphql-inspector/introspect-command@4.0.2(@graphql-inspector/config@4.0.1)(@graphql-inspector/loaders@4.0.2)(graphql@16.7.1)(yargs@17.7.2): + /@graphql-inspector/introspect-command@4.0.2(@graphql-inspector/config@4.0.1)(@graphql-inspector/loaders@4.0.2)(graphql@16.8.1)(yargs@17.7.2): resolution: {integrity: sha512-BcEYgHA2iAz/t5qb7Y/+pIgVmewhH0rLdDfLe4iqxeByo/jYe70Qg+302B8MIvqwJdkbC0B3kA/ju/DiFFjF1Q==} engines: {node: '>=16.0.0'} peerDependencies: graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 dependencies: - '@graphql-inspector/commands': 4.0.2(@graphql-inspector/config@4.0.1)(@graphql-inspector/loaders@4.0.2)(graphql@16.7.1)(yargs@17.7.2) - '@graphql-inspector/core': 5.0.1(graphql@16.7.1) + '@graphql-inspector/commands': 4.0.2(@graphql-inspector/config@4.0.1)(@graphql-inspector/loaders@4.0.2)(graphql@16.8.1)(yargs@17.7.2) + '@graphql-inspector/core': 5.0.1(graphql@16.8.1) '@graphql-inspector/logger': 4.0.1 - graphql: 16.7.1 + graphql: 16.8.1 tslib: 2.6.0 transitivePeerDependencies: - '@graphql-inspector/config' @@ -2551,29 +2780,29 @@ packages: - yargs dev: true - /@graphql-inspector/json-loader@4.0.1(graphql@16.7.1): + /@graphql-inspector/json-loader@4.0.1(graphql@16.8.1): resolution: {integrity: sha512-MPAOU2I0i8hqHY+/XhkhRA2CD5kA1SRyJnMGW0Qc7Q0VqsyPyJiFGW8YR9vReUK+ygFJyHMRhXLG70hOG0jwIg==} engines: {node: '>=16.0.0'} peerDependencies: graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 dependencies: - '@graphql-tools/json-file-loader': 8.0.0(graphql@16.7.1) - graphql: 16.7.1 + '@graphql-tools/json-file-loader': 8.0.0(graphql@16.8.1) + graphql: 16.8.1 tslib: 2.6.0 dev: true - /@graphql-inspector/loaders@4.0.2(@babel/core@7.22.8)(@graphql-inspector/config@4.0.1)(graphql@16.7.1): + /@graphql-inspector/loaders@4.0.2(@babel/core@7.22.8)(@graphql-inspector/config@4.0.1)(graphql@16.8.1): resolution: {integrity: sha512-jTybFvSHLz0d1CIJKE6CBoKSIz0kbXxBxVvTYzcEtfLOSPpRPrlJ5GUUsCzL5yZ3Sya5NZAx2aZmCZ1z1TdPbQ==} engines: {node: '>=16.0.0'} peerDependencies: '@graphql-inspector/config': 4.0.1 graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 dependencies: - '@graphql-inspector/config': 4.0.1(graphql@16.7.1) - '@graphql-tools/code-file-loader': 8.0.1(@babel/core@7.22.8)(graphql@16.7.1) - '@graphql-tools/load': 8.0.0(graphql@16.7.1) - '@graphql-tools/utils': 10.0.1(graphql@16.7.1) - graphql: 16.7.1 + '@graphql-inspector/config': 4.0.1(graphql@16.8.1) + '@graphql-tools/code-file-loader': 8.0.1(@babel/core@7.22.8)(graphql@16.8.1) + '@graphql-tools/load': 8.0.0(graphql@16.8.1) + '@graphql-tools/utils': 10.0.1(graphql@16.8.1) + graphql: 16.8.1 tslib: 2.6.0 transitivePeerDependencies: - '@babel/core' @@ -2591,16 +2820,16 @@ packages: tslib: 2.6.0 dev: true - /@graphql-inspector/serve-command@4.0.2(@graphql-inspector/config@4.0.1)(@graphql-inspector/loaders@4.0.2)(graphql@16.7.1)(yargs@17.7.2): + /@graphql-inspector/serve-command@4.0.2(@graphql-inspector/config@4.0.1)(@graphql-inspector/loaders@4.0.2)(graphql@16.8.1)(yargs@17.7.2): resolution: {integrity: sha512-nnqJOoF2YNkzyFhr34GbR9yRVGcLNHnMEkef/9IdAG6fgz9jShzvYa+4K0iGA1R4QjV68B8MGs5E0r0qsKNUqw==} engines: {node: '>=16.0.0'} peerDependencies: graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 dependencies: - '@graphql-inspector/commands': 4.0.2(@graphql-inspector/config@4.0.1)(@graphql-inspector/loaders@4.0.2)(graphql@16.7.1)(yargs@17.7.2) + '@graphql-inspector/commands': 4.0.2(@graphql-inspector/config@4.0.1)(@graphql-inspector/loaders@4.0.2)(graphql@16.8.1)(yargs@17.7.2) '@graphql-inspector/logger': 4.0.1 - graphql: 16.7.1 - graphql-yoga: 4.0.3(graphql@16.7.1) + graphql: 16.8.1 + graphql-yoga: 4.0.3(graphql@16.8.1) open: 8.4.2 tslib: 2.6.0 transitivePeerDependencies: @@ -2609,16 +2838,16 @@ packages: - yargs dev: true - /@graphql-inspector/similar-command@4.0.2(@graphql-inspector/config@4.0.1)(@graphql-inspector/loaders@4.0.2)(graphql@16.7.1)(yargs@17.7.2): + /@graphql-inspector/similar-command@4.0.2(@graphql-inspector/config@4.0.1)(@graphql-inspector/loaders@4.0.2)(graphql@16.8.1)(yargs@17.7.2): resolution: {integrity: sha512-VwZ1LnnbsQE82tRrnGs9u74eVfYzrGpg1h9CyFdUKTqH6Y+1sL4QTjaQKxc+Cr66x2ByZZ1AXvSkzf+PfR47GQ==} engines: {node: '>=16.0.0'} peerDependencies: graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 dependencies: - '@graphql-inspector/commands': 4.0.2(@graphql-inspector/config@4.0.1)(@graphql-inspector/loaders@4.0.2)(graphql@16.7.1)(yargs@17.7.2) - '@graphql-inspector/core': 5.0.1(graphql@16.7.1) + '@graphql-inspector/commands': 4.0.2(@graphql-inspector/config@4.0.1)(@graphql-inspector/loaders@4.0.2)(graphql@16.8.1)(yargs@17.7.2) + '@graphql-inspector/core': 5.0.1(graphql@16.8.1) '@graphql-inspector/logger': 4.0.1 - graphql: 16.7.1 + graphql: 16.8.1 tslib: 2.6.0 transitivePeerDependencies: - '@graphql-inspector/config' @@ -2626,14 +2855,14 @@ packages: - yargs dev: true - /@graphql-inspector/url-loader@4.0.1(@types/node@20.4.5)(graphql@16.7.1): + /@graphql-inspector/url-loader@4.0.1(@types/node@20.8.6)(graphql@16.8.1): resolution: {integrity: sha512-9Vl6mEUmS6RcKsKVbVLUPNA0PG0Efhvcq8EgbAXK3vdYn/+nZKpTuS2rKFh5Fxd0MrR4+JbqaGRdicEyXHB8sg==} engines: {node: '>=16.0.0'} peerDependencies: graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 dependencies: - '@graphql-tools/url-loader': 8.0.0(@types/node@20.4.5)(graphql@16.7.1) - graphql: 16.7.1 + '@graphql-tools/url-loader': 8.0.0(@types/node@20.8.6)(graphql@16.8.1) + graphql: 16.8.1 tslib: 2.6.0 transitivePeerDependencies: - '@types/node' @@ -2642,17 +2871,17 @@ packages: - utf-8-validate dev: true - /@graphql-inspector/validate-command@4.0.2(@graphql-inspector/config@4.0.1)(@graphql-inspector/loaders@4.0.2)(graphql@16.7.1)(yargs@17.7.2): + /@graphql-inspector/validate-command@4.0.2(@graphql-inspector/config@4.0.1)(@graphql-inspector/loaders@4.0.2)(graphql@16.8.1)(yargs@17.7.2): resolution: {integrity: sha512-DPX8qWncgmCVav5d01CX/5jcpud69D8ovC820zCt2U+ZsR4sFFMCM+EhpLWVCnomO+5WzAogxYhG6p++x2sgoA==} engines: {node: '>=16.0.0'} peerDependencies: graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 dependencies: - '@graphql-inspector/commands': 4.0.2(@graphql-inspector/config@4.0.1)(@graphql-inspector/loaders@4.0.2)(graphql@16.7.1)(yargs@17.7.2) - '@graphql-inspector/core': 5.0.1(graphql@16.7.1) + '@graphql-inspector/commands': 4.0.2(@graphql-inspector/config@4.0.1)(@graphql-inspector/loaders@4.0.2)(graphql@16.8.1)(yargs@17.7.2) + '@graphql-inspector/core': 5.0.1(graphql@16.8.1) '@graphql-inspector/logger': 4.0.1 - '@graphql-tools/utils': 10.0.1(graphql@16.7.1) - graphql: 16.7.1 + '@graphql-tools/utils': 10.0.1(graphql@16.8.1) + graphql: 16.8.1 tslib: 2.6.0 transitivePeerDependencies: - '@graphql-inspector/config' @@ -2660,198 +2889,197 @@ packages: - yargs dev: true - /@graphql-tools/apollo-engine-loader@8.0.0(graphql@16.7.1): + /@graphql-tools/apollo-engine-loader@8.0.0(graphql@16.8.1): resolution: {integrity: sha512-axQTbN5+Yxs1rJ6cWQBOfw3AEeC+fvIuZSfJLPLLvFJLj4pUm9fhxey/g6oQZAAQJqKPfw+tLDUQvnfvRK8Kmg==} engines: {node: '>=16.0.0'} peerDependencies: graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 dependencies: '@ardatan/sync-fetch': 0.0.1 - '@graphql-tools/utils': 10.0.4(graphql@16.7.1) - '@whatwg-node/fetch': 0.9.9 - graphql: 16.7.1 - tslib: 2.6.1 + '@graphql-tools/utils': 10.0.7(graphql@16.8.1) + '@whatwg-node/fetch': 0.9.13 + graphql: 16.8.1 + tslib: 2.6.2 transitivePeerDependencies: - encoding dev: true - /@graphql-tools/batch-execute@9.0.0(graphql@16.7.1): - resolution: {integrity: sha512-lT9/1XmPSYzBcEybXPLsuA6C5E0t8438PVUELABcqdvwHgZ3VOOx29MLBEqhr2oewOlDChH6PXNkfxoOoAuzRg==} + /@graphql-tools/batch-execute@9.0.2(graphql@16.8.1): + resolution: {integrity: sha512-Y2uwdZI6ZnatopD/SYfZ1eGuQFI7OU2KGZ2/B/7G9ISmgMl5K+ZZWz/PfIEXeiHirIDhyk54s4uka5rj2xwKqQ==} engines: {node: '>=16.0.0'} peerDependencies: graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 dependencies: - '@graphql-tools/utils': 10.0.4(graphql@16.7.1) + '@graphql-tools/utils': 10.0.7(graphql@16.8.1) dataloader: 2.2.2 - graphql: 16.7.1 - tslib: 2.6.1 + graphql: 16.8.1 + tslib: 2.6.2 value-or-promise: 1.0.12 dev: true - /@graphql-tools/code-file-loader@8.0.1(@babel/core@7.22.8)(graphql@16.7.1): + /@graphql-tools/code-file-loader@8.0.1(@babel/core@7.22.8)(graphql@16.8.1): resolution: {integrity: sha512-pmg81lsIXGW3uW+nFSCIG0lFQIxWVbgDjeBkSWlnP8CZsrHTQEkB53DT7t4BHLryoxDS4G4cPxM52yNINDSL8w==} engines: {node: '>=16.0.0'} peerDependencies: graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 dependencies: - '@graphql-tools/graphql-tag-pluck': 8.0.1(@babel/core@7.22.8)(graphql@16.7.1) - '@graphql-tools/utils': 10.0.4(graphql@16.7.1) + '@graphql-tools/graphql-tag-pluck': 8.0.1(@babel/core@7.22.8)(graphql@16.8.1) + '@graphql-tools/utils': 10.0.7(graphql@16.8.1) globby: 11.1.0 - graphql: 16.7.1 - tslib: 2.6.1 + graphql: 16.8.1 + tslib: 2.6.2 unixify: 1.0.0 transitivePeerDependencies: - '@babel/core' - supports-color dev: true - /@graphql-tools/code-file-loader@8.0.2(graphql@16.7.1): + /@graphql-tools/code-file-loader@8.0.2(graphql@16.8.1): resolution: {integrity: sha512-AKNpkElUL2cWocYpC4DzNEpo6qJw8Lp+L3bKQ/mIfmbsQxgLz5uve6zHBMhDaFPdlwfIox41N3iUSvi77t9e8A==} engines: {node: '>=16.0.0'} peerDependencies: graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 dependencies: - '@graphql-tools/graphql-tag-pluck': 8.0.2(graphql@16.7.1) - '@graphql-tools/utils': 10.0.4(graphql@16.7.1) + '@graphql-tools/graphql-tag-pluck': 8.0.2(graphql@16.8.1) + '@graphql-tools/utils': 10.0.7(graphql@16.8.1) globby: 11.1.0 - graphql: 16.7.1 - tslib: 2.6.1 + graphql: 16.8.1 + tslib: 2.6.2 unixify: 1.0.0 transitivePeerDependencies: - supports-color dev: true - /@graphql-tools/delegate@10.0.0(graphql@16.7.1): - resolution: {integrity: sha512-ZW5/7Q0JqUM+guwn8/cM/1Hz16Zvj6WR6r3gnOwoPO7a9bCbe8QTCk4itT/EO+RiGT8RLUPYaunWR9jxfNqqOA==} + /@graphql-tools/delegate@10.0.3(graphql@16.8.1): + resolution: {integrity: sha512-Jor9oazZ07zuWkykD3OOhT/2XD74Zm6Ar0ENZMk75MDD51wB2UWUIMljtHxbJhV5A6UBC2v8x6iY0xdCGiIlyw==} engines: {node: '>=16.0.0'} peerDependencies: graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 dependencies: - '@graphql-tools/batch-execute': 9.0.0(graphql@16.7.1) - '@graphql-tools/executor': 1.1.0(graphql@16.7.1) - '@graphql-tools/schema': 10.0.0(graphql@16.7.1) - '@graphql-tools/utils': 10.0.4(graphql@16.7.1) + '@graphql-tools/batch-execute': 9.0.2(graphql@16.8.1) + '@graphql-tools/executor': 1.2.0(graphql@16.8.1) + '@graphql-tools/schema': 10.0.0(graphql@16.8.1) + '@graphql-tools/utils': 10.0.7(graphql@16.8.1) dataloader: 2.2.2 - graphql: 16.7.1 - tslib: 2.6.1 - value-or-promise: 1.0.12 + graphql: 16.8.1 + tslib: 2.6.2 dev: true - /@graphql-tools/executor-graphql-ws@1.1.0(graphql@16.7.1): + /@graphql-tools/executor-graphql-ws@1.1.0(graphql@16.8.1): resolution: {integrity: sha512-yM67SzwE8rYRpm4z4AuGtABlOp9mXXVy6sxXnTJRoYIdZrmDbKVfIY+CpZUJCqS0FX3xf2+GoHlsj7Qswaxgcg==} engines: {node: '>=16.0.0'} peerDependencies: graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 dependencies: - '@graphql-tools/utils': 10.0.4(graphql@16.7.1) - '@types/ws': 8.5.5 - graphql: 16.7.1 - graphql-ws: 5.14.0(graphql@16.7.1) - isomorphic-ws: 5.0.0(ws@8.13.0) - tslib: 2.6.1 - ws: 8.13.0 + '@graphql-tools/utils': 10.0.7(graphql@16.8.1) + '@types/ws': 8.5.7 + graphql: 16.8.1 + graphql-ws: 5.14.1(graphql@16.8.1) + isomorphic-ws: 5.0.0(ws@8.14.2) + tslib: 2.6.2 + ws: 8.14.2 transitivePeerDependencies: - bufferutil - utf-8-validate dev: true - /@graphql-tools/executor-http@1.0.2(@types/node@20.4.5)(graphql@16.7.1): - resolution: {integrity: sha512-JKTB4E3kdQM2/1NEcyrVPyQ8057ZVthCV5dFJiKktqY9IdmF00M8gupFcW3jlbM/Udn78ickeUBsUzA3EouqpA==} + /@graphql-tools/executor-http@1.0.3(@types/node@20.8.6)(graphql@16.8.1): + resolution: {integrity: sha512-5WZIMBevRaxMabZ8U2Ty0dTUPy/PpeYSlMNEmC/YJjKKykgSfc/AwSejx2sE4FFKZ0I2kxRKRenyoWMHRAV49Q==} engines: {node: '>=16.0.0'} peerDependencies: graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 dependencies: - '@graphql-tools/utils': 10.0.4(graphql@16.7.1) + '@graphql-tools/utils': 10.0.7(graphql@16.8.1) '@repeaterjs/repeater': 3.0.4 - '@whatwg-node/fetch': 0.9.9 + '@whatwg-node/fetch': 0.9.13 extract-files: 11.0.0 - graphql: 16.7.1 - meros: 1.3.0(@types/node@20.4.5) - tslib: 2.6.1 + graphql: 16.8.1 + meros: 1.3.0(@types/node@20.8.6) + tslib: 2.6.2 value-or-promise: 1.0.12 transitivePeerDependencies: - '@types/node' dev: true - /@graphql-tools/executor-legacy-ws@1.0.1(graphql@16.7.1): - resolution: {integrity: sha512-PQrTJ+ncHMEQspBARc2lhwiQFfRAX/z/CsOdZTFjIljOHgRWGAA1DAx7pEN0j6PflbLCfZ3NensNq2jCBwF46w==} + /@graphql-tools/executor-legacy-ws@1.0.4(graphql@16.8.1): + resolution: {integrity: sha512-b7aGuRekZDS+m3af3BIvMKxu15bmVPMt5eGQVuP2v5pxmbaPTh+iv5mx9b3Plt32z5Ke5tycBnNm5urSFtW8ng==} engines: {node: '>=16.0.0'} peerDependencies: graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 dependencies: - '@graphql-tools/utils': 10.0.4(graphql@16.7.1) - '@types/ws': 8.5.5 - graphql: 16.7.1 - isomorphic-ws: 5.0.0(ws@8.13.0) - tslib: 2.6.1 - ws: 8.13.0 + '@graphql-tools/utils': 10.0.7(graphql@16.8.1) + '@types/ws': 8.5.7 + graphql: 16.8.1 + isomorphic-ws: 5.0.0(ws@8.14.2) + tslib: 2.6.2 + ws: 8.14.2 transitivePeerDependencies: - bufferutil - utf-8-validate dev: true - /@graphql-tools/executor@1.1.0(graphql@16.7.1): - resolution: {integrity: sha512-+1wmnaUHETSYxiK/ELsT60x584Rw3QKBB7F/7fJ83HKPnLifmE2Dm/K9Eyt6L0Ppekf1jNUbWBpmBGb8P5hAeg==} + /@graphql-tools/executor@1.2.0(graphql@16.8.1): + resolution: {integrity: sha512-SKlIcMA71Dha5JnEWlw4XxcaJ+YupuXg0QCZgl2TOLFz4SkGCwU/geAsJvUJFwK2RbVLpQv/UMq67lOaBuwDtg==} engines: {node: '>=16.0.0'} peerDependencies: graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 dependencies: - '@graphql-tools/utils': 10.0.4(graphql@16.7.1) - '@graphql-typed-document-node/core': 3.2.0(graphql@16.7.1) + '@graphql-tools/utils': 10.0.7(graphql@16.8.1) + '@graphql-typed-document-node/core': 3.2.0(graphql@16.8.1) '@repeaterjs/repeater': 3.0.4 - graphql: 16.7.1 - tslib: 2.6.1 + graphql: 16.8.1 + tslib: 2.6.2 value-or-promise: 1.0.12 dev: true - /@graphql-tools/git-loader@8.0.1(@babel/core@7.22.8)(graphql@16.7.1): + /@graphql-tools/git-loader@8.0.1(@babel/core@7.22.8)(graphql@16.8.1): resolution: {integrity: sha512-ivNtxD+iEfpPONYKip0kbpZMRdMCNR3HrIui8NCURmUdvBYGaGcbB3VrGMhxwZuzc+ybhs2ralPt1F8Oxq2jLA==} engines: {node: '>=16.0.0'} peerDependencies: graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 dependencies: - '@graphql-tools/graphql-tag-pluck': 8.0.1(@babel/core@7.22.8)(graphql@16.7.1) - '@graphql-tools/utils': 10.0.4(graphql@16.7.1) - graphql: 16.7.1 + '@graphql-tools/graphql-tag-pluck': 8.0.1(@babel/core@7.22.8)(graphql@16.8.1) + '@graphql-tools/utils': 10.0.7(graphql@16.8.1) + graphql: 16.8.1 is-glob: 4.0.3 micromatch: 4.0.5 - tslib: 2.6.1 + tslib: 2.6.2 unixify: 1.0.0 transitivePeerDependencies: - '@babel/core' - supports-color dev: true - /@graphql-tools/git-loader@8.0.2(graphql@16.7.1): + /@graphql-tools/git-loader@8.0.2(graphql@16.8.1): resolution: {integrity: sha512-AuCB0nlPvsHh8u42zRZdlD/ZMaWP9A44yAkQUVCZir1E/LG63fsZ9svTWJ+CbusW3Hd0ZP9qpxEhlHxnd4Tlsg==} engines: {node: '>=16.0.0'} peerDependencies: graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 dependencies: - '@graphql-tools/graphql-tag-pluck': 8.0.2(graphql@16.7.1) - '@graphql-tools/utils': 10.0.4(graphql@16.7.1) - graphql: 16.7.1 + '@graphql-tools/graphql-tag-pluck': 8.0.2(graphql@16.8.1) + '@graphql-tools/utils': 10.0.7(graphql@16.8.1) + graphql: 16.8.1 is-glob: 4.0.3 micromatch: 4.0.5 - tslib: 2.6.1 + tslib: 2.6.2 unixify: 1.0.0 transitivePeerDependencies: - supports-color dev: true - /@graphql-tools/github-loader@8.0.0(@types/node@20.4.5)(graphql@16.7.1): + /@graphql-tools/github-loader@8.0.0(@types/node@20.8.6)(graphql@16.8.1): resolution: {integrity: sha512-VuroArWKcG4yaOWzV0r19ElVIV6iH6UKDQn1MXemND0xu5TzrFme0kf3U9o0YwNo0kUYEk9CyFM0BYg4he17FA==} engines: {node: '>=16.0.0'} peerDependencies: graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 dependencies: '@ardatan/sync-fetch': 0.0.1 - '@graphql-tools/executor-http': 1.0.2(@types/node@20.4.5)(graphql@16.7.1) - '@graphql-tools/graphql-tag-pluck': 8.0.2(graphql@16.7.1) - '@graphql-tools/utils': 10.0.4(graphql@16.7.1) - '@whatwg-node/fetch': 0.9.9 - graphql: 16.7.1 - tslib: 2.6.1 + '@graphql-tools/executor-http': 1.0.3(@types/node@20.8.6)(graphql@16.8.1) + '@graphql-tools/graphql-tag-pluck': 8.0.2(graphql@16.8.1) + '@graphql-tools/utils': 10.0.7(graphql@16.8.1) + '@whatwg-node/fetch': 0.9.13 + graphql: 16.8.1 + tslib: 2.6.2 value-or-promise: 1.0.12 transitivePeerDependencies: - '@types/node' @@ -2859,138 +3087,138 @@ packages: - supports-color dev: true - /@graphql-tools/graphql-file-loader@8.0.0(graphql@16.7.1): + /@graphql-tools/graphql-file-loader@8.0.0(graphql@16.8.1): resolution: {integrity: sha512-wRXj9Z1IFL3+zJG1HWEY0S4TXal7+s1vVhbZva96MSp0kbb/3JBF7j0cnJ44Eq0ClccMgGCDFqPFXty4JlpaPg==} engines: {node: '>=16.0.0'} peerDependencies: graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 dependencies: - '@graphql-tools/import': 7.0.0(graphql@16.7.1) - '@graphql-tools/utils': 10.0.4(graphql@16.7.1) + '@graphql-tools/import': 7.0.0(graphql@16.8.1) + '@graphql-tools/utils': 10.0.7(graphql@16.8.1) globby: 11.1.0 - graphql: 16.7.1 - tslib: 2.6.1 + graphql: 16.8.1 + tslib: 2.6.2 unixify: 1.0.0 dev: true - /@graphql-tools/graphql-tag-pluck@8.0.1(@babel/core@7.22.8)(graphql@16.7.1): + /@graphql-tools/graphql-tag-pluck@8.0.1(@babel/core@7.22.8)(graphql@16.8.1): resolution: {integrity: sha512-4sfBJSoXxVB4rRCCp2GTFhAYsUJgAPSKxSV+E3Voc600mK52JO+KsHCCTnPgCeyJFMNR9l94J6+tqxVKmlqKvw==} engines: {node: '>=16.0.0'} peerDependencies: graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 dependencies: - '@babel/parser': 7.22.7 + '@babel/parser': 7.23.0 '@babel/plugin-syntax-import-assertions': 7.22.5(@babel/core@7.22.8) - '@babel/traverse': 7.22.8 - '@babel/types': 7.22.5 - '@graphql-tools/utils': 10.0.4(graphql@16.7.1) - graphql: 16.7.1 - tslib: 2.6.1 + '@babel/traverse': 7.23.2 + '@babel/types': 7.23.0 + '@graphql-tools/utils': 10.0.7(graphql@16.8.1) + graphql: 16.8.1 + tslib: 2.6.2 transitivePeerDependencies: - '@babel/core' - supports-color dev: true - /@graphql-tools/graphql-tag-pluck@8.0.2(graphql@16.7.1): + /@graphql-tools/graphql-tag-pluck@8.0.2(graphql@16.8.1): resolution: {integrity: sha512-U6fE4yEHxuk/nqmPixHpw1WhqdS6aYuaV60m1bEmUmGJNbpAhaMBy01JncpvpF15yZR5LZ0UjkHg+A3Lhoc8YQ==} engines: {node: '>=16.0.0'} peerDependencies: graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 dependencies: - '@babel/core': 7.22.9 - '@babel/parser': 7.22.7 - '@babel/plugin-syntax-import-assertions': 7.22.5(@babel/core@7.22.9) - '@babel/traverse': 7.22.8 - '@babel/types': 7.22.5 - '@graphql-tools/utils': 10.0.4(graphql@16.7.1) - graphql: 16.7.1 - tslib: 2.6.1 + '@babel/core': 7.23.2 + '@babel/parser': 7.23.0 + '@babel/plugin-syntax-import-assertions': 7.22.5(@babel/core@7.23.2) + '@babel/traverse': 7.23.2 + '@babel/types': 7.23.0 + '@graphql-tools/utils': 10.0.7(graphql@16.8.1) + graphql: 16.8.1 + tslib: 2.6.2 transitivePeerDependencies: - supports-color dev: true - /@graphql-tools/import@7.0.0(graphql@16.7.1): + /@graphql-tools/import@7.0.0(graphql@16.8.1): resolution: {integrity: sha512-NVZiTO8o1GZs6OXzNfjB+5CtQtqsZZpQOq+Uu0w57kdUkT4RlQKlwhT8T81arEsbV55KpzkpFsOZP7J1wdmhBw==} engines: {node: '>=16.0.0'} peerDependencies: graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 dependencies: - '@graphql-tools/utils': 10.0.4(graphql@16.7.1) - graphql: 16.7.1 + '@graphql-tools/utils': 10.0.7(graphql@16.8.1) + graphql: 16.8.1 resolve-from: 5.0.0 - tslib: 2.6.1 + tslib: 2.6.2 dev: true - /@graphql-tools/json-file-loader@8.0.0(graphql@16.7.1): + /@graphql-tools/json-file-loader@8.0.0(graphql@16.8.1): resolution: {integrity: sha512-ki6EF/mobBWJjAAC84xNrFMhNfnUFD6Y0rQMGXekrUgY0NdeYXHU0ZUgHzC9O5+55FslqUmAUHABePDHTyZsLg==} engines: {node: '>=16.0.0'} peerDependencies: graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 dependencies: - '@graphql-tools/utils': 10.0.4(graphql@16.7.1) + '@graphql-tools/utils': 10.0.7(graphql@16.8.1) globby: 11.1.0 - graphql: 16.7.1 - tslib: 2.6.1 + graphql: 16.8.1 + tslib: 2.6.2 unixify: 1.0.0 dev: true - /@graphql-tools/load@8.0.0(graphql@16.7.1): + /@graphql-tools/load@8.0.0(graphql@16.8.1): resolution: {integrity: sha512-Cy874bQJH0FP2Az7ELPM49iDzOljQmK1PPH6IuxsWzLSTxwTqd8dXA09dcVZrI7/LsN26heTY2R8q2aiiv0GxQ==} engines: {node: '>=16.0.0'} peerDependencies: graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 dependencies: - '@graphql-tools/schema': 10.0.0(graphql@16.7.1) - '@graphql-tools/utils': 10.0.4(graphql@16.7.1) - graphql: 16.7.1 + '@graphql-tools/schema': 10.0.0(graphql@16.8.1) + '@graphql-tools/utils': 10.0.7(graphql@16.8.1) + graphql: 16.8.1 p-limit: 3.1.0 - tslib: 2.6.1 + tslib: 2.6.2 dev: true - /@graphql-tools/merge@9.0.0(graphql@16.7.1): + /@graphql-tools/merge@9.0.0(graphql@16.8.1): resolution: {integrity: sha512-J7/xqjkGTTwOJmaJQJ2C+VDBDOWJL3lKrHJN4yMaRLAJH3PosB7GiPRaSDZdErs0+F77sH2MKs2haMMkywzx7Q==} engines: {node: '>=16.0.0'} peerDependencies: graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 dependencies: - '@graphql-tools/utils': 10.0.4(graphql@16.7.1) - graphql: 16.7.1 - tslib: 2.6.1 + '@graphql-tools/utils': 10.0.7(graphql@16.8.1) + graphql: 16.8.1 + tslib: 2.6.2 dev: true - /@graphql-tools/optimize@1.4.0(graphql@16.7.1): + /@graphql-tools/optimize@1.4.0(graphql@16.8.1): resolution: {integrity: sha512-dJs/2XvZp+wgHH8T5J2TqptT9/6uVzIYvA6uFACha+ufvdMBedkfR4b4GbT8jAKLRARiqRTxy3dctnwkTM2tdw==} peerDependencies: graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 dependencies: - graphql: 16.7.1 - tslib: 2.6.1 + graphql: 16.8.1 + tslib: 2.6.2 dev: true - /@graphql-tools/prisma-loader@8.0.1(@types/node@20.4.5)(graphql@16.7.1): + /@graphql-tools/prisma-loader@8.0.1(@types/node@20.8.6)(graphql@16.8.1): resolution: {integrity: sha512-bl6e5sAYe35Z6fEbgKXNrqRhXlCJYeWKBkarohgYA338/SD9eEhXtg3Cedj7fut3WyRLoQFpHzfiwxKs7XrgXg==} engines: {node: '>=16.0.0'} peerDependencies: graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 dependencies: - '@graphql-tools/url-loader': 8.0.0(@types/node@20.4.5)(graphql@16.7.1) - '@graphql-tools/utils': 10.0.4(graphql@16.7.1) - '@types/js-yaml': 4.0.5 + '@graphql-tools/url-loader': 8.0.0(@types/node@20.8.6)(graphql@16.8.1) + '@graphql-tools/utils': 10.0.7(graphql@16.8.1) + '@types/js-yaml': 4.0.7 '@types/json-stable-stringify': 1.0.34 - '@whatwg-node/fetch': 0.9.9 + '@whatwg-node/fetch': 0.9.13 chalk: 4.1.2 debug: 4.3.4(supports-color@8.1.1) dotenv: 16.3.1 - graphql: 16.7.1 - graphql-request: 6.1.0(graphql@16.7.1) + graphql: 16.8.1 + graphql-request: 6.1.0(graphql@16.8.1) http-proxy-agent: 7.0.0 - https-proxy-agent: 7.0.1 - jose: 4.14.4 + https-proxy-agent: 7.0.2 + jose: 4.15.4 js-yaml: 4.1.0 json-stable-stringify: 1.0.2 lodash: 4.17.21 scuid: 1.1.0 - tslib: 2.6.1 + tslib: 2.6.2 yaml-ast-parser: 0.0.43 transitivePeerDependencies: - '@types/node' @@ -3000,53 +3228,68 @@ packages: - utf-8-validate dev: true - /@graphql-tools/relay-operation-optimizer@6.5.18(graphql@16.7.1): + /@graphql-tools/relay-operation-optimizer@6.5.18(graphql@16.8.1): resolution: {integrity: sha512-mc5VPyTeV+LwiM+DNvoDQfPqwQYhPV/cl5jOBjTgSniyaq8/86aODfMkrE2OduhQ5E00hqrkuL2Fdrgk0w1QJg==} peerDependencies: graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 dependencies: - '@ardatan/relay-compiler': 12.0.0(graphql@16.7.1) - '@graphql-tools/utils': 9.2.1(graphql@16.7.1) - graphql: 16.7.1 - tslib: 2.6.1 + '@ardatan/relay-compiler': 12.0.0(graphql@16.8.1) + '@graphql-tools/utils': 9.2.1(graphql@16.8.1) + graphql: 16.8.1 + tslib: 2.6.2 + transitivePeerDependencies: + - encoding + - supports-color + dev: true + + /@graphql-tools/relay-operation-optimizer@7.0.0(graphql@16.8.1): + resolution: {integrity: sha512-UNlJi5y3JylhVWU4MBpL0Hun4Q7IoJwv9xYtmAz+CgRa066szzY7dcuPfxrA7cIGgG/Q6TVsKsYaiF4OHPs1Fw==} + engines: {node: '>=16.0.0'} + peerDependencies: + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + dependencies: + '@ardatan/relay-compiler': 12.0.0(graphql@16.8.1) + '@graphql-tools/utils': 10.0.7(graphql@16.8.1) + graphql: 16.8.1 + tslib: 2.6.2 transitivePeerDependencies: - encoding - supports-color dev: true - /@graphql-tools/schema@10.0.0(graphql@16.7.1): + /@graphql-tools/schema@10.0.0(graphql@16.8.1): resolution: {integrity: sha512-kf3qOXMFcMs2f/S8Y3A8fm/2w+GaHAkfr3Gnhh2LOug/JgpY/ywgFVxO3jOeSpSEdoYcDKLcXVjMigNbY4AdQg==} engines: {node: '>=16.0.0'} peerDependencies: graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 dependencies: - '@graphql-tools/merge': 9.0.0(graphql@16.7.1) - '@graphql-tools/utils': 10.0.4(graphql@16.7.1) - graphql: 16.7.1 - tslib: 2.6.1 + '@graphql-tools/merge': 9.0.0(graphql@16.8.1) + '@graphql-tools/utils': 10.0.7(graphql@16.8.1) + graphql: 16.8.1 + tslib: 2.6.2 value-or-promise: 1.0.12 dev: true - /@graphql-tools/url-loader@8.0.0(@types/node@20.4.5)(graphql@16.7.1): + /@graphql-tools/url-loader@8.0.0(@types/node@20.8.6)(graphql@16.8.1): resolution: {integrity: sha512-rPc9oDzMnycvz+X+wrN3PLrhMBQkG4+sd8EzaFN6dypcssiefgWKToXtRKI8HHK68n2xEq1PyrOpkjHFJB+GwA==} engines: {node: '>=16.0.0'} peerDependencies: graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 dependencies: '@ardatan/sync-fetch': 0.0.1 - '@graphql-tools/delegate': 10.0.0(graphql@16.7.1) - '@graphql-tools/executor-graphql-ws': 1.1.0(graphql@16.7.1) - '@graphql-tools/executor-http': 1.0.2(@types/node@20.4.5)(graphql@16.7.1) - '@graphql-tools/executor-legacy-ws': 1.0.1(graphql@16.7.1) - '@graphql-tools/utils': 10.0.4(graphql@16.7.1) - '@graphql-tools/wrap': 10.0.0(graphql@16.7.1) - '@types/ws': 8.5.5 - '@whatwg-node/fetch': 0.9.9 - graphql: 16.7.1 - isomorphic-ws: 5.0.0(ws@8.13.0) - tslib: 2.6.1 + '@graphql-tools/delegate': 10.0.3(graphql@16.8.1) + '@graphql-tools/executor-graphql-ws': 1.1.0(graphql@16.8.1) + '@graphql-tools/executor-http': 1.0.3(@types/node@20.8.6)(graphql@16.8.1) + '@graphql-tools/executor-legacy-ws': 1.0.4(graphql@16.8.1) + '@graphql-tools/utils': 10.0.7(graphql@16.8.1) + '@graphql-tools/wrap': 10.0.1(graphql@16.8.1) + '@types/ws': 8.5.7 + '@whatwg-node/fetch': 0.9.13 + graphql: 16.8.1 + isomorphic-ws: 5.0.0(ws@8.14.2) + tslib: 2.6.2 value-or-promise: 1.0.12 - ws: 8.13.0 + ws: 8.14.2 transitivePeerDependencies: - '@types/node' - bufferutil @@ -3054,66 +3297,66 @@ packages: - utf-8-validate dev: true - /@graphql-tools/utils@10.0.1(graphql@16.7.1): + /@graphql-tools/utils@10.0.1(graphql@16.8.1): resolution: {integrity: sha512-i1FozbDGHgdsFA47V/JvQZ0FE8NAy0Eiz7HGCJO2MkNdZAKNnwei66gOq0JWYVFztwpwbVQ09GkKhq7Kjcq5Cw==} engines: {node: '>=16.0.0'} peerDependencies: graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 dependencies: - '@graphql-typed-document-node/core': 3.2.0(graphql@16.7.1) - graphql: 16.7.1 - tslib: 2.6.1 + '@graphql-typed-document-node/core': 3.2.0(graphql@16.8.1) + graphql: 16.8.1 + tslib: 2.6.2 dev: true - /@graphql-tools/utils@10.0.4(graphql@16.7.1): - resolution: {integrity: sha512-MF+nZgGROSnFgyOYWhrl2PuJMlIBvaCH48vtnlnDQKSeDc2fUfOzUVloBAQvnYmK9JBmHHks4Pxv25Ybg3r45Q==} + /@graphql-tools/utils@10.0.7(graphql@16.8.1): + resolution: {integrity: sha512-KOdeMj6Hd/MENDaqPbws3YJl3wVy0DeYnL7PyUms5Skyf7uzI9INynDwPMhLXfSb0/ph6BXTwMd5zBtWbF8tBQ==} engines: {node: '>=16.0.0'} peerDependencies: graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 dependencies: - '@graphql-typed-document-node/core': 3.2.0(graphql@16.7.1) + '@graphql-typed-document-node/core': 3.2.0(graphql@16.8.1) dset: 3.1.2 - graphql: 16.7.1 - tslib: 2.6.1 + graphql: 16.8.1 + tslib: 2.6.2 dev: true - /@graphql-tools/utils@9.2.1(graphql@16.7.1): + /@graphql-tools/utils@9.2.1(graphql@16.8.1): resolution: {integrity: sha512-WUw506Ql6xzmOORlriNrD6Ugx+HjVgYxt9KCXD9mHAak+eaXSwuGGPyE60hy9xaDEoXKBsG7SkG69ybitaVl6A==} peerDependencies: graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 dependencies: - '@graphql-typed-document-node/core': 3.2.0(graphql@16.7.1) - graphql: 16.7.1 - tslib: 2.6.1 + '@graphql-typed-document-node/core': 3.2.0(graphql@16.8.1) + graphql: 16.8.1 + tslib: 2.6.2 dev: true - /@graphql-tools/wrap@10.0.0(graphql@16.7.1): - resolution: {integrity: sha512-HDOeUUh6UhpiH0WPJUQl44ODt1x5pnMUbOJZ7GjTdGQ7LK0AgVt3ftaAQ9duxLkiAtYJmu5YkULirfZGj4HzDg==} + /@graphql-tools/wrap@10.0.1(graphql@16.8.1): + resolution: {integrity: sha512-Cw6hVrKGM2OKBXeuAGltgy4tzuqQE0Nt7t/uAqnuokSXZhMHXJUb124Bnvxc2gPZn5chfJSDafDe4Cp8ZAVJgg==} engines: {node: '>=16.0.0'} peerDependencies: graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 dependencies: - '@graphql-tools/delegate': 10.0.0(graphql@16.7.1) - '@graphql-tools/schema': 10.0.0(graphql@16.7.1) - '@graphql-tools/utils': 10.0.4(graphql@16.7.1) - graphql: 16.7.1 - tslib: 2.6.1 + '@graphql-tools/delegate': 10.0.3(graphql@16.8.1) + '@graphql-tools/schema': 10.0.0(graphql@16.8.1) + '@graphql-tools/utils': 10.0.7(graphql@16.8.1) + graphql: 16.8.1 + tslib: 2.6.2 value-or-promise: 1.0.12 dev: true - /@graphql-typed-document-node/core@3.2.0(graphql@16.7.1): + /@graphql-typed-document-node/core@3.2.0(graphql@16.8.1): resolution: {integrity: sha512-mB9oAsNCm9aM3/SOv4YtBMqZbYj10R7dkq8byBqxGY/ncFwhf2oQzMV+LCRlWoDSEBJ3COiR1yeDvMtsoOsuFQ==} peerDependencies: graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 dependencies: - graphql: 16.7.1 + graphql: 16.8.1 dev: true /@graphql-yoga/logger@1.0.0: resolution: {integrity: sha512-JYoxwnPggH2BfO+dWlWZkDeFhyFZqaTRGLvFhy+Pjp2UxitEW6nDrw+pEDw/K9tJwMjIFMmTT9VfTqrnESmBHg==} engines: {node: '>=16.0.0'} dependencies: - tslib: 2.6.1 + tslib: 2.6.2 dev: true /@graphql-yoga/subscription@4.0.0: @@ -3123,7 +3366,7 @@ packages: '@graphql-yoga/typed-event-target': 2.0.0 '@repeaterjs/repeater': 3.0.4 '@whatwg-node/events': 0.1.1 - tslib: 2.6.1 + tslib: 2.6.2 dev: true /@graphql-yoga/typed-event-target@2.0.0: @@ -3131,11 +3374,11 @@ packages: engines: {node: '>=16.0.0'} dependencies: '@repeaterjs/repeater': 3.0.4 - tslib: 2.6.1 + tslib: 2.6.2 dev: true - /@humanwhocodes/config-array@0.11.10: - resolution: {integrity: sha512-KVVjQmNUepDVGXNuoRRdmmEjruj0KfiGSbS8LVc12LMsWDQzRXJ0qdhN8L8uUigKpfEHRhlaQFY0ib1tnUbNeQ==} + /@humanwhocodes/config-array@0.11.11: + resolution: {integrity: sha512-N2brEuAadi0CcdeMXUkhbZB84eskAc8MEX1By6qEchoVywSgXPIjou4rYsl0V3Hj0ZnuGycGCjdNgockbzeWNA==} engines: {node: '>=10.10.0'} dependencies: '@humanwhocodes/object-schema': 1.2.1 @@ -3157,14 +3400,14 @@ packages: /@ipld/dag-cbor@7.0.3: resolution: {integrity: sha512-1VVh2huHsuohdXC1bGJNE8WR72slZ9XE2T3wbBBq31dm7ZBatmKLLxrB+XAqafxfRFjv08RZmj/W/ZqaM13AuA==} dependencies: - cborg: 1.10.1 + cborg: 1.10.2 multiformats: 9.9.0 dev: false /@ipld/dag-json@8.0.11: resolution: {integrity: sha512-Pea7JXeYHTWXRTIhBqBlhw7G53PJ7yta3G/sizGEZyzdeEwhZRr0od5IQ0r2ZxOt1Do+2czddjeEPp+YTxDwCA==} dependencies: - cborg: 1.10.1 + cborg: 1.10.2 multiformats: 9.9.0 dev: false @@ -3186,8 +3429,8 @@ packages: wrap-ansi-cjs: /wrap-ansi@7.0.0 dev: true - /@jest/schemas@29.6.0: - resolution: {integrity: sha512-rxLjXyJBTL4LQeJW3aKo0M/+GkCOXsO+8i9Iu7eDb6KwtP65ayoDsitrdPBtujxQ88k4wI2FNYfa6TOGwSn6cQ==} + /@jest/schemas@29.6.3: + resolution: {integrity: sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@sinclair/typebox': 0.27.8 @@ -3199,12 +3442,7 @@ packages: dependencies: '@jridgewell/set-array': 1.1.2 '@jridgewell/sourcemap-codec': 1.4.15 - '@jridgewell/trace-mapping': 0.3.18 - dev: true - - /@jridgewell/resolve-uri@3.1.0: - resolution: {integrity: sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==} - engines: {node: '>=6.0.0'} + '@jridgewell/trace-mapping': 0.3.19 dev: true /@jridgewell/resolve-uri@3.1.1: @@ -3216,18 +3454,14 @@ packages: engines: {node: '>=6.0.0'} dev: true - /@jridgewell/sourcemap-codec@1.4.14: - resolution: {integrity: sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==} - dev: true - /@jridgewell/sourcemap-codec@1.4.15: resolution: {integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==} - /@jridgewell/trace-mapping@0.3.18: - resolution: {integrity: sha512-w+niJYzMHdd7USdiH2U6869nqhD2nbfZXND5Yp93qIbEmnDNk7PD48o+YchRVpzMU7M6jVCbenTR7PA1FLQ9pA==} + /@jridgewell/trace-mapping@0.3.19: + resolution: {integrity: sha512-kf37QtfW+Hwx/buWGMPcR60iF9ziHa6r/CZJIHbmcm4+0qrXiVdxegAH0F6yddEVQ7zdkjcGCgCzUu+BcbhQxw==} dependencies: - '@jridgewell/resolve-uri': 3.1.0 - '@jridgewell/sourcemap-codec': 1.4.14 + '@jridgewell/resolve-uri': 3.1.1 + '@jridgewell/sourcemap-codec': 1.4.15 dev: true /@jridgewell/trace-mapping@0.3.9: @@ -3239,16 +3473,25 @@ packages: /@manypkg/find-root@1.1.0: resolution: {integrity: sha512-mki5uBvhHzO8kYYix/WRy2WX8S3B5wdVSc9D6KcU5lQNglP2yt58/VfLuAK49glRXChosY8ap2oJ1qgma3GUVA==} dependencies: - '@babel/runtime': 7.22.6 + '@babel/runtime': 7.23.2 '@types/node': 12.20.55 find-up: 4.1.0 fs-extra: 8.1.0 dev: true + /@manypkg/find-root@2.2.1: + resolution: {integrity: sha512-34NlypD5mmTY65cFAK7QPgY5Tzt0qXR4ZRXdg97xAlkiLuwXUPBEXy5Hsqzd+7S2acsLxUz6Cs50rlDZQr4xUA==} + engines: {node: '>=14.18.0'} + dependencies: + '@manypkg/tools': 1.1.0 + find-up: 4.1.0 + fs-extra: 8.1.0 + dev: true + /@manypkg/get-packages@1.1.3: resolution: {integrity: sha512-fo+QhuU3qE/2TQMQmbVMqaQ6EWbMhi4ABWP+O4AM1NqPBuy0OrApV5LO6BrrgnhtAHS2NH6RrVk9OL181tTi8A==} dependencies: - '@babel/runtime': 7.22.6 + '@babel/runtime': 7.23.2 '@changesets/types': 4.1.0 '@manypkg/find-root': 1.1.0 fs-extra: 8.1.0 @@ -3256,32 +3499,22 @@ packages: read-yaml-file: 1.1.0 dev: true - /@metamask/eth-sig-util@4.0.1: - resolution: {integrity: sha512-tghyZKLHZjcdlDqCA3gNZmLeR0XvOE9U1qoQO9ohyAZT6Pya+H9vkBPcsyXytmYLNgVoin7CKCmweo/R43V+tQ==} - engines: {node: '>=12.0.0'} + /@manypkg/get-packages@2.2.0: + resolution: {integrity: sha512-B5p5BXMwhGZKi/syEEAP1eVg5DZ/9LP+MZr0HqfrHLgu9fq0w4ZwH8yVen4JmjrxI2dWS31dcoswYzuphLaRxg==} + engines: {node: '>=14.18.0'} dependencies: - ethereumjs-abi: 0.6.8 - ethereumjs-util: 6.2.1 - ethjs-util: 0.1.6 - tweetnacl: 1.0.3 - tweetnacl-util: 0.15.1 + '@manypkg/find-root': 2.2.1 + '@manypkg/tools': 1.1.0 dev: true - /@morgan-stanley/ts-mocking-bird@0.6.4(typescript@5.1.6): - resolution: {integrity: sha512-57VJIflP8eR2xXa9cD1LUawh+Gh+BVQfVu0n6GALyg/AqV/Nz25kDRvws3i9kIe1PTrbsZZOYpsYp6bXPd6nVA==} - peerDependencies: - jasmine: 2.x || 3.x || 4.x - jest: 26.x || 27.x || 28.x - typescript: '>=4.2' - peerDependenciesMeta: - jasmine: - optional: true - jest: - optional: true + /@manypkg/tools@1.1.0: + resolution: {integrity: sha512-SkAyKAByB9l93Slyg8AUHGuM2kjvWioUTCckT/03J09jYnfEzMO/wSXmEhnKGYs6qx9De8TH4yJCl0Y9lRgnyQ==} + engines: {node: '>=14.18.0'} dependencies: - lodash: 4.17.21 - typescript: 5.1.6 - uuid: 7.0.3 + fs-extra: 8.1.0 + globby: 11.1.0 + jju: 1.4.0 + read-yaml-file: 1.1.0 dev: true /@nicolo-ribaudo/semver-v6@6.3.3: @@ -3289,14 +3522,21 @@ packages: hasBin: true dev: true + /@noble/curves@1.1.0: + resolution: {integrity: sha512-091oBExgENk/kGj3AZmtBDMpxQPDtxQABR2B9lb1JbVTs6ytdzZNwvhxQ4MWasRNEzlbEH8jCWFCwhF/Obj5AA==} + dependencies: + '@noble/hashes': 1.3.1 + dev: true + /@noble/curves@1.2.0: resolution: {integrity: sha512-oYclrNgRaM9SsBUBVbb8M6DTV7ZHRTKugureoYEncY5c65HOmRzvSiTE3y5CYaPYJA/GVkrhXEoF0M3Ya9PMnw==} dependencies: '@noble/hashes': 1.3.2 dev: true - /@noble/hashes@1.2.0: - resolution: {integrity: sha512-FZfhjEDbT5GRswV3C6uvLPHMiVD6lQBmpoX5+eSiPaMTXte/IKqI5dykDxzZB/WBeK/CDuQRBWarPdi3FNY2zQ==} + /@noble/hashes@1.3.1: + resolution: {integrity: sha512-EbqwksQwz9xDRGfDST86whPBgM65E0OH/pCgqW0GBVzO22bNE+NuIbeTb714+IfSjU3aRk47EUvXIb5bTsenKA==} + engines: {node: '>= 16'} dev: true /@noble/hashes@1.3.2: @@ -3304,10 +3544,6 @@ packages: engines: {node: '>= 16'} dev: true - /@noble/secp256k1@1.7.1: - resolution: {integrity: sha512-hOUk6AyBFmqVrv7k5WAw/LpszxVbj9gGN4JRkIX52fdFAj1UA61KXmZDvqVEm+pOyec3+fIeZB02LYa/pWOArw==} - dev: true - /@nodelib/fs.scandir@2.1.5: resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} engines: {node: '>= 8'} @@ -3326,341 +3562,12 @@ packages: '@nodelib/fs.scandir': 2.1.5 fastq: 1.15.0 - /@nomicfoundation/ethereumjs-block@5.0.1: - resolution: {integrity: sha512-u1Yioemi6Ckj3xspygu/SfFvm8vZEO8/Yx5a1QLzi6nVU0jz3Pg2OmHKJ5w+D9Ogk1vhwRiqEBAqcb0GVhCyHw==} - engines: {node: '>=14'} - dependencies: - '@nomicfoundation/ethereumjs-common': 4.0.1 - '@nomicfoundation/ethereumjs-rlp': 5.0.1 - '@nomicfoundation/ethereumjs-trie': 6.0.1 - '@nomicfoundation/ethereumjs-tx': 5.0.1 - '@nomicfoundation/ethereumjs-util': 9.0.1 - ethereum-cryptography: 0.1.3 - ethers: 5.7.2 - transitivePeerDependencies: - - bufferutil - - utf-8-validate - dev: true - - /@nomicfoundation/ethereumjs-blockchain@7.0.1: - resolution: {integrity: sha512-NhzndlGg829XXbqJEYrF1VeZhAwSPgsK/OB7TVrdzft3y918hW5KNd7gIZ85sn6peDZOdjBsAXIpXZ38oBYE5A==} - engines: {node: '>=14'} - dependencies: - '@nomicfoundation/ethereumjs-block': 5.0.1 - '@nomicfoundation/ethereumjs-common': 4.0.1 - '@nomicfoundation/ethereumjs-ethash': 3.0.1 - '@nomicfoundation/ethereumjs-rlp': 5.0.1 - '@nomicfoundation/ethereumjs-trie': 6.0.1 - '@nomicfoundation/ethereumjs-tx': 5.0.1 - '@nomicfoundation/ethereumjs-util': 9.0.1 - abstract-level: 1.0.3 - debug: 4.3.4(supports-color@8.1.1) - ethereum-cryptography: 0.1.3 - level: 8.0.0 - lru-cache: 5.1.1 - memory-level: 1.0.0 - transitivePeerDependencies: - - bufferutil - - supports-color - - utf-8-validate - dev: true - - /@nomicfoundation/ethereumjs-common@4.0.1: - resolution: {integrity: sha512-OBErlkfp54GpeiE06brBW/TTbtbuBJV5YI5Nz/aB2evTDo+KawyEzPjBlSr84z/8MFfj8wS2wxzQX1o32cev5g==} - dependencies: - '@nomicfoundation/ethereumjs-util': 9.0.1 - crc-32: 1.2.2 - dev: true - - /@nomicfoundation/ethereumjs-ethash@3.0.1: - resolution: {integrity: sha512-KDjGIB5igzWOp8Ik5I6QiRH5DH+XgILlplsHR7TEuWANZA759G6krQ6o8bvj+tRUz08YygMQu/sGd9mJ1DYT8w==} - engines: {node: '>=14'} - dependencies: - '@nomicfoundation/ethereumjs-block': 5.0.1 - '@nomicfoundation/ethereumjs-rlp': 5.0.1 - '@nomicfoundation/ethereumjs-util': 9.0.1 - abstract-level: 1.0.3 - bigint-crypto-utils: 3.3.0 - ethereum-cryptography: 0.1.3 - transitivePeerDependencies: - - bufferutil - - utf-8-validate - dev: true - - /@nomicfoundation/ethereumjs-evm@2.0.1: - resolution: {integrity: sha512-oL8vJcnk0Bx/onl+TgQOQ1t/534GKFaEG17fZmwtPFeH8S5soiBYPCLUrvANOl4sCp9elYxIMzIiTtMtNNN8EQ==} - engines: {node: '>=14'} - dependencies: - '@ethersproject/providers': 5.7.2 - '@nomicfoundation/ethereumjs-common': 4.0.1 - '@nomicfoundation/ethereumjs-tx': 5.0.1 - '@nomicfoundation/ethereumjs-util': 9.0.1 - debug: 4.3.4(supports-color@8.1.1) - ethereum-cryptography: 0.1.3 - mcl-wasm: 0.7.9 - rustbn.js: 0.2.0 - transitivePeerDependencies: - - bufferutil - - supports-color - - utf-8-validate - dev: true - - /@nomicfoundation/ethereumjs-rlp@5.0.1: - resolution: {integrity: sha512-xtxrMGa8kP4zF5ApBQBtjlSbN5E2HI8m8FYgVSYAnO6ssUoY5pVPGy2H8+xdf/bmMa22Ce8nWMH3aEW8CcqMeQ==} - engines: {node: '>=14'} - hasBin: true - dev: true - - /@nomicfoundation/ethereumjs-statemanager@2.0.1: - resolution: {integrity: sha512-B5ApMOnlruVOR7gisBaYwFX+L/AP7i/2oAahatssjPIBVDF6wTX1K7Qpa39E/nzsH8iYuL3krkYeUFIdO3EMUQ==} - dependencies: - '@nomicfoundation/ethereumjs-common': 4.0.1 - '@nomicfoundation/ethereumjs-rlp': 5.0.1 - debug: 4.3.4(supports-color@8.1.1) - ethereum-cryptography: 0.1.3 - ethers: 5.7.2 - js-sdsl: 4.4.2 - transitivePeerDependencies: - - bufferutil - - supports-color - - utf-8-validate - dev: true - - /@nomicfoundation/ethereumjs-trie@6.0.1: - resolution: {integrity: sha512-A64It/IMpDVODzCgxDgAAla8jNjNtsoQZIzZUfIV5AY6Coi4nvn7+VReBn5itlxMiL2yaTlQr9TRWp3CSI6VoA==} - engines: {node: '>=14'} - dependencies: - '@nomicfoundation/ethereumjs-rlp': 5.0.1 - '@nomicfoundation/ethereumjs-util': 9.0.1 - '@types/readable-stream': 2.3.15 - ethereum-cryptography: 0.1.3 - readable-stream: 3.6.2 - dev: true - - /@nomicfoundation/ethereumjs-tx@5.0.1: - resolution: {integrity: sha512-0HwxUF2u2hrsIM1fsasjXvlbDOq1ZHFV2dd1yGq8CA+MEYhaxZr8OTScpVkkxqMwBcc5y83FyPl0J9MZn3kY0w==} - engines: {node: '>=14'} - dependencies: - '@chainsafe/ssz': 0.9.4 - '@ethersproject/providers': 5.7.2 - '@nomicfoundation/ethereumjs-common': 4.0.1 - '@nomicfoundation/ethereumjs-rlp': 5.0.1 - '@nomicfoundation/ethereumjs-util': 9.0.1 - ethereum-cryptography: 0.1.3 - transitivePeerDependencies: - - bufferutil - - utf-8-validate - dev: true - - /@nomicfoundation/ethereumjs-util@9.0.1: - resolution: {integrity: sha512-TwbhOWQ8QoSCFhV/DDfSmyfFIHjPjFBj957219+V3jTZYZ2rf9PmDtNOeZWAE3p3vlp8xb02XGpd0v6nTUPbsA==} - engines: {node: '>=14'} - dependencies: - '@chainsafe/ssz': 0.10.2 - '@nomicfoundation/ethereumjs-rlp': 5.0.1 - ethereum-cryptography: 0.1.3 - dev: true - - /@nomicfoundation/ethereumjs-vm@7.0.1: - resolution: {integrity: sha512-rArhyn0jPsS/D+ApFsz3yVJMQ29+pVzNZ0VJgkzAZ+7FqXSRtThl1C1prhmlVr3YNUlfpZ69Ak+RUT4g7VoOuQ==} - engines: {node: '>=14'} - dependencies: - '@nomicfoundation/ethereumjs-block': 5.0.1 - '@nomicfoundation/ethereumjs-blockchain': 7.0.1 - '@nomicfoundation/ethereumjs-common': 4.0.1 - '@nomicfoundation/ethereumjs-evm': 2.0.1 - '@nomicfoundation/ethereumjs-rlp': 5.0.1 - '@nomicfoundation/ethereumjs-statemanager': 2.0.1 - '@nomicfoundation/ethereumjs-trie': 6.0.1 - '@nomicfoundation/ethereumjs-tx': 5.0.1 - '@nomicfoundation/ethereumjs-util': 9.0.1 - debug: 4.3.4(supports-color@8.1.1) - ethereum-cryptography: 0.1.3 - mcl-wasm: 0.7.9 - rustbn.js: 0.2.0 - transitivePeerDependencies: - - bufferutil - - supports-color - - utf-8-validate - dev: true - - /@nomicfoundation/hardhat-chai-matchers@1.0.6(@nomiclabs/hardhat-ethers@2.2.3)(chai@4.3.7)(ethers@5.7.2)(hardhat@2.17.0): - resolution: {integrity: sha512-f5ZMNmabZeZegEfuxn/0kW+mm7+yV7VNDxLpMOMGXWFJ2l/Ct3QShujzDRF9cOkK9Ui/hbDeOWGZqyQALDXVCQ==} - peerDependencies: - '@nomiclabs/hardhat-ethers': ^2.0.0 - chai: ^4.2.0 - ethers: ^5.0.0 - hardhat: ^2.9.4 - dependencies: - '@ethersproject/abi': 5.7.0 - '@nomiclabs/hardhat-ethers': 2.2.3(ethers@5.7.2)(hardhat@2.17.0) - '@types/chai-as-promised': 7.1.5 - chai: 4.3.7 - chai-as-promised: 7.1.1(chai@4.3.7) - deep-eql: 4.1.3 - ethers: 5.7.2 - hardhat: 2.17.0(ts-node@10.9.1)(typescript@5.1.6) - ordinal: 1.0.3 - dev: true - - /@nomicfoundation/hardhat-network-helpers@1.0.8(hardhat@2.17.0): - resolution: {integrity: sha512-MNqQbzUJZnCMIYvlniC3U+kcavz/PhhQSsY90tbEtUyMj/IQqsLwIRZa4ctjABh3Bz0KCh9OXUZ7Yk/d9hr45Q==} - peerDependencies: - hardhat: ^2.9.5 - dependencies: - ethereumjs-util: 7.1.5 - hardhat: 2.17.0(ts-node@10.9.1)(typescript@5.1.6) - dev: true - - /@nomicfoundation/solidity-analyzer-darwin-arm64@0.1.1: - resolution: {integrity: sha512-KcTodaQw8ivDZyF+D76FokN/HdpgGpfjc/gFCImdLUyqB6eSWVaZPazMbeAjmfhx3R0zm/NYVzxwAokFKgrc0w==} - engines: {node: '>= 10'} - cpu: [arm64] - os: [darwin] - requiresBuild: true - dev: true - optional: true - - /@nomicfoundation/solidity-analyzer-darwin-x64@0.1.1: - resolution: {integrity: sha512-XhQG4BaJE6cIbjAVtzGOGbK3sn1BO9W29uhk9J8y8fZF1DYz0Doj8QDMfpMu+A6TjPDs61lbsmeYodIDnfveSA==} - engines: {node: '>= 10'} - cpu: [x64] - os: [darwin] - requiresBuild: true - dev: true - optional: true - - /@nomicfoundation/solidity-analyzer-freebsd-x64@0.1.1: - resolution: {integrity: sha512-GHF1VKRdHW3G8CndkwdaeLkVBi5A9u2jwtlS7SLhBc8b5U/GcoL39Q+1CSO3hYqePNP+eV5YI7Zgm0ea6kMHoA==} - engines: {node: '>= 10'} - cpu: [x64] - os: [freebsd] - requiresBuild: true - dev: true - optional: true - - /@nomicfoundation/solidity-analyzer-linux-arm64-gnu@0.1.1: - resolution: {integrity: sha512-g4Cv2fO37ZsUENQ2vwPnZc2zRenHyAxHcyBjKcjaSmmkKrFr64yvzeNO8S3GBFCo90rfochLs99wFVGT/0owpg==} - engines: {node: '>= 10'} - cpu: [arm64] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /@nomicfoundation/solidity-analyzer-linux-arm64-musl@0.1.1: - resolution: {integrity: sha512-WJ3CE5Oek25OGE3WwzK7oaopY8xMw9Lhb0mlYuJl/maZVo+WtP36XoQTb7bW/i8aAdHW5Z+BqrHMux23pvxG3w==} - engines: {node: '>= 10'} - cpu: [arm64] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /@nomicfoundation/solidity-analyzer-linux-x64-gnu@0.1.1: - resolution: {integrity: sha512-5WN7leSr5fkUBBjE4f3wKENUy9HQStu7HmWqbtknfXkkil+eNWiBV275IOlpXku7v3uLsXTOKpnnGHJYI2qsdA==} - engines: {node: '>= 10'} - cpu: [x64] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /@nomicfoundation/solidity-analyzer-linux-x64-musl@0.1.1: - resolution: {integrity: sha512-KdYMkJOq0SYPQMmErv/63CwGwMm5XHenEna9X9aB8mQmhDBrYrlAOSsIPgFCUSL0hjxE3xHP65/EPXR/InD2+w==} - engines: {node: '>= 10'} - cpu: [x64] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /@nomicfoundation/solidity-analyzer-win32-arm64-msvc@0.1.1: - resolution: {integrity: sha512-VFZASBfl4qiBYwW5xeY20exWhmv6ww9sWu/krWSesv3q5hA0o1JuzmPHR4LPN6SUZj5vcqci0O6JOL8BPw+APg==} - engines: {node: '>= 10'} - cpu: [arm64] - os: [win32] - requiresBuild: true - dev: true - optional: true - - /@nomicfoundation/solidity-analyzer-win32-ia32-msvc@0.1.1: - resolution: {integrity: sha512-JnFkYuyCSA70j6Si6cS1A9Gh1aHTEb8kOTBApp/c7NRTFGNMH8eaInKlyuuiIbvYFhlXW4LicqyYuWNNq9hkpQ==} - engines: {node: '>= 10'} - cpu: [ia32] - os: [win32] - requiresBuild: true - dev: true - optional: true - - /@nomicfoundation/solidity-analyzer-win32-x64-msvc@0.1.1: - resolution: {integrity: sha512-HrVJr6+WjIXGnw3Q9u6KQcbZCtk0caVWhCdFADySvRyUxJ8PnzlaP+MhwNE8oyT8OZ6ejHBRrrgjSqDCFXGirw==} - engines: {node: '>= 10'} - cpu: [x64] - os: [win32] - requiresBuild: true - dev: true - optional: true - - /@nomicfoundation/solidity-analyzer@0.1.1: - resolution: {integrity: sha512-1LMtXj1puAxyFusBgUIy5pZk3073cNXYnXUpuNKFghHbIit/xZgbk0AokpUADbNm3gyD6bFWl3LRFh3dhVdREg==} - engines: {node: '>= 12'} - optionalDependencies: - '@nomicfoundation/solidity-analyzer-darwin-arm64': 0.1.1 - '@nomicfoundation/solidity-analyzer-darwin-x64': 0.1.1 - '@nomicfoundation/solidity-analyzer-freebsd-x64': 0.1.1 - '@nomicfoundation/solidity-analyzer-linux-arm64-gnu': 0.1.1 - '@nomicfoundation/solidity-analyzer-linux-arm64-musl': 0.1.1 - '@nomicfoundation/solidity-analyzer-linux-x64-gnu': 0.1.1 - '@nomicfoundation/solidity-analyzer-linux-x64-musl': 0.1.1 - '@nomicfoundation/solidity-analyzer-win32-arm64-msvc': 0.1.1 - '@nomicfoundation/solidity-analyzer-win32-ia32-msvc': 0.1.1 - '@nomicfoundation/solidity-analyzer-win32-x64-msvc': 0.1.1 - dev: true - - /@nomiclabs/hardhat-ethers@2.2.3(ethers@5.7.2)(hardhat@2.17.0): - resolution: {integrity: sha512-YhzPdzb612X591FOe68q+qXVXGG2ANZRvDo0RRUtimev85rCrAlv/TLMEZw5c+kq9AbzocLTVX/h2jVIFPL9Xg==} - peerDependencies: - ethers: ^5.0.0 - hardhat: ^2.0.0 - dependencies: - ethers: 5.7.2 - hardhat: 2.17.0(ts-node@10.9.1)(typescript@5.1.6) - dev: true - - /@nomiclabs/hardhat-waffle@2.0.6(@nomiclabs/hardhat-ethers@2.2.3)(@types/sinon-chai@3.2.9)(ethereum-waffle@4.0.10)(ethers@5.7.2)(hardhat@2.17.0): - resolution: {integrity: sha512-+Wz0hwmJGSI17B+BhU/qFRZ1l6/xMW82QGXE/Gi+WTmwgJrQefuBs1lIf7hzQ1hLk6hpkvb/zwcNkpVKRYTQYg==} - peerDependencies: - '@nomiclabs/hardhat-ethers': ^2.0.0 - '@types/sinon-chai': ^3.2.3 - ethereum-waffle: '*' - ethers: ^5.0.0 - hardhat: ^2.0.0 - dependencies: - '@nomiclabs/hardhat-ethers': 2.2.3(ethers@5.7.2)(hardhat@2.17.0) - '@types/sinon-chai': 3.2.9 - ethereum-waffle: 4.0.10(@ensdomains/ens@0.4.5)(@ensdomains/resolver@0.2.4)(@ethersproject/abi@5.7.0)(@ethersproject/bytes@5.7.0)(@ethersproject/providers@5.7.2)(ethers@5.7.2)(typescript@5.1.6) - ethers: 5.7.2 - hardhat: 2.17.0(ts-node@10.9.1)(typescript@5.1.6) - dev: true - - /@oclif/color@1.0.9: - resolution: {integrity: sha512-ntc/fZwuf4NRfYbXVoUNFyMB9IxVx/ls/WbSLKbkD9UpsmwY1I3J4DJKKRFRpenmTuxGQW8Lyzm7X3vhzHpDQA==} - engines: {node: '>=12.0.0'} - dependencies: - ansi-styles: 4.3.0 - chalk: 4.1.2 - strip-ansi: 6.0.1 - supports-color: 8.1.1 - tslib: 2.6.1 - dev: true - /@oclif/core@1.26.2: resolution: {integrity: sha512-6jYuZgXvHfOIc9GIaS4T3CIKGTjPmfAxuMcbCbMRKJJl4aq/4xeRlEz0E8/hz8HxvxZBGvN2GwAUHlrGWQVrVw==} engines: {node: '>=14.0.0'} dependencies: '@oclif/linewrap': 1.0.0 - '@oclif/screen': 3.0.6 + '@oclif/screen': 3.0.7 ansi-escapes: 4.3.2 ansi-styles: 4.3.0 cardinal: 2.1.1 @@ -3684,16 +3591,16 @@ packages: strip-ansi: 6.0.1 supports-color: 8.1.1 supports-hyperlinks: 2.3.0 - tslib: 2.6.1 + tslib: 2.6.2 widest-line: 3.1.0 wrap-ansi: 7.0.0 dev: true - /@oclif/core@2.10.0(@types/node@20.4.5)(typescript@5.1.6): - resolution: {integrity: sha512-4csNtXBb+RKrhO2lBAwBvxuyk0B3NB45tAkSHOrJjUo1ufT+qpg9V+g7nHZBMlwoQmjlAjCOKtm6RHar8FrpZg==} + /@oclif/core@2.15.0(@types/node@20.8.6)(typescript@5.2.2): + resolution: {integrity: sha512-fNEMG5DzJHhYmI3MgpByTvltBOMyFcnRIUMxbiz2ai8rhaYgaTHMG3Q38HcosfIvtw9nCjxpcQtC8MN8QtVCcA==} engines: {node: '>=14.0.0'} dependencies: - '@types/cli-progress': 3.11.0 + '@types/cli-progress': 3.11.3 ansi-escapes: 4.3.2 ansi-styles: 4.3.0 cardinal: 2.1.1 @@ -3702,7 +3609,6 @@ packages: cli-progress: 3.12.0 debug: 4.3.4(supports-color@8.1.1) ejs: 3.1.9 - fs-extra: 9.1.0 get-package-type: 0.1.0 globby: 11.1.0 hyperlinker: 1.0.0 @@ -3712,14 +3618,13 @@ packages: natural-orderby: 2.0.3 object-treeify: 1.1.33 password-prompt: 1.1.3 - semver: 7.5.4 slice-ansi: 4.0.0 string-width: 4.2.3 strip-ansi: 6.0.1 supports-color: 8.1.1 supports-hyperlinks: 2.3.0 - ts-node: 10.9.1(@types/node@20.4.5)(typescript@5.1.6) - tslib: 2.6.1 + ts-node: 10.9.1(@types/node@20.8.6)(typescript@5.2.2) + tslib: 2.6.2 widest-line: 3.1.0 wordwrap: 1.0.0 wrap-ansi: 7.0.0 @@ -3728,13 +3633,12 @@ packages: - '@swc/wasm' - '@types/node' - typescript - dev: true - /@oclif/core@2.8.0(@types/node@20.4.5)(typescript@5.1.6): - resolution: {integrity: sha512-A2wHItFrD/WOw5bJ6Mtv9MD7If0bsKNR0pwEY0me+fo4HSXlJOtgYGqmzb8t8akX3DUUT7XsjPajsoHLkIJyvg==} + /@oclif/core@2.8.6(@types/node@20.8.6)(typescript@5.2.2): + resolution: {integrity: sha512-1QlPaHMhOORySCXkQyzjsIsy2GYTilOw3LkjeHkCgsPJQjAT4IclVytJusWktPbYNys9O+O4V23J44yomQvnBQ==} engines: {node: '>=14.0.0'} dependencies: - '@types/cli-progress': 3.11.0 + '@types/cli-progress': 3.11.3 ansi-escapes: 4.3.2 ansi-styles: 4.3.0 cardinal: 2.1.1 @@ -3753,13 +3657,13 @@ packages: natural-orderby: 2.0.3 object-treeify: 1.1.33 password-prompt: 1.1.3 - semver: 7.5.4 + semver: 7.4.0 string-width: 4.2.3 strip-ansi: 6.0.1 supports-color: 8.1.1 supports-hyperlinks: 2.3.0 - ts-node: 10.9.1(@types/node@20.4.5)(typescript@5.1.6) - tslib: 2.6.1 + ts-node: 10.9.1(@types/node@20.8.6)(typescript@5.2.2) + tslib: 2.6.2 widest-line: 3.1.0 wordwrap: 1.0.0 wrap-ansi: 7.0.0 @@ -3770,96 +3674,240 @@ packages: - typescript dev: false - /@oclif/linewrap@1.0.0: - resolution: {integrity: sha512-Ups2dShK52xXa8w6iBWLgcjPJWjais6KPJQq3gQ/88AY6BXoTX+MIGFPrWQO1KLMiQfoTpcLnUwloN4brrVUHw==} + /@oclif/linewrap@1.0.0: + resolution: {integrity: sha512-Ups2dShK52xXa8w6iBWLgcjPJWjais6KPJQq3gQ/88AY6BXoTX+MIGFPrWQO1KLMiQfoTpcLnUwloN4brrVUHw==} + dev: true + + /@oclif/plugin-autocomplete@2.3.9(@types/node@20.8.6)(typescript@5.2.2): + resolution: {integrity: sha512-MLmJtyp2iVnihDaogMDy+U323wI5vlV2raHOHKfe6mwzq6ObowimiOXnT9l2a0HELGHI0Fmd1tKeCgPrJE152A==} + engines: {node: '>=12.0.0'} + dependencies: + '@oclif/core': 2.15.0(@types/node@20.8.6)(typescript@5.2.2) + chalk: 4.1.2 + debug: 4.3.4(supports-color@8.1.1) + transitivePeerDependencies: + - '@swc/core' + - '@swc/wasm' + - '@types/node' + - supports-color + - typescript + dev: false + + /@oclif/plugin-help@5.2.20(@types/node@20.8.6)(typescript@5.2.2): + resolution: {integrity: sha512-u+GXX/KAGL9S10LxAwNUaWdzbEBARJ92ogmM7g3gDVud2HioCmvWQCDohNRVZ9GYV9oKwZ/M8xwd6a1d95rEKQ==} + engines: {node: '>=12.0.0'} + dependencies: + '@oclif/core': 2.15.0(@types/node@20.8.6)(typescript@5.2.2) + transitivePeerDependencies: + - '@swc/core' + - '@swc/wasm' + - '@types/node' + - typescript + dev: true + + /@oclif/plugin-not-found@2.4.3(@types/node@20.8.6)(typescript@5.2.2): + resolution: {integrity: sha512-nIyaR4y692frwh7wIHZ3fb+2L6XEecQwRDIb4zbEam0TvaVmBQWZoColQyWA84ljFBPZ8XWiQyTz+ixSwdRkqg==} + engines: {node: '>=12.0.0'} + dependencies: + '@oclif/core': 2.15.0(@types/node@20.8.6)(typescript@5.2.2) + chalk: 4.1.2 + fast-levenshtein: 3.0.0 + transitivePeerDependencies: + - '@swc/core' + - '@swc/wasm' + - '@types/node' + - typescript + + /@oclif/plugin-update@3.2.4(@types/node@20.8.6)(typescript@5.2.2): + resolution: {integrity: sha512-41G7NTKND+yTpb8LHlvlMIcNoaEUIIJuEwju9igL+ME/pN/53opeXgFV2IjjeFiexXj50OfesY9OQ6lqOZHw+g==} + engines: {node: '>=12.0.0'} + dependencies: + '@oclif/core': 2.15.0(@types/node@20.8.6)(typescript@5.2.2) + chalk: 4.1.2 + cross-spawn: 7.0.3 + debug: 4.3.4(supports-color@8.1.1) + filesize: 6.4.0 + fs-extra: 9.1.0 + http-call: 5.3.0 + inquirer: 8.2.6 + lodash.throttle: 4.1.1 + log-chopper: 1.0.2 + semver: 7.5.4 + tar-fs: 2.1.1 + transitivePeerDependencies: + - '@swc/core' + - '@swc/wasm' + - '@types/node' + - supports-color + - typescript + dev: true + + /@oclif/plugin-warn-if-update-available@2.1.1(@types/node@20.8.6)(typescript@5.2.2): + resolution: {integrity: sha512-y7eSzT6R5bmTIJbiMMXgOlbBpcWXGlVhNeQJBLBCCy1+90Wbjyqf6uvY0i2WcO4sh/THTJ20qCW80j3XUlgDTA==} + engines: {node: '>=12.0.0'} + dependencies: + '@oclif/core': 2.15.0(@types/node@20.8.6)(typescript@5.2.2) + chalk: 4.1.2 + debug: 4.3.4(supports-color@8.1.1) + http-call: 5.3.0 + lodash.template: 4.5.0 + semver: 7.5.4 + transitivePeerDependencies: + - '@swc/core' + - '@swc/wasm' + - '@types/node' + - supports-color + - typescript + dev: true + + /@oclif/screen@3.0.7: + resolution: {integrity: sha512-jQBPHcMh5rcIPKdqA6xlzioLOmkaVnjg2MVyjMzBKV8hDhLWNSiZqx7NAWXpP70v2LFvGdVoV8BSbK9iID3eHg==} + engines: {node: '>=12.0.0'} + dev: true + + /@parcel/watcher-android-arm64@2.3.0: + resolution: {integrity: sha512-f4o9eA3dgk0XRT3XhB0UWpWpLnKgrh1IwNJKJ7UJek7eTYccQ8LR7XUWFKqw6aEq5KUNlCcGvSzKqSX/vtWVVA==} + engines: {node: '>= 10.0.0'} + cpu: [arm64] + os: [android] + requiresBuild: true + dev: true + optional: true + + /@parcel/watcher-darwin-arm64@2.3.0: + resolution: {integrity: sha512-mKY+oijI4ahBMc/GygVGvEdOq0L4DxhYgwQqYAz/7yPzuGi79oXrZG52WdpGA1wLBPrYb0T8uBaGFo7I6rvSKw==} + engines: {node: '>= 10.0.0'} + cpu: [arm64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + + /@parcel/watcher-darwin-x64@2.3.0: + resolution: {integrity: sha512-20oBj8LcEOnLE3mgpy6zuOq8AplPu9NcSSSfyVKgfOhNAc4eF4ob3ldj0xWjGGbOF7Dcy1Tvm6ytvgdjlfUeow==} + engines: {node: '>= 10.0.0'} + cpu: [x64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + + /@parcel/watcher-freebsd-x64@2.3.0: + resolution: {integrity: sha512-7LftKlaHunueAEiojhCn+Ef2CTXWsLgTl4hq0pkhkTBFI3ssj2bJXmH2L67mKpiAD5dz66JYk4zS66qzdnIOgw==} + engines: {node: '>= 10.0.0'} + cpu: [x64] + os: [freebsd] + requiresBuild: true + dev: true + optional: true + + /@parcel/watcher-linux-arm-glibc@2.3.0: + resolution: {integrity: sha512-1apPw5cD2xBv1XIHPUlq0cO6iAaEUQ3BcY0ysSyD9Kuyw4MoWm1DV+W9mneWI+1g6OeP6dhikiFE6BlU+AToTQ==} + engines: {node: '>= 10.0.0'} + cpu: [arm] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@parcel/watcher-linux-arm64-glibc@2.3.0: + resolution: {integrity: sha512-mQ0gBSQEiq1k/MMkgcSB0Ic47UORZBmWoAWlMrTW6nbAGoLZP+h7AtUM7H3oDu34TBFFvjy4JCGP43JlylkTQA==} + engines: {node: '>= 10.0.0'} + cpu: [arm64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@parcel/watcher-linux-arm64-musl@2.3.0: + resolution: {integrity: sha512-LXZAExpepJew0Gp8ZkJ+xDZaTQjLHv48h0p0Vw2VMFQ8A+RKrAvpFuPVCVwKJCr5SE+zvaG+Etg56qXvTDIedw==} + engines: {node: '>= 10.0.0'} + cpu: [arm64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@parcel/watcher-linux-x64-glibc@2.3.0: + resolution: {integrity: sha512-P7Wo91lKSeSgMTtG7CnBS6WrA5otr1K7shhSjKHNePVmfBHDoAOHYRXgUmhiNfbcGk0uMCHVcdbfxtuiZCHVow==} + engines: {node: '>= 10.0.0'} + cpu: [x64] + os: [linux] + requiresBuild: true dev: true + optional: true - /@oclif/plugin-help@5.2.14(@types/node@20.4.5)(typescript@5.1.6): - resolution: {integrity: sha512-7hMLc6zqxeRfG4nvHHQPpbaBj60efM3ULFkCpHZkdLms/ezIkNo40F661QuraIjMP/NN+U6VSfBCGuPkRyxVkA==} - engines: {node: '>=12.0.0'} - dependencies: - '@oclif/core': 2.10.0(@types/node@20.4.5)(typescript@5.1.6) - transitivePeerDependencies: - - '@swc/core' - - '@swc/wasm' - - '@types/node' - - typescript + /@parcel/watcher-linux-x64-musl@2.3.0: + resolution: {integrity: sha512-+kiRE1JIq8QdxzwoYY+wzBs9YbJ34guBweTK8nlzLKimn5EQ2b2FSC+tAOpq302BuIMjyuUGvBiUhEcLIGMQ5g==} + engines: {node: '>= 10.0.0'} + cpu: [x64] + os: [linux] + requiresBuild: true dev: true + optional: true - /@oclif/plugin-not-found@2.3.34(@types/node@20.4.5)(typescript@5.1.6): - resolution: {integrity: sha512-uXUpw6o2e0aqnNn+XkGL7LbL+Th2rBD1JGtFbb6anmvUvz2skiGz0o23BYmrQW8tvU92ajPOykfClKD75ptZcw==} - engines: {node: '>=12.0.0'} - dependencies: - '@oclif/color': 1.0.9 - '@oclif/core': 2.10.0(@types/node@20.4.5)(typescript@5.1.6) - fast-levenshtein: 3.0.0 - transitivePeerDependencies: - - '@swc/core' - - '@swc/wasm' - - '@types/node' - - typescript + /@parcel/watcher-win32-arm64@2.3.0: + resolution: {integrity: sha512-35gXCnaz1AqIXpG42evcoP2+sNL62gZTMZne3IackM+6QlfMcJLy3DrjuL6Iks7Czpd3j4xRBzez3ADCj1l7Aw==} + engines: {node: '>= 10.0.0'} + cpu: [arm64] + os: [win32] + requiresBuild: true dev: true + optional: true - /@oclif/plugin-update@3.1.28(@types/node@20.4.5)(typescript@5.1.6): - resolution: {integrity: sha512-anP0kt73La0hzz9iqiBcxkXFwf7Mr+vQ+PdVnyKVTsI86yFWROFDmrBf5HSgF1rjvvGashvVGLq6hpKzSFUFJw==} - engines: {node: '>=12.0.0'} - dependencies: - '@oclif/color': 1.0.9 - '@oclif/core': 2.10.0(@types/node@20.4.5)(typescript@5.1.6) - cross-spawn: 7.0.3 - debug: 4.3.4(supports-color@8.1.1) - filesize: 6.4.0 - fs-extra: 9.1.0 - http-call: 5.3.0 - inquirer: 8.2.5 - lodash.throttle: 4.1.1 - log-chopper: 1.0.2 - semver: 7.5.4 - tar-fs: 2.1.1 - transitivePeerDependencies: - - '@swc/core' - - '@swc/wasm' - - '@types/node' - - supports-color - - typescript + /@parcel/watcher-win32-ia32@2.3.0: + resolution: {integrity: sha512-FJS/IBQHhRpZ6PiCjFt1UAcPr0YmCLHRbTc00IBTrelEjlmmgIVLeOx4MSXzx2HFEy5Jo5YdhGpxCuqCyDJ5ow==} + engines: {node: '>= 10.0.0'} + cpu: [ia32] + os: [win32] + requiresBuild: true dev: true + optional: true - /@oclif/plugin-warn-if-update-available@2.0.45(@types/node@20.4.5)(typescript@5.1.6): - resolution: {integrity: sha512-MEncCUHW1vCOQdvt1z46jAblwvuGcs3Q1Gjl8IghazGJ0GRHzGOMILABpqVWR5uH/YJ3gfs05Tt7M4LdZ40N3g==} - engines: {node: '>=12.0.0'} - dependencies: - '@oclif/core': 2.10.0(@types/node@20.4.5)(typescript@5.1.6) - chalk: 4.1.2 - debug: 4.3.4(supports-color@8.1.1) - fs-extra: 9.1.0 - http-call: 5.3.0 - lodash: 4.17.21 - semver: 7.5.4 - transitivePeerDependencies: - - '@swc/core' - - '@swc/wasm' - - '@types/node' - - supports-color - - typescript + /@parcel/watcher-win32-x64@2.3.0: + resolution: {integrity: sha512-dLx+0XRdMnVI62kU3wbXvbIRhLck4aE28bIGKbRGS7BJNt54IIj9+c/Dkqb+7DJEbHUZAX1bwaoM8PqVlHJmCA==} + engines: {node: '>= 10.0.0'} + cpu: [x64] + os: [win32] + requiresBuild: true dev: true + optional: true - /@oclif/screen@3.0.6: - resolution: {integrity: sha512-nEv7dFPxCrWrvK6dQ8zya0/Kb54EXVcwIKV9capjSa89ZDoOo+qH0YSo4/eQVECXgW3eUvgKLDIcIt62YBk0HA==} - engines: {node: '>=12.0.0'} + /@parcel/watcher@2.3.0: + resolution: {integrity: sha512-pW7QaFiL11O0BphO+bq3MgqeX/INAk9jgBldVDYjlQPO4VddoZnF22TcF9onMhnLVHuNqBJeRf+Fj7eezi/+rQ==} + engines: {node: '>= 10.0.0'} + dependencies: + detect-libc: 1.0.3 + is-glob: 4.0.3 + micromatch: 4.0.5 + node-addon-api: 7.0.0 + optionalDependencies: + '@parcel/watcher-android-arm64': 2.3.0 + '@parcel/watcher-darwin-arm64': 2.3.0 + '@parcel/watcher-darwin-x64': 2.3.0 + '@parcel/watcher-freebsd-x64': 2.3.0 + '@parcel/watcher-linux-arm-glibc': 2.3.0 + '@parcel/watcher-linux-arm64-glibc': 2.3.0 + '@parcel/watcher-linux-arm64-musl': 2.3.0 + '@parcel/watcher-linux-x64-glibc': 2.3.0 + '@parcel/watcher-linux-x64-musl': 2.3.0 + '@parcel/watcher-win32-arm64': 2.3.0 + '@parcel/watcher-win32-ia32': 2.3.0 + '@parcel/watcher-win32-x64': 2.3.0 dev: true /@peculiar/asn1-schema@2.3.6: resolution: {integrity: sha512-izNRxPoaeJeg/AyH8hER6s+H7p4itk+03QCa4sbxI3lNdseQYCuxzgsuNK8bTXChtLTjpJz6NmXKA73qLa3rCA==} dependencies: asn1js: 3.0.5 - pvtsutils: 1.3.2 - tslib: 2.6.1 + pvtsutils: 1.3.5 + tslib: 2.6.2 /@peculiar/json-schema@1.1.12: resolution: {integrity: sha512-coUfuoMeIB7B8/NMekxaDzLhaYmp0HZNPEjYRm9goRou8UZIC3z21s0sL9AWoCw4EG876QyO3kYrc61WNF9B/w==} engines: {node: '>=8.0.0'} dependencies: - tslib: 2.6.1 + tslib: 2.6.2 /@peculiar/webcrypto@1.4.3: resolution: {integrity: sha512-VtaY4spKTdN5LjJ04im/d/joXuvLbQdgy5Z4DXF4MFZhQ+MTrejbNMkfZBp1Bs3O5+bFqnJgyGdPuZQflvIa5A==} @@ -3867,8 +3915,8 @@ packages: dependencies: '@peculiar/asn1-schema': 2.3.6 '@peculiar/json-schema': 1.1.12 - pvtsutils: 1.3.2 - tslib: 2.6.1 + pvtsutils: 1.3.5 + tslib: 2.6.2 webcrypto-core: 1.7.7 /@pkgjs/parseargs@0.11.0: @@ -3887,7 +3935,7 @@ packages: is-glob: 4.0.3 open: 9.1.0 picocolors: 1.0.0 - tslib: 2.6.1 + tslib: 2.6.2 dev: true /@protobufjs/aspromise@1.1.2: @@ -3977,7 +4025,7 @@ packages: debug: 3.2.7 hosted-git-info: 2.8.9 path-browserify: 1.0.1 - url: 0.11.0 + url: 0.11.3 transitivePeerDependencies: - supports-color dev: true @@ -3994,11 +4042,11 @@ packages: resolution: {integrity: sha512-/+SgoRjLq7Xlf0CWuLHq2LUZeL/w65kfzAPG5NH9pcmBhs+nunQTn4gvdwgMTIXnt9b2C/1SeL2XiysZEyIC9Q==} dev: true - /@scure/bip32@1.1.5: - resolution: {integrity: sha512-XyNh1rB0SkEqd3tXcXMi+Xe1fvg+kUIcoRIEujP1Jgv7DqW2r9lg3Ah0NkFaCs9sTkQAQA8kw7xiRXzENi9Rtw==} + /@scure/bip32@1.3.1: + resolution: {integrity: sha512-osvveYtyzdEVbt3OfwwXFr4P2iVBL5u1Q3q4ONBfDY/UpOuXmOlbgwc1xECEboY8wIays8Yt6onaWMUdUbfl0A==} dependencies: - '@noble/hashes': 1.2.0 - '@noble/secp256k1': 1.7.1 + '@noble/curves': 1.1.0 + '@noble/hashes': 1.3.2 '@scure/base': 1.1.3 dev: true @@ -4010,13 +4058,6 @@ packages: '@scure/base': 1.1.3 dev: true - /@scure/bip39@1.1.1: - resolution: {integrity: sha512-t+wDck2rVkh65Hmv280fYdVdY25J9YeEUIgn2LG1WM6gxFkGzcksoDiUkWVpVp3Oex9xGC68JU2dSbUfwZ2jPg==} - dependencies: - '@noble/hashes': 1.2.0 - '@scure/base': 1.1.3 - dev: true - /@scure/bip39@1.2.1: resolution: {integrity: sha512-Z3/Fsz1yr904dduJD0NpiyRHhRYHdcnyh73FZWiV+/qhWi83wNJ3NWolYqCEN+ZWsUz2TWwajJggcRE9r1zUYg==} dependencies: @@ -4024,78 +4065,34 @@ packages: '@scure/base': 1.1.3 dev: true - /@sentry/core@5.30.0: - resolution: {integrity: sha512-TmfrII8w1PQZSZgPpUESqjB+jC6MvZJZdLtE/0hZ+SrnKhW3x5WlYLvTXZpcWePYBku7rl2wn1RZu6uT0qCTeg==} - engines: {node: '>=6'} - dependencies: - '@sentry/hub': 5.30.0 - '@sentry/minimal': 5.30.0 - '@sentry/types': 5.30.0 - '@sentry/utils': 5.30.0 - tslib: 1.14.1 - dev: true - - /@sentry/hub@5.30.0: - resolution: {integrity: sha512-2tYrGnzb1gKz2EkMDQcfLrDTvmGcQPuWxLnJKXJvYTQDGLlEvi2tWz1VIHjunmOvJrB5aIQLhm+dcMRwFZDCqQ==} - engines: {node: '>=6'} - dependencies: - '@sentry/types': 5.30.0 - '@sentry/utils': 5.30.0 - tslib: 1.14.1 - dev: true - - /@sentry/minimal@5.30.0: - resolution: {integrity: sha512-BwWb/owZKtkDX+Sc4zCSTNcvZUq7YcH3uAVlmh/gtR9rmUvbzAA3ewLuB3myi4wWRAMEtny6+J/FN/x+2wn9Xw==} - engines: {node: '>=6'} - dependencies: - '@sentry/hub': 5.30.0 - '@sentry/types': 5.30.0 - tslib: 1.14.1 + /@sinclair/typebox@0.27.8: + resolution: {integrity: sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==} dev: true - /@sentry/node@5.30.0: - resolution: {integrity: sha512-Br5oyVBF0fZo6ZS9bxbJZG4ApAjRqAnqFFurMVJJdunNb80brh7a5Qva2kjhm+U6r9NJAB5OmDyPkA1Qnt+QVg==} - engines: {node: '>=6'} + /@soundxyz/codegen-fragments@2.0.0(@graphql-codegen/core@4.0.0)(@soundxyz/gql-string@0.1.0)(graphql@16.8.1): + resolution: {integrity: sha512-eA89sWW7IqkH5kXHQHzP5Q67WjkQsw/6nEkhtfmt9Y2KrMRJ7yymRkS2tPapkNwxHdctj6kXviPcD/69Ot/9qQ==} + peerDependencies: + '@graphql-codegen/core': ^3.1.0 + '@soundxyz/gql-string': ^0.1.0 + graphql: '>=16.6.0' dependencies: - '@sentry/core': 5.30.0 - '@sentry/hub': 5.30.0 - '@sentry/tracing': 5.30.0 - '@sentry/types': 5.30.0 - '@sentry/utils': 5.30.0 - cookie: 0.4.2 - https-proxy-agent: 5.0.1 - lru_map: 0.3.3 - tslib: 1.14.1 + '@graphql-codegen/add': 5.0.0(graphql@16.8.1) + '@graphql-codegen/core': 4.0.0(graphql@16.8.1) + '@graphql-codegen/gql-tag-operations': 4.0.1(graphql@16.8.1) + '@graphql-codegen/typescript': 4.0.1(graphql@16.8.1) + '@graphql-codegen/typescript-operations': 4.0.1(graphql@16.8.1) + '@graphql-codegen/visitor-plugin-common': 3.0.2(patch_hash=xtxcf4pgtkvnkzcgi2zrafsufi)(graphql@16.8.1) + '@graphql-tools/relay-operation-optimizer': 7.0.0(graphql@16.8.1) + '@graphql-tools/utils': 10.0.7(graphql@16.8.1) + '@soundxyz/gql-string': 0.1.0 + graphql: 16.8.1 transitivePeerDependencies: + - encoding - supports-color dev: true - /@sentry/tracing@5.30.0: - resolution: {integrity: sha512-dUFowCr0AIMwiLD7Fs314Mdzcug+gBVo/+NCMyDw8tFxJkwWAKl7Qa2OZxLQ0ZHjakcj1hNKfCQJ9rhyfOl4Aw==} - engines: {node: '>=6'} - dependencies: - '@sentry/hub': 5.30.0 - '@sentry/minimal': 5.30.0 - '@sentry/types': 5.30.0 - '@sentry/utils': 5.30.0 - tslib: 1.14.1 - dev: true - - /@sentry/types@5.30.0: - resolution: {integrity: sha512-R8xOqlSTZ+htqrfteCWU5Nk0CDN5ApUTvrlvBuiH1DyP6czDZ4ktbZB0hAgBlVcK0U+qpD3ag3Tqqpa5Q67rPw==} - engines: {node: '>=6'} - dev: true - - /@sentry/utils@5.30.0: - resolution: {integrity: sha512-zaYmoH0NWWtvnJjC9/CBseXMtKHm/tm40sz3YfJRxeQjyzRqNQPgivpd9R/oDJCYj999mzdW382p/qi2ypjLww==} - engines: {node: '>=6'} - dependencies: - '@sentry/types': 5.30.0 - tslib: 1.14.1 - dev: true - - /@sinclair/typebox@0.27.8: - resolution: {integrity: sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==} + /@soundxyz/gql-string@0.1.0: + resolution: {integrity: sha512-oqEbqxj3Ff4xHCz91Gf9m7C259xaQlzCCR8lpNjtJXTsYiPTDdISJMmlOOstOgQqoTOk+nw+d9K2UQzMMFIMmg==} dev: true /@soundxyz/sound-protocol@1.1.0: @@ -4156,95 +4153,93 @@ packages: /@tsconfig/node14@1.0.3: resolution: {integrity: sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==} - /@tsconfig/node16@1.0.3: - resolution: {integrity: sha512-yOlFc+7UtL/89t2ZhjPvvB/DeAr3r+Dq58IgzsFkOAvVC6NMJXmCGjbptdXdR9qsX7pKcTL+s87FtYREi2dEEQ==} + /@tsconfig/node16@1.0.4: + resolution: {integrity: sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==} - /@typechain/ethers-v5@10.2.0(@ethersproject/abi@5.7.0)(@ethersproject/bytes@5.7.0)(@ethersproject/providers@5.7.2)(ethers@5.7.2)(typechain@8.1.1)(typescript@5.1.6): - resolution: {integrity: sha512-ikaq0N/w9fABM+G01OFmU3U3dNnyRwEahkdvi9mqy1a3XwKiPZaF/lu54OcNaEWnpvEYyhhS0N7buCtLQqC92w==} + /@typechain/ethers-v5@10.2.1(@ethersproject/abi@5.7.0)(@ethersproject/providers@5.7.2)(ethers@5.7.2)(typechain@8.3.2)(typescript@5.2.2): + resolution: {integrity: sha512-n3tQmCZjRE6IU4h6lqUGiQ1j866n5MTCBJreNEHHVWXa2u9GJTaeYyU1/k+1qLutkyw+sS6VAN+AbeiTqsxd/A==} peerDependencies: '@ethersproject/abi': ^5.0.0 - '@ethersproject/bytes': ^5.0.0 '@ethersproject/providers': ^5.0.0 ethers: ^5.1.3 typechain: ^8.1.1 typescript: '>=4.3.0' dependencies: '@ethersproject/abi': 5.7.0 - '@ethersproject/bytes': 5.7.0 '@ethersproject/providers': 5.7.2 ethers: 5.7.2 lodash: 4.17.21 - ts-essentials: 7.0.3(typescript@5.1.6) - typechain: 8.1.1(typescript@5.1.6) - typescript: 5.1.6 + ts-essentials: 7.0.3(typescript@5.2.2) + typechain: 8.3.2(typescript@5.2.2) + typescript: 5.2.2 dev: true - /@types/abstract-leveldown@7.2.1: - resolution: {integrity: sha512-YK8irIC+eMrrmtGx0H4ISn9GgzLd9dojZWJaMbjp1YHLl2VqqNFBNrL5Q3KjGf4VE3sf/4hmq6EhQZ7kZp1NoQ==} + /@types/abstract-leveldown@7.2.3: + resolution: {integrity: sha512-YAdL8tIYbiKoFjAf/0Ir3mvRJ/iFvBP/FK0I8Xa5rGWgVcq0xWOEInzlJfs6TIPWFweEOTKgNSBdxneUcHRvaw==} dev: true /@types/bn.js@4.11.6: resolution: {integrity: sha512-pqr857jrp2kPuO9uRjZ3PwnJTjoQy+fcdxvBTvHm6dkmEL9q+hDD/2j/0ELOBPtPnS8LjCX0gI9nbl8lVkadpg==} dependencies: - '@types/node': 20.4.5 + '@types/node': 20.8.6 dev: true /@types/bn.js@5.1.1: resolution: {integrity: sha512-qNrYbZqMx0uJAfKnKclPh+dTwK33KfLHYqtyODwd5HnXOjnkhc4qgn3BrK6RWyGZm5+sIFE7Q7Vz6QQtJB7w7g==} dependencies: '@types/node': 20.4.5 + dev: true - /@types/chai-as-promised@7.1.5: - resolution: {integrity: sha512-jStwss93SITGBwt/niYrkf2C+/1KTeZCZl1LaeezTlqppAKeoQC7jxyqYuP72sxBGKCIbw7oHgbYssIRzT5FCQ==} + /@types/bn.js@5.1.2: + resolution: {integrity: sha512-dkpZu0szUtn9UXTmw+e0AJFd4D2XAxDnsCLdc05SfqpqzPEBft8eQr8uaFitfo/dUUOZERaLec2hHMG87A4Dxg==} dependencies: - '@types/chai': 4.3.5 - dev: true + '@types/node': 20.8.6 /@types/chai-subset@1.3.3: resolution: {integrity: sha512-frBecisrNGz+F4T6bcc+NLeolfiojh5FxW2klu669+8BARtyQv2C/GkNW6FUodVe4BroGMP/wER/YDGc7rEllw==} dependencies: - '@types/chai': 4.3.5 + '@types/chai': 4.3.8 dev: true - /@types/chai@4.3.5: - resolution: {integrity: sha512-mEo1sAde+UCE6b2hxn332f1g1E8WfYRu6p5SvTKr2ZKC1f7gFJXk4h5PyGP9Dt6gCaG8y8XhwnXWC6Iy2cmBng==} + /@types/chai@4.3.8: + resolution: {integrity: sha512-yW/qTM4mRBBcsA9Xw9FbcImYtFPY7sgr+G/O5RDYVmxiy9a+pE5FyoFUi8JYCZY5nicj8atrr1pcfPiYpeNGOA==} dev: true - /@types/cli-progress@3.11.0: - resolution: {integrity: sha512-XhXhBv1R/q2ahF3BM7qT5HLzJNlIL0wbcGyZVjqOTqAybAnsLisd7gy1UCyIqpL+5Iv6XhlSyzjLCnI2sIdbCg==} + /@types/cli-progress@3.11.3: + resolution: {integrity: sha512-/+C9xAdVtc+g5yHHkGBThgAA8rYpi5B+2ve3wLtybYj0JHEBs57ivR4x/zGfSsplRnV+psE91Nfin1soNKqz5Q==} dependencies: - '@types/node': 20.4.5 + '@types/node': 20.8.6 /@types/concat-stream@1.6.1: resolution: {integrity: sha512-eHE4cQPoj6ngxBZMvVf6Hw7Mh4jMW4U9lpGmS5GBPB9RYxlFg+CHaVN7ErNY4W9XfLIEn20b4VDYaIrbq0q4uA==} dependencies: - '@types/node': 20.4.5 + '@types/node': 8.10.66 dev: false - /@types/connect@3.4.35: - resolution: {integrity: sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ==} + /@types/connect@3.4.36: + resolution: {integrity: sha512-P63Zd/JUGq+PdrM1lv0Wv5SBYeA2+CORvbrXbngriYY0jzLUWfQMQQxOhjONEz/wlHOAxOdY7CY65rgQdTjq2w==} dependencies: - '@types/node': 20.4.5 + '@types/node': 12.20.55 dev: false /@types/form-data@0.0.33: resolution: {integrity: sha512-8BSvG1kGm83cyJITQMZSulnl6QV8jqAGreJsc5tPu1Jq0vTSOiY/k24Wx82JRpWwZSqrala6sd5rWi6aNXvqcw==} dependencies: - '@types/node': 20.4.5 + '@types/node': 16.18.58 dev: false - /@types/is-ci@3.0.0: - resolution: {integrity: sha512-Q0Op0hdWbYd1iahB+IFNQcWXFq4O0Q5MwQP7uN0souuQ4rPg1vEYcnIOfr1gY+M+6rc8FGoRaBO1mOOvL29sEQ==} + /@types/is-ci@3.0.2: + resolution: {integrity: sha512-9PyP1rgCro6xO3R7zOEoMgx5U9HpLhIg1FFb9p2mWX/x5QI8KMuCWWYtCT1dUQpicp84OsxEAw3iqwIKQY5Pog==} dependencies: - ci-info: 3.8.0 + ci-info: 3.9.0 dev: true - /@types/js-yaml@4.0.5: - resolution: {integrity: sha512-FhpRzf927MNQdRZP0J5DLIdTXhjLYzeUTmLAu69mnVksLH9CJY3IuSeEgbKUki7GQZm0WqDkGzyxju2EZGD2wA==} + /@types/js-yaml@4.0.7: + resolution: {integrity: sha512-RJZP9WAMMr1514KbdSXkLRrKvYQacjr1+HWnY8pui/uBTBoSgD9ZGR17u/d4nb9NpERp0FkdLBe7hq8NIPBgkg==} dev: true - /@types/json-schema@7.0.12: - resolution: {integrity: sha512-Hr5Jfhc9eYOQNPYO5WLDq/n4jqijdHNlDXjuAQkkt+mWdQR+XJToOHrsD4cPaMXpn6KO7y2+wM8AZEs8VpBLVA==} + /@types/json-schema@7.0.13: + resolution: {integrity: sha512-RbSSoHliUbnXj3ny0CNFOoxrIDV6SUGyStHsvDqosw6CkdPV8TtWGlfecuK4ToyMEAql6pzNxgCFKanovUzlgQ==} dev: true /@types/json-stable-stringify@1.0.34: @@ -4258,9 +4253,9 @@ packages: /@types/levelup@4.3.3: resolution: {integrity: sha512-K+OTIjJcZHVlZQN1HmU64VtrC0jC3dXWQozuEIR9zVvltIk90zaGPM2AgT+fIkChpzHhFE3YnvFLCbLtzAmexA==} dependencies: - '@types/abstract-leveldown': 7.2.1 + '@types/abstract-leveldown': 7.2.3 '@types/level-errors': 3.0.0 - '@types/node': 20.4.5 + '@types/node': 20.8.6 dev: true /@types/long@4.0.2: @@ -4275,25 +4270,25 @@ packages: resolution: {integrity: sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ==} dev: false - /@types/minimist@1.2.2: - resolution: {integrity: sha512-jhuKLIRrhvCPLqwPcx6INqmKeiA5EWrsCOPhrlFSrbrmU4ZMPjj5Ul/oLCMDO98XRUIwVm78xICz4EPCektzeQ==} + /@types/minimist@1.2.3: + resolution: {integrity: sha512-ZYFzrvyWUNhaPomn80dsMNgMeXxNWZBdkuG/hWlUvXvbdUH8ZERNBGXnU87McuGcWDsyzX2aChCv/SVN348k3A==} dev: true /@types/mkdirp@0.5.2: resolution: {integrity: sha512-U5icWpv7YnZYGsN4/cmh3WD2onMY0aJIiTE6+51TwJCttdHvtCYmkBNOobHlXwrJRL0nkH9jH4kD+1FAdMN4Tg==} dependencies: - '@types/node': 20.4.5 + '@types/node': 20.8.6 dev: true - /@types/mocha@10.0.1: - resolution: {integrity: sha512-/fvYntiO1GeICvqbQ3doGDIP97vWmvFt83GKguJ6prmQM2iXZfFcq6YE8KteFyRtX2/h5Hf91BYvPodJKFYv5Q==} + /@types/mocha@10.0.2: + resolution: {integrity: sha512-NaHL0+0lLNhX6d9rs+NSt97WH/gIlRHmszXbQ/8/MV/eVcFNdeJ/GYhrFuUc8K7WuPhRhTSdMkCp8VMzhUq85w==} dev: true - /@types/node-fetch@2.6.3: - resolution: {integrity: sha512-ETTL1mOEdq/sxUtgtOhKjyB2Irra4cjxksvcMUR5Zr4n+PxVhsCD9WS46oPbHL3et9Zde7CNRr+WUNlcHvsX+w==} + /@types/node-fetch@2.6.6: + resolution: {integrity: sha512-95X8guJYhfqiuVVhRFxVQcf4hW/2bCuoPwDasMf/531STFoNoWTT7YDnWdXHEZKqAGUigmpG31r2FE70LwnzJw==} dependencies: - '@types/node': 20.4.5 - form-data: 3.0.1 + '@types/node': 20.8.6 + form-data: 4.0.0 dev: true /@types/node@10.17.60: @@ -4307,15 +4302,25 @@ packages: /@types/node@12.20.55: resolution: {integrity: sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ==} + /@types/node@16.18.58: + resolution: {integrity: sha512-YGncyA25/MaVtQkjWW9r0EFBukZ+JulsLcVZBlGUfIb96OBMjkoRWwQo5IEWJ8Fj06Go3GHw+bjYDitv6BaGsA==} + dev: false + /@types/node@20.4.5: resolution: {integrity: sha512-rt40Nk13II9JwQBdeYqmbn2Q6IVTA5uPhvSO+JVqdXw/6/4glI6oR9ezty/A9Hg5u7JH4OmYmuQ+XvjKm0Datg==} + dev: true + + /@types/node@20.8.6: + resolution: {integrity: sha512-eWO4K2Ji70QzKUqRy6oyJWUeB7+g2cRagT3T/nxYibYcT4y2BDL8lqolRXjTHmkZCdJfIPaY73KbJAZmcryxTQ==} + dependencies: + undici-types: 5.25.3 /@types/node@8.10.66: resolution: {integrity: sha512-tktOkFUA4kXx2hhhrB8bIFb5TbwzS4uOhKEmwiD+NoiL0qtP2OQ9mFldbgD4dV1djrlBYP6eBuQZiWjuHUpqFw==} dev: false - /@types/normalize-package-data@2.4.1: - resolution: {integrity: sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw==} + /@types/normalize-package-data@2.4.2: + resolution: {integrity: sha512-lqa4UEhhv/2sjjIQgjX8B+RBjj47eo0mzGasklVJ78UKGQY1r0VpB9XHDaZZO9qzEFDdy4MrXLuEaSmPrPSe/A==} dev: true /@types/parse-json@4.0.0: @@ -4325,67 +4330,43 @@ packages: /@types/pbkdf2@3.1.0: resolution: {integrity: sha512-Cf63Rv7jCQ0LaL8tNXmEyqTHuIJxRdlS5vMh1mj5voN4+QFhVZnlZruezqpWYDiJ8UTzhP0VmeLXCmBk66YrMQ==} dependencies: - '@types/node': 20.4.5 + '@types/node': 20.8.6 - /@types/prettier@2.7.2: - resolution: {integrity: sha512-KufADq8uQqo1pYKVIYzfKbJfBAc0sOeXqGbFaSpv8MRmC/zXgowNZmFcbngndGk922QDmOASEXUZCaY48gs4cg==} + /@types/prettier@2.7.3: + resolution: {integrity: sha512-+68kP9yzs4LMp7VNh8gdzMSPZFL44MLGqiHWvttYJe+6qnuVr4Ek9wSBQoveqY/r+LwjCcU29kNVkidwim+kYA==} dev: true - /@types/qs@6.9.7: - resolution: {integrity: sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw==} + /@types/qs@6.9.8: + resolution: {integrity: sha512-u95svzDlTysU5xecFNTgfFG5RUWu1A9P0VzgpcIiGZA9iraHOdSzcxMxQ55DyeRaGCSxQi7LxXDI4rzq/MYfdg==} dev: false - /@types/readable-stream@2.3.15: - resolution: {integrity: sha512-oM5JSKQCcICF1wvGgmecmHldZ48OZamtMxcGGVICOJA8o8cahXC1zEVAif8iwoc5j8etxFaRFnf095+CDsuoFQ==} + /@types/secp256k1@4.0.4: + resolution: {integrity: sha512-oN0PFsYxDZnX/qSJ5S5OwaEDTYfekhvaM5vqui2bu1AA39pKofmgL104Q29KiOXizXS2yLjSzc5YdTyMKdcy4A==} dependencies: - '@types/node': 20.4.5 - safe-buffer: 5.1.2 - dev: true - - /@types/secp256k1@4.0.3: - resolution: {integrity: sha512-Da66lEIFeIz9ltsdMZcpQvmrmmoqrfju8pm1BH8WbYjZSwUgCwXLb9C+9XYogwBITnbsSaMdVPb2ekf7TV+03w==} - dependencies: - '@types/node': 20.4.5 + '@types/node': 20.8.6 /@types/seedrandom@3.0.1: resolution: {integrity: sha512-giB9gzDeiCeloIXDgzFBCgjj1k4WxcDrZtGl6h1IqmUPlxF+Nx8Ve+96QCyDZ/HseB/uvDsKbpib9hU5cU53pw==} dev: true - /@types/semver@7.5.0: - resolution: {integrity: sha512-G8hZ6XJiHnuhQKR7ZmysCeJWE08o8T0AXtk5darsCaTVsYZhhgUrq53jizaR2FvsoeCwJhlmwTjkXBY5Pn/ZHw==} - dev: true - - /@types/sinon-chai@3.2.9: - resolution: {integrity: sha512-/19t63pFYU0ikrdbXKBWj9PCdnKyTd0Qkz0X91Ta081cYsq90OxYdcWwK/dwEoDa6dtXgj2HJfmzgq+QZTHdmQ==} - dependencies: - '@types/chai': 4.3.5 - '@types/sinon': 10.0.15 - dev: true - - /@types/sinon@10.0.15: - resolution: {integrity: sha512-3lrFNQG0Kr2LDzvjyjB6AMJk4ge+8iYhQfdnSwIwlG88FUOV43kPcQqDZkDa/h3WSZy6i8Fr0BSjfQtB1B3xuQ==} - dependencies: - '@types/sinonjs__fake-timers': 8.1.2 - dev: true - - /@types/sinonjs__fake-timers@8.1.2: - resolution: {integrity: sha512-9GcLXF0/v3t80caGs5p2rRfkB+a8VBGLJZVih6CNFkx8IZ994wiKKLSRs9nuFwk1HevWs/1mnUmkApGrSGsShA==} + /@types/semver@7.5.3: + resolution: {integrity: sha512-OxepLK9EuNEIPxWNME+C6WwbRAOOI2o2BaQEGzz5Lu2e4Z5eDnEo+/aVEDMIXywoJitJ7xWd641wrGLZdtwRyw==} dev: true /@types/ws@7.4.7: resolution: {integrity: sha512-JQbbmxZTZehdc2iszGKs5oC3NFnjeay7mtAWrdt7qNtAVK0g19muApzAy4bm9byz79xa2ZnO/BOBC2R8RC5Lww==} dependencies: - '@types/node': 20.4.5 + '@types/node': 12.20.55 dev: false - /@types/ws@8.5.5: - resolution: {integrity: sha512-lwhs8hktwxSjf9UaZ9tG5M03PGogvFaH8gUgLNbN9HKIg0dvv6q+gkSuJ8HN4/VbyxkuLzCjlN7GquQ0gUJfIg==} + /@types/ws@8.5.7: + resolution: {integrity: sha512-6UrLjiDUvn40CMrAubXuIVtj2PEfKDffJS7ychvnPU44j+KVeXmdHHTgqcM/dxLUTHxlXHiFM8Skmb8ozGdTnQ==} dependencies: - '@types/node': 20.4.5 + '@types/node': 20.8.6 dev: true - /@typescript-eslint/eslint-plugin@6.2.0(@typescript-eslint/parser@6.2.0)(eslint@8.45.0)(typescript@5.1.6): - resolution: {integrity: sha512-rClGrMuyS/3j0ETa1Ui7s6GkLhfZGKZL3ZrChLeAiACBE/tRc1wq8SNZESUuluxhLj9FkUefRs2l6bCIArWBiQ==} + /@typescript-eslint/eslint-plugin@6.8.0(@typescript-eslint/parser@6.8.0)(eslint@8.51.0)(typescript@5.2.2): + resolution: {integrity: sha512-GosF4238Tkes2SHPQ1i8f6rMtG6zlKwMEB0abqSJ3Npvos+doIlc/ATG+vX1G9coDF3Ex78zM3heXHLyWEwLUw==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: '@typescript-eslint/parser': ^6.0.0 || ^6.0.0-alpha @@ -4395,27 +4376,26 @@ packages: typescript: optional: true dependencies: - '@eslint-community/regexpp': 4.6.2 - '@typescript-eslint/parser': 6.2.0(eslint@8.45.0)(typescript@5.1.6) - '@typescript-eslint/scope-manager': 6.2.0 - '@typescript-eslint/type-utils': 6.2.0(eslint@8.45.0)(typescript@5.1.6) - '@typescript-eslint/utils': 6.2.0(eslint@8.45.0)(typescript@5.1.6) - '@typescript-eslint/visitor-keys': 6.2.0 + '@eslint-community/regexpp': 4.9.1 + '@typescript-eslint/parser': 6.8.0(eslint@8.51.0)(typescript@5.2.2) + '@typescript-eslint/scope-manager': 6.8.0 + '@typescript-eslint/type-utils': 6.8.0(eslint@8.51.0)(typescript@5.2.2) + '@typescript-eslint/utils': 6.8.0(eslint@8.51.0)(typescript@5.2.2) + '@typescript-eslint/visitor-keys': 6.8.0 debug: 4.3.4(supports-color@8.1.1) - eslint: 8.45.0 + eslint: 8.51.0 graphemer: 1.4.0 ignore: 5.2.4 natural-compare: 1.4.0 - natural-compare-lite: 1.4.0 semver: 7.5.4 - ts-api-utils: 1.0.1(typescript@5.1.6) - typescript: 5.1.6 + ts-api-utils: 1.0.3(typescript@5.2.2) + typescript: 5.2.2 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/parser@6.2.0(eslint@8.45.0)(typescript@5.1.6): - resolution: {integrity: sha512-igVYOqtiK/UsvKAmmloQAruAdUHihsOCvplJpplPZ+3h4aDkC/UKZZNKgB6h93ayuYLuEymU3h8nF1xMRbh37g==} + /@typescript-eslint/parser@6.8.0(eslint@8.51.0)(typescript@5.2.2): + resolution: {integrity: sha512-5tNs6Bw0j6BdWuP8Fx+VH4G9fEPDxnVI7yH1IAPkQH5RUtvKwRoqdecAPdQXv4rSOADAaz1LFBZvZG7VbXivSg==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: eslint: ^7.0.0 || ^8.0.0 @@ -4424,27 +4404,27 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/scope-manager': 6.2.0 - '@typescript-eslint/types': 6.2.0 - '@typescript-eslint/typescript-estree': 6.2.0(typescript@5.1.6) - '@typescript-eslint/visitor-keys': 6.2.0 + '@typescript-eslint/scope-manager': 6.8.0 + '@typescript-eslint/types': 6.8.0 + '@typescript-eslint/typescript-estree': 6.8.0(typescript@5.2.2) + '@typescript-eslint/visitor-keys': 6.8.0 debug: 4.3.4(supports-color@8.1.1) - eslint: 8.45.0 - typescript: 5.1.6 + eslint: 8.51.0 + typescript: 5.2.2 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/scope-manager@6.2.0: - resolution: {integrity: sha512-1ZMNVgm5nnHURU8ZSJ3snsHzpFeNK84rdZjluEVBGNu7jDymfqceB3kdIZ6A4xCfEFFhRIB6rF8q/JIqJd2R0Q==} + /@typescript-eslint/scope-manager@6.8.0: + resolution: {integrity: sha512-xe0HNBVwCph7rak+ZHcFD6A+q50SMsFwcmfdjs9Kz4qDh5hWhaPhFjRs/SODEhroBI5Ruyvyz9LfwUJ624O40g==} engines: {node: ^16.0.0 || >=18.0.0} dependencies: - '@typescript-eslint/types': 6.2.0 - '@typescript-eslint/visitor-keys': 6.2.0 + '@typescript-eslint/types': 6.8.0 + '@typescript-eslint/visitor-keys': 6.8.0 dev: true - /@typescript-eslint/type-utils@6.2.0(eslint@8.45.0)(typescript@5.1.6): - resolution: {integrity: sha512-DnGZuNU2JN3AYwddYIqrVkYW0uUQdv0AY+kz2M25euVNlujcN2u+rJgfJsBFlUEzBB6OQkUqSZPyuTLf2bP5mw==} + /@typescript-eslint/type-utils@6.8.0(eslint@8.51.0)(typescript@5.2.2): + resolution: {integrity: sha512-RYOJdlkTJIXW7GSldUIHqc/Hkto8E+fZN96dMIFhuTJcQwdRoGN2rEWA8U6oXbLo0qufH7NPElUb+MceHtz54g==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: eslint: ^7.0.0 || ^8.0.0 @@ -4453,23 +4433,23 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/typescript-estree': 6.2.0(typescript@5.1.6) - '@typescript-eslint/utils': 6.2.0(eslint@8.45.0)(typescript@5.1.6) + '@typescript-eslint/typescript-estree': 6.8.0(typescript@5.2.2) + '@typescript-eslint/utils': 6.8.0(eslint@8.51.0)(typescript@5.2.2) debug: 4.3.4(supports-color@8.1.1) - eslint: 8.45.0 - ts-api-utils: 1.0.1(typescript@5.1.6) - typescript: 5.1.6 + eslint: 8.51.0 + ts-api-utils: 1.0.3(typescript@5.2.2) + typescript: 5.2.2 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/types@6.2.0: - resolution: {integrity: sha512-1nRRaDlp/XYJQLvkQJG5F3uBTno5SHPT7XVcJ5n1/k2WfNI28nJsvLakxwZRNY5spuatEKO7d5nZWsQpkqXwBA==} + /@typescript-eslint/types@6.8.0: + resolution: {integrity: sha512-p5qOxSum7W3k+llc7owEStXlGmSl8FcGvhYt8Vjy7FqEnmkCVlM3P57XQEGj58oqaBWDQXbJDZxwUWMS/EAPNQ==} engines: {node: ^16.0.0 || >=18.0.0} dev: true - /@typescript-eslint/typescript-estree@6.2.0(typescript@5.1.6): - resolution: {integrity: sha512-Mts6+3HQMSM+LZCglsc2yMIny37IhUgp1Qe8yJUYVyO6rHP7/vN0vajKu3JvHCBIy8TSiKddJ/Zwu80jhnGj1w==} + /@typescript-eslint/typescript-estree@6.8.0(typescript@5.2.2): + resolution: {integrity: sha512-ISgV0lQ8XgW+mvv5My/+iTUdRmGspducmQcDw5JxznasXNnZn3SKNrTRuMsEXv+V/O+Lw9AGcQCfVaOPCAk/Zg==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: typescript: '*' @@ -4477,43 +4457,43 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/types': 6.2.0 - '@typescript-eslint/visitor-keys': 6.2.0 + '@typescript-eslint/types': 6.8.0 + '@typescript-eslint/visitor-keys': 6.8.0 debug: 4.3.4(supports-color@8.1.1) globby: 11.1.0 is-glob: 4.0.3 semver: 7.5.4 - ts-api-utils: 1.0.1(typescript@5.1.6) - typescript: 5.1.6 + ts-api-utils: 1.0.3(typescript@5.2.2) + typescript: 5.2.2 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/utils@6.2.0(eslint@8.45.0)(typescript@5.1.6): - resolution: {integrity: sha512-RCFrC1lXiX1qEZN8LmLrxYRhOkElEsPKTVSNout8DMzf8PeWoQG7Rxz2SadpJa3VSh5oYKGwt7j7X/VRg+Y3OQ==} + /@typescript-eslint/utils@6.8.0(eslint@8.51.0)(typescript@5.2.2): + resolution: {integrity: sha512-dKs1itdE2qFG4jr0dlYLQVppqTE+Itt7GmIf/vX6CSvsW+3ov8PbWauVKyyfNngokhIO9sKZeRGCUo1+N7U98Q==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: eslint: ^7.0.0 || ^8.0.0 dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.45.0) - '@types/json-schema': 7.0.12 - '@types/semver': 7.5.0 - '@typescript-eslint/scope-manager': 6.2.0 - '@typescript-eslint/types': 6.2.0 - '@typescript-eslint/typescript-estree': 6.2.0(typescript@5.1.6) - eslint: 8.45.0 + '@eslint-community/eslint-utils': 4.4.0(eslint@8.51.0) + '@types/json-schema': 7.0.13 + '@types/semver': 7.5.3 + '@typescript-eslint/scope-manager': 6.8.0 + '@typescript-eslint/types': 6.8.0 + '@typescript-eslint/typescript-estree': 6.8.0(typescript@5.2.2) + eslint: 8.51.0 semver: 7.5.4 transitivePeerDependencies: - supports-color - typescript dev: true - /@typescript-eslint/visitor-keys@6.2.0: - resolution: {integrity: sha512-QbaYUQVKKo9bgCzpjz45llCfwakyoxHetIy8CAvYCtd16Zu1KrpzNHofwF8kGkpPOxZB2o6kz+0nqH8ZkIzuoQ==} + /@typescript-eslint/visitor-keys@6.8.0: + resolution: {integrity: sha512-oqAnbA7c+pgOhW2OhGvxm0t1BULX5peQI/rLsNDpGM78EebV3C9IGbX5HNZabuZ6UQrYveCLjKo8Iy/lLlBkkg==} engines: {node: ^16.0.0 || >=18.0.0} dependencies: - '@typescript-eslint/types': 6.2.0 - eslint-visitor-keys: 3.4.1 + '@typescript-eslint/types': 6.8.0 + eslint-visitor-keys: 3.4.3 dev: true /@viem/anvil@0.0.6: @@ -4522,49 +4502,49 @@ packages: execa: 7.2.0 get-port: 6.1.2 http-proxy: 1.18.1 - ws: 8.13.0 + ws: 8.14.2 transitivePeerDependencies: - bufferutil - debug - utf-8-validate dev: true - /@vitest/expect@0.34.1: - resolution: {integrity: sha512-q2CD8+XIsQ+tHwypnoCk8Mnv5e6afLFvinVGCq3/BOT4kQdVQmY6rRfyKkwcg635lbliLPqbunXZr+L1ssUWiQ==} + /@vitest/expect@0.34.6: + resolution: {integrity: sha512-QUzKpUQRc1qC7qdGo7rMK3AkETI7w18gTCUrsNnyjjJKYiuUB9+TQK3QnR1unhCnWRC0AbKv2omLGQDF/mIjOw==} dependencies: - '@vitest/spy': 0.34.1 - '@vitest/utils': 0.34.1 - chai: 4.3.7 + '@vitest/spy': 0.34.6 + '@vitest/utils': 0.34.6 + chai: 4.3.10 dev: true - /@vitest/runner@0.34.1: - resolution: {integrity: sha512-YfQMpYzDsYB7yqgmlxZ06NI4LurHWfrH7Wy3Pvf/z/vwUSgq1zLAb1lWcItCzQG+NVox+VvzlKQrYEXb47645g==} + /@vitest/runner@0.34.6: + resolution: {integrity: sha512-1CUQgtJSLF47NnhN+F9X2ycxUP0kLHQ/JWvNHbeBfwW8CzEGgeskzNnHDyv1ieKTltuR6sdIHV+nmR6kPxQqzQ==} dependencies: - '@vitest/utils': 0.34.1 + '@vitest/utils': 0.34.6 p-limit: 4.0.0 pathe: 1.1.1 dev: true - /@vitest/snapshot@0.34.1: - resolution: {integrity: sha512-0O9LfLU0114OqdF8lENlrLsnn024Tb1CsS9UwG0YMWY2oGTQfPtkW+B/7ieyv0X9R2Oijhi3caB1xgGgEgclSQ==} + /@vitest/snapshot@0.34.6: + resolution: {integrity: sha512-B3OZqYn6k4VaN011D+ve+AA4whM4QkcwcrwaKwAbyyvS/NB1hCWjFIBQxAQQSQir9/RtyAAGuq+4RJmbn2dH4w==} dependencies: - magic-string: 0.30.2 + magic-string: 0.30.5 pathe: 1.1.1 - pretty-format: 29.6.2 + pretty-format: 29.7.0 dev: true - /@vitest/spy@0.34.1: - resolution: {integrity: sha512-UT4WcI3EAPUNO8n6y9QoEqynGGEPmmRxC+cLzneFFXpmacivjHZsNbiKD88KUScv5DCHVDgdBsLD7O7s1enFcQ==} + /@vitest/spy@0.34.6: + resolution: {integrity: sha512-xaCvneSaeBw/cz8ySmF7ZwGvL0lBjfvqc1LpQ/vcdHEvpLn3Ff1vAvjw+CoGn0802l++5L/pxb7whwcWAw+DUQ==} dependencies: - tinyspy: 2.1.1 + tinyspy: 2.2.0 dev: true - /@vitest/utils@0.34.1: - resolution: {integrity: sha512-/ql9dsFi4iuEbiNcjNHQWXBum7aL8pyhxvfnD9gNtbjR9fUKAjxhj4AA3yfLXg6gJpMGGecvtF8Au2G9y3q47Q==} + /@vitest/utils@0.34.6: + resolution: {integrity: sha512-IG5aDD8S6zlvloDsnzHw0Ut5xczlF+kv2BOTo+iXfPr54Yhi5qbVOgGB1hZaVq4iJ4C/MZ2J0y15IlsV/ZcI0A==} dependencies: - diff-sequences: 29.4.3 - loupe: 2.3.6 - pretty-format: 29.6.2 + diff-sequences: 29.6.3 + loupe: 2.3.7 + pretty-format: 29.7.0 dev: true /@whatwg-node/events@0.0.3: @@ -4584,11 +4564,11 @@ packages: urlpattern-polyfill: 8.0.2 web-streams-polyfill: 3.2.1 - /@whatwg-node/fetch@0.9.9: - resolution: {integrity: sha512-OTVoDm039CNyAWSRc2WBimMl/N9J4Fk2le21Xzcf+3OiWPNNSIbMnpWKBUyraPh2d9SAEgoBdQxTfVNihXgiUw==} + /@whatwg-node/fetch@0.9.13: + resolution: {integrity: sha512-PPtMwhjtS96XROnSpowCQM85gCUG2m7AXZFw0PZlGbhzx2GK7f2iOXilfgIJ0uSlCuuGbOIzfouISkA7C4FJOw==} engines: {node: '>=16.0.0'} dependencies: - '@whatwg-node/node-fetch': 0.4.11 + '@whatwg-node/node-fetch': 0.4.19 urlpattern-polyfill: 9.0.0 dev: true @@ -4599,25 +4579,25 @@ packages: busboy: 1.6.0 fast-querystring: 1.1.2 fast-url-parser: 1.1.3 - tslib: 2.6.1 + tslib: 2.6.2 - /@whatwg-node/node-fetch@0.4.11: - resolution: {integrity: sha512-JRMx/yrBW/PXUH+0EIurUIQtAsEMrHtZBBKv6b+YCK1yG7pMNqtkl5Z39Rynq8ysVc/I6yTtNwkCy9bz5To1vw==} + /@whatwg-node/node-fetch@0.4.19: + resolution: {integrity: sha512-AW7/m2AuweAoSXmESrYQr/KBafueScNbn2iNO0u6xFr2JZdPmYsSm5yvAXYk6yDLv+eDmSSKrf7JnFZ0CsJIdA==} engines: {node: '>=16.0.0'} dependencies: '@whatwg-node/events': 0.1.1 busboy: 1.6.0 fast-querystring: 1.1.2 fast-url-parser: 1.1.3 - tslib: 2.6.1 + tslib: 2.6.2 dev: true - /@whatwg-node/server@0.9.5: - resolution: {integrity: sha512-unJrvZj20XZv6VNJBmszOBAm/43tVd9LvFCTnKZwQtMd8lcrOYn/RZWgt2dDDsOz3kpe9U2ds6II4MLFxQJbwg==} + /@whatwg-node/server@0.9.14: + resolution: {integrity: sha512-I8TT0NoCP+xThLBuGlU6dgq5wpExkphNMo2geZwQW0vAmEPtc3MNMZMIYqg5GyNmpv5Nf7fnxb8tVOIHbDvuDA==} engines: {node: '>=16.0.0'} dependencies: - '@whatwg-node/fetch': 0.9.9 - tslib: 2.6.1 + '@whatwg-node/fetch': 0.9.13 + tslib: 2.6.2 dev: true /JSONStream@1.3.2: @@ -4636,7 +4616,7 @@ packages: through: 2.3.8 dev: false - /abitype@0.9.8(typescript@5.1.6)(zod@3.21.4): + /abitype@0.9.8(typescript@5.2.2)(zod@3.22.4): resolution: {integrity: sha512-puLifILdm+8sjyss4S+fsUN09obiT1g2YW6CtcQF+QDzxR0euzgEB29MZujC6zMk2a6SVmtttq1fc6+YFA7WYQ==} peerDependencies: typescript: '>=5.0.4' @@ -4647,8 +4627,8 @@ packages: zod: optional: true dependencies: - typescript: 5.1.6 - zod: 3.21.4 + typescript: 5.2.2 + zod: 3.22.4 dev: true /abort-controller@3.0.0: @@ -4657,25 +4637,12 @@ packages: dependencies: event-target-shim: 5.0.1 - /abstract-level@1.0.3: - resolution: {integrity: sha512-t6jv+xHy+VYwc4xqZMn2Pa9DjcdzvzZmQGRjTFc8spIbRGHgBrEKbPq+rYXc7CCo0lxgYvSgKVg9qZAhpVQSjA==} - engines: {node: '>=12'} - dependencies: - buffer: 6.0.3 - catering: 2.1.1 - is-buffer: 2.0.5 - level-supports: 4.0.1 - level-transcoder: 1.0.1 - module-error: 1.0.2 - queue-microtask: 1.2.3 - dev: true - /abstract-leveldown@6.2.3: resolution: {integrity: sha512-BsLm5vFMRUrrLeCcRc+G0t2qOaTzpoJQLOubq2XM72eNpjF5UdU5o/5NvlNhx95XHcAvcl8OMXr4mlg/fRgUXQ==} engines: {node: '>=6'} dependencies: buffer: 5.7.1 - immediate: 3.3.0 + immediate: 3.2.3 level-concat-iterator: 2.0.1 level-supports: 1.0.1 xtend: 4.0.2 @@ -4721,23 +4688,9 @@ packages: engines: {node: '>=0.4.0'} hasBin: true - /adm-zip@0.4.16: - resolution: {integrity: sha512-TFi4HBKSGfIKsK5YCkKaaFG2m4PEDyViZmEwof3MTIgzimHLto6muaHVpbrljdIvIrFZzEq/p4nafOeLcYegrg==} - engines: {node: '>=0.3.0'} - dev: true - /aes-js@3.0.0: resolution: {integrity: sha512-H7wUZRn8WpTq9jocdxQ2c8x2sKo9ZVmzfRE13GiNJXfp7NcKYEdvl3vspKjXox6RIG2VtaRe4JFvxG4rqp2Zuw==} - /agent-base@6.0.2: - resolution: {integrity: sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==} - engines: {node: '>= 6.0.0'} - dependencies: - debug: 4.3.4(supports-color@8.1.1) - transitivePeerDependencies: - - supports-color - dev: true - /agent-base@7.1.0: resolution: {integrity: sha512-o/zjMZRhJxny7OyEF+Op8X+efiELC7k7yOjMzgfzVqOzXqkBkWI79YoTdOtsuWd5BWhAGAuOY/Xa6xpiaWXiNg==} engines: {node: '>= 14'} @@ -4763,8 +4716,8 @@ packages: json-schema-traverse: 0.4.1 uri-js: 4.4.1 - /alchemy-sdk@2.9.2: - resolution: {integrity: sha512-DAmONxbzgqnKrQP8OLuF9rYdgbxJuxwTUmu3kC4/+1yD5p3Lhg4ZQP1RFTK4DTD9J1O0XEAcqkywmpW6hgR5lQ==} + /alchemy-sdk@2.10.1: + resolution: {integrity: sha512-zV6rBS2K0H3ickE28N7YiPvKPP9EQV+ZAiv9Zi3+aSzhcm0D1bkK+OS/+Tc7mU6EflSpZcDNC1fsLWlRqJOX4Q==} dependencies: '@ethersproject/abi': 5.7.0 '@ethersproject/abstract-provider': 5.7.0 @@ -4787,20 +4740,9 @@ packages: - utf-8-validate dev: false - /ansi-colors@3.2.4: - resolution: {integrity: sha512-hHUXGagefjN2iRrID63xckIvotOXOojhQKWIPUZ4mNUZ9nLZW+7FMNoE1lOkEhNWYsx/7ysGIuJYCiMAA9FnrA==} - engines: {node: '>=6'} - dev: false - - /ansi-colors@4.1.1: - resolution: {integrity: sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==} - engines: {node: '>=6'} - dev: true - /ansi-colors@4.1.3: resolution: {integrity: sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==} engines: {node: '>=6'} - dev: true /ansi-escapes@4.3.2: resolution: {integrity: sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==} @@ -4808,14 +4750,21 @@ packages: dependencies: type-fest: 0.21.3 + /ansi-escapes@5.0.0: + resolution: {integrity: sha512-5GFMVX8HqE/TB+FuBJGuO5XG0WrsA6ptUqoODaT/n9mmUaZFkqnBueB4leqGBCmrUHnCnC4PCZTCd0E7QQ83bA==} + engines: {node: '>=12'} + dependencies: + type-fest: 1.4.0 + dev: true + /ansi-regex@2.1.1: resolution: {integrity: sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==} engines: {node: '>=0.10.0'} dev: true - /ansi-regex@3.0.1: - resolution: {integrity: sha512-+O9Jct8wf++lXxxFc4hc8LsjaSq0HFzzL7cVsw8pRDIPdjKD2mT4ytDZlLuSBZ4cLKZFXIrMGO7DbQCtMJJMKw==} - engines: {node: '>=4'} + /ansi-regex@4.1.1: + resolution: {integrity: sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g==} + engines: {node: '>=6'} dev: false /ansi-regex@5.0.1: @@ -4869,12 +4818,12 @@ packages: dependencies: normalize-path: 3.0.0 picomatch: 2.3.1 + dev: false - /apisauce@1.1.5(debug@4.3.4): - resolution: {integrity: sha512-gKC8qb/bDJsPsnEXLZnXJ7gVx7dh87CEVNeIwv1dvaffnXoh5GHwac5pWR1P2broLiVj/fqFMQvLDDt/RhjiqA==} + /apisauce@2.1.6(debug@4.3.4): + resolution: {integrity: sha512-MdxR391op/FucS2YQRfB/NMRyCnHEPDd4h17LRIuVYi0BpGmMhpxc0shbOpfs5ahABuBEffNCGal5EcsydbBWg==} dependencies: axios: 0.21.4(debug@4.3.4) - ramda: 0.25.0 transitivePeerDependencies: - debug dev: false @@ -4915,23 +4864,24 @@ packages: resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} engines: {node: '>=8'} - /array.prototype.flat@1.3.1: - resolution: {integrity: sha512-roTU0KWIOmJ4DRLmwKd19Otg0/mT3qPNt0Qb3GWW8iObuZXxrjB/pzn0R3hqpRSWg4HCwqx+0vwOnWnvlOyeIA==} + /array.prototype.flat@1.3.2: + resolution: {integrity: sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==} engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.2 - define-properties: 1.2.0 - es-abstract: 1.22.1 + define-properties: 1.2.1 + es-abstract: 1.22.2 es-shim-unscopables: 1.0.0 dev: true - /arraybuffer.prototype.slice@1.0.1: - resolution: {integrity: sha512-09x0ZWFEjj4WD8PDbykUwo3t9arLn8NIzmmYEJFpYekOAQjpkGSyrQhNoRTcwwcFRu+ycWF78QZ63oWTqSjBcw==} + /arraybuffer.prototype.slice@1.0.2: + resolution: {integrity: sha512-yMBKppFur/fbHu9/6USUe03bZ4knMYiwFBcyiaXB8Go0qNehwX6inYPzK9U0NeQvGxKthcmHcaR8P5MStSRBAw==} engines: {node: '>= 0.4'} dependencies: array-buffer-byte-length: 1.0.0 call-bind: 1.0.2 - define-properties: 1.2.0 + define-properties: 1.2.1 + es-abstract: 1.22.2 get-intrinsic: 1.2.1 is-array-buffer: 3.0.2 is-shared-array-buffer: 1.0.2 @@ -4954,9 +4904,9 @@ packages: resolution: {integrity: sha512-FVnvrKJwpt9LP2lAMl8qZswRNm3T4q9CON+bxldk2iwk3FFpuwhx2FfinyitizWHsVYyaY+y5JzDR0rCMV5yTQ==} engines: {node: '>=12.0.0'} dependencies: - pvtsutils: 1.3.2 + pvtsutils: 1.3.5 pvutils: 1.1.3 - tslib: 2.6.1 + tslib: 2.6.2 /assemblyscript@0.19.10: resolution: {integrity: sha512-HavcUBXB3mBTRGJcpvaQjmnmaqKHBGREjSPNsIvnAk2f9dj78y4BkMaSSdvBQYWcDDzsHQjyUC8stICFkD1Odg==} @@ -4986,7 +4936,6 @@ packages: /astral-regex@2.0.0: resolution: {integrity: sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==} engines: {node: '>=8'} - dev: true /async-eventemitter@0.2.4: resolution: {integrity: sha512-pd20BwL7Yt1zwDFy+8MX8F1+WCT8aQeKj0kQnTrH9WaeRETlRamVhD0JtRPmrV4GfOJ2F9CvdQkZeZhnh2TuHw==} @@ -5029,7 +4978,7 @@ packages: /axios@0.21.4(debug@4.3.4): resolution: {integrity: sha512-ut5vewkiu8jjGBdqpM44XxjuCjq9LAKeHVmoVfHVzy8eHgxxq8SbAVQNovDA8mVi05kP0Ea/n/UzcSHcTJQfNg==} dependencies: - follow-redirects: 1.15.2(debug@4.3.4) + follow-redirects: 1.15.3(debug@4.3.4) transitivePeerDependencies: - debug dev: false @@ -5037,7 +4986,7 @@ packages: /axios@0.26.1: resolution: {integrity: sha512-fPwcX4EvnSHuInCMItEhAGnaSEXRBjtzh9fOtsE6E1G6p7vl7edEeZe11QHf18+6+9gR5PbKV/sGKNaD8YaMeA==} dependencies: - follow-redirects: 1.15.2(debug@4.3.4) + follow-redirects: 1.15.3(debug@4.3.4) transitivePeerDependencies: - debug dev: false @@ -5045,7 +4994,7 @@ packages: /axios@0.27.2: resolution: {integrity: sha512-t+yRIyySRTp/wua5xEr+z1q60QmLq8ABsS5O9Me1AsE5dfKqgnCFzwiCZZ/cGNd1lq4/7akDWMxdhVlucjmnOQ==} dependencies: - follow-redirects: 1.15.2(debug@4.3.4) + follow-redirects: 1.15.3(debug@4.3.4) form-data: 4.0.0 transitivePeerDependencies: - debug @@ -5055,38 +5004,38 @@ packages: resolution: {integrity: sha512-Xj9XuRuz3nTSbaTXWv3itLOcxyF4oPD8douBBmj7U9BBC6nEBYfyOJYQMf/8PJAFotC62UY5dFfIGEPr7WswzQ==} dev: true - /babel-preset-fbjs@3.4.0(@babel/core@7.22.9): + /babel-preset-fbjs@3.4.0(@babel/core@7.23.2): resolution: {integrity: sha512-9ywCsCvo1ojrw0b+XYk7aFvTH6D9064t0RIL1rtMf3nsa02Xw41MS7sZw216Im35xj/UY0PDBQsa1brUDDF1Ow==} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.22.9 - '@babel/plugin-proposal-class-properties': 7.18.6(@babel/core@7.22.9) - '@babel/plugin-proposal-object-rest-spread': 7.20.7(@babel/core@7.22.9) - '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.22.9) - '@babel/plugin-syntax-flow': 7.22.5(@babel/core@7.22.9) - '@babel/plugin-syntax-jsx': 7.22.5(@babel/core@7.22.9) - '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.22.9) - '@babel/plugin-transform-arrow-functions': 7.22.5(@babel/core@7.22.9) - '@babel/plugin-transform-block-scoped-functions': 7.22.5(@babel/core@7.22.9) - '@babel/plugin-transform-block-scoping': 7.22.5(@babel/core@7.22.9) - '@babel/plugin-transform-classes': 7.22.6(@babel/core@7.22.9) - '@babel/plugin-transform-computed-properties': 7.22.5(@babel/core@7.22.9) - '@babel/plugin-transform-destructuring': 7.22.5(@babel/core@7.22.9) - '@babel/plugin-transform-flow-strip-types': 7.22.5(@babel/core@7.22.9) - '@babel/plugin-transform-for-of': 7.22.5(@babel/core@7.22.9) - '@babel/plugin-transform-function-name': 7.22.5(@babel/core@7.22.9) - '@babel/plugin-transform-literals': 7.22.5(@babel/core@7.22.9) - '@babel/plugin-transform-member-expression-literals': 7.22.5(@babel/core@7.22.9) - '@babel/plugin-transform-modules-commonjs': 7.22.5(@babel/core@7.22.9) - '@babel/plugin-transform-object-super': 7.22.5(@babel/core@7.22.9) - '@babel/plugin-transform-parameters': 7.22.5(@babel/core@7.22.9) - '@babel/plugin-transform-property-literals': 7.22.5(@babel/core@7.22.9) - '@babel/plugin-transform-react-display-name': 7.22.5(@babel/core@7.22.9) - '@babel/plugin-transform-react-jsx': 7.22.5(@babel/core@7.22.9) - '@babel/plugin-transform-shorthand-properties': 7.22.5(@babel/core@7.22.9) - '@babel/plugin-transform-spread': 7.22.5(@babel/core@7.22.9) - '@babel/plugin-transform-template-literals': 7.22.5(@babel/core@7.22.9) + '@babel/core': 7.23.2 + '@babel/plugin-proposal-class-properties': 7.18.6(@babel/core@7.23.2) + '@babel/plugin-proposal-object-rest-spread': 7.20.7(@babel/core@7.23.2) + '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.23.2) + '@babel/plugin-syntax-flow': 7.22.5(@babel/core@7.23.2) + '@babel/plugin-syntax-jsx': 7.22.5(@babel/core@7.23.2) + '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.23.2) + '@babel/plugin-transform-arrow-functions': 7.22.5(@babel/core@7.23.2) + '@babel/plugin-transform-block-scoped-functions': 7.22.5(@babel/core@7.23.2) + '@babel/plugin-transform-block-scoping': 7.23.0(@babel/core@7.23.2) + '@babel/plugin-transform-classes': 7.22.15(@babel/core@7.23.2) + '@babel/plugin-transform-computed-properties': 7.22.5(@babel/core@7.23.2) + '@babel/plugin-transform-destructuring': 7.23.0(@babel/core@7.23.2) + '@babel/plugin-transform-flow-strip-types': 7.22.5(@babel/core@7.23.2) + '@babel/plugin-transform-for-of': 7.22.15(@babel/core@7.23.2) + '@babel/plugin-transform-function-name': 7.22.5(@babel/core@7.23.2) + '@babel/plugin-transform-literals': 7.22.5(@babel/core@7.23.2) + '@babel/plugin-transform-member-expression-literals': 7.22.5(@babel/core@7.23.2) + '@babel/plugin-transform-modules-commonjs': 7.23.0(@babel/core@7.23.2) + '@babel/plugin-transform-object-super': 7.22.5(@babel/core@7.23.2) + '@babel/plugin-transform-parameters': 7.22.15(@babel/core@7.23.2) + '@babel/plugin-transform-property-literals': 7.22.5(@babel/core@7.23.2) + '@babel/plugin-transform-react-display-name': 7.22.5(@babel/core@7.23.2) + '@babel/plugin-transform-react-jsx': 7.22.15(@babel/core@7.23.2) + '@babel/plugin-transform-shorthand-properties': 7.22.5(@babel/core@7.23.2) + '@babel/plugin-transform-spread': 7.22.5(@babel/core@7.23.2) + '@babel/plugin-transform-template-literals': 7.22.5(@babel/core@7.23.2) babel-plugin-syntax-trailing-function-commas: 7.0.0-beta.0 dev: true @@ -5121,18 +5070,14 @@ packages: engines: {node: '>=0.6'} dev: true - /bigint-crypto-utils@3.3.0: - resolution: {integrity: sha512-jOTSb+drvEDxEq6OuUybOAv/xxoh3cuYRUIPyu8sSHQNKM303UQ2R1DAo45o1AkcIXw6fzbaFI1+xGGdaXs2lg==} - engines: {node: '>=14.0.0'} - dev: true - - /bignumber.js@9.1.1: - resolution: {integrity: sha512-pHm4LsMJ6lzgNGVfZHjMoO8sdoRhOzOH4MLmY65Jg70bpxCKu5iOHNJyfF6OyvYw7t8Fpf35RuzUyqnQsj8Vig==} + /bignumber.js@9.1.2: + resolution: {integrity: sha512-2/mKyZH9K85bzOEfhXDBFZTGd1CTs+5IHpeFQo9luiBG7hghdC851Pj2WAhb6E3R6b9tZj/XKhbg4fum+Kepug==} dev: true /binary-extensions@2.2.0: resolution: {integrity: sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==} engines: {node: '>=8'} + dev: false /binary-install-raw@0.0.13(debug@4.3.4): resolution: {integrity: sha512-v7ms6N/H7iciuk6QInon3/n2mu7oRX+6knJ9xFPsJ3rQePgAqcR3CRTwUheFd8SLbiq4LL7Z4G/44L9zscdt9A==} @@ -5140,7 +5085,7 @@ packages: dependencies: axios: 0.21.4(debug@4.3.4) rimraf: 3.0.2 - tar: 6.1.13 + tar: 6.2.0 transitivePeerDependencies: - debug dev: false @@ -5201,7 +5146,7 @@ packages: /bn.js@5.2.1: resolution: {integrity: sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==} - /bob-esbuild-plugin@4.0.0(esbuild@0.18.17)(rollup@2.79.1): + /bob-esbuild-plugin@4.0.0(esbuild@0.19.4)(rollup@2.79.1): resolution: {integrity: sha512-Ymk0kEPc0JhL3eZQVnWpjT4/HMX8Hw7aD5CzqSvNAXeUgaR1+8m5O1RtkP/D42ZwNv+FPgD1wKM4pdoQ4ScmAQ==} peerDependencies: esbuild: '>=0.14.39' @@ -5213,11 +5158,11 @@ packages: optional: true dependencies: '@rollup/pluginutils': 4.2.1 - esbuild: 0.18.17 + esbuild: 0.19.4 rollup: 2.79.1 dev: true - /bob-ts@4.1.1(@types/node@20.4.5)(esbuild@0.18.17)(typescript@5.1.6): + /bob-ts@4.1.1(@types/node@20.8.6)(esbuild@0.19.4)(typescript@5.2.2): resolution: {integrity: sha512-lXvGGP46GSU10LMHB27Kq2PZl+DaK1L5geHxxzLw/QklEWnvfzLPJsH9YGvV9F4AdIGJp85FTC1xIfanwd3NbQ==} engines: {node: '>=14.13.1'} hasBin: true @@ -5231,14 +5176,14 @@ packages: typescript: optional: true dependencies: - '@types/node': 20.4.5 - bob-esbuild-plugin: 4.0.0(esbuild@0.18.17)(rollup@2.79.1) - esbuild: 0.18.17 + '@types/node': 20.8.6 + bob-esbuild-plugin: 4.0.0(esbuild@0.19.4)(rollup@2.79.1) + esbuild: 0.19.4 rollup: 2.79.1 - typescript: 5.1.6 + typescript: 5.2.2 dev: true - /bob-tsm@1.1.2(esbuild@0.18.17)(typescript@5.1.6): + /bob-tsm@1.1.2(esbuild@0.19.4)(typescript@5.2.2): resolution: {integrity: sha512-5H6wIDpQTop5rt/5JRvtssmpiTkIqi1EBkpSy19GfReOed6QoeD+iJIRjNgyiI7ZsX1ogETxgN7KiW5Wx6pUEQ==} engines: {node: '>=14.13.1'} hasBin: true @@ -5249,10 +5194,10 @@ packages: typescript: optional: true dependencies: - esbuild: 0.18.17 - typescript: 5.1.6 + esbuild: 0.19.4 + typescript: 5.2.2 optionalDependencies: - fsevents: 2.3.2 + fsevents: 2.3.3 dev: true /bplist-parser@0.2.0: @@ -5288,23 +5233,10 @@ packages: /brorand@1.1.0: resolution: {integrity: sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w==} - /browser-level@1.0.1: - resolution: {integrity: sha512-XECYKJ+Dbzw0lbydyQuJzwNXtOpbMSq737qxJN11sIRTErOMShvDpbzTlgju7orJKvx4epULolZAuJGLzCmWRQ==} - dependencies: - abstract-level: 1.0.3 - catering: 2.1.1 - module-error: 1.0.2 - run-parallel-limit: 1.1.0 - dev: true - /browser-readablestream-to-it@1.0.3: resolution: {integrity: sha512-+12sHB+Br8HIh6VAMVEG5r3UXCyESIgDW7kzk3BjIXa43DVqVwL7GC5TW3jeh+72dtcH99pPVpw0X8i0jt+/kw==} dev: false - /browser-stdout@1.3.1: - resolution: {integrity: sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==} - dev: true - /browserify-aes@1.2.0: resolution: {integrity: sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==} dependencies: @@ -5315,15 +5247,15 @@ packages: inherits: 2.0.4 safe-buffer: 5.2.1 - /browserslist@4.21.9: - resolution: {integrity: sha512-M0MFoZzbUrRU4KNfCrDLnvyE7gub+peetoTid3TBIqtunaDJyXlwhakT+/VkvSXcfIzFfK/nkCs4nmyTmxdNSg==} + /browserslist@4.22.1: + resolution: {integrity: sha512-FEVc202+2iuClEhZhrWy6ZiAcRLvNMyYcxZ8raemul1DYVOVdFsbqckWLdsixQZCpJlwe77Z3UTalE7jsjnKfQ==} engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} hasBin: true dependencies: - caniuse-lite: 1.0.30001517 - electron-to-chromium: 1.4.473 + caniuse-lite: 1.0.30001549 + electron-to-chromium: 1.4.555 node-releases: 2.0.13 - update-browserslist-db: 1.0.11(browserslist@4.21.9) + update-browserslist-db: 1.0.13(browserslist@4.22.1) dev: true /bs58@4.0.1: @@ -5361,6 +5293,7 @@ packages: /buffer-from@1.1.2: resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==} + dev: false /buffer-reverse@1.0.1: resolution: {integrity: sha512-M87YIUBsZ6N924W57vDwT/aOu8hw7ZgdByz6ijksLjmHJELBASmYTTlNHRgjE+pTsT9oJXGaDSgqqwfdHotDUg==} @@ -5393,16 +5326,16 @@ packages: engines: {node: '>=6.14.2'} requiresBuild: true dependencies: - node-gyp-build: 4.6.0 + node-gyp-build: 4.6.1 dev: true optional: true - /bufferutil@4.0.7: - resolution: {integrity: sha512-kukuqc39WOHtdxtw4UScxF/WVnMFVSQVKhtx3AjZJzhd0RGZZldcrfSEbVsWWe6KNH253574cq5F+wpv0G9pJw==} + /bufferutil@4.0.8: + resolution: {integrity: sha512-4T53u4PdgsXqKaIctwF8ifXlRTTmEPJ8iEPWFdGZvcf7sbwYo6FKFEX9eNNAnzFZ7EzJAQ3CJeOtCRA4rDp7Pw==} engines: {node: '>=6.14.2'} requiresBuild: true dependencies: - node-gyp-build: 4.6.0 + node-gyp-build: 4.6.1 dev: false /bundle-name@3.0.0: @@ -5423,11 +5356,6 @@ packages: engines: {node: '>=0.10.0'} dev: true - /bytes@3.1.2: - resolution: {integrity: sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==} - engines: {node: '>= 0.8'} - dev: true - /cac@6.7.14: resolution: {integrity: sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==} engines: {node: '>=8'} @@ -5436,7 +5364,7 @@ packages: /call-bind@1.0.2: resolution: {integrity: sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==} dependencies: - function-bind: 1.1.1 + function-bind: 1.1.2 get-intrinsic: 1.2.1 /callsites@3.1.0: @@ -5447,7 +5375,7 @@ packages: resolution: {integrity: sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==} dependencies: pascal-case: 3.1.2 - tslib: 2.6.1 + tslib: 2.6.2 dev: true /camelcase-keys@6.2.2: @@ -5467,21 +5395,17 @@ packages: /camelcase@5.3.1: resolution: {integrity: sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==} engines: {node: '>=6'} - - /camelcase@6.3.0: - resolution: {integrity: sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==} - engines: {node: '>=10'} dev: true - /caniuse-lite@1.0.30001517: - resolution: {integrity: sha512-Vdhm5S11DaFVLlyiKu4hiUTkpZu+y1KA/rZZqVQfOD5YdDT/eQKlkt7NaE0WGOFgX32diqt9MiP9CAiFeRklaA==} + /caniuse-lite@1.0.30001549: + resolution: {integrity: sha512-qRp48dPYSCYaP+KurZLhDYdVE+yEyht/3NlmcJgVQ2VMGt6JL36ndQ/7rgspdZsJuxDPFIo/OzBT2+GmIJ53BA==} dev: true /capital-case@1.0.4: resolution: {integrity: sha512-ds37W8CytHgwnhGGTi88pcPyR15qoNkOpYwmMMfnWqqWgESapLqvDx6huFjQ5vqWSn2Z06173XNA7LtMOeUh1A==} dependencies: no-case: 3.0.4 - tslib: 2.6.1 + tslib: 2.6.2 upper-case-first: 2.0.2 dev: true @@ -5492,11 +5416,6 @@ packages: ansicolors: 0.3.2 redeyed: 2.1.1 - /case@1.6.3: - resolution: {integrity: sha512-mzDSXIPaFwVDvZAHqZ9VlbyF4yyXRuX6IvB06WvPYkqJVO24kX1PPhv9bfpKNFZyxYFmmgo03HUiD8iklmJYRQ==} - engines: {node: '>= 0.8.0'} - dev: true - /caseless@0.12.0: resolution: {integrity: sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw==} @@ -5505,29 +5424,20 @@ packages: engines: {node: '>=6'} dev: true - /cborg@1.10.1: - resolution: {integrity: sha512-et6Qm8MOUY2kCWa5GKk2MlBVoPjHv0hQBmlzI/Z7+5V3VJCeIkGehIB3vWknNsm2kOkAIs6wEKJFJo8luWQQ/w==} + /cborg@1.10.2: + resolution: {integrity: sha512-b3tFPA9pUr2zCUiCfRd2+wok2/LBSNUMKOuRRok+WlvvAgEt/PlbgPTsZUcwCOs53IJvLgTp0eotwtosE6njug==} hasBin: true dev: false - /chai-as-promised@7.1.1(chai@4.3.7): - resolution: {integrity: sha512-azL6xMoi+uxu6z4rhWQ1jbdUhOMhis2PvscD/xjLqNMkv3BPPp2JyyuTHOrf9BOosGpNQ11v6BKv/g57RXbiaA==} - peerDependencies: - chai: '>= 2.1.2 < 5' - dependencies: - chai: 4.3.7 - check-error: 1.0.2 - dev: true - - /chai@4.3.7: - resolution: {integrity: sha512-HLnAzZ2iupm25PlN0xFreAlBA5zaBSv3og0DdeGA4Ar6h6rJ3A0rolRUKJhSF2V10GZKDgWF/VmAEsNWjCRB+A==} + /chai@4.3.10: + resolution: {integrity: sha512-0UXG04VuVbruMUYbJ6JctvH0YnC/4q3/AkT18q4NaITo91CUm0liMS9VqzT9vZhVQ/1eqPanMWjBM+Juhfb/9g==} engines: {node: '>=4'} dependencies: assertion-error: 1.1.0 - check-error: 1.0.2 + check-error: 1.0.3 deep-eql: 4.1.3 - get-func-name: 2.0.0 - loupe: 2.3.6 + get-func-name: 2.0.2 + loupe: 2.3.7 pathval: 1.1.1 type-detect: 4.0.8 dev: true @@ -5555,8 +5465,8 @@ packages: ansi-styles: 4.3.0 supports-color: 7.2.0 - /chalk@5.2.0: - resolution: {integrity: sha512-ree3Gqw/nazQAPuJJEy+avdl7QfZMcUvmHIKgEZkGL+xOBzRvup5Hxo6LHuMceSxOabuJLJm5Yp/92R9eMmMvA==} + /chalk@5.3.0: + resolution: {integrity: sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==} engines: {node: ^12.17.0 || ^14.13 || >=16.0.0} dev: true @@ -5589,7 +5499,7 @@ packages: path-case: 3.0.4 sentence-case: 3.0.4 snake-case: 3.0.4 - tslib: 2.6.1 + tslib: 2.6.2 dev: true /changesets-github-release@0.1.0: @@ -5601,8 +5511,10 @@ packages: resolution: {integrity: sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==} dev: true - /check-error@1.0.2: - resolution: {integrity: sha512-BrgHpW9NURQgzoNyjfq0Wu6VFO6D7IZEmJNdtgNqpzGG8RuNFHt2jQxWlAs4HMe119chBnv+34syEZtc6IhLtA==} + /check-error@1.0.3: + resolution: {integrity: sha512-iKEoDYaRmd1mxM90a2OEfWhjsjPpYPuQ+lMYsoxB126+t8fw7ySEO48nmDg5COTjxDI65/Y2OWpeEHk3ZOe8zg==} + dependencies: + get-func-name: 2.0.2 dev: true /chokidar@3.5.3: @@ -5617,7 +5529,8 @@ packages: normalize-path: 3.0.0 readdirp: 3.6.0 optionalDependencies: - fsevents: 2.3.2 + fsevents: 2.3.3 + dev: false /chownr@1.1.4: resolution: {integrity: sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==} @@ -5627,12 +5540,8 @@ packages: engines: {node: '>=10'} dev: false - /ci-info@2.0.0: - resolution: {integrity: sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==} - dev: true - - /ci-info@3.8.0: - resolution: {integrity: sha512-eXTggHWSooYhq49F2opQhuHWgzucfF2YgODK4e1566GQs5BIfP30B0oenwBJHfWxAs2fyPB1s7Mg949zLf61Yw==} + /ci-info@3.9.0: + resolution: {integrity: sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==} engines: {node: '>=8'} dev: true @@ -5642,18 +5551,6 @@ packages: inherits: 2.0.4 safe-buffer: 5.2.1 - /classic-level@1.3.0: - resolution: {integrity: sha512-iwFAJQYtqRTRM0F6L8h4JCt00ZSGdOyqh7yVrhhjrOpFhmBjNlRUey64MCiyo6UmQHMJ+No3c81nujPv+n9yrg==} - engines: {node: '>=12'} - requiresBuild: true - dependencies: - abstract-level: 1.0.3 - catering: 2.1.1 - module-error: 1.0.2 - napi-macros: 2.2.2 - node-gyp-build: 4.6.0 - dev: true - /clean-stack@2.2.0: resolution: {integrity: sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==} engines: {node: '>=6'} @@ -5671,24 +5568,31 @@ packages: dependencies: restore-cursor: 3.1.0 + /cli-cursor@4.0.0: + resolution: {integrity: sha512-VGtlMu3x/4DOtIUwEkRezxUZ2lBacNJCHash0N0WeZDBS+7Ux1dm3XWAgWYxLJFMMdOeXMHXorshEFhbMSGelg==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dependencies: + restore-cursor: 4.0.0 + dev: true + /cli-progress@3.12.0: resolution: {integrity: sha512-tRkV3HJ1ASwm19THiiLIXLO7Im7wlTuKnvkYaTkyoAPefqjNg7W7DHKUlGRxy9vxDvbyCYQkQozvptuMkGCg8A==} engines: {node: '>=4'} dependencies: string-width: 4.2.3 - /cli-spinners@2.9.0: - resolution: {integrity: sha512-4/aL9X3Wh0yiMQlE+eeRhWP6vclO3QRtw1JHKIT0FFUs5FjpFmESqtMvYZ0+lbzBw900b95mS0hohy+qn2VK/g==} + /cli-spinners@2.9.1: + resolution: {integrity: sha512-jHgecW0pxkonBJdrKsqxgRX9AcG+u/5k0Q7WPDfi8AogLAdwxEkyYYNWwZ5GvVFoFx2uiY1eNcSK00fh+1+FyQ==} engines: {node: '>=6'} - /cli-table3@0.5.1: - resolution: {integrity: sha512-7Qg2Jrep1S/+Q3EceiZtQcDPWxhAvBw+ERf1162v4sikJrvojMHFqXt8QIVha8UlH9rgU0BeWPytZ9/TzYqlUw==} - engines: {node: '>=6'} + /cli-table3@0.6.0: + resolution: {integrity: sha512-gnB85c3MGC7Nm9I/FkiasNBOKjOiO1RNuXXarQms37q4QMpWdlbBgD/VnOStA2faG1dpXMv31RFApjX1/QdgWQ==} + engines: {node: 10.* || >= 12.*} dependencies: object-assign: 4.1.1 - string-width: 2.1.1 + string-width: 4.2.3 optionalDependencies: - colors: 1.3.3 + colors: 1.4.0 dev: false /cli-table3@0.6.3: @@ -5737,14 +5641,6 @@ packages: wrap-ansi: 6.2.0 dev: true - /cliui@7.0.4: - resolution: {integrity: sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==} - dependencies: - string-width: 4.2.3 - strip-ansi: 6.0.1 - wrap-ansi: 7.0.0 - dev: true - /cliui@8.0.1: resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==} engines: {node: '>=12'} @@ -5784,8 +5680,8 @@ packages: resolution: {integrity: sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==} dev: true - /colors@1.3.3: - resolution: {integrity: sha512-mmGt/1pZqYRjMxB1axhTo16/snVZ5krrKkcmMeVKxzECMMXoCgnvTPp10QgHfcbQZw8Dq2jMNG6je4JlWU0gWg==} + /colors@1.4.0: + resolution: {integrity: sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==} engines: {node: '>=0.1.90'} dev: false @@ -5819,19 +5715,15 @@ packages: typical: 5.2.0 dev: true - /commander@10.0.1: - resolution: {integrity: sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==} - engines: {node: '>=14'} + /commander@11.1.0: + resolution: {integrity: sha512-yPVavfyCcRhmorC7rWlkHn15b4wDVgVmBA7kV4QVBsF7kv/9TKJAbAXVTxvTnwP8HHKjRCJDClKbciiYS7p0DQ==} + engines: {node: '>=16'} dev: true /commander@2.20.3: resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==} dev: false - /commander@3.0.2: - resolution: {integrity: sha512-Gar0ASD4BDyKC4hl4DwHqDrmvjoxWKZigVnAbn5H1owvm4CxCPdb0HQDehwNYMJpla5+M2tPmPARzhtYuwpHow==} - dev: true - /commander@8.3.0: resolution: {integrity: sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==} engines: {node: '>= 12'} @@ -5859,7 +5751,7 @@ packages: resolution: {integrity: sha512-I2hSBi7Vvs7BEuJDr5dDHfzb/Ruj3FyvFyh7KLilAjNQw3Be+xgqUBA2W6scVEcL0hL1dwPRtIqEPVUCKkSsyQ==} dependencies: no-case: 3.0.4 - tslib: 2.6.1 + tslib: 2.6.2 upper-case: 2.0.2 dev: true @@ -5872,13 +5764,12 @@ packages: resolution: {integrity: sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==} dev: true - /cookie@0.4.2: - resolution: {integrity: sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA==} - engines: {node: '>= 0.6'} + /convert-source-map@2.0.0: + resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==} dev: true - /core-js-pure@3.30.1: - resolution: {integrity: sha512-nXBEVpmUnNRhz83cHd9JRQC52cTMcuXAmR56+9dSMpRdpeA4I1PX6yjmhd71Eyc/wXNsdBdUDIj1QTIeZpU5Tg==} + /core-js-pure@3.33.0: + resolution: {integrity: sha512-FKSIDtJnds/YFIEaZ4HszRX7hkxGpNKM7FC9aJ9WLJbSd3lD4vOltFuVIBLR8asSx9frkTSqL0dw90SKQxgKrg==} requiresBuild: true dev: true @@ -5889,9 +5780,9 @@ packages: resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==} dev: false - /cosmiconfig@6.0.0: - resolution: {integrity: sha512-xb3ZL6+L8b9JLLCx3ZdoZy4+2ECphCMo2PwqgP1tlfVq6M6YReyzBJtvWWtbDSpNr9hn96pkCiZqUcFEc+54Qg==} - engines: {node: '>=8'} + /cosmiconfig@7.0.1: + resolution: {integrity: sha512-a1YWNUV2HwGimB7dU2s1wUMurNKjpx60HxBB6xUM8Re+2s1g1IIfJvFR0/iCF+XHdE0GMTKTuLR32UQff4TEyQ==} + engines: {node: '>=10'} dependencies: '@types/parse-json': 4.0.0 import-fresh: 3.3.0 @@ -5900,14 +5791,20 @@ packages: yaml: 1.10.2 dev: false - /cosmiconfig@8.2.0: - resolution: {integrity: sha512-3rTMnFJA1tCOPwRxtgF4wd7Ab2qvDbL8jX+3smjIbS4HlZBagTlpERbdN7iAbWlrfxE3M8c27kTwTawQ7st+OQ==} + /cosmiconfig@8.3.6(typescript@5.2.2): + resolution: {integrity: sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA==} engines: {node: '>=14'} + peerDependencies: + typescript: '>=4.9.5' + peerDependenciesMeta: + typescript: + optional: true dependencies: import-fresh: 3.3.0 js-yaml: 4.1.0 parse-json: 5.2.0 path-type: 4.0.0 + typescript: 5.2.2 dev: true /crc-32@1.2.2: @@ -5941,7 +5838,7 @@ packages: /cross-fetch@3.1.8: resolution: {integrity: sha512-cvA+JwZoU0Xq+h6WkMvAUqPEYy92Obet6UdKLfW60qn99ftItKjB5T+BkyWOFWe2pUyfQ+IJHmpOTznqk1M6Kg==} dependencies: - node-fetch: 2.6.12 + node-fetch: 2.7.0 transitivePeerDependencies: - encoding dev: true @@ -5969,7 +5866,7 @@ packages: busboy: 1.6.0 form-data-encoder: 1.9.0 formdata-node: 4.4.1 - node-fetch: 2.6.12 + node-fetch: 2.7.0 undici: 5.5.1 web-streams-polyfill: 3.2.1 transitivePeerDependencies: @@ -6032,7 +5929,7 @@ packages: resolution: {integrity: sha512-fnULvOpxnC5/Vg3NCiWelDsLiUc9bRwAPs/+LfTLNvetFCtCTN+yQz15C/fs4AwX1R9K5GLtLfn8QW+dWisaAw==} engines: {node: '>=0.11'} dependencies: - '@babel/runtime': 7.22.6 + '@babel/runtime': 7.23.2 dev: false /debounce@1.2.1: @@ -6082,10 +5979,6 @@ packages: /decamelize@1.2.0: resolution: {integrity: sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==} engines: {node: '>=0.10.0'} - - /decamelize@4.0.0: - resolution: {integrity: sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ==} - engines: {node: '>=10'} dev: true /deep-eql@4.1.3: @@ -6131,8 +6024,17 @@ packages: resolution: {integrity: sha512-a59VOT+oDy7vtAbLRCZwWgxu2BaCfd5Hk7wxJd48ei7I+nsg8Orlb9CLG0PMZienk9BSUKgeAqkO2+Lw+1+Ukw==} engines: {node: '>=6'} dependencies: - abstract-leveldown: 6.2.3 - inherits: 2.0.4 + abstract-leveldown: 6.2.3 + inherits: 2.0.4 + dev: true + + /define-data-property@1.1.1: + resolution: {integrity: sha512-E7uGkTzkk1d0ByLeSc6ZsFS79Axg+m1P/VsgYsxHgiuc3tFSj+MjMIwe90FC4lOAZzNBdY7kkO2P2wKdsQ1vgQ==} + engines: {node: '>= 0.4'} + dependencies: + get-intrinsic: 1.2.1 + gopd: 1.0.1 + has-property-descriptors: 1.0.0 dev: true /define-lazy-prop@2.0.0: @@ -6145,10 +6047,11 @@ packages: engines: {node: '>=12'} dev: true - /define-properties@1.2.0: - resolution: {integrity: sha512-xvqAVKGfT1+UAvPwKTVw/njhdQ8ZhXK4lI0bCIuCMrp2up9nPnaDftrLtmpTazqd1o+UY4zgzU+avtMbDP+ldA==} + /define-properties@1.2.1: + resolution: {integrity: sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==} engines: {node: '>= 0.4'} dependencies: + define-data-property: 1.1.1 has-property-descriptors: 1.0.0 object-keys: 1.1.1 dev: true @@ -6162,11 +6065,6 @@ packages: resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==} engines: {node: '>=0.4.0'} - /depd@2.0.0: - resolution: {integrity: sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==} - engines: {node: '>= 0.8'} - dev: true - /dependency-graph@0.11.0: resolution: {integrity: sha512-JeMq7fEshyepOWDfcfHK06N3MhyPhz++vtqWhMT5O9A3K42rdsEDpfdVqjaqaAhsw6a+ZqeDvQVtD0hFHQWrzg==} engines: {node: '>= 0.6.0'} @@ -6177,8 +6075,14 @@ packages: engines: {node: '>=8'} dev: true - /diff-sequences@29.4.3: - resolution: {integrity: sha512-ofrBgwpPhCD85kMKtE9RYFFq6OC1A89oW2vvgWZNCwxrUpRUILopY7lsYyMDSjc8g6U6aiO0Qubg6r4Wgt5ZnA==} + /detect-libc@1.0.3: + resolution: {integrity: sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg==} + engines: {node: '>=0.10'} + hasBin: true + dev: true + + /diff-sequences@29.6.3: + resolution: {integrity: sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dev: true @@ -6186,22 +6090,17 @@ packages: resolution: {integrity: sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==} engines: {node: '>=0.3.1'} - /diff@5.0.0: - resolution: {integrity: sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w==} - engines: {node: '>=0.3.1'} - dev: true - /dir-glob@3.0.1: resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==} engines: {node: '>=8'} dependencies: path-type: 4.0.0 - /dns-over-http-resolver@1.2.3(node-fetch@3.3.1): + /dns-over-http-resolver@1.2.3(node-fetch@3.3.2): resolution: {integrity: sha512-miDiVSI6KSNbi4SVifzO/reD8rMnxgrlnkrlkugOLQpWQTe2qMdHsZp5DmfKjxNE+/T3VAAYLQUZMv9SMr6+AA==} dependencies: debug: 4.3.4(supports-color@8.1.1) - native-fetch: 3.0.0(node-fetch@3.3.1) + native-fetch: 3.0.0(node-fetch@3.3.2) receptacle: 1.3.2 transitivePeerDependencies: - node-fetch @@ -6249,19 +6148,19 @@ packages: resolution: {integrity: sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==} dependencies: no-case: 3.0.4 - tslib: 2.6.1 + tslib: 2.6.2 dev: true - /dotenv-vault@1.25.0(@types/node@20.4.5)(typescript@5.1.6): + /dotenv-vault@1.25.0(@types/node@20.8.6)(typescript@5.2.2): resolution: {integrity: sha512-+3isN+iq0E5VE+pfluBcNYb2qFf/Zu5q44Neh3Bazl82vk86xdUbI2z2cYHgJq5bMgRW1kUOaGWsgXjYlGUhng==} engines: {node: '>=16'} hasBin: true dependencies: '@oclif/core': 1.26.2 - '@oclif/plugin-help': 5.2.14(@types/node@20.4.5)(typescript@5.1.6) - '@oclif/plugin-not-found': 2.3.34(@types/node@20.4.5)(typescript@5.1.6) - '@oclif/plugin-update': 3.1.28(@types/node@20.4.5)(typescript@5.1.6) - '@oclif/plugin-warn-if-update-available': 2.0.45(@types/node@20.4.5)(typescript@5.1.6) + '@oclif/plugin-help': 5.2.20(@types/node@20.8.6)(typescript@5.2.2) + '@oclif/plugin-not-found': 2.4.3(@types/node@20.8.6)(typescript@5.2.2) + '@oclif/plugin-update': 3.2.4(@types/node@20.8.6)(typescript@5.2.2) + '@oclif/plugin-warn-if-update-available': 2.1.1(@types/node@20.8.6)(typescript@5.2.2) axios: 0.27.2 chalk: 4.1.2 dotenv: 16.3.1 @@ -6299,10 +6198,12 @@ packages: jsbn: 0.1.1 safer-buffer: 2.1.2 - /ejs@2.7.4: - resolution: {integrity: sha512-7vmuyh5+kuUyJKePhQfRQBhXV5Ce+RnaeeQArKu1EAMpL3WbgMt5WG6uQZpEVvYSSsxMXRKOewtDk9RaTKXRlA==} + /ejs@3.1.6: + resolution: {integrity: sha512-9lt9Zse4hPucPkoP7FHDF0LQAlGyF9JVpnClFLFH3aSSbxmyoqINRpp/9wePWJTUl4KOQwRL72Iw3InHPDkoGw==} engines: {node: '>=0.10.0'} - requiresBuild: true + hasBin: true + dependencies: + jake: 10.8.7 dev: false /ejs@3.1.9: @@ -6319,8 +6220,8 @@ packages: encoding: 0.1.13 dev: false - /electron-to-chromium@1.4.473: - resolution: {integrity: sha512-aVfC8+440vGfl06l8HKKn8/PD5jRfSnLkTTD65EFvU46igbpQRri1gxSzW9/+TeUlwYzrXk1sw867T96zlyECA==} + /electron-to-chromium@1.4.555: + resolution: {integrity: sha512-k1wGC7UXDTyCWcONkEMRG/w6Jvrxi+SVEU+IeqUKUKjv2lGJ1b+jf1mqrloyxVTG5WYYjNQ+F6+Cb1fGrLvNcA==} dev: true /elliptic@6.5.4: @@ -6367,26 +6268,21 @@ packages: dependencies: once: 1.4.0 - /enquirer@2.3.4: - resolution: {integrity: sha512-pkYrrDZumL2VS6VBGDhqbajCM2xpkUNLuKfGPjfKaSIBKYopQbqEFyrOkRMIb2HDR/rO1kGhEt/5twBwtzKBXw==} + /enquirer@2.3.6: + resolution: {integrity: sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==} engines: {node: '>=8.6'} dependencies: - ansi-colors: 3.2.4 + ansi-colors: 4.1.3 dev: false - /enquirer@2.4.0: - resolution: {integrity: sha512-ehu97t6FTYK2I3ZYtnp0BZ9vt0mvEL/cnHBds7Ct6jo9VX1VIkiFhOvVRWh6eblQqd7KOoICIQV+syZ3neXO/Q==} + /enquirer@2.4.1: + resolution: {integrity: sha512-rRqJg/6gd538VHvR3PSrdRBb/1Vy2YfzHqzvbhGIQpDRKIa4FgV/54b5Q1xYSxOOwKvjXweS26E0Q+nAMwp2pQ==} engines: {node: '>=8.6'} dependencies: ansi-colors: 4.1.3 strip-ansi: 6.0.1 dev: true - /env-paths@2.2.1: - resolution: {integrity: sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==} - engines: {node: '>=6'} - dev: true - /err-code@3.0.1: resolution: {integrity: sha512-GiaH0KJUewYok+eeY05IIgjtAe4Yltygk9Wqp1V5yVWLdhf0hYZchRjNIT9bb0mSwRcIusT3cx7PJUf3zEIfUA==} dev: false @@ -6403,22 +6299,22 @@ packages: dependencies: is-arrayish: 0.2.1 - /es-abstract@1.22.1: - resolution: {integrity: sha512-ioRRcXMO6OFyRpyzV3kE1IIBd4WG5/kltnzdxSCqoP8CMGs/Li+M1uF5o7lOkZVFjDs+NLesthnF66Pg/0q0Lw==} + /es-abstract@1.22.2: + resolution: {integrity: sha512-YoxfFcDmhjOgWPWsV13+2RNjq1F6UQnfs+8TftwNqtzlmFzEXvlUwdrNrYeaizfjQzRMxkZ6ElWMOJIFKdVqwA==} engines: {node: '>= 0.4'} dependencies: array-buffer-byte-length: 1.0.0 - arraybuffer.prototype.slice: 1.0.1 + arraybuffer.prototype.slice: 1.0.2 available-typed-arrays: 1.0.5 call-bind: 1.0.2 es-set-tostringtag: 2.0.1 es-to-primitive: 1.2.1 - function.prototype.name: 1.1.5 + function.prototype.name: 1.1.6 get-intrinsic: 1.2.1 get-symbol-description: 1.0.0 globalthis: 1.0.3 gopd: 1.0.1 - has: 1.0.3 + has: 1.0.4 has-property-descriptors: 1.0.0 has-proto: 1.0.1 has-symbols: 1.0.3 @@ -6431,15 +6327,15 @@ packages: is-string: 1.0.7 is-typed-array: 1.1.12 is-weakref: 1.0.2 - object-inspect: 1.12.3 + object-inspect: 1.13.0 object-keys: 1.1.1 object.assign: 4.1.4 - regexp.prototype.flags: 1.5.0 - safe-array-concat: 1.0.0 + regexp.prototype.flags: 1.5.1 + safe-array-concat: 1.0.1 safe-regex-test: 1.0.0 - string.prototype.trim: 1.2.7 - string.prototype.trimend: 1.0.6 - string.prototype.trimstart: 1.0.6 + string.prototype.trim: 1.2.8 + string.prototype.trimend: 1.0.7 + string.prototype.trimstart: 1.0.7 typed-array-buffer: 1.0.0 typed-array-byte-length: 1.0.0 typed-array-byte-offset: 1.0.0 @@ -6453,14 +6349,14 @@ packages: engines: {node: '>= 0.4'} dependencies: get-intrinsic: 1.2.1 - has: 1.0.3 + has: 1.0.4 has-tostringtag: 1.0.0 dev: true /es-shim-unscopables@1.0.0: resolution: {integrity: sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w==} dependencies: - has: 1.0.3 + has: 1.0.4 dev: true /es-to-primitive@1.2.1: @@ -6507,34 +6403,64 @@ packages: ext: 1.7.0 dev: false - /esbuild@0.18.17: - resolution: {integrity: sha512-1GJtYnUxsJreHYA0Y+iQz2UEykonY66HNWOb0yXYZi9/kNrORUEHVg87eQsCtqh59PEJ5YVZJO98JHznMJSWjg==} + /esbuild@0.18.20: + resolution: {integrity: sha512-ceqxoedUrcayh7Y7ZX6NdbbDzGROiyVBgC4PriJThBKSVPWnnFHZAkfI1lJT8QFkOwH4qOS2SJkS4wvpGl8BpA==} + engines: {node: '>=12'} + hasBin: true + requiresBuild: true + optionalDependencies: + '@esbuild/android-arm': 0.18.20 + '@esbuild/android-arm64': 0.18.20 + '@esbuild/android-x64': 0.18.20 + '@esbuild/darwin-arm64': 0.18.20 + '@esbuild/darwin-x64': 0.18.20 + '@esbuild/freebsd-arm64': 0.18.20 + '@esbuild/freebsd-x64': 0.18.20 + '@esbuild/linux-arm': 0.18.20 + '@esbuild/linux-arm64': 0.18.20 + '@esbuild/linux-ia32': 0.18.20 + '@esbuild/linux-loong64': 0.18.20 + '@esbuild/linux-mips64el': 0.18.20 + '@esbuild/linux-ppc64': 0.18.20 + '@esbuild/linux-riscv64': 0.18.20 + '@esbuild/linux-s390x': 0.18.20 + '@esbuild/linux-x64': 0.18.20 + '@esbuild/netbsd-x64': 0.18.20 + '@esbuild/openbsd-x64': 0.18.20 + '@esbuild/sunos-x64': 0.18.20 + '@esbuild/win32-arm64': 0.18.20 + '@esbuild/win32-ia32': 0.18.20 + '@esbuild/win32-x64': 0.18.20 + dev: true + + /esbuild@0.19.4: + resolution: {integrity: sha512-x7jL0tbRRpv4QUyuDMjONtWFciygUxWaUM1kMX2zWxI0X2YWOt7MSA0g4UdeSiHM8fcYVzpQhKYOycZwxTdZkA==} engines: {node: '>=12'} hasBin: true requiresBuild: true optionalDependencies: - '@esbuild/android-arm': 0.18.17 - '@esbuild/android-arm64': 0.18.17 - '@esbuild/android-x64': 0.18.17 - '@esbuild/darwin-arm64': 0.18.17 - '@esbuild/darwin-x64': 0.18.17 - '@esbuild/freebsd-arm64': 0.18.17 - '@esbuild/freebsd-x64': 0.18.17 - '@esbuild/linux-arm': 0.18.17 - '@esbuild/linux-arm64': 0.18.17 - '@esbuild/linux-ia32': 0.18.17 - '@esbuild/linux-loong64': 0.18.17 - '@esbuild/linux-mips64el': 0.18.17 - '@esbuild/linux-ppc64': 0.18.17 - '@esbuild/linux-riscv64': 0.18.17 - '@esbuild/linux-s390x': 0.18.17 - '@esbuild/linux-x64': 0.18.17 - '@esbuild/netbsd-x64': 0.18.17 - '@esbuild/openbsd-x64': 0.18.17 - '@esbuild/sunos-x64': 0.18.17 - '@esbuild/win32-arm64': 0.18.17 - '@esbuild/win32-ia32': 0.18.17 - '@esbuild/win32-x64': 0.18.17 + '@esbuild/android-arm': 0.19.4 + '@esbuild/android-arm64': 0.19.4 + '@esbuild/android-x64': 0.19.4 + '@esbuild/darwin-arm64': 0.19.4 + '@esbuild/darwin-x64': 0.19.4 + '@esbuild/freebsd-arm64': 0.19.4 + '@esbuild/freebsd-x64': 0.19.4 + '@esbuild/linux-arm': 0.19.4 + '@esbuild/linux-arm64': 0.19.4 + '@esbuild/linux-ia32': 0.19.4 + '@esbuild/linux-loong64': 0.19.4 + '@esbuild/linux-mips64el': 0.19.4 + '@esbuild/linux-ppc64': 0.19.4 + '@esbuild/linux-riscv64': 0.19.4 + '@esbuild/linux-s390x': 0.19.4 + '@esbuild/linux-x64': 0.19.4 + '@esbuild/netbsd-x64': 0.19.4 + '@esbuild/openbsd-x64': 0.19.4 + '@esbuild/sunos-x64': 0.19.4 + '@esbuild/win32-arm64': 0.19.4 + '@esbuild/win32-ia32': 0.19.4 + '@esbuild/win32-x64': 0.19.4 dev: true /escalade@3.1.1: @@ -6550,17 +6476,17 @@ packages: resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} engines: {node: '>=10'} - /eslint-config-prettier@8.9.0(eslint@8.45.0): - resolution: {integrity: sha512-+sbni7NfVXnOpnRadUA8S28AUlsZt9GjgFvABIRL9Hkn8KqNzOp+7Lw4QWtrwn20KzU3wqu1QoOj2m+7rKRqkA==} + /eslint-config-prettier@9.0.0(eslint@8.51.0): + resolution: {integrity: sha512-IcJsTkJae2S35pRsRAwoCE+925rJJStOdkKnLVgtE+tEpqU0EVVM7OqrwxqgptKdX29NUwC82I5pXsGFIgSevw==} hasBin: true peerDependencies: eslint: '>=7.0.0' dependencies: - eslint: 8.45.0 + eslint: 8.51.0 dev: true - /eslint-plugin-prettier@5.0.0(eslint-config-prettier@8.9.0)(eslint@8.45.0)(prettier@3.0.0): - resolution: {integrity: sha512-AgaZCVuYDXHUGxj/ZGu1u8H8CYgDY3iG6w5kUFw4AzMVXzB7VvbKgYR4nATIN+OvUrghMbiDLeimVjVY5ilq3w==} + /eslint-plugin-prettier@5.0.1(eslint-config-prettier@9.0.0)(eslint@8.51.0)(prettier@3.0.3): + resolution: {integrity: sha512-m3u5RnR56asrwV/lDC4GHorlW75DsFfmUcjfCYylTUs85dBRnB7VM6xG8eCMJdeDRnppzmxZVf1GEPJvl1JmNg==} engines: {node: ^14.18.0 || >=16.0.0} peerDependencies: '@types/eslint': '>=8.0.0' @@ -6573,36 +6499,36 @@ packages: eslint-config-prettier: optional: true dependencies: - eslint: 8.45.0 - eslint-config-prettier: 8.9.0(eslint@8.45.0) - prettier: 3.0.0 + eslint: 8.51.0 + eslint-config-prettier: 9.0.0(eslint@8.51.0) + prettier: 3.0.3 prettier-linter-helpers: 1.0.0 synckit: 0.8.5 dev: true - /eslint-scope@7.2.1: - resolution: {integrity: sha512-CvefSOsDdaYYvxChovdrPo/ZGt8d5lrJWleAc1diXRKhHGiTYEI26cvo8Kle/wGnsizoCJjK73FMg1/IkIwiNA==} + /eslint-scope@7.2.2: + resolution: {integrity: sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: esrecurse: 4.3.0 estraverse: 5.3.0 dev: true - /eslint-visitor-keys@3.4.1: - resolution: {integrity: sha512-pZnmmLwYzf+kWaM/Qgrvpen51upAktaaiI01nsJD/Yr3lMOdNtq0cxkrrg16w64VtisN6okbs7Q8AfGqj4c9fA==} + /eslint-visitor-keys@3.4.3: + resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dev: true - /eslint@8.45.0: - resolution: {integrity: sha512-pd8KSxiQpdYRfYa9Wufvdoct3ZPQQuVuU5O6scNgMuOMYuxvH0IGaYK0wUFjo4UYYQQCUndlXiMbnxopwvvTiw==} + /eslint@8.51.0: + resolution: {integrity: sha512-2WuxRZBrlwnXi+/vFSJyjMqrNjtJqiasMzehF0shoLaW7DzS3/9Yvrmq5JiT66+pNjiX4UBnLDiKHcWAr/OInA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} hasBin: true dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.45.0) - '@eslint-community/regexpp': 4.6.2 - '@eslint/eslintrc': 2.1.0 - '@eslint/js': 8.44.0 - '@humanwhocodes/config-array': 0.11.10 + '@eslint-community/eslint-utils': 4.4.0(eslint@8.51.0) + '@eslint-community/regexpp': 4.9.1 + '@eslint/eslintrc': 2.1.2 + '@eslint/js': 8.51.0 + '@humanwhocodes/config-array': 0.11.11 '@humanwhocodes/module-importer': 1.0.1 '@nodelib/fs.walk': 1.2.8 ajv: 6.12.6 @@ -6611,8 +6537,8 @@ packages: debug: 4.3.4(supports-color@8.1.1) doctrine: 3.0.0 escape-string-regexp: 4.0.0 - eslint-scope: 7.2.1 - eslint-visitor-keys: 3.4.1 + eslint-scope: 7.2.2 + eslint-visitor-keys: 3.4.3 espree: 9.6.1 esquery: 1.5.0 esutils: 2.0.3 @@ -6620,7 +6546,7 @@ packages: file-entry-cache: 6.0.1 find-up: 5.0.0 glob-parent: 6.0.2 - globals: 13.20.0 + globals: 13.23.0 graphemer: 1.4.0 ignore: 5.2.4 imurmurhash: 0.1.4 @@ -6645,7 +6571,7 @@ packages: dependencies: acorn: 8.10.0 acorn-jsx: 5.3.2(acorn@8.10.0) - eslint-visitor-keys: 3.4.1 + eslint-visitor-keys: 3.4.3 dev: true /esprima@4.0.1: @@ -6697,14 +6623,14 @@ packages: resolution: {integrity: sha512-w8/4x1SGGzc+tO97TASLja6SLd3fRIK2tLVcV2Gx4IB21hE19atll5Cq9o3d0ZmAYC/8aw0ipieTSiekAea4SQ==} dependencies: '@types/pbkdf2': 3.1.0 - '@types/secp256k1': 4.0.3 + '@types/secp256k1': 4.0.4 blakejs: 1.2.1 browserify-aes: 1.2.0 bs58check: 2.1.2 create-hash: 1.2.0 create-hmac: 1.1.7 hash.js: 1.1.7 - keccak: 3.0.3 + keccak: 3.0.4 pbkdf2: 3.1.2 randombytes: 2.1.0 safe-buffer: 5.2.1 @@ -6712,16 +6638,16 @@ packages: secp256k1: 4.0.3 setimmediate: 1.0.5 - /ethereum-cryptography@1.2.0: - resolution: {integrity: sha512-6yFQC9b5ug6/17CQpCyE3k9eKBMdhyVjzUy1WkiuY/E4vj/SXDBbCw8QEIaXqf0Mf2SnY6RmpDcwlUmBSS0EJw==} + /ethereum-cryptography@2.1.2: + resolution: {integrity: sha512-Z5Ba0T0ImZ8fqXrJbpHcbpAvIswRte2wGNR/KePnu8GbbvgJ47lMxT/ZZPG6i9Jaht4azPDop4HaM00J0J59ug==} dependencies: - '@noble/hashes': 1.2.0 - '@noble/secp256k1': 1.7.1 - '@scure/bip32': 1.1.5 - '@scure/bip39': 1.1.1 + '@noble/curves': 1.1.0 + '@noble/hashes': 1.3.1 + '@scure/bip32': 1.3.1 + '@scure/bip39': 1.2.1 dev: true - /ethereum-waffle@4.0.10(@ensdomains/ens@0.4.5)(@ensdomains/resolver@0.2.4)(@ethersproject/abi@5.7.0)(@ethersproject/bytes@5.7.0)(@ethersproject/providers@5.7.2)(ethers@5.7.2)(typescript@5.1.6): + /ethereum-waffle@4.0.10(@ensdomains/ens@0.4.5)(@ensdomains/resolver@0.2.4)(@ethersproject/abi@5.7.0)(@ethersproject/providers@5.7.2)(ethers@5.7.2)(typescript@5.2.2): resolution: {integrity: sha512-iw9z1otq7qNkGDNcMoeNeLIATF9yKl1M8AIeu42ElfNBplq0e+5PeasQmm8ybY/elkZ1XyRO0JBQxQdVRb8bqQ==} engines: {node: '>=10.0'} hasBin: true @@ -6729,22 +6655,19 @@ packages: ethers: '*' dependencies: '@ethereum-waffle/chai': 4.0.10(@ensdomains/ens@0.4.5)(@ensdomains/resolver@0.2.4)(ethers@5.7.2) - '@ethereum-waffle/compiler': 4.0.3(@ethersproject/abi@5.7.0)(@ethersproject/bytes@5.7.0)(@ethersproject/providers@5.7.2)(ethers@5.7.2)(solc@0.8.15)(typechain@8.1.1)(typescript@5.1.6) + '@ethereum-waffle/compiler': 4.0.3(@ethersproject/abi@5.7.0)(@ethersproject/providers@5.7.2)(ethers@5.7.2)(solc@0.8.15)(typechain@8.3.2)(typescript@5.2.2) '@ethereum-waffle/mock-contract': 4.0.4(ethers@5.7.2) '@ethereum-waffle/provider': 4.0.5(@ensdomains/ens@0.4.5)(@ensdomains/resolver@0.2.4)(ethers@5.7.2) ethers: 5.7.2 solc: 0.8.15 - typechain: 8.1.1(typescript@5.1.6) + typechain: 8.3.2(typescript@5.2.2) transitivePeerDependencies: - '@ensdomains/ens' - '@ensdomains/resolver' - '@ethersproject/abi' - - '@ethersproject/bytes' - '@ethersproject/providers' - debug - encoding - - jasmine - - jest - supports-color - typescript dev: true @@ -6772,7 +6695,7 @@ packages: resolution: {integrity: sha512-y+82tEbyASO0K0X1/SRhbJJoAlfcvq8JbrG4a5cjrOks7HS/36efU/0j2flxCPOUM++HFahk33kr/ZxyC4vNuw==} engines: {node: '>=10.0.0'} dependencies: - '@types/bn.js': 5.1.1 + '@types/bn.js': 5.1.2 bn.js: 5.2.1 create-hash: 1.2.0 ethereum-cryptography: 0.1.3 @@ -6783,7 +6706,7 @@ packages: resolution: {integrity: sha512-SDl5kKrQAudFBUe5OJM9Ac6WmMyYmXX/6sTmLZ3ffG2eY6ZIGBes3pEDxNN6V72WyOw4CPD5RomKdsa8DAAwLg==} engines: {node: '>=10.0.0'} dependencies: - '@types/bn.js': 5.1.1 + '@types/bn.js': 5.1.2 bn.js: 5.2.1 create-hash: 1.2.0 ethereum-cryptography: 0.1.3 @@ -6849,28 +6772,16 @@ packages: resolution: {integrity: sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==} dev: true + /eventemitter3@5.0.1: + resolution: {integrity: sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==} + dev: true + /evp_bytestokey@1.0.3: resolution: {integrity: sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==} dependencies: md5.js: 1.3.5 safe-buffer: 5.2.1 - /execa@3.4.0: - resolution: {integrity: sha512-r9vdGQk4bmCuK1yKQu1KTwcT2zwfWdbdaXfCtAh+5nU/4fSX+JAb7vZGvI5naJrQlvONrEB20jeruESI69530g==} - engines: {node: ^8.12.0 || >=9.7.0} - dependencies: - cross-spawn: 7.0.3 - get-stream: 5.2.0 - human-signals: 1.1.1 - is-stream: 2.0.1 - merge-stream: 2.0.0 - npm-run-path: 4.0.1 - onetime: 5.1.2 - p-finally: 2.0.1 - signal-exit: 3.0.7 - strip-final-newline: 2.0.0 - dev: false - /execa@5.1.1: resolution: {integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==} engines: {node: '>=10'} @@ -6884,7 +6795,6 @@ packages: onetime: 5.1.2 signal-exit: 3.0.7 strip-final-newline: 2.0.0 - dev: true /execa@7.2.0: resolution: {integrity: sha512-UduyVP7TLB5IcAQl+OzLyLcS/l32W/GLg+AhHJ+ow40FOk2U3SAllPwR44v4vmdFwIWqpdwxxpQbF1n5ta9seA==} @@ -6901,6 +6811,21 @@ packages: strip-final-newline: 3.0.0 dev: true + /execa@8.0.1: + resolution: {integrity: sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==} + engines: {node: '>=16.17'} + dependencies: + cross-spawn: 7.0.3 + get-stream: 8.0.1 + human-signals: 5.0.0 + is-stream: 3.0.0 + merge-stream: 2.0.0 + npm-run-path: 5.1.0 + onetime: 6.0.0 + signal-exit: 4.1.0 + strip-final-newline: 3.0.0 + dev: true + /ext@1.7.0: resolution: {integrity: sha512-6hxeJYaL110a9b5TEJSj0gojyHQAmA2ch5Os+ySCiA1QGdS697XWY1pzsrSjqA9LDEEgdB/KypIlR59RcLuHYw==} dependencies: @@ -6947,8 +6872,8 @@ packages: resolution: {integrity: sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw==} dev: true - /fast-fifo@1.2.0: - resolution: {integrity: sha512-NcvQXt7Cky1cNau15FWy64IjuO8X0JijhTBBrJj1YlxlDfRkJXNaK9RFUjwpfDPzMdv7wB38jr53l9tkNLxnWg==} + /fast-fifo@1.3.2: + resolution: {integrity: sha512-/d9sfos4yxzpwkDkuN7k2SqFKtYNmCTzgfEpz82x34IM9/zc8KGxQoXg1liNC/izpRM/MBdt44Nmx41ZWqk+FQ==} dev: false /fast-glob@3.3.1: @@ -6972,7 +6897,6 @@ packages: resolution: {integrity: sha512-hKKNajm46uNmTlhHSyZkmToAc56uZJwYq7yrciZjqOxnlfQwERDQJmHPUp7m1m9wx8vgOe8IaCKZ5Kv2k1DdCQ==} dependencies: fastest-levenshtein: 1.0.16 - dev: true /fast-querystring@1.1.2: resolution: {integrity: sha512-g6KuKWmFXc0fID8WWH0jit4g0AGBoJhCkJMb1RmbsSEUNvQ+ZC8D6CUZ+GtF8nMzSPXnhiePyyqqipzNNEnHjg==} @@ -6987,7 +6911,6 @@ packages: /fastest-levenshtein@1.0.16: resolution: {integrity: sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg==} engines: {node: '>= 4.9.1'} - dev: true /fastq@1.15.0: resolution: {integrity: sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==} @@ -7013,7 +6936,7 @@ packages: object-assign: 4.1.1 promise: 7.3.1 setimmediate: 1.0.5 - ua-parser-js: 1.0.35 + ua-parser-js: 1.0.36 transitivePeerDependencies: - encoding dev: true @@ -7037,7 +6960,7 @@ packages: resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==} engines: {node: ^10.12.0 || >=12.0.0} dependencies: - flat-cache: 3.0.4 + flat-cache: 3.1.1 dev: true /filelist@1.0.4: @@ -7071,13 +6994,6 @@ packages: pinkie-promise: 2.0.1 dev: true - /find-up@2.1.0: - resolution: {integrity: sha512-NWzkk0jSJtTt08+FBFMvXoeZnOJD+jTtsRmBYbAIzJdX6l7dLgR7CTubCM5/eDdPUBvLCeVasP1brfVR/9/EZQ==} - engines: {node: '>=4'} - dependencies: - locate-path: 2.0.0 - dev: true - /find-up@4.1.0: resolution: {integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==} engines: {node: '>=8'} @@ -7101,25 +7017,21 @@ packages: pkg-dir: 4.2.0 dev: true - /flat-cache@3.0.4: - resolution: {integrity: sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==} - engines: {node: ^10.12.0 || >=12.0.0} + /flat-cache@3.1.1: + resolution: {integrity: sha512-/qM2b3LUIaIgviBQovTLvijfyOQXPtSRnRK26ksj2J7rzPIecePUIpJsZ4T02Qg+xiAEKIs5K8dsHEd+VaKa/Q==} + engines: {node: '>=12.0.0'} dependencies: - flatted: 3.2.7 + flatted: 3.2.9 + keyv: 4.5.4 rimraf: 3.0.2 dev: true - /flat@5.0.2: - resolution: {integrity: sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==} - hasBin: true - dev: true - - /flatted@3.2.7: - resolution: {integrity: sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==} + /flatted@3.2.9: + resolution: {integrity: sha512-36yxDn5H7OFZQla0/jFJmbIKTdZAQHngCedGxiMmpNfEZM0sdEeT+WczLQrjK6D7o2aiyLYDnkw0R3JK0Qv1RQ==} dev: true - /follow-redirects@1.15.2(debug@4.3.4): - resolution: {integrity: sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==} + /follow-redirects@1.15.3(debug@4.3.4): + resolution: {integrity: sha512-1VzOtuEM8pC9SFU1E+8KfTjZyMztRsgEfwQl44z8A25uy13jSzTj6dyK2Df52iV0vgHCfBwLhDWevLn95w5v6Q==} engines: {node: '>=4.0'} peerDependencies: debug: '*' @@ -7140,7 +7052,7 @@ packages: engines: {node: '>=14'} dependencies: cross-spawn: 7.0.3 - signal-exit: 4.0.2 + signal-exit: 4.1.0 dev: true /forever-agent@0.6.1: @@ -7167,15 +7079,6 @@ packages: mime-types: 2.1.35 dev: false - /form-data@3.0.1: - resolution: {integrity: sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg==} - engines: {node: '>= 6'} - dependencies: - asynckit: 0.4.0 - combined-stream: 1.0.8 - mime-types: 2.1.35 - dev: true - /form-data@4.0.0: resolution: {integrity: sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==} engines: {node: '>= 6'} @@ -7200,10 +7103,6 @@ packages: fetch-blob: 3.2.0 dev: false - /fp-ts@1.19.3: - resolution: {integrity: sha512-H5KQDspykdHuztLTg+ajGN0Z2qUjcEf3Ybxc6hLt0k7/zPkn29XnKnxlBPyW2XIddWrGaJBzBl4VLYOtk39yZg==} - dev: true - /fs-constants@1.0.0: resolution: {integrity: sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==} @@ -7244,9 +7143,8 @@ packages: jsonfile: 6.1.0 universalify: 2.0.0 - /fs-jetpack@2.4.0: - resolution: {integrity: sha512-S/o9Dd7K9A7gicVU32eT8G0kHcmSu0rCVdP79P0MWInKFb8XpTc8Syhoo66k9no+HDshtlh4pUJTws8X+8fdFQ==} - engines: {node: '>=4'} + /fs-jetpack@4.3.1: + resolution: {integrity: sha512-dbeOK84F6BiQzk2yqqCVwCPWTxAvVGJ3fMQc6E2wuEohS28mR6yHngbrKuVCK1KHRx/ccByDylqu4H5PCP2urQ==} dependencies: minimatch: 3.1.2 rimraf: 2.7.1 @@ -7262,23 +7160,23 @@ packages: /fs.realpath@1.0.0: resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} - /fsevents@2.3.2: - resolution: {integrity: sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==} + /fsevents@2.3.3: + resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} os: [darwin] requiresBuild: true optional: true - /function-bind@1.1.1: - resolution: {integrity: sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==} + /function-bind@1.1.2: + resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} - /function.prototype.name@1.1.5: - resolution: {integrity: sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA==} + /function.prototype.name@1.1.6: + resolution: {integrity: sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==} engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.2 - define-properties: 1.2.0 - es-abstract: 1.22.1 + define-properties: 1.2.1 + es-abstract: 1.22.2 functions-have-names: 1.2.3 dev: true @@ -7330,15 +7228,15 @@ packages: engines: {node: 6.* || 8.* || >= 10.*} dev: true - /get-func-name@2.0.0: - resolution: {integrity: sha512-Hm0ixYtaSZ/V7C8FJrtZIuBBI+iSgL+1Aq82zSu8VQNB4S3Gk8e7Qs3VwBDJAhmRZcFqkl3tQu36g/Foh5I5ig==} + /get-func-name@2.0.2: + resolution: {integrity: sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ==} dev: true /get-intrinsic@1.2.1: resolution: {integrity: sha512-2DcsyfABl+gVHEfCOaTrWgyt+tb6MSEGmKq+kI5HwLbIYgjgmMcV8KQ41uaKz1xxUcn9tJtgFbQUEVcEbd0FYw==} dependencies: - function-bind: 1.1.1 - has: 1.0.3 + function-bind: 1.1.2 + has: 1.0.4 has-proto: 1.0.1 has-symbols: 1.0.3 @@ -7360,16 +7258,13 @@ packages: engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} dev: true - /get-stream@5.2.0: - resolution: {integrity: sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==} - engines: {node: '>=8'} - dependencies: - pump: 3.0.0 - dev: false - /get-stream@6.0.1: resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==} engines: {node: '>=10'} + + /get-stream@8.0.1: + resolution: {integrity: sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==} + engines: {node: '>=16'} dev: true /get-symbol-description@1.0.0: @@ -7398,15 +7293,15 @@ packages: is-glob: 4.0.3 dev: true - /glob@10.3.3: - resolution: {integrity: sha512-92vPiMb/iqpmEgsOoIDvTjc50wf9CCCvMzsi6W0JLPeUKE8TWP1a73PgqSrqy7iAZxaSD1YdzU7QZR5LF51MJw==} + /glob@10.3.10: + resolution: {integrity: sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==} engines: {node: '>=16 || 14 >=14.17'} hasBin: true dependencies: foreground-child: 3.1.1 - jackspeak: 2.2.2 + jackspeak: 2.3.6 minimatch: 9.0.3 - minipass: 7.0.2 + minipass: 7.0.4 path-scurry: 1.10.1 dev: true @@ -7430,7 +7325,6 @@ packages: minimatch: 3.1.2 once: 1.4.0 path-is-absolute: 1.0.1 - dev: true /glob@7.2.3: resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} @@ -7442,8 +7336,8 @@ packages: once: 1.4.0 path-is-absolute: 1.0.1 - /glob@9.3.4: - resolution: {integrity: sha512-qaSc49hojMOv1EPM4EuyITjDSgSKI0rthoHnvE81tcOi1SCVndHko7auqxdQ14eiQG2NDBJBE86+2xIrbIvrbA==} + /glob@9.3.5: + resolution: {integrity: sha512-e1LleDykUz2Iu+MTYdkSsuWX8lvAjAcs0Xef0lNIu0S2wOAzuTxCJtcd9S3cijlwYF18EsU3rzb8jPVobxDh9Q==} engines: {node: '>=16 || 14 >=14.17'} dependencies: fs.realpath: 1.0.0 @@ -7457,8 +7351,8 @@ packages: engines: {node: '>=4'} dev: true - /globals@13.20.0: - resolution: {integrity: sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ==} + /globals@13.23.0: + resolution: {integrity: sha512-XAmF0RjlrjY23MA51q3HltdlGxUpXPvg0GioKiD9X6HD28iMjo2dKC8Vqwm7lne4GNr78+RHTfliktR6ZH09wA==} engines: {node: '>=8'} dependencies: type-fest: 0.20.2 @@ -7468,7 +7362,7 @@ packages: resolution: {integrity: sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==} engines: {node: '>= 0.4'} dependencies: - define-properties: 1.2.0 + define-properties: 1.2.1 dev: true /globby@11.1.0: @@ -7482,6 +7376,44 @@ packages: merge2: 1.4.1 slash: 3.0.0 + /gluegun@5.1.2(debug@4.3.4): + resolution: {integrity: sha512-Cwx/8S8Z4YQg07a6AFsaGnnnmd8mN17414NcPS3OoDtZRwxgsvwRNJNg69niD6fDa8oNwslCG0xH7rEpRNNE/g==} + hasBin: true + dependencies: + apisauce: 2.1.6(debug@4.3.4) + app-module-path: 2.2.0 + cli-table3: 0.6.0 + colors: 1.4.0 + cosmiconfig: 7.0.1 + cross-spawn: 7.0.3 + ejs: 3.1.6 + enquirer: 2.3.6 + execa: 5.1.1 + fs-jetpack: 4.3.1 + lodash.camelcase: 4.3.0 + lodash.kebabcase: 4.1.1 + lodash.lowercase: 4.3.0 + lodash.lowerfirst: 4.3.1 + lodash.pad: 4.5.1 + lodash.padend: 4.6.1 + lodash.padstart: 4.6.1 + lodash.repeat: 4.1.0 + lodash.snakecase: 4.1.1 + lodash.startcase: 4.4.0 + lodash.trim: 4.5.1 + lodash.trimend: 4.5.1 + lodash.trimstart: 4.5.1 + lodash.uppercase: 4.3.0 + lodash.upperfirst: 4.3.1 + ora: 4.0.2 + pluralize: 8.0.0 + semver: 7.3.5 + which: 2.0.2 + yargs-parser: 21.1.1 + transitivePeerDependencies: + - debug + dev: false + /gopd@1.0.1: resolution: {integrity: sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==} dependencies: @@ -7499,8 +7431,8 @@ packages: resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==} dev: true - /graphql-config@5.0.2(@types/node@20.4.5)(graphql@16.7.1): - resolution: {integrity: sha512-7TPxOrlbiG0JplSZYCyxn2XQtqVhXomEjXUmWJVSS5ET1nPhOJSsIb/WTwqWhcYX6G0RlHXSj9PLtGTKmxLNGg==} + /graphql-config@5.0.3(@types/node@20.8.6)(graphql@16.8.1)(typescript@5.2.2): + resolution: {integrity: sha512-BNGZaoxIBkv9yy6Y7omvsaBUHOzfFcII3UN++tpH8MGOKFPFkCPZuwx09ggANMt8FgyWP1Od8SWPmrUEZca4NQ==} engines: {node: '>= 16.0.0'} peerDependencies: cosmiconfig-toml-loader: ^1.0.0 @@ -7509,82 +7441,83 @@ packages: cosmiconfig-toml-loader: optional: true dependencies: - '@graphql-tools/graphql-file-loader': 8.0.0(graphql@16.7.1) - '@graphql-tools/json-file-loader': 8.0.0(graphql@16.7.1) - '@graphql-tools/load': 8.0.0(graphql@16.7.1) - '@graphql-tools/merge': 9.0.0(graphql@16.7.1) - '@graphql-tools/url-loader': 8.0.0(@types/node@20.4.5)(graphql@16.7.1) - '@graphql-tools/utils': 10.0.4(graphql@16.7.1) - cosmiconfig: 8.2.0 - graphql: 16.7.1 - jiti: 1.19.1 + '@graphql-tools/graphql-file-loader': 8.0.0(graphql@16.8.1) + '@graphql-tools/json-file-loader': 8.0.0(graphql@16.8.1) + '@graphql-tools/load': 8.0.0(graphql@16.8.1) + '@graphql-tools/merge': 9.0.0(graphql@16.8.1) + '@graphql-tools/url-loader': 8.0.0(@types/node@20.8.6)(graphql@16.8.1) + '@graphql-tools/utils': 10.0.7(graphql@16.8.1) + cosmiconfig: 8.3.6(typescript@5.2.2) + graphql: 16.8.1 + jiti: 1.20.0 minimatch: 4.2.3 string-env-interpolation: 1.0.1 - tslib: 2.6.1 + tslib: 2.6.2 transitivePeerDependencies: - '@types/node' - bufferutil - encoding + - typescript - utf-8-validate dev: true - /graphql-import-node@0.0.5(graphql@16.7.1): + /graphql-import-node@0.0.5(graphql@16.8.1): resolution: {integrity: sha512-OXbou9fqh9/Lm7vwXT0XoRN9J5+WCYKnbiTalgFDvkQERITRmcfncZs6aVABedd5B85yQU5EULS4a5pnbpuI0Q==} peerDependencies: graphql: '*' dependencies: - graphql: 16.7.1 + graphql: 16.8.1 dev: false - /graphql-request@6.1.0(graphql@16.7.1): + /graphql-request@6.1.0(graphql@16.8.1): resolution: {integrity: sha512-p+XPfS4q7aIpKVcgmnZKhMNqhltk20hfXtkaIkTfjjmiKMJ5xrt5c743cL03y/K7y1rg3WrIC49xGiEQ4mxdNw==} peerDependencies: graphql: 14 - 16 dependencies: - '@graphql-typed-document-node/core': 3.2.0(graphql@16.7.1) + '@graphql-typed-document-node/core': 3.2.0(graphql@16.8.1) cross-fetch: 3.1.8 - graphql: 16.7.1 + graphql: 16.8.1 transitivePeerDependencies: - encoding dev: true - /graphql-tag@2.12.6(graphql@16.7.1): + /graphql-tag@2.12.6(graphql@16.8.1): resolution: {integrity: sha512-FdSNcu2QQcWnM2VNvSCCDCVS5PpPqpzgFT8+GXzqJuoDd0CBncxCY278u4mhRO7tMgo2JjgJA5aZ+nWSQ/Z+xg==} engines: {node: '>=10'} peerDependencies: graphql: ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 dependencies: - graphql: 16.7.1 - tslib: 2.6.1 + graphql: 16.8.1 + tslib: 2.6.2 dev: true - /graphql-ws@5.14.0(graphql@16.7.1): - resolution: {integrity: sha512-itrUTQZP/TgswR4GSSYuwWUzrE/w5GhbwM2GX3ic2U7aw33jgEsayfIlvaj7/GcIvZgNMzsPTrE5hqPuFUiE5g==} + /graphql-ws@5.14.1(graphql@16.8.1): + resolution: {integrity: sha512-aqkls1espsygP1PfkAuuLIV96IbztQ6EaADse97pw8wRIMT3+AL/OYfS8V2iCRkc0gzckitoDRGCQEdnySggiA==} engines: {node: '>=10'} peerDependencies: graphql: '>=0.11 <=16' dependencies: - graphql: 16.7.1 + graphql: 16.8.1 dev: true - /graphql-yoga@4.0.3(graphql@16.7.1): + /graphql-yoga@4.0.3(graphql@16.8.1): resolution: {integrity: sha512-MP+v+yxCqM3lXg95vaA+kXjyRvyRxHUlgZryTecN7ugzEEnyQKKu8JBXA4ziEuLi3liRriyjCAyV4pqFzhHujA==} engines: {node: '>=16.0.0'} peerDependencies: graphql: ^15.2.0 || ^16.0.0 dependencies: - '@envelop/core': 4.0.0 - '@graphql-tools/executor': 1.1.0(graphql@16.7.1) - '@graphql-tools/schema': 10.0.0(graphql@16.7.1) - '@graphql-tools/utils': 10.0.4(graphql@16.7.1) + '@envelop/core': 4.0.3 + '@graphql-tools/executor': 1.2.0(graphql@16.8.1) + '@graphql-tools/schema': 10.0.0(graphql@16.8.1) + '@graphql-tools/utils': 10.0.7(graphql@16.8.1) '@graphql-yoga/logger': 1.0.0 '@graphql-yoga/subscription': 4.0.0 - '@whatwg-node/fetch': 0.9.9 - '@whatwg-node/server': 0.9.5 + '@whatwg-node/fetch': 0.9.13 + '@whatwg-node/server': 0.9.14 dset: 3.1.2 - graphql: 16.7.1 - lru-cache: 10.0.0 - tslib: 2.6.1 + graphql: 16.8.1 + lru-cache: 10.0.1 + tslib: 2.6.2 dev: true /graphql@15.5.0: @@ -7592,8 +7525,8 @@ packages: engines: {node: '>= 10.x'} dev: false - /graphql@16.7.1: - resolution: {integrity: sha512-DRYR9tf+UGU0KOsMcKAlXeFfX89UiiIZ0dRU3mR0yJfu6OjZqUcp68NnFLnqQU5RexygFoDy1EW+ccOYcPfmHg==} + /graphql@16.8.1: + resolution: {integrity: sha512-59LZHPdGZVh695Ud9lRzPBVTtlX9ZCV150Er2W43ro37wVof0ctenSaskPPjN7lVTIN8mSZt8PHUNKZuNQUuxw==} engines: {node: ^12.22.0 || ^14.16.0 || ^16.0.0 || >=17.0.0} /har-schema@2.0.0: @@ -7613,76 +7546,6 @@ packages: engines: {node: '>=6'} dev: true - /hardhat@2.17.0(ts-node@10.9.1)(typescript@5.1.6): - resolution: {integrity: sha512-CaEGa13tkJNe2/rdaBiive4pmdNShwxvdWVhr1zfb6aVpRhQt9VNO0l/UIBt/zzajz38ZFjvhfM2bj8LDXo9gw==} - engines: {node: '>=16.0.0'} - hasBin: true - peerDependencies: - ts-node: '*' - typescript: '*' - peerDependenciesMeta: - ts-node: - optional: true - typescript: - optional: true - dependencies: - '@ethersproject/abi': 5.7.0 - '@metamask/eth-sig-util': 4.0.1 - '@nomicfoundation/ethereumjs-block': 5.0.1 - '@nomicfoundation/ethereumjs-blockchain': 7.0.1 - '@nomicfoundation/ethereumjs-common': 4.0.1 - '@nomicfoundation/ethereumjs-evm': 2.0.1 - '@nomicfoundation/ethereumjs-rlp': 5.0.1 - '@nomicfoundation/ethereumjs-statemanager': 2.0.1 - '@nomicfoundation/ethereumjs-trie': 6.0.1 - '@nomicfoundation/ethereumjs-tx': 5.0.1 - '@nomicfoundation/ethereumjs-util': 9.0.1 - '@nomicfoundation/ethereumjs-vm': 7.0.1 - '@nomicfoundation/solidity-analyzer': 0.1.1 - '@sentry/node': 5.30.0 - '@types/bn.js': 5.1.1 - '@types/lru-cache': 5.1.1 - abort-controller: 3.0.0 - adm-zip: 0.4.16 - aggregate-error: 3.1.0 - ansi-escapes: 4.3.2 - chalk: 2.4.2 - chokidar: 3.5.3 - ci-info: 2.0.0 - debug: 4.3.4(supports-color@8.1.1) - enquirer: 2.4.0 - env-paths: 2.2.1 - ethereum-cryptography: 1.2.0 - ethereumjs-abi: 0.6.8 - find-up: 2.1.0 - fp-ts: 1.19.3 - fs-extra: 7.0.1 - glob: 7.2.0 - immutable: 4.3.1 - io-ts: 1.10.4 - keccak: 3.0.3 - lodash: 4.17.21 - mnemonist: 0.38.5 - mocha: 10.2.0 - p-map: 4.0.0 - raw-body: 2.5.2 - resolve: 1.17.0 - semver: 6.3.1 - solc: 0.7.3(debug@4.3.4) - source-map-support: 0.5.21 - stacktrace-parser: 0.1.10 - ts-node: 10.9.1(@types/node@20.4.5)(typescript@5.1.6) - tsort: 0.0.1 - typescript: 5.1.6 - undici: 5.22.1 - uuid: 8.3.2 - ws: 7.5.9 - transitivePeerDependencies: - - bufferutil - - supports-color - - utf-8-validate - dev: true - /has-bigints@1.0.2: resolution: {integrity: sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==} dev: true @@ -7716,11 +7579,9 @@ packages: has-symbols: 1.0.3 dev: true - /has@1.0.3: - resolution: {integrity: sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==} + /has@1.0.4: + resolution: {integrity: sha512-qdSAmqLF6209RFj4VVItywPMbm3vWylknmB3nvNiUIs72xAimcM8nVYxYr7ncvZq5qzk9MKIZR8ijqD/1QuYjQ==} engines: {node: '>= 0.4.0'} - dependencies: - function-bind: 1.1.1 /hash-base@3.1.0: resolution: {integrity: sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA==} @@ -7736,16 +7597,11 @@ packages: inherits: 2.0.4 minimalistic-assert: 1.0.1 - /he@1.2.0: - resolution: {integrity: sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==} - hasBin: true - dev: true - /header-case@2.0.4: resolution: {integrity: sha512-H/vuk5TEEVZwrR0lp2zed9OCo1uAILMlx0JEMgC26rzyJJ3N1v6XkwHHXJQdR2doSjcGPM6OKPYoJgf0plJ11Q==} dependencies: capital-case: 1.0.4 - tslib: 2.6.1 + tslib: 2.6.2 dev: true /hmac-drbg@1.0.1: @@ -7783,17 +7639,6 @@ packages: - supports-color dev: true - /http-errors@2.0.0: - resolution: {integrity: sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==} - engines: {node: '>= 0.8'} - dependencies: - depd: 2.0.0 - inherits: 2.0.4 - setprototypeof: 1.2.0 - statuses: 2.0.1 - toidentifier: 1.0.1 - dev: true - /http-proxy-agent@7.0.0: resolution: {integrity: sha512-+ZT+iBxVUQ1asugqnD6oWoRiS25AkjNfG085dKJGtGxkdwLQrMKU5wJr2bOOFAXzKcTuqq+7fZlTMgG3SRfIYQ==} engines: {node: '>= 14'} @@ -7809,7 +7654,7 @@ packages: engines: {node: '>=8.0.0'} dependencies: eventemitter3: 4.0.7 - follow-redirects: 1.15.2(debug@4.3.4) + follow-redirects: 1.15.3(debug@4.3.4) requires-port: 1.0.0 transitivePeerDependencies: - debug @@ -7829,18 +7674,8 @@ packages: jsprim: 1.4.2 sshpk: 1.17.0 - /https-proxy-agent@5.0.1: - resolution: {integrity: sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==} - engines: {node: '>= 6'} - dependencies: - agent-base: 6.0.2 - debug: 4.3.4(supports-color@8.1.1) - transitivePeerDependencies: - - supports-color - dev: true - - /https-proxy-agent@7.0.1: - resolution: {integrity: sha512-Eun8zV0kcYS1g19r78osiQLEFIRspRUDd9tIfBCTBPBeMieF/EsJNL8VI3xOIdYRDEkjQnqOYPsZ2DsWsVsFwQ==} + /https-proxy-agent@7.0.2: + resolution: {integrity: sha512-NmLNjm6ucYwtcUmL7JQC1ZQ57LmHP4lT15FQ8D61nak1rO6DH+fz5qNK2Ap5UN4ZapYICE3/0KodcLYSPsPbaA==} engines: {node: '>= 14'} dependencies: agent-base: 7.1.0 @@ -7853,21 +7688,20 @@ packages: resolution: {integrity: sha512-UNopramDEhHJD+VR+ehk8rOslwSfByxPIZyJRfV739NDhN5LF1fa1MqnzKm2lGTQRjNrjK19Q5fhkgIfjlVUKw==} dev: true - /human-signals@1.1.1: - resolution: {integrity: sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw==} - engines: {node: '>=8.12.0'} - dev: false - /human-signals@2.1.0: resolution: {integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==} engines: {node: '>=10.17.0'} - dev: true /human-signals@4.3.1: resolution: {integrity: sha512-nZXjEF2nbo7lIw3mgYjItAfgQXog3OjJogSbKa2CQIIvSGWcKgeJnQlNXip6NglNzYH45nSRiEVimMvYL8DDqQ==} engines: {node: '>=14.18.0'} dev: true + /human-signals@5.0.0: + resolution: {integrity: sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==} + engines: {node: '>=16.17.0'} + dev: true + /husky@8.0.3: resolution: {integrity: sha512-+dQSyqPh4x1hlO1swXBiNb2HzTDN1I2IGLQx1GrBuiqFJfoMrnZWwVmatvSiO+Iz8fBUnf+lekwNo4c2LlXItg==} engines: {node: '>=14'} @@ -7923,10 +7757,6 @@ packages: resolution: {integrity: sha512-7WYV7Q5BTs0nlQm7tl92rDYYoyELLKHoDMBKhrxEoiV4mrfVdRz8hzPiYOzH7yWjzoVEamxRuAqhxL2PLRwZYQ==} dev: false - /immutable@4.3.1: - resolution: {integrity: sha512-lj9cnmB/kVS0QHsJnYKD1uo3o39nrbKxszjnqS9Fr6NB7bZzW45U6WSGBPKXDL/CvDKqDNPA4r3DoDQ8GTxo2A==} - dev: true - /import-fresh@3.3.0: resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==} engines: {node: '>=6'} @@ -7957,8 +7787,8 @@ packages: /inherits@2.0.4: resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} - /inquirer@8.2.5: - resolution: {integrity: sha512-QAgPDQMEgrDssk1XiwwHoOGYF9BAbUcc1+j+FhEvaOt8/cKRqyLn0U5qA6F74fGhTMGxf92pOvPBeh29jQJDTQ==} + /inquirer@8.2.6: + resolution: {integrity: sha512-M1WuAmb7pn9zdFRtQYk26ZBoY043Sse0wVDdk4Bppr+JOXyQYybdtvK+l9wUibhtjdjvtoiNy8tk+EgsYIUqKg==} engines: {node: '>=12.0.0'} dependencies: ansi-escapes: 4.3.2 @@ -7975,7 +7805,7 @@ packages: string-width: 4.2.3 strip-ansi: 6.0.1 through: 2.3.8 - wrap-ansi: 7.0.0 + wrap-ansi: 6.2.0 dev: true /interface-datastore@6.1.1: @@ -7995,7 +7825,7 @@ packages: engines: {node: '>= 0.4'} dependencies: get-intrinsic: 1.2.1 - has: 1.0.3 + has: 1.0.4 side-channel: 1.0.4 dev: true @@ -8010,30 +7840,24 @@ packages: engines: {node: '>=0.10.0'} dev: true - /io-ts@1.10.4: - resolution: {integrity: sha512-b23PteSnYXSONJ6JQXRAlvJhuw8KOtkqa87W4wDtvMrud/DTJd5X+NpOOI+O/zZwVq6v0VLAaJ+1EDViKEuN9g==} - dependencies: - fp-ts: 1.19.3 - dev: true - /ip-regex@4.3.0: resolution: {integrity: sha512-B9ZWJxHHOHUhUjCPrMpLD4xEq35bUTClHM1S6CBU5ixQnkZmwipwgc96vAd7AAGM9TGHvJR+Uss+/Ak6UphK+Q==} engines: {node: '>=8'} dev: false - /ipfs-core-types@0.9.0(node-fetch@3.3.1): + /ipfs-core-types@0.9.0(node-fetch@3.3.2): resolution: {integrity: sha512-VJ8vJSHvI1Zm7/SxsZo03T+zzpsg8pkgiIi5hfwSJlsrJ1E2v68QPlnLshGHUSYw89Oxq0IbETYl2pGTFHTWfg==} deprecated: js-IPFS has been deprecated in favour of Helia - please see https://github.com/ipfs/js-ipfs/issues/4336 for details dependencies: interface-datastore: 6.1.1 - multiaddr: 10.0.1(node-fetch@3.3.1) + multiaddr: 10.0.1(node-fetch@3.3.2) multiformats: 9.9.0 transitivePeerDependencies: - node-fetch - supports-color dev: false - /ipfs-core-utils@0.13.0(node-fetch@3.3.1): + /ipfs-core-utils@0.13.0(node-fetch@3.3.2): resolution: {integrity: sha512-HP5EafxU4/dLW3U13CFsgqVO5Ika8N4sRSIb/dTg16NjLOozMH31TXV0Grtu2ZWo1T10ahTzMvrfT5f4mhioXw==} deprecated: js-IPFS has been deprecated in favour of Helia - please see https://github.com/ipfs/js-ipfs/issues/4336 for details dependencies: @@ -8042,7 +7866,7 @@ packages: browser-readablestream-to-it: 1.0.3 debug: 4.3.4(supports-color@8.1.1) err-code: 3.0.1 - ipfs-core-types: 0.9.0(node-fetch@3.3.1) + ipfs-core-types: 0.9.0(node-fetch@3.3.2) ipfs-unixfs: 6.0.9 ipfs-utils: 9.0.14 it-all: 1.0.6 @@ -8050,11 +7874,11 @@ packages: it-peekable: 1.0.3 it-to-stream: 1.0.0 merge-options: 3.0.4 - multiaddr: 10.0.1(node-fetch@3.3.1) - multiaddr-to-uri: 8.0.0(node-fetch@3.3.1) + multiaddr: 10.0.1(node-fetch@3.3.2) + multiaddr-to-uri: 8.0.0(node-fetch@3.3.2) multiformats: 9.9.0 nanoid: 3.3.6 - parse-duration: 1.0.3 + parse-duration: 1.1.0 timeout-abort-controller: 2.0.0 uint8arrays: 3.1.1 transitivePeerDependencies: @@ -8063,9 +7887,10 @@ packages: - supports-color dev: false - /ipfs-http-client@55.0.0(node-fetch@3.3.1): + /ipfs-http-client@55.0.0(node-fetch@3.3.2): resolution: {integrity: sha512-GpvEs7C7WL9M6fN/kZbjeh4Y8YN7rY8b18tVWZnKxRsVwM25cIFrRI8CwNt3Ugin9yShieI3i9sPyzYGMrLNnQ==} engines: {node: '>=14.0.0', npm: '>=3.0.0'} + deprecated: js-IPFS has been deprecated in favour of Helia - please see https://github.com/ipfs/js-ipfs/issues/4336 for details dependencies: '@ipld/dag-cbor': 7.0.3 '@ipld/dag-json': 8.0.11 @@ -8074,16 +7899,16 @@ packages: any-signal: 2.1.2 debug: 4.3.4(supports-color@8.1.1) err-code: 3.0.1 - ipfs-core-types: 0.9.0(node-fetch@3.3.1) - ipfs-core-utils: 0.13.0(node-fetch@3.3.1) + ipfs-core-types: 0.9.0(node-fetch@3.3.2) + ipfs-core-utils: 0.13.0(node-fetch@3.3.2) ipfs-utils: 9.0.14 it-first: 1.0.7 it-last: 1.0.6 merge-options: 3.0.4 - multiaddr: 10.0.1(node-fetch@3.3.1) + multiaddr: 10.0.1(node-fetch@3.3.2) multiformats: 9.9.0 native-abort-controller: 1.0.4(abort-controller@3.0.0) - parse-duration: 1.0.3 + parse-duration: 1.1.0 stream-to-it: 0.2.4 uint8arrays: 3.1.1 transitivePeerDependencies: @@ -8097,7 +7922,7 @@ packages: engines: {node: '>=16.0.0', npm: '>=7.0.0'} dependencies: err-code: 3.0.1 - protobufjs: 6.11.3 + protobufjs: 6.11.4 dev: false /ipfs-utils@9.0.14: @@ -8116,8 +7941,8 @@ packages: it-to-stream: 1.0.0 merge-options: 3.0.4 nanoid: 3.3.6 - native-fetch: 3.0.0(node-fetch@2.6.12) - node-fetch: 2.6.12 + native-fetch: 3.0.0(node-fetch@2.7.0) + node-fetch: 2.7.0 react-native-fetch-api: 3.0.0 stream-to-it: 0.2.4 transitivePeerDependencies: @@ -8154,6 +7979,7 @@ packages: engines: {node: '>=8'} dependencies: binary-extensions: 2.2.0 + dev: false /is-boolean-object@1.1.2: resolution: {integrity: sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==} @@ -8177,13 +8003,13 @@ packages: resolution: {integrity: sha512-ZYvCgrefwqoQ6yTyYUbQu64HsITZ3NfKX1lzaEYdkTDcfKzzCI/wthRRYKkdjHKFVgNiXKAKm65Zo1pk2as/QQ==} hasBin: true dependencies: - ci-info: 3.8.0 + ci-info: 3.9.0 dev: true - /is-core-module@2.12.1: - resolution: {integrity: sha512-Q4ZuBAe2FUsKtyQJoQHlvP8OvBERxO3jEmy1I7hcRXcJBGGHFh/aJBswbXuS9sgrDH2QUO8ilkwNPHvHMd8clg==} + /is-core-module@2.13.0: + resolution: {integrity: sha512-Z7dk6Qo8pOCp3l4tsX2C5ZVas4V+UxwQodwZhLopL91TX8UyyHEXafPcyoeeWuLrwzHcr3igO78wNLwHJHsMCQ==} dependencies: - has: 1.0.3 + has: 1.0.4 dev: true /is-date-object@1.0.5: @@ -8219,11 +8045,6 @@ packages: number-is-nan: 1.0.1 dev: true - /is-fullwidth-code-point@2.0.0: - resolution: {integrity: sha512-VHskAKYM8RfSFXwee5t5cbN5PZeq1Wrh6qd5bkyiXIf6UQcN6w/A0eXM9r6t8d+GYOh+o6ZhiEnb88LN/Y8m2w==} - engines: {node: '>=4'} - dev: false - /is-fullwidth-code-point@3.0.0: resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} engines: {node: '>=8'} @@ -8265,7 +8086,7 @@ packages: /is-lower-case@2.0.2: resolution: {integrity: sha512-bVcMJy4X5Og6VZfdOZstSexlEy20Sr0k/p/b2IlQJlfdKAQuMpiv5w2Ccxb8sKdRUNAG1PnHVHjFSdRDVS6NlQ==} dependencies: - tslib: 2.6.1 + tslib: 2.6.2 dev: true /is-negative-zero@2.0.2: @@ -8297,6 +8118,7 @@ packages: /is-plain-obj@2.1.0: resolution: {integrity: sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==} engines: {node: '>=8'} + dev: false /is-regex@1.1.4: resolution: {integrity: sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==} @@ -8379,7 +8201,7 @@ packages: /is-upper-case@2.0.2: resolution: {integrity: sha512-44pxmxAvnnAOwBg4tHPnkfvgjPwbc5QIsSstNU+YcJ1ovxVzCWpSGosPJOZh/a1tdl81fbgnLc9LLv+x2ywbPQ==} dependencies: - tslib: 2.6.1 + tslib: 2.6.2 dev: true /is-url@1.2.4: @@ -8435,8 +8257,16 @@ packages: ws: 7.5.9 dev: false - /isomorphic-ws@5.0.0(ws@8.13.0): + /isomorphic-ws@5.0.0(ws@8.14.2): resolution: {integrity: sha512-muId7Zzn9ywDsyXgTIafTry2sV3nySZeUDe6YedVd1Hvuuep5AsIlqK+XefWpYTyJG5e503F2xIuT2lcU6rCSw==} + peerDependencies: + ws: '*' + dependencies: + ws: 8.14.2 + dev: true + + /isows@1.0.3(ws@8.13.0): + resolution: {integrity: sha512-2cKei4vlmg2cxEjm3wVSqn8pcoRF/LX/wpifuuNquFO4SQmPwarClT+SUCA2lt+l581tTeZIPIZuIDo2jWN1fg==} peerDependencies: ws: '*' dependencies: @@ -8477,15 +8307,15 @@ packages: resolution: {integrity: sha512-pLULMZMAB/+vbdvbZtebC0nWBTbG581lk6w8P7DfIIIKUfa8FbY7Oi0FxZcFPbxvISs7A9E+cMpLDBc1XhpAOA==} dependencies: buffer: 6.0.3 - fast-fifo: 1.2.0 + fast-fifo: 1.3.2 get-iterator: 1.0.2 p-defer: 3.0.0 p-fifo: 1.0.0 readable-stream: 3.6.2 dev: false - /jackspeak@2.2.2: - resolution: {integrity: sha512-mgNtVv4vUuaKA97yxUHoA3+FkuhtxkjdXEWOyB/N76fjy0FjezEt34oy3epBtvCvS+7DyKwqCFWx/oJLV5+kCg==} + /jackspeak@2.3.6: + resolution: {integrity: sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==} engines: {node: '>=14'} dependencies: '@isaacs/cliui': 8.0.2 @@ -8508,7 +8338,7 @@ packages: engines: {node: '>=8'} hasBin: true dependencies: - '@types/connect': 3.4.35 + '@types/connect': 3.4.36 '@types/node': 12.20.55 '@types/ws': 7.4.7 JSONStream: 1.3.5 @@ -8525,17 +8355,17 @@ packages: - utf-8-validate dev: false - /jiti@1.19.1: - resolution: {integrity: sha512-oVhqoRDaBXf7sjkll95LHVS6Myyyb1zaunVwk4Z0+WPSW4gjS0pl01zYKHScTuyEhQsFxV5L4DR5r+YqSyqyyg==} + /jiti@1.20.0: + resolution: {integrity: sha512-3TV69ZbrvV6U5DfQimop50jE9Dl6J8O1ja1dvBbMba/sZ3YBEQqJ2VZRoQPVnhlzjNtU1vaXRZVrVjU4qtm8yA==} hasBin: true dev: true - /jose@4.14.4: - resolution: {integrity: sha512-j8GhLiKmUAh+dsFXlX1aJCbt5KMibuKb+d7j1JaOJG6s2UjX1PQlW+OKB/sD4a/5ZYF4RcmYmLSndOoU3Lt/3g==} + /jju@1.4.0: + resolution: {integrity: sha512-8wb9Yw966OSxApiCt0K3yNJL8pnNeIv+OEq2YMidz4FKP6nonSRoOXc80iXY4JaN2FC11B9qsNmDsm+ZOfMROA==} dev: true - /js-sdsl@4.4.2: - resolution: {integrity: sha512-dwXFwByc/ajSV6m5bcKAPwe4yDDF6D614pxmIi5odytzxRlwqF6nwoiCek80Ixc7Cvma5awClxrzFtxCQvcM8w==} + /jose@4.15.4: + resolution: {integrity: sha512-W+oqK4H+r5sITxfxpSU+MMdr/YSWGvgZMQDIsNoBDGGy4i7GBPTtvFKibQzW06n3U3TqHjhvBJsirShsEJ6eeQ==} dev: true /js-sha3@0.5.7: @@ -8573,7 +8403,11 @@ packages: /json-bigint@1.0.0: resolution: {integrity: sha512-SiPv/8VpZuWbvLSMtTDU8hEfrZWg/mH/nV/b4o0CYbSxu1UIQPLdwKOCIyLQX+VIPO5vrLX3i8qtqFyhdPSUSQ==} dependencies: - bignumber.js: 9.1.1 + bignumber.js: 9.1.2 + dev: true + + /json-buffer@3.0.1: + resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==} dev: true /json-parse-better-errors@1.0.2: @@ -8662,7 +8496,7 @@ packages: dependencies: bn.js: 5.2.1 buffer: 6.0.3 - keccak: 3.0.3 + keccak: 3.0.4 dev: false /keccak@3.0.1: @@ -8671,7 +8505,7 @@ packages: requiresBuild: true dependencies: node-addon-api: 2.0.2 - node-gyp-build: 4.6.0 + node-gyp-build: 4.6.1 dev: true /keccak@3.0.2: @@ -8684,15 +8518,21 @@ packages: readable-stream: 3.6.2 dev: true - /keccak@3.0.3: - resolution: {integrity: sha512-JZrLIAJWuZxKbCilMpNz5Vj7Vtb4scDG3dMXLOsbzBmQGyjwE61BbW7bJkfKKCShXiQZt3T6sBgALRtmd+nZaQ==} + /keccak@3.0.4: + resolution: {integrity: sha512-3vKuW0jV8J3XNTzvfyicFR5qvxrSAGl7KIhvgOu5cmWwM7tZRj3fMbj/pfIf4be7aznbc+prBWGjywox/g2Y6Q==} engines: {node: '>=10.0.0'} requiresBuild: true dependencies: node-addon-api: 2.0.2 - node-gyp-build: 4.6.0 + node-gyp-build: 4.6.1 readable-stream: 3.6.2 + /keyv@4.5.4: + resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==} + dependencies: + json-buffer: 3.0.1 + dev: true + /kind-of@6.0.3: resolution: {integrity: sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==} engines: {node: '>=0.10.0'} @@ -8779,19 +8619,6 @@ packages: engines: {node: '>=10'} dev: true - /level-supports@4.0.1: - resolution: {integrity: sha512-PbXpve8rKeNcZ9C1mUicC9auIYFyGpkV9/i6g76tLgANwWhtG2v7I4xNBUlkn3lE2/dZF3Pi0ygYGtLc4RXXdA==} - engines: {node: '>=12'} - dev: true - - /level-transcoder@1.0.1: - resolution: {integrity: sha512-t7bFwFtsQeD8cl8NIoQ2iwxA0CL/9IFw7/9gAjOonH0PWTTiRfY7Hq+Ejbsxh86tXobDQ6IOiddjNYIfOBs06w==} - engines: {node: '>=12'} - dependencies: - buffer: 6.0.3 - module-error: 1.0.2 - dev: true - /level-ws@2.0.0: resolution: {integrity: sha512-1iv7VXx0G9ec1isqQZ7y5LmoZo/ewAsyDHNA8EFDW5hqH2Kqovm33nSFkSdnLLAK+I5FlT+lo5Cw9itGe+CpQA==} engines: {node: '>=6'} @@ -8801,14 +8628,6 @@ packages: xtend: 4.0.2 dev: true - /level@8.0.0: - resolution: {integrity: sha512-ypf0jjAk2BWI33yzEaaotpq7fkOPALKAgDBxggO6Q9HGX2MRXn0wbP1Jn/tJv1gtL867+YOjOB49WaUF3UoJNQ==} - engines: {node: '>=12'} - dependencies: - browser-level: 1.0.1 - classic-level: 1.3.0 - dev: true - /leveldown@6.1.0: resolution: {integrity: sha512-8C7oJDT44JXxh04aSSsfcMI8YiaGRhOFI9/pMEL7nWJLVsWajDPTRxsSHTM2WcTVY5nXM+SuRHzPPi0GbnDX+w==} engines: {node: '>=10.12.0'} @@ -8846,26 +8665,22 @@ packages: /lines-and-columns@1.2.4: resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} - /lint-staged@13.2.3: - resolution: {integrity: sha512-zVVEXLuQIhr1Y7R7YAWx4TZLdvuzk7DnmrsTNL0fax6Z3jrpFcas+vKbzxhhvp6TA55m1SQuWkpzI1qbfDZbAg==} - engines: {node: ^14.13.1 || >=16.0.0} + /lint-staged@15.0.1: + resolution: {integrity: sha512-2IU5OWmCaxch0X0+IBF4/v7sutpB+F3qoXbro43pYjQTOo5wumckjxoxn47pQBqqBsCWrD5HnI2uG/zJA7isew==} + engines: {node: '>=18.12.0'} hasBin: true dependencies: - chalk: 5.2.0 - cli-truncate: 3.1.0 - commander: 10.0.1 + chalk: 5.3.0 + commander: 11.1.0 debug: 4.3.4(supports-color@8.1.1) - execa: 7.2.0 + execa: 8.0.1 lilconfig: 2.1.0 - listr2: 5.0.8 + listr2: 7.0.1 micromatch: 4.0.5 - normalize-path: 3.0.0 - object-inspect: 1.12.3 pidtree: 0.6.0 string-argv: 0.3.2 - yaml: 2.3.1 + yaml: 2.3.2 transitivePeerDependencies: - - enquirer - supports-color dev: true @@ -8888,23 +8703,16 @@ packages: wrap-ansi: 7.0.0 dev: true - /listr2@5.0.8: - resolution: {integrity: sha512-mC73LitKHj9w6v30nLNGPetZIlfpUniNSsxxrbaPcWOjDb92SHPzJPi/t+v1YC/lxKz/AJ9egOjww0qUuFxBpA==} - engines: {node: ^14.13.1 || >=16.0.0} - peerDependencies: - enquirer: '>= 2.3.0 < 3' - peerDependenciesMeta: - enquirer: - optional: true + /listr2@7.0.1: + resolution: {integrity: sha512-nz+7hwgbDp8eWNoDgzdl4hA/xDSLrNRzPu1TLgOYs6l5Y+Ma6zVWWy9Oyt9TQFONwKoSPoka3H50D3vD5EuNwg==} + engines: {node: '>=16.0.0'} dependencies: - cli-truncate: 2.1.0 + cli-truncate: 3.1.0 colorette: 2.0.20 - log-update: 4.0.0 - p-map: 4.0.0 + eventemitter3: 5.0.1 + log-update: 5.0.1 rfdc: 1.3.0 - rxjs: 7.8.1 - through: 2.3.8 - wrap-ansi: 7.0.0 + wrap-ansi: 8.1.0 dev: true /load-json-file@1.1.0: @@ -8933,14 +8741,6 @@ packages: engines: {node: '>=14'} dev: true - /locate-path@2.0.0: - resolution: {integrity: sha512-NCI2kiDkyR7VeEKm27Kda/iQHyKJe1Bu0FlTbYp3CqJu+9IFe9bLyAjMxf5ZDDbEg+iMPzB5zYyUTSm8wVTKmA==} - engines: {node: '>=4'} - dependencies: - p-locate: 2.0.0 - path-exists: 3.0.0 - dev: true - /locate-path@5.0.0: resolution: {integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==} engines: {node: '>=8'} @@ -8955,6 +8755,10 @@ packages: p-locate: 5.0.0 dev: true + /lodash._reinterpolate@3.0.0: + resolution: {integrity: sha512-xYHt68QRoYGjeeM/XOE1uJtvXQAgvszfBhjV4yvsQH0u2i9I6cI6c6/eG4Hh3UAOVn0y/xAXwmTzEay49Q//HA==} + dev: true + /lodash.assign@4.2.0: resolution: {integrity: sha512-hFuH8TY+Yji7Eja3mGiuAxBqLagejScbG8GbG0j6o9vzn0YL14My+ktnqtZgFTosKymC9/44wP6s7xyuLfnClw==} dev: true @@ -9001,6 +8805,19 @@ packages: /lodash.startcase@4.4.0: resolution: {integrity: sha512-+WKqsK294HMSc2jEbNgpHpd0JfIBhp7rEV4aqXWqFr6AlXov+SlcgB1Fv01y2kGe3Gc8nMW7VA0SrGuSkRfIEg==} + /lodash.template@4.5.0: + resolution: {integrity: sha512-84vYFxIkmidUiFxidA/KjjH9pAycqW+h980j7Fuz5qxRtO9pgB7MDFTdys1N7A5mcucRiDyEq4fusljItR1T/A==} + dependencies: + lodash._reinterpolate: 3.0.0 + lodash.templatesettings: 4.2.0 + dev: true + + /lodash.templatesettings@4.2.0: + resolution: {integrity: sha512-stgLz+i3Aa9mZgnjr/O+v9ruKZsPsndy7qPZOchbqk2cnTU1ZaldKK+v7m54WoKIyxiuMZTKT2H81F8BeAc3ZQ==} + dependencies: + lodash._reinterpolate: 3.0.0 + dev: true + /lodash.throttle@4.1.1: resolution: {integrity: sha512-wIkUCfVKpVsWo3JSZlc+8MB5it+2AN5W8J7YVMST30UrvcQNZ1Okbj+rbVniijTWE6FGYy4XJq/rHkas8qJMLQ==} dev: true @@ -9061,6 +8878,17 @@ packages: wrap-ansi: 6.2.0 dev: true + /log-update@5.0.1: + resolution: {integrity: sha512-5UtUDQ/6edw4ofyljDNcOVJQ4c7OjDro4h3y8e1GQL5iYElYclVHJ3zeWchylvMaKnDbDilC8irOVyexnA/Slw==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dependencies: + ansi-escapes: 5.0.0 + cli-cursor: 4.0.0 + slice-ansi: 5.0.0 + strip-ansi: 7.1.0 + wrap-ansi: 8.1.0 + dev: true + /long@4.0.0: resolution: {integrity: sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA==} dev: false @@ -9076,26 +8904,26 @@ packages: js-tokens: 4.0.0 dev: true - /loupe@2.3.6: - resolution: {integrity: sha512-RaPMZKiMy8/JruncMU5Bt6na1eftNoo++R4Y+N2FrxkDVTrGvcyzFTsaGif4QTeKESheMGegbhw6iUAq+5A8zA==} + /loupe@2.3.7: + resolution: {integrity: sha512-zSMINGVYkdpYSOBmLi0D1Uo7JU9nVdQKrHxC8eYlV+9YKK9WePqAlL7lSlorG/U2Fw1w0hTBmaa/jrQ3UbPHtA==} dependencies: - get-func-name: 2.0.0 + get-func-name: 2.0.2 dev: true /lower-case-first@2.0.2: resolution: {integrity: sha512-EVm/rR94FJTZi3zefZ82fLWab+GX14LJN4HrWBcuo6Evmsl9hEfnqxgcHCKb9q+mNf6EVdsjx/qucYFIIB84pg==} dependencies: - tslib: 2.6.1 + tslib: 2.6.2 dev: true /lower-case@2.0.2: resolution: {integrity: sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==} dependencies: - tslib: 2.6.1 + tslib: 2.6.2 dev: true - /lru-cache@10.0.0: - resolution: {integrity: sha512-svTf/fzsKHffP42sujkO/Rjs37BCIsQVRCeNYIm9WN8rgT7ffoUnRtZCqU+6BqcSBdv8gwJeTz8knJpgACeQMw==} + /lru-cache@10.0.1: + resolution: {integrity: sha512-IJ4uwUTi2qCccrioU6g9g/5rvvVl13bsdczUUcqbciD9iLr095yj8DQKdObriEvuNSx325N1rV1O0sJFszx75g==} engines: {node: 14 || >=16.14} /lru-cache@4.1.5: @@ -9117,16 +8945,12 @@ packages: dependencies: yallist: 4.0.0 - /lru_map@0.3.3: - resolution: {integrity: sha512-Pn9cox5CsMYngeDbmChANltQl+5pi6XmTrraMSzhPmMBbmgcxmqWry0U3PGapCU1yB4/LqCcom7qhHZiF/jGfQ==} - dev: true - /ltgt@2.2.1: resolution: {integrity: sha512-AI2r85+4MquTw9ZYqabu4nMwy9Oftlfa/e/52t9IjtfG+mGBbTNdAoZ3RQKLHR6r0wQnwZnPIEh/Ya6XTWAKNA==} dev: true - /magic-string@0.30.2: - resolution: {integrity: sha512-lNZdu7pewtq/ZvWUp9Wpf/x7WzMTsR26TWV03BRZrXFsv+BI6dy8RAiKgm1uM/kyR0rCfUcqvOlXKG66KhIGug==} + /magic-string@0.30.5: + resolution: {integrity: sha512-7xlpfBaQaP/T6Vh8MO/EqXSW5En6INHEvEXQiuff7Gku0PWjU3uf6w/j9o7O+SpB5fOAkrI5HeoNgwjEO0pFsA==} engines: {node: '>=12'} dependencies: '@jridgewell/sourcemap-codec': 1.4.15 @@ -9150,8 +8974,8 @@ packages: engines: {node: '>=8'} dev: true - /matchstick-as@0.5.2: - resolution: {integrity: sha512-fb1OVphDKEvJY06Ue02Eh1CNncuW95vp6b8tNAP7UIqplICSLoU/zgN6U7ge7R0upsoO78C7CRi4EyK/7Jxz7g==} + /matchstick-as@0.6.0: + resolution: {integrity: sha512-E36fWsC1AbCkBFt05VsDDRoFvGSdcZg6oZJrtIe/YDBbuFh8SKbR5FcoqDhNWqSN+F7bN/iS2u8Md0SM+4pUpw==} dependencies: wabt: 1.0.24 dev: true @@ -9180,15 +9004,6 @@ packages: safe-buffer: 5.2.1 dev: true - /memory-level@1.0.0: - resolution: {integrity: sha512-UXzwewuWeHBz5krr7EvehKcmLFNoXxGcvuYhC41tRnkrTbJohtS7kVn9akmgirtRygg+f7Yjsfi8Uu5SGSQ4Og==} - engines: {node: '>=12'} - dependencies: - abstract-level: 1.0.3 - functional-red-black-tree: 1.0.1 - module-error: 1.0.2 - dev: true - /memorystream@0.3.1: resolution: {integrity: sha512-S3UwM3yj5mtUSEfP41UZmt/0SCoVYUcU1rkXv+BQ5Ig8ndL4sPoJNBUJERafdPb5jjHJGuMgytgKvKIf58XNBw==} engines: {node: '>= 0.10.0'} @@ -9198,7 +9013,7 @@ packages: resolution: {integrity: sha512-3YffViIt2QWgTy6Pale5QpopX/IvU3LPL03jOTqp6pGj3VjesdO/U8CuHMKpnQr4shCNCM5fd5XFFvIIl6JBHg==} engines: {node: '>=8'} dependencies: - '@types/minimist': 1.2.2 + '@types/minimist': 1.2.3 camelcase-keys: 6.2.2 decamelize-keys: 1.1.1 hard-rejection: 2.1.0 @@ -9240,14 +9055,14 @@ packages: resolution: {integrity: sha512-lin42tKfRdkW+6iE5pjtQ9BnH+1Hk3sJ5Fn9hUUSjcXRcJbSISHgPCfYvMNEXiNqZPhz/TyRPEV30qgnujsQ7A==} engines: {node: '>= 7.6.0'} dependencies: - bignumber.js: 9.1.1 + bignumber.js: 9.1.2 buffer-reverse: 1.0.1 crypto-js: 3.3.0 treeify: 1.1.0 - web3-utils: 1.10.0 + web3-utils: 1.10.2 dev: true - /meros@1.3.0(@types/node@20.4.5): + /meros@1.3.0(@types/node@20.8.6): resolution: {integrity: sha512-2BNGOimxEz5hmjUG2FwoxCt5HN7BXdaWyFqEwxPTrJzVdABtrL4TiHTcsWSFAxPQ/tOnEaQEJh3qWq71QRMY+w==} engines: {node: '>=13'} peerDependencies: @@ -9256,7 +9071,11 @@ packages: '@types/node': optional: true dependencies: - '@types/node': 20.4.5 + '@types/node': 20.8.6 + dev: true + + /micro-ftch@0.3.1: + resolution: {integrity: sha512-/0LLxhzP0tfiR5hcQebtudP56gUurs2CLkGarnCiB/OqEyUFQ6U3paQi/tgLv0hBJYt2rnr9MNpxz4fiiugstg==} dev: true /micromatch@4.0.5: @@ -9316,13 +9135,6 @@ packages: brace-expansion: 1.1.11 dev: true - /minimatch@5.0.1: - resolution: {integrity: sha512-nLDxIFRyhDblz3qMuq+SoRZED4+miJ/G+tdDrjkkkRnjAsBexeGpgjLEQ0blJy7rHhR2b93rhQY4SvyWu9v03g==} - engines: {node: '>=10'} - dependencies: - brace-expansion: 2.0.1 - dev: true - /minimatch@5.1.6: resolution: {integrity: sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==} engines: {node: '>=10'} @@ -9367,8 +9179,13 @@ packages: engines: {node: '>=8'} dev: false - /minipass@7.0.2: - resolution: {integrity: sha512-eL79dXrE1q9dBbDCLg7xfn/vl7MS4F1gvJAgjJrQli/jbQWdUttuVawphqpffoIYfRdq78LHx6GP4bU/EQ2ATA==} + /minipass@5.0.0: + resolution: {integrity: sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==} + engines: {node: '>=8'} + dev: false + + /minipass@7.0.4: + resolution: {integrity: sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==} engines: {node: '>=16 || 14 >=14.17'} /minizlib@2.1.2: @@ -9399,52 +9216,13 @@ packages: engines: {node: '>=10'} hasBin: true - /mlly@1.4.0: - resolution: {integrity: sha512-ua8PAThnTwpprIaU47EPeZ/bPUVp2QYBbWMphUQpVdBI3Lgqzm5KZQ45Agm3YJedHXaIHl6pBGabaLSUPPSptg==} + /mlly@1.4.2: + resolution: {integrity: sha512-i/Ykufi2t1EZ6NaPLdfnZk2AX8cs0d+mTzVKuPfqPKPatxLApaBoxJQ9x1/uckXtrS/U5oisPMDkNs0yQTaBRg==} dependencies: acorn: 8.10.0 pathe: 1.1.1 pkg-types: 1.0.3 - ufo: 1.2.0 - dev: true - - /mnemonist@0.38.5: - resolution: {integrity: sha512-bZTFT5rrPKtPJxj8KSV0WkPyNxl72vQepqqVUAW2ARUpUSF2qXMB6jZj7hW5/k7C1rtpzqbD/IIbJwLXUjCHeg==} - dependencies: - obliterator: 2.0.4 - dev: true - - /mocha@10.2.0: - resolution: {integrity: sha512-IDY7fl/BecMwFHzoqF2sg/SHHANeBoMMXFlS9r0OXKDssYE1M5O43wUY/9BVPeIvfH2zmEbBfseqN9gBQZzXkg==} - engines: {node: '>= 14.0.0'} - hasBin: true - dependencies: - ansi-colors: 4.1.1 - browser-stdout: 1.3.1 - chokidar: 3.5.3 - debug: 4.3.4(supports-color@8.1.1) - diff: 5.0.0 - escape-string-regexp: 4.0.0 - find-up: 5.0.0 - glob: 7.2.0 - he: 1.2.0 - js-yaml: 4.1.0 - log-symbols: 4.1.0 - minimatch: 5.0.1 - ms: 2.1.3 - nanoid: 3.3.3 - serialize-javascript: 6.0.0 - strip-json-comments: 3.1.1 - supports-color: 8.1.1 - workerpool: 6.2.1 - yargs: 16.2.0 - yargs-parser: 20.2.4 - yargs-unparser: 2.0.0 - dev: true - - /module-error@1.0.2: - resolution: {integrity: sha512-0yuvsqSCv8LbaOKhnsQ/T5JhyFlCYLPXK3U2sgV10zoKQwzs/MyfuQUOZQ1V/6OCOJsK/TRgNVrPuPDqtdMFtA==} - engines: {node: '>=10'} + ufo: 1.3.1 dev: true /ms@2.0.0: @@ -9456,21 +9234,21 @@ packages: /ms@2.1.3: resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} - /multiaddr-to-uri@8.0.0(node-fetch@3.3.1): + /multiaddr-to-uri@8.0.0(node-fetch@3.3.2): resolution: {integrity: sha512-dq4p/vsOOUdVEd1J1gl+R2GFrXJQH8yjLtz4hodqdVbieg39LvBOdMQRdQnfbg5LSM/q1BYNVf5CBbwZFFqBgA==} deprecated: This module is deprecated, please upgrade to @multiformats/multiaddr-to-uri dependencies: - multiaddr: 10.0.1(node-fetch@3.3.1) + multiaddr: 10.0.1(node-fetch@3.3.2) transitivePeerDependencies: - node-fetch - supports-color dev: false - /multiaddr@10.0.1(node-fetch@3.3.1): + /multiaddr@10.0.1(node-fetch@3.3.2): resolution: {integrity: sha512-G5upNcGzEGuTHkzxezPrrD6CaIHR9uo+7MwqhNVcXTs33IInon4y7nMiGxl2CY5hG7chvYQUQhz5V52/Qe3cbg==} deprecated: This module is deprecated, please upgrade to @multiformats/multiaddr dependencies: - dns-over-http-resolver: 1.2.3(node-fetch@3.3.1) + dns-over-http-resolver: 1.2.3(node-fetch@3.3.2) err-code: 3.0.1 is-ip: 3.1.0 multiformats: 9.9.0 @@ -9487,11 +9265,6 @@ packages: /mute-stream@0.0.8: resolution: {integrity: sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==} - - /nanoid@3.3.3: - resolution: {integrity: sha512-p1sjXuopFs0xg+fPASzQ28agW1oHD7xDsd9Xkf3T15H3c/cifrFHVwrh74PdoklAPi+i7MdRsE47vm2r6JoB+w==} - engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} - hasBin: true dev: true /nanoid@3.3.6: @@ -9503,10 +9276,6 @@ packages: resolution: {integrity: sha512-A0xLykHtARfueITVDernsAWdtIMbOJgKgcluwENp3AlsKN/PloyO10HtmoqnFAQAcxPkgZN7wdfPfEd0zNGxbg==} dev: true - /napi-macros@2.2.2: - resolution: {integrity: sha512-hmEVtAGYzVQpCKdbQea4skABsdXW4RUh5t5mJ2zzqowJS2OyXZTU1KhDVFhx+NlWZ4ap9mqR9TcDO3LTTttd+g==} - dev: true - /native-abort-controller@1.0.4(abort-controller@3.0.0): resolution: {integrity: sha512-zp8yev7nxczDJMoP6pDxyD20IU0T22eX8VwN2ztDccKvSZhRaV33yP1BGwKSZfXuqWUzsXopVFjBdau9OOAwMQ==} peerDependencies: @@ -9515,26 +9284,22 @@ packages: abort-controller: 3.0.0 dev: false - /native-fetch@3.0.0(node-fetch@2.6.12): + /native-fetch@3.0.0(node-fetch@2.7.0): resolution: {integrity: sha512-G3Z7vx0IFb/FQ4JxvtqGABsOTIqRWvgQz6e+erkB+JJD6LrszQtMozEHI4EkmgZQvnGHrpLVzUWk7t4sJCIkVw==} peerDependencies: node-fetch: '*' dependencies: - node-fetch: 2.6.12 + node-fetch: 2.7.0 dev: false - /native-fetch@3.0.0(node-fetch@3.3.1): + /native-fetch@3.0.0(node-fetch@3.3.2): resolution: {integrity: sha512-G3Z7vx0IFb/FQ4JxvtqGABsOTIqRWvgQz6e+erkB+JJD6LrszQtMozEHI4EkmgZQvnGHrpLVzUWk7t4sJCIkVw==} peerDependencies: node-fetch: '*' dependencies: - node-fetch: 3.3.1 + node-fetch: 3.3.2 dev: false - /natural-compare-lite@1.4.0: - resolution: {integrity: sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==} - dev: true - /natural-compare@1.4.0: resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} dev: true @@ -9550,18 +9315,22 @@ packages: resolution: {integrity: sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==} dependencies: lower-case: 2.0.2 - tslib: 2.6.1 + tslib: 2.6.2 dev: true /node-addon-api@2.0.2: resolution: {integrity: sha512-Ntyt4AIXyaLIuMHF6IOoTakB3K+RWxwtsHNRxllEoA6vPwP9o4866g6YWDLUdnucilZhmkxiHwHr11gAENw+QA==} + /node-addon-api@7.0.0: + resolution: {integrity: sha512-vgbBJTS4m5/KkE16t5Ly0WW9hz46swAstv0hYYwMtbG7AznRhNyfLRe8HZAiWIpcHzoO7HxhLuBQj9rJ/Ho0ZA==} + dev: true + /node-domexception@1.0.0: resolution: {integrity: sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==} engines: {node: '>=10.5.0'} - /node-fetch@2.6.12: - resolution: {integrity: sha512-C/fGU2E8ToujUivIO0H+tpQ6HWo4eEmchoPIoXtxCrVghxdKq+QOHqEZW7tuP3KlV3bC8FRMO5nMCC7Zm1VP6g==} + /node-fetch@2.7.0: + resolution: {integrity: sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==} engines: {node: 4.x || >=6.0.0} peerDependencies: encoding: ^0.1.0 @@ -9571,8 +9340,8 @@ packages: dependencies: whatwg-url: 5.0.0 - /node-fetch@3.3.1: - resolution: {integrity: sha512-cRVc/kyto/7E5shrWca1Wsea4y6tL9iYJE5FBCius3JQfb/4P4I295PfhgbJQBLTx6lATE4z+wK0rPM4VS2uow==} + /node-fetch@3.3.2: + resolution: {integrity: sha512-dRB78srN/l6gqWulah9SrxeYnxeddIG30+GOqK/9OlLVyLg3HPnr6SqOWTWOXKRwC2eGYCkZ59NNuSgvSrpgOA==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} dependencies: data-uri-to-buffer: 4.0.1 @@ -9595,6 +9364,11 @@ packages: /node-gyp-build@4.6.0: resolution: {integrity: sha512-NTZVKn9IylLwUzaKjkas1e4u2DLNcV4rdYagA4PWdPwW87Bi7z+BznyKSRwS/761tV/lzCGXplWsiaMjLqP2zQ==} hasBin: true + dev: true + + /node-gyp-build@4.6.1: + resolution: {integrity: sha512-24vnklJmyRS8ViBNI8KbtK/r/DmXQMRiOMXTNz2nrTnAYUwjmEEbnnpB/+kt+yWRv73bPsSPRFddrcIbAxSiMQ==} + hasBin: true /node-int64@0.4.0: resolution: {integrity: sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==} @@ -9608,7 +9382,7 @@ packages: resolution: {integrity: sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==} dependencies: hosted-git-info: 2.8.9 - resolve: 1.22.2 + resolve: 1.22.8 semver: 5.7.2 validate-npm-package-license: 3.0.4 dev: true @@ -9623,6 +9397,7 @@ packages: /normalize-path@3.0.0: resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} engines: {node: '>=0.10.0'} + dev: false /npm-run-path@4.0.1: resolution: {integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==} @@ -9662,6 +9437,10 @@ packages: /object-inspect@1.12.3: resolution: {integrity: sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==} + dev: true + + /object-inspect@1.13.0: + resolution: {integrity: sha512-HQ4J+ic8hKrgIt3mqk6cVOVrW2ozL4KdvHlqpBv9vDYWx9ysAgENAdvy4FoGF+KFdhR7nQTNm5J0ctAeOwn+3g==} /object-keys@1.1.1: resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==} @@ -9677,15 +9456,11 @@ packages: engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.2 - define-properties: 1.2.0 + define-properties: 1.2.1 has-symbols: 1.0.3 object-keys: 1.1.1 dev: true - /obliterator@2.0.4: - resolution: {integrity: sha512-lgHwxlxV1qIg1Eap7LgIeoBWIMFibOjbrYPIPJZcI1mmGAI2m3lNYpK12Y+GBdPQ0U1hRwSord7GIaawz962qQ==} - dev: true - /once@1.4.0: resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} dependencies: @@ -9735,17 +9510,16 @@ packages: type-check: 0.4.0 dev: true - /ora@4.1.1: - resolution: {integrity: sha512-sjYP8QyVWBpBZWD6Vr1M/KwknSw6kJOz41tvGMlwWeClHBtYKTbHMki1PsLZnxKpXMPbTKv9b3pjQu3REib96A==} + /ora@4.0.2: + resolution: {integrity: sha512-YUOZbamht5mfLxPmk4M35CD/5DuOkAacxlEUbStVXpBAt4fyhBf+vZHI/HRkI++QUp3sNoeA2Gw4C+hi4eGSig==} engines: {node: '>=8'} dependencies: - chalk: 3.0.0 + chalk: 2.4.2 cli-cursor: 3.1.0 - cli-spinners: 2.9.0 + cli-spinners: 2.9.1 is-interactive: 1.0.0 log-symbols: 3.0.0 - mute-stream: 0.0.8 - strip-ansi: 6.0.1 + strip-ansi: 5.2.0 wcwidth: 1.0.1 dev: false @@ -9756,7 +9530,7 @@ packages: bl: 4.1.0 chalk: 4.1.2 cli-cursor: 3.1.0 - cli-spinners: 2.9.0 + cli-spinners: 2.9.1 is-interactive: 1.0.0 is-unicode-supported: 0.1.0 log-symbols: 4.1.0 @@ -9764,10 +9538,6 @@ packages: wcwidth: 1.0.1 dev: true - /ordinal@1.0.3: - resolution: {integrity: sha512-cMddMgb2QElm8G7vdaa02jhUNbTSrhsgAGUz1OokD83uJTwSUn+nKoNoKVVaRa08yF6sgfO7Maou1+bgLd9rdQ==} - dev: true - /os-locale@1.4.0: resolution: {integrity: sha512-PRT7ZORmwu2MEFt4/fv3Q+mEfN4zetKxufQrkShY2oGvUms9r8otu5HfdyIFHkYXjO7laNsoVGmM2MANfuTA8g==} engines: {node: '>=0.10.0'} @@ -9792,7 +9562,7 @@ packages: /p-fifo@1.0.0: resolution: {integrity: sha512-IjoCxXW48tqdtDFz6fqo5q1UfFVjjVZe8TC1QRflvNUJtNfCUhxOUw6MOVZhDPjqhSzc26xKdugsO17gmzd5+A==} dependencies: - fast-fifo: 1.2.0 + fast-fifo: 1.3.2 p-defer: 3.0.0 dev: false @@ -9803,18 +9573,6 @@ packages: p-map: 2.1.0 dev: true - /p-finally@2.0.1: - resolution: {integrity: sha512-vpm09aKwq6H9phqRQzecoDpD8TmVyGw70qmWlyq5onxY7tqyTTFVvxMykxQSQKILBSFlbXpypIw2T1Ml7+DDtw==} - engines: {node: '>=8'} - dev: false - - /p-limit@1.3.0: - resolution: {integrity: sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==} - engines: {node: '>=4'} - dependencies: - p-try: 1.0.0 - dev: true - /p-limit@2.3.0: resolution: {integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==} engines: {node: '>=6'} @@ -9836,13 +9594,6 @@ packages: yocto-queue: 1.0.0 dev: true - /p-locate@2.0.0: - resolution: {integrity: sha512-nQja7m7gSKuewoVRen45CtVfODR3crN3goVQ0DDZ9N3yHxgpkuBhZqsaiotSQRrADUrne346peY7kT3TSACykg==} - engines: {node: '>=4'} - dependencies: - p-limit: 1.3.0 - dev: true - /p-locate@4.1.0: resolution: {integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==} engines: {node: '>=8'} @@ -9869,11 +9620,6 @@ packages: aggregate-error: 3.1.0 dev: true - /p-try@1.0.0: - resolution: {integrity: sha512-U1etNYuMJoIz3ZXSrrySFjsXQTWOx2/jdi86L+2pRvph/qMKL6sbcCYdH23fqsbm8TH2Gn0OybpT4eSFlCVHww==} - engines: {node: '>=4'} - dev: true - /p-try@2.2.0: resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==} engines: {node: '>=6'} @@ -9883,7 +9629,7 @@ packages: resolution: {integrity: sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A==} dependencies: dot-case: 3.0.4 - tslib: 2.6.1 + tslib: 2.6.2 dev: true /parent-module@1.0.1: @@ -9896,8 +9642,8 @@ packages: resolution: {integrity: sha512-60zvsJReQPX5/QP0Kzfd/VrpjScIQ7SHBW6bFCYfEP+fp0Eppr1SHhIO5nd1PjZtvclzSzES9D/p5nFJurwfWg==} dev: false - /parse-duration@1.0.3: - resolution: {integrity: sha512-o6NAh12na5VvR6nFejkU0gpQ8jmOY9Y9sTU2ke3L3G/d/3z8jqmbBbeyBGHU73P4JLXfc7tJARygIK3WGIkloA==} + /parse-duration@1.1.0: + resolution: {integrity: sha512-z6t9dvSJYaPoQq7quMzdEagSFtpGu+utzHqqxmpVWNNZRIXnvqyCvn9XsTdh7c/w0Bqmdz3RB3YnRaKtpRtEXQ==} dev: false /parse-filepath@1.0.2: @@ -9928,7 +9674,7 @@ packages: resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==} engines: {node: '>=8'} dependencies: - '@babel/code-frame': 7.22.5 + '@babel/code-frame': 7.22.13 error-ex: 1.3.2 json-parse-even-better-errors: 2.3.1 lines-and-columns: 1.2.4 @@ -9937,7 +9683,7 @@ packages: resolution: {integrity: sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==} dependencies: no-case: 3.0.4 - tslib: 2.6.1 + tslib: 2.6.2 dev: true /password-prompt@1.1.3: @@ -9954,7 +9700,7 @@ packages: resolution: {integrity: sha512-qO4qCFjXqVTrcbPt/hQfhTQ+VhFsqNKOPtytgNKkKxSoEp3XPUQ8ObFuePylOIok5gjn69ry8XiULxCwot3Wfg==} dependencies: dot-case: 3.0.4 - tslib: 2.6.1 + tslib: 2.6.2 dev: true /path-exists@2.1.0: @@ -9964,11 +9710,6 @@ packages: pinkie-promise: 2.0.1 dev: true - /path-exists@3.0.0: - resolution: {integrity: sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==} - engines: {node: '>=4'} - dev: true - /path-exists@4.0.0: resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} engines: {node: '>=8'} @@ -10007,8 +9748,8 @@ packages: resolution: {integrity: sha512-MkhCqzzBEpPvxxQ71Md0b1Kk51W01lrYvlMzSUaIzNsODdd7mqhiimSZlr+VegAz5Z6Vzt9Xg2ttE//XBhH3EQ==} engines: {node: '>=16 || 14 >=14.17'} dependencies: - lru-cache: 10.0.0 - minipass: 7.0.2 + lru-cache: 10.0.1 + minipass: 7.0.4 /path-type@1.1.0: resolution: {integrity: sha512-S4eENJz1pkiQn9Znv33Q+deTOKmbl+jj1Fl+qiP/vYezj+S8x+J3Uo0ISrx/QoEvIlOaDWJhPaRd1flJ9HXZqg==} @@ -10091,7 +9832,7 @@ packages: resolution: {integrity: sha512-nN7pYi0AQqJnoLPC9eHFQ8AcyaixBUOwvqc5TDnIKCMEE6I0y8P7OKA7fPexsXGCGxQDl/cmrLAp26LhcwxZ4A==} dependencies: jsonc-parser: 3.2.0 - mlly: 1.4.0 + mlly: 1.4.2 pathe: 1.1.1 dev: true @@ -10100,8 +9841,8 @@ packages: engines: {node: '>=4'} dev: false - /postcss@8.4.27: - resolution: {integrity: sha512-gY/ACJtJPSmUFPDCHtX78+01fHa64FaU4zaaWfuh1MhGJISufJAH4cun6k/8fwsHYeK4UQmENQK+tRLCFJE8JQ==} + /postcss@8.4.31: + resolution: {integrity: sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==} engines: {node: ^10 || ^12 || >=14} dependencies: nanoid: 3.3.6 @@ -10109,8 +9850,8 @@ packages: source-map-js: 1.0.2 dev: true - /preferred-pm@3.0.3: - resolution: {integrity: sha512-+wZgbxNES/KlJs9q40F/1sfOd/j7f1O9JaHcW5Dsn3aUUOZg3L2bjpVUcKV2jvtElYfoTuQiNeMfQJ4kwUAhCQ==} + /preferred-pm@3.1.2: + resolution: {integrity: sha512-nk7dKrcW8hfCZ4H6klWcdRknBOXWzNQByJ0oJyX97BOupsYD+FzLS4hflgEu/uPUEHZCuRfMxzCBsuWd7OzT8Q==} engines: {node: '>=10'} dependencies: find-up: 5.0.0 @@ -10143,17 +9884,17 @@ packages: hasBin: true dev: true - /prettier@3.0.0: - resolution: {integrity: sha512-zBf5eHpwHOGPC47h0zrPyNn+eAEIdEzfywMoYn2XPi0P44Zp0tSq64rq0xAREh4auw2cJZHo9QUob+NqCQky4g==} + /prettier@3.0.3: + resolution: {integrity: sha512-L/4pUDMxcNa8R/EthV08Zt42WBO4h1rarVtK0K+QJG0X187OLo7l699jWw0GKuwzkPQ//jMFA/8Xm6Fh3J/DAg==} engines: {node: '>=14'} hasBin: true dev: true - /pretty-format@29.6.2: - resolution: {integrity: sha512-1q0oC8eRveTg5nnBEWMXAU2qpv65Gnuf2eCQzSjxpWFkPaPARwqZZDGuNE0zPAZfTCHzIk3A8dIjwlQKKLphyg==} + /pretty-format@29.7.0: + resolution: {integrity: sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@jest/schemas': 29.6.0 + '@jest/schemas': 29.6.3 ansi-styles: 5.2.0 react-is: 18.2.0 dev: true @@ -10174,8 +9915,8 @@ packages: asap: 2.0.6 dev: false - /protobufjs@6.11.3: - resolution: {integrity: sha512-xL96WDdCZYdU7Slin569tFX712BxsxslWwAfAhCYjQKGTq7dAU91Lomy6nLLhh/dyGhk/YH4TwTSRxTzhuHyZg==} + /protobufjs@6.11.4: + resolution: {integrity: sha512-5kQWPaJHi1WoCpjTGszzQ32PG2F4+wRY6BmAT4Vfw56Q2FZ4YZzK20xUYQH4YkfehY1e6QSICrJquM6xXZNcrw==} hasBin: true requiresBuild: true dependencies: @@ -10190,7 +9931,7 @@ packages: '@protobufjs/pool': 1.1.0 '@protobufjs/utf8': 1.1.0 '@types/long': 4.0.2 - '@types/node': 20.4.5 + '@types/node': 20.8.6 long: 4.0.0 dev: false @@ -10217,9 +9958,6 @@ packages: dependencies: end-of-stream: 1.4.4 once: 1.4.0 - - /punycode@1.3.2: - resolution: {integrity: sha512-RofWgt/7fL5wP1Y7fxE7/EmTLzQVnB0ycyibJ0OOHIlJqTNzglYFxVwETOcIoJqJmpDXJ9xImDv+Fq34F/d4Dw==} dev: true /punycode@1.4.1: @@ -10234,32 +9972,25 @@ packages: resolution: {integrity: sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==} engines: {node: '>=6'} - /pvtsutils@1.3.2: - resolution: {integrity: sha512-+Ipe2iNUyrZz+8K/2IOo+kKikdtfhRKzNpQbruF2URmqPtoqAs8g3xS7TJvFF2GcPXjh7DkqMnpVveRFq4PgEQ==} + /pvtsutils@1.3.5: + resolution: {integrity: sha512-ARvb14YB9Nm2Xi6nBq1ZX6dAM0FsJnuk+31aUp4TrcZEdKUlSqOqsxJHUPJDNE3qiIp+iUPEIeR6Je/tgV7zsA==} dependencies: - tslib: 2.6.1 + tslib: 2.6.2 /pvutils@1.1.3: resolution: {integrity: sha512-pMpnA0qRdFp32b1sJl1wOJNxZLQ2cbQx+k6tjNtZ8CpvVhNqEPRgivZ2WOUev2YMajecdH7ctUPDvEe87nariQ==} engines: {node: '>=6.0.0'} - /qs@6.11.1: - resolution: {integrity: sha512-0wsrzgTz/kAVIeuxSjnpGC56rzYtr6JT/2BwEvMaPhFIoYa1aGO8LbzuU1R0uUYQkLpWBTOj0l/CLAJB64J6nQ==} + /qs@6.11.2: + resolution: {integrity: sha512-tDNIz22aBzCDxLtVH++VnTfzxlfeK5CbqohpSqpJgj1Wg/cQbStNAz3NuqCs5vV+pjBsK4x4pN9HlVh7rcYRiA==} engines: {node: '>=0.6'} dependencies: side-channel: 1.0.4 - dev: false /qs@6.5.3: resolution: {integrity: sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA==} engines: {node: '>=0.6'} - /querystring@0.2.0: - resolution: {integrity: sha512-X/xY82scca2tau62i9mDyU9K+I+djTMUsvwf7xnUX5GLvVzgJybOJf4Y6o9Zx3oJK/LSXg5tTZBjwzqVPaPO2g==} - engines: {node: '>=0.4.x'} - deprecated: The querystring API is considered Legacy. new code should use the URLSearchParams API instead. - dev: true - /queue-microtask@1.2.3: resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} @@ -10268,35 +9999,11 @@ packages: engines: {node: '>=8'} dev: true - /ramda@0.24.1: - resolution: {integrity: sha512-HEm619G8PaZMfkqCa23qiOe7r3R0brPu7ZgOsgKUsnvLhd0qhc/vTjkUovomgPWa5ECBa08fJZixth9LaoBo5w==} - dev: false - - /ramda@0.25.0: - resolution: {integrity: sha512-GXpfrYVPwx3K7RQ6aYT8KPS8XViSXUVJT1ONhoKPE9VAleW42YE+U+8VEyGWt41EnEQW7gwecYJriTI0pKoecQ==} - dev: false - - /ramdasauce@2.1.3: - resolution: {integrity: sha512-Ml3CPim4SKwmg5g9UI77lnRSeKr/kQw7YhQ6rfdMcBYy6DMlwmkEwQqjygJ3OhxPR+NfFfpjKl3Tf8GXckaqqg==} - dependencies: - ramda: 0.24.1 - dev: false - /randombytes@2.1.0: resolution: {integrity: sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==} dependencies: safe-buffer: 5.2.1 - /raw-body@2.5.2: - resolution: {integrity: sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==} - engines: {node: '>= 0.8'} - dependencies: - bytes: 3.1.2 - http-errors: 2.0.0 - iconv-lite: 0.4.24 - unpipe: 1.0.0 - dev: true - /react-is@18.2.0: resolution: {integrity: sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==} dev: true @@ -10337,7 +10044,7 @@ packages: resolution: {integrity: sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==} engines: {node: '>=8'} dependencies: - '@types/normalize-package-data': 2.4.1 + '@types/normalize-package-data': 2.4.2 normalize-package-data: 2.5.0 parse-json: 5.2.0 type-fest: 0.6.0 @@ -10387,6 +10094,7 @@ packages: engines: {node: '>=8.10.0'} dependencies: picomatch: 2.3.1 + dev: false /receptacle@1.3.2: resolution: {integrity: sha512-HrsFvqZZheusncQRiEE7GatOAETrARKV/lnfYicIm8lbvp/JQOdADOfhjBd2DajvoszEyxSM6RlAAIZgEoeu/A==} @@ -10412,22 +10120,22 @@ packages: engines: {node: '>=6'} dev: true - /regenerator-runtime@0.13.11: - resolution: {integrity: sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==} + /regenerator-runtime@0.14.0: + resolution: {integrity: sha512-srw17NI0TUWHuGa5CFGGmhfNIeja30WMBfbslPNhf6JrqQlLN5gcrvig1oqPxiVaXb0oW0XRKtH6Nngs5lKCIA==} - /regexp.prototype.flags@1.5.0: - resolution: {integrity: sha512-0SutC3pNudRKgquxGoRGIz946MZVHqbNfPjBdxeOhBrdgDKlRoXmYLQN9xRbrR09ZXWeGAdPuif7egofn6v5LA==} + /regexp.prototype.flags@1.5.1: + resolution: {integrity: sha512-sy6TXMN+hnP/wMy+ISxg3krXx7BAtWVO4UouuCN/ziM9UEne0euamVNafDfvC83bRNr95y0V5iijeDQFUNpvrg==} engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.2 - define-properties: 1.2.0 - functions-have-names: 1.2.3 + define-properties: 1.2.1 + set-function-name: 2.0.1 dev: true /relay-runtime@12.0.0: resolution: {integrity: sha512-QU6JKr1tMsry22DXNy9Whsq5rmvwr3LSZiiWV/9+DFpuTWvp+WFhobWMc8TC4OjKFfNhEZy7mOiqUAn5atQtug==} dependencies: - '@babel/runtime': 7.22.6 + '@babel/runtime': 7.23.2 fbjs: 3.0.5 invariant: 2.2.4 transitivePeerDependencies: @@ -10477,19 +10185,14 @@ packages: engines: {node: '>=0.10.0'} dev: true - /require-env-variable@4.0.1: - resolution: {integrity: sha512-2GCxnZqKSNIC9Ag9O38CF/HkWdd7kDNKzTuSxdIVMYa0WMZIntEBTeGY9b4IPy64FciEjyvh1iL2IWh2PERB0w==} + /require-env-variable@4.0.2: + resolution: {integrity: sha512-gdVmg7tVno0u5MokVSVeuRDSez1XyktsGaNCJfdEqrU40OUXw1oG7MWVPr8PLC7UJul6L98hjULh1e2pmGwdPg==} /require-from-string@1.2.1: resolution: {integrity: sha512-H7AkJWMobeskkttHyhTVtS0fxpFLjxhbfMa6Bk3wimP7sdPRGL3EyCg3sAQenFfAe+xQ+oAc85Nmtvq0ROM83Q==} engines: {node: '>=0.10.0'} dev: true - /require-from-string@2.0.2: - resolution: {integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==} - engines: {node: '>=0.10.0'} - dev: true - /require-main-filename@1.0.1: resolution: {integrity: sha512-IqSUtOVP4ksd1C/ej5zeEh/BIP2ajqpn8c5x+q99gvcIG/Qf0cud5raVnE/Dwd0ua9TXYDoDc0RE5hBSdz22Ug==} dev: true @@ -10511,17 +10214,11 @@ packages: engines: {node: '>=8'} dev: true - /resolve@1.17.0: - resolution: {integrity: sha512-ic+7JYiV8Vi2yzQGFWOkiZD5Z9z7O2Zhm9XMaTxdJExKasieFCr+yXZ/WmXsckHiKl12ar0y6XiXDx3m4RHn1w==} - dependencies: - path-parse: 1.0.7 - dev: true - - /resolve@1.22.2: - resolution: {integrity: sha512-Sb+mjNHOULsBv818T40qSPeRiuWLyaGMa5ewydRLFimneixmVy2zdivRl+AF6jaYPC8ERxGDmFSiqui6SfPd+g==} + /resolve@1.22.8: + resolution: {integrity: sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==} hasBin: true dependencies: - is-core-module: 2.12.1 + is-core-module: 2.13.0 path-parse: 1.0.7 supports-preserve-symlinks-flag: 1.0.0 dev: true @@ -10533,6 +10230,14 @@ packages: onetime: 5.1.2 signal-exit: 3.0.7 + /restore-cursor@4.0.0: + resolution: {integrity: sha512-I9fPXU9geO9bHOt9pHHOhOkYerIMsmVaWB0rA2AI9ERh/+x/i7MV5HKBNrg+ljO5eoPVgCcnFuRjJ9uH6I/3eg==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dependencies: + onetime: 5.1.2 + signal-exit: 3.0.7 + dev: true + /retimer@3.0.0: resolution: {integrity: sha512-WKE0j11Pa0ZJI5YIk0nflGI7SQsfl2ljihVy7ogh7DeQSeYAUi0ubZ/yEueGtDfUPk6GH5LRw1hBdLq4IwUBWA==} dev: false @@ -10549,7 +10254,7 @@ packages: resolution: {integrity: sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==} hasBin: true dependencies: - glob: 7.2.3 + glob: 7.2.0 /rimraf@3.0.2: resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==} @@ -10557,12 +10262,12 @@ packages: dependencies: glob: 7.2.3 - /rimraf@5.0.1: - resolution: {integrity: sha512-OfFZdwtd3lZ+XZzYP/6gTACubwFcHdLRqS9UX3UwpU2dnGQYkPFISRwvM3w9IiB2w7bW5qGo/uAwE4SmXXSKvg==} + /rimraf@5.0.5: + resolution: {integrity: sha512-CqDakW+hMe/Bz202FPEymy68P+G50RfMQK+Qo5YUqc9SPipvbGjCGKd0RSKEelbsfQuw3g5NZDSrlZZAJurH1A==} engines: {node: '>=14'} hasBin: true dependencies: - glob: 10.3.3 + glob: 10.3.10 dev: true /ripemd160@2.0.2: @@ -10589,15 +10294,15 @@ packages: engines: {node: '>=10.0.0'} hasBin: true optionalDependencies: - fsevents: 2.3.2 + fsevents: 2.3.3 dev: true - /rollup@3.27.0: - resolution: {integrity: sha512-aOltLCrYZ0FhJDm7fCqwTjIUEVjWjcydKBV/Zeid6Mn8BWgDCUBBWT5beM5ieForYNo/1ZHuGJdka26kvQ3Gzg==} + /rollup@3.29.4: + resolution: {integrity: sha512-oWzmBZwvYrU0iJHtDmhsm662rC15FRXmcjCk1xD771dFDx5jJ02ufAQQTn0etB2emNk4J9EZg/yWKpsn9BWGRw==} engines: {node: '>=14.18.0', npm: '>=8.0.0'} hasBin: true optionalDependencies: - fsevents: 2.3.2 + fsevents: 2.3.3 dev: true /run-applescript@5.0.0: @@ -10612,12 +10317,6 @@ packages: engines: {node: '>=0.12.0'} dev: true - /run-parallel-limit@1.1.0: - resolution: {integrity: sha512-jJA7irRNM91jaKc3Hcl1npHsFLOXOoTkPCUL1JEa1R82O2miplXXRaGdjW/KM/98YQWDhJLiSs793CnXfblJUw==} - dependencies: - queue-microtask: 1.2.3 - dev: true - /run-parallel@1.2.0: resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} dependencies: @@ -10630,11 +10329,11 @@ packages: /rxjs@7.8.1: resolution: {integrity: sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==} dependencies: - tslib: 2.6.1 + tslib: 2.6.2 dev: true - /safe-array-concat@1.0.0: - resolution: {integrity: sha512-9dVEFruWIsnie89yym+xWTAYASdpw3CJV7Li/6zBewGf9z2i1j31rP6jnY0pHEO4QZh6N0K11bFjWmdR8UGdPQ==} + /safe-array-concat@1.0.1: + resolution: {integrity: sha512-6XbUAseYE2KtOuGueyeobCySj9L4+66Tn6KQMOPQJrAJEowYKW/YR/MGJZl7FdydUdaFu4LYyDZjxf4/Nmo23Q==} engines: {node: '>=0.4'} dependencies: call-bind: 1.0.2 @@ -10645,6 +10344,7 @@ packages: /safe-buffer@5.1.2: resolution: {integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==} + dev: false /safe-buffer@5.2.1: resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} @@ -10674,7 +10374,7 @@ packages: dependencies: elliptic: 6.5.4 node-addon-api: 2.0.2 - node-gyp-build: 4.6.0 + node-gyp-build: 4.6.1 /seedrandom@3.0.5: resolution: {integrity: sha512-8OwmbklUNzwezjGInmZ+2clQmExQPvomqjL7LFqOYqtmuxRgQYqOD3mHaU+MvZn5FLUeVxVfQjwLZW/n/JFuqg==} @@ -10695,8 +10395,16 @@ packages: hasBin: true dev: true - /semver@7.3.8: - resolution: {integrity: sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==} + /semver@7.3.5: + resolution: {integrity: sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==} + engines: {node: '>=10'} + hasBin: true + dependencies: + lru-cache: 6.0.0 + dev: false + + /semver@7.4.0: + resolution: {integrity: sha512-RgOxM8Mw+7Zus0+zcLEUn8+JfoLpj/huFTItQy2hsM4khuC1HYRDp0cU482Ewn/Fcy6bCjufD8vAj7voC66KQw==} engines: {node: '>=10'} hasBin: true dependencies: @@ -10709,32 +10417,32 @@ packages: hasBin: true dependencies: lru-cache: 6.0.0 + dev: true /sentence-case@3.0.4: resolution: {integrity: sha512-8LS0JInaQMCRoQ7YUytAo/xUu5W2XnQxV2HI/6uM6U7CITS1RqPElr30V6uIqyMKM9lJGRVFy5/4CuzcixNYSg==} dependencies: no-case: 3.0.4 - tslib: 2.6.1 + tslib: 2.6.2 upper-case-first: 2.0.2 dev: true - /serialize-javascript@6.0.0: - resolution: {integrity: sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==} - dependencies: - randombytes: 2.1.0 - dev: true - /set-blocking@2.0.0: resolution: {integrity: sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==} dev: true + /set-function-name@2.0.1: + resolution: {integrity: sha512-tMNCiqYVkXIZgc2Hnoy2IvC/f8ezc5koaRFkCjrpWzGpCd3qbZXPzVy9MAZzK1ch/X0jvSkojys3oqJN0qCmdA==} + engines: {node: '>= 0.4'} + dependencies: + define-data-property: 1.1.1 + functions-have-names: 1.2.3 + has-property-descriptors: 1.0.0 + dev: true + /setimmediate@1.0.5: resolution: {integrity: sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==} - /setprototypeof@1.2.0: - resolution: {integrity: sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==} - dev: true - /sha.js@2.4.11: resolution: {integrity: sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==} hasBin: true @@ -10773,7 +10481,7 @@ packages: dependencies: call-bind: 1.0.2 get-intrinsic: 1.2.1 - object-inspect: 1.12.3 + object-inspect: 1.13.0 /siginfo@2.0.0: resolution: {integrity: sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==} @@ -10782,8 +10490,8 @@ packages: /signal-exit@3.0.7: resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} - /signal-exit@4.0.2: - resolution: {integrity: sha512-MY2/qGx4enyjprQnFaZsHib3Yadh3IXyV2C321GY0pjGfVBu4un0uDJkwgdxqO+Rdx8JMT8IfJIRwbYVz3Ob3Q==} + /signal-exit@4.1.0: + resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==} engines: {node: '>=14'} dev: true @@ -10811,7 +10519,6 @@ packages: ansi-styles: 4.3.0 astral-regex: 2.0.0 is-fullwidth-code-point: 3.0.0 - dev: true /slice-ansi@5.0.0: resolution: {integrity: sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ==} @@ -10826,7 +10533,7 @@ packages: engines: {node: '>=6'} hasBin: true dependencies: - array.prototype.flat: 1.3.1 + array.prototype.flat: 1.3.2 breakword: 1.0.6 grapheme-splitter: 1.0.4 strip-ansi: 6.0.1 @@ -10838,7 +10545,7 @@ packages: resolution: {integrity: sha512-LAOh4z89bGQvl9pFfNF8V146i7o7/CqFPbqzYgP+yYzDIDeS9HaNFtXABamRW+AQzEVODcvE79ljJ+8a9YSdMg==} dependencies: dot-case: 3.0.4 - tslib: 2.6.1 + tslib: 2.6.2 dev: true /solc@0.4.26: @@ -10852,24 +10559,6 @@ packages: yargs: 4.8.1 dev: true - /solc@0.7.3(debug@4.3.4): - resolution: {integrity: sha512-GAsWNAjGzIDg7VxzP6mPjdurby3IkGCjQcM8GFYZT6RyaoUZKmMU6Y7YwG+tFGhv7dwZ8rmR4iwFDrrD99JwqA==} - engines: {node: '>=8.0.0'} - hasBin: true - dependencies: - command-exists: 1.2.9 - commander: 3.0.2 - follow-redirects: 1.15.2(debug@4.3.4) - fs-extra: 0.30.0 - js-sha3: 0.8.0 - memorystream: 0.3.1 - require-from-string: 2.0.2 - semver: 5.7.2 - tmp: 0.0.33 - transitivePeerDependencies: - - debug - dev: true - /solc@0.8.15: resolution: {integrity: sha512-Riv0GNHNk/SddN/JyEuFKwbcWcEeho15iyupTSHw5Np6WuXA5D8kEHbyzDHi6sqmvLzu2l+8b1YmL8Ytple+8w==} engines: {node: '>=10.0.0'} @@ -10877,7 +10566,7 @@ packages: dependencies: command-exists: 1.2.9 commander: 8.3.0 - follow-redirects: 1.15.2(debug@4.3.4) + follow-redirects: 1.15.3(debug@4.3.4) js-sha3: 0.8.0 memorystream: 0.3.1 semver: 5.7.2 @@ -10896,10 +10585,12 @@ packages: dependencies: buffer-from: 1.1.2 source-map: 0.6.1 + dev: false /source-map@0.6.1: resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} engines: {node: '>=0.10.0'} + dev: false /spawndamnit@2.0.0: resolution: {integrity: sha512-j4JKEcncSjFlqIwU5L/rp2N5SIPsdxaRsIv678+TZxZ0SRDJTm8JrxJMjE/XuiEZNEir3S8l0Fa3Ke339WI4qA==} @@ -10912,7 +10603,7 @@ packages: resolution: {integrity: sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==} dependencies: spdx-expression-parse: 3.0.1 - spdx-license-ids: 3.0.13 + spdx-license-ids: 3.0.16 dev: true /spdx-exceptions@2.3.0: @@ -10923,11 +10614,11 @@ packages: resolution: {integrity: sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==} dependencies: spdx-exceptions: 2.3.0 - spdx-license-ids: 3.0.13 + spdx-license-ids: 3.0.16 dev: true - /spdx-license-ids@3.0.13: - resolution: {integrity: sha512-XkD+zwiqXHikFZm4AX/7JSCXA98U5Db4AFd5XUg/+9UNtnH75+Z9KxtpYiJZx36mUDVOwH83pl7yvCer6ewM3w==} + /spdx-license-ids@3.0.16: + resolution: {integrity: sha512-eWN+LnM3GR6gPu35WxNgbGl8rmY1AEmoMDvL/QD6zYmPWgywxWqJWNdLGT+ke8dKNWrcYgYjPpG5gbTfghP8rw==} dev: true /split-ca@1.0.1: @@ -10937,7 +10628,7 @@ packages: /sponge-case@1.0.1: resolution: {integrity: sha512-dblb9Et4DAtiZ5YSUZHLl4XhH4uK80GhAZrVXdN4O2P4gQ40Wa5UIOPUHlA/nFd2PLblBZWUioLMMAVrgpoYcA==} dependencies: - tslib: 2.6.1 + tslib: 2.6.2 dev: true /sprintf-js@1.0.3: @@ -10962,22 +10653,14 @@ packages: resolution: {integrity: sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==} dev: true - /stacktrace-parser@0.1.10: - resolution: {integrity: sha512-KJP1OCML99+8fhOHxwwzyWrlUuVX5GQ0ZpJTd1DFXhdkrvg1szxfHhawXUZ3g9TkXORQd4/WG68jMlQZ2p8wlg==} - engines: {node: '>=6'} - dependencies: - type-fest: 0.7.1 - dev: true - - /statuses@2.0.1: - resolution: {integrity: sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==} - engines: {node: '>= 0.8'} - dev: true - /std-env@3.3.3: resolution: {integrity: sha512-Rz6yejtVyWnVjC1RFvNmYL10kgjC49EOghxWn0RFqlCHGFpQx+Xe7yW3I4ceK1SGrWIGMjD5Kbue8W/udkbMJg==} dev: true + /std-env@3.4.3: + resolution: {integrity: sha512-f9aPhy8fYBuMN+sNfakZV18U39PbalgjXG3lLB9WkaYTxijru61wb57V9wxxNthXM5Sd88ETBWi29qLAsHO52Q==} + dev: true + /stream-to-it@0.2.4: resolution: {integrity: sha512-4vEbkSs83OahpmBybNJXlJd7d6/RxzkkSdT3I0mnGt79Xd2Kk+e1JqbvAvsQfCeKj3aKb0QIWkyK3/n0j506vQ==} dependencies: @@ -11016,14 +10699,6 @@ packages: strip-ansi: 3.0.1 dev: true - /string-width@2.1.1: - resolution: {integrity: sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==} - engines: {node: '>=4'} - dependencies: - is-fullwidth-code-point: 2.0.0 - strip-ansi: 4.0.0 - dev: false - /string-width@4.2.3: resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} engines: {node: '>=8'} @@ -11041,29 +10716,29 @@ packages: strip-ansi: 7.1.0 dev: true - /string.prototype.trim@1.2.7: - resolution: {integrity: sha512-p6TmeT1T3411M8Cgg9wBTMRtY2q9+PNy9EV1i2lIXUN/btt763oIfxwN3RR8VU6wHX8j/1CFy0L+YuThm6bgOg==} + /string.prototype.trim@1.2.8: + resolution: {integrity: sha512-lfjY4HcixfQXOfaqCvcBuOIapyaroTXhbkfJN3gcB1OtyupngWK4sEET9Knd0cXd28kTUqu/kHoV4HKSJdnjiQ==} engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.2 - define-properties: 1.2.0 - es-abstract: 1.22.1 + define-properties: 1.2.1 + es-abstract: 1.22.2 dev: true - /string.prototype.trimend@1.0.6: - resolution: {integrity: sha512-JySq+4mrPf9EsDBEDYMOb/lM7XQLulwg5R/m1r0PXEFqrV0qHvl58sdTilSXtKOflCsK2E8jxf+GKC0T07RWwQ==} + /string.prototype.trimend@1.0.7: + resolution: {integrity: sha512-Ni79DqeB72ZFq1uH/L6zJ+DKZTkOtPIHovb3YZHQViE+HDouuU4mBrLOLDn5Dde3RF8qw5qVETEjhu9locMLvA==} dependencies: call-bind: 1.0.2 - define-properties: 1.2.0 - es-abstract: 1.22.1 + define-properties: 1.2.1 + es-abstract: 1.22.2 dev: true - /string.prototype.trimstart@1.0.6: - resolution: {integrity: sha512-omqjMDaY92pbn5HOX7f9IccLA+U1tA9GvtU4JrodiXFfYB7jPzzHpRzpglLAjtUV6bB557zwClJezTqnAiYnQA==} + /string.prototype.trimstart@1.0.7: + resolution: {integrity: sha512-NGhtDFu3jCEm7B4Fy0DpLewdJQOZcQ0rGbwQ/+stjnrp2i+rlKeCvos9hOIeCmqwratM47OBxY7uFZzjxHXmrg==} dependencies: call-bind: 1.0.2 - define-properties: 1.2.0 - es-abstract: 1.22.1 + define-properties: 1.2.1 + es-abstract: 1.22.2 dev: true /string_decoder@0.10.31: @@ -11088,11 +10763,11 @@ packages: ansi-regex: 2.1.1 dev: true - /strip-ansi@4.0.0: - resolution: {integrity: sha512-4XaJ2zQdCzROZDivEVIDPkcQn8LMFSa8kj8Gxb/Lnwzv9A8VctNZ+lfivC/sV3ivW8ElJTERXZoPBRrZKkNKow==} - engines: {node: '>=4'} + /strip-ansi@5.2.0: + resolution: {integrity: sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==} + engines: {node: '>=6'} dependencies: - ansi-regex: 3.0.1 + ansi-regex: 4.1.1 dev: false /strip-ansi@6.0.1: @@ -11147,8 +10822,8 @@ packages: engines: {node: '>=8'} dev: true - /strip-literal@1.2.0: - resolution: {integrity: sha512-tbehiynUAVoOhVKgpGG/xSIEPq3mDH3MmZ3957hiCBt2SnxkgOfXnZ8X2Kjfzb2L/6Vsv8Lnh8WT9qV5zQ0tMA==} + /strip-literal@1.3.0: + resolution: {integrity: sha512-PugKzOsyXpArk0yWmUwqOZecSO0GH0bPoctLcqNDH9J04pVW3lflYE0ujElBGTloevcxF5MofAOZ7C5l2b+wLg==} dependencies: acorn: 8.10.0 dev: true @@ -11190,7 +10865,7 @@ packages: /swap-case@2.0.2: resolution: {integrity: sha512-kc6S2YS/2yXbtkSMunBtKdah4VFETZ8Oh6ONSmSd9bRxhqTrtARUCBUiWXH3xVPpvR7tz2CSnkuXVE42EcGnMw==} dependencies: - tslib: 2.6.1 + tslib: 2.6.2 dev: true /sync-request@6.1.0: @@ -11213,7 +10888,7 @@ packages: engines: {node: ^14.18.0 || >=16.0.0} dependencies: '@pkgr/utils': 2.4.2 - tslib: 2.6.1 + tslib: 2.6.2 dev: true /table-layout@1.0.2: @@ -11268,13 +10943,13 @@ packages: readable-stream: 3.6.2 dev: true - /tar@6.1.13: - resolution: {integrity: sha512-jdIBIN6LTIe2jqzay/2vtYLlBHa3JF42ot3h1dW8Q0PaAG4v8rm0cvpVePtau5C6OKXGGcgO9q2AMNSWxiLqKw==} + /tar@6.2.0: + resolution: {integrity: sha512-/Wo7DcT0u5HUV486xg675HtjNd3BXZ6xDbzsCUZPt5iw8bTQ63bP0Raut3mvro9u+CUyq7YQd8Cx55fsZXxqLQ==} engines: {node: '>=10'} dependencies: chownr: 2.0.0 fs-minipass: 2.1.0 - minipass: 4.2.8 + minipass: 5.0.0 minizlib: 2.1.2 mkdirp: 1.0.4 yallist: 4.0.0 @@ -11301,14 +10976,14 @@ packages: '@types/concat-stream': 1.6.1 '@types/form-data': 0.0.33 '@types/node': 8.10.66 - '@types/qs': 6.9.7 + '@types/qs': 6.9.8 caseless: 0.12.0 concat-stream: 1.6.2 form-data: 2.5.1 http-basic: 8.1.3 http-response-object: 3.0.2 promise: 8.3.0 - qs: 6.11.1 + qs: 6.11.2 dev: false /through@2.3.8: @@ -11322,8 +10997,8 @@ packages: retimer: 3.0.0 dev: false - /tinybench@2.5.0: - resolution: {integrity: sha512-kRwSG8Zx4tjF9ZiyH4bhaebu+EDz1BOx9hOigYHlUW4xxI/wKIUQUqo018UlU4ar6ATPBsaMrdbKZ+tmPdohFA==} + /tinybench@2.5.1: + resolution: {integrity: sha512-65NKvSuAVDP/n4CqH+a9w2kTlLReS9vhsAP06MWx+/89nMinJyB2icyl58RIcqCmIggpojIGeuJGhjU1aGMBSg==} dev: true /tinypool@0.7.0: @@ -11331,15 +11006,15 @@ packages: engines: {node: '>=14.0.0'} dev: true - /tinyspy@2.1.1: - resolution: {integrity: sha512-XPJL2uSzcOyBMky6OFrusqWlzfFrXtE0hPuMgW8A2HmaqrPo4ZQHRN/V0QXN3FSjKxpsbRrFc5LI7KOwBsT1/w==} + /tinyspy@2.2.0: + resolution: {integrity: sha512-d2eda04AN/cPOR89F7Xv5bK/jrQEhmcLFe6HFldoeO9AJtps+fqEnh486vnT/8y4bw38pSyxDcTCAq+Ks2aJTg==} engines: {node: '>=14.0.0'} dev: true /title-case@3.0.3: resolution: {integrity: sha512-e1zGYRvbffpcHIrnuqT0Dh+gEJtDaxDSoG4JAIpq4oDFyooziLBIiYQv0GBT4FUAnUop5uZ1hiIAj7oAF6sOCA==} dependencies: - tslib: 2.6.1 + tslib: 2.6.2 dev: true /titleize@3.0.0: @@ -11382,11 +11057,6 @@ packages: dependencies: is-number: 7.0.0 - /toidentifier@1.0.1: - resolution: {integrity: sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==} - engines: {node: '>=0.6'} - dev: true - /tough-cookie@2.5.0: resolution: {integrity: sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==} engines: {node: '>=0.8'} @@ -11407,43 +11077,38 @@ packages: engines: {node: '>=8'} dev: true - /ts-api-utils@1.0.1(typescript@5.1.6): - resolution: {integrity: sha512-lC/RGlPmwdrIBFTX59wwNzqh7aR2otPNPR/5brHZm/XKFYKsfqxihXUe9pU3JI+3vGkl+vyCoNNnPhJn3aLK1A==} + /ts-api-utils@1.0.3(typescript@5.2.2): + resolution: {integrity: sha512-wNMeqtMz5NtwpT/UZGY5alT+VoKdSsOOP/kqHFcUW1P/VRhH2wJ48+DN2WwUliNbQ976ETwDL0Ifd2VVvgonvg==} engines: {node: '>=16.13.0'} peerDependencies: typescript: '>=4.2.0' dependencies: - typescript: 5.1.6 + typescript: 5.2.2 dev: true - /ts-command-line-args@2.5.0(typescript@5.1.6): - resolution: {integrity: sha512-Ff7Xt04WWCjj/cmPO9eWTJX3qpBZWuPWyQYG1vnxJao+alWWYjwJBc5aYz3h5p5dE08A6AnpkgiCtP/0KXXBYw==} + /ts-command-line-args@2.5.1: + resolution: {integrity: sha512-H69ZwTw3rFHb5WYpQya40YAX2/w7Ut75uUECbgBIsLmM+BNuYnxsltfyyLMxy6sEeKxgijLTnQtLd0nKd6+IYw==} hasBin: true dependencies: - '@morgan-stanley/ts-mocking-bird': 0.6.4(typescript@5.1.6) chalk: 4.1.2 command-line-args: 5.2.1 command-line-usage: 6.1.3 string-format: 2.0.0 - transitivePeerDependencies: - - jasmine - - jest - - typescript dev: true - /ts-essentials@7.0.3(typescript@5.1.6): + /ts-essentials@7.0.3(typescript@5.2.2): resolution: {integrity: sha512-8+gr5+lqO3G84KdiTSMRLtuyJ+nTBVRKuCrK4lidMPdVeEp0uqC875uE5NMcaA7YYMN7XsNiFQuMvasF8HT/xQ==} peerDependencies: typescript: '>=3.7.0' dependencies: - typescript: 5.1.6 + typescript: 5.2.2 dev: true /ts-log@2.2.5: resolution: {integrity: sha512-PGcnJoTBnVGy6yYNFxWVNkdcAuAMstvutN9MgDJIV6L0oG8fB+ZNNy1T+wJzah8RPGor1mZuPQkVfXNDpy9eHA==} dev: true - /ts-node@10.9.1(@types/node@20.4.5)(typescript@5.1.6): + /ts-node@10.9.1(@types/node@20.8.6)(typescript@5.2.2): resolution: {integrity: sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==} hasBin: true peerDependencies: @@ -11461,22 +11126,18 @@ packages: '@tsconfig/node10': 1.0.9 '@tsconfig/node12': 1.0.11 '@tsconfig/node14': 1.0.3 - '@tsconfig/node16': 1.0.3 - '@types/node': 20.4.5 + '@tsconfig/node16': 1.0.4 + '@types/node': 20.8.6 acorn: 8.10.0 acorn-walk: 8.2.0 arg: 4.1.3 create-require: 1.1.1 diff: 4.0.2 make-error: 1.3.6 - typescript: 5.1.6 + typescript: 5.2.2 v8-compile-cache-lib: 3.0.1 yn: 3.1.1 - /tslib@1.14.1: - resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==} - dev: true - /tslib@2.5.3: resolution: {integrity: sha512-mSxlJJwl3BMEQCUNnxXBU9jP4JBktcEGhURcPR6VQVlnP0FdDEsIaz0C35dXNGLyRfrATNofF0F5p2KPxQgB+w==} dev: true @@ -11485,15 +11146,11 @@ packages: resolution: {integrity: sha512-7At1WUettjcSRHXCyYtTselblcHl9PJFFVKiCAy/bY97+BPZXSQ2wbq0P9s8tK2G7dFQfNnlJnPAiArVBVBsfA==} dev: true - /tslib@2.6.1: - resolution: {integrity: sha512-t0hLfiEKfMUoqhG+U1oid7Pva4bbDPHYfJNiB7BiIjRkj1pyC++4N3huJfqY6aRH6VTB0rvtzQwjM4K6qpfOig==} + /tslib@2.6.2: + resolution: {integrity: sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==} - /tsort@0.0.1: - resolution: {integrity: sha512-Tyrf5mxF8Ofs1tNoxA13lFeZ2Zrbd6cKbuH3V+MQ5sb6DtBj5FjrXVsRWT8YvNAQTqNoz66dz1WsbigI22aEnw==} - dev: true - - /tty-table@4.2.1: - resolution: {integrity: sha512-xz0uKo+KakCQ+Dxj1D/tKn2FSyreSYWzdkL/BYhgN6oMW808g8QRMuh1atAV9fjTPbWBjfbkKQpI/5rEcnAc7g==} + /tty-table@4.2.2: + resolution: {integrity: sha512-2gvCArMZLxgvpZ2NvQKdnYWIFLe7I/z5JClMuhrDXunmKgSZcQKcZRjN9XjAFiToMz2pUo1dEIXyrm0AwgV5Tw==} engines: {node: '>=8.0.0'} hasBin: true dependencies: @@ -11511,17 +11168,9 @@ packages: dependencies: safe-buffer: 5.2.1 - /tweetnacl-util@0.15.1: - resolution: {integrity: sha512-RKJBIj8lySrShN4w6i/BonWp2Z/uxwC3h4y7xsRrpP59ZboCd0GpEVsOnMDYLMmKBpYhb5TgHzZXy7wTfYFBRw==} - dev: true - /tweetnacl@0.14.5: resolution: {integrity: sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA==} - /tweetnacl@1.0.3: - resolution: {integrity: sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw==} - dev: true - /type-check@0.4.0: resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} engines: {node: '>= 0.8.0'} @@ -11553,16 +11202,16 @@ packages: engines: {node: '>=8'} dev: true - /type-fest@0.7.1: - resolution: {integrity: sha512-Ne2YiiGN8bmrmJJEuTWTLJR32nh/JdL1+PSicowtNb0WFpn59GK8/lfD61bVtzguz7b3PBt74nxpv/Pw5po5Rg==} - engines: {node: '>=8'} - dev: true - /type-fest@0.8.1: resolution: {integrity: sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==} engines: {node: '>=8'} dev: true + /type-fest@1.4.0: + resolution: {integrity: sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==} + engines: {node: '>=10'} + dev: true + /type@1.2.0: resolution: {integrity: sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg==} dev: false @@ -11571,13 +11220,13 @@ packages: resolution: {integrity: sha512-dzlvlNlt6AXU7EBSfpAscydQ7gXB+pPGsPnfJnZpiNJBDj7IaJzQlBZYGdEi4R9HmPdBv2XmWJ6YUtoTa7lmCw==} dev: false - /typechain@8.1.1(typescript@5.1.6): - resolution: {integrity: sha512-uF/sUvnXTOVF2FHKhQYnxHk4su4JjZR8vr4mA2mBaRwHTbwh0jIlqARz9XJr1tA0l7afJGvEa1dTSi4zt039LQ==} + /typechain@8.3.2(typescript@5.2.2): + resolution: {integrity: sha512-x/sQYr5w9K7yv3es7jo4KTX05CLxOf7TRWwoHlrjRh8H82G64g+k7VuWPJlgMo6qrjfCulOdfBjiaDtmhFYD/Q==} hasBin: true peerDependencies: typescript: '>=4.3.0' dependencies: - '@types/prettier': 2.7.2 + '@types/prettier': 2.7.3 debug: 4.3.4(supports-color@8.1.1) fs-extra: 7.0.1 glob: 7.1.7 @@ -11585,12 +11234,10 @@ packages: lodash: 4.17.21 mkdirp: 1.0.4 prettier: 2.8.8 - ts-command-line-args: 2.5.0(typescript@5.1.6) - ts-essentials: 7.0.3(typescript@5.1.6) - typescript: 5.1.6 + ts-command-line-args: 2.5.1 + ts-essentials: 7.0.3(typescript@5.2.2) + typescript: 5.2.2 transitivePeerDependencies: - - jasmine - - jest - supports-color dev: true @@ -11642,8 +11289,8 @@ packages: resolution: {integrity: sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==} dev: false - /typescript@5.1.6: - resolution: {integrity: sha512-zaWCozRZ6DLEWAWFrVDz1H6FVXzUSfTy5FUMWsQlU8Ym5JP9eO4xkTIROFCQvhQf61z6O/G6ugw3SgAnvvm+HA==} + /typescript@5.2.2: + resolution: {integrity: sha512-mI4WrpHsbCIcwT9cF4FZvr80QUeKvsUsUvKDoR+X/7XHQH98xYD8YHZg7ANtz2GtZt/CBq2QJ0thkGJMHfqc1w==} engines: {node: '>=14.17'} hasBin: true @@ -11657,12 +11304,12 @@ packages: engines: {node: '>=8'} dev: true - /ua-parser-js@1.0.35: - resolution: {integrity: sha512-fKnGuqmTBnIE+/KXSzCn4db8RTigUzw1AN0DmdU6hJovUTbYJKyqj+8Mt1c4VfRDnOVJnENmfYkIPZ946UrSAA==} + /ua-parser-js@1.0.36: + resolution: {integrity: sha512-znuyCIXzl8ciS3+y3fHJI/2OhQIXbXw9MWC/o3qwyR+RGppjZHrM27CGFSKCJXi2Kctiz537iOu2KnXs1lMQhw==} dev: true - /ufo@1.2.0: - resolution: {integrity: sha512-RsPyTbqORDNDxqAdQPQBpgqhWle1VcTSou/FraClYlHf6TZnQcGslpLcAphNR+sQW4q5lLWLbOsRlh9j24baQg==} + /ufo@1.3.1: + resolution: {integrity: sha512-uY/99gMLIOlJPwATcMVYfqDSxUR9//AUcgZMzwfSTJPDKzA1S8mX4VLqa+fiAtveraQUBCz4FFcwVZBGbwBXIw==} dev: true /uint8arrays@3.1.1: @@ -11685,11 +11332,14 @@ packages: engines: {node: '>=0.10.0'} dev: true - /undici@5.22.1: - resolution: {integrity: sha512-Ji2IJhFXZY0x/0tVBXeQwgPlLWw13GVzpsWPQ3rV50IFMMof2I55PZZxtm4P6iNq+L5znYN9nSTAq0ZyE6lSJw==} + /undici-types@5.25.3: + resolution: {integrity: sha512-Ga1jfYwRn7+cP9v8auvEXN1rX3sWqlayd4HP7OKk4mZWylEmu3KzXDUGrQUN6Ol7qo1gPvB2e5gX6udnyEPgdA==} + + /undici@5.26.3: + resolution: {integrity: sha512-H7n2zmKEWgOllKkIUkLvFmsJQj062lSm3uA4EYApG8gLuiOM0/go9bIoC3HVaSnfg4xunowDE2i9p8drkXuvDw==} engines: {node: '>=14.0'} dependencies: - busboy: 1.6.0 + '@fastify/busboy': 2.0.0 dev: true /undici@5.5.1: @@ -11713,23 +11363,18 @@ packages: normalize-path: 2.1.1 dev: true - /unpipe@1.0.0: - resolution: {integrity: sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==} - engines: {node: '>= 0.8'} - dev: true - /untildify@4.0.0: resolution: {integrity: sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw==} engines: {node: '>=8'} dev: true - /update-browserslist-db@1.0.11(browserslist@4.21.9): - resolution: {integrity: sha512-dCwEFf0/oT85M1fHBg4F0jtLwJrutGoHSQXCh7u4o2t1drG+c0a9Flnqww6XUKSfQMPpJBRjU8d4RXB09qtvaA==} + /update-browserslist-db@1.0.13(browserslist@4.22.1): + resolution: {integrity: sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==} hasBin: true peerDependencies: browserslist: '>= 4.21.0' dependencies: - browserslist: 4.21.9 + browserslist: 4.22.1 escalade: 3.1.1 picocolors: 1.0.0 dev: true @@ -11737,13 +11382,13 @@ packages: /upper-case-first@2.0.2: resolution: {integrity: sha512-514ppYHBaKwfJRK/pNC6c/OxfGa0obSnAl106u97Ed0I625Nin96KAjttZF6ZL3e1XLtphxnqrOi9iWgm+u+bg==} dependencies: - tslib: 2.6.1 + tslib: 2.6.2 dev: true /upper-case@2.0.2: resolution: {integrity: sha512-KgdgDGJt2TpuwBUIjgG6lzw2GWFRCW9Qkfkiv0DxqHHLYJHmtmdUIKcZd8rHgFSjopVTlw6ggzCm1b8MFQwikg==} dependencies: - tslib: 2.6.1 + tslib: 2.6.2 dev: true /uri-js@4.4.1: @@ -11751,11 +11396,11 @@ packages: dependencies: punycode: 2.3.0 - /url@0.11.0: - resolution: {integrity: sha512-kbailJa29QrtXnxgq+DdCEGlbTeYM2eJUxsz6vjZavrCYPMIFHMKQmSKYAIuUK2i7hgPm28a8piX5NTUtM/LKQ==} + /url@0.11.3: + resolution: {integrity: sha512-6hxOLGfZASQK/cijlZnZJTq8OXAkt/3YGfQX45vvMYXpZoo8NdWZcY73K108Jf759lS1Bv/8wXnHDTSz17dSRw==} dependencies: - punycode: 1.3.2 - querystring: 0.2.0 + punycode: 1.4.1 + qs: 6.11.2 dev: true /urlpattern-polyfill@8.0.2: @@ -11770,7 +11415,7 @@ packages: engines: {node: '>=6.14.2'} requiresBuild: true dependencies: - node-gyp-build: 4.6.0 + node-gyp-build: 4.6.1 dev: false /utf-8-validate@5.0.7: @@ -11778,7 +11423,7 @@ packages: engines: {node: '>=6.14.2'} requiresBuild: true dependencies: - node-gyp-build: 4.6.0 + node-gyp-build: 4.6.1 dev: true optional: true @@ -11793,14 +11438,10 @@ packages: deprecated: Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details. hasBin: true - /uuid@7.0.3: - resolution: {integrity: sha512-DPSke0pXhTZgoF/d+WSt2QaKMCFSfx7QegxEWT+JOuHF5aWrKEn0G+ztjuJg/gG8/ItK+rbPCD/yNv8yyih6Cg==} - hasBin: true - dev: true - /uuid@8.3.2: resolution: {integrity: sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==} hasBin: true + dev: false /v8-compile-cache-lib@3.0.1: resolution: {integrity: sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==} @@ -11829,8 +11470,8 @@ packages: core-util-is: 1.0.2 extsprintf: 1.3.0 - /viem@1.10.9(typescript@5.1.6)(zod@3.21.4): - resolution: {integrity: sha512-fhQxnMBFwGbyE/VOfcvcavxAPyqIHSgOB793gQcMPH1B9ahQvjMe3C3icqypC01ACaqpDPgYWGfvF/ExTeIPuA==} + /viem@1.16.6(typescript@5.2.2)(zod@3.22.4): + resolution: {integrity: sha512-jcWcFQ+xzIfDwexwPJRvCuCRJKEkK9iHTStG7mpU5MmuSBpACs4nATBDyXNFtUiyYTFzLlVEwWkt68K0nCSImg==} peerDependencies: typescript: '>=5.0.4' peerDependenciesMeta: @@ -11842,10 +11483,9 @@ packages: '@noble/hashes': 1.3.2 '@scure/bip32': 1.3.2 '@scure/bip39': 1.2.1 - '@types/ws': 8.5.5 - abitype: 0.9.8(typescript@5.1.6)(zod@3.21.4) - isomorphic-ws: 5.0.0(ws@8.13.0) - typescript: 5.1.6 + abitype: 0.9.8(typescript@5.2.2)(zod@3.22.4) + isows: 1.0.3(ws@8.13.0) + typescript: 5.2.2 ws: 8.13.0 transitivePeerDependencies: - bufferutil @@ -11853,17 +11493,17 @@ packages: - zod dev: true - /vite-node@0.34.1(@types/node@20.4.5): - resolution: {integrity: sha512-odAZAL9xFMuAg8aWd7nSPT+hU8u2r9gU3LRm9QKjxBEF2rRdWpMuqkrkjvyVQEdNFiBctqr2Gg4uJYizm5Le6w==} + /vite-node@0.34.6(@types/node@20.8.6): + resolution: {integrity: sha512-nlBMJ9x6n7/Amaz6F3zJ97EBwR2FkzhBRxF5e+jE6LA3yi6Wtc2lyTij1OnDMIr34v5g/tVQtsVAzhT0jc5ygA==} engines: {node: '>=v14.18.0'} hasBin: true dependencies: cac: 6.7.14 debug: 4.3.4(supports-color@8.1.1) - mlly: 1.4.0 + mlly: 1.4.2 pathe: 1.1.1 picocolors: 1.0.0 - vite: 4.4.8(@types/node@20.4.5) + vite: 4.4.11(@types/node@20.8.6) transitivePeerDependencies: - '@types/node' - less @@ -11875,8 +11515,8 @@ packages: - terser dev: true - /vite@4.4.8(@types/node@20.4.5): - resolution: {integrity: sha512-LONawOUUjxQridNWGQlNizfKH89qPigK36XhMI7COMGztz8KNY0JHim7/xDd71CZwGT4HtSRgI7Hy+RlhG0Gvg==} + /vite@4.4.11(@types/node@20.8.6): + resolution: {integrity: sha512-ksNZJlkcU9b0lBwAGZGGaZHCMqHsc8OpgtoYhsQ4/I2v5cnpmmmqe5pM4nv/4Hn6G/2GhTdj0DhZh2e+Er1q5A==} engines: {node: ^14.18.0 || >=16.0.0} hasBin: true peerDependencies: @@ -11903,16 +11543,16 @@ packages: terser: optional: true dependencies: - '@types/node': 20.4.5 - esbuild: 0.18.17 - postcss: 8.4.27 - rollup: 3.27.0 + '@types/node': 20.8.6 + esbuild: 0.18.20 + postcss: 8.4.31 + rollup: 3.29.4 optionalDependencies: - fsevents: 2.3.2 + fsevents: 2.3.3 dev: true - /vitest@0.34.1: - resolution: {integrity: sha512-G1PzuBEq9A75XSU88yO5G4vPT20UovbC/2osB2KEuV/FisSIIsw7m5y2xMdB7RsAGHAfg2lPmp2qKr3KWliVlQ==} + /vitest@0.34.6: + resolution: {integrity: sha512-+5CALsOvbNKnS+ZHMXtuUC7nL8/7F1F2DnHGjSsszX8zCjWSSviphCb/NuS9Nzf4Q03KyyDRBAXhF/8lffME4Q==} engines: {node: '>=v14.18.0'} hasBin: true peerDependencies: @@ -11942,29 +11582,29 @@ packages: webdriverio: optional: true dependencies: - '@types/chai': 4.3.5 + '@types/chai': 4.3.8 '@types/chai-subset': 1.3.3 - '@types/node': 20.4.5 - '@vitest/expect': 0.34.1 - '@vitest/runner': 0.34.1 - '@vitest/snapshot': 0.34.1 - '@vitest/spy': 0.34.1 - '@vitest/utils': 0.34.1 + '@types/node': 20.8.6 + '@vitest/expect': 0.34.6 + '@vitest/runner': 0.34.6 + '@vitest/snapshot': 0.34.6 + '@vitest/spy': 0.34.6 + '@vitest/utils': 0.34.6 acorn: 8.10.0 acorn-walk: 8.2.0 cac: 6.7.14 - chai: 4.3.7 + chai: 4.3.10 debug: 4.3.4(supports-color@8.1.1) local-pkg: 0.4.3 - magic-string: 0.30.2 + magic-string: 0.30.5 pathe: 1.1.1 picocolors: 1.0.0 - std-env: 3.3.3 - strip-literal: 1.2.0 - tinybench: 2.5.0 + std-env: 3.4.3 + strip-literal: 1.3.0 + tinybench: 2.5.1 tinypool: 0.7.0 - vite: 4.4.8(@types/node@20.4.5) - vite-node: 0.34.1(@types/node@20.4.5) + vite: 4.4.11(@types/node@20.8.6) + vite-node: 0.34.6(@types/node@20.8.6) why-is-node-running: 2.2.2 transitivePeerDependencies: - less @@ -12003,13 +11643,14 @@ packages: web3-utils: 1.7.0 dev: false - /web3-utils@1.10.0: - resolution: {integrity: sha512-kSaCM0uMcZTNUSmn5vMEhlo02RObGNRRCkdX0V9UTAU0+lrvn0HSaudyCo6CQzuXUsnuY2ERJGCGPfeWmv19Rg==} + /web3-utils@1.10.2: + resolution: {integrity: sha512-TdApdzdse5YR+5GCX/b/vQnhhbj1KSAtfrDtRW7YS0kcWp1gkJsN62gw6GzCaNTeXookB7UrLtmDUuMv65qgow==} engines: {node: '>=8.0.0'} dependencies: + '@ethereumjs/util': 8.1.0 bn.js: 5.2.1 ethereum-bloom-filters: 1.0.10 - ethereumjs-util: 7.1.5 + ethereum-cryptography: 2.1.2 ethjs-unit: 0.1.6 number-to-bn: 1.7.0 randombytes: 2.1.0 @@ -12035,8 +11676,8 @@ packages: '@peculiar/asn1-schema': 2.3.6 '@peculiar/json-schema': 1.1.12 asn1js: 3.0.5 - pvtsutils: 1.3.2 - tslib: 2.6.1 + pvtsutils: 1.3.5 + tslib: 2.6.2 /webidl-conversions@3.0.1: resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==} @@ -12045,7 +11686,7 @@ packages: resolution: {integrity: sha512-PRDso2sGwF6kM75QykIesBijKSVceR6jL2G8NGYyq2XrItNC2P5/qL5XeR056GhA+Ly7JMFvJb9I312mJfmqnQ==} engines: {node: '>=4.0.0'} dependencies: - bufferutil: 4.0.7 + bufferutil: 4.0.8 debug: 2.6.9 es5-ext: 0.10.62 typedarray-to-buffer: 3.1.5 @@ -12144,10 +11785,6 @@ packages: typical: 5.2.0 dev: true - /workerpool@6.2.1: - resolution: {integrity: sha512-ILEIE97kDZvF9Wb9f6h5aXK4swSlKGUcOEGiIYb2OOu/IrDU9iwj0fD//SsA6E5ibwJxpEvhullJY4Sl4GcpAw==} - dev: true - /wrap-ansi@2.1.0: resolution: {integrity: sha512-vAaEaDM946gbNpH5pLVNR+vX2ht6n0Bt3GXwVB1AuAqZosOvHNF3P7wDnh8KLkSqgUh0uh77le7Owgoz+Z9XBw==} engines: {node: '>=0.10.0'} @@ -12208,6 +11845,7 @@ packages: optional: true utf-8-validate: optional: true + dev: false /ws@8.13.0: resolution: {integrity: sha512-x9vcZYTrFPC7aSIbj7sRCYo7L/Xb8Iy+pW0ng0wt2vCJv7M9HOMy0UoN3rr+IFC7hb7vXoqS+P9ktyLLLhO+LA==} @@ -12222,6 +11860,19 @@ packages: optional: true dev: true + /ws@8.14.2: + resolution: {integrity: sha512-wEBG1ftX4jcglPxgFCMJmZ2PLtSbJ2Peg6TmpJFTbe9GZYOQCDPdMYu/Tm0/bGZkw8paZnJY45J4K2PZrLYq8g==} + engines: {node: '>=10.0.0'} + peerDependencies: + bufferutil: ^4.0.1 + utf-8-validate: '>=5.0.2' + peerDependenciesMeta: + bufferutil: + optional: true + utf-8-validate: + optional: true + dev: true + /xtend@4.0.2: resolution: {integrity: sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==} engines: {node: '>=0.4'} @@ -12264,17 +11915,15 @@ packages: engines: {node: '>= 6'} dev: false - /yaml@2.3.1: - resolution: {integrity: sha512-2eHWfjaoXgTBC2jNM1LRef62VQa0umtvRiDSk6HSzW7RvS5YtkabJrwYLLEKWBc8a5U2PTSCs+dJjUTJdlHsWQ==} + /yaml@2.3.2: + resolution: {integrity: sha512-N/lyzTPaJasoDmfV7YTrYCI0G/3ivm/9wdG0aHuheKowWQwGTsK0Eoiw6utmzAnI6pkJa0DUVygvp3spqqEKXg==} engines: {node: '>= 14'} dev: true - /yargs-parser@16.1.0: - resolution: {integrity: sha512-H/V41UNZQPkUMIT5h5hiwg4QKIY1RPvoBV4XcjUbRM8Bk2oKqqyZ0DIEbTFZB0XjbtSPG8SAa/0DxCQmiRgzKg==} - dependencies: - camelcase: 5.3.1 - decamelize: 1.2.0 - dev: false + /yaml@2.3.3: + resolution: {integrity: sha512-zw0VAJxgeZ6+++/su5AFoqBbZbrEakwu+X0M5HmcwUiBL7AzcuPKjj5we4xfQLp78LkEMpD0cOnUhmgOVy3KdQ==} + engines: {node: '>= 14'} + dev: true /yargs-parser@18.1.3: resolution: {integrity: sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==} @@ -12291,25 +11940,9 @@ packages: lodash.assign: 4.2.0 dev: true - /yargs-parser@20.2.4: - resolution: {integrity: sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==} - engines: {node: '>=10'} - dev: true - /yargs-parser@21.1.1: resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==} engines: {node: '>=12'} - dev: true - - /yargs-unparser@2.0.0: - resolution: {integrity: sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA==} - engines: {node: '>=10'} - dependencies: - camelcase: 6.3.0 - decamelize: 4.0.0 - flat: 5.0.2 - is-plain-obj: 2.1.0 - dev: true /yargs@15.4.1: resolution: {integrity: sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==} @@ -12328,19 +11961,6 @@ packages: yargs-parser: 18.1.3 dev: true - /yargs@16.2.0: - resolution: {integrity: sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==} - engines: {node: '>=10'} - dependencies: - cliui: 7.0.4 - escalade: 3.1.1 - get-caller-file: 2.0.5 - require-directory: 2.1.1 - string-width: 4.2.3 - y18n: 5.0.8 - yargs-parser: 20.2.4 - dev: true - /yargs@17.7.2: resolution: {integrity: sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==} engines: {node: '>=12'} @@ -12387,47 +12007,5 @@ packages: engines: {node: '>=12.20'} dev: true - /zod@3.21.4: - resolution: {integrity: sha512-m46AKbrzKVzOzs/DZgVnG5H55N1sv1M8qZU3A8RIKbs3mrACDNeIOeilDymVb2HdmP8uwshOCF4uJ8uM9rCqJw==} - - github.com/edgeandnode/gluegun/b34b9003d7bf556836da41b57ef36eb21570620a(debug@4.3.4): - resolution: {tarball: https://codeload.github.com/edgeandnode/gluegun/tar.gz/b34b9003d7bf556836da41b57ef36eb21570620a} - id: github.com/edgeandnode/gluegun/b34b9003d7bf556836da41b57ef36eb21570620a - name: gluegun - version: 4.3.1 - hasBin: true - dependencies: - apisauce: 1.1.5(debug@4.3.4) - app-module-path: 2.2.0 - cli-table3: 0.5.1 - colors: 1.3.3 - cosmiconfig: 6.0.0 - cross-spawn: 7.0.3 - ejs: 2.7.4 - enquirer: 2.3.4 - execa: 3.4.0 - fs-jetpack: 2.4.0 - lodash.camelcase: 4.3.0 - lodash.kebabcase: 4.1.1 - lodash.lowercase: 4.3.0 - lodash.lowerfirst: 4.3.1 - lodash.pad: 4.5.1 - lodash.padend: 4.6.1 - lodash.padstart: 4.6.1 - lodash.repeat: 4.1.0 - lodash.snakecase: 4.1.1 - lodash.startcase: 4.4.0 - lodash.trim: 4.5.1 - lodash.trimend: 4.5.1 - lodash.trimstart: 4.5.1 - lodash.uppercase: 4.3.0 - lodash.upperfirst: 4.3.1 - ora: 4.1.1 - pluralize: 8.0.0 - ramdasauce: 2.1.3 - semver: 7.5.4 - which: 2.0.2 - yargs-parser: 16.1.0 - transitivePeerDependencies: - - debug - dev: false + /zod@3.22.4: + resolution: {integrity: sha512-iC+8Io04lddc+mVqQ9AZ7OQ2MrUKGN+oIQyq1vemgt46jwCwLfhq7/pwnBnNXXXZb8VTVLKwp9EDkx+ryxIWmg==} diff --git a/packages/tiered-sdk-viem/schema.graphql b/schema.graphql similarity index 82% rename from packages/tiered-sdk-viem/schema.graphql rename to schema.graphql index 71a4ba1c..3079bfc9 100644 --- a/packages/tiered-sdk-viem/schema.graphql +++ b/schema.graphql @@ -139,6 +139,7 @@ enum ActivityFeedGroupFilterOption { ALL COLLECTED LIKES + POSTS RELEASE_DROPPED } @@ -151,6 +152,7 @@ union ActivityFeedGroupInfo = | ShelfCreatedAggregate | SongCollectedByManyAggregate | UserCollectedManySongsAggregate + | UserCreatedPostAggregate | UserLikedPlaylistAggregate | UserLikedSongsAggregate @@ -217,7 +219,11 @@ type Airdrop implements CollectorAction & Node & ReleaseAction { """ date: DateTime! """ - Starting token ID of NFT for bonding curve sale purchase + Starting serial number of NFT for airdrop + """ + fromSerialNumber: Int + """ + Starting token ID of NFT for airdrop """ fromTokenId: Int! """ @@ -237,7 +243,15 @@ type Airdrop implements CollectorAction & Node & ReleaseAction { """ serialNumber: Int! """ - Ending token ID of NFT for bonding curve sale purchase + tierNumber of the NFT + """ + tierNumber: Int + """ + Ending serial number of NFT for airdrop + """ + toSerialNumber: Int + """ + Ending token ID of NFT for airdrop """ toTokenId: Int! """ @@ -286,11 +300,19 @@ input AllCollectorsCursorConnectionSort { Filter the allCollectors result """ input AllCollectorsFilter { + """ + Genre names to filter on for collector's releases + """ + genres: [Genres!] """ Should it include artists as collectors """ includeArtists: Boolean! = true """ + Location ids to filter on for collector's releases + """ + locationIds: [String!] + """ Should it only include collectors with a valid username (twitterHandle, ens or displayName) """ onlyWithUsername: Boolean! = false @@ -350,6 +372,10 @@ input AllShelvesCursorConnectionSort { Filter the shelves of allShelves query """ input AllShelvesFilter { + """ + Genre names to filter on for shelf songs + """ + genres: [Genres!] """ Filter the shelves based on the expected types """ @@ -455,6 +481,10 @@ type Artist implements Node { } ): Int! """ + Picked release of artist + """ + pickedRelease: Release + """ Paginated releases of artist. """ releases( @@ -562,6 +592,7 @@ enum ArtistActivityFeedActivityTypeFilterOption { COLLECTIONS LIKES PLAYLISTS + POSTS RELEASES } @@ -658,6 +689,10 @@ type ArtistApplicationInfo { """ soundHandle: String! """ + Spotify URL + """ + spotifyUrl: String + """ Twitter handle """ twitterHandle: String @@ -851,10 +886,26 @@ Filter for paginated artists """ input ArtistCursorFilterArgs { """ - Specify whether artist already has at least one minted release + Genre names to filter on for artist's releases + """ + genres: [Genres!] + """ + Specify whether artist already has at least one collector (minted release) + """ + hasCollector: Boolean + """ + Specify whether artist already has at least one release """ hasMintedRelease: Boolean """ + Specify whether artist already has at least one release + """ + hasRelease: Boolean + """ + Location IDs from Google Places API to filter on for artist's releases + """ + locationIds: [String!] + """ Specify season to be filtered """ season: ArtistSeason @@ -954,6 +1005,68 @@ type ArtistPartnershipHighlight { linkUrl: String! } +""" +Artist private community user member only to be accessed by the artist. +""" +type ArtistPrivateCommunityMember implements Node { + """ + Artist community collector + """ + artistCollector: ArtistCollector! + """ + Unique id of user + """ + id: ID! + """ + Verified email address of user if subscribed to artist + """ + subscriptionEmail: String + """ + Artist community user + """ + user: User! @deprecated(reason: "Please use artistCollector") +} + +""" +Edge of Artist Private Community Member Connection +""" +type ArtistPrivateCommunityMemberConnectionEdge implements Edge { + """ + Cursor to be used for pagination + """ + cursor: String! + """ + ArtistPrivateCommunityMember node + """ + node: ArtistPrivateCommunityMember! +} + +""" +A release by the user was posted to feed by another user +""" +type ArtistReleasePosted implements Node & UserNotification { + """ + UserNotification UUID + """ + id: ID! + """ + Post entity + """ + post: Post + """ + Posted release entity + """ + release: Release + """ + Timestamp for notification + """ + timestamp: Timestamp! + """ + Recipient user entity + """ + user: User +} + """ Artist releases author filter option """ @@ -1002,6 +1115,42 @@ input ArtistReleasesFilter { releaseType: [ReleaseType!]! = [SINGLE, ALBUM, ALBUM_TRACK] } +""" +Filter the artists to be searched +""" +input ArtistSearchFilter { + """ + Genre names to filter on for artist's releases + """ + genres: [Genres!] + """ + Only include artists that either have or don't have collectors + """ + hasCollectors: Boolean + """ + Location IDs from Google Places API to filter on for artist's releases + """ + locationIds: [String!] +} + +""" +Customize sort of releases +""" +input ArtistSearchSort { + """ + Sort by creation date + """ + createdAt: SortOrder + """ + Sort by number of mints of each release + """ + totalMinted: SortOrder + """ + Sort by total volume of all artist releases + """ + totalVolume: SortOrder +} + """ Types of seasons for artists """ @@ -1013,6 +1162,20 @@ enum ArtistSeason { SEASON_TWO } +""" +Defines sort order of Artist fields, array index defines tiebreaking +""" +input ArtistSortInput { + """ + Field to be sorted + """ + field: SearchArtistsSortEnum! + """ + Sort ascending or descending + """ + order: SortOrder! +} + """ Connection entity of artist source selected allowlist """ @@ -1059,12 +1222,32 @@ type ArtistSourceSubAllowlist implements Node & ReleaseBaseSubAllowlist { totalAddresses: Int! } +""" +Auction listing for releases +""" +interface AuctionListingInterface { + """ + Chain associated with contract + """ + chain: ChainType! + """ + Contract address associated with auction + """ + contractAddress: String! + """ + Unique auction listing identifier + """ + id: ID! +} + """ Types of release sales """ enum AuctionType { FIXED_QUANTITY + FIXED_QUANTITY_WITH_GA OPEN_EDITION + OPEN_EDITION_WITH_GA OPEN_EDITION_WITH_SAM RANGE_BOUND } @@ -1086,6 +1269,10 @@ type AudioMedia { """ audio256k: Media """ + Track audio, HLS playlist if available + """ + audioHls: Media + """ Track audio, original non-transcoded version """ audioOriginal: Media! @@ -1104,6 +1291,10 @@ type BondingCurveSale implements ArtistAction & CollectorAction & Node & Release """ date: DateTime! """ + Starting serial number of NFT for bonding curve sale purchase + """ + fromSerialNumber: Int + """ Starting token ID of NFT for bonding curve sale purchase """ fromTokenId: Int! @@ -1124,6 +1315,14 @@ type BondingCurveSale implements ArtistAction & CollectorAction & Node & Release """ serialNumber: Int! """ + tierNumber of the NFT + """ + tierNumber: Int + """ + Ending serial number of NFT for bonding curve sale purchase + """ + toSerialNumber: Int + """ Ending token ID of NFT for bonding curve sale purchase """ toTokenId: Int! @@ -1167,6 +1366,16 @@ type BondingCurveSold implements ArtistAction & CollectorAction & Node & Release user: User! } +""" +Chain name supported on the platform +""" +enum ChainType { + GOERLI + MAINNET + OPTIMISM + OPTIMISM_GOERLI +} + """ Simplified version of Release entity filtered on the owner public address """ @@ -1176,6 +1385,10 @@ type CollectedRelease implements Node { """ firstNftOwned: Nft """ + Amount of ga nfts owned + """ + gaNftsCount: Int! + """ Returns golden egg if user owns, otherwise null """ goldenEgg: EggGame @@ -1184,13 +1397,29 @@ type CollectedRelease implements Node { """ id: ID! """ + Amount of nfts owned + """ + nftsCount: Int! + """ List of owned nft serial numbers in ascending serial number order """ - ownedSerialNumbers: [Int!]! + ownedSerialNumbers: [Int!]! @deprecated(reason: "Use ownedTokens instead") + """ + List of possible owned tokens in ascending tokenId order. If user does not own the release, it returns null + """ + ownedTokens: [OwnedToken!] """ Release entity """ release: Release! + """ + The priority of the NFTs the user owns + """ + tierPriority: Int! + """ + Amount of vip nfts owned + """ + vipNftsCount: Int! } """ @@ -1297,10 +1526,158 @@ enum CollectorActivityFeedTypeFilterOption { PLAYLISTS } +""" +CollectorComment entity +""" +type CollectorComment implements Node { + """ + Collector who made the comment + """ + collector: ReleaseCollector! + """ + Comment of NFT + """ + comment: Comment! + """ + Node identifier + """ + id: ID! + """ + Nft associated with comment + """ + nft: Nft! + """ + Song slot reserved by NFT + """ + normalizedSongSlot: Int! +} + +""" +Paginated CollectorComment connection +""" +type CollectorCommentConnection implements Connection { + """ + Edges of current page + """ + edges: [CollectorCommentConnectionEdge!]! + """ + Pagination helpers information + """ + pageInfo: PageInfo! +} + +""" +CollectorComment Node edge +""" +type CollectorCommentConnectionEdge implements Edge { + """ + Cursor to be used for pagination + """ + cursor: String! + """ + CollectorComment Entity + """ + node: CollectorComment! +} + +""" +Pagination parameters of collector comments +""" +input CollectorCommentCursorConnectionArgs { + """ + Start forwards pagination since "after" cursor + """ + after: String + """ + Start backwards pagination since "before" cursor + """ + before: String + """ + Limit the amount of nodes to be fetched, to be used with "after", with a maximum of 51 nodes. + """ + first: NonNegativeInt + """ + Limit the amount of nodes to be fetched, to be used with "before", with a maximum of 51 nodes. + """ + last: NonNegativeInt + """ + Customize sort behavior + """ + sort: CollectorCommentCursorConnectionSort! = { createdAt: DESC } +} + +""" +Customize sort of release shelves +""" +input CollectorCommentCursorConnectionSort { + """ + Sort by date of comment creation + """ + createdAt: SortOrder +} + +""" +Filter the releases to be searched +""" +input CollectorSearchFilter { + """ + Genre names to filter on for collector's releases + """ + genres: [Genres!] + """ + Location ids to filter on for collector's releases + """ + locationIds: [String!] +} + +""" +Customize sort of collectors +""" +input CollectorSearchSort { + """ + Sort by number of distinct artists the collector backed + """ + artistsBacked: SortOrder + """ + Sort by creation date + """ + createdAt: SortOrder + """ + Sort by number of nfts + """ + nftsCount: SortOrder + """ + Sort by number of mints of each release + """ + totalMinted: SortOrder + """ + Sort by total volume of all collector releases + """ + totalVolume: SortOrder +} + +""" +Defines sort order of Collector fields, array index defines tiebreaking +""" +input CollectorSortInput { + """ + Field to be sorted + """ + field: SearchCollectorsSortEnum! + """ + Sort ascending or descending + """ + order: SortOrder! +} + """ Information of collector from release """ type CollectorUpdateInfo { + """ + Amount of ga release nfts owned + """ + gaNftsCount: Int! """ If collector owns golden egg, the serial number of the golden egg """ @@ -1322,6 +1699,14 @@ type CollectorUpdateInfo { """ nftsCount: Int! """ + Amount of GA NFTs collected of release + """ + nftsCountGa: Int! + """ + Amount of VIP NFTs collected of release + """ + nftsCountVip: Int! + """ If user is an artist, the artist unique identifier """ userArtistId: ID @@ -1353,12 +1738,20 @@ type CollectorUpdateInfo { Username of collector """ username: String! + """ + Amount of vip release nfts owned + """ + vipNftsCount: Int! } """ Comment entity """ type Comment { + """ + Create date of comment + """ + createdAt: DateTime! """ Comment unique identifier """ @@ -1440,11 +1833,12 @@ input ContractReleaseInput { } """ -Contract type, currently the playform only supports "ARTIST" +Contract type on chain """ enum ContractType { ARTIST EDITION + TIERED_EDITION } """ @@ -1940,6 +2334,10 @@ type DraftEditInfo { """ arweaveHash: String """ + Draft GA arweave hash associated with changes if needed + """ + gaArweaveHash: String + """ Draft possibly edited release info """ releaseInfo: DraftEditReleaseInfo @@ -1988,6 +2386,14 @@ type DraftEditReleaseInfo { """ coverImage: MediaUploadStepInfo """ + GA Cover image + """ + gaCoverImage: MediaUploadStepInfo + """ + Static version of animated GA cover image of release if the cover is a GIF + """ + gaStaticCoverImage: MediaUploadStepInfo + """ Genre """ genre: String @@ -2116,10 +2522,22 @@ type DraftReleaseInfo { """ coverImage: MediaUploadStepInfo! """ - Genre + GA Cover image + """ + gaCoverImage: MediaUploadStepInfo + """ + Static version of animated GA cover image of release if the cover is a GIF + """ + gaStaticCoverImage: MediaUploadStepInfo + """ + Genre """ genre: String! """ + Special golden image + """ + goldenEggImage: MediaUploadStepInfo + """ Release key """ key: SongKeyType @@ -2257,7 +2675,7 @@ type EggGame { """ Serial number of nft with egg game """ - winningSerialNum: Int! + winningSerialNum: Int! @deprecated(reason: "Look up the NFT of the winner") } """ @@ -2270,80 +2688,6 @@ interface Error { message: String! } -""" -Event type -""" -enum EventType { - AIRDROP - EDITION_PURCHASED - ORDERS_MATCHED - OTHER_MINTED - TRANSFER - UNKNOWN -} - -""" -Event entity -""" -type EventV2 implements Node { - """ - Timestamp on blockchain of event - """ - blockTimestamp: DateTime! - """ - Contract address - """ - contractAddress: String! - """ - Date of creation of event entity - """ - createdAt: DateTime! - """ - Edition identifier - """ - editionId: String - """ - Event type - """ - eventType: EventType! - """ - Source public address - """ - fromAddress: String - """ - User associated to source public address - """ - fromAddressUser: User - """ - Event identifier - """ - id: ID! - """ - Release associated with event - """ - release: Release - """ - Target public address - """ - toAddress: String - """ - User associated to target public address - """ - toAddressUser: User - """ - Token ID of associated NFT - """ - tokenId: String! - """ - Value exchanged in Wei - """ - valueExchanged: String! - """ - Formatted version of value exchanged - """ - valueExchangedPretty: ValueExchangedPrettyType! -} - """ Feature flag entity to describe flagged functionality """ @@ -2392,6 +2736,47 @@ type Genre { updatedAt: DateTime! } +""" +List of genres available on the platform +""" +enum Genres { + AFROBEAT + ALTERNATIVE_ROCK + AMBIENT + BOUNCE + CLASSICAL + COUNTRY + DANCEHALL + DANCE_EDM + DEEP_HOUSE + DISCO + DOWNTEMPO + DRUM_BASS + DUBSTEP + ELECTRONIC + EXPERIMENTAL + FOLK_SINGER_SONGWRITER + HIP_HOP_RAP + HOUSE + INDIE + JAZZ_BLUES + LATIN + LOFI + METAL + PIANO + POP + REGGAE + REGGAETON + ROCK + R_B_SOUL + SOUNDTRACK + TECHNO + TRANCE + TRAP + TRIPHOP + WORLD +} + """ Geographic location associated with Google Maps API """ @@ -2406,6 +2791,28 @@ type GeoLocationPlaceGoogle { placeId: String! } +""" +User won the golden egg for a release +""" +type GoldenEggWon implements Node & UserNotification { + """ + UserNotification UUID + """ + id: ID! + """ + Release entity + """ + release: Release + """ + Timestamp for notification + """ + timestamp: Timestamp! + """ + Recipient user entity + """ + user: User +} + """ Customize iframe html parameters """ @@ -2481,84 +2888,6 @@ enum KeyClientStatus { INACTIVE } -""" -Paginated latest sales events -""" -type LatestSalesConnection implements Connection { - """ - Edges of current page - """ - edges: [LatestSalesConnectionEdge!]! - """ - Pagination helpers information - """ - pageInfo: PageInfo! -} - -""" -Edge of LatestSales Connection -""" -type LatestSalesConnectionEdge implements Edge { - """ - Cursor to be used for pagination - """ - cursor: String! - """ - Event node - """ - node: EventV2! -} - -""" -Pagination parameters for Latest Sales connection -""" -input LatestSalesCursorConnectionArgs { - """ - Start forwards pagination since "after" cursor - """ - after: String - """ - Start backwards pagination since "before" cursor - """ - before: String - """ - Limit the amount of nodes to be fetched, to be used with "after", with a maximum of 51 nodes. - """ - first: NonNegativeInt - """ - Limit the amount of nodes to be fetched, to be used with "before", with a maximum of 51 nodes. - """ - last: NonNegativeInt - """ - Customize sorting latest sales - """ - sort: LatestSalesCursorConnectionSort! = { blockTimestamp: DESC } -} - -""" -Customize sorting latest sales -""" -input LatestSalesCursorConnectionSort { - """ - Sort by blockchain timestamp - """ - blockTimestamp: SortOrder - """ - Sort by date of creation of event entity - """ - createdAt: SortOrder -} - -""" -Filter for paginated latest sales -""" -input LatestSalesCursorFilterArgs { - """ - Specify event types to be filtered - """ - eventTypes: [EventType!] -} - """ License for the release """ @@ -2679,16 +3008,23 @@ enum MediaType { AUDIO_128K AUDIO_192K AUDIO_256K + AUDIO_HLS AVATAR_IMAGE DRAFT_ALLOWLISTED_ADDRESSES_CSV + MERKLE_TREE_CSV RELEASE_BANNER_IMAGE RELEASE_COVER_IMAGE + RELEASE_GA_COVER_IMAGE + RELEASE_GA_WEB_ANIMATED_IMAGE + RELEASE_GA_WEB_STATIC_AUTOGEN_IMAGE + RELEASE_GA_WEB_STATIC_IMAGE RELEASE_GOLDEN_EGG_IMAGE RELEASE_HOLDERS_CSV RELEASE_WEB_ANIMATED_GOLDEN_EGG_IMAGE RELEASE_WEB_ANIMATED_IMAGE RELEASE_WEB_STATIC_AUTOGEN_IMAGE RELEASE_WEB_STATIC_IMAGE + SHELF_COVER_IMAGE TMP_ARTIST_BANNER_AUTOGEN_IMAGE TMP_AVATAR_AUTOGEN_IMAGE TMP_USER_BANNER_AUTOGEN_IMAGE @@ -2810,10 +3146,18 @@ input MintedReleasesCursorFilterArgs { """ genre: [String!] """ + Only get releases from specified genres + """ + genres: [Genres!] + """ Remove currently-featured releases from results """ hideFeatured: Boolean """ + Location ids to filter on for releases + """ + locationIds: [String!] + """ Only get releases less or equal to than specified mint time """ mintTimeMaxDate: Timestamp @@ -2909,10 +3253,96 @@ type MutationVerifyNotificationEmailSuccess { data: Boolean! } +""" +User received a new follower +""" +type NewFollower implements Node & UserNotification { + """ + Featured new followers + """ + featuredFollowers: [User!]! + """ + UserNotification UUID + """ + id: ID! + """ + Number of new followers in this group + """ + numNewFollowers: Int! + """ + Timestamp for notification + """ + timestamp: Timestamp! + """ + Recipient user entity + """ + user: User +} + +""" +User has received a new comment on their post +""" +type NewPostComment implements Node & UserNotification { + """ + Post comment entity. Can be null if deleted + """ + comment: PostComment + """ + UserNotification UUID + """ + id: ID! + """ + Post entity + """ + post: Post + """ + Timestamp for notification + """ + timestamp: Timestamp! + """ + Recipient user entity + """ + user: User +} + +""" +User has received a new upvote on their post +""" +type NewPostUpvote implements Node & UserNotification { + """ + Featured users + """ + featuredUsers: [User!]! + """ + UserNotification UUID + """ + id: ID! + """ + Number of users that created an upvote on the post within the group + """ + numUsers: Int! + """ + Post entity + """ + post: Post + """ + Timestamp for notification + """ + timestamp: Timestamp! + """ + Recipient user entity + """ + user: User +} + """ NFT Entity """ type Nft implements Node { + """ + Audio of Nft + """ + audioUrl: String """ Release collector entity associated with NFT ownership """ @@ -2926,13 +3356,13 @@ type Nft implements Node { """ contractAddress: String! """ - Date of creation of NFT entity + Cover image of NFT """ - createdAt: DateTime! + coverImage: Media! """ - Block number of the nft mint + Date of creation of NFT entity """ - createdAtBlockNum: Int! @deprecated(reason: "Use createdAtBlockTime instead") + createdAt: DateTime! """ Blockchain created date of NFT """ @@ -2962,7 +3392,7 @@ type Nft implements Node { """ release: Release! """ - Acumulative serial number + Serial number """ serialNumber: Int! """ @@ -2970,6 +3400,14 @@ type Nft implements Node { """ songSlot: Int """ + Tier number + """ + tierNumber: Int + """ + Title of Nft + """ + title: String! + """ Unique chain token identifier """ tokenId: ID! @@ -2977,10 +3415,6 @@ type Nft implements Node { Last update date of NFT """ updatedAt: DateTime! - """ - Block number of the last transfer state - """ - updatedAtBlockNum: Int! @deprecated(reason: "Use updatedAt instead") } """ @@ -3074,9 +3508,9 @@ Simplified version of Nft entity filtered to be with non-nullable comment """ type NftWithComment { """ - Amount paid in Wei backcompat... + Amount paid in Wei """ - amountPaidInWei: String! + amountPaidInWei: String! @deprecated(reason: "Not updated, do not use") """ Avatar URL of Nft owner """ @@ -3094,6 +3528,10 @@ type NftWithComment { """ id: ID! """ + Is NFT a golden egg + """ + isGoldenEgg: Boolean! + """ If the Nft owner is an artist, returns the name of the artist """ ownerArtistName: String @@ -3209,6 +3647,28 @@ type OpenSeaMetadataAttribute { value: String! } +""" +Owned token by the user in release +""" +type OwnedToken { + """ + Is the owned token special golden egg + """ + isGoldenEgg: Boolean! + """ + Serial number associated with token relative to tier if present + """ + serialNumber: Int! + """ + Tier number associated with nft if applicable + """ + tierNumber: Int + """ + Token identifier + """ + tokenId: String! +} + """ Pagination helper information """ @@ -3341,50 +3801,229 @@ input PlaylistActionReleasesCursorConnectionArgs { } """ -Playlist of tracks of an artist +Playlist affiliate buyer entity """ -type PlaylistArtist implements Playlist { - artistId: ID! +type PlaylistAffiliateBuyer implements Node { """ - Ephemeral Unique UUID. Since right now the playlists are not being persisted, it's a completely randomly created UUID created on memory + Unique identifier of playlist affiliate buyer """ id: ID! """ - Track list + Most recent affiliate purchase date by user from playlist referral. """ - tracks: [PlaylistTrack!]! + mostRecentAffiliatePurchaseDate: DateTime + """ + Number of nfts purchased by user from playlist referral. + """ + numAffiliateNftsPurchased: Int + """ + User buyer entity + """ + user: User! } """ -Playlist created +Paginated playlist affiliate buyers connection """ -type PlaylistCreated implements ArtistAction & CollectorAction & Node & PlaylistAction & ReleaseAction { +type PlaylistAffiliateBuyerConnection implements Connection { """ - Date of action + Edges of current page """ - date: DateTime! + edges: [PlaylistAffiliateBuyerConnectionEdge!]! """ - Artist action id + Pagination helpers information """ - id: ID! + pageInfo: PageInfo! +} + +""" +Edge of Playlist Affiliate Buyer Connection +""" +type PlaylistAffiliateBuyerConnectionEdge implements Edge { """ - Shelf entity + Cursor to be used for pagination """ - playlist: Shelf + cursor: String! """ - User corresponding to action entity + Playlist Affiliate Buyer node """ - user: User! + node: PlaylistAffiliateBuyer! } """ -Playlist of tracks of a holder' NFTs +Playlist of tracks of an artist """ -type PlaylistHolder implements Playlist { - """ - Holder public address - """ - holderPublicAddress: String! +type PlaylistArtist implements Playlist { + artistId: ID! + """ + Ephemeral Unique UUID. Since right now the playlists are not being persisted, it's a completely randomly created UUID created on memory + """ + id: ID! + """ + Track list + """ + tracks: [PlaylistTrack!]! +} + +""" +Playlist chart entity +""" +type PlaylistChart implements Node { + """ + Chart ranks of release chart + """ + chartRanks( + """ + Pagination parameters + """ + pagination: PlaylistChartRankCursorConnectionArgs! = { after: null, first: 10, sort: { currentRank: ASC } } + ): PlaylistChartRankConnection! + """ + UUID of Playlist chart entity + """ + id: ID! + """ + Last full day of the chart period (inclusive) + """ + lastDayOfChartInclusive: DateTime! + """ + Playlist chart period end exclusive + """ + periodEndExclusive: DateTime! + """ + Playlist chart period start inclusive + """ + periodStartInclusive: DateTime! +} + +""" +Playlist chart rank entity +""" +type PlaylistChartRank implements Node { + """ + Current ranking of release + """ + currentRank: Int! + """ + UUID of Playlist chart entity + """ + id: ID! + """ + Chart rank release + """ + playlist: Shelf! + """ + Last ranking of release + """ + rankLast: Int + """ + Peak ranking of release + """ + rankPeak: Int + """ + Trending indicator of release + """ + trendingIndicator: TrendingIndicator! + """ + Trending streak of release + """ + trendingStreak: Int! +} + +""" +Paginated connection of Playlist Chart Ranks +""" +type PlaylistChartRankConnection implements Connection { + """ + Edges of current page + """ + edges: [PlaylistChartRankConnectionEdge!]! + """ + Pagination helpers information + """ + pageInfo: PageInfo! +} + +""" +Edge of Playlist Chart Rank Connection +""" +type PlaylistChartRankConnectionEdge implements Edge { + """ + Cursor to be used for pagination + """ + cursor: String! + """ + Playlist Chart Rank node + """ + node: PlaylistChartRank! +} + +""" +Pagination paramaters for release chart ranks +""" +input PlaylistChartRankCursorConnectionArgs { + """ + Start forwards pagination since "after" cursor + """ + after: String + """ + Start backwards pagination since "before" cursor + """ + before: String + """ + Limit the amount of nodes to be fetched, to be used with "after", with a maximum of 51 nodes. + """ + first: NonNegativeInt + """ + Limit the amount of nodes to be fetched, to be used with "before", with a maximum of 51 nodes. + """ + last: NonNegativeInt + """ + Customize sort behavior + """ + sort: PlaylistChartRankCursorConnectionSort! = { currentRank: ASC } +} + +""" +Customize sort of collectors +""" +input PlaylistChartRankCursorConnectionSort { + """ + Sort by playlist chart current rank + """ + currentRank: SortOrder +} + +""" +Playlist created +""" +type PlaylistCreated implements ArtistAction & CollectorAction & Node & PlaylistAction & ReleaseAction { + """ + Date of action + """ + date: DateTime! + """ + Artist action id + """ + id: ID! + """ + Shelf entity + """ + playlist: Shelf + """ + User corresponding to action entity + """ + user: User! +} + +""" +Playlist of tracks of a holder' NFTs +""" +type PlaylistHolder implements Playlist { + """ + Holder public address + """ + holderPublicAddress: String! """ Ephemeral Unique UUID. Since right now the playlists are not being persisted, it's a completely randomly created UUID created on memory """ @@ -3478,6 +4117,161 @@ Integers that will have a value greater than 0. """ scalar PositiveInt +""" +Post entity +""" +interface Post { + """ + Number of comments on the post + """ + commentCount: Int! + """ + Comments on the post + """ + comments( + """ + Pagination parameters + """ + pagination: PostCommentCursorConnectionArgs! = { after: null, first: 30, sort: { createdAt: DESC } } + ): PostCommentConnection! + """ + Content of the post + """ + content: String! + """ + Creation date of entity + """ + createdAt: DateTime! + """ + User who created the post + """ + creator: User! + """ + Unique identifier of the Post + """ + id: ID! + """ + Number of upvotes on the post + """ + upvoteCount: Int! + """ + Webapp URI of Post + """ + webappUri: String! +} + +""" +Post Comment entity +""" +type PostComment implements Node { + """ + User who created the comment + """ + author: User! + """ + Content of the comment + """ + content: String! + """ + Creation date of the comment + """ + createdAt: DateTime! + """ + Unique identifier of the Post Comment + """ + id: ID! + """ + Last update date of the comment + """ + updatedAt: DateTime! +} + +""" +Paginated Post Comments connection +""" +type PostCommentConnection implements Connection { + """ + Edges of current page + """ + edges: [PostCommentConnectionEdge!]! + """ + Pagination helpers information + """ + pageInfo: PageInfo! +} + +""" +Post Comment Node edge +""" +type PostCommentConnectionEdge implements Edge { + """ + Cursor to be used for pagination + """ + cursor: String! + """ + Post Comment Entity + """ + node: PostComment! +} + +""" +Cursor connection parameters for Post Comments +""" +input PostCommentCursorConnectionArgs { + """ + Start forwards pagination since "after" cursor + """ + after: String + """ + Start backwards pagination since "before" cursor + """ + before: String + """ + Limit the amount of nodes to be fetched, to be used with "after", with a maximum of 51 nodes. + """ + first: NonNegativeInt + """ + Limit the amount of nodes to be fetched, to be used with "before", with a maximum of 51 nodes. + """ + last: NonNegativeInt + """ + Customize sort behavior + """ + sort: PostCommentCursorConnectionSort! = { createdAt: DESC } +} + +""" +Customize the sort behavior of Post Comments pagination +""" +input PostCommentCursorConnectionSort { + """ + Sort by created date + """ + createdAt: SortOrder +} + +""" +A subscribed artist release presale has dropped and user is eligible +""" +type PresaleStarted implements Node & UserNotification { + """ + UserNotification UUID + """ + id: ID! + """ + Dropped presale release entity + """ + release: Release + """ + Timestamp for notification + """ + timestamp: Timestamp! + """ + Recipient user entity + """ + user: User +} + """ Primary sale collector action entity """ @@ -3491,7 +4285,11 @@ type PrimarySale implements ArtistAction & CollectorAction & Node & ReleaseActio """ date: DateTime! """ - Starting token ID of NFT for bonding curve sale purchase + Starting serial number of NFT for primary sale purchase + """ + fromSerialNumber: Int + """ + Starting token ID of NFT for primary sale purchase """ fromTokenId: Int! """ @@ -3511,7 +4309,15 @@ type PrimarySale implements ArtistAction & CollectorAction & Node & ReleaseActio """ serialNumber: Int! """ - Ending token ID of NFT for bonding curve sale purchase + tierNumber of the NFT + """ + tierNumber: Int + """ + Ending serial Number of NFT for primary sale purchase + """ + toSerialNumber: Int + """ + Ending token ID of NFT for primary sale purchase """ toTokenId: Int! """ @@ -3520,6 +4326,28 @@ type PrimarySale implements ArtistAction & CollectorAction & Node & ReleaseActio user: User! } +""" +A subscribed artist release has dropped +""" +type PublicSaleStarted implements Node & UserNotification { + """ + UserNotification UUID + """ + id: ID! + """ + Dropped release entity + """ + release: Release + """ + Timestamp for notification + """ + timestamp: Timestamp! + """ + Recipient user entity + """ + user: User +} + """ Queries """ @@ -3534,6 +4362,10 @@ type Query { filter: ActivityFeedFilterArgs! = { activityFeedType: GLOBAL } ): ActivityFeed """ + [PUBLIC] Release activity feed + """ + activityFeedRecommendedFollows: RecommendedFollows! + """ [PUBLIC] Paginate through all collectors of the system """ allCollectors( @@ -3655,6 +4487,10 @@ type Query { """ Get current release chart """ + currentPlaylistChart: PlaylistChart! + """ + Get current release chart + """ currentReleaseChart: ReleaseChart! """ [PUBLIC] Get DraftAllowList from release and mintType @@ -3684,15 +4520,6 @@ type Query { releaseId: UUID! ): EggGame """ - Get an Event information from the unique identifier - """ - eventFromId( - """ - Unique event identifier - """ - id: UUID! - ): EventV2 - """ [PUBLIC] Get feature flag value by name """ featureFlag( @@ -3710,19 +4537,6 @@ type Query { """ highlightedReleases: [Release!]! """ - [PUBLIC] Get the latest events - """ - latestEventsPaginated( - """ - Paginated latest sales filters - """ - filter: LatestSalesCursorFilterArgs - """ - Pagination parameters - """ - pagination: LatestSalesCursorConnectionArgs! = { first: 10, sort: { blockTimestamp: DESC } } - ): LatestSalesConnection! @deprecated(reason: "No longer used") - """ [PUBLIC] Get playlist based on given type and associationId """ legacyPlaylist( @@ -3763,6 +4577,15 @@ type Query { root: String! ): MerkleTree! @deprecated(reason: "Use merkleTreeFromRoot instead") """ + [PUBLIC] Allowlisted addresses from merkle tree csv url + """ + merkleTreeCSVUrl( + """ + Merkle root of allowlisted schedule + """ + merkleRoot: String! + ): String + """ [PUBLIC] Get merkle tree information """ merkleTreeFromRoot( @@ -3863,6 +4686,15 @@ type Query { id: UUID! ): Shelf """ + [PUBLIC] Post entity + """ + post( + """ + Unique Post identifier + """ + postId: UUID! + ): Post + """ [PUBLIC] Purchase activity Feed with filter parameters """ purchaseActivityFeed( @@ -3909,7 +4741,7 @@ type Query { Release identifier """ releaseId: UUID! - ): String + ): String @deprecated(reason: "Use Query.merkleTreeCSVUrl instead") """ [PUBLIC] Get allowlist for release """ @@ -3982,7 +4814,7 @@ type Query { pagination: CursorConnectionArgs! = { first: 10, sort: DESC } ): UserConnection! """ - [PUBLIC] Get specifiec release collector from unique identifier + [PUBLIC] Get specified release collector from unique identifier """ releaseCollectorFromId( """ @@ -4013,7 +4845,7 @@ type Query { input: ReleaseFromTokenInput! ): Release """ - [PUBLIC] List of genres that have at least 1 past minted release, sorted by popularity + [PUBLIC] List of genres that have at least 1 release """ releaseGenres: [Genre!]! """ @@ -4030,6 +4862,15 @@ type Query { pagination: ReleasesCursorConnectionArgs! = { first: 10, sort: { mintStartTime: DESC } } ): ReleaseConnection! """ + [PUBLIC] Get all releases that collectors of a given release have also minted + """ + releasesCollectorsAlsoMinted( + """ + Identifier of release + """ + releaseId: UUID! + ): [Release!]! + """ [PUBLIC] Search releases or artists based on text inputs """ search( @@ -4263,6 +5104,42 @@ type Query { ): VersionStatusResponse! } +""" +Users and artists that are recommended for following +""" +type RecommendedFollows { + """ + List of recommended artists + """ + artists: [Artist!]! + """ + List of recommended users + """ + users: [User!]! +} + +""" +Referrals received notification +""" +type ReferralReceivedNotification implements Node & UserNotification { + """ + UserNotification UUID + """ + id: ID! + """ + Timestamp for notification + """ + timestamp: Timestamp! + """ + Total received for grouped referrals in WEI + """ + totalReceivedWei: String + """ + Recipient user entity + """ + user: User +} + """ Pagination parameters of referred users """ @@ -4339,6 +5216,10 @@ type Release implements Node { """ artist: Artist! """ + Type of auction contract + """ + auctionContractType: ContractType + """ Auction type defined on upload flow """ auctionType: AuctionType @@ -4363,6 +5244,15 @@ type Release implements Node { """ claimedSongSlots: [Int!]! """ + Collector comments + """ + collectorComments( + """ + Pagination parameters + """ + pagination: CollectorCommentCursorConnectionArgs! = { after: null, first: 20, sort: { createdAt: DESC } } + ): CollectorCommentConnection! + """ Collectors of release """ collectors( @@ -4429,6 +5319,10 @@ type Release implements Node { """ fundingAddress: String! """ + GA Cover image of release for tiered editions + """ + gaCoverImage: Media + """ Genre of Release """ genre: Genre! @@ -4437,14 +5331,22 @@ type Release implements Node { """ goldenEggImage: Media! """ + Golden egg NFT + """ + goldenEggNft: Nft + """ Is the release a range bound edition """ - hasRangeBoundSale: Boolean! + hasRangeBoundSale: Boolean! @deprecated(reason: "Should not be used moving forward") """ Release identifier """ id: ID! """ + Is the auction listing currently sold out. If the release doesn't have an auction associated, it returns null instead + """ + isAuctionSoldOut: Boolean + """ Is release sold out relative to the final quantity """ isFinalSoldOut: Boolean! @deprecated(reason: "Use 'isFirstPhaseCompleted' instead") @@ -4470,6 +5372,10 @@ type Release implements Node { pagination: CursorConnectionArgs! = { first: 10, sort: DESC } ): UserConnection! """ + Auction listing associated with release + """ + listing: AuctionListingInterface + """ Associated market place url """ marketPlaceUrl: String @@ -4644,6 +5550,10 @@ type Release implements Node { """ type: ReleaseType! """ + VIP Cover image of release for tiered editions + """ + vipCoverImage: Media + """ Web HTML iframe embed """ webEmbed( @@ -5094,6 +6004,10 @@ type ReleaseCollector implements Node { """ firstNftCollectedDate: DateTime! """ + Amount of ga release nfts owned + """ + gaNftsCount: Int! + """ Unique id of release collector """ id: ID! @@ -5126,9 +6040,17 @@ type ReleaseCollector implements Node { """ release: Release! """ + Tier priority of the nft + """ + tierPriority: Int! + """ Collector user """ user: User! + """ + Amount of vip release nfts owned + """ + vipNftsCount: Int! } """ @@ -5160,7 +6082,7 @@ type ReleaseCollectorConnectionEdge implements Edge { } """ -Pagination paramaters for artist collectors +Pagination parameters for release collectors """ input ReleaseCollectorCursorConnectionArgs { """ @@ -5183,6 +6105,10 @@ input ReleaseCollectorCursorConnectionArgs { Customize sort behavior """ sort: ReleaseCollectorCursorConnectionSort! = { nftsCount: DESC } + """ + The NFT tier you want to select for ReleaseCollectors, defaults All + """ + tier: TierNFT } """ @@ -5194,6 +6120,10 @@ input ReleaseCollectorCursorConnectionSort { """ firstNftCollectedDate: SortOrder """ + Sort by amount ga nfts collected, with tie-breaker of earliest collector first + """ + gaNftsCount: SortOrder + """ Sort by lowest owned serial number """ lowestOwnedSerialNumber: SortOrder @@ -5201,6 +6131,18 @@ input ReleaseCollectorCursorConnectionSort { Sort by amount nfts collected, with tie-breaker of earliest collector first """ nftsCount: SortOrder + """ + Sort by vips first, then ga, tie-breaker of first nft collected date + """ + priorityFirstNftDate: SortOrder + """ + Sort by vips first, then ga, tie-breaker most nfts collected + """ + priorityTop: SortOrder + """ + Sort by amount vip nfts collected, with tie-breaker of earliest collector first + """ + vipNftsCount: SortOrder } """ @@ -5468,6 +6410,10 @@ type ReleaseManuallyAddedAddressesAllowlist implements Node & ReleaseBaseSubAllo Release allowlist behind merkle tree """ type ReleaseMerkleAllowlist implements Node { + """ + Creation date of allowlist + """ + createdAt: DateTime! """ Unique identifier of merkle allowlist of release """ @@ -5531,95 +6477,47 @@ type ReleaseMerkleAllowlistInfo { } """ -Release NFT Update +A release was minted by users """ -type ReleaseNftUpdate implements ReleaseNftUpdateInfo { +type ReleaseMinted implements Node & UserNotification { """ - Possible comment associated with NFT - """ - commentMessage: String - """ - Contract address associated with nft + Featured collectors """ - contractAddress: String! + featuredCollectors: [User!]! """ - Unique identifier of NFT + UserNotification UUID """ id: ID! """ - Was the NFT burned - """ - isBurned: Boolean! - """ - Is the NFT the golden egg - """ - isGoldenEgg: Boolean! - """ - If user is an artist, the artist unique identifier - """ - ownerArtistId: ID - """ - If user is an artist, the artist name - """ - ownerArtistName: String - """ - If user is an artist, the artist sound handle - """ - ownerArtistSoundHandle: String - """ - Possible avatar URL of NFT owner - """ - ownerAvatarUrl: String - """ - User wallet public address - """ - ownerPublicAddress: String! - """ - Serial number of the lowest owned nft of the collected release - """ - ownerReleaseLowestNftSerialNumber: Int! - """ - Amount of NFTs owned by collector on the same release - """ - ownerReleaseNftCount: Int! - """ - User unique identifier of owner - """ - ownerUserId: ID! - """ - Username of NFT owner - """ - ownerUsername: String! - """ - User webapp uri + Number of total collectors in this group """ - ownerWebappUri: String! + numTotalCollectors: Int! """ - Serial number of nft within release + Number of total mints in this group """ - serialNumber: Int! + numTotalMints: Int! """ - Selected song slot associated with nft + Minted release entity """ - songSlot: Int + release: Release """ - Unique token identifier of nft + Timestamp for notification """ - tokenId: String! + timestamp: Timestamp! """ - Date of last ownership transfer + Recipient user entity """ - updatedAt: DateTime! + user: User } """ -Release NFT Update information +Release NFT Update """ -interface ReleaseNftUpdateInfo { +type ReleaseNftWithCommentUpdate { """ Possible comment associated with NFT """ - commentMessage: String + commentMessage: String! """ Contract address associated with nft """ @@ -5683,7 +6581,7 @@ interface ReleaseNftUpdateInfo { """ Selected song slot associated with nft """ - songSlot: Int + songSlot: Int! """ Unique token identifier of nft """ @@ -5695,85 +6593,50 @@ interface ReleaseNftUpdateInfo { } """ -Release NFT Update +Release Post entity """ -type ReleaseNftWithCommentUpdate implements ReleaseNftUpdateInfo { - """ - Comment associated with NFT - """ - commentMessage: String! - """ - Contract address associated with nft - """ - contractAddress: String! - """ - Unique identifier of NFT - """ - id: ID! - """ - Was the NFT burned - """ - isBurned: Boolean! - """ - Is the NFT the golden egg - """ - isGoldenEgg: Boolean! - """ - If user is an artist, the artist unique identifier - """ - ownerArtistId: ID - """ - If user is an artist, the artist name +type ReleasePost implements Post { """ - ownerArtistName: String - """ - If user is an artist, the artist sound handle - """ - ownerArtistSoundHandle: String - """ - Possible avatar URL of NFT owner - """ - ownerAvatarUrl: String - """ - User wallet public address - """ - ownerPublicAddress: String! - """ - Serial number of the lowest owned nft of the collected release + Number of comments on the post """ - ownerReleaseLowestNftSerialNumber: Int! + commentCount: Int! """ - Amount of NFTs owned by collector on the same release + Comments on the post """ - ownerReleaseNftCount: Int! + comments( + """ + Pagination parameters + """ + pagination: PostCommentCursorConnectionArgs! = { after: null, first: 30, sort: { createdAt: DESC } } + ): PostCommentConnection! """ - User unique identifier of owner + Content of the post """ - ownerUserId: ID! + content: String! """ - Username of NFT owner + Creation date of entity """ - ownerUsername: String! + createdAt: DateTime! """ - User webapp uri + User who created the post """ - ownerWebappUri: String! + creator: User! """ - Serial number of nft within release + Unique identifier of the Post """ - serialNumber: Int! + id: ID! """ - Selected song slot associated with nft + The release associated with the post """ - songSlot: Int! + release: Release """ - Unique token identifier of nft + Number of upvotes on the post """ - tokenId: String! + upvoteCount: Int! """ - Date of last ownership transfer + Webapp URI of Post """ - updatedAt: DateTime! + webappUri: String! } """ @@ -5834,12 +6697,50 @@ type ReleaseReferredCollectorEdge implements Edge { Filter the releases to be searched """ input ReleaseSearchFilter { + """ + Filter releases that are made by specified artists. You can only specify up to 51 artists. + """ + artistIds: [UUID!] + """ + Genre names to filter on for releases + """ + genres: [Genres!] + """ + Only include releases that either have or don't have collectors + """ + hasCollectors: Boolean + """ + Location ids to filter on for releases + """ + locationIds: [String!] + """ + Only get release with specified status + """ + releaseStatus: [ReleaseStatus!] """ Filters on release type """ type: [ReleaseType!] } +""" +Customize sort of releases +""" +input ReleaseSearchSort { + """ + Sort by time the release was minted + """ + mintStartTime: SortOrder + """ + Sort by number of mints of each release + """ + totalMinted: SortOrder + """ + Sort by total volume of each release + """ + totalVolume: SortOrder +} + """ Pagination parameters of release shelves """ @@ -5874,6 +6775,10 @@ input ReleaseShelvesCursorConnectionSort { Sort by date of release being added in the shelf """ addedAtDate: SortOrder + """ + Sort by shelf score + """ + score: SortOrder } """ @@ -5884,6 +6789,24 @@ input ReleaseShelvesFilter { Filter shelves to be included by identifier. You can only specify up to 51 shelves. """ shelfIds: [UUID!] + """ + Filter shelves types to be included + """ + type: [ShelfType!] +} + +""" +Defines sort order of Release fields, array index defines tiebreaking +""" +input ReleaseSortInput { + """ + Field to be sorted + """ + field: SearchReleasesSortEnum! + """ + Sort ascending or descending + """ + order: SortOrder! } """ @@ -5938,6 +6861,7 @@ Release current status type enum ReleaseStatus { AVAILABLE_TO_MINT SOLD_OUT + UPCOMING } """ @@ -6166,6 +7090,11 @@ type ReleasesAddedToShelfAggregate { shelf: Shelf } +enum ReleasesCollectorSortEnum { + FIRST_NFT_COLLECTED_DATE + NFTS_COUNT +} + """ Pagination parameters for releases connection """ @@ -6231,10 +7160,18 @@ input ReleasesCursorFilterArgs { """ genre: [String!] """ + Only get releases from specified genres + """ + genres: [Genres!] + """ Remove currently-featured releases from results """ hideFeatured: Boolean """ + Location ids to filter on for releases + """ + locationIds: [String!] + """ Only get releases less or equal to than specified mint time """ mintTimeMaxDate: Timestamp @@ -6577,6 +7514,20 @@ type ScheduleIdentifier { minterAddress: String! } +enum SearchArtistsSortEnum { + CREATED_AT + TOTAL_MINTED + TOTAL_VOLUME +} + +enum SearchCollectorsSortEnum { + ARTISTS_BACKED + CREATED_AT + NFTS_COUNT + TOTAL_MINTED + TOTAL_VOLUME +} + """ Pagination arguments for search """ @@ -6602,7 +7553,13 @@ input SearchInput { """ Text search """ - text: String! + text: String +} + +enum SearchReleasesSortEnum { + MINT_START_TIME + TOTAL_MINTED + TOTAL_VOLUME } """ @@ -6613,28 +7570,56 @@ type SearchResult { Artists that match the search input, including artists where any of their releases matches the given input """ artists( + """ + Filter the artists to be searched + """ + filter: ArtistSearchFilter """ How many artists to be fetched, maximum of 20 """ limit: PositiveInt - ): [Artist!]! + ): [Artist!]! @deprecated(reason: "Use `artistsPaginated` instead") """ Paginated artists that match the search input, including artists where any of their releases matches the given input """ artistsPaginated( + """ + Filter the artists to be searched + """ + filter: ArtistSearchFilter """ Pagination parameters """ pagination: SearchConnectionArgs! = { after: null, first: 10 } + """ + Sort releases to be searched + """ + sort: ArtistSearchSort + """ + Tiebreaking order of sortable fields + """ + sortFields: [ArtistSortInput!]! = [{ field: TOTAL_VOLUME, order: DESC }] ): ArtistConnection! """ Paginated collectors that match the search input within the ens, twitter handle, displayName and publicAddress """ collectors( + """ + Filter the collectors to be searched + """ + filter: CollectorSearchFilter """ Pagination parameters """ pagination: SearchConnectionArgs! = { after: null, first: 10 } + """ + Sort the collectors to be searched + """ + sort: CollectorSearchSort + """ + Tiebreaking order of sortable fields + """ + sortFields: [CollectorSortInput!]! = [{ field: TOTAL_VOLUME, order: DESC }] ): UserConnection! """ Unique identifier of search result @@ -6652,7 +7637,7 @@ type SearchResult { How many releases to be fetched, maximum of 20 """ limit: PositiveInt - ): [Release!]! + ): [Release!]! @deprecated(reason: "Use `releasesPaginated` instead") """ Paginated releases that match the search input, including releases where the artist name matches the given input """ @@ -6665,18 +7650,44 @@ type SearchResult { Pagination parameters """ pagination: SearchConnectionArgs! = { after: null, first: 10 } + """ + Sort the releases to be searched + """ + sort: ReleaseSearchSort + """ + Tiebreaking order of sortable fields + """ + sortFields: [ReleaseSortInput!]! = [{ field: TOTAL_VOLUME, order: DESC }] ): ReleaseConnection! """ Paginated shelves that match the search input within the shelf name, releases titles and artists names """ shelves( + """ + Filter the shelves to be searched + """ + filter: ShelfSearchFilter """ Pagination parameters """ pagination: SearchConnectionArgs! = { after: null, first: 10 } + """ + Sort shelves to be searched + """ + sort: ShelfSearchSort + """ + Tiebreaking order of sortable fields + """ + sortFields: [ShelfSortInput!]! = [{ field: NUM_LIKES, order: DESC }] ): ShelfConnection! } +enum SearchShelvesSortEnum { + CREATED_AT + NUM_LIKES + NUM_REFERRAL_PURCHASES +} + """ Collector release added to playlist action entity """ @@ -6690,7 +7701,11 @@ type SecondarySale implements ArtistAction & CollectorAction & Node & ReleaseAct """ date: DateTime! """ - Starting token ID of NFT for bonding curve sale purchase + Starting serial number of NFT for secondary sale purchase + """ + fromSerialNumber: Int + """ + Starting token ID of NFT for secondary sale purchase """ fromTokenId: Int! """ @@ -6710,11 +7725,19 @@ type SecondarySale implements ArtistAction & CollectorAction & Node & ReleaseAct """ release: Release! """ - Serial number of nft secondary sale purchase + Serial number of nft secondary sale purchase + """ + serialNumber: Int! + """ + tierNumber of the nft + """ + tierNumber: Int + """ + Ending serial number of NFT for secondary sale purchase """ - serialNumber: Int! + toSerialNumber: Int """ - Ending token ID of NFT for bonding curve sale purchase + Ending token ID of NFT for secondary sale purchase """ toTokenId: Int! """ @@ -6732,6 +7755,19 @@ scalar SemanticVersion Shelf entity """ type Shelf implements Node { + """ + Paginate through affiliate buyers of this shelf. + """ + affiliateBuyers( + """ + Pagination parameters + """ + pagination: CursorConnectionArgs! = { first: 10, sort: DESC } + ): PlaylistAffiliateBuyerConnection! + """ + Cover image of Shelf + """ + coverImage: Media """ Top 4 releases to be used as cover for shelf """ @@ -6778,10 +7814,26 @@ type Shelf implements Node { """ linkSlug: String! """ + Number of mints driven by shelf referral. + """ + mintsDriven: Int! @deprecated(reason: "Please use Shelf.numReferralPurchases") + """ Shelf name """ name: String! """ + Number of likes for the shelf. + """ + numLikes: Int! + """ + Number of mints driven by shelf referral. + """ + numReferralPurchases: Int! + """ + Number of users that collected from shelf referral. + """ + numUsersReferred: Int! + """ Paginated releases of shelf ordered depending on shelfType """ orderedReleases( @@ -6812,6 +7864,10 @@ type Shelf implements Node { sort: ShelfReleasesSort! = { index: ASC } ): [String!]! """ + Playlist affiliate purchase users ordered by follower count + """ + socialProofReferrals(userPublicAddress: String): [User!]! + """ List of track identifiers in the shelf ordered depending on shelfType """ trackIds( @@ -6976,7 +8032,11 @@ type ShelfRelease implements Node { """ List of possibly owned nft serial numbers in ascending serial number order. If user does not own the release, it returns null """ - ownedSerialNumbers: [Int!] + ownedSerialNumbers: [Int!] @deprecated(reason: "Use ownedTokens instead") + """ + List of possible owned tokens in ascending tokenId order. If user does not own the release, it returns null + """ + ownedTokens: [OwnedToken!] """ Release of the shelf """ @@ -7025,6 +8085,48 @@ input ShelfReleasesSort { index: SortOrder! = ASC } +""" +Filter the shelf to be searched +""" +input ShelfSearchFilter { + """ + Genre names to filter on for shelf songs + """ + genres: [Genres!] +} + +""" +Customize sorting of shelves +""" +input ShelfSearchSort { + """ + Sort by time playlist was created + """ + createdAt: SortOrder + """ + Sort by number of likes + """ + numLikes: SortOrder + """ + Sort by number of referral purchases (Mints Driven) + """ + numReferralPurchases: SortOrder +} + +""" +Defines sort order of Shelf fields, array index defines tiebreaking +""" +input ShelfSortInput { + """ + Field to be sorted + """ + field: SearchShelvesSortEnum! + """ + Sort ascending or descending + """ + order: SortOrder! +} + """ Shelf type """ @@ -7156,6 +8258,24 @@ type SplitsUploadStepInfo { splits: [CreditAllocationUploadStepInfo!]! } +""" +Subscribe with email notification +""" +type SubscribeToEmailCTA implements Node & UserNotification { + """ + UserNotification UUID + """ + id: ID! + """ + Timestamp for notification + """ + timestamp: Timestamp! + """ + Recipient user entity + """ + user: User +} + """ Realtime Subscriptions """ @@ -7189,15 +8309,6 @@ type Subscription { releaseId: UUID! ): [ReleaseNftWithCommentUpdate!]! """ - Subscribe to NFTs updates of specified release - """ - releaseNftUpdate( - """ - Release identifier - """ - releaseId: UUID! - ): [ReleaseNftUpdate!]! - """ Subscribe to release updates """ releaseUpdates( @@ -7232,6 +8343,218 @@ type SupportedVersion implements VersionStatusResponseInterface { recommendedVersion: String! } +""" +Tier associated with tiered edition listing +""" +type Tier { + """ + Chain associated with auction + """ + chain: ChainType! + """ + Cutoff timestamp of auction tier + """ + cutoffTime: DateTime! + """ + Contract address associated with edition auction + """ + editionAddress: String! + """ + Unique identifier + """ + id: ID! + """ + Is the minting of the tier frozen + """ + isFrozen: Boolean! + """ + Is the tier considered GA (General Admission) + """ + isGA: Boolean! + """ + Is golden egg enabled for tier + """ + isGoldenEggEnabled: Boolean! + """ + Minimum amount of editions to be sold within range of cutoff time + """ + maxMintableLower: Int! + """ + Maximum amount of editions to be sold within before cutoff time + """ + maxMintableUpper: Int! + """ + Is the tier minting considered finished + """ + mintConcluded: Boolean! + """ + All schedules within tier + """ + schedules: [TierSchedule!]! + """ + Unique tier number associated within edition contract + """ + tierNumber: Int! + """ + Total amount of minted editions within tier + """ + totalMinted: Int! +} + +""" +The Tier of the NFT owned by ReleaseCollector +""" +enum TierNFT { + ALL + GA + VIP +} + +""" +Schedule associated with Tier of auction Listing +""" +type TierSchedule { + """ + Affiliate fee in basis per point for schedule + """ + affiliateFeeBPS: Int! + """ + Chain associated with auction + """ + chain: ChainType! + """ + Contract address associated with edition auction + """ + editionAddress: String! + """ + End timestamp for minting on schedule + """ + endTime: DateTime! + """ + Unique identifier + """ + id: ID! + """ + Is minting on schedule paused + """ + isPaused: Boolean! + """ + Fixed amount of maximum mintable editions within schedule + """ + maxMintable: Int! + """ + Limit of mints per account within schedule + """ + maxMintablePerAccount: Int! + """ + Merkle tree root associated with tier schedule + """ + merkleTreeRoot: String + """ + Mode of minting associated with schedule + """ + mode: TierScheduleMode! + """ + Price for minting on schedule + """ + priceInWei: String! + """ + Unique schedule number associated within edition contract and tier + """ + scheduleNumber: Int! + """ + Start timestamp for minting on schedule + """ + startTime: DateTime! + """ + Tier associated for schedule + """ + tier: Tier! + """ + Unique tier number associated within edition contract + """ + tierNumber: Int! + """ + Total amount of minted editions within schedule + """ + totalMinted: Int! +} + +""" +Mode that differentiates behavior of tier schedule +""" +enum TierScheduleMode { + DEFAULT + VERIFY_MERKLE + VERIFY_SIGNATURE +} + +""" +Tiered Edition Auction Listing +""" +type TieredEditionListing implements AuctionListingInterface { + """ + Chain associated with auction + """ + chain: ChainType! + """ + Contract address associated with edition auction + """ + contractAddress: String! + """ + Has the tier auction enabled GA + """ + hasGA: Boolean! + """ + Unique identifier + """ + id: ID! + """ + Name associated on contract information + """ + name: String! + """ + Price of earliest public merkle schedule if present + """ + presalePriceWei: String + """ + Start time of earliest merkle schedule if present + """ + presaleStartTime: DateTime + """ + Price of earliest public schedule if present + """ + publicPriceWei: String + """ + Start time of earliest public schedule if present + """ + publicStartTime: DateTime + """ + Royalty basis per point + """ + royaltyBPS: Int! + """ + All schedules associated with tiered edition + """ + schedules: [TierSchedule!]! + """ + Tiers associated with tiered edition auction + """ + tiers: [Tier!]! + """ + Total amount of burned editions + """ + totalBurned: Int! + """ + Total amount of minted editions + """ + totalMinted: Int! + """ + Total amount of minted editions that are not burned + """ + totalSupply: Int! +} + """ Time period to aggregate trending table queries """ @@ -7700,6 +9023,10 @@ type User implements Node { Pagination parameters """ pagination: CursorConnectionArgs! = { first: 10, sort: DESC } + """ + Sort the collected releases of the user + """ + sort: ReleasesCollectorSortEnum! = FIRST_NFT_COLLECTED_DATE ): CollectedReleaseConnection! """ Total amount of collected release of user @@ -7792,6 +9119,14 @@ type User implements Node { """ instagramHandle: String """ + User ID of the user who invited this user + """ + invitedByUser: User + """ + User ID of the user who invited this user + """ + invitedByUserId: ID @deprecated(reason: "Use User.invitedByUser instead") + """ Is top notable collector """ isTopNotableCollector: Boolean! @@ -7867,7 +9202,7 @@ type User implements Node { """ showSplitsFeature: Boolean! """ - Rank of user for total number of bought nfts with secondary sort on total spent. Rank is capped at 200. + Rank of user by total spent. Rank is capped at 200. """ topCollectorPosition: Int """ @@ -7910,11 +9245,19 @@ type UserCollectedManySongsAggregate { Filter of User.collectedReleases paginated field """ input UserCollectedReleasesFilter { + """ + Filters on a list of specified genres + """ + genres: [Genres!] """ Filters on whether album releases have been revealed or not """ releaseAlbumRevealStatus: ReleaseAlbumRevealFilterOption! = ALL """ + Filter on a list of specified release ids + """ + releaseIds: [UUID!] + """ Text search on release title or artist's name or handle """ text: NonEmptyString @@ -7952,6 +9295,16 @@ type UserConnectionEdge implements Edge { node: User! } +""" +User created post aggregate +""" +type UserCreatedPostAggregate { + """ + Post that the user created. Can be NULL if the post was deleted + """ + post: Post +} + """ Cursor connection parameters """ @@ -8020,6 +9373,38 @@ input UserNftsConnectionFilters { releases: [UUID!] } +""" +Entity that represents user notifications +""" +interface UserNotification implements Node { + """ + UserNotification UUID + """ + id: ID! + """ + Timestamp for notification + """ + timestamp: Timestamp! + """ + Recipient user entity + """ + user: User +} + +""" +Edge of UserNotification connection +""" +type UserNotificationConnectionEdge implements Edge { + """ + Cursor to be used for pagination + """ + cursor: String! + """ + UserNotification node + """ + node: UserNotification! +} + """ User relation entity """ @@ -8102,16 +9487,6 @@ input UserShelvesFilter { type: ShelfTypeFilter! = USER_CREATED } -""" -Exchanged amount pretty equivalent -""" -type ValueExchangedPrettyType { - """ - Formatted Ethereum value - """ - eth: String! -} - """ Input of VersionSupported query """ @@ -8141,6 +9516,32 @@ interface VersionStatusResponseInterface { recommendedVersion: String! } +""" +A release has reached viral mints status +""" +type ViralMintsReached implements Node & UserNotification { + """ + Featured collectors + """ + featuredCollectors: [User!]! + """ + UserNotification UUID + """ + id: ID! + """ + Viral mints release entity + """ + release: Release + """ + Timestamp for notification + """ + timestamp: Timestamp! + """ + Recipient user entity + """ + user: User +} + """ Represents NULL values """ diff --git a/tsconfig.json b/tsconfig.json index f8437828..dfa78d1d 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -25,9 +25,9 @@ // "moduleDetection": "auto", /* Control what method is used to detect module-format JS files. */ /* Modules */ - "module": "node16" /* Specify what module code is generated. */, + "module": "esnext" /* Specify what module code is generated. */, // "rootDir": "./", /* Specify the root folder within your source files. */ - "moduleResolution": "node" /* Specify how TypeScript looks up a file from a given module specifier. */, + "moduleResolution": "Bundler" /* Specify how TypeScript looks up a file from a given module specifier. */, // "baseUrl": "./", /* Specify the base directory to resolve non-relative module names. */ // "paths": {}, /* Specify a set of entries that re-map imports to additional lookup locations. */ // "rootDirs": [], /* Allow multiple folders to be treated as one when resolving modules. */ @@ -96,7 +96,7 @@ // "allowUnreachableCode": true, /* Disable error reporting for unreachable code. */ /* Completeness */ - // "skipDefaultLibCheck": true, /* Skip type checking .d.ts files that are included with TypeScript. */ + "skipDefaultLibCheck": true /* Skip type checking .d.ts files that are included with TypeScript. */, "skipLibCheck": true /* Skip type checking all .d.ts files. */, "verbatimModuleSyntax": true },