diff --git a/assets/discord/icon.png b/assets/discord/icon.png
new file mode 100644
index 00000000..379ce45d
Binary files /dev/null and b/assets/discord/icon.png differ
diff --git a/assets/facebook/icon.png b/assets/facebook/icon.png
index 607df92d..53b93ee7 100644
Binary files a/assets/facebook/icon.png and b/assets/facebook/icon.png differ
diff --git a/assets/github/icon.png b/assets/github/icon.png
new file mode 100644
index 00000000..4dabb974
Binary files /dev/null and b/assets/github/icon.png differ
diff --git a/assets/linkedin/icon.png b/assets/linkedin/icon.png
new file mode 100644
index 00000000..d3d399bd
Binary files /dev/null and b/assets/linkedin/icon.png differ
diff --git a/assets/telegram/icon.png b/assets/telegram/icon.png
new file mode 100644
index 00000000..a426747f
Binary files /dev/null and b/assets/telegram/icon.png differ
diff --git a/assets/twitter/icon.png b/assets/twitter/icon.png
index 9af6b8a7..cb8f5bab 100644
Binary files a/assets/twitter/icon.png and b/assets/twitter/icon.png differ
diff --git a/package.json b/package.json
index 4543d8b7..52b50566 100644
--- a/package.json
+++ b/package.json
@@ -5,7 +5,7 @@
"main": "dist/server.js",
"scripts": {
"dev": "yarn build; nodemon src/server.js",
- "build": "rm -rf dist && tsc",
+ "build": "rm -rf dist && tsc && rm -rf dist/assets && cp -R assets dist/",
"prestart": "yarn build",
"start": "node dist/server.js",
"tests": "ts-mocha './tests/**/*.ts'",
@@ -24,18 +24,29 @@
"bugs": {
"url": "https://github.com/verida/server-template/issues"
},
+ "engines": {
+ "node": ">=16.06"
+ },
"homepage": "https://github.com/verida/server-template#readme",
"dependencies": {
- "@verida/account-node": "^2.0.0",
- "@verida/client-ts": "^2.0.1",
- "@verida/did-client": "^2.0.0",
- "@verida/encryption-utils": "^2.0.0",
- "@verida/web3": "^2.0.0",
+ "@oauth-everything/passport-discord": "^1.0.2",
+ "@sapphire/snowflake": "^3.4.2",
+ "@superfaceai/passport-twitter-oauth2": "^1.2.3",
+ "@verida/account-node": "^3.0.1",
+ "@verida/client-ts": "^3.0.2",
+ "@verida/did-client": "^3.0.1",
+ "@verida/encryption-utils": "^3.0.0",
+ "@verida/helpers": "^3.0.1",
+ "@verida/types": "^3.0.0",
+ "@verida/vda-sbt-client": "^3.0.2",
+ "@verida/verifiable-credentials": "^3.0.2",
+ "@verida/web3": "^3.0.1",
"aws-serverless-express": "^3.4.0",
"axios": "^1.2.3",
"body-parser": "^1.19.0",
"cors": "^2.8.5",
"dayjs": "^1.11.1",
+ "discord.js": "^14.9.0",
"dotenv": "^8.2.0",
"express": "^4.17.1",
"express-basic-auth": "git+https://github.com/Mozzler/express-basic-auth.git",
@@ -48,7 +59,6 @@
"nano": "^9.0.5",
"passport": "^0.5.2",
"passport-facebook": "^3.0.0",
- "passport-twitter-oauth2.0": "^1.1.0",
"ts-mocha": "^9.0.2",
"twitter-api-v2": "^1.14.0"
},
@@ -56,7 +66,6 @@
"@types/express": "^4.17.13",
"@types/express-session": "1.17.0",
"@types/mocha": "^9.1.0",
- "@types/pouchdb-core": "^7.0.10",
"claudia": "^5.14.1",
"nodemon": "^2.0.14",
"typescript": "4.6.3"
diff --git a/src/config.ts b/src/config.ts
index cfeac93b..f938f453 100644
--- a/src/config.ts
+++ b/src/config.ts
@@ -1,16 +1,2 @@
-import { EnvironmentType } from '@verida/client-ts'
import serverconfig from './serverconfig.json'
-
-export default serverconfig
-
-export function strToEnvType(s: string) {
- if (s == EnvironmentType.LOCAL) {
- return EnvironmentType.LOCAL;
- } else if (s == EnvironmentType.TESTNET) {
- return EnvironmentType.TESTNET;
- } else if (s == EnvironmentType.MAINNET) {
- return EnvironmentType.MAINNET;
- } else {
- throw new Error("Invalid EnvironmentType value");
- }
-}
\ No newline at end of file
+export default serverconfig
\ No newline at end of file
diff --git a/src/controller.ts b/src/controller.ts
index d1651882..595e38ce 100644
--- a/src/controller.ts
+++ b/src/controller.ts
@@ -1,18 +1,10 @@
import { Request, Response } from 'express'
-
-import { Client, ContextInterfaces } from '@verida/client-ts'
-import { AutoAccount } from '@verida/account-node'
+import { DatabasePermissionOptionsEnum } from '@verida/types'
import EncryptionUtils from '@verida/encryption-utils'
-import fs from 'fs'
-
import serverconfig from '../src/serverconfig.json'
-import {strToEnvType} from "./config"
+import CONFIG from './config'
-const VERIDA_ENVIRONMENT = strToEnvType(serverconfig.verida.environment)
const CONTEXT_NAME = serverconfig.verida.contextName
-const PRIVATE_KEY = serverconfig.verida.privateKey
-const DEFAULT_ENDPOINTS = serverconfig.verida.defaultEndpoints
-const DID_CLIENT_CONFIG = serverconfig.verida.didClientConfig
const log4js = require("log4js")
const logger = log4js.getLogger()
@@ -23,6 +15,7 @@ const DATA_SYNC_REQUEST_SCHEMA = 'https://vault.schemas.verida.io/data-connectio
import Providers from "./providers"
import TokenExpiredError from './providers/TokenExpiredError'
+import { Utils } from './utils'
const delay = async (ms: number) => {
await new Promise((resolve) => setTimeout(() => resolve(true), ms))
@@ -87,31 +80,93 @@ export default class Controller {
const provider = Providers(providerName)
// @todo: handle error and show error message
- const connectionToken = await provider.callback(req, res, next)
-
- // @ts-ignore
- const did = req.session.did
-
- // Send the access token, refresh token and profile database name and encryption key
- // so the user can pull their profile remotely and store their tokens securely
- // This also avoids this server saving those credentials anywhere, they are only stored by the user
- const redirectUrl = `https://vault.verida.io/connection-success?provider=${providerName}&accessToken=${connectionToken.accessToken}&refreshToken=${connectionToken.refreshToken ? connectionToken.refreshToken : ''}`
-
- // @todo: Generate nice looking thank you page
- const output = `
-
-
-
-
- `
-
- res.send(output)
+ try {
+ const connectionToken = await provider.callback(req, res, next)
+
+ // @ts-ignore
+ const did = req.session.did
+
+ // Send the access token, refresh token and profile database name and encryption key
+ // so the user can pull their profile remotely and store their tokens securely
+ // This also avoids this server saving those credentials anywhere, they are only stored by the user
+ const redirectUrl = `https://vault.verida.io/connection-success?provider=${providerName}&accessToken=${connectionToken.accessToken}&refreshToken=${connectionToken.refreshToken ? connectionToken.refreshToken : ''}`
+
+ // @todo: Generate nice looking thank you page
+ const output = `
+
+
+
+
+
+
+
+
+ Complete Connection
+
+
+ `
+
+ res.send(output)
+ } catch (err: any) {
+ const message = err.message
+ // @todo: Generate nice looking thank you page
+ const output = `
+
+
+
+
+ `
+
+ res.send(output)
+ }
+ }
+
+ /**
+ * Deprecated
+ *
+ * @param req
+ * @param res
+ * @param next
+ */
+ public static async sync(req: Request, res: Response, next: any) {
+ const providerName = req.params.provider
+ const query = req.query
+ const did = query.did.toString()
+ const encryptionKey = Buffer.from(query.key.toString(), 'hex')
+ const accessToken = query.accessToken ? query.accessToken.toString() : ''
+ const refreshToken = query.refreshToken ? query.refreshToken.toString() : ''
+
+ return Controller._sync(providerName, did, encryptionKey, accessToken, refreshToken, res, {})
}
/**
- * Synchronize data from a third party data source with a local collection of datatores.
+ * New way... supports `syncSchemas` via POST body
+ * @param req
+ * @param res
+ * @param next
+ * @returns
+ */
+ public static async syncStart(req: Request, res: Response, next: any) {
+ const providerName = req.params.provider
+ const encryptionKey = Buffer.from(req.body.key, 'hex')
+ const did = req.body.did
+ const accessToken = req.body.accessToken ? req.body.accessToken.toString() : ''
+ const refreshToken = req.body.refreshToken ? req.body.refreshToken.toString() : ''
+ const syncSchemas = req.body.syncSchemas
+
+ return Controller._sync(providerName, did, encryptionKey, accessToken, refreshToken, res, syncSchemas)
+ }
+
+ /**
+ * Synchronize data from a third party data source with a local collection of datastores.
*
* Converts the third party into an appropriate Verida schema.
*
@@ -128,24 +183,17 @@ export default class Controller {
* @param next
* @returns
*/
- public static async sync(req: Request, res: Response, next: any) {
- const { account, context } = await Controller.getNetwork()
+ public static async _sync(providerName: string, did: string, encryptionKey: Uint8Array, accessToken: string, refreshToken: string, res: Response, syncSchemas: Record = {}) {
+ const { account, context } = await Utils.getNetwork()
const serverDid = await account.did()
-
- const providerName = req.params.provider
const provider = Providers(providerName)
- provider.setSigner(account)
-
- const query = req.query
- const did = query.did.toString()
- const encryptionKey = Buffer.from(query.key.toString(), 'hex')
// Generate a new sync request
const syncRequestDatabaseName = EncryptionUtils.hash(`${did}-${DATA_SYNC_REQUEST_SCHEMA}`)
const syncRequestDatastore = await context.openDatastore(DATA_SYNC_REQUEST_SCHEMA, {
permissions: {
- read: ContextInterfaces.PermissionOptionsEnum.USERS,
- write: ContextInterfaces.PermissionOptionsEnum.USERS,
+ read: DatabasePermissionOptionsEnum.USERS,
+ write: DatabasePermissionOptionsEnum.USERS,
readList: [did],
writeList: [did]
},
@@ -174,7 +222,7 @@ export default class Controller {
// Fetch the necessary data from the provider
let data: any = {}
try {
- data = await provider.syncFromRequest(req, res, next)
+ data = await provider.sync(accessToken, refreshToken, syncSchemas)
} catch (err: any) {
syncRequest.status = 'error'
if (err instanceof TokenExpiredError) {
@@ -196,8 +244,6 @@ export default class Controller {
return
}
- console.log('b')
-
// Add account auth info if it has changed
const newAuth = provider.getAccountAuth()
if (newAuth) {
@@ -205,7 +251,7 @@ export default class Controller {
}
// Add latest profile info
- syncRequest.syncInfo.profile = await provider.getProfile()
+ syncRequest.syncInfo.profile = await provider.getProfile(did, context)
const response: any = {}
const syncingDatabases = []
@@ -218,8 +264,8 @@ export default class Controller {
// open a datastore where the user has permission to access the datastores
const datastore = await context.openDatastore(schemaUri, {
permissions: {
- read: ContextInterfaces.PermissionOptionsEnum.USERS,
- write: ContextInterfaces.PermissionOptionsEnum.USERS,
+ read: DatabasePermissionOptionsEnum.USERS,
+ write: DatabasePermissionOptionsEnum.USERS,
readList: [did],
writeList: [did]
},
@@ -285,60 +331,36 @@ export default class Controller {
// This code loops through all the databases that were written to and
// checks the encrypted database has enough records written before flagging
// it as being fully sync'd
- let count = 5
- while (count > 0) {
- let completeCount = 0
- for (let i = 0; i < syncingDatabases.length; i++) {
- const db = syncingDatabases[i]
+ for (let i = 0; i < syncingDatabases.length; i++) {
+ const db = syncingDatabases[i]
- const remote = await db.getRemoteEncrypted()
- const local = await db.getDb()
+ await db.close({
+ clearLocal: true
+ })
- const remoteInfo = await remote.info()
- const localInfo = await local.info()
+ console.log('db closed...')
+ }
- if (remoteInfo.doc_count >= localInfo.doc_count) {
- completeCount++
- }
- }
+ // Wait 3 seconds to be super sure sync response is saved to DB
+ await delay(3000)
- if (completeCount == syncingDatabases.length) {
- // Update the sync request to say it has completed successfully
- syncRequest.syncInfo.schemas = response
+ // Update the sync request to say it has completed successfully
+ syncRequest.syncInfo.schemas = response
- syncRequest.status = "complete"
- const res = await syncRequestDatastore.save(syncRequest)
- if (!res) {
- console.log(`Errors saving sync request`)
- console.log(syncRequestDatastore.errors)
- }
-
- logger.info(`Saved sync request indicating process is complete`)
- // Wait 3 seconds to be super sure sync response is saved to DB
- await delay(3000)
-
- await context.close({
- clearLocal: true
- })
-
- return
- }
-
- await delay(2000)
- count--
- }
+ syncRequest.status = "complete"
+ await syncRequestDatastore.save(syncRequest)
- // After 5x2 second delays, we still don't have sync so assume it has failed
- syncRequest.status = "error"
- syncRequest.syncInfo.error = "Server timed out syncing encrypted database"
+ console.log('sync request saved')
- await syncRequestDatastore.save(syncRequest)
-
- logger.info(`Saved sync request indicating process has error`)
+ await delay(3000)
await context.close({
clearLocal: true
})
+
+ console.log('context closed')
+
+ return
}
/**
@@ -355,18 +377,14 @@ export default class Controller {
* @returns
*/
public static async syncDone(req: Request, res: Response, next: any) {
- logger.trace(`syncDone()`)
- return res.send({
- success: true
- })
const providerName = req.params.provider
const provider = Providers(providerName)
const schemaUris = provider.schemaUris()
const query = req.query
- const did: string = query.did.toString()
+ const did = query.did.toString()
- const { context } = await Controller.getNetwork()
+ const { context } = await Utils.getNetwork()
const clearedDatabases = []
for (let i in schemaUris) {
@@ -374,8 +392,8 @@ export default class Controller {
const databaseName = EncryptionUtils.hash(`${did}-${schemaUri}`)
const datastore = await context.openDatastore(schemaUri, {
permissions: {
- read: ContextInterfaces.PermissionOptionsEnum.USERS,
- write: ContextInterfaces.PermissionOptionsEnum.USERS,
+ read: DatabasePermissionOptionsEnum.USERS,
+ write: DatabasePermissionOptionsEnum.USERS,
readList: [did],
writeList: [did]
},
@@ -386,7 +404,7 @@ export default class Controller {
try {
// @todo: use `db.destroy()` once its released
- await db._localDb.destroy()
+ await db.destroy()
clearedDatabases.push(schemaUri)
} catch (err) {
logger.error(err.status, err.name)
@@ -398,61 +416,25 @@ export default class Controller {
})
}
- /**
- * Get a network, context and account instance
- *
- * @returns
- */
- public static async getNetwork(): Promise {
- const network = new Client({
- environment: VERIDA_ENVIRONMENT
- })
- const account = new AutoAccount(DEFAULT_ENDPOINTS, {
- privateKey: PRIVATE_KEY,
- environment: VERIDA_ENVIRONMENT,
- // @ts-ignore
- didClientConfig: DID_CLIENT_CONFIG
- })
- await network.connect(account)
- const context = await network.openContext(CONTEXT_NAME)
+ public static async providers(req: Request, res: Response) {
+ const providers = Object.keys(CONFIG.providers)
- return {
- network,
- context,
- account
- }
- }
-
- /**
- * Get a list of all the supported providers
- */
- public static async getProviders(): Promise {
- // Build a list of data source providers from the providers directory
- const providerDirectory = fs.readdirSync('./src/providers')
- const providers = []
- for (let i in providerDirectory) {
- const providerEntry = providerDirectory[i]
- if (providerEntry.match('\\.')) {
- // ignore files (indicated by having a `.` in the name)
- continue
- }
-
- providers.push(providerEntry)
- }
-
- // Build up a list of providers
- const providerList = []
+ const results: any = {}
for (let p in providers) {
const providerName = providers[p]
- const provider = Providers(providerName)
- providerList.push({
- name: providerName,
- label: provider.getLabel(),
- icon: provider.icon ? provider.icon : `${serverconfig.assetsUrl}/${providerName}/icon.png`
- })
+ try {
+ const provider = Providers(providerName)
+ results[providerName] = {
+ name: providerName,
+ label: provider.getProviderLabel(),
+ icon: provider.getProviderImageUrl()
+ }
+ } catch (err) {
+ // skip broken providers
+ }
}
- return providerList
+ return res.send(results)
}
}
\ No newline at end of file
diff --git a/src/providers/BaseProvider.ts b/src/providers/BaseProvider.ts
index 2da34176..fd246e65 100644
--- a/src/providers/BaseProvider.ts
+++ b/src/providers/BaseProvider.ts
@@ -1,6 +1,9 @@
-import { AutoAccount } from '@verida/account-node'
+import { Context } from '@verida/client-ts'
+import { explodeDID } from '@verida/helpers'
import { Request, Response } from 'express'
+import { Utils } from '../utils'
import BaseProviderConfig from './BaseProviderConfig'
+import serverconfig from '../serverconfig.json'
export interface AccountAuth {
accessToken: string,
@@ -15,37 +18,40 @@ export interface AccountProfile {
createdAt?: string
url?: string
avatarUrl?: string
- proof?: string
- proofSignature?: string
+ credential?: string
}
-export default class BaseProvider {
+export interface SyncSchemaConfig {
+ limit?: number
+ sinceId?: string
+}
- protected signerContext: string
- protected signerAccount?: AutoAccount
+export default class BaseProvider {
- protected icon?: string
protected config: BaseProviderConfig
protected newAuth?: AccountAuth
protected profile?: AccountProfile
- public constructor(config: BaseProviderConfig, signerContext: string) {
+ public constructor(config: BaseProviderConfig) {
this.config = config
- this.signerContext = signerContext
}
- public setSigner(signerAccount: AutoAccount) {
- this.signerAccount = signerAccount
+ public getProviderId(): string {
+ throw new Error('Not implemented')
}
- public getProviderId() {
- throw new Error('Not implemented')
+ public getProviderImageUrl(): string {
+ return `${serverconfig.assetsUrl}/${this.getProviderId()}/icon.png`
}
- public getLabel() {
+ public getProviderLabel(): string {
return this.config.label
}
+ public getProviderSbtImage(): string {
+ return this.config.sbtImage
+ }
+
public async connect(req: Request, res: Response, next: any): Promise {
throw new Error('Not implemented')
}
@@ -54,28 +60,48 @@ export default class BaseProvider {
throw new Error('Not implemented')
}
- public async getProfile(): Promise {
- if (this.profile && !this.profile.proof) {
- const did = await this.signerAccount.did()
- this.profile.proof = `${this.getProviderId()}-${this.profile.id}-${did.toLowerCase()}`
+ public async getProfileData(did: string): Promise> {
+ const profileLabel = this.profile.name || this.profile.username || this.profile.id
+ const { address: didAddress } = explodeDID(did)
+
+ const credentialData: Record = {
+ did,
+ didAddress: didAddress.toLowerCase(),
+ name: `${this.getProviderLabel()}: ${profileLabel}`,
+ type: `${this.getProviderId()}-account`,
+ image: this.getProviderSbtImage(),
+ description: `Proof of ${this.getProviderLabel()} account ownership ${profileLabel}${profileLabel == this.profile.id ? '' : ' (' + this.profile.id+ ')'}`,
+ attributes: [{
+ trait_type: "accountCreated",
+ value: this.profile.createdAt
+ }],
+ uniqueAttribute: this.profile.id,
+ }
- const keyring = await this.signerAccount.keyring(this.signerContext)
- this.profile.proofSignature = await keyring.sign(this.profile.proof)
+ if (this.profile.url) {
+ credentialData.external_url = this.profile.url
}
- return this.profile
+ if (this.profile.avatarUrl) {
+ credentialData.attributes.push({
+ trait_type: "avatarUrl",
+ value: this.profile.avatarUrl
+ })
+ }
+
+ return credentialData
}
- public async syncFromRequest(req: Request, res: Response, next: any): Promise {
- const query = req.query
- const accessToken = query.accessToken ? query.accessToken.toString() : ''
- const refreshToken = query.refreshToken ? query.refreshToken.toString() : ''
+ public async getProfile(did: string, context: Context): Promise {
+ if (this.profile && !this.profile.credential) {
+ const profileCredentialData = await this.getProfileData(did)
+ this.profile.credential = await Utils.buildCredential(profileCredentialData, context)
+ }
- return this.sync(accessToken, refreshToken)
+ return this.profile
}
/**
- *
* Must update `profile` or `newAuth` if they have changed
*
* @param accessToken
@@ -83,20 +109,22 @@ export default class BaseProvider {
* @param schemaUri
* @returns
*/
- public async sync(accessToken: string, refreshToken: string, schemaUri?: string): Promise {
+ public async sync(accessToken: string, refreshToken: string, syncSchemas: Record = {}): Promise {
const api = await this.getApi(accessToken, refreshToken)
const results = []
const handlers = this.syncHandlers()
+ const schemaList = Object.keys(syncSchemas)
for (let h in handlers) {
const handler = handlers[h]
- if (schemaUri && handler.getSchemaUri() != schemaUri) {
+ if (schemaList.length && schemaList.indexOf(handler.getSchemaUri()) === -1) {
+ // Schema list exists, but not found
continue
}
const handlerInstance = new handler(this.config, this.profile)
- const handlerResults = await handlerInstance.sync(api)
+ const handlerResults = await handlerInstance.sync(api, syncSchemas[handler.getSchemaUri()])
results[handler.getSchemaUri()] = handlerResults
}
diff --git a/src/providers/BaseProviderConfig.ts b/src/providers/BaseProviderConfig.ts
index 9e655f2b..f60f467c 100644
--- a/src/providers/BaseProviderConfig.ts
+++ b/src/providers/BaseProviderConfig.ts
@@ -1,5 +1,6 @@
export default interface BaseProviderConfig {
+ sbtImage: string
label: string
signerPrivateKey: string
}
\ No newline at end of file
diff --git a/src/providers/BaseSyncHandler.ts b/src/providers/BaseSyncHandler.ts
index 138b31d3..11c8b965 100644
--- a/src/providers/BaseSyncHandler.ts
+++ b/src/providers/BaseSyncHandler.ts
@@ -1,4 +1,4 @@
-import { AccountProfile } from "./BaseProvider"
+import { AccountProfile, SyncSchemaConfig } from "./BaseProvider"
export default class BaseSyncHandler {
@@ -18,7 +18,7 @@ export default class BaseSyncHandler {
/**
* Implement this sync method to generate data for the schemaUri of this sync handler
*/
- public async sync(api: any): Promise {
+ public async sync(api: any, syncConfig: SyncSchemaConfig): Promise {
throw new Error('Not implemented')
}
}
\ No newline at end of file
diff --git a/src/providers/discord/following.ts b/src/providers/discord/following.ts
new file mode 100644
index 00000000..2d750ff0
--- /dev/null
+++ b/src/providers/discord/following.ts
@@ -0,0 +1,60 @@
+import BaseSyncHandler from "../BaseSyncHandler"
+import dayjs from 'dayjs'
+import { SyncSchemaConfig } from "../BaseProvider"
+const _ = require('lodash')
+
+const log4js = require("log4js")
+const logger = log4js.getLogger()
+
+//import { Client } from 'discord.js'
+
+export default class Following extends BaseSyncHandler {
+
+ protected static schemaUri: string = 'https://common.schemas.verida.io/social/following/v0.1.0/schema.json'
+
+ /**
+ * @todo: Support paging through all results
+ * @todo: Correctly support `this.config.limitResults`
+ *
+ * @param api
+ */
+ public async sync(api: any, syncConfig: SyncSchemaConfig = {}): Promise {
+ const guildResponse: any = await api.get('/users/@me/guilds')
+ console.log(syncConfig)
+
+ const now = (new Date()).toISOString()
+ const guilds: any = []
+ for (let i in guildResponse) {
+ try {
+ const guildItem = guildResponse[i]
+ console.log('Processing', guildItem.name)
+ /*
+ Note: It's not possible to fetch followedTimestamp. It appears Discord rate limiting is
+ really extreme and only allows 5 requests per minute.
+
+ const guildMemberInfo = await api.get(`/users/@me/guilds/${guildItem.id}/member`)
+ const followedTimestamp = guildMemberInfo.joined_at
+ */
+
+ const guildIcon = api.cdn.icon(guildItem.id, guildItem.icon)
+ const guildEntry: any = {
+ _id: `discord-${guildItem.id}`,
+ name: guildItem.name,
+ icon: guildIcon,
+ summary: `Discord guild: ${guildItem.name}`,
+ //uri: Discord doesn't support URL's for servers
+ sourceApplication: 'https://discord.com/',
+ sourceId: guildItem.id,
+ //followedTimestamp: now,
+ insertedAt: now
+ }
+
+ guilds.push(guildEntry)
+ } catch (err) {
+ console.log(err)
+ }
+ }
+
+ return guilds
+ }
+}
\ No newline at end of file
diff --git a/src/providers/discord/index.ts b/src/providers/discord/index.ts
new file mode 100644
index 00000000..b9771de7
--- /dev/null
+++ b/src/providers/discord/index.ts
@@ -0,0 +1,171 @@
+import { Request, Response } from 'express'
+import Base from "../BaseProvider"
+import BaseProviderConfig from '../BaseProviderConfig'
+
+const passport = require("passport")
+import { Strategy as DiscordStrategy, Scope } from '@oauth-everything/passport-discord';
+import { REST, Client, GatewayIntentBits } from 'discord.js'
+import { DiscordSnowflake } from '@sapphire/snowflake'
+import dayjs from 'dayjs'
+import axios from 'axios'
+
+//import SBTs from './sbts'
+import Following from './following'
+import TokenExpiredError from '../TokenExpiredError'
+
+export interface DiscordProviderConfig extends BaseProviderConfig {
+ clientID: string
+ clientSecret: string
+ callbackUrl: string
+ limitResults: boolean
+}
+
+// Note: If scopes change a user needs to disconnect and reconnect the app
+const SCOPE = [Scope.IDENTIFY, Scope.EMAIL, Scope.GUILDS, 'guilds.members.read']
+
+export default class DiscordProvider extends Base {
+
+ protected config: DiscordProviderConfig
+
+ public getProviderId() {
+ return 'discord'
+ }
+
+ public getProviderLabel() {
+ return 'Discord'
+ }
+
+ public syncHandlers(): any[] {
+ return [
+ //SBTs
+ Following
+ ]
+ return []
+ }
+
+ public async connect(req: Request, res: Response, next: any): Promise {
+ this.init()
+ const auth = await passport.authenticate(this.getProviderId())
+ return auth(req, res, next)
+ }
+
+ /**
+ * @todo: Create proper connectionToken response
+ *
+ * @param req
+ * @param res
+ * @param next
+ * @returns
+ */
+ public async callback(req: Request, res: Response, next: any): Promise {
+ this.init()
+
+ const promise = new Promise((resolve, rejects) => {
+ const auth = passport.authenticate(this.getProviderId(), {
+ scope: SCOPE,
+ failureRedirect: '/failure/discord',
+ failureMessage: true
+ }, function(err: any, data: any) {
+ if (err) {
+ rejects(err)
+ } else {
+ const connectionToken = {
+ id: data.profile.id,
+ accessToken: data.accessToken,
+ refreshToken: data.refreshToken,
+ profile: data.profile
+ }
+
+ resolve(connectionToken)
+ }
+ })
+
+ auth(req, res, next)
+ })
+
+ const result = await promise
+ return result
+ }
+
+ public async getApi(accessToken?: string, refreshToken?: string): Promise {
+ let me: any, client: REST
+
+ try {
+ client = new REST({ version: '10', authPrefix: 'Bearer' }).setToken(accessToken);
+ me = await client.get('/users/@me')
+ } catch (err: any) {
+ if (err.status && (err.status == 401 || err.status == 403)) {
+ console.log('token has expired, fetch a new one')
+ console.log('refreshToken', refreshToken)
+
+ try {
+ const requestData = {
+ client_id: this.config.clientID,
+ client_secret: this.config.clientSecret,
+ grant_type: 'refresh_token',
+ refresh_token: refreshToken
+ }
+ const newTokenResponse = await axios.post('https://discord.com/api/v10/oauth2/token', new URLSearchParams(requestData).toString(), {
+ auth: {
+ username: this.config.clientID,
+ password: this.config.clientSecret
+ },
+ headers: {
+ 'Content-Type': 'application/x-www-form-urlencoded'
+ }
+ })
+
+ const { access_token, refresh_token } = newTokenResponse.data
+ this.setAccountAuth(access_token, refresh_token)
+
+ client = new REST({ version: '10', authPrefix: 'Bearer' }).setToken(access_token);
+ me = await client.get('/users/@me')
+ } catch (err) {
+ console.log(err.response)
+ // Unrecoverable auth error
+ throw new TokenExpiredError(err.message)
+ }
+ } else {
+ throw err
+ }
+ }
+
+ // ID's are based on timestamp of creation
+ // @see https://github.com/discordjs/discord.js/blob/384b4d10e8642f0f280ea1651f33cd378c341333/packages/discord.js/src/structures/User.js#L130
+ const createdTimestamp = DiscordSnowflake.timestampFrom(me.id)
+ const createdAt = dayjs(createdTimestamp).toISOString()
+
+ // Note: Discord doesn't have the concept of a profile `url` or `description`
+ this.profile = {
+ id: me.id,
+ name: me.display_name ? me.display_name : me.username,
+ username: me.username,
+ // use user custom avatar if set, otherwise use default discord avatar
+ avatarUrl: me.avatar ? client.cdn.avatar(me.id, me.avatar) : client.cdn.defaultAvatar(me.discriminator % 5),
+ createdAt
+ }
+
+ return client
+ }
+
+ public init() {
+ // obtain a new access token from refresh token
+ passport.use(new DiscordStrategy({
+ clientID: this.config.clientID,
+ clientSecret: this.config.clientSecret,
+ callbackURL: this.config.callbackUrl,
+ scope: SCOPE,
+ },
+ function(accessToken: string, refreshToken: string, profile: any, cb: any) {
+ // Simply return the raw data
+ return cb(null, {
+ accessToken,
+ refreshToken,
+ profile
+ })
+ }
+ ));
+ }
+
+}
+
diff --git a/src/providers/discord/sbts.ts b/src/providers/discord/sbts.ts
new file mode 100644
index 00000000..5fa23cd5
--- /dev/null
+++ b/src/providers/discord/sbts.ts
@@ -0,0 +1,92 @@
+import BaseSyncHandler from "../BaseSyncHandler"
+import { SyncSchemaConfig } from "../BaseProvider"
+import { REST } from 'discord.js'
+import DiscordProvider from "."
+const _ = require('lodash')
+
+// import dayjs from 'dayjs'
+//const log4js = require("log4js")
+//const logger = log4js.getLogger()
+
+export default class SBTs extends BaseSyncHandler {
+ protected static schemaUri: string = 'https://common.schemas.verida.io/credential/base/v0.2.0/schema.json'
+
+ /**
+ * @todo: Support paging through all results
+ * @todo: Correctly support `this.config.limitResults`
+ *
+ * @param api
+ */
+ public async sync(api: REST, syncConfig: SyncSchemaConfig = {}): Promise {
+ console.log('fetching sbt credentials to sync')
+
+ const guildResponse: any = await api.get('/users/@me/guilds')
+
+ //const genericApi = new REST({ version: '10', authPrefix: 'Bearer' }).setToken(provider.getConfig());
+
+ const guilds = {}
+ return guilds
+ for (let i in guildResponse) {
+ try {
+ const guildItem = guildResponse[i]
+ console.log('fetching member guild info for ', guildItem.name)
+ const guildMemberInfo = await api.get(`/users/@me/guilds/${guildItem.id}/member`)
+ console.log('fetching guild info for ', guildItem.name)
+ const guildInfo = await api.get(`/guilds/${guildItem.id}`)
+ console.log(guildItem, guildMemberInfo, guildInfo)
+ } catch (err) {
+ console.log(err)
+ }
+ }
+
+ return guilds
+ /*console.log('following.sync()')
+ console.log(syncConfig)
+ const me = await api.v2.me()
+ const limit = syncConfig.limit ? syncConfig.limit : this.config.followingLimit
+ const sinceId = syncConfig.sinceId ? syncConfig.sinceId.substring(8) : undefined
+ console.log('limit', limit)
+ console.log('sinceId', sinceId)
+
+ const followingResult = await api.v2.following(me.data.id, {
+ 'user.fields': ['profile_image_url', 'description'],
+ asPaginator: true
+ })
+
+ const results = []
+ const now = (new Date()).toISOString()
+ for await (const user of followingResult) {
+ if (sinceId && user.id == sinceId) {
+ console.log('latest user id found, exiting')
+ break
+ }
+
+ // Iterate until rate limit is hit
+ // or API calls returns no more results
+
+ //console.log(user)
+
+ results.push({
+ _id: `twitter-${user.id}`,
+ name: user.name,
+ icon: user.profile_image_url,
+ summary: user.description.substring(0,256),
+ uri: `https://twitter.com/${user.username}`,
+ sourceApplication: 'https://twitter.com/',
+ sourceId: user.id,
+ // twitter doesn't support a timestamp on when the user
+ // was followed, so set to current timestamp
+ followedTimestamp: now,
+ insertedAt: now
+ })
+
+ if (results.length >= limit) {
+ break
+ }
+ }
+
+ console.log('returning following results:', results.length)
+ return results*/
+ }
+
+}
\ No newline at end of file
diff --git a/src/providers/facebook/index.ts b/src/providers/facebook/index.ts
index 787f592d..b8ee30a1 100644
--- a/src/providers/facebook/index.ts
+++ b/src/providers/facebook/index.ts
@@ -26,6 +26,10 @@ export default class FacebookProvider extends Base {
return 'facebook'
}
+ public getProviderLabel() {
+ return 'Facebook'
+ }
+
public syncHandlers(): any[] {
return [
Following,
diff --git a/src/providers/index.ts b/src/providers/index.ts
index f455670d..1ff98c63 100644
--- a/src/providers/index.ts
+++ b/src/providers/index.ts
@@ -8,5 +8,5 @@ export default function (providerName: string): any {
const providerConfig = _.merge(CONFIG.providerDefaults, CONFIG.providers[providerName])
providerConfig.callbackUrl = `${CONFIG.serverUrl}/callback/${providerName}`
- return new provider.default(providerConfig, CONFIG.verida.contextName)
+ return new provider.default(providerConfig)
}
\ No newline at end of file
diff --git a/src/providers/twitter/index.ts b/src/providers/twitter/index.ts
index 28ade64a..c76360a6 100644
--- a/src/providers/twitter/index.ts
+++ b/src/providers/twitter/index.ts
@@ -3,7 +3,7 @@ import Base from "../BaseProvider"
import BaseProviderConfig from '../BaseProviderConfig'
const passport = require("passport")
-const TwitterStrategy = require("passport-twitter-oauth2.0")
+import { Strategy as TwitterStrategy } from '@superfaceai/passport-twitter-oauth2'
import { TwitterApi as TwitterClient } from 'twitter-api-v2'
import dayjs from 'dayjs'
@@ -29,6 +29,10 @@ export default class TwitterProvider extends Base {
return 'twitter'
}
+ public getProviderLabel() {
+ return 'Twitter'
+ }
+
public syncHandlers(): any[] {
return [
Following,
@@ -141,10 +145,8 @@ export default class TwitterProvider extends Base {
clientID: this.config.clientID,
clientSecret: this.config.clientSecret,
callbackURL: this.config.callbackUrl,
- clientType: 'private',
+ clientType: 'confidential',
scope: SCOPE,
- pkce: true, // required,
- state: true // required
},
function(accessToken: string, refreshToken: string, profile: any, cb: any) {
// Simply return the raw data
diff --git a/src/request-validator.ts b/src/request-validator.ts
index 391983f9..632c92ce 100644
--- a/src/request-validator.ts
+++ b/src/request-validator.ts
@@ -1,7 +1,6 @@
-const basicAuth = require('express-basic-auth')
const mcache = require("memory-cache")
import { DIDClient } from '@verida/did-client'
-import { sign } from 'crypto'
+import { VERIDA_ENVIRONMENT } from './utils'
let didClient: DIDClient
@@ -17,13 +16,9 @@ export default class RequestValidator {
* @param {*} req
*/
public authorize(did: string, signature: string, req: any, cb: any) {
- console.log('authorize called')
did = did.replace(/_/g, ":").toLowerCase()
const storageContext = req.headers['context-name']
const cacheKey = `${did}/${storageContext}`
- console.log("did", did)
- console.log('signature', signature)
- console.log('storageContext', storageContext)
const authCheck = async () => {
try {
@@ -35,7 +30,7 @@ export default class RequestValidator {
if (!didDocument) {
if (!didClient) {
didClient = new DIDClient({
- network: 'testnet'
+ network: VERIDA_ENVIRONMENT
})
}
diff --git a/src/routes.ts b/src/routes.ts
index e79b6fed..6981d74e 100644
--- a/src/routes.ts
+++ b/src/routes.ts
@@ -6,6 +6,8 @@ const router = express.Router()
router.get('/connect/:provider', Controller.connect)
router.get('/callback/:provider', Controller.callback)
router.get('/sync/:provider', Controller.sync)
+router.post('/syncStart/:provider', Controller.syncStart)
router.get('/syncDone/:provider', Controller.syncDone)
+router.get('/providers', Controller.providers)
export default router
\ No newline at end of file
diff --git a/src/server-app.ts b/src/server-app.ts
index 4a36bb09..22350778 100644
--- a/src/server-app.ts
+++ b/src/server-app.ts
@@ -10,6 +10,8 @@ const logger = log4js.getLogger()
import CONFIG from "./config"
logger.level = CONFIG.logLevel
+const path = require('path')
+
//const basicAuth = require('express-basic-auth')
//import RequestValidator from './request-validator'
@@ -17,6 +19,8 @@ logger.level = CONFIG.logLevel
const app = express();
//const validator = new RequestValidator()
+console.log(path.join(__dirname, 'assets'))
+app.use('/assets', express.static(path.join(__dirname, 'assets')))
app.use(session({
secret: 'c20n498n720489t729amx9 8es',
resave: false,
@@ -42,7 +46,7 @@ app.use(router)
module.exports=app
/*
-//Example code to create HTTPS server
+//Example code to create HTTPS server (for facebook testing)
const https = require("https")
const fs = require("fs")
diff --git a/src/server.ts b/src/server.ts
index a4365201..5ce30522 100644
--- a/src/server.ts
+++ b/src/server.ts
@@ -3,7 +3,28 @@ This lets us run the Express server locally
*/
const app = require('./server-app');
+
const PORT = process.env.SERVER_PORT ? process.env.SERVER_PORT : 5021;
+
+
app.listen(PORT, () => {
console.log(`server running on port ${PORT}`);
-});
\ No newline at end of file
+});
+/*
+
+const https = require("https")
+const fs = require("fs")
+
+const key = fs.readFileSync("./keys/server.key")
+const cert = fs.readFileSync("./keys/server.cert")
+
+https.createServer(
+ {
+ key,
+ cert
+ },
+ app
+ ).listen(PORT, () => {
+ console.log(`server running on port ${PORT}`)
+});
+*/
\ No newline at end of file
diff --git a/src/serverconfig.json b/src/serverconfig.json
index d35447bc..56e47010 100644
--- a/src/serverconfig.json
+++ b/src/serverconfig.json
@@ -1,32 +1,44 @@
{
- "serverUrl": "http://localhost:5021",
- "assetsUrl": "http://localhost:5021/assets",
+ "serverUrl": "http://192.168.68.128:5021",
+ "assetsUrl": "http://192.168.68.128:5021/assets",
"logLevel": "debug",
"verida": {
"environment": "testnet",
"contextName": "Verida: Data Connector",
- "privateKey": "",
+ "privateKey": "0xccd3b996ec98a9a536efdffbae40e5eaaf117765a587483c69195c9460165c37",
"defaultEndpoints": {
"defaultDatabaseServer": {
"type": "VeridaDatabase",
- "endpointUri": []
+ "endpointUri": ["https://node1-apse2.acacia.verida.tech/", "https://node1-use2.acacia.verida.tech/", "https://node3-apse2.acacia.verida.tech/"]
},
"defaultMessageServer": {
"type": "VeridaMessage",
- "endpointUri": []
+ "endpointUri": ["https://node1-apse2.acacia.verida.tech/", "https://node1-use2.acacia.verida.tech/", "https://node3-apse2.acacia.verida.tech/"]
}
},
"didClientConfig": {
- "callType": "web3",
+ "callType": "gasless",
"network": "testnet",
"web3Config": {
+ "rpcUrl": "https://rpc-mumbai.maticvigil.com/",
+ "serverConfig": {
+ "headers": {
+ "context-name": "Verida: Vault"
+ }
+ },
+ "postConfig": {
+ "headers": {
+ "user-agent": "Verida-Vault"
+ }
+ },
+ "endpointUrl": "https://meta-tx-server1.tn.verida.tech"
},
"rpcUrl": "https://rpc-mumbai.maticvigil.com/",
- "didEndpoints": []
+ "didEndpoints": ["https://node1-apse2.acacia.verida.tech/did/", "https://node1-use2.acacia.verida.tech/did/", "https://node3-apse2.acacia.verida.tech/did/"]
}
},
"testing": {
- "contextName": "",
+ "contextName": "Verida Testing: Fake Vault",
"veridaPrivateKey": "",
"encryptionKey": ""
},
@@ -35,22 +47,42 @@
"label": "Facebook",
"appId": "",
"appSecret": "",
+ "sbtImage": "https://data.verida.network/ipfs/QmcCoAjMWQpz7FwJi1d7jSh9EJ1m3xY1FRGxPi9pu3Rit7/FacebookBadge.png",
"followingLimit": 20,
"postLimit": 20,
"testing": {
"accessToken": ""
}
},
+ "twitter-verida": {
+ "label": "Twitter",
+ "apiKey": "",
+ "apiSecret": "",
+ "bearerToken": "",
+ "followingLimit": 20,
+ "postLimit": 20,
+ "testing": {
+ "accessToken": "",
+ "refreshToken": ""
+ }
+ },
"twitter": {
"label": "Twitter",
"clientID": "",
"clientSecret": "",
+ "sbtImage": "https://data.verida.network/ipfs/QmWpmaBusMENzxLJb5RJUzp951sXPm9GLQCy4pt5zC2XdU/TwitterBadge.png",
"followingLimit": 20,
"postLimit": 20,
"testing": {
"accessToken": "",
"refreshToken": ""
}
+ },
+ "discord": {
+ "label": "Discord",
+ "clientID": "",
+ "clientSecret": "",
+ "sbtImage": ""
}
},
"providerDefaults": {
diff --git a/src/utils.ts b/src/utils.ts
new file mode 100644
index 00000000..8002c4f2
--- /dev/null
+++ b/src/utils.ts
@@ -0,0 +1,111 @@
+import { EnvironmentType } from '@verida/types'
+import { AutoAccount } from "@verida/account-node"
+import { Client, Context } from "@verida/client-ts"
+import { Credentials } from '@verida/verifiable-credentials'
+import Providers from "./providers"
+import fs from 'fs'
+import serverconfig from '../src/serverconfig.json'
+
+const CONTEXT_NAME = serverconfig.verida.contextName
+const PRIVATE_KEY = serverconfig.verida.privateKey
+const DID_CLIENT_CONFIG = serverconfig.verida.didClientConfig
+
+const SBT_CREDENTIAL_SCHEMA = 'https://common.schemas.verida.io/token/sbt/credential/v0.1.0/schema.json'
+
+export {
+ CONTEXT_NAME,
+ PRIVATE_KEY,
+ DID_CLIENT_CONFIG,
+ SBT_CREDENTIAL_SCHEMA
+}
+
+export class Utils {
+
+ /**
+ * Get a network, context and account instance
+ *
+ * @returns
+ */
+ public static async getNetwork(): Promise {
+ const VERIDA_ENVIRONMENT = Utils.strToEnvType(serverconfig.verida.environment)
+ const network = new Client({
+ environment: VERIDA_ENVIRONMENT
+ })
+ const account = new AutoAccount({
+ privateKey: PRIVATE_KEY,
+ environment: VERIDA_ENVIRONMENT,
+ // @ts-ignore
+ didClientConfig: DID_CLIENT_CONFIG
+ })
+ await network.connect(account)
+ const context = await network.openContext(CONTEXT_NAME)
+
+ return {
+ network,
+ context,
+ account
+ }
+ }
+
+ /**
+ * Get a list of all the supported providers
+ */
+ public static async getProviders(): Promise {
+ // Build a list of data source providers from the providers directory
+ const providerDirectory = fs.readdirSync('./src/providers')
+ const providers = []
+ for (let i in providerDirectory) {
+ const providerEntry = providerDirectory[i]
+ if (providerEntry.match('\\.')) {
+ // ignore files (indicated by having a `.` in the name)
+ continue
+ }
+
+ providers.push(providerEntry)
+ }
+
+ // Build up a list of providers
+ const providerList = []
+ for (let p in providers) {
+ const providerName = providers[p]
+ const provider = Providers(providerName)
+ providerList.push({
+ name: providerName,
+ label: provider.getProviderLabel(),
+ icon: provider.icon ? provider.icon : `${serverconfig.assetsUrl}/${providerName}/icon.png`
+ })
+ }
+
+ return providerList
+ }
+
+ public static async buildCredential(
+ credentialData: Record,
+ context: Context,
+ ): Promise {
+ const credentials = new Credentials();
+
+ return await credentials.createVerifiableCredentialRecord({
+ context: context as any,
+ data: credentialData,
+ subjectId: credentialData.did,
+ schema: SBT_CREDENTIAL_SCHEMA
+ }, credentialData.name, credentialData.description, credentialData.image)
+ }
+
+ public static strToEnvType(s: string) {
+ if (s == EnvironmentType.LOCAL) {
+ return EnvironmentType.LOCAL;
+ } else if (s == EnvironmentType.TESTNET) {
+ return EnvironmentType.TESTNET;
+ } else if (s == EnvironmentType.MAINNET) {
+ return EnvironmentType.MAINNET;
+ } else {
+ throw new Error("Invalid EnvironmentType value");
+ }
+ }
+}
+
+const VERIDA_ENVIRONMENT = Utils.strToEnvType(serverconfig.verida.environment)
+
+export { VERIDA_ENVIRONMENT }
\ No newline at end of file
diff --git a/tests/common.utils.ts b/tests/common.utils.ts
index 5a28a0db..d557e824 100644
--- a/tests/common.utils.ts
+++ b/tests/common.utils.ts
@@ -1,11 +1,11 @@
-
const assert = require("assert")
import Axios from 'axios'
-import { EnvironmentType, Context, Client, ContextInterfaces } from '@verida/client-ts'
+import { Context, Client } from '@verida/client-ts'
import { AutoAccount } from '@verida/account-node'
import serverconfig from '../src/serverconfig.json'
import Datastore from '@verida/client-ts/dist/context/datastore'
+import { DatabasePermissionOptionsEnum, EnvironmentType } from '@verida/types'
const SERVER_URL = serverconfig.serverUrl
const TEST_VAULT_CONTEXT = serverconfig.testing.contextName
@@ -14,8 +14,15 @@ const TEST_VAULT_PRIVATE_KEY = serverconfig.testing.veridaPrivateKey
const VERIDA_ENVIRONMENT = serverconfig.verida.environment
const DID_CLIENT_CONFIG = serverconfig.verida.didClientConfig
+const DATA_SYNC_REQUEST_SCHEMA = 'https://vault.schemas.verida.io/data-connections/sync-request/v0.1.0/schema.json'
+
const axios = Axios.create()
+export interface SyncSchemaConfig {
+ limit?: number
+ sinceId?: string
+}
+
export default class CommonUtils {
static getNetwork = async (): Promise => {
@@ -42,22 +49,34 @@ export default class CommonUtils {
}
}
- static syncConnector = async (provider: string, accessToken: string, refreshToken: string, did: string, encryptionKey: string): Promise => {
- return await axios.get(`${SERVER_URL}/sync/${provider}?accessToken=${accessToken}&refreshToken=${refreshToken}&did=${did}&key=${encryptionKey}`)
+ static syncConnector = async (provider: string, accessToken: string, refreshToken: string, did: string, encryptionKey: string, syncSchemas: Record): Promise => {
+ return await axios.post(`${SERVER_URL}/syncStart/${provider}`, {
+ accessToken,
+ refreshToken,
+ did,
+ key: encryptionKey,
+ syncSchemas
+ })
}
- static openSchema = async (context: Context, contextName: string, schemaName: string, databaseName: string, encryptionKey: string, externalDid: string, did: string): Promise => {
- const key = Buffer.from(encryptionKey, 'hex')
+ static syncDone = async (provider: string, did: string): Promise => {
+ return await axios.get(`${SERVER_URL}/syncDone/${provider}`, {
+ params: {
+ did
+ }
+ })
+ }
+ static async openSchema(context: Context, contextName: string, schemaName: string, databaseName: string, encryptionKey: string, externalDid: string, did: string): Promise {
const externalDatastore = await context.openExternalDatastore(schemaName, externalDid, {
permissions: {
- read: ContextInterfaces.PermissionOptionsEnum.USERS,
- write: ContextInterfaces.PermissionOptionsEnum.USERS,
+ read: DatabasePermissionOptionsEnum.USERS,
+ write: DatabasePermissionOptionsEnum.USERS,
readList: [did],
writeList: [did]
},
// @ts-ignore
- encryptionKey: key,
+ encryptionKey: Buffer.from(encryptionKey, 'hex'),
databaseName,
contextName
})
@@ -65,9 +84,48 @@ export default class CommonUtils {
return externalDatastore
}
- static closeDatastore = async (datastore: Datastore): Promise => {
+ static getSyncResult = async (connection: any, syncRequestResult: any, encryptionKey: string) => {
+ const { serverDid, contextName, syncRequestId, syncRequestDatabaseName } = syncRequestResult.data
+
+ let syncResult
+ let limit = 10
+ while (limit > 0) {
+ try {
+ const syncRequest = await CommonUtils.openSchema(
+ connection.context,
+ contextName,
+ DATA_SYNC_REQUEST_SCHEMA,
+ syncRequestDatabaseName,
+ encryptionKey,
+ serverDid,
+ connection.did)
+ syncResult = await syncRequest.get(syncRequestId)
+ await CommonUtils.closeDatastore(syncRequest)
+
+ if (syncResult.status == 'requested') {
+ continue
+ }
+ break
+ } catch (err) {
+ limit--
+ await CommonUtils.sleep(1000)
+ }
+ }
+
+ if (!syncResult) {
+ throw new Error(`No sync result after 10 seconds`)
+ } else {
+ return syncResult
+ }
+ }
+
+ static closeDatastore = async (datastore: Datastore) => {
await datastore.close({
clearLocal: true
})
}
+
+ static sleep = async (ms) => {
+ return new Promise(resolve => setTimeout(resolve, ms));
+ }
}
\ No newline at end of file
diff --git a/tests/server.tests.ts b/tests/server.tests.ts
index 072c7339..55a34a12 100644
--- a/tests/server.tests.ts
+++ b/tests/server.tests.ts
@@ -33,32 +33,48 @@ describe(`${providerName} Tests`, function() {
)
const info = await (await followingDatastore.getDb()).info()
- encryptionKey = info.encryptionKey
- //console.log(info)
+ encryptionKey = Buffer.from(info.encryptionKey).toString('hex')
await CommonUtils.closeDatastore(followingDatastore)
})
it(`Can sync ${providerName}`, async () => {
- const syncRequestResult = await CommonUtils.syncConnector(providerName, creds.accessToken, creds.refreshToken, connection.did, encryptionKey)
-
- console.log(syncRequestResult.data)
-
- const { serverDid, contextName, syncRequestId, syncRequestDatabaseName } = syncRequestResult.data
-
- /*this.checkSync(
- serverDid,
- contextName,
- syncRequestId,
- syncRequestDatabaseName
+ const syncSchemas = {}
+ syncSchemas[SCHEMA_FOLLOWING] = {
+ limit: 10
+ }
+ const syncRequestResult = await CommonUtils.syncConnector(providerName, creds.accessToken, creds.refreshToken, connection.did, encryptionKey, syncSchemas)
+
+ const syncResult = await CommonUtils.getSyncResult(connection, syncRequestResult, encryptionKey)
+ const schemaResult = syncResult.syncInfo.schemas[SCHEMA_FOLLOWING]
+
+ const followingDatastore = await CommonUtils.openSchema(
+ connection.context,
+ syncRequestResult.data.contextName,
+ SCHEMA_FOLLOWING,
+ schemaResult.databaseName,
+ schemaResult.encryptionKey,
+ syncRequestResult.data.serverDid,
+ syncRequestResult.data.did
)
+
+ // Get all the data that was fetched
+ const syncData = await followingDatastore.getMany()
- const syncData = await provider.sync(creds.accessToken, creds.refreshToken, SCHEMA_FOLLOWING)
+ // Close the database
+ await CommonUtils.closeDatastore(followingDatastore)
+ // Confirm we have the expected data
assert.ok(syncData, 'Have data returned')
- assert.ok(SCHEMA_POST in syncData, 'Have Post data in the response')
- assert.equal(syncData[SCHEMA_POST].length, providerConfig.postLimit, `Correct number of posts received`)*/
+ assert.equal(syncData.length, syncSchemas[SCHEMA_FOLLOWING].limit, 'Have correct number of items returned')
+
+ // Cleanup by having the server delete it's database of data
+ await CommonUtils.syncDone(providerName, connection.did)
})
+ // confirm sync since last works for a given schema
+
+ // confirm sync all works?
+
after(async () => {
await connection.context.close({
clearLocal: true
diff --git a/yarn.lock b/yarn.lock
index 817be3d1..d04b8721 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -12,7 +12,66 @@
call-me-maybe "^1.0.1"
js-yaml "^4.1.0"
-"@ethersproject/abi@5.7.0", "@ethersproject/abi@^5.7.0":
+"@discordjs/builders@^1.6.0":
+ version "1.6.1"
+ resolved "https://registry.yarnpkg.com/@discordjs/builders/-/builders-1.6.1.tgz#5b1447cfa493bc1306671ef18ce3aae13c0af0ba"
+ integrity sha512-CCcLwn/8ANhlAbhlE18fcaN0hfXTen53/JiwZs1t9oE/Cqa9maA8ZRarkCIsXF4J7J/MYnd0J6IsxeKsq+f6mw==
+ dependencies:
+ "@discordjs/formatters" "^0.3.0"
+ "@discordjs/util" "^0.2.0"
+ "@sapphire/shapeshift" "^3.8.1"
+ discord-api-types "^0.37.37"
+ fast-deep-equal "^3.1.3"
+ ts-mixer "^6.0.3"
+ tslib "^2.5.0"
+
+"@discordjs/collection@^1.5.0":
+ version "1.5.0"
+ resolved "https://registry.yarnpkg.com/@discordjs/collection/-/collection-1.5.0.tgz#478acd5d510cb5996c5101f47b24959ac7499cc2"
+ integrity sha512-suyVndkEAAWrGxyw/CPGdtXoRRU6AUNkibtnbJevQzpelkJh3Q1gQqWDpqf5i39CnAn5+LrN0YS+cULeEjq2Yw==
+
+"@discordjs/formatters@^0.3.0":
+ version "0.3.0"
+ resolved "https://registry.yarnpkg.com/@discordjs/formatters/-/formatters-0.3.0.tgz#8313d158c5e974597eec43b1f381d870a507d133"
+ integrity sha512-Fc4MomalbP8HMKEMor3qUiboAKDtR7PSBoPjwm7WYghVRwgJlj5WYvUsriLsxeKk8+Qq2oy+HJlGTUkGvX0YnA==
+ dependencies:
+ discord-api-types "^0.37.37"
+
+"@discordjs/rest@^1.7.0":
+ version "1.7.0"
+ resolved "https://registry.yarnpkg.com/@discordjs/rest/-/rest-1.7.0.tgz#c61fcd14e810b44e4821df5dfb5e74fa5fcb6e5d"
+ integrity sha512-r2HzmznRIo8IDGYBWqQfkEaGN1LrFfWQd3dSyC4tOpMU8nuVvFUEw6V/lwnG44jyOq+vgyDny2fxeUDMt9I4aQ==
+ dependencies:
+ "@discordjs/collection" "^1.5.0"
+ "@discordjs/util" "^0.2.0"
+ "@sapphire/async-queue" "^1.5.0"
+ "@sapphire/snowflake" "^3.4.0"
+ discord-api-types "^0.37.37"
+ file-type "^18.2.1"
+ tslib "^2.5.0"
+ undici "^5.21.0"
+
+"@discordjs/util@^0.2.0":
+ version "0.2.0"
+ resolved "https://registry.yarnpkg.com/@discordjs/util/-/util-0.2.0.tgz#91b590dae3934ffa5fe34530afc5212c569d6751"
+ integrity sha512-/8qNbebFzLWKOOg+UV+RB8itp4SmU5jw0tBUD3ifElW6rYNOj1Ku5JaSW7lLl/WgjjxF01l/1uQPCzkwr110vg==
+
+"@ethersproject/abi@5.5.0":
+ version "5.5.0"
+ resolved "https://registry.yarnpkg.com/@ethersproject/abi/-/abi-5.5.0.tgz#fb52820e22e50b854ff15ce1647cc508d6660613"
+ integrity sha512-loW7I4AohP5KycATvc0MgujU6JyCHPqHdeoo9z3Nr9xEiNioxa65ccdm1+fsoJhkuhdRtfcL8cfyGamz2AxZ5w==
+ dependencies:
+ "@ethersproject/address" "^5.5.0"
+ "@ethersproject/bignumber" "^5.5.0"
+ "@ethersproject/bytes" "^5.5.0"
+ "@ethersproject/constants" "^5.5.0"
+ "@ethersproject/hash" "^5.5.0"
+ "@ethersproject/keccak256" "^5.5.0"
+ "@ethersproject/logger" "^5.5.0"
+ "@ethersproject/properties" "^5.5.0"
+ "@ethersproject/strings" "^5.5.0"
+
+"@ethersproject/abi@5.7.0", "@ethersproject/abi@^5.5.0", "@ethersproject/abi@^5.7.0":
version "5.7.0"
resolved "https://registry.yarnpkg.com/@ethersproject/abi/-/abi-5.7.0.tgz#b3f3e045bbbeed1af3947335c247ad625a44e449"
integrity sha512-351ktp42TiRcYB3H1OP8yajPeAQstMW/yCFokj/AthP9bLHzQFPlOrxOcwYEDkUAICmOHljvN4K39OMTMUa9RA==
@@ -27,7 +86,20 @@
"@ethersproject/properties" "^5.7.0"
"@ethersproject/strings" "^5.7.0"
-"@ethersproject/abstract-provider@5.7.0", "@ethersproject/abstract-provider@^5.7.0":
+"@ethersproject/abstract-provider@5.5.1":
+ version "5.5.1"
+ resolved "https://registry.yarnpkg.com/@ethersproject/abstract-provider/-/abstract-provider-5.5.1.tgz#2f1f6e8a3ab7d378d8ad0b5718460f85649710c5"
+ integrity sha512-m+MA/ful6eKbxpr99xUYeRvLkfnlqzrF8SZ46d/xFB1A7ZVknYc/sXJG0RcufF52Qn2jeFj1hhcoQ7IXjNKUqg==
+ dependencies:
+ "@ethersproject/bignumber" "^5.5.0"
+ "@ethersproject/bytes" "^5.5.0"
+ "@ethersproject/logger" "^5.5.0"
+ "@ethersproject/networks" "^5.5.0"
+ "@ethersproject/properties" "^5.5.0"
+ "@ethersproject/transactions" "^5.5.0"
+ "@ethersproject/web" "^5.5.0"
+
+"@ethersproject/abstract-provider@5.7.0", "@ethersproject/abstract-provider@^5.5.0", "@ethersproject/abstract-provider@^5.7.0":
version "5.7.0"
resolved "https://registry.yarnpkg.com/@ethersproject/abstract-provider/-/abstract-provider-5.7.0.tgz#b0a8550f88b6bf9d51f90e4795d48294630cb9ef"
integrity sha512-R41c9UkchKCpAqStMYUpdunjo3pkEvZC3FAwZn5S5MGbXoMQOHIdHItezTETxAO5bevtMApSyEhn9+CHcDsWBw==
@@ -40,7 +112,18 @@
"@ethersproject/transactions" "^5.7.0"
"@ethersproject/web" "^5.7.0"
-"@ethersproject/abstract-signer@5.7.0", "@ethersproject/abstract-signer@^5.7.0":
+"@ethersproject/abstract-signer@5.5.0":
+ version "5.5.0"
+ resolved "https://registry.yarnpkg.com/@ethersproject/abstract-signer/-/abstract-signer-5.5.0.tgz#590ff6693370c60ae376bf1c7ada59eb2a8dd08d"
+ integrity sha512-lj//7r250MXVLKI7sVarXAbZXbv9P50lgmJQGr2/is82EwEb8r7HrxsmMqAjTsztMYy7ohrIhGMIml+Gx4D3mA==
+ dependencies:
+ "@ethersproject/abstract-provider" "^5.5.0"
+ "@ethersproject/bignumber" "^5.5.0"
+ "@ethersproject/bytes" "^5.5.0"
+ "@ethersproject/logger" "^5.5.0"
+ "@ethersproject/properties" "^5.5.0"
+
+"@ethersproject/abstract-signer@5.7.0", "@ethersproject/abstract-signer@^5.5.0", "@ethersproject/abstract-signer@^5.7.0":
version "5.7.0"
resolved "https://registry.yarnpkg.com/@ethersproject/abstract-signer/-/abstract-signer-5.7.0.tgz#13f4f32117868452191a4649723cb086d2b596b2"
integrity sha512-a16V8bq1/Cz+TGCkE2OPMTOUDLS3grCpdjoJCYNnVBbdYEMSgKrU0+B90s8b6H+ByYTBZN7a3g76jdIJi7UfKQ==
@@ -51,7 +134,18 @@
"@ethersproject/logger" "^5.7.0"
"@ethersproject/properties" "^5.7.0"
-"@ethersproject/address@5.7.0", "@ethersproject/address@^5.7.0":
+"@ethersproject/address@5.5.0":
+ version "5.5.0"
+ resolved "https://registry.yarnpkg.com/@ethersproject/address/-/address-5.5.0.tgz#bcc6f576a553f21f3dd7ba17248f81b473c9c78f"
+ integrity sha512-l4Nj0eWlTUh6ro5IbPTgbpT4wRbdH5l8CQf7icF7sb/SI3Nhd9Y9HzhonTSTi6CefI0necIw7LJqQPopPLZyWw==
+ dependencies:
+ "@ethersproject/bignumber" "^5.5.0"
+ "@ethersproject/bytes" "^5.5.0"
+ "@ethersproject/keccak256" "^5.5.0"
+ "@ethersproject/logger" "^5.5.0"
+ "@ethersproject/rlp" "^5.5.0"
+
+"@ethersproject/address@5.7.0", "@ethersproject/address@^5.5.0", "@ethersproject/address@^5.7.0":
version "5.7.0"
resolved "https://registry.yarnpkg.com/@ethersproject/address/-/address-5.7.0.tgz#19b56c4d74a3b0a46bfdbb6cfcc0a153fc697f37"
integrity sha512-9wYhYt7aghVGo758POM5nqcOMaE168Q6aRLJZwUmiqSrAungkG74gSSeKEIR7ukixesdRZGPgVqme6vmxs1fkA==
@@ -62,14 +156,29 @@
"@ethersproject/logger" "^5.7.0"
"@ethersproject/rlp" "^5.7.0"
-"@ethersproject/base64@5.7.0", "@ethersproject/base64@^5.7.0":
+"@ethersproject/base64@5.5.0":
+ version "5.5.0"
+ resolved "https://registry.yarnpkg.com/@ethersproject/base64/-/base64-5.5.0.tgz#881e8544e47ed976930836986e5eb8fab259c090"
+ integrity sha512-tdayUKhU1ljrlHzEWbStXazDpsx4eg1dBXUSI6+mHlYklOXoXF6lZvw8tnD6oVaWfnMxAgRSKROg3cVKtCcppA==
+ dependencies:
+ "@ethersproject/bytes" "^5.5.0"
+
+"@ethersproject/base64@5.7.0", "@ethersproject/base64@^5.5.0", "@ethersproject/base64@^5.7.0":
version "5.7.0"
resolved "https://registry.yarnpkg.com/@ethersproject/base64/-/base64-5.7.0.tgz#ac4ee92aa36c1628173e221d0d01f53692059e1c"
integrity sha512-Dr8tcHt2mEbsZr/mwTPIQAf3Ai0Bks/7gTw9dSqk1mQvhW3XvRlmDJr/4n+wg1JmCl16NZue17CDh8xb/vZ0sQ==
dependencies:
"@ethersproject/bytes" "^5.7.0"
-"@ethersproject/basex@5.7.0", "@ethersproject/basex@^5.7.0":
+"@ethersproject/basex@5.5.0":
+ version "5.5.0"
+ resolved "https://registry.yarnpkg.com/@ethersproject/basex/-/basex-5.5.0.tgz#e40a53ae6d6b09ab4d977bd037010d4bed21b4d3"
+ integrity sha512-ZIodwhHpVJ0Y3hUCfUucmxKsWQA5TMnavp5j/UOuDdzZWzJlRmuOjcTMIGgHCYuZmHt36BfiSyQPSRskPxbfaQ==
+ dependencies:
+ "@ethersproject/bytes" "^5.5.0"
+ "@ethersproject/properties" "^5.5.0"
+
+"@ethersproject/basex@5.7.0", "@ethersproject/basex@^5.5.0", "@ethersproject/basex@^5.7.0":
version "5.7.0"
resolved "https://registry.yarnpkg.com/@ethersproject/basex/-/basex-5.7.0.tgz#97034dc7e8938a8ca943ab20f8a5e492ece4020b"
integrity sha512-ywlh43GwZLv2Voc2gQVTKBoVQ1mti3d8HK5aMxsfu/nRDnMmNqaSJ3r3n85HBByT8OpoY96SXM1FogC533T4zw==
@@ -77,7 +186,16 @@
"@ethersproject/bytes" "^5.7.0"
"@ethersproject/properties" "^5.7.0"
-"@ethersproject/bignumber@5.7.0", "@ethersproject/bignumber@^5.7.0":
+"@ethersproject/bignumber@5.5.0":
+ version "5.5.0"
+ resolved "https://registry.yarnpkg.com/@ethersproject/bignumber/-/bignumber-5.5.0.tgz#875b143f04a216f4f8b96245bde942d42d279527"
+ integrity sha512-6Xytlwvy6Rn3U3gKEc1vP7nR92frHkv6wtVr95LFR3jREXiCPzdWxKQ1cx4JGQBXxcguAwjA8murlYN2TSiEbg==
+ dependencies:
+ "@ethersproject/bytes" "^5.5.0"
+ "@ethersproject/logger" "^5.5.0"
+ bn.js "^4.11.9"
+
+"@ethersproject/bignumber@5.7.0", "@ethersproject/bignumber@^5.5.0", "@ethersproject/bignumber@^5.7.0":
version "5.7.0"
resolved "https://registry.yarnpkg.com/@ethersproject/bignumber/-/bignumber-5.7.0.tgz#e2f03837f268ba655ffba03a57853e18a18dc9c2"
integrity sha512-n1CAdIHRWjSucQO3MC1zPSVgV/6dy/fjL9pMrPP9peL+QxEg9wOsVqwD4+818B6LUEtaXzVHQiuivzRoxPxUGw==
@@ -86,20 +204,50 @@
"@ethersproject/logger" "^5.7.0"
bn.js "^5.2.1"
-"@ethersproject/bytes@5.7.0", "@ethersproject/bytes@^5.7.0":
+"@ethersproject/bytes@5.5.0":
+ version "5.5.0"
+ resolved "https://registry.yarnpkg.com/@ethersproject/bytes/-/bytes-5.5.0.tgz#cb11c526de657e7b45d2e0f0246fb3b9d29a601c"
+ integrity sha512-ABvc7BHWhZU9PNM/tANm/Qx4ostPGadAuQzWTr3doklZOhDlmcBqclrQe/ZXUIj3K8wC28oYeuRa+A37tX9kog==
+ dependencies:
+ "@ethersproject/logger" "^5.5.0"
+
+"@ethersproject/bytes@5.7.0", "@ethersproject/bytes@^5.5.0", "@ethersproject/bytes@^5.7.0":
version "5.7.0"
resolved "https://registry.yarnpkg.com/@ethersproject/bytes/-/bytes-5.7.0.tgz#a00f6ea8d7e7534d6d87f47188af1148d71f155d"
integrity sha512-nsbxwgFXWh9NyYWo+U8atvmMsSdKJprTcICAkvbBffT75qDocbuggBU0SJiVK2MuTrp0q+xvLkTnGMPK1+uA9A==
dependencies:
"@ethersproject/logger" "^5.7.0"
-"@ethersproject/constants@5.7.0", "@ethersproject/constants@^5.7.0":
+"@ethersproject/constants@5.5.0":
+ version "5.5.0"
+ resolved "https://registry.yarnpkg.com/@ethersproject/constants/-/constants-5.5.0.tgz#d2a2cd7d94bd1d58377d1d66c4f53c9be4d0a45e"
+ integrity sha512-2MsRRVChkvMWR+GyMGY4N1sAX9Mt3J9KykCsgUFd/1mwS0UH1qw+Bv9k1UJb3X3YJYFco9H20pjSlOIfCG5HYQ==
+ dependencies:
+ "@ethersproject/bignumber" "^5.5.0"
+
+"@ethersproject/constants@5.7.0", "@ethersproject/constants@^5.5.0", "@ethersproject/constants@^5.7.0":
version "5.7.0"
resolved "https://registry.yarnpkg.com/@ethersproject/constants/-/constants-5.7.0.tgz#df80a9705a7e08984161f09014ea012d1c75295e"
integrity sha512-DHI+y5dBNvkpYUMiRQyxRBYBefZkJfo70VUkUAsRjcPs47muV9evftfZ0PJVCXYbAiCgght0DtcF9srFQmIgWA==
dependencies:
"@ethersproject/bignumber" "^5.7.0"
+"@ethersproject/contracts@5.5.0":
+ version "5.5.0"
+ resolved "https://registry.yarnpkg.com/@ethersproject/contracts/-/contracts-5.5.0.tgz#b735260d4bd61283a670a82d5275e2a38892c197"
+ integrity sha512-2viY7NzyvJkh+Ug17v7g3/IJC8HqZBDcOjYARZLdzRxrfGlRgmYgl6xPRKVbEzy1dWKw/iv7chDcS83pg6cLxg==
+ dependencies:
+ "@ethersproject/abi" "^5.5.0"
+ "@ethersproject/abstract-provider" "^5.5.0"
+ "@ethersproject/abstract-signer" "^5.5.0"
+ "@ethersproject/address" "^5.5.0"
+ "@ethersproject/bignumber" "^5.5.0"
+ "@ethersproject/bytes" "^5.5.0"
+ "@ethersproject/constants" "^5.5.0"
+ "@ethersproject/logger" "^5.5.0"
+ "@ethersproject/properties" "^5.5.0"
+ "@ethersproject/transactions" "^5.5.0"
+
"@ethersproject/contracts@5.7.0":
version "5.7.0"
resolved "https://registry.yarnpkg.com/@ethersproject/contracts/-/contracts-5.7.0.tgz#c305e775abd07e48aa590e1a877ed5c316f8bd1e"
@@ -116,7 +264,21 @@
"@ethersproject/properties" "^5.7.0"
"@ethersproject/transactions" "^5.7.0"
-"@ethersproject/hash@5.7.0", "@ethersproject/hash@^5.7.0":
+"@ethersproject/hash@5.5.0":
+ version "5.5.0"
+ resolved "https://registry.yarnpkg.com/@ethersproject/hash/-/hash-5.5.0.tgz#7cee76d08f88d1873574c849e0207dcb32380cc9"
+ integrity sha512-dnGVpK1WtBjmnp3mUT0PlU2MpapnwWI0PibldQEq1408tQBAbZpPidkWoVVuNMOl/lISO3+4hXZWCL3YV7qzfg==
+ dependencies:
+ "@ethersproject/abstract-signer" "^5.5.0"
+ "@ethersproject/address" "^5.5.0"
+ "@ethersproject/bignumber" "^5.5.0"
+ "@ethersproject/bytes" "^5.5.0"
+ "@ethersproject/keccak256" "^5.5.0"
+ "@ethersproject/logger" "^5.5.0"
+ "@ethersproject/properties" "^5.5.0"
+ "@ethersproject/strings" "^5.5.0"
+
+"@ethersproject/hash@5.7.0", "@ethersproject/hash@^5.5.0", "@ethersproject/hash@^5.7.0":
version "5.7.0"
resolved "https://registry.yarnpkg.com/@ethersproject/hash/-/hash-5.7.0.tgz#eb7aca84a588508369562e16e514b539ba5240a7"
integrity sha512-qX5WrQfnah1EFnO5zJv1v46a8HW0+E5xuBBDTwMFZLuVTx0tbU2kkx15NqdjxecrLGatQN9FGQKpb1FKdHCt+g==
@@ -131,7 +293,25 @@
"@ethersproject/properties" "^5.7.0"
"@ethersproject/strings" "^5.7.0"
-"@ethersproject/hdnode@5.7.0", "@ethersproject/hdnode@^5.7.0":
+"@ethersproject/hdnode@5.5.0":
+ version "5.5.0"
+ resolved "https://registry.yarnpkg.com/@ethersproject/hdnode/-/hdnode-5.5.0.tgz#4a04e28f41c546f7c978528ea1575206a200ddf6"
+ integrity sha512-mcSOo9zeUg1L0CoJH7zmxwUG5ggQHU1UrRf8jyTYy6HxdZV+r0PBoL1bxr+JHIPXRzS6u/UW4mEn43y0tmyF8Q==
+ dependencies:
+ "@ethersproject/abstract-signer" "^5.5.0"
+ "@ethersproject/basex" "^5.5.0"
+ "@ethersproject/bignumber" "^5.5.0"
+ "@ethersproject/bytes" "^5.5.0"
+ "@ethersproject/logger" "^5.5.0"
+ "@ethersproject/pbkdf2" "^5.5.0"
+ "@ethersproject/properties" "^5.5.0"
+ "@ethersproject/sha2" "^5.5.0"
+ "@ethersproject/signing-key" "^5.5.0"
+ "@ethersproject/strings" "^5.5.0"
+ "@ethersproject/transactions" "^5.5.0"
+ "@ethersproject/wordlists" "^5.5.0"
+
+"@ethersproject/hdnode@5.7.0", "@ethersproject/hdnode@^5.5.0", "@ethersproject/hdnode@^5.7.0":
version "5.7.0"
resolved "https://registry.yarnpkg.com/@ethersproject/hdnode/-/hdnode-5.7.0.tgz#e627ddc6b466bc77aebf1a6b9e47405ca5aef9cf"
integrity sha512-OmyYo9EENBPPf4ERhR7oj6uAtUAhYGqOnIS+jE5pTXvdKBS99ikzq1E7Iv0ZQZ5V36Lqx1qZLeak0Ra16qpeOg==
@@ -149,7 +329,26 @@
"@ethersproject/transactions" "^5.7.0"
"@ethersproject/wordlists" "^5.7.0"
-"@ethersproject/json-wallets@5.7.0", "@ethersproject/json-wallets@^5.7.0":
+"@ethersproject/json-wallets@5.5.0":
+ version "5.5.0"
+ resolved "https://registry.yarnpkg.com/@ethersproject/json-wallets/-/json-wallets-5.5.0.tgz#dd522d4297e15bccc8e1427d247ec8376b60e325"
+ integrity sha512-9lA21XQnCdcS72xlBn1jfQdj2A1VUxZzOzi9UkNdnokNKke/9Ya2xA9aIK1SC3PQyBDLt4C+dfps7ULpkvKikQ==
+ dependencies:
+ "@ethersproject/abstract-signer" "^5.5.0"
+ "@ethersproject/address" "^5.5.0"
+ "@ethersproject/bytes" "^5.5.0"
+ "@ethersproject/hdnode" "^5.5.0"
+ "@ethersproject/keccak256" "^5.5.0"
+ "@ethersproject/logger" "^5.5.0"
+ "@ethersproject/pbkdf2" "^5.5.0"
+ "@ethersproject/properties" "^5.5.0"
+ "@ethersproject/random" "^5.5.0"
+ "@ethersproject/strings" "^5.5.0"
+ "@ethersproject/transactions" "^5.5.0"
+ aes-js "3.0.0"
+ scrypt-js "3.0.1"
+
+"@ethersproject/json-wallets@5.7.0", "@ethersproject/json-wallets@^5.5.0", "@ethersproject/json-wallets@^5.7.0":
version "5.7.0"
resolved "https://registry.yarnpkg.com/@ethersproject/json-wallets/-/json-wallets-5.7.0.tgz#5e3355287b548c32b368d91014919ebebddd5360"
integrity sha512-8oee5Xgu6+RKgJTkvEMl2wDgSPSAQ9MB/3JYjFV9jlKvcYHUXZC+cQp0njgmxdHkYWn8s6/IqIZYm0YWCjO/0g==
@@ -168,7 +367,15 @@
aes-js "3.0.0"
scrypt-js "3.0.1"
-"@ethersproject/keccak256@5.7.0", "@ethersproject/keccak256@^5.7.0":
+"@ethersproject/keccak256@5.5.0":
+ version "5.5.0"
+ resolved "https://registry.yarnpkg.com/@ethersproject/keccak256/-/keccak256-5.5.0.tgz#e4b1f9d7701da87c564ffe336f86dcee82983492"
+ integrity sha512-5VoFCTjo2rYbBe1l2f4mccaRFN/4VQEYFwwn04aJV2h7qf4ZvI2wFxUE1XOX+snbwCLRzIeikOqtAoPwMza9kg==
+ dependencies:
+ "@ethersproject/bytes" "^5.5.0"
+ js-sha3 "0.8.0"
+
+"@ethersproject/keccak256@5.7.0", "@ethersproject/keccak256@^5.5.0", "@ethersproject/keccak256@^5.7.0":
version "5.7.0"
resolved "https://registry.yarnpkg.com/@ethersproject/keccak256/-/keccak256-5.7.0.tgz#3186350c6e1cd6aba7940384ec7d6d9db01f335a"
integrity sha512-2UcPboeL/iW+pSg6vZ6ydF8tCnv3Iu/8tUmLLzWWGzxWKFFqOBQFLo6uLUv6BDrLgCDfN28RJ/wtByx+jZ4KBg==
@@ -176,19 +383,39 @@
"@ethersproject/bytes" "^5.7.0"
js-sha3 "0.8.0"
-"@ethersproject/logger@5.7.0", "@ethersproject/logger@^5.7.0":
+"@ethersproject/logger@5.5.0":
+ version "5.5.0"
+ resolved "https://registry.yarnpkg.com/@ethersproject/logger/-/logger-5.5.0.tgz#0c2caebeff98e10aefa5aef27d7441c7fd18cf5d"
+ integrity sha512-rIY/6WPm7T8n3qS2vuHTUBPdXHl+rGxWxW5okDfo9J4Z0+gRRZT0msvUdIJkE4/HS29GUMziwGaaKO2bWONBrg==
+
+"@ethersproject/logger@5.7.0", "@ethersproject/logger@^5.5.0", "@ethersproject/logger@^5.7.0":
version "5.7.0"
resolved "https://registry.yarnpkg.com/@ethersproject/logger/-/logger-5.7.0.tgz#6ce9ae168e74fecf287be17062b590852c311892"
integrity sha512-0odtFdXu/XHtjQXJYA3u9G0G8btm0ND5Cu8M7i5vhEcE8/HmF4Lbdqanwyv4uQTr2tx6b7fQRmgLrsnpQlmnig==
-"@ethersproject/networks@5.7.1", "@ethersproject/networks@^5.7.0":
+"@ethersproject/networks@5.5.0":
+ version "5.5.0"
+ resolved "https://registry.yarnpkg.com/@ethersproject/networks/-/networks-5.5.0.tgz#babec47cab892c51f8dd652ce7f2e3e14283981a"
+ integrity sha512-KWfP3xOnJeF89Uf/FCJdV1a2aDJe5XTN2N52p4fcQ34QhDqQFkgQKZ39VGtiqUgHcLI8DfT0l9azC3KFTunqtA==
+ dependencies:
+ "@ethersproject/logger" "^5.5.0"
+
+"@ethersproject/networks@5.7.1", "@ethersproject/networks@^5.5.0", "@ethersproject/networks@^5.7.0":
version "5.7.1"
resolved "https://registry.yarnpkg.com/@ethersproject/networks/-/networks-5.7.1.tgz#118e1a981d757d45ccea6bb58d9fd3d9db14ead6"
integrity sha512-n/MufjFYv3yFcUyfhnXotyDlNdFb7onmkSy8aQERi2PjNcnWQ66xXxa3XlS8nCcA8aJKJjIIMNJTC7tu80GwpQ==
dependencies:
"@ethersproject/logger" "^5.7.0"
-"@ethersproject/pbkdf2@5.7.0", "@ethersproject/pbkdf2@^5.7.0":
+"@ethersproject/pbkdf2@5.5.0":
+ version "5.5.0"
+ resolved "https://registry.yarnpkg.com/@ethersproject/pbkdf2/-/pbkdf2-5.5.0.tgz#e25032cdf02f31505d47afbf9c3e000d95c4a050"
+ integrity sha512-SaDvQFvXPnz1QGpzr6/HToLifftSXGoXrbpZ6BvoZhmx4bNLHrxDe8MZisuecyOziP1aVEwzC2Hasj+86TgWVg==
+ dependencies:
+ "@ethersproject/bytes" "^5.5.0"
+ "@ethersproject/sha2" "^5.5.0"
+
+"@ethersproject/pbkdf2@5.7.0", "@ethersproject/pbkdf2@^5.5.0", "@ethersproject/pbkdf2@^5.7.0":
version "5.7.0"
resolved "https://registry.yarnpkg.com/@ethersproject/pbkdf2/-/pbkdf2-5.7.0.tgz#d2267d0a1f6e123f3771007338c47cccd83d3102"
integrity sha512-oR/dBRZR6GTyaofd86DehG72hY6NpAjhabkhxgr3X2FpJtJuodEl2auADWBZfhDHgVCbu3/H/Ocq2uC6dpNjjw==
@@ -196,13 +423,45 @@
"@ethersproject/bytes" "^5.7.0"
"@ethersproject/sha2" "^5.7.0"
-"@ethersproject/properties@5.7.0", "@ethersproject/properties@^5.7.0":
+"@ethersproject/properties@5.5.0":
+ version "5.5.0"
+ resolved "https://registry.yarnpkg.com/@ethersproject/properties/-/properties-5.5.0.tgz#61f00f2bb83376d2071baab02245f92070c59995"
+ integrity sha512-l3zRQg3JkD8EL3CPjNK5g7kMx4qSwiR60/uk5IVjd3oq1MZR5qUg40CNOoEJoX5wc3DyY5bt9EbMk86C7x0DNA==
+ dependencies:
+ "@ethersproject/logger" "^5.5.0"
+
+"@ethersproject/properties@5.7.0", "@ethersproject/properties@^5.5.0", "@ethersproject/properties@^5.7.0":
version "5.7.0"
resolved "https://registry.yarnpkg.com/@ethersproject/properties/-/properties-5.7.0.tgz#a6e12cb0439b878aaf470f1902a176033067ed30"
integrity sha512-J87jy8suntrAkIZtecpxEPxY//szqr1mlBaYlQ0r4RCaiD2hjheqF9s1LVE8vVuJCXisjIP+JgtK/Do54ej4Sw==
dependencies:
"@ethersproject/logger" "^5.7.0"
+"@ethersproject/providers@5.5.0":
+ version "5.5.0"
+ resolved "https://registry.yarnpkg.com/@ethersproject/providers/-/providers-5.5.0.tgz#bc2876a8fe5e0053ed9828b1f3767ae46e43758b"
+ integrity sha512-xqMbDnS/FPy+J/9mBLKddzyLLAQFjrVff5g00efqxPzcAwXiR+SiCGVy6eJ5iAIirBOATjx7QLhDNPGV+AEQsw==
+ dependencies:
+ "@ethersproject/abstract-provider" "^5.5.0"
+ "@ethersproject/abstract-signer" "^5.5.0"
+ "@ethersproject/address" "^5.5.0"
+ "@ethersproject/basex" "^5.5.0"
+ "@ethersproject/bignumber" "^5.5.0"
+ "@ethersproject/bytes" "^5.5.0"
+ "@ethersproject/constants" "^5.5.0"
+ "@ethersproject/hash" "^5.5.0"
+ "@ethersproject/logger" "^5.5.0"
+ "@ethersproject/networks" "^5.5.0"
+ "@ethersproject/properties" "^5.5.0"
+ "@ethersproject/random" "^5.5.0"
+ "@ethersproject/rlp" "^5.5.0"
+ "@ethersproject/sha2" "^5.5.0"
+ "@ethersproject/strings" "^5.5.0"
+ "@ethersproject/transactions" "^5.5.0"
+ "@ethersproject/web" "^5.5.0"
+ bech32 "1.1.4"
+ ws "7.4.6"
+
"@ethersproject/providers@5.7.2", "@ethersproject/providers@^5.7.2":
version "5.7.2"
resolved "https://registry.yarnpkg.com/@ethersproject/providers/-/providers-5.7.2.tgz#f8b1a4f275d7ce58cf0a2eec222269a08beb18cb"
@@ -229,7 +488,15 @@
bech32 "1.1.4"
ws "7.4.6"
-"@ethersproject/random@5.7.0", "@ethersproject/random@^5.7.0":
+"@ethersproject/random@5.5.0":
+ version "5.5.0"
+ resolved "https://registry.yarnpkg.com/@ethersproject/random/-/random-5.5.0.tgz#305ed9e033ca537735365ac12eed88580b0f81f9"
+ integrity sha512-egGYZwZ/YIFKMHcoBUo8t3a8Hb/TKYX8BCBoLjudVCZh892welR3jOxgOmb48xznc9bTcMm7Tpwc1gHC1PFNFQ==
+ dependencies:
+ "@ethersproject/bytes" "^5.5.0"
+ "@ethersproject/logger" "^5.5.0"
+
+"@ethersproject/random@5.7.0", "@ethersproject/random@^5.5.0", "@ethersproject/random@^5.7.0":
version "5.7.0"
resolved "https://registry.yarnpkg.com/@ethersproject/random/-/random-5.7.0.tgz#af19dcbc2484aae078bb03656ec05df66253280c"
integrity sha512-19WjScqRA8IIeWclFme75VMXSBvi4e6InrUNuaR4s5pTF2qNhcGdCUwdxUVGtDDqC00sDLCO93jPQoDUH4HVmQ==
@@ -237,7 +504,15 @@
"@ethersproject/bytes" "^5.7.0"
"@ethersproject/logger" "^5.7.0"
-"@ethersproject/rlp@5.7.0", "@ethersproject/rlp@^5.7.0":
+"@ethersproject/rlp@5.5.0":
+ version "5.5.0"
+ resolved "https://registry.yarnpkg.com/@ethersproject/rlp/-/rlp-5.5.0.tgz#530f4f608f9ca9d4f89c24ab95db58ab56ab99a0"
+ integrity sha512-hLv8XaQ8PTI9g2RHoQGf/WSxBfTB/NudRacbzdxmst5VHAqd1sMibWG7SENzT5Dj3yZ3kJYx+WiRYEcQTAkcYA==
+ dependencies:
+ "@ethersproject/bytes" "^5.5.0"
+ "@ethersproject/logger" "^5.5.0"
+
+"@ethersproject/rlp@5.7.0", "@ethersproject/rlp@^5.5.0", "@ethersproject/rlp@^5.7.0":
version "5.7.0"
resolved "https://registry.yarnpkg.com/@ethersproject/rlp/-/rlp-5.7.0.tgz#de39e4d5918b9d74d46de93af80b7685a9c21304"
integrity sha512-rBxzX2vK8mVF7b0Tol44t5Tb8gomOHkj5guL+HhzQ1yBh/ydjGnpw6at+X6Iw0Kp3OzzzkcKp8N9r0W4kYSs9w==
@@ -245,7 +520,16 @@
"@ethersproject/bytes" "^5.7.0"
"@ethersproject/logger" "^5.7.0"
-"@ethersproject/sha2@5.7.0", "@ethersproject/sha2@^5.7.0":
+"@ethersproject/sha2@5.5.0":
+ version "5.5.0"
+ resolved "https://registry.yarnpkg.com/@ethersproject/sha2/-/sha2-5.5.0.tgz#a40a054c61f98fd9eee99af2c3cc6ff57ec24db7"
+ integrity sha512-B5UBoglbCiHamRVPLA110J+2uqsifpZaTmid2/7W5rbtYVz6gus6/hSDieIU/6gaKIDcOj12WnOdiymEUHIAOA==
+ dependencies:
+ "@ethersproject/bytes" "^5.5.0"
+ "@ethersproject/logger" "^5.5.0"
+ hash.js "1.1.7"
+
+"@ethersproject/sha2@5.7.0", "@ethersproject/sha2@^5.5.0", "@ethersproject/sha2@^5.7.0":
version "5.7.0"
resolved "https://registry.yarnpkg.com/@ethersproject/sha2/-/sha2-5.7.0.tgz#9a5f7a7824ef784f7f7680984e593a800480c9fb"
integrity sha512-gKlH42riwb3KYp0reLsFTokByAKoJdgFCwI+CCiX/k+Jm2mbNs6oOaCjYQSlI1+XBVejwH2KrmCbMAT/GnRDQw==
@@ -254,7 +538,19 @@
"@ethersproject/logger" "^5.7.0"
hash.js "1.1.7"
-"@ethersproject/signing-key@5.7.0", "@ethersproject/signing-key@^5.7.0":
+"@ethersproject/signing-key@5.5.0":
+ version "5.5.0"
+ resolved "https://registry.yarnpkg.com/@ethersproject/signing-key/-/signing-key-5.5.0.tgz#2aa37169ce7e01e3e80f2c14325f624c29cedbe0"
+ integrity sha512-5VmseH7qjtNmDdZBswavhotYbWB0bOwKIlOTSlX14rKn5c11QmJwGt4GHeo7NrL/Ycl7uo9AHvEqs5xZgFBTng==
+ dependencies:
+ "@ethersproject/bytes" "^5.5.0"
+ "@ethersproject/logger" "^5.5.0"
+ "@ethersproject/properties" "^5.5.0"
+ bn.js "^4.11.9"
+ elliptic "6.5.4"
+ hash.js "1.1.7"
+
+"@ethersproject/signing-key@5.7.0", "@ethersproject/signing-key@^5.5.0", "@ethersproject/signing-key@^5.7.0":
version "5.7.0"
resolved "https://registry.yarnpkg.com/@ethersproject/signing-key/-/signing-key-5.7.0.tgz#06b2df39411b00bc57c7c09b01d1e41cf1b16ab3"
integrity sha512-MZdy2nL3wO0u7gkB4nA/pEf8lu1TlFswPNmy8AiYkfKTdO6eXBJyUdmHO/ehm/htHw9K/qF8ujnTyUAD+Ry54Q==
@@ -266,6 +562,18 @@
elliptic "6.5.4"
hash.js "1.1.7"
+"@ethersproject/solidity@5.5.0":
+ version "5.5.0"
+ resolved "https://registry.yarnpkg.com/@ethersproject/solidity/-/solidity-5.5.0.tgz#2662eb3e5da471b85a20531e420054278362f93f"
+ integrity sha512-9NgZs9LhGMj6aCtHXhtmFQ4AN4sth5HuFXVvAQtzmm0jpSCNOTGtrHZJAeYTh7MBjRR8brylWZxBZR9zDStXbw==
+ dependencies:
+ "@ethersproject/bignumber" "^5.5.0"
+ "@ethersproject/bytes" "^5.5.0"
+ "@ethersproject/keccak256" "^5.5.0"
+ "@ethersproject/logger" "^5.5.0"
+ "@ethersproject/sha2" "^5.5.0"
+ "@ethersproject/strings" "^5.5.0"
+
"@ethersproject/solidity@5.7.0":
version "5.7.0"
resolved "https://registry.yarnpkg.com/@ethersproject/solidity/-/solidity-5.7.0.tgz#5e9c911d8a2acce2a5ebb48a5e2e0af20b631cb8"
@@ -278,7 +586,16 @@
"@ethersproject/sha2" "^5.7.0"
"@ethersproject/strings" "^5.7.0"
-"@ethersproject/strings@5.7.0", "@ethersproject/strings@^5.7.0":
+"@ethersproject/strings@5.5.0":
+ version "5.5.0"
+ resolved "https://registry.yarnpkg.com/@ethersproject/strings/-/strings-5.5.0.tgz#e6784d00ec6c57710755699003bc747e98c5d549"
+ integrity sha512-9fy3TtF5LrX/wTrBaT8FGE6TDJyVjOvXynXJz5MT5azq+E6D92zuKNx7i29sWW2FjVOaWjAsiZ1ZWznuduTIIQ==
+ dependencies:
+ "@ethersproject/bytes" "^5.5.0"
+ "@ethersproject/constants" "^5.5.0"
+ "@ethersproject/logger" "^5.5.0"
+
+"@ethersproject/strings@5.7.0", "@ethersproject/strings@^5.5.0", "@ethersproject/strings@^5.7.0":
version "5.7.0"
resolved "https://registry.yarnpkg.com/@ethersproject/strings/-/strings-5.7.0.tgz#54c9d2a7c57ae8f1205c88a9d3a56471e14d5ed2"
integrity sha512-/9nu+lj0YswRNSH0NXYqrh8775XNyEdUQAuf3f+SmOrnVewcJ5SBNAjF7lpgehKi4abvNNXyf+HX86czCdJ8Mg==
@@ -287,7 +604,22 @@
"@ethersproject/constants" "^5.7.0"
"@ethersproject/logger" "^5.7.0"
-"@ethersproject/transactions@5.7.0", "@ethersproject/transactions@^5.7.0":
+"@ethersproject/transactions@5.5.0":
+ version "5.5.0"
+ resolved "https://registry.yarnpkg.com/@ethersproject/transactions/-/transactions-5.5.0.tgz#7e9bf72e97bcdf69db34fe0d59e2f4203c7a2908"
+ integrity sha512-9RZYSKX26KfzEd/1eqvv8pLauCKzDTub0Ko4LfIgaERvRuwyaNV78mJs7cpIgZaDl6RJui4o49lHwwCM0526zA==
+ dependencies:
+ "@ethersproject/address" "^5.5.0"
+ "@ethersproject/bignumber" "^5.5.0"
+ "@ethersproject/bytes" "^5.5.0"
+ "@ethersproject/constants" "^5.5.0"
+ "@ethersproject/keccak256" "^5.5.0"
+ "@ethersproject/logger" "^5.5.0"
+ "@ethersproject/properties" "^5.5.0"
+ "@ethersproject/rlp" "^5.5.0"
+ "@ethersproject/signing-key" "^5.5.0"
+
+"@ethersproject/transactions@5.7.0", "@ethersproject/transactions@^5.5.0", "@ethersproject/transactions@^5.7.0":
version "5.7.0"
resolved "https://registry.yarnpkg.com/@ethersproject/transactions/-/transactions-5.7.0.tgz#91318fc24063e057885a6af13fdb703e1f993d3b"
integrity sha512-kmcNicCp1lp8qanMTC3RIikGgoJ80ztTyvtsFvCYpSCfkjhD0jZ2LOrnbcuxuToLIUYYf+4XwD1rP+B/erDIhQ==
@@ -302,6 +634,15 @@
"@ethersproject/rlp" "^5.7.0"
"@ethersproject/signing-key" "^5.7.0"
+"@ethersproject/units@5.5.0":
+ version "5.5.0"
+ resolved "https://registry.yarnpkg.com/@ethersproject/units/-/units-5.5.0.tgz#104d02db5b5dc42cc672cc4587bafb87a95ee45e"
+ integrity sha512-7+DpjiZk4v6wrikj+TCyWWa9dXLNU73tSTa7n0TSJDxkYbV3Yf1eRh9ToMLlZtuctNYu9RDNNy2USq3AdqSbag==
+ dependencies:
+ "@ethersproject/bignumber" "^5.5.0"
+ "@ethersproject/constants" "^5.5.0"
+ "@ethersproject/logger" "^5.5.0"
+
"@ethersproject/units@5.7.0":
version "5.7.0"
resolved "https://registry.yarnpkg.com/@ethersproject/units/-/units-5.7.0.tgz#637b563d7e14f42deeee39245275d477aae1d8b1"
@@ -311,6 +652,27 @@
"@ethersproject/constants" "^5.7.0"
"@ethersproject/logger" "^5.7.0"
+"@ethersproject/wallet@5.5.0":
+ version "5.5.0"
+ resolved "https://registry.yarnpkg.com/@ethersproject/wallet/-/wallet-5.5.0.tgz#322a10527a440ece593980dca6182f17d54eae75"
+ integrity sha512-Mlu13hIctSYaZmUOo7r2PhNSd8eaMPVXe1wxrz4w4FCE4tDYBywDH+bAR1Xz2ADyXGwqYMwstzTrtUVIsKDO0Q==
+ dependencies:
+ "@ethersproject/abstract-provider" "^5.5.0"
+ "@ethersproject/abstract-signer" "^5.5.0"
+ "@ethersproject/address" "^5.5.0"
+ "@ethersproject/bignumber" "^5.5.0"
+ "@ethersproject/bytes" "^5.5.0"
+ "@ethersproject/hash" "^5.5.0"
+ "@ethersproject/hdnode" "^5.5.0"
+ "@ethersproject/json-wallets" "^5.5.0"
+ "@ethersproject/keccak256" "^5.5.0"
+ "@ethersproject/logger" "^5.5.0"
+ "@ethersproject/properties" "^5.5.0"
+ "@ethersproject/random" "^5.5.0"
+ "@ethersproject/signing-key" "^5.5.0"
+ "@ethersproject/transactions" "^5.5.0"
+ "@ethersproject/wordlists" "^5.5.0"
+
"@ethersproject/wallet@5.7.0":
version "5.7.0"
resolved "https://registry.yarnpkg.com/@ethersproject/wallet/-/wallet-5.7.0.tgz#4e5d0790d96fe21d61d38fb40324e6c7ef350b2d"
@@ -332,7 +694,18 @@
"@ethersproject/transactions" "^5.7.0"
"@ethersproject/wordlists" "^5.7.0"
-"@ethersproject/web@5.7.1", "@ethersproject/web@^5.7.0":
+"@ethersproject/web@5.5.0":
+ version "5.5.0"
+ resolved "https://registry.yarnpkg.com/@ethersproject/web/-/web-5.5.0.tgz#0e5bb21a2b58fb4960a705bfc6522a6acf461e28"
+ integrity sha512-BEgY0eL5oH4mAo37TNYVrFeHsIXLRxggCRG/ksRIxI2X5uj5IsjGmcNiRN/VirQOlBxcUhCgHhaDLG4m6XAVoA==
+ dependencies:
+ "@ethersproject/base64" "^5.5.0"
+ "@ethersproject/bytes" "^5.5.0"
+ "@ethersproject/logger" "^5.5.0"
+ "@ethersproject/properties" "^5.5.0"
+ "@ethersproject/strings" "^5.5.0"
+
+"@ethersproject/web@5.7.1", "@ethersproject/web@^5.5.0", "@ethersproject/web@^5.7.0":
version "5.7.1"
resolved "https://registry.yarnpkg.com/@ethersproject/web/-/web-5.7.1.tgz#de1f285b373149bee5928f4eb7bcb87ee5fbb4ae"
integrity sha512-Gueu8lSvyjBWL4cYsWsjh6MtMwM0+H4HvqFPZfB6dV8ctbP9zFAO73VG1cMWae0FLPCtz0peKPpZY8/ugJJX2w==
@@ -343,7 +716,18 @@
"@ethersproject/properties" "^5.7.0"
"@ethersproject/strings" "^5.7.0"
-"@ethersproject/wordlists@5.7.0", "@ethersproject/wordlists@^5.7.0":
+"@ethersproject/wordlists@5.5.0":
+ version "5.5.0"
+ resolved "https://registry.yarnpkg.com/@ethersproject/wordlists/-/wordlists-5.5.0.tgz#aac74963aa43e643638e5172353d931b347d584f"
+ integrity sha512-bL0UTReWDiaQJJYOC9sh/XcRu/9i2jMrzf8VLRmPKx58ckSlOJiohODkECCO50dtLZHcGU6MLXQ4OOrgBwP77Q==
+ dependencies:
+ "@ethersproject/bytes" "^5.5.0"
+ "@ethersproject/hash" "^5.5.0"
+ "@ethersproject/logger" "^5.5.0"
+ "@ethersproject/properties" "^5.5.0"
+ "@ethersproject/strings" "^5.5.0"
+
+"@ethersproject/wordlists@5.7.0", "@ethersproject/wordlists@^5.5.0", "@ethersproject/wordlists@^5.7.0":
version "5.7.0"
resolved "https://registry.yarnpkg.com/@ethersproject/wordlists/-/wordlists-5.7.0.tgz#8fb2c07185d68c3e09eb3bfd6e779ba2774627f5"
integrity sha512-S2TFNJNfHWVHNE6cNDjbVlZ6MgE17MIxMbMg2zv3wn+3XSJGosL1m9ZVv3GXCf/2ymSsQ+hRI5IzoMJTG6aoVA==
@@ -359,6 +743,47 @@
resolved "https://registry.yarnpkg.com/@jsdevtools/ono/-/ono-7.1.3.tgz#9df03bbd7c696a5c58885c34aa06da41c8543796"
integrity sha512-4JQNk+3mVzK3xh2rqd6RB4J46qUR19azEHBneZyTZM+c456qOrbbM/5xcR8huNCCcbVt7+UmizG6GuUvPvKUYg==
+"@oauth-everything/oauth2-types@^1.0.2":
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/@oauth-everything/oauth2-types/-/oauth2-types-1.0.2.tgz#1662a99d1b5f507efb9476e1e2cd7b50be91caea"
+ integrity sha512-fGddJhO8bnvljIhSTMuOSWFilkJ67TDqqgB1/qPVCu6s8swju7qWYZm2Qyit0miBebTtCf1jQ6hcz+GPA7glJw==
+ dependencies:
+ "@types/express" "^4.17.2"
+ "@types/passport-oauth2" "^1.4.8"
+
+"@oauth-everything/passport-discord@^1.0.2":
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/@oauth-everything/passport-discord/-/passport-discord-1.0.2.tgz#c8c227b1e0f50e54281edce3ef8dfec8d4a01f1e"
+ integrity sha512-N+n8ICOADti8vJUBLb9FEHeroMb7Cdvu18moM0BgJIxXb1ZzxiYy02MyiMVyqFZGh/Tw7xJA2z9c7o0nQVQZ7g==
+ dependencies:
+ "@oauth-everything/oauth2-types" "^1.0.2"
+ "@oauth-everything/profile" "^1.0.0"
+ "@types/passport-oauth2" "^1.4.8"
+ passport-oauth2 "^1.5.0"
+
+"@oauth-everything/profile@^1.0.0":
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/@oauth-everything/profile/-/profile-1.0.0.tgz#0b5e78749415519fa312dc83347a677903f456ba"
+ integrity sha512-OmCuBPhjaLHh9MST9P5jRuVBZaP0z7hBk8nH4Yt7Id5kNM1AXGd5uud6CP7W2zuhKl2nk0KsYmeMT7SkzN6VWg==
+
+"@sapphire/async-queue@^1.5.0":
+ version "1.5.0"
+ resolved "https://registry.yarnpkg.com/@sapphire/async-queue/-/async-queue-1.5.0.tgz#2f255a3f186635c4fb5a2381e375d3dfbc5312d8"
+ integrity sha512-JkLdIsP8fPAdh9ZZjrbHWR/+mZj0wvKS5ICibcLrRI1j84UmLMshx5n9QmL8b95d4onJ2xxiyugTgSAX7AalmA==
+
+"@sapphire/shapeshift@^3.8.1":
+ version "3.8.2"
+ resolved "https://registry.yarnpkg.com/@sapphire/shapeshift/-/shapeshift-3.8.2.tgz#f9f25cba74c710b56f8790de76a9642a9635e7db"
+ integrity sha512-NXpnJAsxN3/h9TqQPntOeVWZrpIuucqXI3IWF6tj2fWCoRLCuVK5wx7Dtg7pRrtkYfsMUbDqgKoX26vrC5iYfA==
+ dependencies:
+ fast-deep-equal "^3.1.3"
+ lodash "^4.17.21"
+
+"@sapphire/snowflake@^3.4.0", "@sapphire/snowflake@^3.4.2":
+ version "3.4.2"
+ resolved "https://registry.yarnpkg.com/@sapphire/snowflake/-/snowflake-3.4.2.tgz#365af8e7b57ada924ec8e85383b921280f81d128"
+ integrity sha512-KJwlv5gkGjs1uFV7/xx81n3tqgBwBJvH94n1xDyH3q+JSmtsMeSleJffarEBfG2yAFeJiFA4BnGOK6FFPHc19g==
+
"@sindresorhus/is@^0.14.0":
version "0.14.0"
resolved "https://registry.yarnpkg.com/@sindresorhus/is/-/is-0.14.0.tgz#9fb3a3cf3132328151f353de4632e01e52102bea"
@@ -471,7 +896,7 @@
resolved "https://registry.yarnpkg.com/@stablelib/wipe/-/wipe-1.0.1.tgz#d21401f1d59ade56a62e139462a97f104ed19a36"
integrity sha512-WfqfX/eXGiAd3RJe4VU2snh/ZPwtSjLG4ynQ/vYzvghTh7dHFcI1wl+nrkWG6lGhukOxOsUHfv8dUXr58D0ayg==
-"@stablelib/x25519@^1.0.1":
+"@stablelib/x25519@^1.0.1", "@stablelib/x25519@^1.0.2":
version "1.0.3"
resolved "https://registry.yarnpkg.com/@stablelib/x25519/-/x25519-1.0.3.tgz#13c8174f774ea9f3e5e42213cbf9fc68a3c7b7fd"
integrity sha512-KnTbKmUhPhHavzobclVJQG5kuivH+qDLpe84iRqX3CLrKp881cF160JvXJ+hjn1aMyCwYOKeIZefIH/P5cJoRw==
@@ -500,6 +925,16 @@
"@stablelib/wipe" "^1.0.1"
"@stablelib/xchacha20" "^1.0.1"
+"@superfaceai/passport-twitter-oauth2@^1.2.3":
+ version "1.2.3"
+ resolved "https://registry.yarnpkg.com/@superfaceai/passport-twitter-oauth2/-/passport-twitter-oauth2-1.2.3.tgz#ca870e7b03552c5893800626e3f60995e56c0c96"
+ integrity sha512-kbGptW8AM7l6jJKlgCaoWSHVVNgNgCZCTPO9IDo7Wg8vQqOu+tQhRmJERAdbqcB3B/doG7Nd90nvFuLDH1sFLA==
+ dependencies:
+ passport-oauth2 "^1.6.1"
+ optionalDependencies:
+ "@types/passport" "1.x"
+ "@types/passport-oauth2" ">=1.4"
+
"@szmarczak/http-timer@^1.1.2":
version "1.1.2"
resolved "https://registry.yarnpkg.com/@szmarczak/http-timer/-/http-timer-1.1.2.tgz#b1665e2c461a2cd92f4c1bbf50d5454de0d4b421"
@@ -507,6 +942,11 @@
dependencies:
defer-to-connect "^1.0.1"
+"@tokenizer/token@^0.3.0":
+ version "0.3.0"
+ resolved "https://registry.yarnpkg.com/@tokenizer/token/-/token-0.3.0.tgz#fe98a93fe789247e998c75e74e9c7c63217aa276"
+ integrity sha512-OvjF+z51L3ov0OyAU0duzsYuvO01PH7x4t6DJx+guahgTnBHkhJdG7soQeTSFLWN3efnHyibZ4Z8l2EuWwJN3A==
+
"@types/body-parser@*":
version "1.19.2"
resolved "https://registry.yarnpkg.com/@types/body-parser/-/body-parser-1.19.2.tgz#aea2059e28b7658639081347ac4fab3de166e6f0"
@@ -523,9 +963,9 @@
"@types/node" "*"
"@types/debug@*":
- version "4.1.7"
- resolved "https://registry.yarnpkg.com/@types/debug/-/debug-4.1.7.tgz#7cc0ea761509124709b8b2d1090d8f6c17aadb82"
- integrity sha512-9AonUzyTjXXhEOa0DnqpzZi6VHlqKMswga9EXjpXnnqxwLtdvPPtlO8evrI5D9S6asFRCQ6v+wpiUKbw+vKqyg==
+ version "4.1.12"
+ resolved "https://registry.yarnpkg.com/@types/debug/-/debug-4.1.12.tgz#a155f21690871953410df4b6b6f53187f0500917"
+ integrity sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==
dependencies:
"@types/ms" "*"
@@ -538,6 +978,15 @@
"@types/qs" "*"
"@types/range-parser" "*"
+"@types/express-serve-static-core@^4.17.33":
+ version "4.17.33"
+ resolved "https://registry.yarnpkg.com/@types/express-serve-static-core/-/express-serve-static-core-4.17.33.tgz#de35d30a9d637dc1450ad18dd583d75d5733d543"
+ integrity sha512-TPBqmR/HRYI3eC2E5hmiivIzv+bidAfXofM+sbonAGvyDhySGw9/PQZFt2BLOrjUUR++4eJVpx6KnLQK1Fk9tA==
+ dependencies:
+ "@types/node" "*"
+ "@types/qs" "*"
+ "@types/range-parser" "*"
+
"@types/express-session@1.17.0":
version "1.17.0"
resolved "https://registry.yarnpkg.com/@types/express-session/-/express-session-1.17.0.tgz#770daf81368f6278e3e40dd894e1e52abbdca0cd"
@@ -556,10 +1005,20 @@
"@types/qs" "*"
"@types/serve-static" "*"
+"@types/express@^4.17.2":
+ version "4.17.17"
+ resolved "https://registry.yarnpkg.com/@types/express/-/express-4.17.17.tgz#01d5437f6ef9cfa8668e616e13c2f2ac9a491ae4"
+ integrity sha512-Q4FmmuLGBG58btUnfS1c1r/NQdlp3DMfGDGig8WhfpA2YRUtEkxAjkZb0yvplJGYdF1fsQ81iMDcH24sSCNC/Q==
+ dependencies:
+ "@types/body-parser" "*"
+ "@types/express-serve-static-core" "^4.17.33"
+ "@types/qs" "*"
+ "@types/serve-static" "*"
+
"@types/json-schema@^7.0.6":
- version "7.0.11"
- resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.11.tgz#d421b6c527a3037f7c84433fd2c4229e016863d3"
- integrity sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==
+ version "7.0.15"
+ resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.15.tgz#596a1747233694d50f6ad8a7869fcb6f56cf5841"
+ integrity sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==
"@types/json5@^0.0.29":
version "0.0.29"
@@ -577,27 +1036,57 @@
integrity sha512-Z61JK7DKDtdKTWwLeElSEBcWGRLY8g95ic5FoQqI9CMx0ns/Ghep3B4DfcEimiKMvtamNVULVNKEsiwV3aQmXw==
"@types/ms@*":
- version "0.7.31"
- resolved "https://registry.yarnpkg.com/@types/ms/-/ms-0.7.31.tgz#31b7ca6407128a3d2bbc27fe2d21b345397f6197"
- integrity sha512-iiUgKzV9AuaEkZqkOLDIvlQiL6ltuZd9tGcW3gwpnX8JbuiuhFlEGmmFXEXkN50Cvq7Os88IY2v0dkDqXYWVgA==
+ version "0.7.34"
+ resolved "https://registry.yarnpkg.com/@types/ms/-/ms-0.7.34.tgz#10964ba0dee6ac4cd462e2795b6bebd407303433"
+ integrity sha512-nG96G3Wp6acyAgJqGasjODb+acrI7KltPiRxzHPXnP3NgI28bpQDRv53olbqGXbfcgF5aiiHmO3xpwEpS5Ld9g==
"@types/node@*":
version "17.0.35"
resolved "https://registry.yarnpkg.com/@types/node/-/node-17.0.35.tgz#635b7586086d51fb40de0a2ec9d1014a5283ba4a"
integrity sha512-vu1SrqBjbbZ3J6vwY17jBs8Sr/BKA+/a/WtjRG+whKg1iuLFOosq872EXS0eXWILdO36DHQQeku/ZcL6hz2fpg==
-"@types/pouchdb-core@*", "@types/pouchdb-core@^7.0.10":
- version "7.0.10"
- resolved "https://registry.yarnpkg.com/@types/pouchdb-core/-/pouchdb-core-7.0.10.tgz#d1ea1549e7fad6cb579f71459b1bc27252e06a5a"
- integrity sha512-mKhjLlWWXyV3PTTjDhzDV1kc2dolO7VYFa75IoKM/hr8Er9eo8RIbS7mJLfC8r/C3p6ihZu9yZs1PWC1LQ0SOA==
+"@types/node@^18.15.11":
+ version "18.19.7"
+ resolved "https://registry.yarnpkg.com/@types/node/-/node-18.19.7.tgz#9a5f6ac7ec42a5dff68fe7faf2dd359710de4a12"
+ integrity sha512-IGRJfoNX10N/PfrReRZ1br/7SQ+2vF/tK3KXNwzXz82D32z5dMQEoOlFew18nLSN+vMNcLY4GrKfzwi/yWI8/w==
+ dependencies:
+ undici-types "~5.26.4"
+
+"@types/oauth@*":
+ version "0.9.1"
+ resolved "https://registry.yarnpkg.com/@types/oauth/-/oauth-0.9.1.tgz#e17221e7f7936b0459ae7d006255dff61adca305"
+ integrity sha512-a1iY62/a3yhZ7qH7cNUsxoI3U/0Fe9+RnuFrpTKr+0WVOzbKlSLojShCKe20aOD1Sppv+i8Zlq0pLDuTJnwS4A==
+ dependencies:
+ "@types/node" "*"
+
+"@types/passport-oauth2@>=1.4", "@types/passport-oauth2@^1.4.8":
+ version "1.4.12"
+ resolved "https://registry.yarnpkg.com/@types/passport-oauth2/-/passport-oauth2-1.4.12.tgz#c2ae0ee3b16646188d8b0b6cdbc6880a0247dc5f"
+ integrity sha512-RZg6cYTyEGinrZn/7REYQds6zrTxoBorX1/fdaz5UHzkG8xdFE7QQxkJagCr2ETzGII58FAFDmnmbTUVMrltNA==
+ dependencies:
+ "@types/express" "*"
+ "@types/oauth" "*"
+ "@types/passport" "*"
+
+"@types/passport@*", "@types/passport@1.x":
+ version "1.0.12"
+ resolved "https://registry.yarnpkg.com/@types/passport/-/passport-1.0.12.tgz#7dc8ab96a5e895ec13688d9e3a96920a7f42e73e"
+ integrity sha512-QFdJ2TiAEoXfEQSNDISJR1Tm51I78CymqcBa8imbjo6dNNu+l2huDxxbDEIoFIwOSKMkOfHEikyDuZ38WwWsmw==
+ dependencies:
+ "@types/express" "*"
+
+"@types/pouchdb-core@*", "@types/pouchdb-core@^7.0.11":
+ version "7.0.14"
+ resolved "https://registry.yarnpkg.com/@types/pouchdb-core/-/pouchdb-core-7.0.14.tgz#4d3012345af53e416ddaed4d7f2c3d73dc1363e5"
+ integrity sha512-ec63FAtmc1ForP4oNgLZoPYqjaBrkGTWA7jm+rQ7SEtIpOPpN4NCWF2/JyrhO64jjIzO5qkV/YNEpZlEZFxCcw==
dependencies:
"@types/debug" "*"
"@types/pouchdb-find" "*"
"@types/pouchdb-find@*":
- version "6.3.7"
- resolved "https://registry.yarnpkg.com/@types/pouchdb-find/-/pouchdb-find-6.3.7.tgz#f713534a53c1a7f3fd8fbbfb74131a1b04711ddc"
- integrity sha512-b2dr9xoZRK5Mwl8UiRA9l5j9mmCxNfqXuu63H1KZHwJLILjoIIz7BntCvM0hnlnl7Q8P8wORq0IskuaMq5Nnnw==
+ version "7.3.3"
+ resolved "https://registry.yarnpkg.com/@types/pouchdb-find/-/pouchdb-find-7.3.3.tgz#599e388e2a1c4e57ee8aba0d5deca24d37b6978e"
+ integrity sha512-U7zXk67s9Ar+9Pwj5kSbuMnn8zif0AOOIPy4KRFeJ/S/Tk+mNS90soj+3OV21H8xyB7WTxjvS1JLablZC6C6ow==
dependencies:
"@types/pouchdb-core" "*"
@@ -624,6 +1113,13 @@
resolved "https://registry.yarnpkg.com/@types/tough-cookie/-/tough-cookie-4.0.2.tgz#6286b4c7228d58ab7866d19716f3696e03a09397"
integrity sha512-Q5vtl1W5ue16D+nIaW8JWebSSraJVlK+EthKn7e7UcD4KWsaSJ8BqGPXNaPghgtcn/fhvrN17Tv8ksUsQpiplw==
+"@types/ws@^8.5.4":
+ version "8.5.4"
+ resolved "https://registry.yarnpkg.com/@types/ws/-/ws-8.5.4.tgz#bb10e36116d6e570dd943735f86c933c1587b8a5"
+ integrity sha512-zdQDHKUgcX/zBc4GrwsE/7dVdAD8JR4EuiAXiiUhhfyIJXXb2+PrGshFyeXWQPMmmZ2XxgaqclgpIC7eTXc1mg==
+ dependencies:
+ "@types/node" "*"
+
"@ungap/promise-all-settled@1.1.2":
version "1.1.2"
resolved "https://registry.yarnpkg.com/@ungap/promise-all-settled/-/promise-all-settled-1.1.2.tgz#aa58042711d6e3275dd37dc597e5d31e8c290a44"
@@ -637,43 +1133,46 @@
binary-case "^1.0.0"
type-is "^1.6.16"
-"@verida/account-node@^2.0.0":
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/@verida/account-node/-/account-node-2.0.0.tgz#12ed285280cac73aa1ceb41bf651495628b337ae"
- integrity sha512-6CDDvF4tje1Bh9p6KSKG6QwlL+rNSSQxEKMnzNHgrtVkUeJIAXW5tQuhk9gI1TVgekMynprjNpEwgdTFWPHcJw==
- dependencies:
- "@verida/account" "^2.0.0"
- "@verida/did-client" "^2.0.0"
- "@verida/did-document" "^2.0.0"
- "@verida/encryption-utils" "^2.0.0"
- "@verida/keyring" "^2.0.0"
+"@verida/account-node@^3.0.1":
+ version "3.0.1"
+ resolved "https://registry.yarnpkg.com/@verida/account-node/-/account-node-3.0.1.tgz#c2b45ff14137cd270186d32d9dadd88c2b28f7f9"
+ integrity sha512-S6zqCathYR/iRDYZBAa3B3Ze6LkQBdmBuNhWZvcW5KIlGMDwdUpg5N6VXZmhbrBSHUeYJVPdN8eJZWjss+8vLg==
+ dependencies:
+ "@verida/account" "^3.0.1"
+ "@verida/did-client" "^3.0.1"
+ "@verida/did-document" "^3.0.1"
+ "@verida/encryption-utils" "^3.0.0"
+ "@verida/keyring" "^3.0.1"
+ "@verida/types" "^3.0.0"
axios "^0.27.2"
did-resolver "^4.0.1"
-"@verida/account@^2.0.0":
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/@verida/account/-/account-2.0.0.tgz#fc7e853dbfc20e18744f9bb10dad75cc05fbed0a"
- integrity sha512-N5WRTUyEYQ113TLMDNMwZNPJcvqeqWCXI1G2tQZz4fR5rg3haLhfnIgqe2bSAsiIT6yTRizWjqwekPi7TCSAkQ==
+"@verida/account@^3.0.1":
+ version "3.0.1"
+ resolved "https://registry.yarnpkg.com/@verida/account/-/account-3.0.1.tgz#f6441b744956a77dccd376a441d88544919b0751"
+ integrity sha512-5i77Hwk4mCSyUZuJQ8iMTsGYeq1rj6wM7mlpiuJLAK8Zj0JJwMP5x8oE5xsd9IWpNQ9xjFv8C6l/lYpe3425uA==
dependencies:
- "@verida/keyring" "^2.0.0"
- "@verida/storage-link" "^2.0.0"
- did-jwt "5.7.0"
+ "@verida/keyring" "^3.0.1"
+ "@verida/storage-link" "^3.0.1"
+ "@verida/types" "^3.0.0"
+ did-jwt "^6.11.0"
did-resolver "^4.0.1"
lodash "^4.17.21"
tweetnacl-util "^0.15.1"
-"@verida/client-ts@^2.0.1":
- version "2.0.1"
- resolved "https://registry.yarnpkg.com/@verida/client-ts/-/client-ts-2.0.1.tgz#a64cc733578da849b319c72e726e0710afb44c32"
- integrity sha512-ZqFDouGUYszKn4a56pCmnMZehwbH1TPPV5yXbtlAVXjnSqbw06RDlue8HlfbYNiECPAGgQ5KQO+ZFTVwz/UtRA==
- dependencies:
- "@verida/account" "^2.0.0"
- "@verida/account-node" "^2.0.0"
- "@verida/did-client" "^2.0.0"
- "@verida/did-document" "^2.0.0"
- "@verida/encryption-utils" "^2.0.0"
- "@verida/keyring" "^2.0.0"
- "@verida/storage-link" "^2.0.0"
+"@verida/client-ts@^3.0.2":
+ version "3.0.2"
+ resolved "https://registry.yarnpkg.com/@verida/client-ts/-/client-ts-3.0.2.tgz#e626728ca8ab3f21f94483670b0e822b5bc8e250"
+ integrity sha512-nk+hzmis1kMmAUfr8ZwNA4raxOMPrrLxhWqHrwHBvpjtgA8luVV67x2rU6USzNCcJCLEFdjUlFEVJjms5Mahow==
+ dependencies:
+ "@verida/account" "^3.0.1"
+ "@verida/did-client" "^3.0.1"
+ "@verida/did-document" "^3.0.1"
+ "@verida/encryption-utils" "^3.0.0"
+ "@verida/keyring" "^3.0.1"
+ "@verida/storage-link" "^3.0.1"
+ "@verida/types" "^3.0.0"
+ "@verida/vda-name-client" "^3.0.1"
ajv "^8.6.3"
ajv-formats "^2.1.1"
axios "^0.21.2"
@@ -688,93 +1187,176 @@
pouchdb-find "^7.2.2"
uuid "^8.3.2"
-"@verida/did-client@^2.0.0":
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/@verida/did-client/-/did-client-2.0.0.tgz#1da23e09ecfb1bd3306e96d34f9afcd65c7b8b9d"
- integrity sha512-AAPej1qiloOb0mdm7S6SjVNzh19/2k2WIyumMu/LycuZr8nS6POl1VU40bCwovC5sGvW1Y5IE3b9k311JQ0n+A==
- dependencies:
- "@verida/did-document" "^2.0.0"
- "@verida/vda-did-resolver" "^2.0.0"
- "@verida/web3" "^2.0.0"
+"@verida/did-client@^3.0.1":
+ version "3.0.1"
+ resolved "https://registry.yarnpkg.com/@verida/did-client/-/did-client-3.0.1.tgz#448a2c1a2a9fdbb631f3176daf5b182c5f2fee4c"
+ integrity sha512-eySImxml+HHkWpqSH4fScK/0aHBe9T+SE4SEKSPBLYFoJ8BHtbhw9ZF4dE22IdIciVj08z3PRZfKA5/rCr73PQ==
+ dependencies:
+ "@verida/did-document" "^3.0.1"
+ "@verida/types" "^3.0.0"
+ "@verida/vda-common" "^3.0.0"
+ "@verida/vda-did-resolver" "^3.0.1"
+ "@verida/web3" "^3.0.1"
axios "^0.23.0"
deepcopy "^2.1.0"
+ did-resolver "^4.0.1"
ethers "^5.5.1"
-"@verida/did-document@^2.0.0":
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/@verida/did-document/-/did-document-2.0.0.tgz#b921011579f906e743d953f6ffd96a1f55f3c505"
- integrity sha512-9mzbA7PtylehPfAAPor0Gwtkf2+Li0Pv9NbGoT8vqdhNrvOiYTqaz8yhUa/JpqiygolIpo6XC0gUuSqglSpYaw==
+"@verida/did-document@^3.0.1":
+ version "3.0.1"
+ resolved "https://registry.yarnpkg.com/@verida/did-document/-/did-document-3.0.1.tgz#6f2c0c596d8eb026bbb8f61fc6045a5de034876a"
+ integrity sha512-bqLpGEsmoACrGdnFiulxeoHzOwYyMRKET1L+QXHfAncVUe8UhDeyEmikLD2K2RqpxJN2i5AonKhfhKxdXy+FhA==
dependencies:
"@ethersproject/address" "^5.7.0"
"@ethersproject/bignumber" "^5.7.0"
"@ethersproject/transactions" "^5.7.0"
- "@verida/encryption-utils" "^2.0.0"
- "@verida/keyring" "^2.0.0"
+ "@verida/encryption-utils" "^3.0.0"
+ "@verida/keyring" "^3.0.1"
+ "@verida/types" "^3.0.0"
did-resolver "^4.0.1"
- ethers "^5.7.2"
lodash "^4.17.21"
-"@verida/encryption-utils@^2.0.0":
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/@verida/encryption-utils/-/encryption-utils-2.0.0.tgz#996740206f776d65314dd1351d318b971872bf77"
- integrity sha512-w1LY3KJWqmeTWHjKlXGjAnF4ghpeMfXvRe7d1QUoqOLk9p0vgRMGkWwYgqYfhtvkGhu9e5+Nrit9XTGewjbNXg==
+"@verida/encryption-utils@^3.0.0":
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/@verida/encryption-utils/-/encryption-utils-3.0.0.tgz#21434720e3c9d28a9df074e353d255959877a82d"
+ integrity sha512-qaCvVFeEV4QKJl5quN/XMFCKwsCHE5hzjUdQAutlp74ItnXe0YGwZzjqXUYynBKkldCyZQpRoeH16e4GFFSBSQ==
dependencies:
ethers "^5.5.1"
json.sortify "^2.2.2"
tweetnacl "^1.0.3"
tweetnacl-util "^0.15.1"
-"@verida/keyring@^2.0.0":
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/@verida/keyring/-/keyring-2.0.0.tgz#31936030d8cdb78af2affdfe0d1b308af5de69dd"
- integrity sha512-CiRDJKVQB4OIeEcc16Kkpx2gnWdWUT+BTnJUHuXB8qUmko/OaDFnV40qogl67sFGyslGptFgmIBkXITHa1MlhA==
+"@verida/helpers@^3.0.1":
+ version "3.0.1"
+ resolved "https://registry.yarnpkg.com/@verida/helpers/-/helpers-3.0.1.tgz#f4a57f91a33dded0237e728da963c52435e52dfe"
+ integrity sha512-KJjvyW1AMsaDGxVru1DR2u/QeOmEMk7m2ieoQnrl917ENYIyCzT0qFuqab91a6i8Q99IWKZC5an+tXYCOpQ9RA==
+ dependencies:
+ "@verida/encryption-utils" "^3.0.0"
+ "@verida/types" "^3.0.0"
+ axios "^1.6.2"
+ bs58 "^5.0.0"
+ url "^0.11.0"
+
+"@verida/keyring@^3.0.1":
+ version "3.0.1"
+ resolved "https://registry.yarnpkg.com/@verida/keyring/-/keyring-3.0.1.tgz#8552ca13a0541c55352f59cc00c0127ffbcaf77a"
+ integrity sha512-dmWhAlkT2hz7FIHnMUuYlvvaQL57Ps/JicXdqzhmslNqt7Lez0/o1vqpyJ58ZPnhI/Lv7e0MOEqNnWDb1p3aGw==
dependencies:
- "@verida/encryption-utils" "^2.0.0"
+ "@verida/encryption-utils" "^3.0.0"
+ "@verida/types" "^3.0.0"
ethers "^5.5.1"
tweetnacl "^1.0.3"
uuid "^8.3.2"
-"@verida/storage-link@^2.0.0":
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/@verida/storage-link/-/storage-link-2.0.0.tgz#942838a1d8a3a242401548f23f82af90c510135b"
- integrity sha512-wqlLhV19+aJacNNunaTSJmN2JGmhzpIzhOY2dTJEWct7VDxXj6xObeCKTYOECGGpPOR6r3TSGAblCQahGrCc+g==
+"@verida/storage-link@^3.0.1":
+ version "3.0.1"
+ resolved "https://registry.yarnpkg.com/@verida/storage-link/-/storage-link-3.0.1.tgz#e2e02e8a058016429ac6dc4de1367df8298c2e68"
+ integrity sha512-fkerqqb98XvjsilqrE531pLNptGntx9MEOFi28jfu3HWTMWutIZNcT4vLIo2QxxObD/7EG0sZzJGTHmRdHPx5w==
dependencies:
- "@verida/did-client" "^2.0.0"
- "@verida/did-document" "^2.0.0"
- "@verida/encryption-utils" "^2.0.0"
- "@verida/keyring" "^2.0.0"
+ "@verida/did-client" "^3.0.1"
+ "@verida/did-document" "^3.0.1"
+ "@verida/encryption-utils" "^3.0.0"
+ "@verida/keyring" "^3.0.1"
did-resolver "^4.0.0"
url-parse "^1.5.3"
-"@verida/vda-did-resolver@^2.0.0":
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/@verida/vda-did-resolver/-/vda-did-resolver-2.0.0.tgz#2c87755d7548f80852eccf97f166ba852517e204"
- integrity sha512-8ZBF1JuxNHJCGpYMWKK844b/eYw5ncRZOb0Sj8rW/0wCNjVRFl8cucNhsy9Hp3g1jXDd9mwJBY/jdWzY1Vb0Rg==
+"@verida/types@^3.0.0":
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/@verida/types/-/types-3.0.0.tgz#1ffb64eea5d2c1fcb66c386f979d88918c943dcf"
+ integrity sha512-J5psSf9ayqvUVyRBwYWjZ3Zeiomnl/GsHpvn2GA6zwH39QS8bPAvVGHaaq7na+0M1VUysrDEvHFrQ9fSmGAbHw==
+ dependencies:
+ "@ethersproject/abstract-signer" "^5.7.0"
+ "@ethersproject/bignumber" "^5.7.0"
+ "@ethersproject/providers" "^5.7.2"
+ "@types/node" "^18.15.11"
+ "@types/pouchdb-core" "^7.0.11"
+ did-resolver "^4.0.1"
+ tweetnacl "^1.0.3"
+
+"@verida/vda-common@^3.0.0":
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/@verida/vda-common/-/vda-common-3.0.0.tgz#951c1b0fe1ba700c18a2f9848e22d8b8a0d26d97"
+ integrity sha512-T24EPcExnbCY1GyQcSThydExaRm2I4Mx38yUE+MkJwnvI7Q1lHNZEacEcDr+jnURAuBsLvp6jIiZAutZdEVdfA==
+ dependencies:
+ "@verida/encryption-utils" "^3.0.0"
+ copyfiles "^2.4.1"
+ ethers "5.5.1"
+
+"@verida/vda-did-resolver@^3.0.1":
+ version "3.0.1"
+ resolved "https://registry.yarnpkg.com/@verida/vda-did-resolver/-/vda-did-resolver-3.0.1.tgz#9244dd9b0fd8b5b6f9c070501b49d055c50c2cd6"
+ integrity sha512-dFUPUsb8detiSReN9/ocKm4+pRdOSKPT1ar7owHo0OdELZ8hLX80Y3Nd+1sU9nUn7dYxqmCnPwOZGM42MP3tSQ==
dependencies:
"@ethersproject/providers" "^5.7.2"
- "@verida/did-document" "^2.0.0"
- "@verida/encryption-utils" "^2.0.0"
- "@verida/vda-did" "^2.0.0"
+ "@verida/did-document" "^3.0.1"
+ "@verida/encryption-utils" "^3.0.0"
+ "@verida/types" "^3.0.0"
+ "@verida/vda-common" "^3.0.0"
+ "@verida/vda-did" "^3.0.1"
axios "1.2.0-alpha.1"
lodash "^4.17.21"
-"@verida/vda-did@^2.0.0":
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/@verida/vda-did/-/vda-did-2.0.0.tgz#d650ead5faddd2d5b5eaa537863629ad17bf090e"
- integrity sha512-ZYB4t0SdXu0SFUj1hucDd51ktrsI82aRWGyc013KrKIxfM18WjFeCWm7fln5pQt1GYnsXTq03nCtzACMBPCf4w==
+"@verida/vda-did@^3.0.1":
+ version "3.0.1"
+ resolved "https://registry.yarnpkg.com/@verida/vda-did/-/vda-did-3.0.1.tgz#0b72caf0a8a93e72b182ec9ca7f3690ab2a3f4f8"
+ integrity sha512-wgePZNnsVAIfOwk7cDAGCrGyRCgGLyu7PKasonpVs45vTyEVJt74WpAr0m/kLsqUEVPiTSY1jwvuI1A2wE4TqA==
dependencies:
- "@verida/did-document" "^2.0.0"
- "@verida/encryption-utils" "^2.0.0"
- "@verida/vda-did-resolver" "^2.0.0"
- "@verida/web3" "^2.0.0"
+ "@verida/did-document" "^3.0.1"
+ "@verida/encryption-utils" "^3.0.0"
+ "@verida/types" "^3.0.0"
+ "@verida/web3" "^3.0.1"
axios "1.2.0-alpha.1"
+ ethers "^5.7.2"
lodash "^4.17.21"
-"@verida/web3@^2.0.0":
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/@verida/web3/-/web3-2.0.0.tgz#4023ddda769bb13e36d8f48ea3480f25abe84a87"
- integrity sha512-+AqqaSgpeFrr12iPCdUiqEqvWa0dlHkN5AmJzrXHGktiBb7vPQxPRKu1dV2mOOhcsTV/grdVKwuB2ZV5/X4lAg==
+"@verida/vda-name-client@^3.0.1":
+ version "3.0.1"
+ resolved "https://registry.yarnpkg.com/@verida/vda-name-client/-/vda-name-client-3.0.1.tgz#2ad8a4556c810d6280a5abc45f9fa3c3da088a64"
+ integrity sha512-HAGro7kQ1hf6oz9gpGJEbHfjQGbUUYZBmjJKSg+wzRM8pKfXnMuN5R4iRVoR6TPpcwoNhbrce4toO4NQybyYAw==
dependencies:
+ "@ethersproject/providers" "^5.7.2"
+ "@verida/helpers" "^3.0.1"
+ "@verida/types" "^3.0.0"
+ "@verida/web3" "^3.0.1"
+ axios "^0.27.2"
+ ethers "^5.7.0"
+
+"@verida/vda-sbt-client@^3.0.2":
+ version "3.0.2"
+ resolved "https://registry.yarnpkg.com/@verida/vda-sbt-client/-/vda-sbt-client-3.0.2.tgz#e0fe03a10b38105c80d4a1315faae4f4c46c3f83"
+ integrity sha512-WqkSUBlKL+zHISn/VYTVBfMJHRxJpRG7V+aGFt4efrkhC7ZaOz43EPoTGHjOFAI8CUOwozGHMpVbzu1lze2W5Q==
+ dependencies:
+ "@ethersproject/providers" "^5.7.2"
+ "@verida/helpers" "^3.0.1"
+ "@verida/web3" "^3.0.1"
+ axios "^0.27.2"
+ ethers "^5.7.0"
+
+"@verida/verifiable-credentials@^3.0.2":
+ version "3.0.2"
+ resolved "https://registry.yarnpkg.com/@verida/verifiable-credentials/-/verifiable-credentials-3.0.2.tgz#1b84d334b23a2b6a6e658a2a077d2718dde0b373"
+ integrity sha512-M68/JDtsw6Se4fvL5NIFUYZDoEC4t2D2AC7SUnh4ENRPMnVaKNFlthfZ8hBcUOg5H8RzYaeeGY8Fc0IBPeBuwQ==
+ dependencies:
+ "@verida/encryption-utils" "^3.0.0"
+ "@verida/helpers" "^3.0.1"
+ "@verida/types" "^3.0.0"
+ "@verida/vda-did-resolver" "^3.0.1"
+ axios "^1.3.3"
+ dayjs "^1.10.7"
+ did-jwt "^6.11.0"
+ did-jwt-vc "3.1.0"
+ lodash "^4.17.21"
+ tweetnacl-util "^0.15.1"
+ url "^0.11.0"
+
+"@verida/web3@^3.0.1":
+ version "3.0.1"
+ resolved "https://registry.yarnpkg.com/@verida/web3/-/web3-3.0.1.tgz#92a776f3b1872099039fe79e0017caa334acbfe6"
+ integrity sha512-XLfwUkG93vh7/4t/cJmtROcu31Gz+7Wj0aCmGE2p3go3iMZzFH03+EmK90xvtQrISbzrmBkxhsThJ1BTbZRiSg==
+ dependencies:
+ "@verida/types" "^3.0.0"
+ "@verida/vda-common" "^3.0.0"
+ axios "^1.2.3"
ethers "^5.7.0"
abbrev@1:
@@ -1050,6 +1632,15 @@ axios@^1.2.3:
form-data "^4.0.0"
proxy-from-env "^1.1.0"
+axios@^1.3.3, axios@^1.6.2:
+ version "1.6.5"
+ resolved "https://registry.yarnpkg.com/axios/-/axios-1.6.5.tgz#2c090da14aeeab3770ad30c3a1461bc970fb0cd8"
+ integrity sha512-Ii012v05KEVuUoFWmMW/UQv9aRIc3ZwkWDcM+h5Il8izZCtRVpDUfwpoFf7eOtajT3QiGR4yDUx7lPqHJULgbg==
+ dependencies:
+ follow-redirects "^1.15.4"
+ form-data "^4.0.0"
+ proxy-from-env "^1.1.0"
+
babel-runtime@^6.23.0:
version "6.26.0"
resolved "https://registry.yarnpkg.com/babel-runtime/-/babel-runtime-6.26.0.tgz#965c7058668e82b55d7bfe04ff2337bc8b5647fe"
@@ -1070,12 +1661,17 @@ base-x@^3.0.2:
dependencies:
safe-buffer "^5.0.1"
+base-x@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/base-x/-/base-x-4.0.0.tgz#d0e3b7753450c73f8ad2389b5c018a4af7b2224a"
+ integrity sha512-FuwxlW4H5kh37X/oW59pwTzzTKRzfrrQwhmyspRM7swOEZcHtDZSCt45U6oKgtuFE+WYPblePMVIPR4RZrh/hw==
+
base64-js@^1.0.2, base64-js@^1.3.1:
version "1.5.1"
resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a"
integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==
-base64url@3.x.x, base64url@^3.0.1:
+base64url@3.x.x:
version "3.0.1"
resolved "https://registry.yarnpkg.com/base64url/-/base64url-3.0.1.tgz#6399d572e2bc3f90a9a8b22d5dbb0a32d33f788d"
integrity sha512-ir1UPr3dkwexU7FdV8qBBbNDRUhMmIekYMFZfi+C/sLNnRESKPl23nB9b2pltqfOQNnGzsDdId90AEtG5tCx4A==
@@ -1099,6 +1695,11 @@ bech32@1.1.4:
resolved "https://registry.yarnpkg.com/bech32/-/bech32-1.1.4.tgz#e38c9f37bf179b8eb16ae3a772b40c356d4832e9"
integrity sha512-s0IrSOzLlbvX7yp4WBfPITzpAU8sqQcpsmwXDiKwrG4r491vwCO/XpejasRNl0piBMe/DvP4Tz0mIS/X1DPJBQ==
+bech32@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/bech32/-/bech32-2.0.0.tgz#078d3686535075c8c79709f054b1b226a133b355"
+ integrity sha512-LcknSilhIGatDAsY1ak2I8VtGaHNhgMSYVxFrGLXv+xLHytaKZKcaUJJUE7qmBr7h33o5YQwP55pMI0xmkpJwg==
+
binary-case@^1.0.0:
version "1.1.4"
resolved "https://registry.yarnpkg.com/binary-case/-/binary-case-1.1.4.tgz#d687104d59e38f2b9e658d3a58936963c59ab931"
@@ -1199,6 +1800,13 @@ bs58@^4.0.1:
dependencies:
base-x "^3.0.2"
+bs58@^5.0.0:
+ version "5.0.0"
+ resolved "https://registry.yarnpkg.com/bs58/-/bs58-5.0.0.tgz#865575b4d13c09ea2a84622df6c8cbeb54ffc279"
+ integrity sha512-r+ihvQJvahgYT50JD05dyJNKlmmSlMoOGwn1lCcEzanPglg7TxYjioQUYehQ9mAR/+hOSd2jRc/Z2y5UxBymvQ==
+ dependencies:
+ base-x "^4.0.0"
+
buffer-crc32@^0.2.1, buffer-crc32@^0.2.13:
version "0.2.13"
resolved "https://registry.yarnpkg.com/buffer-crc32/-/buffer-crc32-0.2.13.tgz#0d333e3f00eac50aa1454abd30ef8c2a5d9a7242"
@@ -1226,6 +1834,13 @@ buffer@^5.1.0, buffer@^5.5.0, buffer@^5.6.0:
base64-js "^1.3.1"
ieee754 "^1.1.13"
+busboy@^1.6.0:
+ version "1.6.0"
+ resolved "https://registry.yarnpkg.com/busboy/-/busboy-1.6.0.tgz#966ea36a9502e43cdb9146962523b92f531f6893"
+ integrity sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==
+ dependencies:
+ streamsearch "^1.1.0"
+
bytes@3.1.2:
version "3.1.2"
resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.2.tgz#8b0beeb98605adf1b128fa4386403c009e0221a5"
@@ -1267,6 +1882,11 @@ canonicalize@^1.0.5:
resolved "https://registry.yarnpkg.com/canonicalize/-/canonicalize-1.0.8.tgz#24d1f1a00ed202faafd9bf8e63352cd4450c6df1"
integrity sha512-0CNTVCLZggSh7bc5VkX5WWPWO+cyZbNd07IHIsSXLia/eAq+r836hgk+8BKoEh7949Mda87VUOitx5OddVj64A==
+canonicalize@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/canonicalize/-/canonicalize-2.0.0.tgz#32be2cef4446d67fd5348027a384cae28f17226a"
+ integrity sha512-ulDEYPv7asdKvqahuAY35c1selLdzDwHqugK92hfkzvlDCwXRRelDkR+Er33md/PtnpqHemgkuDPanZ4fiYZ8w==
+
caseless@~0.12.0:
version "0.12.0"
resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc"
@@ -1431,6 +2051,19 @@ cookie@0.5.0:
resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.5.0.tgz#d1f5d71adec6558c58f389987c366aa47e994f8b"
integrity sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==
+copyfiles@^2.4.1:
+ version "2.4.1"
+ resolved "https://registry.yarnpkg.com/copyfiles/-/copyfiles-2.4.1.tgz#d2dcff60aaad1015f09d0b66e7f0f1c5cd3c5da5"
+ integrity sha512-fereAvAvxDrQDOXybk3Qu3dPbOoKoysFMWtkY3mv5BsL8//OSZVL5DCLYqgRfY5cWirgRzlC+WSrxp6Bo3eNZg==
+ dependencies:
+ glob "^7.0.5"
+ minimatch "^3.0.3"
+ mkdirp "^1.0.4"
+ noms "0.0.0"
+ through2 "^2.0.1"
+ untildify "^4.0.0"
+ yargs "^16.1.0"
+
core-decorators@^0.17.0:
version "0.17.0"
resolved "https://registry.yarnpkg.com/core-decorators/-/core-decorators-0.17.0.tgz#3f43180a86d2ab0cc51069f46a1ec3e49e7cebd6"
@@ -1521,6 +2154,11 @@ date-format@^4.0.10:
resolved "https://registry.yarnpkg.com/date-format/-/date-format-4.0.10.tgz#7aa4bc0ad0c79f4ba858290e5dbb47f27d602e79"
integrity sha512-RuMIHocrVjF84bUSTcd1uokIsLsOsk1Awb7TexNOI3f48ukCu39mjslWquDTA08VaDMF2umr3MB9ow5EyJTWyA==
+dayjs@^1.10.7:
+ version "1.11.10"
+ resolved "https://registry.yarnpkg.com/dayjs/-/dayjs-1.11.10.tgz#68acea85317a6e164457d6d6947564029a6a16a0"
+ integrity sha512-vjAczensTgRcqDERK0SR2XMwsF/tSvnvlv6VcF2GIhg6Sx4yOIt/irsr1RDJsKiIyBzJDpCoXiWWq28MqH2cnQ==
+
dayjs@^1.11.1:
version "1.11.2"
resolved "https://registry.yarnpkg.com/dayjs/-/dayjs-1.11.2.tgz#fa0f5223ef0d6724b3d8327134890cfe3d72fbe5"
@@ -1606,6 +2244,14 @@ destroy@1.2.0:
resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.2.0.tgz#4803735509ad8be552934c67df614f94e66fa015"
integrity sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==
+did-jwt-vc@3.1.0:
+ version "3.1.0"
+ resolved "https://registry.yarnpkg.com/did-jwt-vc/-/did-jwt-vc-3.1.0.tgz#aa7877c4c1f26ba11883604ac0ece30ca4fe78a4"
+ integrity sha512-8N54No9RQpbDM4a/aMiGc/tZWubtH8bqi7DLnO6B62AdWaNVKeS9ddcuANztSS1yTuypyzlyeeEtCTqEzpYgjA==
+ dependencies:
+ did-jwt "^6.6.0"
+ did-resolver "^4.0.0"
+
did-jwt@5.7.0:
version "5.7.0"
resolved "https://registry.yarnpkg.com/did-jwt/-/did-jwt-5.7.0.tgz#7c5284daece5c86388db90e1274d0df63bb20f52"
@@ -1622,15 +2268,33 @@ did-jwt@5.7.0:
js-sha3 "^0.8.0"
uint8arrays "^3.0.0"
+did-jwt@^6.11.0, did-jwt@^6.6.0:
+ version "6.11.6"
+ resolved "https://registry.yarnpkg.com/did-jwt/-/did-jwt-6.11.6.tgz#3eeb30d6bd01f33bfa17089574915845802a7d44"
+ integrity sha512-OfbWknRxJuUqH6Lk0x+H1FsuelGugLbBDEwsoJnicFOntIG/A4y19fn0a8RLxaQbWQ5gXg0yDq5E2huSBiiXzw==
+ dependencies:
+ "@stablelib/ed25519" "^1.0.2"
+ "@stablelib/random" "^1.0.1"
+ "@stablelib/sha256" "^1.0.1"
+ "@stablelib/x25519" "^1.0.2"
+ "@stablelib/xchacha20poly1305" "^1.0.1"
+ bech32 "^2.0.0"
+ canonicalize "^2.0.0"
+ did-resolver "^4.0.0"
+ elliptic "^6.5.4"
+ js-sha3 "^0.8.0"
+ multiformats "^9.6.5"
+ uint8arrays "^3.0.0"
+
did-resolver@^3.1.0:
version "3.2.2"
resolved "https://registry.yarnpkg.com/did-resolver/-/did-resolver-3.2.2.tgz#6f4e252a810f785d1b28a10265fad6dffee25158"
integrity sha512-Eeo2F524VM5N3W4GwglZrnul2y6TLTwMQP3In62JdG34NZoqihYyOZLk+5wUW8sSgvIYIcJM8Dlt3xsdKZZ3tg==
did-resolver@^4.0.0, did-resolver@^4.0.1:
- version "4.0.1"
- resolved "https://registry.yarnpkg.com/did-resolver/-/did-resolver-4.0.1.tgz#11bb3f19ed1c8f53f4af4702912fa9f7852fc305"
- integrity sha512-eHs2VLKhcANmh08S87PKvOauIAmSOd7nb7AlhNxcvOyDAIGQY1UfbiqI1VOW5IDKvOO6aEWY+5edOt1qrCp1Eg==
+ version "4.1.0"
+ resolved "https://registry.yarnpkg.com/did-resolver/-/did-resolver-4.1.0.tgz#740852083c4fd5bf9729d528eca5d105aff45eb6"
+ integrity sha512-S6fWHvCXkZg2IhS4RcVHxwuyVejPR7c+a4Go0xbQ9ps5kILa8viiYQgrM4gfTyeTjJ0ekgJH9gk/BawTpmkbZA==
diff@5.0.0:
version "5.0.0"
@@ -1642,6 +2306,30 @@ diff@^3.1.0:
resolved "https://registry.yarnpkg.com/diff/-/diff-3.5.0.tgz#800c0dd1e0a8bfbc95835c202ad220fe317e5a12"
integrity sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==
+discord-api-types@^0.37.37:
+ version "0.37.38"
+ resolved "https://registry.yarnpkg.com/discord-api-types/-/discord-api-types-0.37.38.tgz#0599937f64aff63a2b534376563021f17537d166"
+ integrity sha512-p9dibYycLXY1FUM9bIuohYeHHwa/634394QE90n6Tlb6ID5HtCtXBPYY68oaOlFnlFLBJAOYATMwX5oiV+VqiA==
+
+discord.js@^14.9.0:
+ version "14.9.0"
+ resolved "https://registry.yarnpkg.com/discord.js/-/discord.js-14.9.0.tgz#61e26c4a7a27f91fd669b4c46892868420a5be43"
+ integrity sha512-ygGms5xP4hG+QrrY9k7d/OYCzMltSMtdl/2Snzq/nLCiZo+Sna91Ulv9l0+B5Jd/Czcq37B7wJAnmja7GOa+bg==
+ dependencies:
+ "@discordjs/builders" "^1.6.0"
+ "@discordjs/collection" "^1.5.0"
+ "@discordjs/formatters" "^0.3.0"
+ "@discordjs/rest" "^1.7.0"
+ "@discordjs/util" "^0.2.0"
+ "@sapphire/snowflake" "^3.4.0"
+ "@types/ws" "^8.5.4"
+ discord-api-types "^0.37.37"
+ fast-deep-equal "^3.1.3"
+ lodash.snakecase "^4.1.1"
+ tslib "^2.5.0"
+ undici "^5.21.0"
+ ws "^8.13.0"
+
dot-prop@^5.2.0:
version "5.3.0"
resolved "https://registry.yarnpkg.com/dot-prop/-/dot-prop-5.3.0.tgz#90ccce708cd9cd82cc4dc8c3ddd9abdd55b20e88"
@@ -1766,6 +2454,42 @@ etag@~1.8.1:
resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887"
integrity sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=
+ethers@5.5.1:
+ version "5.5.1"
+ resolved "https://registry.yarnpkg.com/ethers/-/ethers-5.5.1.tgz#d3259a95a42557844aa543906c537106c0406fbf"
+ integrity sha512-RodEvUFZI+EmFcE6bwkuJqpCYHazdzeR1nMzg+YWQSmQEsNtfl1KHGfp/FWZYl48bI/g7cgBeP2IlPthjiVngw==
+ dependencies:
+ "@ethersproject/abi" "5.5.0"
+ "@ethersproject/abstract-provider" "5.5.1"
+ "@ethersproject/abstract-signer" "5.5.0"
+ "@ethersproject/address" "5.5.0"
+ "@ethersproject/base64" "5.5.0"
+ "@ethersproject/basex" "5.5.0"
+ "@ethersproject/bignumber" "5.5.0"
+ "@ethersproject/bytes" "5.5.0"
+ "@ethersproject/constants" "5.5.0"
+ "@ethersproject/contracts" "5.5.0"
+ "@ethersproject/hash" "5.5.0"
+ "@ethersproject/hdnode" "5.5.0"
+ "@ethersproject/json-wallets" "5.5.0"
+ "@ethersproject/keccak256" "5.5.0"
+ "@ethersproject/logger" "5.5.0"
+ "@ethersproject/networks" "5.5.0"
+ "@ethersproject/pbkdf2" "5.5.0"
+ "@ethersproject/properties" "5.5.0"
+ "@ethersproject/providers" "5.5.0"
+ "@ethersproject/random" "5.5.0"
+ "@ethersproject/rlp" "5.5.0"
+ "@ethersproject/sha2" "5.5.0"
+ "@ethersproject/signing-key" "5.5.0"
+ "@ethersproject/solidity" "5.5.0"
+ "@ethersproject/strings" "5.5.0"
+ "@ethersproject/transactions" "5.5.0"
+ "@ethersproject/units" "5.5.0"
+ "@ethersproject/wallet" "5.5.0"
+ "@ethersproject/web" "5.5.0"
+ "@ethersproject/wordlists" "5.5.0"
+
ethers@^5.5.1, ethers@^5.7.0, ethers@^5.7.2:
version "5.7.2"
resolved "https://registry.yarnpkg.com/ethers/-/ethers-5.7.2.tgz#3a7deeabbb8c030d4126b24f84e525466145872e"
@@ -1884,7 +2608,7 @@ extsprintf@^1.2.0:
resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.4.1.tgz#8d172c064867f235c0c84a596806d279bf4bcc07"
integrity sha512-Wrk35e8ydCKDj/ArClo1VrPVmN8zph5V4AtHwIuHhvMXsKf73UT3BOD+azBIW+3wOJ4FhEH7zyaJCFvChjYvMA==
-fast-deep-equal@^3.1.1:
+fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3:
version "3.1.3"
resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525"
integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==
@@ -1912,6 +2636,15 @@ fetch-cookie@0.11.0:
dependencies:
tough-cookie "^2.3.3 || ^3.0.1 || ^4.0.0"
+file-type@^18.2.1:
+ version "18.2.1"
+ resolved "https://registry.yarnpkg.com/file-type/-/file-type-18.2.1.tgz#6d8f1fa3b079606f6ecf89483346f55fcd2c671b"
+ integrity sha512-Yw5MtnMv7vgD2/6Bjmmuegc8bQEVA9GmAyaR18bMYWKqsWDG9wgYZ1j4I6gNMF5Y5JBDcUcjRQqNQx7Y8uotcg==
+ dependencies:
+ readable-web-to-node-stream "^3.0.2"
+ strtok3 "^7.0.0"
+ token-types "^5.0.1"
+
fill-range@^7.0.1:
version "7.0.1"
resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40"
@@ -1955,7 +2688,12 @@ follow-redirects@^1.14.0:
resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.0.tgz#06441868281c86d0dda4ad8bdaead2d02dca89d4"
integrity sha512-aExlJShTV4qOUOL7yF1U5tvLCB0xQuudbf6toyYA0E/acBNw71mvjFTnLaRp50aQaYocMR0a/RMMBIHeZnGyjQ==
-follow-redirects@^1.14.4, follow-redirects@^1.14.9, follow-redirects@^1.15.0:
+follow-redirects@^1.14.4, follow-redirects@^1.14.9, follow-redirects@^1.15.4:
+ version "1.15.5"
+ resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.5.tgz#54d4d6d062c0fa7d9d17feb008461550e3ba8020"
+ integrity sha512-vSFWUON1B+yAw1VN4xMfxgn5fTUiaOzAJCKBwIIgT/+7CuGy9+r+5gITvP62j3RmaD5Ph65UaERdOSRGUzZtgw==
+
+follow-redirects@^1.15.0:
version "1.15.2"
resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.2.tgz#b460864144ba63f2681096f274c4e57026da2c13"
integrity sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==
@@ -2098,7 +2836,7 @@ glob@7.2.0:
once "^1.3.0"
path-is-absolute "^1.0.0"
-glob@^7.1.2, glob@^7.1.4:
+glob@^7.0.5, glob@^7.1.2, glob@^7.1.4:
version "7.2.3"
resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.3.tgz#b8df0fb802bbfa8e89bd1d938b4e16578ed44f2b"
integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==
@@ -2272,7 +3010,7 @@ ieee754@1.1.13:
resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.1.13.tgz#ec168558e95aa181fd87d37f55c32bbcb6708b84"
integrity sha512-4vf7I2LYV/HaWerSo3XmlMkp5eZ83i+/CDluXi/IGTs/O1sejBNhTtnxzmRZfvOUqj7lZjqHkeTvpgSFDlWZTg==
-ieee754@^1.1.13, ieee754@^1.1.4:
+ieee754@^1.1.13, ieee754@^1.1.4, ieee754@^1.2.1:
version "1.2.1"
resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352"
integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==
@@ -2676,6 +3414,11 @@ lodash.isplainobject@^4.0.6:
resolved "https://registry.yarnpkg.com/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz#7c526a52d89b45c45cc690b88163be0497f550cb"
integrity sha1-fFJqUtibRcRcxpC4gWO+BJf1UMs=
+lodash.snakecase@^4.1.1:
+ version "4.1.1"
+ resolved "https://registry.yarnpkg.com/lodash.snakecase/-/lodash.snakecase-4.1.1.tgz#39d714a35357147837aefd64b5dcbb16becd8f8d"
+ integrity sha512-QZ1d4xoBHYUeuouhEq3lk3Uq7ldgyFXGBhg04+oRLnIz8o9T65Eh+8YdroUwn846zchkA9yDsDl5CVVaV2nqYw==
+
lodash.union@^4.6.0:
version "4.6.0"
resolved "https://registry.yarnpkg.com/lodash.union/-/lodash.union-4.6.0.tgz#48bb5088409f16f1821666641c44dd1aaae3cd88"
@@ -2812,7 +3555,7 @@ minimatch@4.2.1:
dependencies:
brace-expansion "^1.1.7"
-minimatch@^3.0.4, minimatch@^3.1.1:
+minimatch@^3.0.3, minimatch@^3.0.4, minimatch@^3.1.1:
version "3.1.2"
resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b"
integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==
@@ -2836,6 +3579,11 @@ mkdirp@^0.5.1:
dependencies:
minimist "^1.2.6"
+mkdirp@^1.0.4:
+ version "1.0.4"
+ resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e"
+ integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==
+
mocha@^9.2.1:
version "9.2.2"
resolved "https://registry.yarnpkg.com/mocha/-/mocha-9.2.2.tgz#d70db46bdb93ca57402c809333e5a84977a88fb9"
@@ -2881,7 +3629,7 @@ ms@2.1.3, ms@^2.1.1:
resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2"
integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==
-multiformats@^9.4.2:
+multiformats@^9.4.2, multiformats@^9.6.5:
version "9.9.0"
resolved "https://registry.yarnpkg.com/multiformats/-/multiformats-9.9.0.tgz#c68354e7d21037a8f1f8833c8ccd68618e8f1d37"
integrity sha512-HoMUjhH9T8DDBNT+6xzkrd9ga/XiBI4xLr58LJACwK6G3HTOPeMz4nB4KJs33L2BelrIJa7P0VuNaVF3hMYfjg==
@@ -2940,6 +3688,14 @@ nodemon@^2.0.14:
undefsafe "^2.0.5"
update-notifier "^5.1.0"
+noms@0.0.0:
+ version "0.0.0"
+ resolved "https://registry.yarnpkg.com/noms/-/noms-0.0.0.tgz#da8ebd9f3af9d6760919b27d9cdc8092a7332859"
+ integrity sha512-lNDU9VJaOPxUmXcLb+HQFeUgQQPtMI24Gt6hgfuMHRJgMRHMF/qZ4HJD3GDru4sSw9IQl2jPjAYnQrdIeLbwow==
+ dependencies:
+ inherits "^2.0.1"
+ readable-stream "~1.0.31"
+
nopt@~1.0.10:
version "1.0.10"
resolved "https://registry.yarnpkg.com/nopt/-/nopt-1.0.10.tgz#6ddd21bd2a31417b92727dd585f8a6f37608ebee"
@@ -3047,7 +3803,7 @@ passport-facebook@^3.0.0:
dependencies:
passport-oauth2 "1.x.x"
-passport-oauth2@1.x.x, passport-oauth2@^1.x.x:
+passport-oauth2@1.x.x:
version "1.6.1"
resolved "https://registry.yarnpkg.com/passport-oauth2/-/passport-oauth2-1.6.1.tgz#c5aee8f849ce8bd436c7f81d904a3cd1666f181b"
integrity sha512-ZbV43Hq9d/SBSYQ22GOiglFsjsD1YY/qdiptA+8ej+9C1dL1TVB+mBE5kDH/D4AJo50+2i8f4bx0vg4/yDDZCQ==
@@ -3058,19 +3814,22 @@ passport-oauth2@1.x.x, passport-oauth2@^1.x.x:
uid2 "0.0.x"
utils-merge "1.x.x"
+passport-oauth2@^1.5.0, passport-oauth2@^1.6.1:
+ version "1.7.0"
+ resolved "https://registry.yarnpkg.com/passport-oauth2/-/passport-oauth2-1.7.0.tgz#5c4766c8531ac45ffe9ec2c09de9809e2c841fc4"
+ integrity sha512-j2gf34szdTF2Onw3+76alNnaAExlUmHvkc7cL+cmaS5NzHzDP/BvFHJruueQ9XAeNOdpI+CH+PWid8RA7KCwAQ==
+ dependencies:
+ base64url "3.x.x"
+ oauth "0.9.x"
+ passport-strategy "1.x.x"
+ uid2 "0.0.x"
+ utils-merge "1.x.x"
+
passport-strategy@1.x.x:
version "1.0.0"
resolved "https://registry.yarnpkg.com/passport-strategy/-/passport-strategy-1.0.0.tgz#b5539aa8fc225a3d1ad179476ddf236b440f52e4"
integrity sha1-tVOaqPwiWj0a0XlHbd8ja0QPUuQ=
-passport-twitter-oauth2.0@^1.1.0:
- version "1.1.0"
- resolved "https://registry.yarnpkg.com/passport-twitter-oauth2.0/-/passport-twitter-oauth2.0-1.1.0.tgz#22fcdbc98808ab15afef7be0061ac1be5ae9a9a4"
- integrity sha512-woH8mM6l/62zSumuSYQ6Tr3lu4R2PPauIibVeLtxBzlRxI6djlCEYd5tY/FXJDAxcFe7RcTmrEFjC4iFTa8f7w==
- dependencies:
- base64url "^3.0.1"
- passport-oauth2 "^1.x.x"
-
passport@^0.5.2:
version "0.5.3"
resolved "https://registry.yarnpkg.com/passport/-/passport-0.5.3.tgz#e69b46c9bb3290660bc2b3299330d78710b198cc"
@@ -3110,6 +3869,11 @@ pbkdf2@^3.1.2:
safe-buffer "^5.0.1"
sha.js "^2.4.8"
+peek-readable@^5.0.0:
+ version "5.0.0"
+ resolved "https://registry.yarnpkg.com/peek-readable/-/peek-readable-5.0.0.tgz#7ead2aff25dc40458c60347ea76cfdfd63efdfec"
+ integrity sha512-YtCKvLUOvwtMGmrniQPdO7MwPjgkFBtFIrmfSbYmYuq3tKDV/mcfAhBth1+C3ru7uXIZasc/pHnb+YDYNkkj4A==
+
peek-stream@^1.1.0:
version "1.1.3"
resolved "https://registry.yarnpkg.com/peek-stream/-/peek-stream-1.1.3.tgz#3b35d84b7ccbbd262fff31dc10da56856ead6d67"
@@ -3333,6 +4097,11 @@ punycode@1.3.2:
resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.3.2.tgz#9653a036fb7c1ee42342f2325cceefea3926c48d"
integrity sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=
+punycode@^1.4.1:
+ version "1.4.1"
+ resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e"
+ integrity sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ==
+
punycode@^2.1.0, punycode@^2.1.1:
version "2.1.1"
resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec"
@@ -3352,6 +4121,13 @@ qs@6.10.3, qs@^6.9.4:
dependencies:
side-channel "^1.0.4"
+qs@^6.11.2:
+ version "6.11.2"
+ resolved "https://registry.yarnpkg.com/qs/-/qs-6.11.2.tgz#64bea51f12c1f5da1bc01496f48ffcff7c69d7d9"
+ integrity sha512-tDNIz22aBzCDxLtVH++VnTfzxlfeK5CbqohpSqpJgj1Wg/cQbStNAz3NuqCs5vV+pjBsK4x4pN9HlVh7rcYRiA==
+ dependencies:
+ side-channel "^1.0.4"
+
qs@~6.5.2:
version "6.5.3"
resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.3.tgz#3aeeffc91967ef6e35c0e488ef46fb296ab76aad"
@@ -3414,10 +4190,10 @@ readable-stream@1.1.14:
isarray "0.0.1"
string_decoder "~0.10.x"
-"readable-stream@2 || 3", readable-stream@^3.1.1, readable-stream@^3.4.0, readable-stream@^3.6.0:
- version "3.6.0"
- resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.0.tgz#337bbda3adc0706bd3e024426a286d4b4b2c9198"
- integrity sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==
+"readable-stream@2 || 3", readable-stream@^3.6.0:
+ version "3.6.2"
+ resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.2.tgz#56a9b36ea965c00c5a93ef31eb111a0f11056967"
+ integrity sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==
dependencies:
inherits "^2.0.3"
string_decoder "^1.1.1"
@@ -3436,11 +4212,37 @@ readable-stream@^2.0.0, readable-stream@^2.0.5, readable-stream@^2.3.6, readable
string_decoder "~1.1.1"
util-deprecate "~1.0.1"
+readable-stream@^3.1.1, readable-stream@^3.4.0:
+ version "3.6.0"
+ resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.0.tgz#337bbda3adc0706bd3e024426a286d4b4b2c9198"
+ integrity sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==
+ dependencies:
+ inherits "^2.0.3"
+ string_decoder "^1.1.1"
+ util-deprecate "^1.0.1"
+
readable-stream@~0.0.2:
version "0.0.4"
resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-0.0.4.tgz#f32d76e3fb863344a548d79923007173665b3b8d"
integrity sha512-azrivNydKRYt7zwLV5wWUK7YzKTWs3q87xSmY6DlHapPrCvaT6ZrukvM5erV+yCSSPmZT8zkSdttOHQpWWm9zw==
+readable-stream@~1.0.31:
+ version "1.0.34"
+ resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.0.34.tgz#125820e34bc842d2f2aaafafe4c2916ee32c157c"
+ integrity sha512-ok1qVCJuRkNmvebYikljxJA/UEsKwLl2nI1OmaqAu4/UE+h0wKCHok4XkL/gvi39OacXvw59RJUOFUkDib2rHg==
+ dependencies:
+ core-util-is "~1.0.0"
+ inherits "~2.0.1"
+ isarray "0.0.1"
+ string_decoder "~0.10.x"
+
+readable-web-to-node-stream@^3.0.2:
+ version "3.0.2"
+ resolved "https://registry.yarnpkg.com/readable-web-to-node-stream/-/readable-web-to-node-stream-3.0.2.tgz#5d52bb5df7b54861fd48d015e93a2cb87b3ee0bb"
+ integrity sha512-ePeK6cc1EcKLEhJFt/AebMCLL+GgSKhuygrZ/GLaKZYEecIgIECf4UaUuaByiGtzckwR4ain9VzUh95T1exYGw==
+ dependencies:
+ readable-stream "^3.6.0"
+
readdirp@~3.6.0:
version "3.6.0"
resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.6.0.tgz#74a370bd857116e245b29cc97340cd431a02a6c7"
@@ -3702,6 +4504,11 @@ streamroller@^3.1.1:
debug "^4.3.4"
fs-extra "^10.1.0"
+streamsearch@^1.1.0:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/streamsearch/-/streamsearch-1.1.0.tgz#404dd1e2247ca94af554e841a8ef0eaa238da764"
+ integrity sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==
+
string-width@^4.0.0, string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.2:
version "4.2.3"
resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010"
@@ -3752,6 +4559,14 @@ strip-json-comments@~2.0.1:
resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a"
integrity sha1-PFMZQukIwml8DsNEhYwobHygpgo=
+strtok3@^7.0.0:
+ version "7.0.0"
+ resolved "https://registry.yarnpkg.com/strtok3/-/strtok3-7.0.0.tgz#868c428b4ade64a8fd8fee7364256001c1a4cbe5"
+ integrity sha512-pQ+V+nYQdC5H3Q7qBZAz/MO6lwGhoC2gOAjuouGf/VO0m7vQRh8QNMl2Uf6SwAtzZ9bOw3UIeBukEGNJl5dtXQ==
+ dependencies:
+ "@tokenizer/token" "^0.3.0"
+ peek-readable "^5.0.0"
+
supports-color@8.1.1:
version "8.1.1"
resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-8.1.1.tgz#cd6fc17e28500cff56c1b86c0a7fd4a54a73005c"
@@ -3802,7 +4617,7 @@ through2@3.0.2:
inherits "^2.0.4"
readable-stream "2 || 3"
-through2@^2.0.3:
+through2@^2.0.1, through2@^2.0.3:
version "2.0.5"
resolved "https://registry.yarnpkg.com/through2/-/through2-2.0.5.tgz#01c1e39eb31d07cb7d03a96a70823260b23132cd"
integrity sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==
@@ -3827,6 +4642,14 @@ toidentifier@1.0.1:
resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.1.tgz#3be34321a88a820ed1bd80dfaa33e479fbb8dd35"
integrity sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==
+token-types@^5.0.1:
+ version "5.0.1"
+ resolved "https://registry.yarnpkg.com/token-types/-/token-types-5.0.1.tgz#aa9d9e6b23c420a675e55413b180635b86a093b4"
+ integrity sha512-Y2fmSnZjQdDb9W4w4r1tswlMHylzWIeOKpx0aZH9BgGtACHhrk3OkT52AzwcuqTRBZtvvnTjDBh8eynMulu8Vg==
+ dependencies:
+ "@tokenizer/token" "^0.3.0"
+ ieee754 "^1.2.1"
+
touch@^3.1.0:
version "3.1.0"
resolved "https://registry.yarnpkg.com/touch/-/touch-3.1.0.tgz#fe365f5f75ec9ed4e56825e0bb76d24ab74af83b"
@@ -3835,9 +4658,9 @@ touch@^3.1.0:
nopt "~1.0.10"
"tough-cookie@^2.3.3 || ^3.0.1 || ^4.0.0":
- version "4.1.2"
- resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-4.1.2.tgz#e53e84b85f24e0b65dd526f46628db6c85f6b874"
- integrity sha512-G9fqXWoYFZgTc2z8Q5zaHy/vJMjm+WV0AkAeHxVCQiEB1b+dGvWzFW6QV07cY5jQ5gRkeid2qIkzkxUnmoQZUQ==
+ version "4.1.3"
+ resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-4.1.3.tgz#97b9adb0728b42280aa3d814b6b999b2ff0318bf"
+ integrity sha512-aX/y5pVRkfRnfmuX+OdbSdXvPe6ieKX/G2s7e98f4poJHnqH3281gDPm/metm6E/WRamfx7WC4HUqkWHfQHprw==
dependencies:
psl "^1.1.33"
punycode "^2.1.1"
@@ -3873,6 +4696,11 @@ transform-pouch@^2.0.0:
dependencies:
pouchdb-wrappers "^5.0.0"
+ts-mixer@^6.0.3:
+ version "6.0.3"
+ resolved "https://registry.yarnpkg.com/ts-mixer/-/ts-mixer-6.0.3.tgz#69bd50f406ff39daa369885b16c77a6194c7cae6"
+ integrity sha512-k43M7uCG1AkTyxgnmI5MPwKoUvS/bRvLvUb7+Pgpdlmok8AoqmUaZxUUw8zKM5B1lqZrt41GjYgnvAi0fppqgQ==
+
ts-mocha@^9.0.2:
version "9.0.2"
resolved "https://registry.yarnpkg.com/ts-mocha/-/ts-mocha-9.0.2.tgz#c1ef0248874d04a0f26dd9bd8d88e617a8d82ab1"
@@ -3906,6 +4734,11 @@ tsconfig-paths@^3.5.0:
minimist "^1.2.6"
strip-bom "^3.0.0"
+tslib@^2.5.0:
+ version "2.5.0"
+ resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.5.0.tgz#42bfed86f5787aeb41d031866c8f402429e0fddf"
+ integrity sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg==
+
tunnel-agent@^0.6.0:
version "0.6.0"
resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd"
@@ -3987,6 +4820,18 @@ undefsafe@^2.0.5:
resolved "https://registry.yarnpkg.com/undefsafe/-/undefsafe-2.0.5.tgz#38733b9327bdcd226db889fb723a6efd162e6e2c"
integrity sha512-WxONCrssBM8TSPRqN5EmsjVrsv4A8X12J4ArBiiayv3DyyG3ZlIg6yysuuSYdZsVz3TKcTg2fd//Ujd4CHV1iA==
+undici-types@~5.26.4:
+ version "5.26.5"
+ resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-5.26.5.tgz#bcd539893d00b56e964fd2657a4866b221a65617"
+ integrity sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==
+
+undici@^5.21.0:
+ version "5.21.2"
+ resolved "https://registry.yarnpkg.com/undici/-/undici-5.21.2.tgz#329f628aaea3f1539a28b9325dccc72097d29acd"
+ integrity sha512-f6pTQ9RF4DQtwoWSaC42P/NKlUjvezVvd9r155ohqkwFNRyBKM3f3pcty3ouusefNRyM25XhIQEbeQ46sZDJfQ==
+ dependencies:
+ busboy "^1.6.0"
+
unique-string@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/unique-string/-/unique-string-2.0.0.tgz#39c6451f81afb2749de2b233e3f7c5e8843bd89d"
@@ -4014,6 +4859,11 @@ unpipe@1.0.0, unpipe@~1.0.0:
resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec"
integrity sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=
+untildify@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/untildify/-/untildify-4.0.0.tgz#2bc947b953652487e4600949fb091e3ae8cd919b"
+ integrity sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw==
+
update-notifier@^5.1.0:
version "5.1.0"
resolved "https://registry.yarnpkg.com/update-notifier/-/update-notifier-5.1.0.tgz#4ab0d7c7f36a231dd7316cf7729313f0214d9ad9"
@@ -4064,6 +4914,14 @@ url@0.10.3:
punycode "1.3.2"
querystring "0.2.0"
+url@^0.11.0:
+ version "0.11.3"
+ resolved "https://registry.yarnpkg.com/url/-/url-0.11.3.tgz#6f495f4b935de40ce4a0a52faee8954244f3d3ad"
+ integrity sha512-6hxOLGfZASQK/cijlZnZJTq8OXAkt/3YGfQX45vvMYXpZoo8NdWZcY73K108Jf759lS1Bv/8wXnHDTSz17dSRw==
+ dependencies:
+ punycode "^1.4.1"
+ qs "^6.11.2"
+
util-deprecate@^1.0.1, util-deprecate@~1.0.1:
version "1.0.2"
resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf"
@@ -4176,6 +5034,11 @@ ws@7.4.6:
resolved "https://registry.yarnpkg.com/ws/-/ws-7.4.6.tgz#5654ca8ecdeee47c33a9a4bf6d28e2be2980377c"
integrity sha512-YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A==
+ws@^8.13.0:
+ version "8.13.0"
+ resolved "https://registry.yarnpkg.com/ws/-/ws-8.13.0.tgz#9a9fb92f93cf41512a0735c8f4dd09b8a1211cd0"
+ integrity sha512-x9vcZYTrFPC7aSIbj7sRCYo7L/Xb8Iy+pW0ng0wt2vCJv7M9HOMy0UoN3rr+IFC7hb7vXoqS+P9ktyLLLhO+LA==
+
xdg-basedir@^4.0.0:
version "4.0.0"
resolved "https://registry.yarnpkg.com/xdg-basedir/-/xdg-basedir-4.0.0.tgz#4bc8d9984403696225ef83a1573cbbcb4e79db13"
@@ -4229,7 +5092,7 @@ yargs-unparser@2.0.0:
flat "^5.0.2"
is-plain-obj "^2.1.0"
-yargs@16.2.0:
+yargs@16.2.0, yargs@^16.1.0:
version "16.2.0"
resolved "https://registry.yarnpkg.com/yargs/-/yargs-16.2.0.tgz#1c82bf0f6b6a66eafce7ef30e376f49a12477f66"
integrity sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==