diff --git a/package.json b/package.json index 218251424..955cf31a2 100644 --- a/package.json +++ b/package.json @@ -7,10 +7,10 @@ "author": "Sphereon ", "license": "Apache-2.0", "scripts": { - "preinstall": "npx only-allow pnpm && pnpm install -g @veramo/cli@4.2.0", + "preinstall": "npx only-allow pnpm", "build": "pnpm build:js && pnpm build:copyfiles && pnpm build:api && pnpm build:schema", "build:js": "pnpm -r --stream build", - "build:api": "pnpm --package=@veramo/cli -c dlx \"pnpm -r --stream extract-api\"", + "build:api": "pnpm -r --stream extract-api", "build:schema": "pnpm -r --stream generate-plugin-schema", "build:copyfiles": "pnpm -r --stream build:copyfiles", "bootstrap": "lerna bootstrap", @@ -66,7 +66,9 @@ "semantic-release": "^19.0.5", "ts-jest": "^27.1.5", "ts-node": "^10.9.1", - "typescript": "4.9.5" + "typescript": "4.9.5", + "did-jwt": "6.11.6", + "ethr-did": "2.3.9" }, "engines": { "node": ">= 16.0.0" @@ -104,6 +106,9 @@ "@sphereon/ssi-types": "workspace:*", "@sphereon/ssi-sdk.core": "workspace:*", "@noble/hashes": "1.2.0", + "did-jwt": "6.11.6", + "did-jwt-vc": "3.1.3", + "ethr-did": "2.3.9", "@mattrglobal/jsonld-signatures-bbs@1.1.0>jsonld": "4.0.1", "jsonld": "link:./node_modules/.pnpm/@digitalcredentials+jsonld@5.2.1/node_modules/@digitalcredentials/jsonld", "isomorphic-webcrypto": "link:./node_modules/@sphereon/isomorphic-webcrypto" diff --git a/packages/dev/CHANGELOG.md b/packages/dev/CHANGELOG.md new file mode 100644 index 000000000..2b6a424a3 --- /dev/null +++ b/packages/dev/CHANGELOG.md @@ -0,0 +1,35 @@ +# Change Log + +All notable changes to this project will be documented in this file. +See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. + +# [0.11.0](https://github.com/Sphereon-Opensource/SSI-SDK/compare/v0.10.1...v0.11.0) (2023-05-07) + +### Features + +- Create new agent-config module to replace the deps on Veramo cli, which pulls in everything ([673856f](https://github.com/Sphereon-Opensource/SSI-SDK/commit/673856f587885743300aaafea791e3696d9c456f)) + +# [0.10.0](https://github.com/Sphereon-Opensource/SSI-SDK/compare/v0.9.0...v0.10.0) (2023-04-30) + +### Features + +- Add better internal handling of JWT proof values used in JsonLD converted credentials ([90004c5](https://github.com/Sphereon-Opensource/SSI-SDK/commit/90004c5886cd3f645f979b5e81dfc03e3ff3b862)) + +# [0.9.0](https://github.com/Sphereon-Opensource/SSI-SDK/compare/v0.8.0...v0.9.0) (2023-03-09) + +### Features + +- Allow to relax JWT timing checks, where the JWT claim is slightly different from the VC claim. Used for issuance and expiration dates ([85bff6d](https://github.com/Sphereon-Opensource/SSI-SDK/commit/85bff6da21dea5d8f636ea1f55b41be00b18b002)) +- Jsonweb2020 sig support ([43a3adf](https://github.com/Sphereon-Opensource/SSI-SDK/commit/43a3adfbe683ee4040a293cc5b75d17a029d7c49)) + +# [0.8.0](https://github.com/Sphereon-Opensource/SSI-SDK/compare/v0.7.0...v0.8.0) (2022-09-03) + +**Note:** Version bump only for package @sphereon/ssi-sdk-connection-manager + +# [0.7.0](https://github.com/Sphereon-Opensource/SSI-SDK/compare/v0.6.0...v0.7.0) (2022-08-05) + +**Note:** Version bump only for package @sphereon/ssi-sdk-connection-manager + +# [0.6.0](https://github.com/Sphereon-Opensource/SSI-SDK/compare/v0.5.1...v0.6.0) (2022-07-01) + +**Note:** Version bump only for package @sphereon/ssi-sdk-connection-manager diff --git a/packages/dev/LICENSE b/packages/dev/LICENSE new file mode 100644 index 000000000..8a21446d8 --- /dev/null +++ b/packages/dev/LICENSE @@ -0,0 +1,201 @@ + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [2022] [Sphereon BV] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/packages/dev/README.md b/packages/dev/README.md new file mode 100644 index 000000000..a193140e5 --- /dev/null +++ b/packages/dev/README.md @@ -0,0 +1,21 @@ + +

+
+ Sphereon +
Agent Configuration +
+

+ +This plugin allows you to run/start an Agent from a yaml configuration. Best used in a NodeJS environment, but should work with React-Native in case path/fs are browserified or polyfilled + +## Installation + +```shell +yarn add @sphereon/ssi-sdk.agent-config +``` + +## Build + +```shell +yarn build +``` diff --git a/packages/dev/bin/sphereon.js b/packages/dev/bin/sphereon.js new file mode 100644 index 000000000..89382f88f --- /dev/null +++ b/packages/dev/bin/sphereon.js @@ -0,0 +1,3 @@ +#!/usr/bin/env node + +import '../dist/cli.js' diff --git a/packages/dev/lib/cli.ts b/packages/dev/lib/cli.ts new file mode 100644 index 000000000..1370423d5 --- /dev/null +++ b/packages/dev/lib/cli.ts @@ -0,0 +1,11 @@ +import inquirer from 'inquirer' +import inquirerAutoPrompt from 'inquirer-autocomplete-prompt' + +inquirer.registerPrompt('autocomplete', inquirerAutoPrompt) +import { sphereon } from './createCommand.js' + +if (!process.argv.slice(2).length) { + sphereon.outputHelp() +} else { + sphereon.parse(process.argv) +} diff --git a/packages/dev/lib/createCommand.ts b/packages/dev/lib/createCommand.ts new file mode 100644 index 000000000..983418f14 --- /dev/null +++ b/packages/dev/lib/createCommand.ts @@ -0,0 +1,10 @@ +import { Command } from 'commander' +import module from 'module' +import { dev } from './dev.js' + +const requireCjs = module.createRequire(import.meta.url) +const { version } = requireCjs('../package.json') + +const sphereon = new Command('sphereon').version(version, '-v, --version').addCommand(dev) + +export { sphereon } diff --git a/packages/dev/lib/dev.ts b/packages/dev/lib/dev.ts new file mode 100644 index 000000000..11724a115 --- /dev/null +++ b/packages/dev/lib/dev.ts @@ -0,0 +1,190 @@ +import { Extractor, ExtractorConfig, ExtractorResult } from '@microsoft/api-extractor' +import { ApiMethodSignature, ApiModel, ApiParameterListMixin, ApiReturnTypeMixin } from '@microsoft/api-extractor-model' +import { Command } from 'commander' +import { writeFileSync } from 'fs' +import { OpenAPIV3 } from 'openapi-types' +import { resolve } from 'path' +import * as TJS from 'ts-json-schema-generator' + +import module from 'module' + +const requireCjs = module.createRequire(import.meta.url) + +interface Method { + packageName: string + pluginInterfaceName: string + operationId: string + description?: string + parameters?: string + response: string +} + +const genericTypes = ['boolean', 'string', 'number', 'any', 'Array'] + +function createSchema(generator: TJS.SchemaGenerator, symbol: string) { + if (genericTypes.includes(symbol)) { + return { components: { schemas: {} } } + } + + let fixedSymbol = symbol.replace(/Array\<(.*)\>/gm, '$1') + + const schema = generator.createSchema(fixedSymbol) + + const newSchema = { + components: { + schemas: schema.definitions, + }, + } + + let schemaStr = JSON.stringify(newSchema, null, 2) + + schemaStr = schemaStr.replace(/#\/definitions\//gm, '#/components/schemas/') + schemaStr = schemaStr.replace(/\"patternProperties\":{([^:]*):{[^}]*}}/gm, '"pattern": $1') + schemaStr = schemaStr.replace(/Verifiable\<(.*)\>/gm, 'Verifiable-$1') + schemaStr = schemaStr.replace(/Where\<(.*)\>/gm, 'Where-$1') + schemaStr = schemaStr.replace(/Order\<(.*)\>/gm, 'Order-$1') + schemaStr = schemaStr.replace(/FindArgs\<(.*)\>/gm, 'FindArgs-$1') + schemaStr = schemaStr.replace(/https \:\/\//gm, 'https://') + // a bug in the schema generator stack mangles @link tags with text. + schemaStr = schemaStr.replace(/\{@link\s+([^|}]+?)\s([^|}]+)\s}/g, '{@link $1 | $2 }') + return JSON.parse(schemaStr) +} + +function getReference(response: string): OpenAPIV3.ReferenceObject | OpenAPIV3.SchemaObject { + if (!response) { + return { type: 'object' } + } + + if (response.slice(0, 6) === 'Array<') { + const symbol = response.replace('Array<', '').replace('>', '') as 'string' | 'number' | 'boolean' | 'object' | 'integer' + return { + type: 'array', + items: genericTypes.includes(symbol) ? { type: symbol } : { $ref: '#/components/schemas/' + symbol }, + } + } + if (response === 'any') { + return { type: 'object' } + } + + if (['string', 'number', 'boolean', 'object', 'integer'].includes(response)) { + // @ts-ignore + return { type: response } + } else { + return { $ref: '#/components/schemas/' + response } + } +} + +const dev = new Command('dev').description('Plugin developer tools') + +dev + .command('generate-plugin-schema') + .description('generate plugin schema') + .option('-c, --extractorConfig ', 'API Extractor config file', './api-extractor.json') + .option('-p, --packageConfig ', 'package.json file containing a Veramo plugin interface config', './package.json') + + .action(async (options) => { + const apiExtractorJsonPath: string = resolve(options.extractorConfig) + const extractorConfig: ExtractorConfig = ExtractorConfig.loadFileAndPrepare(apiExtractorJsonPath) + + const extractorResult: ExtractorResult = Extractor.invoke(extractorConfig, { + localBuild: true, + showVerboseMessages: true, + }) + + if (!extractorResult.succeeded) { + console.error(`API Extractor completed with ${extractorResult.errorCount} errors` + ` and ${extractorResult.warningCount} warnings`) + process.exitCode = 1 + } + + const packageConfig = requireCjs(resolve(options.packageConfig)) + const interfaces: any = {} + + for (const pluginInterfaceName in packageConfig?.veramo?.pluginInterfaces) { + const entryFile = packageConfig.veramo.pluginInterfaces[pluginInterfaceName] + const api = { + components: { + schemas: {}, + methods: {}, + }, + } + + const generator = TJS.createGenerator({ + path: resolve(entryFile), + encodeRefs: false, + additionalProperties: true, + skipTypeCheck: true, + }) + + const apiModel: ApiModel = new ApiModel() + const apiPackage = apiModel.loadPackage(extractorConfig.apiJsonFilePath) + + const entry = apiPackage.entryPoints[0] + + const pluginInterface = entry.findMembersByName(pluginInterfaceName)[0] + + for (const member of pluginInterface.members) { + const method: Partial = {} + method.pluginInterfaceName = pluginInterfaceName + method.operationId = member.displayName + // console.log(member) + method.parameters = (member as ApiParameterListMixin).parameters[0]?.parameterTypeExcerpt?.text + method.response = (member as ApiReturnTypeMixin).returnTypeExcerpt.text.replace('Promise<', '').replace('>', '') + + const methodSignature = member as ApiMethodSignature + method.description = methodSignature.tsdocComment?.summarySection + ?.getChildNodes()[0] + // @ts-ignore + ?.getChildNodes()[0]?.text + + method.description = method.description || '' + + if (method.parameters) { + // @ts-ignore + api.components.schemas = { + // @ts-ignore + ...api.components.schemas, + ...createSchema(generator, method.parameters).components.schemas, + } + } + + // @ts-ignore + api.components.schemas = { + // @ts-ignore + ...api.components.schemas, + ...createSchema(generator, method.response).components.schemas, + } + + // @ts-ignore + api.components.methods[method.operationId] = { + description: method.description, + arguments: getReference(method.parameters), + returnType: getReference(method.response), + } + } + + interfaces[pluginInterfaceName] = api + } + + writeFileSync(resolve('./src/plugin.schema.json'), JSON.stringify(interfaces, null, 2)) + }) + +dev + .command('extract-api') + .description('Extract API') + .option('-c, --extractorConfig ', 'API Extractor config file', './api-extractor.json') + .action(async (options) => { + const apiExtractorJsonPath: string = resolve(options.extractorConfig) + const extractorConfig: ExtractorConfig = ExtractorConfig.loadFileAndPrepare(apiExtractorJsonPath) + + const extractorResult: ExtractorResult = Extractor.invoke(extractorConfig, { + localBuild: true, + showVerboseMessages: true, + }) + + if (!extractorResult.succeeded) { + console.error(`API Extractor completed with ${extractorResult.errorCount} errors` + ` and ${extractorResult.warningCount} warnings`) + process.exitCode = 1 + } + }) + +export { dev } diff --git a/packages/dev/lib/index.ts b/packages/dev/lib/index.ts new file mode 100644 index 000000000..583ebfd9e --- /dev/null +++ b/packages/dev/lib/index.ts @@ -0,0 +1,6 @@ +/** + * @public + */ +export * from './createCommand' +export * from './cli' +export * from './dev' diff --git a/packages/dev/package.json b/packages/dev/package.json new file mode 100644 index 000000000..f18bfe175 --- /dev/null +++ b/packages/dev/package.json @@ -0,0 +1,68 @@ +{ + "name": "@sphereon/ssi-sdk.dev", + "version": "0.11.0", + "source": "lib/index.ts", + "exports": { + ".": { + "types": "./dist/cli.d.ts", + "import": "./dist/cli.js" + }, + "./package.json": "./package.json" + }, + "main": "dist/cli.js", + "types": "dist/cli.d.ts", + "bin": { + "sphereon": "./bin/sphereon.js" + }, + "scripts": { + "build": "tsc", + "build:copyfilesdis": "copyfiles package.json ./dist/", + "build:clean": "tsc --build --clean && tsc --build" + }, + "dependencies": { + "copyfiles": "^2.4.1", + "ts-json-schema-generator": "^1.2.0", + "@microsoft/api-extractor": "^7.33.8", + "@microsoft/api-extractor-model": "^7.25.3", + "commander": "^10.0.0", + "jsonpointer": "^5.0.1", + "url-parse": "^1.5.10", + "inquirer": "^9.1.4", + "inquirer-autocomplete-prompt": "^3.0.0", + "json-schema": "^0.4.0", + "json5": "^2.2.0", + "oas-resolver": "^2.5.3", + "openapi-types": "^12.0.2", + "yaml": "^2.2.2" + }, + "devDependencies": { + "@types/inquirer": "^9.0.3", + "@types/inquirer-autocomplete-prompt": "^3.0.0", + "@types/url-parse": "^1.4.8", + "typescript": "4.9.5" + }, + "files": [ + "dist/**/*", + "bin/**/*", + "lib/**/*", + "package.json", + "README.md", + "LICENSE" + ], + "publishConfig": { + "access": "public" + }, + "repository": "git@github.com:Sphereon-Opensource/SSI-SDK.git", + "author": "Sphereon ", + "license": "Apache-2.0", + "keywords": [ + "Sphereon", + "SSI", + "Agent" + ], + "type": "module", + "moduleDirectories": [ + "node_modules", + "lib" + ] +} diff --git a/packages/dev/tsconfig.json b/packages/dev/tsconfig.json new file mode 100644 index 000000000..f83dd3ae9 --- /dev/null +++ b/packages/dev/tsconfig.json @@ -0,0 +1,12 @@ +{ + "extends": "../tsconfig-base.json", + "compilerOptions": { + "target": "ES2020", + "module": "ES2020", + "rootDir": "lib", + "outDir": "dist", + "declarationDir": "dist", + "strictPropertyInitialization": false + }, + "include": ["lib/**/*"] +} diff --git a/packages/kv-store/package.json b/packages/kv-store/package.json index 60452e53d..632d15861 100644 --- a/packages/kv-store/package.json +++ b/packages/kv-store/package.json @@ -17,7 +17,7 @@ "uint8arrays": "^3.1.1" }, "devDependencies": { - "@veramo/cli": "4.2.0", + "@sphereon/ssi-sdk.agent-config": "workspace:*", "@types/json-buffer": "^3.0.0", "@types/debug": "^4.1.7", "keyv": "^4.5.2", diff --git a/packages/kv-store/tsconfig.json b/packages/kv-store/tsconfig.json index 5feeb67a7..4122b736d 100644 --- a/packages/kv-store/tsconfig.json +++ b/packages/kv-store/tsconfig.json @@ -5,5 +5,10 @@ "rootDir": "src", "outDir": "dist", "declarationDir": "dist" - } + }, + "references": [ + { + "path": "../agent-config" + } + ] } diff --git a/packages/ms-request-api/package.json b/packages/ms-request-api/package.json index fd177ec47..61c676af5 100644 --- a/packages/ms-request-api/package.json +++ b/packages/ms-request-api/package.json @@ -12,7 +12,7 @@ "scripts": { "build": "tsc --build", "build:clean": "tsc --build --clean && tsc --build", - "generate-plugin-schema": "veramo dev generate-plugin-schema" + "generate-plugin-schema": "ts-node ../../packages/dev/bin/sphereon.js dev generate-plugin-schema" }, "dependencies": { "@sphereon/ssi-sdk.ms-authenticator": "workspace:*", diff --git a/packages/siopv2-oid4vp-rp-rest-client/package.json b/packages/siopv2-oid4vp-rp-rest-client/package.json index 61a083afc..18adff7b4 100644 --- a/packages/siopv2-oid4vp-rp-rest-client/package.json +++ b/packages/siopv2-oid4vp-rp-rest-client/package.json @@ -12,8 +12,7 @@ }, "scripts": { "build": "tsc --build", - "build:clean": "tsc --build --clean && tsc --build", - "generate-plugin-schema": "veramo dev generate-plugin-schema" + "build:clean": "tsc --build --clean && tsc --build" }, "dependencies": { "@sphereon/ssi-sdk.siopv2-oid4vp-common": "workspace:*", diff --git a/packages/tsconfig.json b/packages/tsconfig.json index 404803d62..acd31eff3 100644 --- a/packages/tsconfig.json +++ b/packages/tsconfig.json @@ -1,9 +1,11 @@ { "files": [], "references": [ + { "path": "dev" }, { "path": "agent-config" }, { "path": "ssi-types" }, { "path": "ssi-sdk-core" }, + { "path": "w3c-vc-api" }, { "path": "ms-authenticator" }, { "path": "ms-request-api" }, { "path": "vc-handler-ld-local" }, diff --git a/packages/vc-handler-ld-local/package.json b/packages/vc-handler-ld-local/package.json index e0ac265ae..d3017fccc 100644 --- a/packages/vc-handler-ld-local/package.json +++ b/packages/vc-handler-ld-local/package.json @@ -12,7 +12,7 @@ "scripts": { "build": "tsc", "build:clean": "tsc --build --clean && tsc --build", - "generate-plugin-schema": "veramo dev generate-plugin-schema" + "generate-plugin-schema": "ts-node ../../packages/dev/bin/sphereon.js dev generate-plugin-schema" }, "dependencies": { "@digitalcredentials/ed25519-signature-2020": "~3.0.2", @@ -36,6 +36,7 @@ "@transmute/security-context": "0.7.0-unstable.80", "@transmute/vc-status-rl-2020": "0.7.0-unstable.80", "@transmute/web-crypto-key-pair": "0.7.0-unstable.80", + "@transmute/json-web-signature": "0.7.0-unstable.80", "@veramo/core": "4.2.0", "@veramo/utils": "4.2.0", "credentials-context": "^2.0.0", @@ -53,7 +54,6 @@ "@sphereon/ssi-sdk-ext.key-manager": "^0.12.0", "@sphereon/ssi-sdk-ext.kms-local": "^0.12.0", "@sphereon/did-uni-client": "^0.6.0", - "@sphereon/ssi-sdk.agent-config": "^0.11.0", "@transmute/lds-ecdsa-secp256k1-recovery2020": "^0.0.7", "@types/nock": "^11.1.0", "@types/node": "18.15.3", @@ -65,12 +65,14 @@ "@veramo/data-store": "4.2.0", "@veramo/did-manager": "4.2.0", "@veramo/did-provider-key": "4.2.0", + "@veramo/did-provider-web": "4.2.0", "@veramo/did-resolver": "4.2.0", "@veramo/key-manager": "4.2.0", "@veramo/kms-local": "4.2.0", "@veramo/remote-client": "4.2.0", "@veramo/remote-server": "4.2.0", "@veramo/utils": "4.2.0", + "web-did-resolver": "^2.0.24", "copyfiles": "^2.4.1", "did-resolver": "^4.1.0", "nock": "^13.2.1", diff --git a/packages/vc-handler-ld-local/src/__tests__/fixtures/gx.ts b/packages/vc-handler-ld-local/src/__tests__/fixtures/gx.ts new file mode 100644 index 000000000..860d1a97d --- /dev/null +++ b/packages/vc-handler-ld-local/src/__tests__/fixtures/gx.ts @@ -0,0 +1,90 @@ +export const GX_CS_DID_WEB = 'did:web:78b7-2001-1c04-2b10-ee00-7bb-e5a9-24c7-7e84.ngrok-free.app' +export const GX_CS_DID_DOC = { + '@context': 'https://w3id.org/did/v1', + id: 'did:web:78b7-2001-1c04-2b10-ee00-7bb-e5a9-24c7-7e84.ngrok-free.app', + verificationMethod: [ + { + id: 'did:web:78b7-2001-1c04-2b10-ee00-7bb-e5a9-24c7-7e84.ngrok-free.app#JWK2020-RSA', + type: 'JsonWebKey2020', + controller: 'did:web:78b7-2001-1c04-2b10-ee00-7bb-e5a9-24c7-7e84.ngrok-free.app', + publicKeyJwk: { + kty: 'RSA', + n: 'uUGlbA84qYjmawZ1r9j1rUDAhkrsxdvS7rE7AZIIj41-kNpZw3UU9gPgcRwZIA7TdXewDmU5sLbOXwmNu4WuTlaXBkJAFZ390E5S_fvCBxthE8nMjjyFV8Juj_kZ__00WAHSkZxmsGs6en1AUHhRH74nX8b55Eh5UvysYbP8C6KJlyb8TUpJcOlfLT-RE-1byxgDR4Vnz3r-2kPYxdViUButOGWqKSjSIJtYZi5_kYAQC5zweUBlWeyZ3W5Ai3zRX9MC5_Y6B9fGCZu0__5y6ORCoTOU_hG2U3y7zyMCGIObjCsURhmRSwi30vyE3oIMtBV7YVl4KmrSH2jEg4iaeQ', + e: 'AQAB', + x5u: 'https://78b7-2001-1c04-2b10-ee00-7bb-e5a9-24c7-7e84.ngrok-free.app/.well-known/fullchain.pem', + }, + }, + ], + authentication: ['did:web:78b7-2001-1c04-2b10-ee00-7bb-e5a9-24c7-7e84.ngrok-free.app#JWK2020-RSA'], + assertionMethod: ['did:web:78b7-2001-1c04-2b10-ee00-7bb-e5a9-24c7-7e84.ngrok-free.app#JWK2020-RSA'], + service: [], +} + +export const GX_PARTICIPANT_VC = { + id: 'urn:uuid:ee98b05d-094b-440b-8ab3-5c7836128994', + type: ['VerifiablePresentation'], + '@context': ['https://www.w3.org/2018/credentials/v1'], + verifiableCredential: [ + { + '@context': [ + 'https://www.w3.org/2018/credentials/v1', + 'https://registry.lab.gaia-x.eu/development/api/trusted-shape-registry/v1/shapes/jsonld/trustframework#', + ], + type: ['VerifiableCredential'], + id: 'urn:uuid:554db947-e001-431c-ae55-22a781e1f928', + issuer: 'did:web:78b7-2001-1c04-2b10-ee00-7bb-e5a9-24c7-7e84.ngrok-free.app', + issuanceDate: '2023-05-26T14:12:00.887Z', + credentialSubject: { + id: 'did:web:78b7-2001-1c04-2b10-ee00-7bb-e5a9-24c7-7e84.ngrok-free.app', + type: 'gx:LegalParticipant', + 'gx:legalName': 'Gaia-X European Association for Data and Cloud AISBL', + 'gx:legalRegistrationNumber': { + 'gx:vatID': 'BE0762747721', + }, + 'gx:headquarterAddress': { + 'gx:countrySubdivisionCode': 'BE-BRU', + }, + 'gx:legalAddress': { + 'gx:countrySubdivisionCode': 'BE-BRU', + }, + 'gx-terms-and-conditions:gaiaxTermsAndConditions': '70c1d713215f95191a11d38fe2341faed27d19e083917bc8732ca4fea4976700', + }, + proof: { + type: 'JsonWebSignature2020', + created: '2023-05-26T14:13:44Z', + verificationMethod: 'did:web:78b7-2001-1c04-2b10-ee00-7bb-e5a9-24c7-7e84.ngrok-free.app#JWK2020-RSA', + proofPurpose: 'assertionMethod', + jws: 'eyJhbGciOiJSUzI1NiIsImI2NCI6ZmFsc2UsImNyaXQiOlsiYjY0Il19..l6SL95yETjLfYUAQ0dZ3sDmUFvAlG8-ArP8WQKSYBq8Ef3Ute5jVEMSr6XmF5ZT1cuyEWca3YbOcMS9g16cA0BQ29_rRYjoZOpYFPAQUzB17FebiQuhc1MTMr4lJ8mpF5C2UVYoIK-RDFGAyk1J0gyDaSGivLG2DROK2YAHMcnlkSr3IjCpemMF0uWffWIvVh3lpQ_k4cFBdZo-ehvcvENgcYSEEV_5-tFBKAXtjXJMAiZz1dyamkQShdCUnF2RmHLsLpneO50co1vYTuTg5fxrNPpkEJX5gphP9jGSmCZ2Pq-TjKQRhllmkwWY9uyEa27tHlnUeaOP2kznXQYj_2A', + }, + }, + ], + holder: 'did:web:78b7-2001-1c04-2b10-ee00-7bb-e5a9-24c7-7e84.ngrok-free.app', + proof: { + type: 'JsonWebSignature2020', + created: '2023-05-26T14:16:39Z', + verificationMethod: 'did:web:78b7-2001-1c04-2b10-ee00-7bb-e5a9-24c7-7e84.ngrok-free.app#JWK2020-RSA', + proofPurpose: 'assertionMethod', + jws: 'eyJhbGciOiJSUzI1NiIsImI2NCI6ZmFsc2UsImNyaXQiOlsiYjY0Il19..rzkVRsImHlHpfUPm4yZKiYOZhE370eoa_1CnOkcb4E4YeU0Hhv8SzPD8zBRWmfsiV7BOoBGT0MEONuuNgnPQCd9iWPmDyy4Y3w7fkrrX9pxolryhwXpDMwgoq3i1AH4mZrb7jD1JFN_DrJNv93U7yYVSSvt4hSMEvDomLNbj13rLHsY-ab7FkVdNM0nsBy4OocP6izMigenkWf_Sky0TFo8PAuR_OXl7F0ngzKiZ_KCSJPoFyotaUb6ZARAGDo_ZZgRh5dNAOcwA3KdWek-6mo8geQDLBMBGs1E8VzPFB8ghbZHrOfvWLG54ptGJhEYf3eybTdKUK7h58IVCVGbakg', + }, +} +export const GX_COMPLIANCE_VC = { + '@context': [ + 'https://www.w3.org/2018/credentials/v1', + 'https://registry.lab.gaia-x.eu//development/api/trusted-shape-registry/v1/shapes/jsonld/trustframework#', + ], + type: ['VerifiableCredential'], + id: 'https://storage.gaia-x.eu/credential-offers/b3e0a068-4bf8-4796-932e-2fa83043e203', + issuer: 'did:web:78b7-2001-1c04-2b10-ee00-7bb-e5a9-24c7-7e84.ngrok-free.app', + issuanceDate: '2023-05-26T16:41:48.102Z', + expirationDate: '2023-08-24T16:41:48.102Z', + credentialSubject: { + id: 'did:web:78b7-2001-1c04-2b10-ee00-7bb-e5a9-24c7-7e84.ngrok-free.app', + }, + proof: { + type: 'JsonWebSignature2020', + created: '2023-05-26T16:41:48.737Z', + proofPurpose: 'assertionMethod', + jws: 'eyJhbGciOiJQUzI1NiIsImI2NCI6ZmFsc2UsImNyaXQiOlsiYjY0Il19..j8-pWmt0XJf9bfbRsat8Uwy-wN9Q2jY6DS4LNEwiFQSOFekJBXJLikF0P8y_dST7oZohZNjPdv3WCehCK5D6B2Y_LpNMWAYZgrwFjoIMH4otumme_N-EA3mxAhfh4QXRbKRCGi1tJrd1Mdv3PFpwjhUqwNWGdfQK9OAvpjPgVqtwX7H9LyZ_gprOkZSrZN8K0oztC7JBQ35P4iAVdpAMsWytlnVR5o2O-0vV4BbnxGPPuvWyCGjvmTLNcTO9eTDWgimnI2YABPJ_6KpJye8zFOVYqowLxOdoeIPzmXjvvQsb40FIvSi4w2OWdsHLpmsntvIjf_N3LrGhS5wZoLrV8A', + verificationMethod: 'did:web:78b7-2001-1c04-2b10-ee00-7bb-e5a9-24c7-7e84.ngrok-free.app#JWK2020-RSA', + }, +} diff --git a/packages/vc-handler-ld-local/src/__tests__/interop/gx.test.ts b/packages/vc-handler-ld-local/src/__tests__/interop/gx.test.ts new file mode 100644 index 000000000..b833e76e8 --- /dev/null +++ b/packages/vc-handler-ld-local/src/__tests__/interop/gx.test.ts @@ -0,0 +1,76 @@ +import { createAgent, IDIDManager, IKeyManager, IResolver, TAgent, W3CVerifiableCredential } from '@veramo/core' +import { CredentialPlugin } from '@veramo/credential-w3c' +import { DIDManager, MemoryDIDStore } from '@veramo/did-manager' +import { WebDIDProvider } from '@veramo/did-provider-web' +import { DIDResolverPlugin } from '@veramo/did-resolver' +import { KeyManager, MemoryKeyStore, MemoryPrivateKeyStore } from '@veramo/key-manager' +import { KeyManagementSystem } from '@veramo/kms-local' +import { Resolver } from 'did-resolver' + +// @ts-ignore +import nock from 'nock' +import { getResolver } from 'web-did-resolver' +import { CredentialHandlerLDLocal } from '../../agent' +import { LdDefaultContexts } from '../../ld-default-contexts' +import { SphereonJsonWebSignature2020 } from '../../suites' +import { ICredentialHandlerLDLocal, MethodNames } from '../../types' + +import { GX_COMPLIANCE_VC } from '../fixtures/gx' + +jest.setTimeout(100000) + +describe('Gaia-X issued VC', () => { + let agent: TAgent + + const webResolver = getResolver() + + // jest.setTimeout(1000000) + beforeAll(async () => { + agent = createAgent({ + plugins: [ + new KeyManager({ + store: new MemoryKeyStore(), + kms: { + local: new KeyManagementSystem(new MemoryPrivateKeyStore()), + }, + }), + new DIDManager({ + providers: { + 'did:web': new WebDIDProvider({ defaultKms: 'local' }), + }, + store: new MemoryDIDStore(), + defaultProvider: 'did:web', + }), + new DIDResolverPlugin({ + resolver: new Resolver({ + ...webResolver, + }), + }), + new CredentialPlugin(), + new CredentialHandlerLDLocal({ + contextMaps: [LdDefaultContexts], + suites: [new SphereonJsonWebSignature2020()], + bindingOverrides: new Map([ + // Bindings to test overrides of credential-ld plugin methods + ['createVerifiableCredentialLD', MethodNames.createVerifiableCredentialLDLocal], + ['createVerifiablePresentationLD', MethodNames.createVerifiablePresentationLDLocal], + // We test the verify methods by using the LDLocal versions directly in the tests + ]), + }), + ], + }) + }) + + it('should be verified with PS256 sig', async () => { + const verifiableCredential: W3CVerifiableCredential = GX_COMPLIANCE_VC + expect(verifiableCredential).toBeDefined() + // console.log(verifiableCredential) + + const verifiedCredential = await agent.verifyCredentialLDLocal({ + credential: verifiableCredential, + fetchRemoteContexts: true, + }) + + expect(verifiedCredential).toEqual({}) + }) +}) diff --git a/packages/vc-handler-ld-local/src/index.ts b/packages/vc-handler-ld-local/src/index.ts index 552b812ad..eb08a5e8f 100644 --- a/packages/vc-handler-ld-local/src/index.ts +++ b/packages/vc-handler-ld-local/src/index.ts @@ -9,5 +9,6 @@ export * from './ld-context-loader' export * from './ld-suite-loader' export * from './ld-default-contexts' export * from './ld-document-loader' +export * from './ld-suites' export * from './agent' export * from './types' diff --git a/packages/vc-handler-ld-local/src/ld-credential-module.ts b/packages/vc-handler-ld-local/src/ld-credential-module.ts index 217ba7e00..98a20e685 100644 --- a/packages/vc-handler-ld-local/src/ld-credential-module.ts +++ b/packages/vc-handler-ld-local/src/ld-credential-module.ts @@ -3,30 +3,21 @@ import * as vc from '@digitalcredentials/vc' import { CredentialIssuancePurpose } from '@digitalcredentials/vc' import { BbsBlsSignature2020 } from '@mattrglobal/jsonld-signatures-bbs' import { VerifiableCredentialSP, VerifiablePresentationSP } from '@sphereon/ssi-sdk.core' -import { events } from './types' -import { - CredentialPayload, - IAgentContext, - IKey, - IKeyManager, - IResolver, - PresentationPayload, - VerifiableCredential, - VerifiablePresentation, -} from '@veramo/core' +import { IVerifyResult } from '@sphereon/ssi-types' +import { CredentialPayload, IAgentContext, IKey, IResolver, PresentationPayload, VerifiableCredential, VerifiablePresentation } from '@veramo/core' import Debug from 'debug' import { LdContextLoader } from './ld-context-loader' import { LdDocumentLoader } from './ld-document-loader' import { LdSuiteLoader } from './ld-suite-loader' -import { IVerifyResult } from '@sphereon/ssi-types' +import { RequiredAgentMethods } from './ld-suites' +import { events } from './types' // import jsigs from '@digitalcredentials/jsonld-signatures' //Support for Typescript added in version 9.0.0 +// eslint-disable-next-line @typescript-eslint/no-var-requires const jsigs = require('jsonld-signatures') -export type RequiredAgentMethods = IResolver & Pick - const ProofPurpose = purposes.ProofPurpose const AssertionProofPurpose = purposes.AssertionProofPurpose const AuthenticationProofPurpose = purposes.AuthenticationProofPurpose diff --git a/packages/vc-handler-ld-local/src/suites/JsonWebSignature2020.ts b/packages/vc-handler-ld-local/src/suites/JsonWebSignature2020.ts index 163adcd75..4effc05f8 100644 --- a/packages/vc-handler-ld-local/src/suites/JsonWebSignature2020.ts +++ b/packages/vc-handler-ld-local/src/suites/JsonWebSignature2020.ts @@ -1,7 +1,10 @@ +import { IProof, IVerifiableCredential } from '@sphereon/ssi-types' import { CredentialPayload, DIDDocument, IAgentContext, IKey, PresentationPayload, TKeyType, VerifiableCredential } from '@veramo/core' -import { RequiredAgentMethods, SphereonLdSignature } from '../ld-suites' -import * as u8a from 'uint8arrays' import { asArray, encodeJoseBlob } from '@veramo/utils' +import * as u8a from 'uint8arrays' + +import { RequiredAgentMethods, SphereonLdSignature } from '../ld-suites' + import { JsonWebKey } from './impl/JsonWebKeyWithRSASupport' import { JsonWebSignature } from './impl/JsonWebSignatureWithRSASupport' @@ -23,9 +26,9 @@ export class SphereonJsonWebSignature2020 extends SphereonLdSignature { const controller = issuerDid // DID Key ID - let id = verificationMethodId + const id = verificationMethodId - let alg = 'RS256' + let alg = 'PS256' if (key.type === 'Ed25519' || key.type === 'X25519') { alg = 'EdDSA' } else if (key.type === 'Secp256k1') { @@ -115,12 +118,32 @@ export class SphereonJsonWebSignature2020 extends SphereonLdSignature { return 'https://w3id.org/security/suites/jws-2020/v1' } - preVerificationCredModification(credential: VerifiableCredential): void { + preVerificationCredModification(origCredential: VerifiableCredential): void { + const credential = origCredential as IVerifiableCredential // The original credential interface does not account for multiple proofs const vcJson = JSON.stringify(credential) - if (vcJson.indexOf('JsonWebKey2020') > -1) { + if (vcJson.includes('JsonWebSignature2020')) { if (vcJson.indexOf(this.getContext()) === -1) { credential['@context'] = [...asArray(credential['@context'] || []), this.getContext()] + /* if (Array.isArray(credential.proof)) { + credential.proof.forEach(proof => this.addProofContextIfNeeded(proof)) + } else { + this.addProofContextIfNeeded(credential.proof) + }*/ + } + } + } + + addProofContextIfNeeded(proof: IProof) { + if (proof['@context']) { + if (!proof['@context'].includes(this.getContext())) { + if (typeof proof['@context'] === 'string') { + proof['@context'] = [proof['@context'], this.getContext()] + } else { + proof['@context'].push(this.getContext()) + } } + } else { + proof['@context'] = this.getContext() } } } diff --git a/packages/vc-handler-ld-local/src/suites/impl/JsonWebKeyWithRSASupport.ts b/packages/vc-handler-ld-local/src/suites/impl/JsonWebKeyWithRSASupport.ts index 18eff47f4..911670ea2 100644 --- a/packages/vc-handler-ld-local/src/suites/impl/JsonWebKeyWithRSASupport.ts +++ b/packages/vc-handler-ld-local/src/suites/impl/JsonWebKeyWithRSASupport.ts @@ -5,6 +5,7 @@ import crypto from '@sphereon/isomorphic-webcrypto' import { JWS } from '@transmute/jose-ld' import { WebCryptoKey, JsonWebKey2020, P256Key2021, P384Key2021, P521Key2021 } from '@transmute/web-crypto-key-pair' +// import { JsonWebKey, JsonWebSignature } from "@transmute/json-web-signature"; export { JsonWebKey2020 } @@ -61,7 +62,7 @@ const getVerifier = async (k: any, options = { detached: true }) => { if (kty === 'RSA') { // @ts-ignore - return JWS.createVerifier(k.verifier('RSA'), 'RS256', options) + return JWS.createVerifier(k.verifier('RSA'), 'PS256', options) } if (kty === 'EC') { diff --git a/packages/vc-handler-ld-local/src/suites/impl/JsonWebSignatureWithRSASupport.ts b/packages/vc-handler-ld-local/src/suites/impl/JsonWebSignatureWithRSASupport.ts index a2aff5468..5d1fdfd5b 100644 --- a/packages/vc-handler-ld-local/src/suites/impl/JsonWebSignatureWithRSASupport.ts +++ b/packages/vc-handler-ld-local/src/suites/impl/JsonWebSignatureWithRSASupport.ts @@ -231,14 +231,17 @@ export class JsonWebSignature { async verifySignature({ verifyData, verificationMethod, proof }: any) { if (verificationMethod.publicKey) { + verificationMethod.publicKey.algorithm.name = 'RSA-PSS' const key = verificationMethod.publicKey as CryptoKey + // key.algorithm = {name: 'RSA-PSS'} const signature = proof.jws.split('.')[2] const headerString = proof.jws.split('.')[0] const messageBuffer = u8a.concat([u8a.fromString(`${headerString}.`, 'utf-8'), verifyData]) return await subtle.verify( { - name: key.algorithm?.name ? key.algorithm.name : 'RSASSA-PKCS1-V1_5', - hash: 'SHA-256', // todo get from proof.jws header + saltLength: 32, + name: 'RSA-PSS', //key.algorithm?.name ? key.algorithm.name : 'RSASSA-PKCS1-V1_5', + // hash: 'SHA-256', // todo get from proof.jws header }, key, u8a.fromString(signature, 'base64url'), diff --git a/packages/w3c-vc-api/CHANGELOG.md b/packages/w3c-vc-api/CHANGELOG.md new file mode 100644 index 000000000..fe7bc128c --- /dev/null +++ b/packages/w3c-vc-api/CHANGELOG.md @@ -0,0 +1,71 @@ +# Change Log + +All notable changes to this project will be documented in this file. +See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. + +# [0.9.0](https://github.com/Sphereon-Opensource/SSI-SDK/compare/v0.8.0...v0.9.0) (2023-03-09) + +### Bug Fixes + +- credential mapper for jtw ([f04345b](https://github.com/Sphereon-Opensource/SSI-SDK/commit/f04345b97ff9a78a3dff096599f0b675b3239a3e)) +- Fix DID handling in OP session ([926e358](https://github.com/Sphereon-Opensource/SSI-SDK/commit/926e358ef3eadf19fc3c8f7c9940fe6322c5ff85)) +- Incorrect verification method id returned when signing credentials in some cases ([c508507](https://github.com/Sphereon-Opensource/SSI-SDK/commit/c508507ddd2e35fcb377a79bad3c82d695b3d93d)) +- Move parseDid method to ssi-types ([0b28de3](https://github.com/Sphereon-Opensource/SSI-SDK/commit/0b28de3de21afd0a224d3d174103e072162231ed)) + +### Features + +- Add jwt as signature when decoding JWT VCs/VPs ([f089ac1](https://github.com/Sphereon-Opensource/SSI-SDK/commit/f089ac18dc470f0b8c581b49e70e7eba64d72bc3)) +- Allow to relax JWT timing checks, where the JWT claim is slightly different from the VC claim. Used for issuance and expiration dates ([85bff6d](https://github.com/Sphereon-Opensource/SSI-SDK/commit/85bff6da21dea5d8f636ea1f55b41be00b18b002)) +- Create VP in OP Authenticator and allow for callbacks ([0ed86d8](https://github.com/Sphereon-Opensource/SSI-SDK/commit/0ed86d8d2b655a718d7c8cf1a946e0150bf877ce)) +- Make sure VP type corresponds with PEX definition ([129b663](https://github.com/Sphereon-Opensource/SSI-SDK/commit/129b66383752e05ab3067e459bff591a07aac690)) +- Make sure VP type corresponds with PEX definition ([3dafa3f](https://github.com/Sphereon-Opensource/SSI-SDK/commit/3dafa3ff4c794d13eff3e2e0b6a85675667db089)) +- Update SIOP OP to be in line wiht latest SIOP and also supporting late binding of identifiers ([2beea04](https://github.com/Sphereon-Opensource/SSI-SDK/commit/2beea04a6604d82b12ecbc11e68a9f41775c22ed)) + +# [0.8.0](https://github.com/Sphereon-Opensource/SSI-SDK/compare/v0.7.0...v0.8.0) (2022-09-03) + +**Note:** Version bump only for package @sphereon/ssi-sdk-did-auth-siop-authenticator + +# [0.7.0](https://github.com/Sphereon-Opensource/SSI-SDK/compare/v0.6.0...v0.7.0) (2022-08-05) + +**Note:** Version bump only for package @sphereon/ssi-sdk-did-auth-siop-authenticator + +# [0.6.0](https://github.com/Sphereon-Opensource/SSI-SDK/compare/v0.5.1...v0.6.0) (2022-07-01) + +### Features + +- Add custom DID resolver support ([45cea11](https://github.com/Sphereon-Opensource/SSI-SDK/commit/45cea1182693b698611b062a9d664ad92e8dcd6a)) +- Add default DID resolver support ([eebce18](https://github.com/Sphereon-Opensource/SSI-SDK/commit/eebce18bf9cc9d28a8bcdd6886100b7a8921bb2f)) +- Add did resolver and method support per OpSession ([9378b45](https://github.com/Sphereon-Opensource/SSI-SDK/commit/9378b451d4907c8d5385f464b27f858547409bb4)) +- Add did resolver and method support per OpSession ([a9f7afc](https://github.com/Sphereon-Opensource/SSI-SDK/commit/a9f7afc386189ca4851ce967f5abf7db812d1003)) +- Add supported DID methods ([df74ccd](https://github.com/Sphereon-Opensource/SSI-SDK/commit/df74ccddcab06a032ca47a033a46bd0268826f72)) +- Add supported DID methods ([7322265](https://github.com/Sphereon-Opensource/SSI-SDK/commit/732226544503c2bcc32bf4400da82e9154361abb)) + +## [0.5.1](https://github.com/Sphereon-Opensource/SSI-SDK/compare/v0.5.0...v0.5.1) (2022-02-23) + +**Note:** Version bump only for package @sphereon/ssi-sdk-did-auth-siop-authenticator + +# [0.5.0](https://github.com/Sphereon-Opensource/SSI-SDK/compare/v0.4.0...v0.5.0) (2022-02-23) + +**Note:** Version bump only for package @sphereon/ssi-sdk-did-auth-siop-authenticator + +# [0.4.0](https://github.com/Sphereon-Opensource/SSI-SDK/compare/v0.3.4...v0.4.0) (2022-02-11) + +**Note:** Version bump only for package @sphereon/ssi-sdk-did-auth-siop-authenticator + +## [0.3.4](https://github.com/Sphereon-Opensource/SSI-SDK/compare/v0.3.3...v0.3.4) (2022-02-11) + +### Bug Fixes + +- fix imports ([738f4ca](https://github.com/Sphereon-Opensource/SSI-SDK/commit/738f4cafdf75c9d4831a3c31de1c0d5aff1d7285)) + +## [0.3.1](https://github.com/Sphereon-Opensource/SSI-SDK/compare/v0.3.0...v0.3.1) (2022-01-28) + +**Note:** Version bump only for package @sphereon/ssi-sdk-did-auth-siop-authenticator + +# [0.3.0](https://github.com/Sphereon-Opensource/SSI-SDK/compare/v0.2.0...v0.3.0) (2022-01-16) + +**Note:** Version bump only for package @sphereon/ssi-sdk-did-auth-siop-authenticator + +# [0.2.0](https://github.com/Sphereon-Opensource/SSI-SDK/compare/v0.1.0...v0.2.0) (2021-12-16) + +**Note:** Version bump only for package @sphereon/ssi-sdk-did-auth-siop-authenticator diff --git a/packages/w3c-vc-api/LICENSE b/packages/w3c-vc-api/LICENSE new file mode 100644 index 000000000..8aee96b74 --- /dev/null +++ b/packages/w3c-vc-api/LICENSE @@ -0,0 +1,201 @@ + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [2021] [Sphereon BV] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/packages/w3c-vc-api/README.md b/packages/w3c-vc-api/README.md new file mode 100644 index 000000000..636f0c122 --- /dev/null +++ b/packages/w3c-vc-api/README.md @@ -0,0 +1,65 @@ + +

+
+ Sphereon +
SIOPv2 and OpenID4VP Relying Party REST endpoints +
+

+ +--- + +**Warning: This package still is in very early development. Breaking changes without notice will happen at this point!** + +--- + +An authentication plugin using the [Self Issued OpenID Provider v2 (SIOP)](https://github.com/Sphereon-Opensource/did-auth-siop) authentication library for having Relying Parties conforming to +the [Self Issued OpenID Provider v2 (SIOPv2)](https://openid.net/specs/openid-connect-self-issued-v2-1_0.html) +and [OpenID Connect for Verifiable Presentations (OIDC4VP)](https://openid.net/specs/openid-connect-4-verifiable-presentations-1_0.html) +as specified in the OpenID Connect working group. + +## Self Issued OpenID Provider v2 (SIOPv2) + +For more information about [Self Issued OpenID Provider v2 (SIOP)](https://github.com/Sphereon-Opensource/did-auth-siop#introduction), see the documentation in the readme. + +## Requirements + +For this plugin a DID resolver is also required. A DID resolver can be added to the agent as plugin as seen in the example below. + +## Available functions + +## Usage + +### Adding the plugin to an agent: + +```typescript +import { IDidAuthSiopOpAuthenticator } from '@sphereon/ssi-sdk-did-auth-siop-authenticator' +import { Resolver } from 'did-resolver' +import { getDidKeyResolver } from '@veramo/did-provider-key' +import { DIDResolverPlugin } from '@veramo/did-resolver' +import { getUniResolver } from '@sphereon/did-uni-client' + +const agent = createAgent({ + plugins: [ + new DidAuthSiopOpAuthenticator(), + new DIDResolverPlugin({ + resolver: new Resolver({ + ...getDidKeyResolver(), + ...getUniResolver('web'), + ...getUniResolver('jwk'), + }), + }), + ], +}) +``` + +## Installation + +```shell +yarn add @sphereon/ssi-sdk-siopv2-openid4vp-rp +``` + +## Build + +```shell +yarn build +``` diff --git a/packages/w3c-vc-api/__tests__/agent.ts b/packages/w3c-vc-api/__tests__/agent.ts new file mode 100644 index 000000000..4adf2e758 --- /dev/null +++ b/packages/w3c-vc-api/__tests__/agent.ts @@ -0,0 +1,222 @@ +// import { IonPublicKeyPurpose } from '@decentralized-identity/ion-sdk' +import { getUniResolver } from '@sphereon/did-uni-client' +import { getDidJwkResolver } from '@sphereon/ssi-sdk-ext.did-resolver-jwk' +import { IPresentationExchange, PresentationExchange } from '@sphereon/ssi-sdk.presentation-exchange' +import { + CredentialHandlerLDLocal, + ICredentialHandlerLDLocal, + LdDefaultContexts, + MethodNames, + SphereonBbsBlsSignature2020, + SphereonEcdsaSecp256k1RecoverySignature2020, + SphereonEd25519Signature2018, + SphereonEd25519Signature2020, + SphereonJsonWebSignature2020, +} from '@sphereon/ssi-sdk.vc-handler-ld-local' +import { createAgent, ICredentialPlugin, ICredentialVerifier, IDataStore, IDataStoreORM, IDIDManager, IKeyManager, IResolver } from '@veramo/core' +import { CredentialPlugin } from '@veramo/credential-w3c' +import { DataStore, DataStoreORM, DIDStore, KeyStore, PrivateKeyStore } from '@veramo/data-store' +import { DIDManager } from '@veramo/did-manager' +import { EthrDIDProvider } from '@veramo/did-provider-ethr' +import { getDidIonResolver, IonDIDProvider } from '@veramo/did-provider-ion' +import { getDidKeyResolver, KeyDIDProvider } from '@veramo/did-provider-key' +import { DIDResolverPlugin } from '@veramo/did-resolver' +import { KeyManager } from '@veramo/key-manager' +import { KeyManagementSystem, SecretBox } from '@veramo/kms-local' +import Debug from 'debug' +import { Resolver } from 'did-resolver' +import { VCAPIServer } from '../src' +import { DB_CONNECTION_NAME, DB_ENCRYPTION_KEY, getDbConnection } from './database' +import { JwkDIDProvider } from '@sphereon/ssi-sdk-ext.did-provider-jwk' + +const debug = Debug('sphereon:vc-api') + +export const DIF_UNIRESOLVER_RESOLVE_URL = 'https://dev.uniresolver.io/1.0/identifiers' +// export const APP_ID = 'sphereon:rp-demo' +export const DID_PREFIX = 'did' + +export enum KeyManagementSystemEnum { + LOCAL = 'local', +} + +export enum SupportedDidMethodEnum { + DID_ETHR = 'ethr', + DID_KEY = 'key', + // DID_LTO = 'lto', + DID_ION = 'ion', + // DID_FACTOM = 'factom', + DID_JWK = 'jwk', +} +const PRIVATE_KEY_HEX = + 'ea6aaeebe17557e0fe256bfce08e8224a412ea1e25a5ec8b5d69618a58bad89e89a4661e446b46401325a38d3b20582d1dd277eb448a3181012a671b7ae15837' +const PUBLIC_KEY_HEX = '89a4661e446b46401325a38d3b20582d1dd277eb448a3181012a671b7ae15837' + +/*const RP_PRIVATE_KEY_HEX = '7dd923e40f4615ac496119f7e793cc2899e99b64b88ca8603db986700089532b' +const RP_PUBLIC_KEY_HEX = '04a23cb4c83901acc2eb0f852599610de0caeac260bf8ed05e7f902eaac0f9c8d74dd4841b94d13424d32af8ec0e9976db9abfa7e3a59e10d565c5d4d901b4be63'*/ +// const RP_DID = 'did:ion:EiAG1fCl2kHSyZv7Z1Bb1eL7b_PVbiHaoxGki-5s8PjsFQ:eyJkZWx0YSI6eyJwYXRjaGVzIjpbeyJhY3Rpb24iOiJyZXBsYWNlIiwiZG9jdW1lbnQiOnsicHVibGljS2V5cyI6W3siaWQiOiJhdXRoLWtleSIsInB1YmxpY0tleUp3ayI6eyJjcnYiOiJzZWNwMjU2azEiLCJrdHkiOiJFQyIsIngiOiJmUUE3WUpNRk1qNXFET0RrS25qR1ZLNW0za1VSRFc1YnJ1TWhUa1NYSGQwIiwieSI6IlI3cVBNNEsxWHlqNkprM3M2a3I2aFNrQzlDa0ExSEFpMVFTejZqSU56dFkifSwicHVycG9zZXMiOlsiYXV0aGVudGljYXRpb24iLCJhc3NlcnRpb25NZXRob2QiXSwidHlwZSI6IkVjZHNhU2VjcDI1NmsxVmVyaWZpY2F0aW9uS2V5MjAxOSJ9XX19XSwidXBkYXRlQ29tbWl0bWVudCI6IkVpQmRpaVlrT3kyd3VOQ3Z5OWs4X1RoNzhSSlBvcy04MzZHZWpyRmJycTROZFEifSwic3VmZml4RGF0YSI6eyJkZWx0YUhhc2giOiJFaUFTdTN1NGxsRk5KRkNEbTU5VFVBS1NSLTg3QUpsNFNzWEhlS05kbVRydXp3IiwicmVjb3ZlcnlDb21taXRtZW50IjoiRWlEZXBoWHJVQVdCcWswcnFBLTI3bE1ib08zMFZZVFdoV0Y0NHBlanJyXzNOQSJ9fQ' +// const RP_DID_SHORT = 'did:ion:EiAeobpQwEVpR-Ib9toYwbISQZZGIBck6zIUm0ZDmm9v0g' +/*const RP_DID = + 'did:ion:EiAeobpQwEVpR-Ib9toYwbISQZZGIBck6zIUm0ZDmm9v0g:eyJkZWx0YSI6eyJwYXRjaGVzIjpbeyJhY3Rpb24iOiJyZXBsYWNlIiwiZG9jdW1lbnQiOnsicHVibGljS2V5cyI6W3siaWQiOiJhdXRoLWtleSIsInB1YmxpY0tleUp3ayI6eyJjcnYiOiJzZWNwMjU2azEiLCJrdHkiOiJFQyIsIngiOiJmUUE3WUpNRk1qNXFET0RrS25qR1ZLNW0za1VSRFc1YnJ1TWhUa1NYSGQwIiwieSI6IlI3cVBNNEsxWHlqNkprM3M2a3I2aFNrQzlDa0ExSEFpMVFTejZqSU56dFkifSwicHVycG9zZXMiOlsiYXV0aGVudGljYXRpb24iLCJhc3NlcnRpb25NZXRob2QiXSwidHlwZSI6IkVjZHNhU2VjcDI1NmsxVmVyaWZpY2F0aW9uS2V5MjAxOSJ9XX19XSwidXBkYXRlQ29tbWl0bWVudCI6IkVpQnpwN1loTjltaFVjWnNGZHhuZi1sd2tSVS1oVmJCdFpXc1ZvSkhWNmprd0EifSwic3VmZml4RGF0YSI6eyJkZWx0YUhhc2giOiJFaUJvbWxvZ0JPOERROFdpVVFsa3diYmxuMXpsRFU2Q3Jvc01wNDRySjYzWHhBIiwicmVjb3ZlcnlDb21taXRtZW50IjoiRWlEQVFYU2k3SGNqSlZCWUFLZE8yenJNNEhmeWJtQkJDV3NsNlBRUEpfamtsQSJ9fQ' +const PRIVATE_RECOVERY_KEY_HEX = '7c90c0575643d09a370c35021c91e9d8af2c968c5f3a4bf73802693511a55b9f' +const PRIVATE_UPDATE_KEY_HEX = '7288a92f6219c873446abd1f8d26fcbbe1caa5274b47f6f086ef3e7e75dcad8b'*/ +// const RP_DID_KID = `${RP_DID}#auth-key` + +export const resolver = new Resolver({ + /*// const SPHEREON_UNIRESOLVER_RESOLVE_URL = 'https://uniresolver.test.sphereon.io/1.0/identifiers' + ...getUniResolver('jwk', { + resolveUrl: DIF_UNIRESOLVER_RESOLVE_URL + }), + ...getUniResolver('ion', { + resolveUrl: DIF_UNIRESOLVER_RESOLVE_URL + }), + ..getUniResolver('lto', { + resolveUrl: SPHEREON_UNIRESOLVER_RESOLVE_URL + }),*/ + ...getUniResolver('ethr', { + resolveUrl: DIF_UNIRESOLVER_RESOLVE_URL, + }), + ...getDidKeyResolver(), + ...getDidJwkResolver(), + ...getUniResolver('jwk', { + resolveUrl: DIF_UNIRESOLVER_RESOLVE_URL, + }), + ...getDidIonResolver(), +}) + +export const didProviders = { + [`${DID_PREFIX}:${SupportedDidMethodEnum.DID_ETHR}`]: new EthrDIDProvider({ + defaultKms: KeyManagementSystemEnum.LOCAL, + network: 'ropsten', + }), + [`${DID_PREFIX}:${SupportedDidMethodEnum.DID_KEY}`]: new KeyDIDProvider({ + defaultKms: KeyManagementSystemEnum.LOCAL, + }), + [`${DID_PREFIX}:${SupportedDidMethodEnum.DID_ION}`]: new IonDIDProvider({ + defaultKms: KeyManagementSystemEnum.LOCAL, + }), + [`${DID_PREFIX}:${SupportedDidMethodEnum.DID_JWK}`]: new JwkDIDProvider({ + defaultKms: KeyManagementSystemEnum.LOCAL, + }), +} + +const dbConnection = getDbConnection(DB_CONNECTION_NAME) +const privateKeyStore: PrivateKeyStore = new PrivateKeyStore(dbConnection, new SecretBox(DB_ENCRYPTION_KEY)) + +const agent = createAgent< + IDIDManager & + IKeyManager & + IDataStore & + IDataStoreORM & + IResolver & + IPresentationExchange & + ICredentialVerifier & + ICredentialHandlerLDLocal & + ICredentialPlugin +>({ + plugins: [ + new DataStore(dbConnection), + new DataStoreORM(dbConnection), + new KeyManager({ + store: new KeyStore(dbConnection), + kms: { + local: new KeyManagementSystem(privateKeyStore), + }, + }), + new DIDManager({ + store: new DIDStore(dbConnection), + defaultProvider: `${DID_PREFIX}:${SupportedDidMethodEnum.DID_JWK}`, + providers: didProviders, + }), + new DIDResolverPlugin({ + resolver, + }), + new PresentationExchange(), + new CredentialPlugin(), + new CredentialHandlerLDLocal({ + contextMaps: [LdDefaultContexts], + suites: [ + new SphereonEd25519Signature2018(), + new SphereonEd25519Signature2020(), + new SphereonBbsBlsSignature2020(), + new SphereonJsonWebSignature2020(), + new SphereonEcdsaSecp256k1RecoverySignature2020(), + ], + bindingOverrides: new Map([ + ['createVerifiableCredentialLD', MethodNames.createVerifiableCredentialLDLocal], + ['createVerifiablePresentationLD', MethodNames.createVerifiablePresentationLDLocal], + ]), + keyStore: privateKeyStore, + }), + ], +}) + +// let keyRef = "did:ion:EiAeobpQwEVpR-Ib9toYwbISQZZGIBck6zIUm0ZDmm9v0g:eyJkZWx0YSI6eyJwYXRjaGVzIjpbeyJhY3Rpb24iOiJyZXBsYWNlIiwiZG9jdW1lbnQiOnsicHVibGljS2V5cyI6W3siaWQiOiJhdXRoLWtleSIsInB1YmxpY0tleUp3ayI6eyJjcnYiOiJzZWNwMjU2azEiLCJrdHkiOiJFQyIsIngiOiJmUUE3WUpNRk1qNXFET0RrS25qR1ZLNW0za1VSRFc1YnJ1TWhUa1NYSGQwIiwieSI6IlI3cVBNNEsxWHlqNkprM3M2a3I2aFNrQzlDa0ExSEFpMVFTejZqSU56dFkifSwicHVycG9zZXMiOlsiYXV0aGVudGljYXRpb24iLCJhc3NlcnRpb25NZXRob2QiXSwidHlwZSI6IkVjZHNhU2VjcDI1NmsxVmVyaWZpY2F0aW9uS2V5MjAxOSJ9XX19XSwidXBkYXRlQ29tbWl0bWVudCI6IkVpQnpwN1loTjltaFVjWnNGZHhuZi1sd2tSVS1oVmJCdFpXc1ZvSkhWNmprd0EifSwic3VmZml4RGF0YSI6eyJkZWx0YUhhc2giOiJFaUJvbWxvZ0JPOERROFdpVVFsa3diYmxuMXpsRFU2Q3Jvc01wNDRySjYzWHhBIiwicmVjb3ZlcnlDb21taXRtZW50IjoiRWlEQVFYU2k3SGNqSlZCWUFLZE8yenJNNEhmeWJtQkJDV3NsNlBRUEpfamtsQSJ9fQ" + +// agent.didManagerImport({did: RP_DID, keys: }) +agent.dataStoreORMGetIdentifiers().then((ids) => ids.forEach((id) => console.log(JSON.stringify(id, null, 2)))) +agent + .didManagerCreate({ + provider: 'did:jwk', + alias: 'test', + options: { + type: 'Ed25519', + key: { + privateKeyHex: PRIVATE_KEY_HEX, + }, + }, + }) + /*.didManagerCreate({ + provider: 'did:ion', + alias: RP_DID, + options: { + kid: 'auth-key', + anchor: false, + recoveryKey: { + kid: 'recovery-test2', + key: { + privateKeyHex: PRIVATE_RECOVERY_KEY_HEX, + }, + }, + updateKey: { + kid: 'update-test2', + key: { + privateKeyHex: PRIVATE_UPDATE_KEY_HEX, + }, + }, + verificationMethods: [ + { + key: { + kid: 'auth-key', + privateKeyHex: RP_PRIVATE_KEY_HEX, + }, + purposes: [IonPublicKeyPurpose.Authentication, IonPublicKeyPurpose.AssertionMethod], + }, + ], + }, + })*/ + .then((value) => { + debug(`IDENTIFIER: ${value.did}`) + }) + .catch((reason) => { + console.log(`error on creation: ${reason}`) + }) + .finally( + () => + new VCAPIServer({ + opts: { + issueCredentialOpts: { + proofFormat: 'lds', + fetchRemoteContexts: true, + persistIssuedCredentials: true, + keyRef: PUBLIC_KEY_HEX, + }, + serverOpts: { + hostname: '0.0.0.0', + port: 5000, + }, + }, + agent, + }) + ) + +export default agent diff --git a/packages/w3c-vc-api/__tests__/database/config.ts b/packages/w3c-vc-api/__tests__/database/config.ts new file mode 100644 index 000000000..75da16557 --- /dev/null +++ b/packages/w3c-vc-api/__tests__/database/config.ts @@ -0,0 +1,22 @@ +import { Entities as VeramoDataStoreEntities, migrations as VeramoDataStoreMigrations } from '@veramo/data-store' +import { DataStoreContactEntities, DataStoreMigrations } from '@sphereon/ssi-sdk.data-store' +import { SqliteConnectionOptions } from 'typeorm/driver/sqlite/SqliteConnectionOptions' +import { KeyValueStoreEntity } from '@sphereon/ssi-sdk.kv-store-temp' +import { kvStoreMigrations } from '@sphereon/ssi-sdk.kv-store-temp' + +const DB_CONNECTION_NAME = 'default' +const DB_ENCRYPTION_KEY = '29739248cad1bd1a0fc4d9b75cd4d2990de535baf5caadfdf8d8f86664aa830c' + +const sqliteConfig: SqliteConnectionOptions = { + type: 'sqlite', + database: '__tests__/database/test.sqlite', + entities: [...VeramoDataStoreEntities, ...DataStoreContactEntities, KeyValueStoreEntity], + migrations: [...VeramoDataStoreMigrations, ...DataStoreMigrations, ...kvStoreMigrations], + migrationsRun: false, // We run migrations from code to ensure proper ordering with Redux + synchronize: false, // We do not enable synchronize, as we use migrations from code + migrationsTransactionMode: 'each', // protect every migration with a separate transaction + logging: 'all', // 'all' means to enable all logging + logger: 'advanced-console', +} + +export { sqliteConfig, DB_CONNECTION_NAME, DB_ENCRYPTION_KEY } diff --git a/packages/w3c-vc-api/__tests__/database/databaseService.ts b/packages/w3c-vc-api/__tests__/database/databaseService.ts new file mode 100644 index 000000000..6775b2e6f --- /dev/null +++ b/packages/w3c-vc-api/__tests__/database/databaseService.ts @@ -0,0 +1,36 @@ +import Debug from 'debug' +import { DataSource } from 'typeorm' + +import { sqliteConfig } from './config' + +const debug = Debug(`demo:databaseService`) + +/** + * Todo, move to a class + */ +const dataSources = new Map() + +export const getDbConnection = async (dbName: string): Promise => { + if (sqliteConfig.synchronize) { + return Promise.reject( + `WARNING: Migrations need to be enabled in this app! Adjust the database configuration and set migrationsRun and synchronize to false` + ) + } + + if (dataSources.has(dbName)) { + return dataSources.get(dbName) + } + + const dataSource = await new DataSource({ ...sqliteConfig, name: dbName }).initialize() + dataSources.set(dbName, dataSource) + if (sqliteConfig.migrationsRun) { + debug( + `Migrations are currently managed from config. Please set migrationsRun and synchronize to false to get consistent behaviour. We run migrations from code explicitly` + ) + } else { + debug(`Running ${dataSource.migrations.length} migration(s) from code if needed...`) + await dataSource.runMigrations() + debug(`${dataSource.migrations.length} migration(s) from code were inspected and applied`) + } + return dataSource +} diff --git a/packages/w3c-vc-api/__tests__/database/index.ts b/packages/w3c-vc-api/__tests__/database/index.ts new file mode 100644 index 000000000..4b18e08ce --- /dev/null +++ b/packages/w3c-vc-api/__tests__/database/index.ts @@ -0,0 +1,2 @@ +export * from './config' +export * from './databaseService' diff --git a/packages/w3c-vc-api/__tests__/presentationDefinitions.ts b/packages/w3c-vc-api/__tests__/presentationDefinitions.ts new file mode 100644 index 000000000..d7c2d2316 --- /dev/null +++ b/packages/w3c-vc-api/__tests__/presentationDefinitions.ts @@ -0,0 +1,82 @@ +import { IPresentationDefinition } from '@sphereon/pex' +import { Rules } from '@sphereon/pex-models' + +export const entraAndSphereonCompatibleDef: IPresentationDefinition = { + id: '9449e2db-791f-407c-b086-c21cc677d2e0', + purpose: 'You need to prove your Wallet Identity data', + submission_requirements: [ + { + name: 'Sphereon Wallet Identity', + rule: Rules.Pick, + min: 0, + max: 1, + from: 'A', + } /*, + { + name: 'Microsoft Authenticator Identity', + rule: Rules.Pick, + min: 0, + max: 1, + from: 'B', + },*/, + ], + input_descriptors: [ + { + id: 'SphereonWalletId', + purpose: 'Checking your Sphereon Wallet information', + name: 'Wallet Identity', + group: ['A'], + schema: [{ uri: 'https://sphereon-opensource.github.io/ssi-mobile-wallet/context/sphereon-wallet-identity-v1.jsonld' }], + } /*, + { + id: 'TrueIdentity', + name: 'TrueIdentity', + group: ['B'], + purpose: 'To verify your demo identity', + schema: [ + { + uri: 'TrueIdentity', + }, + ], + constraints: { + fields: [ + { + path: ['$.issuer', '$.vc.issuer', '$.iss'], + filter: { + type: 'string', + pattern: + 'did:ion:EiDXOEH-YmaP2ZvxoCI-lA5zT1i5ogjgH6foIc2LFC83nQ:eyJkZWx0YSI6eyJwYXRjaGVzIjpbeyJhY3Rpb24iOiJyZXBsYWNlIiwiZG9jdW1lbnQiOnsicHVibGljS2V5cyI6W3siaWQiOiJzaWdfODEwYmQ1Y2EiLCJwdWJsaWNLZXlKd2siOnsiY3J2Ijoic2VjcDI1NmsxIiwia3R5IjoiRUMiLCJ4IjoiRUZwd051UDMyMmJVM1dQMUR0Smd4NjdMMENVVjFNeE5peHFQVk1IMkw5USIsInkiOiJfZlNUYmlqSUpqcHNxTDE2Y0lFdnh4ZjNNYVlNWThNYnFFcTA2NnlWOWxzIn0sInB1cnBvc2VzIjpbImF1dGhlbnRpY2F0aW9uIiwiYXNzZXJ0aW9uTWV0aG9kIl0sInR5cGUiOiJFY2RzYVNlY3AyNTZrMVZlcmlmaWNhdGlvbktleTIwMTkifV0sInNlcnZpY2VzIjpbeyJpZCI6ImxpbmtlZGRvbWFpbnMiLCJzZXJ2aWNlRW5kcG9pbnQiOnsib3JpZ2lucyI6WyJodHRwczovL2RpZC53b29kZ3JvdmVkZW1vLmNvbS8iXX0sInR5cGUiOiJMaW5rZWREb21haW5zIn0seyJpZCI6Imh1YiIsInNlcnZpY2VFbmRwb2ludCI6eyJpbnN0YW5jZXMiOlsiaHR0cHM6Ly9iZXRhLmh1Yi5tc2lkZW50aXR5LmNvbS92MS4wLzNjMzJlZDQwLThhMTAtNDY1Yi04YmE0LTBiMWU4Njg4MjY2OCJdfSwidHlwZSI6IklkZW50aXR5SHViIn1dfX1dLCJ1cGRhdGVDb21taXRtZW50IjoiRWlCUlNqWlFUYjRzOXJzZnp0T2F3OWVpeDg3N1l5d2JYc2lnaFlMb2xTSV9KZyJ9LCJzdWZmaXhEYXRhIjp7ImRlbHRhSGFzaCI6IkVpQXZDTkJoODlYZTVkdUk1dE1wU2ZyZ0k2aVNMMmV2QS0tTmJfUElmdFhfOGciLCJyZWNvdmVyeUNvbW1pdG1lbnQiOiJFaUN2RFdOTFhzcE1sbGJfbTFJal96ZV9SaWNKOWdFLUM1b2dlN1NnZTc5cy1BIn19', + }, + }, + ], + }, + },*/, + ], +} + +export const entraVerifiedIdPresentation: IPresentationDefinition = { + id: '081ea6b1-9009-4ec0-b41a-0afcf668bd50', + input_descriptors: [ + { + id: 'TrueIdentity', + name: 'TrueIdentity', + purpose: 'To verify your demo identity', + schema: [ + { + uri: 'TrueIdentity', + }, + ], + constraints: { + fields: [ + { + path: ['$.issuer', '$.vc.issuer', '$.iss'], + filter: { + type: 'string', + pattern: 'did.*', + }, + }, + ], + }, + }, + ], +} diff --git a/packages/w3c-vc-api/agent.yml b/packages/w3c-vc-api/agent.yml new file mode 100644 index 000000000..f78f74ed5 --- /dev/null +++ b/packages/w3c-vc-api/agent.yml @@ -0,0 +1,128 @@ +version: 3.0 + +constants: + baseUrl: http://localhost:3335 + port: 3335 + # please use your own X25519 key, this is only an example + secretKey: 29739248cad1bd1a0fc4d9b75cd4d2990de535baf5caadfdf8d8f86664aa830c + methods: + - authenticateWithSiop + - getSiopAuthorizationRequestFromRP + - getSiopAuthorizationRequestDetails + - verifySiopAuthorizationRequestURI + - sendSiopAuthorizationResponse + +# Database +dbConnection: + $require: typeorm#DataSource + $args: + - type: sqlite + database: ':memory:' + synchronize: false + migrationsRun: true + migrations: + $require: '@veramo/data-store?t=object#migrations' + logging: false + entities: + $require: '@veramo/data-store?t=object#Entities' + +server: + baseUrl: + $ref: /constants/baseUrl + port: + $ref: /constants/port + use: + # CORS + - - $require: 'cors' + + # Add agent to the request object + - - $require: '@veramo/remote-server?t=function#RequestWithAgentRouter' + $args: + - agent: + $ref: /agent + + # API base path + - - /agent + - $require: '@veramo/remote-server?t=function#apiKeyAuth' + $args: + # Please configure your own API key. This is used when executing agent methods through ${baseUrl}/agent or ${baseUrl}/api-docs + - apiKey: test123 + - $require: '@veramo/remote-server?t=function#AgentRouter' + $args: + - exposedMethods: + $ref: /constants/methods + + # Open API schema + - - /open-api.json + - $require: '@veramo/remote-server?t=function#ApiSchemaRouter' + $args: + - basePath: :3335/agent + securityScheme: bearer + apiName: Agent + apiVersion: '1.0.0' + exposedMethods: + $ref: /constants/methods + + # Swagger docs + - - /api-docs + - $require: swagger-ui-express?t=object#serve + - $require: swagger-ui-express?t=function#setup + $args: + - null + - swaggerOptions: + url: '/open-api.json' + + # Execute during server initialization + init: + - $require: '@veramo/remote-server?t=function#createDefaultDid' + $args: + - agent: + $ref: /agent + baseUrl: + $ref: /constants/baseUrl + messagingServiceEndpoint: /messaging + +# DID resolvers +didResolver: + $require: '@veramo/did-resolver#DIDResolverPlugin' + $args: + - resolver: + $require: did-resolver#Resolver + $args: + - elem: + $ref: /universal-resolver + io: + $ref: /universal-resolver + ion: + $ref: /universal-resolver + sov: + $ref: /universal-resolver + ethr: + $ref: /ethr-did-resolver + +ethr-did-resolver: + $require: ethr-did-resolver?t=function&p=/ethr#getResolver + $args: + - infuraProjectId: 5ffc47f65c4042ce847ef66a3fa70d4c + +universal-resolver: + $require: '@veramo/did-resolver#UniversalResolver' + $args: + - url: https://dev.uniresolver.io/1.0/identifiers/ + +# Agent +agent: + $require: '@veramo/core#Agent' + $args: + - schemaValidation: false + plugins: + - $ref: /didResolver + - $require: ./packages/siopv2-openid4vp-op-auth/dist#DidAuthSiopOpAuthenticator + $args: + - presentationSignCallback: {} + - $require: '@veramo/data-store#DataStore' + $args: + - $ref: /dbConnection + - $require: '@veramo/data-store#DataStoreORM' + $args: + - $ref: /dbConnection diff --git a/packages/w3c-vc-api/api-extractor.json b/packages/w3c-vc-api/api-extractor.json new file mode 100644 index 000000000..94c2c6a9f --- /dev/null +++ b/packages/w3c-vc-api/api-extractor.json @@ -0,0 +1,3 @@ +{ + "extends": "../include/api-extractor-base.json" +} diff --git a/packages/w3c-vc-api/package.json b/packages/w3c-vc-api/package.json new file mode 100644 index 000000000..25e6c650f --- /dev/null +++ b/packages/w3c-vc-api/package.json @@ -0,0 +1,92 @@ +{ + "name": "@sphereon/ssi-sdk.w3c-vc-api", + "version": "0.11.0", + "source": "src/index.ts", + "main": "dist/index.js", + "types": "dist/index.d.ts", + "scripts": { + "build": "tsc --build", + "build:clean": "tsc --build --clean && tsc --build", + "start:prod": "node build/index.js", + "start:dev": "ts-node __tests__/agent.ts" + }, + "dependencies": { + "@sphereon/ssi-sdk.presentation-exchange": "^0.11.1-next.70", + "@sphereon/did-auth-siop": "^0.3.1-unstable.1", + "@sphereon/ssi-types": "^0.11.1-next.70", + "@types/uuid": "^9.0.1", + "@veramo/core": "4.2.0", + "@veramo/credential-w3c": "4.2.0", + "@sphereon/ssi-sdk.kv-store-temp": "^0.11.1-next.70", + "body-parser": "^1.19.0", + "cookie-parser": "^1.4.5", + "cors": "^2.8.5", + "cross-fetch": "^3.1.5", + "dotenv-flow": "^3.2.0", + "express": "^4.18.2", + "short-uuid": "^4.2.2", + "uuid": "^8.3.2" + }, + "devDependencies": { + "@sphereon/did-uni-client": "^0.6.0", + "@sphereon/ssi-sdk.data-store": "^0.11.1-next.70", + "@sphereon/ssi-sdk-ext.did-provider-jwk": "^0.12.0", + "@sphereon/ssi-sdk-ext.did-resolver-jwk": "^0.12.0", + "@sphereon/ssi-sdk.vc-handler-ld-local": "^0.11.1-next.70", + "@sphereon/pex-models": "^2.0.2", + "@sphereon/pex": "^2.0.1", + "@types/body-parser": "^1.19.2", + "@types/cookie-parser": "^1.4.3", + "@types/cors": "^2.8.13", + "@types/debug": "^4.1.7", + "@types/dotenv-flow": "^3.2.0", + "@types/express": "^4.17.13", + "@types/express-http-proxy": "^1.6.3", + "@types/node": "^18.15.0", + "typeorm": "^0.3.12", + "@decentralized-identity/ion-sdk": "^0.6.0", + "@veramo/did-provider-ion": "4.2.0", + "@veramo/did-provider-key": "4.2.0", + "@veramo/did-provider-web": "4.2.0", + "@veramo/did-provider-ethr": "4.2.0", + "@veramo/did-resolver": "4.2.0", + "@veramo/data-store": "4.2.0", + "@veramo/did-manager": "4.2.0", + "@veramo/key-manager": "4.2.0", + "@veramo/kms-local": "4.2.0", + "@veramo/utils": "4.2.0", + "did-resolver": "^4.1.0", + "nock": "^13.2.1", + "ts-node": "^10.9.1" + }, + "files": [ + ".yalc/**/*", + "dist/**/*", + "src/**/*", + "README.md", + "plugin.schema.json", + "LICENSE" + ], + "private": false, + "publishConfig": { + "access": "public" + }, + "resolutions": { + "did-jwt": "6.11.6" + }, + "repository": "git@github.com:Sphereon-Opensource/SSI-SDK.git", + "author": "Sphereon ", + "license": "Apache-2.0", + "keywords": [ + "Sphereon", + "SSI", + "Veramo", + "DID", + "SIOP", + "SIOPv2", + "OIDC4VP", + "Presentation Exchange", + "OpenID Connect", + "Authenticator" + ] +} diff --git a/packages/w3c-vc-api/src/VCAPIServer.ts b/packages/w3c-vc-api/src/VCAPIServer.ts new file mode 100644 index 000000000..6708d1663 --- /dev/null +++ b/packages/w3c-vc-api/src/VCAPIServer.ts @@ -0,0 +1,283 @@ +// noinspection JSUnusedGlobalSymbols + +import { CredentialPayload, TAgent, VerifiableCredential } from '@veramo/core' +import { ProofFormat } from '@veramo/core/src/types/ICredentialIssuer' +import { W3CVerifiableCredential } from '@veramo/core/src/types/vc-data-model' +import bodyParser from 'body-parser' +import cookieParser from 'cookie-parser' +import * as dotenv from 'dotenv-flow' +import express, { Express, Request, Response } from 'express' +import { v4 } from 'uuid' +import { IRequiredPlugins } from './types' + +export interface IVCAPIOpts { + issueCredentialOpts?: IIssueOpts + serverOpts?: IServerOpts +} + +export interface IServerOpts { + port?: number // The port to listen on + cookieSigningKey?: string + hostname?: string // defaults to "0.0.0.0", meaning it will listen on all IP addresses. Can be an IP address or hostname +} + +export interface IIssueOpts { + issueCredentialPath?: string + getCredentialsPath?: string + getCredentialPath?: string + deleteCredentialPath?: string + verifyCredentialPath?: string + verifyPresentationPath?: string + + persistIssuedCredentials?: boolean // Whether the issuer persists issued credentials or not. Defaults to true + + /** + * The desired format for the VerifiablePresentation to be created. + */ + proofFormat: ProofFormat + + /** + * Remove payload members during JWT-JSON transformation. Defaults to `true`. + * See https://www.w3.org/TR/vc-data-model/#jwt-encoding + */ + removeOriginalFields?: boolean + + /** + * [Optional] The ID of the key that should sign this credential. + * If this is not specified, the first matching key will be used. + */ + keyRef?: string + + /** + * When dealing with JSON-LD you also MUST provide the proper contexts. + * Set this to `true` ONLY if you want the `@context` URLs to be fetched in case they are not preloaded. + * The context definitions SHOULD rather be provided at startup instead of being fetched. + * + * Defaults to `false` + */ + fetchRemoteContexts?: boolean +} + +export interface IIssueOptionsPayload { + created?: string + challenge?: string + domain?: string + credentialStatus?: { + type: string + } +} + +export interface ChallengeOptsPayload { + challenge?: string + domain?: string +} + +export class VCAPIServer { + private readonly _express: Express + private readonly _agent: TAgent + private readonly _opts?: IVCAPIOpts + + constructor(args: { agent: TAgent; express?: Express; opts?: IVCAPIOpts }) { + const { agent, opts } = args + this._agent = agent + this._opts = opts + const existingExpress = !!args.express + this._express = args.express ?? express() + this.setupExpress(existingExpress) + + // Credential endpoints + this.issueCredentialEndpoint() + this.getCredentialEndpoint() + this.getCredentialsEndpoint() + this.deleteCredentialEndpoint() // not in spec. TODO: Authz + this.verifyCredentialEndpoint() + } + + get agent(): TAgent { + return this._agent + } + + get opts(): IVCAPIOpts | undefined { + return this._opts + } + + get express(): Express { + return this._express + } + + private setupExpress(existingExpress: boolean) { + dotenv.config() + if (!existingExpress) { + const port = this.opts?.serverOpts?.port || process.env.PORT || 5000 + const secret = this.opts?.serverOpts?.cookieSigningKey || process.env.COOKIE_SIGNING_KEY + const hostname = this.opts?.serverOpts?.hostname || '0.0.0.0' + this._express.use((req, res, next) => { + res.header('Access-Control-Allow-Origin', '*') + // Request methods you wish to allow + res.setHeader('Access-Control-Allow-Methods', 'GET, POST, OPTIONS, PUT, PATCH, DELETE') + + // Request headers you wish to allow + res.setHeader('Access-Control-Allow-Headers', 'X-Requested-With,content-type') + + // Set to true if you need the website to include cookies in the requests sent + // to the API (e.g. in case you use sessions) + res.setHeader('Access-Control-Allow-Credentials', 'true') + next() + }) + // this.express.use(cors({ credentials: true })); + // this.express.use('/proxy', proxy('www.gssoogle.com')); + this._express.use(bodyParser.urlencoded({ extended: true })) + this._express.use(bodyParser.json()) + this._express.use(cookieParser(secret)) + this._express.listen(port as number, hostname, () => console.log(`Listening on ${hostname}, port ${port}`)) + } + } + + private static sendErrorResponse(response: Response, statusCode: number, message: string) { + console.log(message) + response.statusCode = statusCode + response.status(statusCode).send(message) + } + + private getCredentialsEndpoint() { + this._express.get(this.opts?.issueCredentialOpts?.getCredentialsPath ?? '/credentials', async (request: Request, response: Response) => { + try { + const uniqueVCs = await this.agent.dataStoreORMGetVerifiableCredentials() + response.statusCode = 202 + return response.send(uniqueVCs.map((uVC) => uVC.verifiableCredential)) + } catch (e) { + console.log(e) + return VCAPIServer.sendErrorResponse(response, 500, e.message as string) + } + }) + } + + private getCredentialEndpoint() { + this._express.get(this.opts?.issueCredentialOpts?.getCredentialPath ?? '/credentials/:id', async (request: Request, response: Response) => { + try { + const id = request.params.id + if (!id) { + return VCAPIServer.sendErrorResponse(response, 400, 'no id provided') + } + let vcInfo = await this.getCredentialByIdOrHash(id) + if (!vcInfo.vc) { + return VCAPIServer.sendErrorResponse(response, 404, `id ${id} not found`) + } + response.statusCode = 200 + return response.send(vcInfo.vc) + } catch (e) { + console.log(e) + return VCAPIServer.sendErrorResponse(response, 500, e.message as string) + } + }) + } + + private verifyCredentialEndpoint() { + this._express.post( + this.opts?.issueCredentialOpts?.verifyCredentialPath ?? '/credentials/verify', + async (request: Request, response: Response) => { + try { + console.log(request.body) + const credential: W3CVerifiableCredential = request.body.verifiableCredential + // const options: IIssueOptionsPayload = request.body.options + if (!credential) { + return VCAPIServer.sendErrorResponse(response, 400, 'No verifiable credential supplied') + } + const verifyResult = await this.agent.verifyCredential({ + credential, + fetchRemoteContexts: this.opts?.issueCredentialOpts?.fetchRemoteContexts, + }) + + response.statusCode = 200 + return response.send(verifyResult) + } catch (e) { + console.log(e) + return VCAPIServer.sendErrorResponse(response, 500, e.message as string) + } + } + ) + } + + private deleteCredentialEndpoint() { + this._express.delete(this.opts?.issueCredentialOpts?.getCredentialsPath ?? '/credentials/:id', async (request: Request, response: Response) => { + try { + const id = request.params.id + if (!id) { + return VCAPIServer.sendErrorResponse(response, 400, 'no id provided') + } + let vcInfo = await this.getCredentialByIdOrHash(id) + if (!vcInfo.vc || !vcInfo.hash) { + return VCAPIServer.sendErrorResponse(response, 404, `id ${id} not found`) + } + const success = this.agent.dataStoreDeleteVerifiableCredential({ hash: vcInfo.hash }) + if (!success) { + return VCAPIServer.sendErrorResponse(response, 400, `Could not delete Verifiable Credential with id ${id}`) + } + response.statusCode = 200 + return response.send() + } catch (e) { + console.log(e) + return VCAPIServer.sendErrorResponse(response, 500, e.message as string) + } + }) + } + + private issueCredentialEndpoint() { + this._express.post(this.opts?.issueCredentialOpts?.issueCredentialPath ?? '/credentials/issue', async (request: Request, response: Response) => { + try { + const credential: CredentialPayload = request.body.credential + // const options: IIssueOptionsPayload = request.body.options + if (!credential) { + return VCAPIServer.sendErrorResponse(response, 400, 'No credential supplied') + } + if (!credential.id) { + credential.id = `urn:uuid:${v4()}` + } + const issueOpts = this.opts?.issueCredentialOpts + const vc = await this._agent.createVerifiableCredential({ + credential, + save: issueOpts?.persistIssuedCredentials ?? true, + proofFormat: issueOpts?.proofFormat ?? 'lds', + fetchRemoteContexts: issueOpts?.fetchRemoteContexts || true, + }) + response.statusCode = 201 + return response.send({ verifiableCredential: vc }) + } catch (e) { + console.log(e) + return VCAPIServer.sendErrorResponse(response, 500, e.message as string) + } + }) + } + + private async getCredentialByIdOrHash(idOrHash: string): Promise<{ + id: string + hash?: string + vc?: VerifiableCredential + }> { + let vc: VerifiableCredential + let hash: string + const uniqueVCs = await this.agent.dataStoreORMGetVerifiableCredentials({ + where: [ + { + column: 'id', + value: [idOrHash], + op: 'Equal', + }, + ], + }) + if (uniqueVCs.length === 0) { + hash = idOrHash + vc = await this.agent.dataStoreGetVerifiableCredential({ hash }) + } else { + const uniqueVC = uniqueVCs[0] + hash = uniqueVC.hash + vc = uniqueVC.verifiableCredential + } + + return { + vc, + id: idOrHash, + hash, + } + } +} diff --git a/packages/w3c-vc-api/src/index.ts b/packages/w3c-vc-api/src/index.ts new file mode 100644 index 000000000..ae323cb46 --- /dev/null +++ b/packages/w3c-vc-api/src/index.ts @@ -0,0 +1,5 @@ +/** + * @public + */ +export * from './VCAPIServer' +export * from './types' diff --git a/packages/w3c-vc-api/src/request-agent-router.ts b/packages/w3c-vc-api/src/request-agent-router.ts new file mode 100644 index 000000000..b4f1e0130 --- /dev/null +++ b/packages/w3c-vc-api/src/request-agent-router.ts @@ -0,0 +1,47 @@ +import { IAgent } from '@veramo/core' +import { Request, Router } from 'express' + +export interface RequestWithAgent extends Request { + agent?: IAgent +} + +/** + * @public + */ +export interface RequestWithAgentRouterOptions { + /** + * Optional. Pre-configured agent + */ + agent?: IAgent + + /** + * Optional. Function that returns a Promise that resolves to a configured agent for specific request + */ + getAgentForRequest?: (req: Request) => Promise +} + +/** + * Creates an expressjs router that adds a Veramo agent to the request object. + * + * This is needed by all other routers provided by this package to be able to perform their functions. + * + * @param options - Initialization option + * @returns Expressjs router + * + * @public + */ +export const RequestWithAgentRouter = (options: RequestWithAgentRouterOptions): Router => { + const router = Router() + router.use(async (req: RequestWithAgent, res, next) => { + if (options.agent) { + req.agent = options.agent + } else if (options.getAgentForRequest) { + req.agent = await options.getAgentForRequest(req) + } else { + throw Error('[RequestWithAgentRouter] agent or getAgentForRequest is required') + } + next() + }) + + return router +} diff --git a/packages/w3c-vc-api/src/types.ts b/packages/w3c-vc-api/src/types.ts new file mode 100644 index 000000000..85702e755 --- /dev/null +++ b/packages/w3c-vc-api/src/types.ts @@ -0,0 +1,23 @@ +import { + IAgentContext, + ICredentialIssuer, + ICredentialPlugin, + ICredentialVerifier, + IDataStore, + IDataStoreORM, + IDIDManager, + IKeyManager, + IResolver, +} from '@veramo/core' +import { IPresentationExchange } from '@sphereon/ssi-sdk.presentation-exchange' + +export type IRequiredPlugins = IDataStore & + IDataStoreORM & + IDIDManager & + IKeyManager & + ICredentialIssuer & + ICredentialVerifier & + IPresentationExchange & + ICredentialPlugin & + IResolver +export type IRequiredContext = IAgentContext diff --git a/packages/w3c-vc-api/tsconfig.json b/packages/w3c-vc-api/tsconfig.json new file mode 100644 index 000000000..f45919e4d --- /dev/null +++ b/packages/w3c-vc-api/tsconfig.json @@ -0,0 +1,29 @@ +{ + "extends": "../tsconfig-base.json", + "compilerOptions": { + "rootDir": "src", + "outDir": "dist", + "declarationDir": "dist", + "esModuleInterop": true + }, + "references": [ + { + "path": "../siopv2-oid4vp-common" + }, + { + "path": "../siopv2-oid4vp-rp-auth" + }, + { + "path": "../presentation-exchange" + }, + { + "path": "../ssi-types" + }, + { + "path": "../ssi-sdk-core" + }, + { + "path": "../kv-store" + } + ] +} diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index b163530cf..12cfcbcf6 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -26,6 +26,9 @@ overrides: '@sphereon/ssi-types': workspace:* '@sphereon/ssi-sdk.core': workspace:* '@noble/hashes': 1.2.0 + did-jwt: 6.11.6 + did-jwt-vc: 3.1.3 + ethr-did: 2.3.9 '@mattrglobal/jsonld-signatures-bbs@1.1.0>jsonld': 4.0.1 jsonld: link:./node_modules/.pnpm/@digitalcredentials+jsonld@5.2.1/node_modules/@digitalcredentials/jsonld isomorphic-webcrypto: link:./node_modules/@sphereon/isomorphic-webcrypto @@ -67,6 +70,9 @@ importers: cross-fetch: specifier: ^3.1.5 version: 3.1.5 + did-jwt: + specifier: 6.11.6 + version: 6.11.6 eslint: specifier: ^8.35.0 version: 8.35.0 @@ -79,6 +85,9 @@ importers: eslint-plugin-import: specifier: ^2.27.5 version: 2.27.5(@typescript-eslint/parser@5.59.2)(eslint@8.35.0) + ethr-did: + specifier: 2.3.9 + version: 2.3.9 jest: specifier: ^27.5.1 version: 27.5.1(ts-node@10.9.1) @@ -157,7 +166,7 @@ importers: version: 3.1.5 typeorm: specifier: ^0.3.12 - version: 0.3.12(pg@8.11.0)(sqlite3@5.1.6)(ts-node@10.9.1) + version: 0.3.12(sqlite3@5.1.6)(ts-node@10.9.1) devDependencies: '@sphereon/ssi-sdk.agent-config': specifier: workspace:* @@ -185,12 +194,70 @@ importers: version: 4.3.4 typeorm: specifier: ^0.3.12 - version: 0.3.12(pg@8.11.0)(sqlite3@5.1.6)(ts-node@10.9.1) + version: 0.3.12(sqlite3@5.1.6)(ts-node@10.9.1) devDependencies: sqlite3: specifier: ^5.1.6 version: 5.1.6 + packages/dev: + dependencies: + '@microsoft/api-extractor': + specifier: ^7.33.8 + version: 7.33.8 + '@microsoft/api-extractor-model': + specifier: ^7.25.3 + version: 7.25.3 + commander: + specifier: ^10.0.0 + version: 10.0.0 + copyfiles: + specifier: ^2.4.1 + version: 2.4.1 + inquirer: + specifier: ^9.1.4 + version: 9.1.4 + inquirer-autocomplete-prompt: + specifier: ^3.0.0 + version: 3.0.0(inquirer@9.1.4) + json-schema: + specifier: ^0.4.0 + version: 0.4.0 + json5: + specifier: ^2.2.0 + version: 2.2.3 + jsonpointer: + specifier: ^5.0.1 + version: 5.0.1 + oas-resolver: + specifier: ^2.5.3 + version: 2.5.6 + openapi-types: + specifier: ^12.0.2 + version: 12.1.0 + ts-json-schema-generator: + specifier: ^1.2.0 + version: 1.2.0 + url-parse: + specifier: ^1.5.10 + version: 1.5.10 + yaml: + specifier: ^2.2.2 + version: 2.2.2 + devDependencies: + '@types/inquirer': + specifier: ^9.0.3 + version: 9.0.3 + '@types/inquirer-autocomplete-prompt': + specifier: ^3.0.0 + version: 3.0.0 + '@types/url-parse': + specifier: ^1.4.8 + version: 1.4.8 + typescript: + specifier: 4.9.5 + version: 4.9.5 + packages/kv-store: dependencies: '@veramo/utils': @@ -207,7 +274,7 @@ importers: version: 3.0.1 typeorm: specifier: ^0.3.10 - version: 0.3.12(pg@8.11.0)(sqlite3@5.1.6)(ts-node@10.9.1) + version: 0.3.12(sqlite3@5.1.6)(ts-node@10.9.1) uint8arrays: specifier: ^3.1.1 version: 3.1.1 @@ -224,15 +291,15 @@ importers: '@keyv/test-suite': specifier: ^1.9.2 version: 1.9.2 + '@sphereon/ssi-sdk.agent-config': + specifier: workspace:* + version: link:../agent-config '@types/debug': specifier: ^4.1.7 version: 4.1.7 '@types/json-buffer': specifier: ^3.0.0 version: 3.0.0 - '@veramo/cli': - specifier: 4.2.0 - version: 4.2.0(@types/node@18.16.3)(ts-node@10.9.1) eslint: specifier: ^8.33.0 version: 8.35.0 @@ -299,7 +366,7 @@ importers: version: 1.17.2 typeorm: specifier: ^0.3.12 - version: 0.3.12(pg@8.11.0)(sqlite3@5.1.6)(ts-node@10.9.1) + version: 0.3.12(sqlite3@5.1.6)(ts-node@10.9.1) devDependencies: '@sphereon/ssi-sdk.agent-config': specifier: workspace:* @@ -321,7 +388,7 @@ importers: version: 9.0.1 '@veramo/data-store': specifier: 4.2.0 - version: 4.2.0(patch_hash=feb5u2ygzsdf67qbxr2lxgqjyy)(pg@8.11.0)(sqlite3@5.1.6)(ts-node@10.9.1) + version: 4.2.0(patch_hash=feb5u2ygzsdf67qbxr2lxgqjyy)(sqlite3@5.1.6)(ts-node@10.9.1) jest: specifier: ^27.5.1 version: 27.5.1(ts-node@10.9.1) @@ -699,7 +766,7 @@ importers: version: 18.16.3 '@veramo/data-store': specifier: 4.2.0 - version: 4.2.0(patch_hash=feb5u2ygzsdf67qbxr2lxgqjyy)(pg@8.11.0)(sqlite3@5.1.6)(ts-node@10.9.1) + version: 4.2.0(patch_hash=feb5u2ygzsdf67qbxr2lxgqjyy)(sqlite3@5.1.6)(ts-node@10.9.1) '@veramo/did-manager': specifier: 4.2.0 version: 4.2.0 @@ -708,7 +775,7 @@ importers: version: 4.2.0 '@veramo/did-provider-ion': specifier: 4.2.0 - version: 4.2.0(@sphereon/react-native-argon2@2.0.9)(react-native@0.71.7) + version: 4.2.0(@sphereon/react-native-argon2@2.0.9)(react-native@0.71.8) '@veramo/did-provider-key': specifier: 4.2.0 version: 4.2.0 @@ -738,7 +805,7 @@ importers: version: 10.9.1(@types/node@18.16.3)(typescript@4.9.5) typeorm: specifier: ^0.3.12 - version: 0.3.12(pg@8.11.0)(sqlite3@5.1.6)(ts-node@10.9.1) + version: 0.3.12(sqlite3@5.1.6)(ts-node@10.9.1) packages/siopv2-oid4vp-rp-rest-client: dependencies: @@ -840,10 +907,10 @@ importers: version: 1.1.1 '@sphereon/ed25519-signature-2018': specifier: 0.7.0-unstable.6 - version: 0.7.0-unstable.6(expo-crypto@12.2.2)(expo@48.0.16)(msrcrypto@1.5.8)(react-native-securerandom@1.0.1) + version: 0.7.0-unstable.6(expo-crypto@12.2.2)(expo@48.0.17)(msrcrypto@1.5.8)(react-native-securerandom@1.0.1) '@sphereon/isomorphic-webcrypto': specifier: ^2.4.0-unstable.4 - version: 2.4.0-unstable.4(expo-crypto@12.2.2)(expo@48.0.16)(msrcrypto@1.5.8)(react-native-securerandom@1.0.1) + version: 2.4.0-unstable.4(expo-crypto@12.2.2)(expo@48.0.17)(msrcrypto@1.5.8)(react-native-securerandom@1.0.1) '@sphereon/ssi-sdk-ext.did-utils': specifier: ^0.12.0 version: 0.12.0 @@ -859,6 +926,9 @@ importers: '@transmute/jose-ld': specifier: 0.7.0-unstable.80 version: 0.7.0-unstable.80 + '@transmute/json-web-signature': + specifier: 0.7.0-unstable.80 + version: 0.7.0-unstable.80 '@transmute/jsonld': specifier: ^0.0.4 version: 0.0.4 @@ -909,7 +979,7 @@ importers: version: 7.0.0 react-native-securerandom: specifier: ^1.0.1 - version: 1.0.1(react-native@0.71.7) + version: 1.0.1(react-native@0.71.8) devDependencies: '@sphereon/did-uni-client': specifier: ^0.6.0 @@ -922,10 +992,10 @@ importers: version: 0.12.0(typescript@4.9.5) '@sphereon/ssi-sdk-ext.key-manager': specifier: ^0.12.0 - version: 0.12.0(expo-crypto@12.2.2)(expo@48.0.16)(msrcrypto@1.5.8)(react-native-securerandom@1.0.1) + version: 0.12.0(expo-crypto@12.2.2)(expo@48.0.17)(msrcrypto@1.5.8)(react-native-securerandom@1.0.1) '@sphereon/ssi-sdk-ext.kms-local': specifier: ^0.12.0 - version: 0.12.0(expo-crypto@12.2.2)(expo@48.0.16)(msrcrypto@1.5.8)(react-native-securerandom@1.0.1) + version: 0.12.0(expo-crypto@12.2.2)(expo@48.0.17)(msrcrypto@1.5.8)(react-native-securerandom@1.0.1) '@sphereon/ssi-sdk.agent-config': specifier: workspace:* version: link:../agent-config @@ -952,13 +1022,16 @@ importers: version: 4.2.0 '@veramo/data-store': specifier: 4.2.0 - version: 4.2.0(patch_hash=feb5u2ygzsdf67qbxr2lxgqjyy)(pg@8.11.0)(sqlite3@5.1.6)(ts-node@10.9.1) + version: 4.2.0(patch_hash=feb5u2ygzsdf67qbxr2lxgqjyy)(sqlite3@5.1.6)(ts-node@10.9.1) '@veramo/did-manager': specifier: 4.2.0 version: 4.2.0 '@veramo/did-provider-key': specifier: 4.2.0 version: 4.2.0 + '@veramo/did-provider-web': + specifier: 4.2.0 + version: 4.2.0 '@veramo/did-resolver': specifier: 4.2.0 version: 4.2.0 @@ -992,6 +1065,148 @@ importers: uint8arrays: specifier: ^3.1.1 version: 3.1.1 + web-did-resolver: + specifier: ^2.0.24 + version: 2.0.24 + + packages/w3c-vc-api: + dependencies: + '@sphereon/did-auth-siop': + specifier: ^0.3.1-unstable.1 + version: 0.3.1-unstable.1 + '@sphereon/ssi-sdk.kv-store-temp': + specifier: ^0.11.1-next.70 + version: 0.11.1-next.70(ts-node@10.9.1) + '@sphereon/ssi-sdk.presentation-exchange': + specifier: ^0.11.1-next.70 + version: 0.11.1-next.70(ts-node@10.9.1) + '@sphereon/ssi-types': + specifier: workspace:* + version: link:../ssi-types + '@types/uuid': + specifier: ^9.0.1 + version: 9.0.1 + '@veramo/core': + specifier: 4.2.0 + version: 4.2.0(patch_hash=c5oempznsz4br5w3tcuk2i2mau) + '@veramo/credential-w3c': + specifier: 4.2.0 + version: 4.2.0 + body-parser: + specifier: ^1.19.0 + version: 1.19.0 + cookie-parser: + specifier: ^1.4.5 + version: 1.4.5 + cors: + specifier: ^2.8.5 + version: 2.8.5 + cross-fetch: + specifier: ^3.1.5 + version: 3.1.5 + dotenv-flow: + specifier: ^3.2.0 + version: 3.2.0 + express: + specifier: ^4.18.2 + version: 4.18.2 + short-uuid: + specifier: ^4.2.2 + version: 4.2.2 + uuid: + specifier: ^8.3.2 + version: 8.3.2 + devDependencies: + '@decentralized-identity/ion-sdk': + specifier: ^0.6.0 + version: 0.6.0 + '@sphereon/did-uni-client': + specifier: ^0.6.0 + version: 0.6.0 + '@sphereon/pex': + specifier: ^2.0.1 + version: 2.0.1 + '@sphereon/pex-models': + specifier: ^2.0.2 + version: 2.0.2 + '@sphereon/ssi-sdk-ext.did-provider-jwk': + specifier: ^0.12.0 + version: 0.12.0 + '@sphereon/ssi-sdk-ext.did-resolver-jwk': + specifier: ^0.12.0 + version: 0.12.0 + '@sphereon/ssi-sdk.data-store': + specifier: ^0.11.1-next.70 + version: 0.11.1-next.70(ts-node@10.9.1) + '@sphereon/ssi-sdk.vc-handler-ld-local': + specifier: ^0.11.1-next.70 + version: 0.11.1-next.70(expo-crypto@12.2.2)(expo@48.0.17)(msrcrypto@1.5.8)(react-native-securerandom@1.0.1) + '@types/body-parser': + specifier: ^1.19.2 + version: 1.19.2 + '@types/cookie-parser': + specifier: ^1.4.3 + version: 1.4.3 + '@types/cors': + specifier: ^2.8.13 + version: 2.8.13 + '@types/debug': + specifier: ^4.1.7 + version: 4.1.7 + '@types/dotenv-flow': + specifier: ^3.2.0 + version: 3.2.0 + '@types/express': + specifier: ^4.17.13 + version: 4.17.13 + '@types/express-http-proxy': + specifier: ^1.6.3 + version: 1.6.3 + '@types/node': + specifier: ^18.15.0 + version: 18.16.3 + '@veramo/data-store': + specifier: 4.2.0 + version: 4.2.0(patch_hash=feb5u2ygzsdf67qbxr2lxgqjyy)(sqlite3@5.1.6)(ts-node@10.9.1) + '@veramo/did-manager': + specifier: 4.2.0 + version: 4.2.0 + '@veramo/did-provider-ethr': + specifier: 4.2.0 + version: 4.2.0 + '@veramo/did-provider-ion': + specifier: 4.2.0 + version: 4.2.0(@sphereon/react-native-argon2@2.0.9)(react-native@0.71.8) + '@veramo/did-provider-key': + specifier: 4.2.0 + version: 4.2.0 + '@veramo/did-provider-web': + specifier: 4.2.0 + version: 4.2.0 + '@veramo/did-resolver': + specifier: 4.2.0 + version: 4.2.0 + '@veramo/key-manager': + specifier: 4.2.0 + version: 4.2.0 + '@veramo/kms-local': + specifier: 4.2.0 + version: 4.2.0 + '@veramo/utils': + specifier: 4.2.0 + version: 4.2.0 + did-resolver: + specifier: ^4.1.0 + version: 4.1.0 + nock: + specifier: ^13.2.1 + version: 13.3.0 + ts-node: + specifier: ^10.9.1 + version: 10.9.1(@types/node@18.16.3)(typescript@4.9.5) + typeorm: + specifier: ^0.3.12 + version: 0.3.12(sqlite3@5.1.6)(ts-node@10.9.1) packages/wellknown-did-issuer: dependencies: @@ -1003,7 +1218,7 @@ importers: version: 0.1.3 '@veramo/data-store': specifier: 4.2.0 - version: 4.2.0(patch_hash=feb5u2ygzsdf67qbxr2lxgqjyy)(pg@8.11.0)(sqlite3@5.1.6)(ts-node@10.9.1) + version: 4.2.0(patch_hash=feb5u2ygzsdf67qbxr2lxgqjyy)(sqlite3@5.1.6)(ts-node@10.9.1) '@veramo/utils': specifier: 4.2.0 version: 4.2.0 @@ -1015,7 +1230,7 @@ importers: version: 3.1.3 typeorm: specifier: ^0.3.12 - version: 0.3.12(pg@8.11.0)(sqlite3@5.1.6)(ts-node@10.9.1) + version: 0.3.12(sqlite3@5.1.6)(ts-node@10.9.1) uuid: specifier: ^8.3.2 version: 8.3.2 @@ -2365,24 +2580,6 @@ packages: resolution: {integrity: sha512-R524tD5VwOt3QRHr7N518nqTVR/HKgfWL4LypekcGuNQN8R4PWScvuRcRzrY39A28kLztMv+TJdiKuMNbkU1ug==} engines: {node: '>=8.9'} - /@chainsafe/as-sha256@0.4.1: - resolution: {integrity: sha512-IqeeGwQihK6Y2EYLFofqs2eY2ep1I2MvQXHzOAI+5iQN51OZlUkrLgyAugu2x86xZewDk5xas7lNczkzFzF62w==} - dev: true - - /@chainsafe/persistent-merkle-tree@0.6.1: - resolution: {integrity: sha512-gcENLemRR13+1MED2NeZBMA7FRS0xQPM7L2vhMqvKkjqtFT4YfjSVADq5U0iLuQLhFUJEMVuA8fbv5v+TN6O9A==} - dependencies: - '@chainsafe/as-sha256': 0.4.1 - '@noble/hashes': 1.2.0 - dev: true - - /@chainsafe/ssz@0.11.1: - resolution: {integrity: sha512-cB8dBkgGN6ZoeOKuk+rIRHKN0L5i9JLGeC0Lui71QX0TuLcQKwgbfkUexpyJxnGFatWf8yeJxlOjozMn/OTP0g==} - dependencies: - '@chainsafe/as-sha256': 0.4.1 - '@chainsafe/persistent-merkle-tree': 0.6.1 - dev: true - /@colors/colors@1.5.0: resolution: {integrity: sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==} engines: {node: '>=0.1.90'} @@ -2431,7 +2628,6 @@ packages: /@digitalcredentials/credentials-context@1.0.5: resolution: {integrity: sha512-UL4vFxJvR2SV8FkvxnQe0ukcke4+46Up38Yk2SlmvRWIQAKhxgrEkv1Nq+DbTKllOHE75kZF53Ioy0bZNoJhJA==} - dev: false /@digitalcredentials/ed25519-signature-2020@3.0.2: resolution: {integrity: sha512-R8IrR21Dh+75CYriQov3nVHKaOVusbxfk9gyi6eCAwLHKn6fllUt+2LQfuUrL7Ts/sGIJqQcev7YvkX9GvyYRA==} @@ -2510,7 +2706,6 @@ packages: /@digitalcredentials/x25519-key-agreement-2020-context@1.0.0: resolution: {integrity: sha512-dfYTL4iZBSTVd9yvYctPYJ/rh2snWSwuOMn5bj7gGR7TeUWXCCkuxPT1JsNdbYX8opSHHnhaaCWx3B46a1smiw==} - dev: false /@eslint-community/eslint-utils@4.4.0(eslint@8.35.0): resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==} @@ -2566,22 +2761,6 @@ packages: engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dev: true - /@ethereumjs/rlp@4.0.1: - resolution: {integrity: sha512-tqsQiBQDQdmPWE1xkkBq4rlSW5QZpLOUJ5RJh2/9fug+q9tnUhuZoVLk7s0scUIKTOzEtR72DFBXI4WiZcMpvw==} - engines: {node: '>=14'} - hasBin: true - dev: true - - /@ethereumjs/util@8.0.6: - resolution: {integrity: sha512-zFLG/gXtF3QUC7iKFn4PT6HCr+DEnlCbwUGKGtXoqjA+64T+e0FuqMjlo4bQIY2ngRzk3EtudKdGYC4g31ehhg==} - engines: {node: '>=14'} - dependencies: - '@chainsafe/ssz': 0.11.1 - '@ethereumjs/rlp': 4.0.1 - ethereum-cryptography: 2.0.0 - micro-ftch: 0.3.1 - dev: true - /@ethersproject/abi@5.7.0: resolution: {integrity: sha512-351ktp42TiRcYB3H1OP8yajPeAQstMW/yCFokj/AthP9bLHzQFPlOrxOcwYEDkUAICmOHljvN4K39OMTMUa9RA==} dependencies: @@ -2882,7 +3061,7 @@ packages: '@babel/runtime': 7.21.5 '@expo/code-signing-certificates': 0.0.5 '@expo/config': 8.0.2 - '@expo/config-plugins': 6.0.1 + '@expo/config-plugins': 6.0.2 '@expo/dev-server': 0.3.0 '@expo/devcert': 1.1.0 '@expo/json-file': 8.2.37 @@ -2919,7 +3098,7 @@ packages: md5-file: 3.2.3 md5hex: 1.0.0 minipass: 3.1.6 - node-fetch: 2.6.9 + node-fetch: 2.6.11 node-forge: 1.3.1 npm-package-arg: 7.0.0 ora: 3.4.0 @@ -2933,7 +3112,7 @@ packages: send: 0.18.0 slugify: 1.6.6 structured-headers: 0.4.1 - tar: 6.1.14 + tar: 6.1.15 tempy: 0.7.1 terminal-link: 2.1.1 text-table: 0.2.0 @@ -2954,8 +3133,8 @@ packages: node-forge: 1.3.1 nullthrows: 1.1.1 - /@expo/config-plugins@6.0.1: - resolution: {integrity: sha512-6mqZutxeibXFeqFfoZApFUEH2n1RxGXYMHCdJrDj4eXDBBFZ3aJ0XBoroZcHHHvfRieEsf54vNyJoWp7JZGj8g==} + /@expo/config-plugins@6.0.2: + resolution: {integrity: sha512-Cn01fXMHwjU042EgO9oO3Mna0o/UCrW91MQLMbJa4pXM41CYGjNgVy1EVXiuRRx/upegHhvltBw5D+JaUm8aZQ==} dependencies: '@expo/config-types': 48.0.0 '@expo/json-file': 8.2.37 @@ -2968,7 +3147,7 @@ packages: getenv: 1.0.0 glob: 7.1.6 resolve-from: 5.0.0 - semver: 7.5.0 + semver: 7.5.1 slash: 3.0.0 xcode: 3.0.1 xml2js: 0.4.23 @@ -2982,7 +3161,7 @@ packages: resolution: {integrity: sha512-WubrzTNNdAXy1FU8TdyQ7D9YtDj2tN3fWXDq+C8In+nB7Qc08zwH9cVdaGZ+rBVmjFZBh5ACfObKq/m9cm4QQA==} dependencies: '@babel/code-frame': 7.10.4 - '@expo/config-plugins': 6.0.1 + '@expo/config-plugins': 6.0.2 '@expo/config-types': 48.0.0 '@expo/json-file': 8.2.37 getenv: 1.0.0 @@ -3008,7 +3187,7 @@ packages: fs-extra: 9.0.0 is-docker: 2.2.1 is-wsl: 2.2.0 - node-fetch: 2.6.9 + node-fetch: 2.6.11 open: 8.4.2 resolve-from: 5.0.0 semver: 7.3.2 @@ -3033,7 +3212,7 @@ packages: rimraf: 2.7.1 sudo-prompt: 8.2.5 tmp: 0.0.33 - tslib: 2.5.0 + tslib: 2.5.2 transitivePeerDependencies: - supports-color @@ -3046,7 +3225,7 @@ packages: getenv: 1.0.0 jimp-compact: 0.16.1 mime: 2.6.0 - node-fetch: 2.6.9 + node-fetch: 2.6.11 parse-png: 2.1.0 resolve-from: 5.0.0 semver: 7.3.2 @@ -3109,7 +3288,7 @@ packages: expo-modules-autolinking: '>=0.8.1' dependencies: '@expo/config': 8.0.2 - '@expo/config-plugins': 6.0.1 + '@expo/config-plugins': 6.0.2 '@expo/config-types': 48.0.0 '@expo/image-utils': 0.3.22 '@expo/json-file': 8.2.37 @@ -3131,7 +3310,7 @@ packages: '@segment/loosely-validate-event': 2.0.0 fetch-retry: 4.1.1 md5: 2.3.0 - node-fetch: 2.6.9 + node-fetch: 2.6.11 remove-trailing-slash: 0.1.1 uuid: 8.3.2 transitivePeerDependencies: @@ -3351,7 +3530,7 @@ packages: engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@jest/types': 29.5.0 - '@sinonjs/fake-timers': 10.0.2 + '@sinonjs/fake-timers': 10.2.0 '@types/node': 18.16.3 jest-message-util: 29.5.0 jest-mock: 29.5.0 @@ -3602,7 +3781,7 @@ packages: p-reduce: 2.1.0 pacote: 13.6.2 pify: 5.0.0 - semver: 7.5.0 + semver: 7.5.1 slash: 3.0.0 validate-npm-package-license: 3.0.4 validate-npm-package-name: 4.0.0 @@ -3730,12 +3909,12 @@ packages: detect-libc: 2.0.1 https-proxy-agent: 5.0.1 make-dir: 3.1.0 - node-fetch: 2.6.9 + node-fetch: 2.6.11 nopt: 5.0.0 npmlog: 5.0.1 rimraf: 3.0.2 - semver: 7.5.0 - tar: 6.1.14 + semver: 7.5.1 + tar: 6.1.15 transitivePeerDependencies: - encoding - supports-color @@ -3747,12 +3926,12 @@ packages: detect-libc: 2.0.1 https-proxy-agent: 5.0.1 make-dir: 3.1.0 - node-fetch: 2.6.9 + node-fetch: 2.6.11 nopt: 5.0.0 npmlog: 5.0.1 rimraf: 3.0.2 - semver: 7.5.0 - tar: 6.1.14 + semver: 7.5.1 + tar: 6.1.15 transitivePeerDependencies: - encoding - supports-color @@ -3802,7 +3981,6 @@ packages: transitivePeerDependencies: - encoding - supports-color - dev: false /@mattrglobal/node-bbs-signatures@0.13.0: resolution: {integrity: sha512-S2wOwDCQYxdjSEjVfcbP3bTq4ZMKeRw/wvBhWRff8CEwuH5u3Qiul+azwDGSesvve1DDceaEhXWiGkXeZTojfQ==} @@ -3827,47 +4005,31 @@ packages: - supports-color optional: true - /@metamask/eth-sig-util@5.1.0: - resolution: {integrity: sha512-mlgziIHYlA9pi/XZerChqg4NocdOgBPB9NmxgXWQO2U2hH8RGOJQrz6j/AIKkYxgCMIE2PY000+joOwXfzeTDQ==} - engines: {node: '>=14.0.0'} - dependencies: - '@ethereumjs/util': 8.0.6 - bn.js: 4.12.0 - ethereum-cryptography: 2.0.0 - ethjs-util: 0.1.6 - tweetnacl: 1.0.3 - tweetnacl-util: 0.15.1 - dev: true - - /@microsoft/api-extractor-model@7.26.9(@types/node@18.16.3): - resolution: {integrity: sha512-1AowqcRy5qMH/OB7UNkdXa4qLoJp58WFdJ026IMFS8skA0OOAOcvBV/Fi4L7fO1R/8uCMz5KHi3NsqVH4Li8xg==} + /@microsoft/api-extractor-model@7.25.3: + resolution: {integrity: sha512-WWxBUq77p2iZ+5VF7Nmrm3y/UtqCh5bYV8ii3khwq3w99+fXWpvfsAhgSLsC7k8XDQc6De4ssMxH6He/qe1pzg==} dependencies: '@microsoft/tsdoc': 0.14.2 '@microsoft/tsdoc-config': 0.16.2 - '@rushstack/node-core-library': 3.59.0(@types/node@18.16.3) - transitivePeerDependencies: - - '@types/node' - dev: true + '@rushstack/node-core-library': 3.53.3 + dev: false - /@microsoft/api-extractor@7.34.9(@types/node@18.16.3): - resolution: {integrity: sha512-dasBIbqgHgxvfRfEOX4+ynNYQPnTYc6k7jkL3V4f/MoaS2xFUoIj/D71crrsDxf5MNMybjzeyZPdRNZdzvKBVw==} + /@microsoft/api-extractor@7.33.8: + resolution: {integrity: sha512-lNscBtYcNwJ4t9kKt6AdYA+FGDG6S8a2EhHdggxgn+rkcTzQ9P6ZsDBSjXa+r+E8qdZjOLP5J1rxohH7t+FTJg==} hasBin: true dependencies: - '@microsoft/api-extractor-model': 7.26.9(@types/node@18.16.3) + '@microsoft/api-extractor-model': 7.25.3 '@microsoft/tsdoc': 0.14.2 '@microsoft/tsdoc-config': 0.16.2 - '@rushstack/node-core-library': 3.59.0(@types/node@18.16.3) - '@rushstack/rig-package': 0.3.18 - '@rushstack/ts-command-line': 4.13.2 + '@rushstack/node-core-library': 3.53.3 + '@rushstack/rig-package': 0.3.17 + '@rushstack/ts-command-line': 4.13.1 colors: 1.2.5 lodash: 4.17.21 resolve: 1.22.2 semver: 7.3.8 source-map: 0.6.1 typescript: 4.8.4 - transitivePeerDependencies: - - '@types/node' - dev: true + dev: false /@microsoft/tsdoc-config@0.16.2: resolution: {integrity: sha512-OGiIzzoBLgWWR0UdRJX98oYO+XKGf7tiK4Zk6tQ/E4IJqGCe7dvkTvgDZV5cFJUzLGDOjeAXrnZoA6QkVySuxw==} @@ -3876,30 +4038,20 @@ packages: ajv: 6.12.6 jju: 1.4.0 resolve: 1.19.0 - dev: true + dev: false /@microsoft/tsdoc@0.14.2: resolution: {integrity: sha512-9b8mPpKrfeGRuhFH5iO1iwCLeIIsV6+H1sRfxbkoGXIyQE2BTsPd9zqSqQJ+pv5sJ/hT5M1zvOFL02MnEezFug==} - dev: true + dev: false /@multiformats/base-x@4.0.1: resolution: {integrity: sha512-eMk0b9ReBbV23xXU693TAIrLyeO5iTgBZGSJfpqriG8UkYvr/hC9u9pyMlAakDNHWmbhMZCDs6KQO0jzKD8OTw==} dev: true - /@noble/curves@1.0.0: - resolution: {integrity: sha512-2upgEu0iLiDVDZkNLeFV2+ht0BAVgQnEmCk6JsOch9Rp8xfkMCbvbAZlA2pBHQc73dbl+vFOXfqkf4uemdn0bw==} - dependencies: - '@noble/hashes': 1.2.0 - dev: true - /@noble/ed25519@1.7.1: resolution: {integrity: sha512-Rk4SkJFaXZiznFyC/t77Q0NKS4FL7TLJJsVG2V2oiEq3kJVeTdxysEe/yRWSpnWMe808XRDJ+VFh5pt/FN5plw==} dev: true - /@noble/hashes@1.2.0: - resolution: {integrity: sha512-FZfhjEDbT5GRswV3C6uvLPHMiVD6lQBmpoX5+eSiPaMTXte/IKqI5dykDxzZB/WBeK/CDuQRBWarPdi3FNY2zQ==} - dev: true - /@noble/secp256k1@1.7.0: resolution: {integrity: sha512-kbacwGSsH/CTout0ZnZWxnW1B+jH/7r/WAAKLBtrRJ/+CUH7lgmQzl3GTrQua3SGKWNSDsS6lmjnDpIJ5Dxyaw==} dev: true @@ -3934,11 +4086,11 @@ packages: '@npmcli/metavuln-calculator': 5.0.1 '@npmcli/name-from-folder': 2.0.0 '@npmcli/node-gyp': 3.0.0 - '@npmcli/package-json': 3.0.0 + '@npmcli/package-json': 3.1.0 '@npmcli/query': 3.0.0 - '@npmcli/run-script': 6.0.1 + '@npmcli/run-script': 6.0.2 bin-links: 4.0.1 - cacache: 17.1.0 + cacache: 17.1.3 common-ancestor-path: 1.0.1 hosted-git-info: 6.1.1 json-parse-even-better-errors: 3.0.0 @@ -3950,13 +4102,13 @@ packages: npm-pick-manifest: 8.0.1 npm-registry-fetch: 14.0.5 npmlog: 7.0.1 - pacote: 15.1.3 + pacote: 15.2.0 parse-conflict-json: 3.0.1 proc-log: 3.0.0 promise-all-reject-late: 1.0.1 promise-call-limit: 1.0.2 read-package-json-fast: 3.0.2 - semver: 7.5.0 + semver: 7.5.1 ssri: 10.0.4 treeverse: 3.0.0 walk-up-path: 1.0.0 @@ -3969,21 +4121,21 @@ packages: resolution: {integrity: sha512-8KG5RD0GVP4ydEzRn/I4BNDuxDtqVbOdm8675T49OIG/NGhaK0pjPX7ZcDlvKYbA+ulvVK3ztfcF4uBdOxuJbQ==} dependencies: '@gar/promisify': 1.1.3 - semver: 7.5.0 + semver: 7.5.1 /@npmcli/fs@2.1.2: resolution: {integrity: sha512-yOJKRvohFOaLqipNtwYB9WugyZKhC/DZC4VYPmpaCzDBrA8YpK3qHZ8/HGscMnE4GqbkLNuVcCnxkeQEdGt6LQ==} engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} dependencies: '@gar/promisify': 1.1.3 - semver: 7.5.0 + semver: 7.5.1 dev: true /@npmcli/fs@3.1.0: resolution: {integrity: sha512-7kZUAaLscfgbwBQRbvdMYaZOWyMEcPTH/tJjnyAWJ/dvvs9Ef+CERx/qJb9GExJpl1qipaDGn7KqHnFGGixd0w==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} dependencies: - semver: 7.5.0 + semver: 7.5.1 dev: true /@npmcli/git@3.0.2: @@ -3997,7 +4149,7 @@ packages: proc-log: 2.0.1 promise-inflight: 1.0.1 promise-retry: 2.0.1 - semver: 7.5.0 + semver: 7.5.1 which: 2.0.2 transitivePeerDependencies: - bluebird @@ -4013,7 +4165,7 @@ packages: proc-log: 3.0.0 promise-inflight: 1.0.1 promise-retry: 2.0.1 - semver: 7.5.0 + semver: 7.5.1 which: 3.0.1 transitivePeerDependencies: - bluebird @@ -4042,8 +4194,8 @@ packages: engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} dependencies: '@npmcli/name-from-folder': 2.0.0 - glob: 10.2.2 - minimatch: 9.0.0 + glob: 10.2.6 + minimatch: 9.0.1 read-package-json-fast: 3.0.2 dev: true @@ -4051,10 +4203,10 @@ packages: resolution: {integrity: sha512-qb8Q9wIIlEPj3WeA1Lba91R4ZboPL0uspzV0F9uwP+9AYMVB2zOoa7Pbk12g6D2NHAinSbHh6QYmGuRyHZ874Q==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} dependencies: - cacache: 17.1.0 + cacache: 17.1.3 json-parse-even-better-errors: 3.0.0 - pacote: 15.1.3 - semver: 7.5.0 + pacote: 15.2.0 + semver: 7.5.1 transitivePeerDependencies: - bluebird - supports-color @@ -4092,11 +4244,14 @@ packages: engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} dev: true - /@npmcli/package-json@3.0.0: - resolution: {integrity: sha512-NnuPuM97xfiCpbTEJYtEuKz6CFbpUHtaT0+5via5pQeI25omvQDFbp1GcGJ/c4zvL/WX0qbde6YiLgfZbWFgvg==} + /@npmcli/package-json@3.1.0: + resolution: {integrity: sha512-qNPy6Yf9ruFST99xcrl5EWAvrb7qFrwgVbwdzcTJlIgxbArKOq5e/bgZ6rTL1X9hDgAdPbvL8RWx/OTLSB0ToA==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} dependencies: + glob: 10.2.6 json-parse-even-better-errors: 3.0.0 + normalize-package-data: 5.0.0 + npm-normalize-package-bin: 3.0.1 dev: true /@npmcli/promise-spawn@3.0.0: @@ -4117,7 +4272,7 @@ packages: resolution: {integrity: sha512-MFNDSJNgsLZIEBVZ0Q9w9K7o07j5N4o4yjtdz2uEpuCZlXGMuPENiRaFYk0vRqAA64qVuUQwC05g27fRtfUgnA==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} dependencies: - postcss-selector-parser: 6.0.12 + postcss-selector-parser: 6.0.13 dev: true /@npmcli/run-script@4.1.7: @@ -4134,8 +4289,8 @@ packages: - supports-color dev: true - /@npmcli/run-script@6.0.1: - resolution: {integrity: sha512-Yi04ZSold8jcbBJD/ahKMJSQCQifH8DAbMwkBvoLaTpGFxzHC3B/5ZyoVR69q/4xedz84tvi9DJOJjNe17h+LA==} + /@npmcli/run-script@6.0.2: + resolution: {integrity: sha512-NCcr1uQo1k5U+SYlnIrbAh3cxy+OQT1VtqiAbxdymSlptbzBb62AjH2xXgjNCoP073hoa1CfCAcwoZ8k96C4nA==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} dependencies: '@npmcli/node-gyp': 3.0.0 @@ -4168,7 +4323,7 @@ packages: nx: 15.9.4 semver: 7.3.4 tmp: 0.2.1 - tslib: 2.5.0 + tslib: 2.5.2 dev: true /@nrwl/nx-darwin-arm64@15.9.4: @@ -4267,18 +4422,18 @@ packages: resolution: {integrity: sha512-/aFM2M4HVDBT/jjDBa84sJniv1t9Gm/rLkalaz9htOm+L+8JMj1k9w0CkUdcxNyNxZPlTxKPVko+m1VlM58ZVA==} engines: {node: '>= 14'} dependencies: - '@octokit/types': 9.2.1 + '@octokit/types': 9.2.3 dev: true - /@octokit/core@4.2.0: - resolution: {integrity: sha512-AgvDRUg3COpR82P7PBdGZF/NNqGmtMq2NiPqeSsDIeCfYFOZ9gddqWNQHnFdEUf+YwOj4aZYmJnlPp7OXmDIDg==} + /@octokit/core@4.2.1: + resolution: {integrity: sha512-tEDxFx8E38zF3gT7sSMDrT1tGumDgsw5yPG6BBh/X+5ClIQfMH/Yqocxz1PnHx6CHyF6pxmovUTOfZAUvQ0Lvw==} engines: {node: '>= 14'} dependencies: '@octokit/auth-token': 3.0.3 - '@octokit/graphql': 5.0.5 - '@octokit/request': 6.2.3 + '@octokit/graphql': 5.0.6 + '@octokit/request': 6.2.5 '@octokit/request-error': 3.0.3 - '@octokit/types': 9.2.1 + '@octokit/types': 9.2.3 before-after-hook: 2.2.3 universal-user-agent: 6.0.0 transitivePeerDependencies: @@ -4289,17 +4444,17 @@ packages: resolution: {integrity: sha512-LG4o4HMY1Xoaec87IqQ41TQ+glvIeTKqfjkCEmt5AIwDZJwQeVZFIEYXrYY6yLwK+pAScb9Gj4q+Nz2qSw1roA==} engines: {node: '>= 14'} dependencies: - '@octokit/types': 9.2.1 + '@octokit/types': 9.2.3 is-plain-object: 5.0.0 universal-user-agent: 6.0.0 dev: true - /@octokit/graphql@5.0.5: - resolution: {integrity: sha512-Qwfvh3xdqKtIznjX9lz2D458r7dJPP8l6r4GQkIdWQouZwHQK0mVT88uwiU2bdTU2OtT1uOlKpRciUWldpG0yQ==} + /@octokit/graphql@5.0.6: + resolution: {integrity: sha512-Fxyxdy/JH0MnIB5h+UQ3yCoh1FG4kWXfFKkpWqjZHw/p+Kc8Y44Hu/kCgNBT6nU1shNumEchmW/sUO1JuQnPcw==} engines: {node: '>= 14'} dependencies: - '@octokit/request': 6.2.3 - '@octokit/types': 9.2.1 + '@octokit/request': 6.2.5 + '@octokit/types': 9.2.3 universal-user-agent: 6.0.0 transitivePeerDependencies: - encoding @@ -4313,61 +4468,62 @@ packages: resolution: {integrity: sha512-HNWisMYlR8VCnNurDU6os2ikx0s0VyEjDYHNS/h4cgb8DeOxQ0n72HyinUtdDVxJhFy3FWLGl0DJhfEWk3P5Iw==} dev: true - /@octokit/openapi-types@17.1.1: - resolution: {integrity: sha512-/X7Gh/qWiWaooJmUnYD48SYy72fyrk2ceisOSe89JojK7r0j8YrTwYpDi76kI+c6QiqX1KSgdoBTMJvktsDkYw==} + /@octokit/openapi-types@17.2.0: + resolution: {integrity: sha512-MazrFNx4plbLsGl+LFesMo96eIXkFgEtaKbnNpdh4aQ0VM10aoylFsTYP1AEjkeoRNZiiPe3T6Gl2Hr8dJWdlQ==} dev: true /@octokit/plugin-enterprise-rest@6.0.1: resolution: {integrity: sha512-93uGjlhUD+iNg1iWhUENAtJata6w5nE+V4urXOAlIXdco6xNZtUSfYY8dzp3Udy74aqO/B5UZL80x/YMa5PKRw==} dev: true - /@octokit/plugin-paginate-rest@3.1.0(@octokit/core@4.2.0): + /@octokit/plugin-paginate-rest@3.1.0(@octokit/core@4.2.1): resolution: {integrity: sha512-+cfc40pMzWcLkoDcLb1KXqjX0jTGYXjKuQdFQDc6UAknISJHnZTiBqld6HDwRJvD4DsouDKrWXNbNV0lE/3AXA==} engines: {node: '>= 14'} peerDependencies: '@octokit/core': '>=4' dependencies: - '@octokit/core': 4.2.0 + '@octokit/core': 4.2.1 '@octokit/types': 6.41.0 dev: true - /@octokit/plugin-paginate-rest@6.0.0(@octokit/core@4.2.0): - resolution: {integrity: sha512-Sq5VU1PfT6/JyuXPyt04KZNVsFOSBaYOAq2QRZUwzVlI10KFvcbUo8lR258AAQL1Et60b0WuVik+zOWKLuDZxw==} + /@octokit/plugin-paginate-rest@6.1.2(@octokit/core@4.2.1): + resolution: {integrity: sha512-qhrmtQeHU/IivxucOV1bbI/xZyC/iOBhclokv7Sut5vnejAIAEXVcGQeRpQlU39E0WwK9lNvJHphHri/DB6lbQ==} engines: {node: '>= 14'} peerDependencies: '@octokit/core': '>=4' dependencies: - '@octokit/core': 4.2.0 - '@octokit/types': 9.2.1 + '@octokit/core': 4.2.1 + '@octokit/tsconfig': 1.0.2 + '@octokit/types': 9.2.3 dev: true - /@octokit/plugin-request-log@1.0.4(@octokit/core@4.2.0): + /@octokit/plugin-request-log@1.0.4(@octokit/core@4.2.1): resolution: {integrity: sha512-mLUsMkgP7K/cnFEw07kWqXGF5LKrOkD+lhCrKvPHXWDywAwuDUeDwWBpc69XK3pNX0uKiVt8g5z96PJ6z9xCFA==} peerDependencies: '@octokit/core': '>=3' dependencies: - '@octokit/core': 4.2.0 + '@octokit/core': 4.2.1 dev: true - /@octokit/plugin-rest-endpoint-methods@6.8.1(@octokit/core@4.2.0): + /@octokit/plugin-rest-endpoint-methods@6.8.1(@octokit/core@4.2.1): resolution: {integrity: sha512-QrlaTm8Lyc/TbU7BL/8bO49vp+RZ6W3McxxmmQTgYxf2sWkO8ZKuj4dLhPNJD6VCUW1hetCmeIM0m6FTVpDiEg==} engines: {node: '>= 14'} peerDependencies: '@octokit/core': '>=3' dependencies: - '@octokit/core': 4.2.0 + '@octokit/core': 4.2.1 '@octokit/types': 8.2.1 deprecation: 2.3.1 dev: true - /@octokit/plugin-rest-endpoint-methods@7.0.1(@octokit/core@4.2.0): - resolution: {integrity: sha512-pnCaLwZBudK5xCdrR823xHGNgqOzRnJ/mpC/76YPpNP7DybdsJtP7mdOwh+wYZxK5jqeQuhu59ogMI4NRlBUvA==} + /@octokit/plugin-rest-endpoint-methods@7.1.2(@octokit/core@4.2.1): + resolution: {integrity: sha512-R0oJ7j6f/AdqPLtB9qRXLO+wjI9pctUn8Ka8UGfGaFCcCv3Otx14CshQ89K4E88pmyYZS8p0rNTiprML/81jig==} engines: {node: '>= 14'} peerDependencies: '@octokit/core': '>=3' dependencies: - '@octokit/core': 4.2.0 - '@octokit/types': 9.2.1 + '@octokit/core': 4.2.1 + '@octokit/types': 9.2.3 deprecation: 2.3.1 dev: true @@ -4375,49 +4531,53 @@ packages: resolution: {integrity: sha512-crqw3V5Iy2uOU5Np+8M/YexTlT8zxCfI+qu+LxUB7SZpje4Qmx3mub5DfEKSO8Ylyk0aogi6TYdf6kxzh2BguQ==} engines: {node: '>= 14'} dependencies: - '@octokit/types': 9.2.1 + '@octokit/types': 9.2.3 deprecation: 2.3.1 once: 1.4.0 dev: true - /@octokit/request@6.2.3: - resolution: {integrity: sha512-TNAodj5yNzrrZ/VxP+H5HiYaZep0H3GU0O7PaF+fhDrt8FPrnkei9Aal/txsN/1P7V3CPiThG0tIvpPDYUsyAA==} + /@octokit/request@6.2.5: + resolution: {integrity: sha512-z83E8UIlPNaJUsXpjD8E0V5o/5f+vJJNbNcBwVZsX3/vC650U41cOkTLjq4PKk9BYonQGOnx7N17gvLyNjgGcQ==} engines: {node: '>= 14'} dependencies: '@octokit/endpoint': 7.0.5 '@octokit/request-error': 3.0.3 - '@octokit/types': 9.2.1 + '@octokit/types': 9.2.3 is-plain-object: 5.0.0 - node-fetch: 2.6.9 + node-fetch: 2.6.7 universal-user-agent: 6.0.0 transitivePeerDependencies: - encoding dev: true - /@octokit/rest@19.0.3: - resolution: {integrity: sha512-5arkTsnnRT7/sbI4fqgSJ35KiFaN7zQm0uQiQtivNQLI8RQx8EHwJCajcTUwmaCMNDg7tdCvqAnc7uvHHPxrtQ==} + /@octokit/rest@19.0.11: + resolution: {integrity: sha512-m2a9VhaP5/tUw8FwfnW2ICXlXpLPIqxtg3XcAiGMLj/Xhw3RSBfZ8le/466ktO1Gcjr8oXudGnHhxV1TXJgFxw==} engines: {node: '>= 14'} dependencies: - '@octokit/core': 4.2.0 - '@octokit/plugin-paginate-rest': 3.1.0(@octokit/core@4.2.0) - '@octokit/plugin-request-log': 1.0.4(@octokit/core@4.2.0) - '@octokit/plugin-rest-endpoint-methods': 6.8.1(@octokit/core@4.2.0) + '@octokit/core': 4.2.1 + '@octokit/plugin-paginate-rest': 6.1.2(@octokit/core@4.2.1) + '@octokit/plugin-request-log': 1.0.4(@octokit/core@4.2.1) + '@octokit/plugin-rest-endpoint-methods': 7.1.2(@octokit/core@4.2.1) transitivePeerDependencies: - encoding dev: true - /@octokit/rest@19.0.7: - resolution: {integrity: sha512-HRtSfjrWmWVNp2uAkEpQnuGMJsu/+dBr47dRc5QVgsCbnIc1+GFEaoKBWkYG+zjrsHpSqcAElMio+n10c0b5JA==} + /@octokit/rest@19.0.3: + resolution: {integrity: sha512-5arkTsnnRT7/sbI4fqgSJ35KiFaN7zQm0uQiQtivNQLI8RQx8EHwJCajcTUwmaCMNDg7tdCvqAnc7uvHHPxrtQ==} engines: {node: '>= 14'} dependencies: - '@octokit/core': 4.2.0 - '@octokit/plugin-paginate-rest': 6.0.0(@octokit/core@4.2.0) - '@octokit/plugin-request-log': 1.0.4(@octokit/core@4.2.0) - '@octokit/plugin-rest-endpoint-methods': 7.0.1(@octokit/core@4.2.0) + '@octokit/core': 4.2.1 + '@octokit/plugin-paginate-rest': 3.1.0(@octokit/core@4.2.1) + '@octokit/plugin-request-log': 1.0.4(@octokit/core@4.2.1) + '@octokit/plugin-rest-endpoint-methods': 6.8.1(@octokit/core@4.2.1) transitivePeerDependencies: - encoding dev: true + /@octokit/tsconfig@1.0.2: + resolution: {integrity: sha512-I0vDR0rdtP8p2lGMzvsJzbhdOWy405HcGovrspJ8RRibHnyRgggUSNO5AIox5LmqiwmatHKYsvj6VGFHkqS7lA==} + dev: true + /@octokit/types@6.41.0: resolution: {integrity: sha512-eJ2jbzjdijiL3B4PrSQaSjuF2sPEQPVCPzBvTHJD9Nz+9dw2SGH4K4xeQJ77YfTq5bRQ+bD8wT11JbeDPmxmGg==} dependencies: @@ -4430,10 +4590,10 @@ packages: '@octokit/openapi-types': 14.0.0 dev: true - /@octokit/types@9.2.1: - resolution: {integrity: sha512-Vx4keMiD/CAiwVFasLcH0xBSVbKIHebIZke9i7ZbUWGNN4vJFWSYH6Nvga7UY9NIJCGa6x3QG849XTbi5wYmkA==} + /@octokit/types@9.2.3: + resolution: {integrity: sha512-MMeLdHyFIALioycq+LFcA71v0S2xpQUX2cw6pPbHQjaibcHYwLnmK/kMZaWuGfGfjBJZ3wRUq+dOaWsvrPJVvA==} dependencies: - '@octokit/openapi-types': 17.1.1 + '@octokit/openapi-types': 17.2.0 dev: true /@parcel/watcher@2.0.4: @@ -4450,13 +4610,13 @@ packages: dependencies: asn1js: 3.0.5 pvtsutils: 1.3.2 - tslib: 2.5.0 + tslib: 2.5.2 /@peculiar/json-schema@1.1.12: resolution: {integrity: sha512-coUfuoMeIB7B8/NMekxaDzLhaYmp0HZNPEjYRm9goRou8UZIC3z21s0sL9AWoCw4EG876QyO3kYrc61WNF9B/w==} engines: {node: '>=8.0.0'} dependencies: - tslib: 2.5.0 + tslib: 2.5.2 /@peculiar/webcrypto@1.4.3: resolution: {integrity: sha512-VtaY4spKTdN5LjJ04im/d/joXuvLbQdgy5Z4DXF4MFZhQ+MTrejbNMkfZBp1Bs3O5+bFqnJgyGdPuZQflvIa5A==} @@ -4465,7 +4625,7 @@ packages: '@peculiar/asn1-schema': 2.3.6 '@peculiar/json-schema': 1.1.12 pvtsutils: 1.3.2 - tslib: 2.5.0 + tslib: 2.5.2 webcrypto-core: 1.7.7 /@pkgjs/parseargs@0.11.0: @@ -4627,7 +4787,7 @@ packages: chalk: 4.1.2 find-up: 5.0.0 mime: 2.6.0 - node-fetch: 2.6.9 + node-fetch: 2.6.11 open: 6.4.0 ora: 5.4.1 semver: 6.3.0 @@ -4678,57 +4838,38 @@ packages: /@react-native/polyfills@2.0.0: resolution: {integrity: sha512-K0aGNn1TjalKj+65D7ycc1//H9roAQ51GJVk5ZJQFb2teECGmzd86bYDC0aYdbRf7gtovescq4Zt6FR0tgXiHQ==} - /@rushstack/node-core-library@3.59.0(@types/node@18.16.3): - resolution: {integrity: sha512-f8ilzooAu8vj60dDe7weqHvR1NujOaKfe3TaNgAoT22rk+daUTmDtY3TlVGJ3HayVPmw3ffWToDatITi7Ic4ag==} - peerDependencies: - '@types/node': '*' - peerDependenciesMeta: - '@types/node': - optional: true + /@rushstack/node-core-library@3.53.3: + resolution: {integrity: sha512-H0+T5koi5MFhJUd5ND3dI3bwLhvlABetARl78L3lWftJVQEPyzcgTStvTTRiIM5mCltyTM8VYm6BuCtNUuxD0Q==} dependencies: - '@types/node': 18.16.3 + '@types/node': 12.20.24 colors: 1.2.5 fs-extra: 7.0.1 import-lazy: 4.0.0 jju: 1.4.0 - resolve: 1.22.2 + resolve: 1.17.0 semver: 7.3.8 z-schema: 5.0.5 - dev: true + dev: false - /@rushstack/rig-package@0.3.18: - resolution: {integrity: sha512-SGEwNTwNq9bI3pkdd01yCaH+gAsHqs0uxfGvtw9b0LJXH52qooWXnrFTRRLG1aL9pf+M2CARdrA9HLHJys3jiQ==} + /@rushstack/rig-package@0.3.17: + resolution: {integrity: sha512-nxvAGeIMnHl1LlZSQmacgcRV4y1EYtgcDIrw6KkeVjudOMonlxO482PhDj3LVZEp6L7emSf6YSO2s5JkHlwfZA==} dependencies: - resolve: 1.22.2 + resolve: 1.17.0 strip-json-comments: 3.1.1 - dev: true + dev: false - /@rushstack/ts-command-line@4.13.2: - resolution: {integrity: sha512-bCU8qoL9HyWiciltfzg7GqdfODUeda/JpI0602kbN5YH22rzTxyqYvv7aRLENCM7XCQ1VRs7nMkEqgJUOU8Sag==} + /@rushstack/ts-command-line@4.13.1: + resolution: {integrity: sha512-UTQMRyy/jH1IS2U+6pyzyn9xQ2iMcoUKkTcZUzOP/aaMiKlWLwCTDiBVwhw/M1crDx6apF9CwyjuWO9r1SBdJQ==} dependencies: '@types/argparse': 1.0.38 argparse: 1.0.10 colors: 1.2.5 string-argv: 0.3.2 - dev: true + dev: false /@scure/base@1.1.1: resolution: {integrity: sha512-ZxOhsSyxYwLJj3pLZCefNitxsj093tb2vq90mp2txoYeBqbcjDjqFhyM8eUjq/uFm6zJ+mUuqxlS2FkuSY1MTA==} - - /@scure/bip32@1.3.0: - resolution: {integrity: sha512-bcKpo1oj54hGholplGLpqPHRbIsnbixFtc06nwuNM5/dwSXOq/AAYoIBRsBmnZJSdfeNW5rnff7NTAz3ZCqR9Q==} - dependencies: - '@noble/curves': 1.0.0 - '@noble/hashes': 1.2.0 - '@scure/base': 1.1.1 - dev: true - - /@scure/bip39@1.2.0: - resolution: {integrity: sha512-SX/uKq52cuxm4YFXWFaVByaSHJh2w3BnokVSeUJVCv6K7WulT9u2BuNRBhuFl8vAuYnzx9bEu9WgpcNYTrYieg==} - dependencies: - '@noble/hashes': 1.2.0 - '@scure/base': 1.1.1 - dev: true + dev: false /@segment/loosely-validate-event@2.0.0: resolution: {integrity: sha512-ZMCSfztDBqwotkl848ODgVcAmN4OItEWDCkshcKz0/W6gGSQayuuCtWV/MlodFivAZD793d6UgANd6wCXUfrIw==} @@ -4765,7 +4906,7 @@ packages: peerDependencies: semantic-release: '>=18.0.0-beta.1' dependencies: - '@octokit/rest': 19.0.7 + '@octokit/rest': 19.0.11 '@semantic-release/error': 3.0.0 aggregate-error: 3.1.0 bottleneck: 2.19.5 @@ -4805,7 +4946,7 @@ packages: read-pkg: 5.2.0 registry-auth-token: 5.0.2 semantic-release: 19.0.5 - semver: 7.5.0 + semver: 7.5.1 tempy: 1.0.1 dev: true @@ -4855,15 +4996,15 @@ packages: type-detect: 4.0.8 dev: true - /@sinonjs/commons@2.0.0: - resolution: {integrity: sha512-uLa0j859mMrg2slwQYdO/AkrOfmH+X6LTVmNTS9CqexuE2IvVORIkSpJLqePAbEnKJ77aMmCwr1NUZ57120Xcg==} + /@sinonjs/commons@3.0.0: + resolution: {integrity: sha512-jXBtWAF4vmdNmZgD5FoKsVLv3rPgDnLgPbU84LIJ3otV44vJlDRokVng5v8NFJdCf/da9legHcKaRuZs4L7faA==} dependencies: type-detect: 4.0.8 - /@sinonjs/fake-timers@10.0.2: - resolution: {integrity: sha512-SwUDyjWnah1AaNl7kxsa7cfLhlTYoiyhDAIgyh+El30YvXs/o7OLXpYH88Zdhyx9JExKrmHDJ+10bwIcY80Jmw==} + /@sinonjs/fake-timers@10.2.0: + resolution: {integrity: sha512-OPwQlEdg40HAj5KNF8WW6q2KG4Z+cBCZb3m4ninfTZKaBmbIJodviQsDBoYMPHkOyJJMHnOJo5j2+LKDOhOACg==} dependencies: - '@sinonjs/commons': 2.0.0 + '@sinonjs/commons': 3.0.0 /@sinonjs/fake-timers@8.1.0: resolution: {integrity: sha512-OAPJUAtgeINhh/TAlUID4QTs53Njm7xzddaVlEs/SXwgtiD1tW22zAB/W1wdqfrpmikgaWQ9Fw6Ws+hsiRm5Vg==} @@ -4910,13 +5051,13 @@ packages: transitivePeerDependencies: - encoding - /@sphereon/ed25519-signature-2018@0.7.0-unstable.6(expo-crypto@12.2.2)(expo@48.0.16)(msrcrypto@1.5.8)(react-native-securerandom@1.0.1): + /@sphereon/ed25519-signature-2018@0.7.0-unstable.6(expo-crypto@12.2.2)(expo@48.0.17)(msrcrypto@1.5.8)(react-native-securerandom@1.0.1): resolution: {integrity: sha512-HO+W3v50yv0DrCrhCH3MFkHuUk0snM8zf8XFt6ym3xe2Dv/9x1J8xk6VZeYhSygvoUavH5x/Az6NbV4KDMgrXA==} engines: {node: '>=16'} dependencies: '@digitalcredentials/credentials-context': 1.0.5 '@digitalcredentials/jsonld': 5.2.1 - '@sphereon/isomorphic-webcrypto': 2.4.0-unstable.4(expo-crypto@12.2.2)(expo@48.0.16)(msrcrypto@1.5.8)(react-native-securerandom@1.0.1) + '@sphereon/isomorphic-webcrypto': 2.4.0-unstable.4(expo-crypto@12.2.2)(expo@48.0.17)(msrcrypto@1.5.8)(react-native-securerandom@1.0.1) '@transmute/credentials-context': 0.7.0-unstable.80 '@transmute/ed25519-key-pair': 0.7.0-unstable.80 '@transmute/jose-ld': 0.7.0-unstable.80 @@ -4929,15 +5070,14 @@ packages: - msrcrypto - react-native-securerandom - web-streams-polyfill - dev: false - /@sphereon/ion-pow@0.2.0(@sphereon/react-native-argon2@2.0.9)(react-native@0.71.7): + /@sphereon/ion-pow@0.2.0(@sphereon/react-native-argon2@2.0.9)(react-native@0.71.8): resolution: {integrity: sha512-SpEG4mV5D+K/jrqGI9QSBPPKO5+Kpu6F3cINBKbWiz+ZI4boWwz9JAdNspD45YnnMqTbR14CDEGtHwOaHboJQg==} peerDependencies: '@sphereon/react-native-argon2': ^2.0.7 dependencies: - '@sphereon/isomorphic-argon2': 1.0.1(@sphereon/react-native-argon2@2.0.9)(react-native@0.71.7) - '@sphereon/react-native-argon2': 2.0.9(react-native@0.71.7) + '@sphereon/isomorphic-argon2': 1.0.1(@sphereon/react-native-argon2@2.0.9)(react-native@0.71.8) + '@sphereon/react-native-argon2': 2.0.9(react-native@0.71.8) cross-fetch: 3.1.5 debug: 4.3.4 uint8arrays: 3.1.1 @@ -4947,19 +5087,19 @@ packages: - supports-color dev: true - /@sphereon/isomorphic-argon2@1.0.1(@sphereon/react-native-argon2@2.0.9)(react-native@0.71.7): + /@sphereon/isomorphic-argon2@1.0.1(@sphereon/react-native-argon2@2.0.9)(react-native@0.71.8): resolution: {integrity: sha512-Z40mdiuuZjII19FfIsti9JFGqX56jhpaeZb135BZayJPaRSbi8JnbJ3pzulJJAHsymkWzVqMqt242fBKpualHg==} peerDependencies: '@sphereon/react-native-argon2': ^2.0.9 react-native: '>=0.60.0' dependencies: - '@sphereon/react-native-argon2': 2.0.9(react-native@0.71.7) + '@sphereon/react-native-argon2': 2.0.9(react-native@0.71.8) argon2-browser: 1.18.0 - react-native: 0.71.7(@babel/core@7.21.8)(@babel/preset-env@7.21.5)(react@18.2.0) + react-native: 0.71.8(@babel/core@7.21.8)(@babel/preset-env@7.21.5)(react@18.2.0) uint8arrays: 3.1.1 dev: true - /@sphereon/isomorphic-webcrypto@2.4.0-unstable.4(expo-crypto@12.2.2)(expo@48.0.16)(msrcrypto@1.5.8)(react-native-securerandom@1.0.1): + /@sphereon/isomorphic-webcrypto@2.4.0-unstable.4(expo-crypto@12.2.2)(expo@48.0.17)(msrcrypto@1.5.8)(react-native-securerandom@1.0.1): resolution: {integrity: sha512-7i9GBta0yji3Z5ocyk82fXpqrV/swe7hXZVfVzOXRaGtTUNd+y8W/3cpHRQC2S4UEO/5N3lX7+B6qUunK9wS/Q==} peerDependencies: expo: '*' @@ -4973,13 +5113,13 @@ packages: b64u-lite: 1.1.0 cipher-base: 1.0.4 create-hash: 1.2.0 - expo: 48.0.16(@babel/core@7.21.8) - expo-crypto: 12.2.2(expo@48.0.16) + expo: 48.0.17(@babel/core@7.21.8) + expo-crypto: 12.2.2(expo@48.0.17) inherits: 2.0.4 md5.js: 1.3.5 msrcrypto: 1.5.8 randomfill: 1.0.4 - react-native-securerandom: 1.0.1(react-native@0.71.7) + react-native-securerandom: 1.0.1(react-native@0.71.8) ripemd160: 2.0.2 sha.js: 2.4.11 str2buf: 1.3.0 @@ -5016,12 +5156,12 @@ packages: nanoid: 3.3.6 string.prototype.matchall: 4.0.8 - /@sphereon/react-native-argon2@2.0.9(react-native@0.71.7): + /@sphereon/react-native-argon2@2.0.9(react-native@0.71.8): resolution: {integrity: sha512-mXcp3meaKbv5TpEPxItZ1ZuRqkdNf8vjx3EM+GqNVQ8QQF9pbD3jw6wQfuFRPc+8kN+m9GEiVVbd9I0m50OPBg==} peerDependencies: react-native: '>=0.67.0' dependencies: - react-native: 0.71.7(@babel/core@7.21.8)(@babel/preset-env@7.21.5)(react@18.2.0) + react-native: 0.71.8(@babel/core@7.21.8)(@babel/preset-env@7.21.5)(react@18.2.0) dev: true /@sphereon/ssi-sdk-ext.did-provider-jwk@0.12.0: @@ -5077,6 +5217,18 @@ packages: - typescript dev: true + /@sphereon/ssi-sdk-ext.did-resolver-jwk@0.12.0: + resolution: {integrity: sha512-tq4IsKVlkAmUrrpAUQwKllLsX1kUzY8n/CXbvIyEJoycJ1gUmmUn7K9SY0g2e9YXAwRpCNSSqIC9PuWfAaeDKw==} + dependencies: + '@sphereon/ssi-types': link:packages/ssi-types + base64url: 3.0.1 + debug: 4.3.4 + did-resolver: 4.1.0 + uint8arrays: 3.1.1 + transitivePeerDependencies: + - supports-color + dev: true + /@sphereon/ssi-sdk-ext.did-resolver-key@0.12.0: resolution: {integrity: sha512-oKZqHIo9T94/oZ3eetQ4VDXEMUT34JJfMgGLcUhpBHg/AfRmTb9/rNnSZ4TUAIbbDkoAKCDShl0K5rJ8GenRNQ==} dependencies: @@ -5084,7 +5236,7 @@ packages: '@stablelib/ed25519': 1.0.3 bigint-mod-arith: 3.2.1 did-resolver: 4.1.0 - enhanced-resolve: 5.13.0 + enhanced-resolve: 5.14.0 lodash.isplainobject: 4.0.6 multiformats: 9.9.0 nist-weierstrauss: 1.6.1 @@ -5110,11 +5262,11 @@ packages: - encoding - supports-color - /@sphereon/ssi-sdk-ext.key-manager@0.12.0(expo-crypto@12.2.2)(expo@48.0.16)(msrcrypto@1.5.8)(react-native-securerandom@1.0.1): + /@sphereon/ssi-sdk-ext.key-manager@0.12.0(expo-crypto@12.2.2)(expo@48.0.17)(msrcrypto@1.5.8)(react-native-securerandom@1.0.1): resolution: {integrity: sha512-pXruY2bprzduE8Irpj3Vv1RY/2FC7hGHVytuYiPNMfq9nPvXCg0kJ3xOw1bkrPEIixhHpR1zlnnrgm2lTPFfsA==} dependencies: '@mattrglobal/bbs-signatures': 1.1.0 - '@sphereon/ssi-sdk-ext.kms-local': 0.12.0(expo-crypto@12.2.2)(expo@48.0.16)(msrcrypto@1.5.8)(react-native-securerandom@1.0.1) + '@sphereon/ssi-sdk-ext.kms-local': 0.12.0(expo-crypto@12.2.2)(expo@48.0.17)(msrcrypto@1.5.8)(react-native-securerandom@1.0.1) '@veramo/core': 4.2.0(patch_hash=c5oempznsz4br5w3tcuk2i2mau) '@veramo/key-manager': 4.2.0 transitivePeerDependencies: @@ -5145,11 +5297,11 @@ packages: transitivePeerDependencies: - supports-color - /@sphereon/ssi-sdk-ext.kms-local@0.12.0(expo-crypto@12.2.2)(expo@48.0.16)(msrcrypto@1.5.8)(react-native-securerandom@1.0.1): + /@sphereon/ssi-sdk-ext.kms-local@0.12.0(expo-crypto@12.2.2)(expo@48.0.17)(msrcrypto@1.5.8)(react-native-securerandom@1.0.1): resolution: {integrity: sha512-PFsCE7HySyF+pDZAZSodFUpxz7ooWqe1fpz1CdDb/BYm4kQS+8ER1X+d4/i3Fhhv5KSfutWPYMeVBoWme1CYbg==} dependencies: '@mattrglobal/bbs-signatures': 1.1.0 - '@sphereon/isomorphic-webcrypto': 2.4.0-unstable.4(expo-crypto@12.2.2)(expo@48.0.16)(msrcrypto@1.5.8)(react-native-securerandom@1.0.1) + '@sphereon/isomorphic-webcrypto': 2.4.0-unstable.4(expo-crypto@12.2.2)(expo@48.0.17)(msrcrypto@1.5.8)(react-native-securerandom@1.0.1) '@sphereon/ssi-sdk-ext.did-utils': 0.12.0 '@sphereon/ssi-sdk-ext.key-utils': 0.12.0 '@trust/keyto': 2.0.0-alpha1 @@ -5166,15 +5318,153 @@ packages: - supports-color dev: true - /@sphereon/wellknown-dids-client@0.1.3: - resolution: {integrity: sha512-TAT24L3RoXD8ocrkTcsz7HuJmgjNjdoV6IXP1p3DdaI/GqkynytXE3J1+F7vUFMRYwY5nW2RaXSgDQhrFJemaA==} + /@sphereon/ssi-sdk.data-store@0.11.1-next.70(ts-node@10.9.1): + resolution: {integrity: sha512-pnca7KjL30KMamOLhXf6LDp/wKHRt0qf6akKuuMAPWQJxWjHa4ddSXQWB0Owrx5B6xtl7sjayhCIWJKtlIzOMQ==} dependencies: '@sphereon/ssi-types': link:packages/ssi-types - cross-fetch: 3.1.5 - jwt-decode: 3.1.2 + '@veramo/core': 4.2.0(patch_hash=c5oempznsz4br5w3tcuk2i2mau) + class-validator: 0.14.0 + debug: 4.3.4 + typeorm: 0.3.12(sqlite3@5.1.6)(ts-node@10.9.1) transitivePeerDependencies: - - encoding - dev: false + - '@google-cloud/spanner' + - '@sap/hana-client' + - better-sqlite3 + - hdb-pool + - ioredis + - mongodb + - mssql + - mysql2 + - oracledb + - pg + - pg-native + - pg-query-stream + - redis + - sql.js + - sqlite3 + - supports-color + - ts-node + - typeorm-aurora-data-api-driver + dev: true + + /@sphereon/ssi-sdk.kv-store-temp@0.11.1-next.70(ts-node@10.9.1): + resolution: {integrity: sha512-p1dKaAJTveaT4q9EzNrwiyVJQMs0vWaDmctPig4rbOV5+gbSaHftllHwLK62UGfYI/iLvesd3TgpYBkE9CkYig==} + dependencies: + '@veramo/utils': 4.2.0 + debug: 4.3.4 + events: 3.3.0 + json-buffer: 3.0.1 + typeorm: 0.3.12(sqlite3@5.1.6)(ts-node@10.9.1) + uint8arrays: 3.1.1 + transitivePeerDependencies: + - '@google-cloud/spanner' + - '@sap/hana-client' + - better-sqlite3 + - encoding + - hdb-pool + - ioredis + - mongodb + - mssql + - mysql2 + - oracledb + - pg + - pg-native + - pg-query-stream + - redis + - sql.js + - sqlite3 + - supports-color + - ts-node + - typeorm-aurora-data-api-driver + dev: false + + /@sphereon/ssi-sdk.presentation-exchange@0.11.1-next.70(ts-node@10.9.1): + resolution: {integrity: sha512-GGWVzX9tKsbTawtoHIHRZqiGpog40yaXWtfQIew9OvmRk/7y3h+fx4xxC+Mf/QrMwoGzRpy85vyWTo3PPrxeog==} + dependencies: + '@sphereon/pex': 2.0.1 + '@sphereon/pex-models': 2.0.2 + '@sphereon/ssi-sdk-ext.did-utils': 0.12.0 + '@sphereon/ssi-sdk.kv-store-temp': 0.11.1-next.70(ts-node@10.9.1) + '@sphereon/ssi-types': link:packages/ssi-types + '@veramo/core': 4.2.0(patch_hash=c5oempznsz4br5w3tcuk2i2mau) + transitivePeerDependencies: + - '@google-cloud/spanner' + - '@sap/hana-client' + - better-sqlite3 + - encoding + - hdb-pool + - ioredis + - mongodb + - mssql + - mysql2 + - oracledb + - pg + - pg-native + - pg-query-stream + - redis + - sql.js + - sqlite3 + - supports-color + - ts-node + - typeorm-aurora-data-api-driver + dev: false + + /@sphereon/ssi-sdk.vc-handler-ld-local@0.11.1-next.70(expo-crypto@12.2.2)(expo@48.0.17)(msrcrypto@1.5.8)(react-native-securerandom@1.0.1): + resolution: {integrity: sha512-/hE+5npK4gZZbWU29vRaF6Y+tY9l7hHx5++fpftf0Y23j7tY0sB/O9uLycfQ7N979x5/2nn231BTjx0k3dpanQ==} + peerDependencies: + react-native-securerandom: ^1.0.1 + dependencies: + '@digitalcredentials/ed25519-signature-2020': 3.0.2 + '@digitalcredentials/ed25519-verification-key-2020': 3.2.2 + '@digitalcredentials/jsonld': 5.2.1 + '@digitalcredentials/jsonld-signatures': 9.3.1 + '@digitalcredentials/rdf-canonize': 1.0.0 + '@digitalcredentials/vc': 5.0.0 + '@digitalcredentials/x25519-key-agreement-2020-context': 1.0.0 + '@mattrglobal/jsonld-signatures-bbs': 1.1.1 + '@sphereon/ed25519-signature-2018': 0.7.0-unstable.6(expo-crypto@12.2.2)(expo@48.0.17)(msrcrypto@1.5.8)(react-native-securerandom@1.0.1) + '@sphereon/isomorphic-webcrypto': 2.4.0-unstable.4(expo-crypto@12.2.2)(expo@48.0.17)(msrcrypto@1.5.8)(react-native-securerandom@1.0.1) + '@sphereon/ssi-sdk-ext.did-utils': 0.12.0 + '@sphereon/ssi-sdk.core': link:packages/ssi-sdk-core + '@sphereon/ssi-types': link:packages/ssi-types + '@transmute/ed25519-key-pair': 0.7.0-unstable.80 + '@transmute/jose-ld': 0.7.0-unstable.80 + '@transmute/jsonld': 0.0.4 + '@transmute/jsonld-document-loader': 0.7.0-unstable.80 + '@transmute/secp256k1-key-pair': 0.7.0-unstable.80 + '@transmute/security-context': 0.7.0-unstable.80 + '@transmute/vc-status-rl-2020': 0.7.0-unstable.80 + '@transmute/web-crypto-key-pair': 0.7.0-unstable.80 + '@veramo/core': 4.2.0(patch_hash=c5oempznsz4br5w3tcuk2i2mau) + '@veramo/utils': 4.2.0 + credentials-context: 2.0.0 + crypto-ld: 6.0.0 + debug: 4.3.4 + did-context: 3.1.1 + ed25519-signature-2018-context: 1.1.0 + ed25519-signature-2020-context: 1.1.0 + jsonld: link:node_modules/.pnpm/@digitalcredentials+jsonld@5.2.1/node_modules/@digitalcredentials/jsonld + jsonld-signatures: 7.0.0 + react-native-securerandom: 1.0.1(react-native@0.71.8) + transitivePeerDependencies: + - domexception + - encoding + - expo + - expo-crypto + - msrcrypto + - supports-color + - web-streams-polyfill + dev: true + + /@sphereon/wellknown-dids-client@0.1.3: + resolution: {integrity: sha512-TAT24L3RoXD8ocrkTcsz7HuJmgjNjdoV6IXP1p3DdaI/GqkynytXE3J1+F7vUFMRYwY5nW2RaXSgDQhrFJemaA==} + dependencies: + '@sphereon/ssi-types': link:packages/ssi-types + cross-fetch: 3.1.5 + jwt-decode: 3.1.2 + transitivePeerDependencies: + - encoding + dev: false /@sqltools/formatter@1.2.5: resolution: {integrity: sha512-Uy0+khmZqUrUGm5dmMqVlnvufZRSK0FbYzVgp0UMstm+F5+W2/jnEEQyc9vo1ZR/E5ZI/B1WjjoTqBqwJL6Krw==} @@ -5330,8 +5620,8 @@ packages: '@stablelib/wipe': 1.0.1 dev: true - /@testing-library/dom@9.2.0: - resolution: {integrity: sha512-xTEnpUKiV/bMyEsE5bT4oYA0x0Z/colMtxzUY8bKyPXBNLn/e0V4ZjBZkEhms0xE4pv9QsPfSRu9AWS4y5wGvA==} + /@testing-library/dom@9.3.0: + resolution: {integrity: sha512-Dffe68pGwI6WlLRYR2I0piIkyole9cSBH5jGQKCGMRpHW5RHCqAUaqc2Kv0tUyd4dU4DLPKhJIjyKOnjv4tuUw==} engines: {node: '>=14'} dependencies: '@babel/code-frame': 7.21.4 @@ -5367,7 +5657,7 @@ packages: react-dom: ^18.0.0 dependencies: '@babel/runtime': 7.21.5 - '@testing-library/dom': 9.2.0 + '@testing-library/dom': 9.3.0 '@types/react-dom': 18.2.4 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) @@ -5398,7 +5688,6 @@ packages: dependencies: base64url: 3.0.1 pako: 2.1.0 - dev: false /@transmute/credentials-context@0.7.0-unstable.80: resolution: {integrity: sha512-WhTrnSsIFcWGr3nAVUr1CBBzKKGWs8TJnXPAK+I3QzshennkMNbXpLNpU/sK3cum7eTRPyxFVbH37AxrHStQOw==} @@ -5408,7 +5697,6 @@ packages: /@transmute/did-context@0.7.0-unstable.80: resolution: {integrity: sha512-LKVmwWsEiOqK4/HFm+qGmDB+zk4QZkZfzFm4uhSC+FPKigg25xkk7JiNsAV5x03+7EFrKvV1nTG0UZa5t4yvGg==} - dev: false /@transmute/did-key-bls12381@0.3.0-unstable.10: resolution: {integrity: sha512-ExSADdvDxrYeCx8RsKXZGMjJmHrOJ9vyYtziZUaJ97K/sn1uVlvIOTp9V4xHa6j9cT1wTzSqJ325euwGFeK+WQ==} @@ -5430,7 +5718,6 @@ packages: '@stablelib/xchacha20poly1305': 1.0.1 '@transmute/did-key-common': 0.2.1-unstable.42 web-streams-polyfill: 3.2.1 - dev: false /@transmute/did-key-common@0.2.1-unstable.42: resolution: {integrity: sha512-mJ58IKEBxa6SorCrIBSPu0OcEj94Y5+0/qUKqbNTTqfCOsPi6E5BEzMIgpf3Unrb59u+u5JBL0T/Sy7coOSO1A==} @@ -5440,7 +5727,6 @@ packages: borc: 2.1.2 canonicalize: 1.0.8 cbor: 5.2.0 - dev: false /@transmute/did-key-common@0.3.0-unstable.10: resolution: {integrity: sha512-Iryh/HcGIvmTtWFTRaG/JEgbUsqI5OqKqkR2676yQWK4ajLMsyNattz5n0ZfFQk/4U7Ee6pJvvKRduFDAqqV0Q==} @@ -5465,7 +5751,6 @@ packages: base64url: 3.0.1 bs58: 4.0.1 canonicalize: 1.0.8 - dev: false /@transmute/did-key-ed25519@0.3.0-unstable.10: resolution: {integrity: sha512-9QdXl58DjwqBuOJBx6DtvaNW2bZLmVBxMSq2En4RAQcGIz1GGulyEQ1NB7PLIAgnam3LIFxiK6RiQGQTfJmmJg==} @@ -5498,7 +5783,6 @@ packages: base64url: 3.0.1 bs58: 4.0.1 canonicalize: 1.0.8 - dev: false /@transmute/did-key-x25519@0.3.0-unstable.10: resolution: {integrity: sha512-Jm5UxwI9EhlfVQ9D0Clj9RlMvhOi8nqAgQG30KMzjFMVGfWqIPwQNZFvmL+XsQ7g3dfTo5iQwXBY0de/f+RoMA==} @@ -5571,7 +5855,6 @@ packages: engines: {node: '>=16'} dependencies: factory.ts: 1.4.1 - dev: false /@transmute/jsonld-schema@0.7.0-unstable.80: resolution: {integrity: sha512-KWOXmN3WU76ciFQWyzZqrG7bjjmAn0KE+D3M7wB6XI6XB6aWlwYAuQXQqsqrPSpGo69LqTv0nTCHY5ie4Ta58g==} @@ -5580,7 +5863,6 @@ packages: '@transmute/jsonld': 0.0.4 ajv: 8.12.0 genson-js: 0.0.5 - dev: false /@transmute/jsonld@0.0.4: resolution: {integrity: sha512-6G++8imMYW9dtTvATPHNfrV3lLeX5E57DOmlgIDfO0A0yjkBCss1usB80NfONS26ynyveb8vTbp4nQDW9Ki4Rw==} @@ -5616,7 +5898,6 @@ packages: '@transmute/security-context': 0.0.4-unstable.2 jsonld: link:node_modules/.pnpm/@digitalcredentials+jsonld@5.2.1/node_modules/@digitalcredentials/jsonld serialize-error: 7.0.1 - dev: false /@transmute/linked-data-proof@0.7.0-unstable.80: resolution: {integrity: sha512-E4Lq6RFwjWlejDjEZKEZ25j35i93nnPxOevW8pDAabpQfz6osLzhNvVrNR8RdBdRP1a5byRBDzqsO1RsHKhAJA==} @@ -5626,11 +5907,9 @@ packages: serialize-error: 7.0.1 transitivePeerDependencies: - encoding - dev: false /@transmute/revocation-list-context@0.7.0-unstable.80: resolution: {integrity: sha512-rcvGRs8NmiRha56ls1Kbn9NrxYdvcY9E6sxWtZxs1uzjEcshnlj0KMizHZ3AlrUPiP1tGjgi1dAXRUz90TKAuA==} - dev: false /@transmute/secp256k1-key-pair@0.7.0-unstable.80: resolution: {integrity: sha512-tPq00bzqfMKgk6YYEqtSU1p+702j7VV37XLFlwMSSDK18JgVoQlp3ULZddEeFajbXQgX8N6yq6jlDUdXLW27bA==} @@ -5642,7 +5921,6 @@ packages: /@transmute/security-context@0.0.4-unstable.2: resolution: {integrity: sha512-4Z+GvyADU2ol78mrngn6zMHG7bvhEwCs2acNczavtwQR2S5Zkhg9P4ndeDA0PlOgZpaTQY6tnWp2XMcBKxXzhg==} - dev: false /@transmute/security-context@0.6.1-unstable.37: resolution: {integrity: sha512-GtLmG65qlORrz/2S4I74DT+vA4+qXsFxrMr0cNOXjUqZBd/AW1PTrFnryLF9907BfoiD58HC9qb1WVGWjSlBYw==} @@ -5664,7 +5942,6 @@ packages: '@transmute/vc.js': 0.7.0-unstable.80 transitivePeerDependencies: - encoding - dev: false /@transmute/vc.js@0.7.0-unstable.80: resolution: {integrity: sha512-J3Fpvo+67nflpF06OmUmIy70Em+s837ZmbLWsN467Tw6k+VVEB2G7HNGzXHood+BOovYCYmn0rso3wWp39DySw==} @@ -5678,7 +5955,6 @@ packages: moment: 2.29.4 transitivePeerDependencies: - encoding - dev: false /@transmute/web-crypto-key-pair@0.7.0-unstable.80: resolution: {integrity: sha512-k7kV3DPZoIoLSItnU9qHOBebMhem2y6Qay8JSgS+QTsEf4sGMNl3Unm560I9aocvdlurMTwQmgCfwPJ8WFQYaQ==} @@ -5734,8 +6010,8 @@ packages: /@tsconfig/node14@1.0.3: resolution: {integrity: sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==} - /@tsconfig/node16@1.0.3: - resolution: {integrity: sha512-yOlFc+7UtL/89t2ZhjPvvB/DeAr3r+Dq58IgzsFkOAvVC6NMJXmCGjbptdXdR9qsX7pKcTL+s87FtYREi2dEEQ==} + /@tsconfig/node16@1.0.4: + resolution: {integrity: sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==} /@tufjs/canonical-json@1.0.0: resolution: {integrity: sha512-QTnf++uxunWvG2z3UFNzAoQPHxnSXOwtaI3iJ+AohhV+5vONuArPjJE7aPXPVXfXJsqrVbZBu9b81AJoSd09IQ==} @@ -5747,12 +6023,12 @@ packages: engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} dependencies: '@tufjs/canonical-json': 1.0.0 - minimatch: 9.0.0 + minimatch: 9.0.1 dev: true /@types/argparse@1.0.38: resolution: {integrity: sha512-ebDJ9b0e702Yr7pWgB0jzm+CX4Srzz8RcXtLJDJB+BSccqMa36uyH/zUsSYao5+BD1ytv3k3rPYCq4mAE1hsXA==} - dev: true + dev: false /@types/aria-query@5.0.1: resolution: {integrity: sha512-XTIieEY+gvJ39ChLcB4If5zHtPxt3Syj5rgZR+e1ctpmK8NjPf0zFqsz4JpLJT0xla9GFDKjy8Cpu331nrmE1Q==} @@ -5787,12 +6063,6 @@ packages: '@babel/types': 7.21.5 dev: true - /@types/blessed@0.1.21: - resolution: {integrity: sha512-nlJHCM/wDUtvhDF7FBW2fWTP1JIPMm16xKXTdaAgOaqXiT4VkB/GIc7LAX5BxhTR09BVeNF2JzxszHC9Tres2w==} - dependencies: - '@types/node': 18.16.3 - dev: true - /@types/body-parser@1.19.2: resolution: {integrity: sha512-ALYone6pm6QmwZoAgeyNksccT9Q4AWZQ6PvfwR37GT6r6FWUPguq6sUmNGSMV2Wr761oQoBxwGGa6DR5o1DC9g==} dependencies: @@ -5838,8 +6108,8 @@ packages: '@types/express': 4.17.17 dev: true - /@types/express-serve-static-core@4.17.34: - resolution: {integrity: sha512-fvr49XlCGoUj2Pp730AItckfjat4WNb0lb3kfrLWffd+RLeoGAMsq7UOy04PAPtoL01uKwcp6u8nhzpgpDYr3w==} + /@types/express-serve-static-core@4.17.35: + resolution: {integrity: sha512-wALWQwrgiB2AWTT91CB62b6Yt0sNHpznUXeZEcnPU3DRdlDIz74x8Qg1UUYKSVFi+va5vKOLYRBI1bRKiLLKIg==} dependencies: '@types/node': 18.16.3 '@types/qs': 6.9.7 @@ -5857,7 +6127,7 @@ packages: resolution: {integrity: sha512-6bSZTPaTIACxn48l50SR+axgrqm6qXFIxrdAKaG6PaJk3+zuUr35hBlgT7vOmJcum+OEaIBLtHV/qloEAFITeA==} dependencies: '@types/body-parser': 1.19.2 - '@types/express-serve-static-core': 4.17.34 + '@types/express-serve-static-core': 4.17.35 '@types/qs': 6.9.7 '@types/serve-static': 1.15.1 dev: true @@ -5866,7 +6136,7 @@ packages: resolution: {integrity: sha512-Q4FmmuLGBG58btUnfS1c1r/NQdlp3DMfGDGig8WhfpA2YRUtEkxAjkZb0yvplJGYdF1fsQ81iMDcH24sSCNC/Q==} dependencies: '@types/body-parser': 1.19.2 - '@types/express-serve-static-core': 4.17.34 + '@types/express-serve-static-core': 4.17.35 '@types/qs': 6.9.7 '@types/serve-static': 1.15.1 dev: true @@ -5877,6 +6147,19 @@ packages: '@types/node': 18.16.3 dev: true + /@types/inquirer-autocomplete-prompt@3.0.0: + resolution: {integrity: sha512-qgaINEdGNMP4fq3BJi5rvs8iMNrYhrp6krGwuVJ3jhFr+6gwqiHPSWrKov4x9vCJFbpzDVoDYjNdFG3kepdhDw==} + dependencies: + '@types/inquirer': 9.0.3 + dev: true + + /@types/inquirer@9.0.3: + resolution: {integrity: sha512-CzNkWqQftcmk2jaCWdBTf9Sm7xSw4rkI1zpU/Udw3HX5//adEZUIm9STtoRP1qgWj0CWQtJ9UTvqmO2NNjhMJw==} + dependencies: + '@types/through': 0.0.30 + rxjs: 7.8.1 + dev: true + /@types/istanbul-lib-coverage@2.0.4: resolution: {integrity: sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g==} @@ -5903,7 +6186,6 @@ packages: /@types/json-schema@7.0.11: resolution: {integrity: sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==} - dev: true /@types/json5@0.0.29: resolution: {integrity: sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==} @@ -5938,6 +6220,10 @@ packages: - supports-color dev: true + /@types/node@12.20.24: + resolution: {integrity: sha512-yxDeaQIAJlMav7fH5AQqPH1u8YIuhYJXYBzxaQ4PifsU0GDO38MSdmEDeRlIxrKbC6NbEaaEHDanWb+y30U8SQ==} + dev: false + /@types/node@16.18.0: resolution: {integrity: sha512-LqYqYzYvnbCaQfLAwRt0zboqnsViwhZm+vjaMSqcfN36vulAg7Pt0T83q4WZO2YOBw3XdyHi8cQ88H22zmULOA==} dev: true @@ -5999,8 +6285,8 @@ packages: resolution: {integrity: sha512-5cJ8CB4yAx7BH1oMvdU0Jh9lrEXyPkar6F9G/ERswkCuvP4KQZfZkSjcMbAICCpQTN4OuZn8tz0HiKv9TGZgrQ==} dev: true - /@types/semver@7.3.13: - resolution: {integrity: sha512-21cFJr9z3g5dW8B0CVI9g2O9beqaThGQ6ZFBqHfwhzLDKUxaqTIy3vnfah/UPkfOiF2pLq+tGz+W8RyCskuslw==} + /@types/semver@7.5.0: + resolution: {integrity: sha512-G8hZ6XJiHnuhQKR7ZmysCeJWE08o8T0AXtk5darsCaTVsYZhhgUrq53jizaR2FvsoeCwJhlmwTjkXBY5Pn/ZHw==} dev: true /@types/send@0.17.1: @@ -6020,19 +6306,18 @@ packages: /@types/stack-utils@2.0.1: resolution: {integrity: sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw==} - /@types/swagger-ui-express@4.1.3: - resolution: {integrity: sha512-jqCjGU/tGEaqIplPy3WyQg+Nrp6y80DCFnDEAvVKWkJyv0VivSSDCChkppHRHAablvInZe6pijDFMnavtN0vqA==} - dependencies: - '@types/express': 4.17.17 - '@types/serve-static': 1.15.1 - dev: true - /@types/testing-library__jest-dom@5.14.5: resolution: {integrity: sha512-SBwbxYoyPIvxHbeHxTZX2Pe/74F/tX2/D3mMvzabdeJ25bBojfW0TyB8BHrbq/9zaaKICJZjLP+8r6AeZMFCuQ==} dependencies: '@types/jest': 27.5.2 dev: true + /@types/through@0.0.30: + resolution: {integrity: sha512-FvnCJljyxhPM3gkRgWmxmDZyAQSiBQQWLI0A0VFL0K7W1oRUrPJSqNO0NvTnLkBcotdlp3lKvaT0JrnyRDkzOg==} + dependencies: + '@types/node': 18.16.3 + dev: true + /@types/url-parse@1.4.8: resolution: {integrity: sha512-zqqcGKyNWgTLFBxmaexGUKQyWqeG7HjXj20EuQJSJWwXe54BjX0ihIo5cJB9yAQzH8dNugJ9GvkBYMjPXs/PJw==} dev: true @@ -6044,9 +6329,8 @@ packages: /@types/uuid@9.0.1: resolution: {integrity: sha512-rFT3ak0/2trgvp4yYZo5iKFEPsET7vKydKF+VRCxlQ9bpheehyAJH89dAkaLEq/j/RZXJIqcgsmPJKUP1Z28HA==} - /@types/validator@13.7.16: - resolution: {integrity: sha512-VyKmLktUHYLbrSbsRi241MSUlGYomQgK/tfCNpej3Gt5qDOM10AZ3nU2aR2s5JritClXuOBu4K7MkywVW/Y6Ow==} - dev: false + /@types/validator@13.7.17: + resolution: {integrity: sha512-aqayTNmeWrZcvnG2MG9eGYI6b7S5fl+yKgPs6bAjOTwPS316R5SxBGKvtSExfyoJU7pIeHJfsHI0Ji41RVMkvQ==} /@types/yargs-parser@21.0.0: resolution: {integrity: sha512-iO9ZQHkZxHn4mSakYV0vFHAVDyEOIJQrV2uZ06HxEPcx+mt8swXoZHIbaaJ2crJYFfErySgktuTZ3BeLz+XmFA==} @@ -6084,7 +6368,7 @@ packages: eslint: 7.32.0 functional-red-black-tree: 1.0.1 regexpp: 3.2.0 - semver: 7.5.0 + semver: 7.5.1 tsutils: 3.21.0(typescript@4.9.5) typescript: 4.9.5 transitivePeerDependencies: @@ -6112,7 +6396,7 @@ packages: grapheme-splitter: 1.0.4 ignore: 5.2.4 natural-compare-lite: 1.4.0 - semver: 7.5.0 + semver: 7.5.1 tsutils: 3.21.0(typescript@4.9.5) typescript: 4.9.5 transitivePeerDependencies: @@ -6237,7 +6521,7 @@ packages: debug: 4.3.4 globby: 11.1.0 is-glob: 4.0.3 - semver: 7.5.0 + semver: 7.5.1 tsutils: 3.21.0(typescript@4.9.5) typescript: 4.9.5 transitivePeerDependencies: @@ -6258,7 +6542,7 @@ packages: debug: 4.3.4 globby: 11.1.0 is-glob: 4.0.3 - semver: 7.5.0 + semver: 7.5.1 tsutils: 3.21.0(typescript@4.9.5) typescript: 4.9.5 transitivePeerDependencies: @@ -6273,13 +6557,13 @@ packages: dependencies: '@eslint-community/eslint-utils': 4.4.0(eslint@8.35.0) '@types/json-schema': 7.0.11 - '@types/semver': 7.3.13 + '@types/semver': 7.5.0 '@typescript-eslint/scope-manager': 5.59.2 '@typescript-eslint/types': 5.59.2 '@typescript-eslint/typescript-estree': 5.59.2(typescript@4.9.5) eslint: 8.35.0 eslint-scope: 5.1.1 - semver: 7.5.0 + semver: 7.5.1 transitivePeerDependencies: - supports-color - typescript @@ -6319,93 +6603,6 @@ packages: graphql: 15.8.0 wonka: 4.0.15 - /@veramo/cli@4.2.0(@types/node@18.16.3)(ts-node@10.9.1): - resolution: {integrity: sha512-73jG//N0ikpqbpUtokmydIjDKQeOysmHX0LFMP+zXh81kFhkGvEWk7Am9BBibKuWtq0uDCAXvk0TqsnK+Ajcqg==} - hasBin: true - dependencies: - '@microsoft/api-extractor': 7.34.9(@types/node@18.16.3) - '@microsoft/api-extractor-model': 7.26.9(@types/node@18.16.3) - '@types/blessed': 0.1.21 - '@types/swagger-ui-express': 4.1.3 - '@veramo/core': 4.2.0(patch_hash=c5oempznsz4br5w3tcuk2i2mau) - '@veramo/credential-eip712': 4.2.0 - '@veramo/credential-ld': 4.2.0 - '@veramo/credential-w3c': 4.2.0 - '@veramo/data-store': 4.2.0(patch_hash=feb5u2ygzsdf67qbxr2lxgqjyy)(pg@8.11.0)(sqlite3@5.1.6)(ts-node@10.9.1) - '@veramo/did-comm': 4.2.0 - '@veramo/did-discovery': 4.2.0 - '@veramo/did-jwt': 4.2.0 - '@veramo/did-manager': 4.2.0 - '@veramo/did-provider-ethr': 4.2.0 - '@veramo/did-provider-key': 4.2.0 - '@veramo/did-provider-web': 4.2.0 - '@veramo/did-resolver': 4.2.0 - '@veramo/key-manager': 4.2.0 - '@veramo/kms-local': 4.2.0 - '@veramo/message-handler': 4.2.0 - '@veramo/remote-client': 4.2.0 - '@veramo/remote-server': 4.2.0(express@4.18.2) - '@veramo/selective-disclosure': 4.2.0 - '@veramo/url-handler': 4.2.0 - blessed: 0.1.81 - commander: 9.5.0 - console-table-printer: 2.11.1 - cors: 2.8.5 - cross-fetch: 3.1.5 - date-fns: 2.30.0 - debug: 4.3.4 - did-resolver: 4.1.0 - dotenv: 16.0.3 - ethr-did-resolver: 8.0.0 - express: 4.18.2 - express-handlebars: 6.0.7 - fuzzy: 0.1.3 - handlebars: 4.7.7 - inquirer: 8.2.5 - inquirer-autocomplete-prompt: 2.0.0(inquirer@8.2.5) - json-schema: 0.4.0 - json5: 2.2.3 - jsonpointer: 5.0.1 - oas-resolver: 2.5.6 - openapi-types: 12.1.0 - passport: 0.6.0 - passport-http-bearer: 1.0.1 - pg: 8.11.0 - qrcode-terminal: 0.12.0 - sqlite3: 5.1.6 - swagger-ui-express: 4.6.3(express@4.18.2) - ts-json-schema-generator: 1.2.0 - typeorm: 0.3.12(pg@8.11.0)(sqlite3@5.1.6)(ts-node@10.9.1) - url-parse: 1.5.10 - web-did-resolver: 2.0.23 - ws: 8.13.0 - yaml: 2.2.2 - transitivePeerDependencies: - - '@google-cloud/spanner' - - '@sap/hana-client' - - '@types/node' - - better-sqlite3 - - bluebird - - bufferutil - - domexception - - encoding - - hdb-pool - - ioredis - - mongodb - - mssql - - mysql2 - - oracledb - - pg-native - - pg-query-stream - - redis - - sql.js - - supports-color - - ts-node - - typeorm-aurora-data-api-driver - - utf-8-validate - - web-streams-polyfill - dev: true - /@veramo/core@4.2.0(patch_hash=c5oempznsz4br5w3tcuk2i2mau): resolution: {integrity: sha512-HIqbXfCbwOAJelR5Ohsm22vr63cy6ND8Ua/+9wfMDAiymUUS7NryaJ/v6NRtnmIrNZqUMDdR9/TWdp4cCq5eBg==} dependencies: @@ -6419,19 +6616,6 @@ packages: - supports-color patched: true - /@veramo/credential-eip712@4.2.0: - resolution: {integrity: sha512-jPeRFH7Z/ajct4RYV56w42H8RJzrwZo476mWaFv1nVK68Yn18edqZj3xfGs1ADxpHoOW7QUPLW4oIp73+Ychsw==} - dependencies: - '@metamask/eth-sig-util': 5.1.0 - '@veramo/core': 4.2.0(patch_hash=c5oempznsz4br5w3tcuk2i2mau) - '@veramo/utils': 4.2.0 - debug: 4.3.4 - eip-712-types-generation: 0.1.6 - transitivePeerDependencies: - - encoding - - supports-color - dev: true - /@veramo/credential-ld@4.2.0: resolution: {integrity: sha512-NatTOEtqudRF8ag5wNrcaNvLAdOsPtDqujZbB16HBVlVavrcVPorPCMbFCUflTKabfDeVfXaoOuvP+W3EXBijQ==} dependencies: @@ -6477,7 +6661,7 @@ packages: - supports-color - web-streams-polyfill - /@veramo/data-store@4.2.0(patch_hash=feb5u2ygzsdf67qbxr2lxgqjyy)(pg@8.11.0)(sqlite3@5.1.6)(ts-node@10.9.1): + /@veramo/data-store@4.2.0(patch_hash=feb5u2ygzsdf67qbxr2lxgqjyy)(sqlite3@5.1.6)(ts-node@10.9.1): resolution: {integrity: sha512-gwinKYd//jOCXrdr2NefXOHnuUT8Vz2sHvSMFvm41UVD9QMpeKpTrTEqGoYG/eDg/1+U9aQlb+AI6bFUNNsk0Q==} dependencies: '@veramo/core': 4.2.0(patch_hash=c5oempznsz4br5w3tcuk2i2mau) @@ -6486,7 +6670,7 @@ packages: '@veramo/key-manager': 4.2.0 '@veramo/utils': 4.2.0 debug: 4.3.4 - typeorm: 0.3.12(pg@8.11.0)(sqlite3@5.1.6)(ts-node@10.9.1) + typeorm: 0.3.12(sqlite3@5.1.6)(ts-node@10.9.1) transitivePeerDependencies: - '@google-cloud/spanner' - '@sap/hana-client' @@ -6509,25 +6693,6 @@ packages: - typeorm-aurora-data-api-driver patched: true - /@veramo/did-comm@4.2.0: - resolution: {integrity: sha512-plnAYAXFmtEjoJE/kSxFZdVYOynNLkIUdnwkSrQOi5MPhcj8AEKQfXt8DecyIkfFCxuvdHPjEerBVbka1q7kZw==} - dependencies: - '@ethersproject/signing-key': 5.7.0 - '@stablelib/ed25519': 1.0.3 - '@veramo/core': 4.2.0(patch_hash=c5oempznsz4br5w3tcuk2i2mau) - '@veramo/message-handler': 4.2.0 - '@veramo/utils': 4.2.0 - cross-fetch: 3.1.5 - debug: 4.3.4 - did-jwt: 6.11.6 - did-resolver: 4.1.0 - uint8arrays: 3.1.1 - uuid: 9.0.0 - transitivePeerDependencies: - - encoding - - supports-color - dev: true - /@veramo/did-discovery@4.2.0: resolution: {integrity: sha512-U2baTL/KXgj84TF7hJxvUzh8oyfEQSsWSpqbRTQITE6bbSBaZiM/ZfgHRty8wuDFMFVV/f+xbkwdkOf3nY7SpQ==} dependencies: @@ -6568,14 +6733,14 @@ packages: '@veramo/core': 4.2.0(patch_hash=c5oempznsz4br5w3tcuk2i2mau) '@veramo/did-manager': 4.2.0 debug: 4.3.4 - ethr-did: 2.3.10 + ethr-did: 2.3.9 transitivePeerDependencies: - bufferutil - supports-color - utf-8-validate dev: true - /@veramo/did-provider-ion@4.2.0(@sphereon/react-native-argon2@2.0.9)(react-native@0.71.7): + /@veramo/did-provider-ion@4.2.0(@sphereon/react-native-argon2@2.0.9)(react-native@0.71.8): resolution: {integrity: sha512-Fo5L7wd587ohFXEYbRb2a8H7n8RjqcCyc2KABrCkmHi5rdhuOf3/3k5RqJ6xtFq76NBwb9UMtNt9spm7aFrIFg==} peerDependencies: '@sphereon/react-native-argon2': ^2.0.7 @@ -6583,8 +6748,8 @@ packages: '@decentralized-identity/ion-sdk': 0.6.0 '@ethersproject/random': 5.7.0 '@ethersproject/signing-key': 5.7.0 - '@sphereon/ion-pow': 0.2.0(@sphereon/react-native-argon2@2.0.9)(react-native@0.71.7) - '@sphereon/react-native-argon2': 2.0.9(react-native@0.71.7) + '@sphereon/ion-pow': 0.2.0(@sphereon/react-native-argon2@2.0.9)(react-native@0.71.8) + '@sphereon/react-native-argon2': 2.0.9(react-native@0.71.8) '@stablelib/ed25519': 1.0.3 '@trust/keyto': 1.0.1 '@veramo/core': 4.2.0(patch_hash=c5oempznsz4br5w3tcuk2i2mau) @@ -6710,36 +6875,6 @@ packages: - encoding - supports-color - /@veramo/selective-disclosure@4.2.0: - resolution: {integrity: sha512-yMvg0xWk1SawhgiR1HE+QRCJsrogXU3IjOCG1LX/eEhcLtgHE12BzLaX69dyh4+ZYCJGqguwODic4RzQDx2CNg==} - dependencies: - '@veramo/core': 4.2.0(patch_hash=c5oempznsz4br5w3tcuk2i2mau) - '@veramo/credential-w3c': 4.2.0 - '@veramo/did-jwt': 4.2.0 - '@veramo/message-handler': 4.2.0 - debug: 4.3.4 - did-jwt: 6.11.6 - uuid: 9.0.0 - transitivePeerDependencies: - - domexception - - encoding - - supports-color - - web-streams-polyfill - dev: true - - /@veramo/url-handler@4.2.0: - resolution: {integrity: sha512-IfU4bPLbTPT06VGI9L+RftvcwdrDfOrM56GR6ovSkA6znswzv+uGHMs2Z+ngJof0dD6M7w5JpEdgB9ec7IGbEA==} - dependencies: - '@veramo/core': 4.2.0(patch_hash=c5oempznsz4br5w3tcuk2i2mau) - '@veramo/message-handler': 4.2.0 - cross-fetch: 3.1.5 - debug: 4.3.4 - url-parse: 1.5.10 - transitivePeerDependencies: - - encoding - - supports-color - dev: true - /@veramo/utils@4.2.0: resolution: {integrity: sha512-jHkli0Qz9rFsWzPAdfJP3P2MFxvVMZPDXZvtVBm8x1fjAGrw/Htz/c5drhDAeBXnqPd9011/7cyvp6AOvdbc8Q==} dependencies: @@ -6793,12 +6928,12 @@ packages: resolution: {integrity: sha512-GpSwvyXOcOOlV70vbnzjj4fW5xW/FdUF6nQEt1ENy7m4ZCczi1+/buVUPAqmGfqznsORNFzUMjctTIp8a9tuCQ==} dev: true - /@yarnpkg/parsers@3.0.0-rc.43: - resolution: {integrity: sha512-AhFF3mIDfA+jEwQv2WMHmiYhOvmdbh2qhUkDVQfiqzQtUwS4BgoWwom5NpSPg4Ix5vOul+w1690Bt21CkVLpgg==} + /@yarnpkg/parsers@3.0.0-rc.44: + resolution: {integrity: sha512-UVAt9Icc8zfGXioeYJ8XMoSTxOYVmlal2TRNxy9Uh91taS72kQFalK7LpIslcvEBKy4XtarmfIwcFIU3ZY64lw==} engines: {node: '>=14.15.0'} dependencies: js-yaml: 3.14.1 - tslib: 2.5.0 + tslib: 2.5.2 dev: true /@zkochan/js-yaml@0.0.6: @@ -6949,7 +7084,6 @@ packages: fast-json-stable-stringify: 2.1.0 json-schema-traverse: 0.4.1 uri-js: 4.4.1 - dev: true /ajv@8.12.0: resolution: {integrity: sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==} @@ -6977,12 +7111,11 @@ packages: dependencies: type-fest: 0.21.3 - /ansi-escapes@5.0.0: - resolution: {integrity: sha512-5GFMVX8HqE/TB+FuBJGuO5XG0WrsA6ptUqoODaT/n9mmUaZFkqnBueB4leqGBCmrUHnCnC4PCZTCd0E7QQ83bA==} - engines: {node: '>=12'} + /ansi-escapes@6.2.0: + resolution: {integrity: sha512-kzRaCqXnpzWs+3z5ABPQiVke+iq0KXkHo8xiWV4RPTi5Yli0l97BEQuhXV1s7+aSU/fu1kUuxgS4MsQ0fRuygw==} + engines: {node: '>=14.16'} dependencies: - type-fest: 1.4.0 - dev: true + type-fest: 3.11.0 /ansi-fragments@0.2.1: resolution: {integrity: sha512-DykbNHxuXQwUDRv5ibc2b0x7uw7wmwOGLBUd5RmaQ5z8Lhx19vwvKV+FAsM5rEA6dEcHxX+/Ad5s9eF2k2bB+w==} @@ -7007,7 +7140,6 @@ packages: /ansi-regex@6.0.1: resolution: {integrity: sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==} engines: {node: '>=12'} - dev: true /ansi-styles@3.2.1: resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==} @@ -7028,7 +7160,6 @@ packages: /ansi-styles@6.2.1: resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==} engines: {node: '>=12'} - dev: true /ansicolors@0.3.2: resolution: {integrity: sha512-QXu7BPrP29VllRxH8GwB7x5iX5qWKAAMLqKQGWTeLWVlNHNOpVMJ91dsxQAIWXpjuW5wqvxu3Jd/nRjrJ+0pqg==} @@ -7091,7 +7222,7 @@ packages: engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} dependencies: delegates: 1.0.0 - readable-stream: 4.3.0 + readable-stream: 4.4.0 dev: true /arg@4.1.0: @@ -7180,7 +7311,7 @@ packages: call-bind: 1.0.2 define-properties: 1.2.0 es-abstract: 1.21.2 - get-intrinsic: 1.2.0 + get-intrinsic: 1.2.1 is-string: 1.0.7 dev: true @@ -7242,7 +7373,7 @@ packages: dependencies: pvtsutils: 1.3.2 pvutils: 1.1.3 - tslib: 2.5.0 + tslib: 2.5.2 /assign-symbols@1.0.0: resolution: {integrity: sha512-Q+JC7Whu8HhmTdBph/Tq59IoRtoy6KAm5zzPv00WdujX82lbAL8K7WVjne7vdCsAmbF4AYaDOPyO3k0kl8qIrw==} @@ -7252,7 +7383,7 @@ packages: resolution: {integrity: sha512-O0yuUDnZeQDL+ncNGlJ78BiO4jnYI3bvMsD5prT0/nsgijG/LpNBIr63gTjVTNsiGkgQhiyCShTgxt8oXOrklA==} engines: {node: '>=4'} dependencies: - tslib: 2.5.0 + tslib: 2.5.2 /astral-regex@1.0.0: resolution: {integrity: sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg==} @@ -7604,19 +7735,21 @@ packages: /bl@4.1.0: resolution: {integrity: sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==} dependencies: - buffer: 5.7.1 + buffer: 5.7.1 + inherits: 2.0.4 + readable-stream: 3.6.2 + + /bl@5.1.0: + resolution: {integrity: sha512-tv1ZJHLfTDnXE6tMHv73YgSJaWR2AFuPwMntBe7XL/GBFHnT0CLnsHMogfk5+GzCDC5ZWarSCYaIGATZt9dNsQ==} + dependencies: + buffer: 6.0.3 inherits: 2.0.4 readable-stream: 3.6.2 + dev: false /blakejs@1.2.1: resolution: {integrity: sha512-QXUSXI3QVc/gJME0dBpXrag1kbzOqCjCX8/b54ntNyW6sjtoqxqRk3LTmXzaJoh71zMsDCjM+47jS7XiwN/+fQ==} - /blessed@0.1.81: - resolution: {integrity: sha512-LoF5gae+hlmfORcG1M5+5XZi4LBmvlXTzwJWzUlPryN/SJdSflZvROM2TwkT0GMpq7oqT48NRd4GS7BiVBc5OQ==} - engines: {node: '>= 0.8.0'} - hasBin: true - dev: true - /blueimp-md5@2.19.0: resolution: {integrity: sha512-DRQrD6gJyy8FbiE4s+bDoXS9hiW3Vbx5uCdwvcCf3zLHL+Iv7LtGHLpr+GZV8rHG8tK766FGYBwRbu8pELTt+w==} @@ -7674,7 +7807,6 @@ packages: iso-url: 0.4.7 json-text-sequence: 0.1.1 readable-stream: 3.6.2 - dev: false /bottleneck@2.19.5: resolution: {integrity: sha512-VHiNCbI1lKdl44tGrhNfU3lup0Tj/ZBMJB5/2ZbNXRCPuRCO7ed2mgcK4r17y+KB2EfuYuRaVlwNbAeaWGSpbw==} @@ -7754,9 +7886,9 @@ packages: engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} hasBin: true dependencies: - caniuse-lite: 1.0.30001486 - electron-to-chromium: 1.4.385 - node-releases: 2.0.10 + caniuse-lite: 1.0.30001488 + electron-to-chromium: 1.4.402 + node-releases: 2.0.11 update-browserslist-db: 1.0.11(browserslist@4.21.5) /bs-logger@0.2.6: @@ -7795,10 +7927,6 @@ packages: /buffer-from@1.1.2: resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==} - /buffer-writer@2.0.0: - resolution: {integrity: sha512-a7ZpuTZU1TRtnwyCNW3I5dc0wWNC3VR9S++Ewyk2HHZdrO3CQJqSpd+95Us590V6AL7JqUAH2IwZ/398PmNFgw==} - engines: {node: '>=4'} - /buffer-xor@1.0.3: resolution: {integrity: sha512-571s0T7nZWK6vB67HI5dyUF7wXiNcfaPPPTl6zYCNApANjIvYJTg7hlud/+cJpdAhS7dVzqMLmfhfHR3rAcOjQ==} dev: true @@ -7821,7 +7949,7 @@ packages: /builtins@5.0.1: resolution: {integrity: sha512-qwVpFEHNfhYJIzNRBvd2C1kyo6jz3ZSMPyyuR47OPdiKWlbYnZNyDWuyR175qDnAJLiCo5fBBqPb3RiXgWlkOQ==} dependencies: - semver: 7.5.0 + semver: 7.5.1 dev: true /byte-size@7.0.0: @@ -7862,7 +7990,7 @@ packages: promise-inflight: 1.0.1 rimraf: 3.0.2 ssri: 8.0.1 - tar: 6.1.14 + tar: 6.1.15 unique-filename: 1.1.1 transitivePeerDependencies: - bluebird @@ -7887,19 +8015,19 @@ packages: promise-inflight: 1.0.1 rimraf: 3.0.2 ssri: 9.0.1 - tar: 6.1.14 + tar: 6.1.11 unique-filename: 2.0.1 transitivePeerDependencies: - bluebird dev: true - /cacache@17.1.0: - resolution: {integrity: sha512-hXpFU+Z3AfVmNuiLve1qxWHMq0RSIt5gjCKAHi/M6DktwFwDdAXAtunl1i4WSKaaVcU9IsRvXFg42jTHigcC6Q==} + /cacache@17.1.3: + resolution: {integrity: sha512-jAdjGxmPxZh0IipMdR7fK/4sDSrHMLUV0+GvVUsjwyGNKHsh79kW/otg+GkbXwl6Uzvy9wsvHOX4nUoWldeZMg==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} dependencies: '@npmcli/fs': 3.1.0 fs-minipass: 3.0.2 - glob: 10.2.2 + glob: 10.2.6 lru-cache: 7.18.3 minipass: 5.0.0 minipass-collect: 1.0.2 @@ -7907,7 +8035,7 @@ packages: minipass-pipeline: 1.2.4 p-map: 4.0.0 ssri: 10.0.4 - tar: 6.1.14 + tar: 6.1.11 unique-filename: 3.0.0 dev: true @@ -7929,7 +8057,7 @@ packages: resolution: {integrity: sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==} dependencies: function-bind: 1.1.1 - get-intrinsic: 1.2.0 + get-intrinsic: 1.2.1 /caller-callsite@2.0.0: resolution: {integrity: sha512-JuG3qI4QOftFsZyOn1qq87fq5grLIyk1JYd5lJmdA+fG7aQ9pA/i3JIJGcO3q0MrRcHlOt1U+ZeHW8Dq9axALQ==} @@ -7983,8 +8111,8 @@ packages: resolution: {integrity: sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==} engines: {node: '>=10'} - /caniuse-lite@1.0.30001486: - resolution: {integrity: sha512-uv7/gXuHi10Whlj0pp5q/tsK/32J2QSqVRKQhs2j8VsDCjgyruAh/eEXHF822VqO9yT6iZKw3nRwZRSPBE9OQg==} + /caniuse-lite@1.0.30001488: + resolution: {integrity: sha512-NORIQuuL4xGpIy6iCCQGN4iFjlBXtfKWIenlUuyZJumLRIindLb7wXM+GO8erEhb7vXfcnf4BAg2PrSDN5TNLQ==} /canonicalize@1.0.1: resolution: {integrity: sha512-N3cmB3QLhS5TJ5smKFf1w42rJXWe6C1qP01z4dxJiI5v269buii4fLHWETDyf7yEd0azGLNC63VxNMiPd2u0Cg==} @@ -8010,7 +8138,6 @@ packages: dependencies: bignumber.js: 9.1.1 nofilter: 1.0.4 - dev: false /chalk@2.4.2: resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==} @@ -8046,7 +8173,6 @@ packages: /chalk@5.2.0: resolution: {integrity: sha512-ree3Gqw/nazQAPuJJEy+avdl7QfZMcUvmHIKgEZkGL+xOBzRvup5Hxo6LHuMceSxOabuJLJm5Yp/92R9eMmMvA==} engines: {node: ^12.17.0 || ^14.13 || >=16.0.0} - dev: true /char-regex@1.0.2: resolution: {integrity: sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==} @@ -8096,10 +8222,9 @@ packages: /class-validator@0.14.0: resolution: {integrity: sha512-ct3ltplN8I9fOwUd8GrP8UQixwff129BkEtuWDKL5W45cQuLd19xqmTLu5ge78YDm/fdje6FMt0hGOhl0lii3A==} dependencies: - '@types/validator': 13.7.16 + '@types/validator': 13.7.17 libphonenumber-js: 1.10.30 validator: 13.9.0 - dev: false /clean-stack@2.2.0: resolution: {integrity: sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==} @@ -8117,6 +8242,13 @@ packages: dependencies: restore-cursor: 3.1.0 + /cli-cursor@4.0.0: + resolution: {integrity: sha512-VGtlMu3x/4DOtIUwEkRezxUZ2lBacNJCHash0N0WeZDBS+7Ux1dm3XWAgWYxLJFMMdOeXMHXorshEFhbMSGelg==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dependencies: + restore-cursor: 4.0.0 + dev: false + /cli-highlight@2.1.11: resolution: {integrity: sha512-9KDcoEVwyUXrjcJNvHD0NFc/hiwe/WPVYIleQh2O1N2Zro5gWJZ/K+3DGn8w8P/F6FxOgzyC5bxDyHIgCSPhGg==} engines: {node: '>=8.0.0', npm: '>=5.0.0'} @@ -8151,6 +8283,11 @@ packages: resolution: {integrity: sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==} engines: {node: '>= 10'} + /cli-width@4.0.0: + resolution: {integrity: sha512-ZksGS2xpa/bYkNzN3BAw1wEjsLV/ZKOf/CCrJ/QOBsxx6fOARIkwTutxp1XIOIohi6HKmOFjMoK/XaqDVUpEEw==} + engines: {node: '>= 12'} + dev: false + /cliui@6.0.0: resolution: {integrity: sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==} dependencies: @@ -8265,7 +8402,7 @@ packages: /colors@1.2.5: resolution: {integrity: sha512-erNRLao/Y3Fv54qUa0LBB+//Uf3YwMUmdJinN20yMXm9zdKKqH9wt7R9IIVZ+K7ShzfpLV/Zg8+VyrBJYB4lpg==} engines: {node: '>=0.1.90'} - dev: true + dev: false /columnify@1.6.0: resolution: {integrity: sha512-lomjuFZKfM6MSAnV9aCZC9sc0qGbmZdfygNv+nCpqVkSKdCxCklLtd16O0EILGkImHw9ZpHkAnHaB+8Zxq5W6Q==} @@ -8311,6 +8448,11 @@ packages: typical: 5.2.0 optional: true + /commander@10.0.0: + resolution: {integrity: sha512-zS5PnTI22FIRM6ylNW8G4Ap0IEOyk62fhLSD0+uHRT9McRCLGpkVNvao4bjimpK/GShynyQkFFxHhwMcETmduA==} + engines: {node: '>=14'} + dev: false + /commander@2.13.0: resolution: {integrity: sha512-MVuS359B+YzaWqjCL/c+22gfryv+mCBPHAv3zyVI2GN8EY6IRP8VwtasXn8jyyhvvq84R4ImN1OKRtcbIasjYA==} @@ -8421,12 +8563,6 @@ packages: /console-control-strings@1.1.0: resolution: {integrity: sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==} - /console-table-printer@2.11.1: - resolution: {integrity: sha512-8LfFpbF/BczoxPwo2oltto5bph8bJkGOATXsg3E9ddMJOGnWJciKHldx2zDj5XIBflaKzPfVCjOTl6tMh7lErg==} - dependencies: - simple-wcswidth: 1.0.1 - dev: true - /content-disposition@0.5.4: resolution: {integrity: sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==} engines: {node: '>= 0.6'} @@ -8573,7 +8709,6 @@ packages: through2: 2.0.5 untildify: 4.0.0 yargs: 16.2.0 - dev: true /core-js-compat@3.30.2: resolution: {integrity: sha512-nriW1nuJjUgvkEjIot1Spwakz52V9YkYHZAQG6A1eCgC8AA1p0zngrQEP9R0+V6hji5XilWKG1Bd0YRppmGimA==} @@ -8589,6 +8724,7 @@ packages: dependencies: object-assign: 4.1.1 vary: 1.1.2 + dev: false /cosmiconfig@5.2.1: resolution: {integrity: sha512-H65gsXo1SKjf8zmrJ67eJk8aIRKV5ff2D4uKZIBZShbhGSpEmsQOPW/SKMKYhSTrqR7ufy6RP69rPogdaPh/kA==} @@ -8857,7 +8993,7 @@ packages: array-buffer-byte-length: 1.0.0 call-bind: 1.0.2 es-get-iterator: 1.1.3 - get-intrinsic: 1.2.0 + get-intrinsic: 1.2.1 is-arguments: 1.1.1 is-array-buffer: 3.0.2 is-date-object: 1.0.5 @@ -8959,7 +9095,6 @@ packages: /delimit-stream@0.1.0: resolution: {integrity: sha512-a02fiQ7poS5CnjiJBAsjGLPp5EwVoGHNeu9sziBd9huppRfsAFIpv5zNLv0V1gbop53ilngAf5Kf331AwcoRBQ==} - dev: false /denodeify@1.2.1: resolution: {integrity: sha512-KNTihKNmQENUZeKu5fzfpzRqR5S2VMp4gl9RFHiWzj9DfvYQPMJ6XHKNaQxaGCXwPk6y9yme3aUoaiAe+KX+vg==} @@ -9010,7 +9145,6 @@ packages: /did-context@3.1.1: resolution: {integrity: sha512-iFpszgSxc7d1kNBJWC+PAzNTpe5LPalzsIunTMIpbG3O37Q7Zi7u4iIaedaM7UhziBhT+Agr9DyvAiXSUyfepQ==} - dev: false /did-jwt-vc@3.1.3: resolution: {integrity: sha512-qB1FiQ0sT/FUR5+mQ//P5lS0Gllrtes2OxC3WVMOt8ND0LolF92ohozv50ukyOvB2zBzgfm5durcIPqQcoI+LA==} @@ -9035,19 +9169,6 @@ packages: multiformats: 9.9.0 uint8arrays: 3.1.1 - /did-jwt@7.1.0: - resolution: {integrity: sha512-Mqg5sTBn37BtG2RW0mFMZbux8/4Z282u+Tbh2waETUm0uq/GiN59vmBm6l7HxoILRgf0cEFBHxvd1inTRJ/6pA==} - dependencies: - '@noble/curves': 1.0.0 - '@noble/hashes': 1.2.0 - '@stablelib/xchacha20poly1305': 1.0.1 - bech32: 2.0.0 - canonicalize: 2.0.0 - did-resolver: 4.1.0 - multiformats: 9.9.0 - uint8arrays: 3.1.1 - dev: true - /did-resolver@3.2.2: resolution: {integrity: sha512-Eeo2F524VM5N3W4GwglZrnul2y6TLTwMQP3In62JdG34NZoqihYyOZLk+5wUW8sSgvIYIcJM8Dlt3xsdKZZ3tg==} dev: true @@ -9158,7 +9279,6 @@ packages: /eastasianwidth@0.2.0: resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} - dev: true /ecdsa-sig-formatter@1.0.11: resolution: {integrity: sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ==} @@ -9175,22 +9295,16 @@ packages: /ee-first@1.1.1: resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==} - /eip-712-types-generation@0.1.6: - resolution: {integrity: sha512-O2zjZcGFKyuXxW3s5ATxA1EJzszWHKYASBqpIyIhXzvFW6YFkYdDIgsoAdLnX3ClZd6908xaOPPPbTVgXy0URQ==} - dependencies: - json-canonicalize: 1.0.6 - dev: true - /ejs@3.1.9: resolution: {integrity: sha512-rC+QVNMJWv+MtPgkt0y+0rVEIdbtxVADApW9JXrUVlzHetgcyczP/E7DJmWJ4fJCZF2cPcBk0laWO9ZHMG3DmQ==} engines: {node: '>=0.10.0'} hasBin: true dependencies: - jake: 10.8.5 + jake: 10.8.6 dev: true - /electron-to-chromium@1.4.385: - resolution: {integrity: sha512-L9zlje9bIw0h+CwPQumiuVlfMcV4boxRjFIWDcLfFqTZNbkwOExBzfmswytHawObQX4OUhtNv8gIiB21kOurIg==} + /electron-to-chromium@1.4.402: + resolution: {integrity: sha512-gWYvJSkohOiBE6ecVYXkrDgNaUjo47QEKK0kQzmWyhkH+yoYiG44bwuicTGNSIQRG3WDMsWVZJLRnJnLNkbWvA==} /elliptic@6.5.4: resolution: {integrity: sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==} @@ -9213,7 +9327,6 @@ packages: /emoji-regex@9.2.2: resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} - dev: true /encodeurl@1.0.2: resolution: {integrity: sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==} @@ -9231,8 +9344,8 @@ packages: dependencies: once: 1.4.0 - /enhanced-resolve@5.13.0: - resolution: {integrity: sha512-eyV8f0y1+bzyfh8xAwW/WTSZpLbjhqc4ne9eGSH4Zo2ejdyiNG9pU6mf9DG8a7+Auk6MFTlNOT4Y2y/9k8GKVg==} + /enhanced-resolve@5.14.0: + resolution: {integrity: sha512-+DCows0XNwLDcUhbFJPdlQEVnT2zXlCv7hPxemTz86/O+B/hCQ+mb7ydkPKiflpVraqLPCAfu7lDy+hBXueojw==} engines: {node: '>=10.13.0'} dependencies: graceful-fs: 4.2.11 @@ -9306,7 +9419,7 @@ packages: es-set-tostringtag: 2.0.1 es-to-primitive: 1.2.1 function.prototype.name: 1.1.5 - get-intrinsic: 1.2.0 + get-intrinsic: 1.2.1 get-symbol-description: 1.0.0 globalthis: 1.0.3 gopd: 1.0.1 @@ -9339,7 +9452,7 @@ packages: resolution: {integrity: sha512-sPZmqHBe6JIiTfN5q2pEi//TwxmAFHwj/XEuYjTuse78i8KxaqMTTzxPoFKuzRpDpTJ+0NAbpfenkmH2rePtuw==} dependencies: call-bind: 1.0.2 - get-intrinsic: 1.2.0 + get-intrinsic: 1.2.1 has-symbols: 1.0.3 is-arguments: 1.1.1 is-map: 2.0.2 @@ -9353,7 +9466,7 @@ packages: resolution: {integrity: sha512-g3OMbtlwY3QewlqAiMLI47KywjWZoEytKr8pf6iTC8uJq5bIAH52Z9pnQ8pVL6whrCto53JZDuUIsifGeLorTg==} engines: {node: '>= 0.4'} dependencies: - get-intrinsic: 1.2.0 + get-intrinsic: 1.2.1 has: 1.0.3 has-tostringtag: 1.0.0 @@ -9391,6 +9504,11 @@ packages: engines: {node: '>=10'} dev: true + /escape-string-regexp@5.0.0: + resolution: {integrity: sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==} + engines: {node: '>=12'} + dev: false + /escodegen@1.14.3: resolution: {integrity: sha512-qFcX0XJkdg+PB3xjZZG/wKSuT1PnQWx57+TVSjIMmILd2yC/6ByYElPwJnslDsuWuSAp4AwJGumarAAmJch5Kw==} engines: {node: '>=4.0'} @@ -9429,7 +9547,7 @@ packages: resolution: {integrity: sha512-gozW2blMLJCeFpBwugLTGyvVjNoeo1knonXAcatC6bjPBZitotxdWf7Gimr25N4c0AAOo4eOUfaG82IJPDpqCA==} dependencies: debug: 3.2.7 - is-core-module: 2.12.0 + is-core-module: 2.12.1 resolve: 1.22.2 transitivePeerDependencies: - supports-color @@ -9495,7 +9613,7 @@ packages: eslint-import-resolver-node: 0.3.7 eslint-module-utils: 2.8.0(@typescript-eslint/parser@5.59.2)(eslint-import-resolver-node@0.3.7)(eslint@8.35.0) has: 1.0.3 - is-core-module: 2.12.0 + is-core-module: 2.12.1 is-glob: 4.0.3 minimatch: 3.1.2 object.values: 1.1.6 @@ -9614,7 +9732,7 @@ packages: optionator: 0.9.1 progress: 2.0.3 regexpp: 3.2.0 - semver: 7.5.0 + semver: 7.5.1 strip-ansi: 6.0.1 strip-json-comments: 3.1.1 table: 6.8.1 @@ -9740,15 +9858,6 @@ packages: meow: 5.0.0 dev: true - /ethereum-cryptography@2.0.0: - resolution: {integrity: sha512-g25m4EtfQGjstWgVE1aIz7XYYjf3kH5kG17ULWVB5dH6uLahsoltOhACzSxyDV+fhn4gbR4xRrOXGe6r2uh4Bg==} - dependencies: - '@noble/curves': 1.0.0 - '@noble/hashes': 1.2.0 - '@scure/bip32': 1.3.0 - '@scure/bip39': 1.2.0 - dev: true - /ethereum-public-key-to-address@0.0.2: resolution: {integrity: sha512-KRd0yrlbgESK3A62L4sHiJRk+b/UPX92Ehd0cCXWa5L7bQaq7z5q4BSRhuUuSZj++LQHQfJQQnJkskuHjDnbCQ==} hasBin: true @@ -9759,14 +9868,6 @@ packages: secp256k1: 3.8.0 dev: true - /ethjs-util@0.1.6: - resolution: {integrity: sha512-CUnVOQq7gSpDHZVVrQW8ExxUETWrnrvXYvYz55wOU8Uj4VCgw56XC2B/fVqQN+f7gmrnRHSLVnFAwsCuNwji8w==} - engines: {node: '>=6.5.0', npm: '>=3'} - dependencies: - is-hex-prefixed: 1.0.0 - strip-hex-prefix: 1.0.0 - dev: true - /ethr-did-resolver@8.0.0: resolution: {integrity: sha512-iOsWa4qJAIt0kl6ilX1usOGq5j+Sqq5YR3OjmPSaaquvJNQUv0DjOn9656WSHvkknELmZAoXZH9naPGarTqldQ==} dependencies: @@ -9787,8 +9888,8 @@ packages: - utf-8-validate dev: true - /ethr-did@2.3.10: - resolution: {integrity: sha512-Y4CrElP/dPdqzVTfgPU6IAdeUzJs924544DbdzAhgQkTlC6dvphozOuzs5uEv0YtreTuD/Lm+fGT0df3p3dRcA==} + /ethr-did@2.3.9: + resolution: {integrity: sha512-UXXfbhhHQW7hra5UOuIYiTKO93A1c93eXFh9nrlsUncYgXy7zSSUYFFxER9j/t9dD8q0bmVgRZe9SCeZh57gDg==} dependencies: '@ethersproject/abstract-signer': 5.7.0 '@ethersproject/base64': 5.7.0 @@ -9799,7 +9900,7 @@ packages: '@ethersproject/strings': 5.7.0 '@ethersproject/transactions': 5.7.0 '@ethersproject/wallet': 5.7.0 - did-jwt: 7.1.0 + did-jwt: 6.11.6 did-resolver: 4.1.0 ethr-did-resolver: 8.0.0 transitivePeerDependencies: @@ -9915,19 +10016,19 @@ packages: jest-message-util: 27.5.1 dev: true - /expo-application@5.1.1(expo@48.0.16): + /expo-application@5.1.1(expo@48.0.17): resolution: {integrity: sha512-aDatTcTTCdTbHw8h4/Tq2ilc6InM5ntF9xWCJdOcnUEcglxxGphVI/lzJKBaBF6mJECA8mEOjpVg2EGxOctTwg==} peerDependencies: expo: '*' dependencies: - expo: 48.0.16(@babel/core@7.21.8) + expo: 48.0.17(@babel/core@7.21.8) - /expo-asset@8.9.1(expo@48.0.16): + /expo-asset@8.9.1(expo@48.0.17): resolution: {integrity: sha512-ugavxA7Scn96TBdeTYQA6xtHktnk0o/0xk7nFkxJKoH/t2cZDFSB05X0BI2/LDZY4iE6xTPOYw4C4mmourWfuA==} dependencies: blueimp-md5: 2.19.0 - expo-constants: 14.2.1(expo@48.0.16) - expo-file-system: 15.2.2(expo@48.0.16) + expo-constants: 14.2.1(expo@48.0.17) + expo-file-system: 15.2.2(expo@48.0.17) invariant: 2.2.4 md5-file: 3.2.3 path-browserify: 1.0.1 @@ -9936,47 +10037,47 @@ packages: - expo - supports-color - /expo-constants@14.2.1(expo@48.0.16): + /expo-constants@14.2.1(expo@48.0.17): resolution: {integrity: sha512-DD5u4QmBds2U7uYo409apV7nX+XjudARcgqe7S9aRFJ/6kyftmuxvk1DpaU4X42Av8z/tfKwEpuxl+vl7HHx/Q==} peerDependencies: expo: '*' dependencies: '@expo/config': 8.0.2 - expo: 48.0.16(@babel/core@7.21.8) + expo: 48.0.17(@babel/core@7.21.8) uuid: 3.4.0 transitivePeerDependencies: - supports-color - /expo-crypto@12.2.2(expo@48.0.16): + /expo-crypto@12.2.2(expo@48.0.17): resolution: {integrity: sha512-83SZju/l0UL4n+Dgt+T1csiySa0gwCeE6BKKHzlO+4lJ6B8xXZ5ypu97ttWATBsqcpF/bj1RmYPbfbKsZ+4ixA==} peerDependencies: expo: '*' dependencies: base64-js: 1.5.1 - expo: 48.0.16(@babel/core@7.21.8) + expo: 48.0.17(@babel/core@7.21.8) - /expo-file-system@15.2.2(expo@48.0.16): + /expo-file-system@15.2.2(expo@48.0.17): resolution: {integrity: sha512-LFkOLcWwlmnjkURxZ3/0ukS35OswX8iuQknLHRHeyk8mUA8fpRPPelD/a1lS+yclqfqavMJmTXVKM1Nsq5XVMA==} peerDependencies: expo: '*' dependencies: - expo: 48.0.16(@babel/core@7.21.8) + expo: 48.0.17(@babel/core@7.21.8) uuid: 3.4.0 - /expo-font@11.1.1(expo@48.0.16): + /expo-font@11.1.1(expo@48.0.17): resolution: {integrity: sha512-X+aICqYY69hiiDDtcNrjq8KutHrH2TrHuMqk0Rfq0P7hF6hMd+YefwLBNkvIrqrgmTAuqiLjMUwj2rHLqmgluw==} peerDependencies: expo: '*' dependencies: - expo: 48.0.16(@babel/core@7.21.8) + expo: 48.0.17(@babel/core@7.21.8) fontfaceobserver: 2.3.0 - /expo-keep-awake@12.0.1(expo@48.0.16): + /expo-keep-awake@12.0.1(expo@48.0.17): resolution: {integrity: sha512-hqeCnb4033TyuZaXs93zTK7rjVJ3bywXATyMmKmKkLEsH2PKBAl/VmjlCOPQL/2Ncqz6aj7Wo//tjeJTARBD4g==} peerDependencies: expo: '*' dependencies: - expo: 48.0.16(@babel/core@7.21.8) + expo: 48.0.17(@babel/core@7.21.8) /expo-modules-autolinking@1.2.0: resolution: {integrity: sha512-QOPh/iXykNDCAzUual1imSrn2aDakzCGUp2QmxVREr0llajXygroUWlT9sQXh1zKzbNp+a+i/xK375ZeBFiNJA==} @@ -9994,30 +10095,30 @@ packages: compare-versions: 3.6.0 invariant: 2.2.4 - /expo@48.0.16(@babel/core@7.21.8): - resolution: {integrity: sha512-3LOfO80FZn+K3NngaP80LC2KE4rQcuzF3hQB6k8877A3Y/UPF5jmr8H7jlRrfvWSaYlenwzHhMs6Lyhr3zwfGw==} + /expo@48.0.17(@babel/core@7.21.8): + resolution: {integrity: sha512-5T1CsMUlfI+xFB89GOU+/xtSSbSBBFVTqwgheAU0cQolfbs+YyJCMTKU5vN45N5OK+ym7p/LKPa6DQAxYPF8YQ==} hasBin: true dependencies: '@babel/runtime': 7.21.5 '@expo/cli': 0.7.1(expo-modules-autolinking@1.2.0) '@expo/config': 8.0.2 - '@expo/config-plugins': 6.0.1 + '@expo/config-plugins': 6.0.2 '@expo/vector-icons': 13.0.0 babel-preset-expo: 9.3.2(@babel/core@7.21.8) cross-spawn: 6.0.5 - expo-application: 5.1.1(expo@48.0.16) - expo-asset: 8.9.1(expo@48.0.16) - expo-constants: 14.2.1(expo@48.0.16) - expo-file-system: 15.2.2(expo@48.0.16) - expo-font: 11.1.1(expo@48.0.16) - expo-keep-awake: 12.0.1(expo@48.0.16) + expo-application: 5.1.1(expo@48.0.17) + expo-asset: 8.9.1(expo@48.0.17) + expo-constants: 14.2.1(expo@48.0.17) + expo-file-system: 15.2.2(expo@48.0.17) + expo-font: 11.1.1(expo@48.0.17) + expo-keep-awake: 12.0.1(expo@48.0.17) expo-modules-autolinking: 1.2.0 expo-modules-core: 1.2.7 fbemitter: 3.0.0 getenv: 1.0.0 invariant: 2.2.4 md5-file: 3.2.3 - node-fetch: 2.6.9 + node-fetch: 2.6.11 pretty-format: 26.6.2 uuid: 3.4.0 transitivePeerDependencies: @@ -10028,15 +10129,6 @@ packages: - supports-color - utf-8-validate - /express-handlebars@6.0.7: - resolution: {integrity: sha512-iYeMFpc/hMD+E6FNAZA5fgWeXnXr4rslOSPkeEV6TwdmpJ5lEXuWX0u9vFYs31P2MURctQq2batR09oeNj0LIg==} - engines: {node: '>=v12.22.9'} - dependencies: - glob: 8.1.0 - graceful-fs: 4.2.11 - handlebars: 4.7.7 - dev: true - /express-session@1.17.2: resolution: {integrity: sha512-mPcYcLA0lvh7D4Oqr5aNJFMtBMKPLl++OKKxkHzZ0U0oDq1rpKBnkR5f5vCHR26VeArlTOEF9td4x5IjICksRQ==} engines: {node: '>= 0.8.0'} @@ -10140,7 +10232,6 @@ packages: dependencies: clone-deep: 4.0.1 source-map-support: 0.5.21 - dev: false /fast-deep-equal@3.1.3: resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} @@ -10168,14 +10259,12 @@ packages: /fast-json-stable-stringify@2.1.0: resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} - dev: true /fast-levenshtein@2.0.6: resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} /fast-safe-stringify@2.1.1: resolution: {integrity: sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==} - dev: true /fast-text-encoding@1.0.6: resolution: {integrity: sha512-VhXlQgj9ioXCqGstD37E/HBeqEGV/qOD/kmbVG8h5xKBYvM1L3lR1Zn4555cQ8GkYbJa8aJSipLPndE1k6zK2w==} @@ -10250,6 +10339,14 @@ packages: dependencies: escape-string-regexp: 1.0.5 + /figures@5.0.0: + resolution: {integrity: sha512-ej8ksPF4x6e5wvK9yevct0UCXh8TTFlWGVLlgjZuoBH1HwjIfKE/IdL5mq89sFA7zELi1VhKpmtDnrs7zWyeyg==} + engines: {node: '>=14'} + dependencies: + escape-string-regexp: 5.0.0 + is-unicode-supported: 1.3.0 + dev: false + /file-entry-cache@6.0.1: resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==} engines: {node: ^10.12.0 || >=12.0.0} @@ -10429,7 +10526,7 @@ packages: engines: {node: '>=14'} dependencies: cross-spawn: 7.0.3 - signal-exit: 4.0.1 + signal-exit: 4.0.2 dev: true /form-data@3.0.1: @@ -10498,7 +10595,7 @@ packages: graceful-fs: 4.2.11 jsonfile: 4.0.0 universalify: 0.1.2 - dev: true + dev: false /fs-extra@8.1.0: resolution: {integrity: sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==} @@ -10574,11 +10671,6 @@ packages: /functions-have-names@1.2.3: resolution: {integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==} - /fuzzy@0.1.3: - resolution: {integrity: sha512-/gZffu4ykarLrCiP3Ygsa86UAo1E5vEVlvTrpkKywXSbP9Xhln3oSp9QSV57gEq3JFFpGJ4GZ+5zdEp3FcUh4w==} - engines: {node: '>= 0.6.0'} - dev: true - /gauge@2.7.4: resolution: {integrity: sha512-14x4kjc6lkD3ltw589k0NrPD6cCNTD6CWoVUNpB85+DrtONoZn+Rug6xZU5RvSC4+TZPxA5AnBibQYAvZn41Hg==} dependencies: @@ -10627,7 +10719,7 @@ packages: color-support: 1.1.3 console-control-strings: 1.1.0 has-unicode: 2.0.1 - signal-exit: 4.0.1 + signal-exit: 4.0.2 string-width: 4.2.3 strip-ansi: 6.0.1 wide-align: 1.1.5 @@ -10635,7 +10727,6 @@ packages: /genson-js@0.0.5: resolution: {integrity: sha512-1i1y9MIGzTRkn4TusWQwLWLu8IJGHgSE+fbQRt1fy68ZKEq2GjDZI/7NUSZFOfTbHz8bgjP4iCIOcdYrgEsMBA==} - dev: false /gensync@1.0.0-beta.2: resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==} @@ -10645,11 +10736,12 @@ packages: resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} engines: {node: 6.* || 8.* || >= 10.*} - /get-intrinsic@1.2.0: - resolution: {integrity: sha512-L049y6nFOuom5wGyRc3/gdTLO94dySVKRACj1RmJZBQXlbTMhtNIgkWkUHq+jYmZvKf14EW1EoJnnjbmoHij0Q==} + /get-intrinsic@1.2.1: + resolution: {integrity: sha512-2DcsyfABl+gVHEfCOaTrWgyt+tb6MSEGmKq+kI5HwLbIYgjgmMcV8KQ41uaKz1xxUcn9tJtgFbQUEVcEbd0FYw==} dependencies: function-bind: 1.1.1 has: 1.0.3 + has-proto: 1.0.1 has-symbols: 1.0.3 /get-package-type@0.1.0: @@ -10705,7 +10797,7 @@ packages: engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.2 - get-intrinsic: 1.2.0 + get-intrinsic: 1.2.1 /get-value@2.0.6: resolution: {integrity: sha512-Ln0UQDlxH1BapMu3GPtf7CuYNwRZf2gwCuPqbyG6pB8WfmFpzqcy4xtAaAMUhnNqjMKTiCPZG2oMT3YSx8U2NA==} @@ -10793,16 +10885,16 @@ packages: is-glob: 4.0.3 dev: true - /glob@10.2.2: - resolution: {integrity: sha512-Xsa0BcxIC6th9UwNjZkhrMtNo/MnyRL8jGCP+uEwhA5oFOCY1f2s1/oNKY47xQ0Bg5nkjsfAEIej1VeH62bDDQ==} + /glob@10.2.6: + resolution: {integrity: sha512-U/rnDpXJGF414QQQZv5uVsabTVxMSwzS5CH0p3DRCIV6ownl4f7PzGnkGmvlum2wB+9RlJWJZ6ACU1INnBqiPA==} engines: {node: '>=16 || 14 >=14.17'} hasBin: true dependencies: foreground-child: 3.1.1 - jackspeak: 2.2.0 - minimatch: 9.0.0 - minipass: 5.0.0 - path-scurry: 1.7.0 + jackspeak: 2.2.1 + minimatch: 9.0.1 + minipass: 6.0.2 + path-scurry: 1.9.2 dev: true /glob@6.0.4: @@ -10863,7 +10955,7 @@ packages: fs.realpath: 1.0.0 minimatch: 8.0.4 minipass: 4.2.8 - path-scurry: 1.7.0 + path-scurry: 1.9.2 dev: true /global-jsdom@8.7.0(jsdom@21.1.0): @@ -10906,7 +10998,7 @@ packages: /gopd@1.0.1: resolution: {integrity: sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==} dependencies: - get-intrinsic: 1.2.0 + get-intrinsic: 1.2.1 /graceful-fs@4.2.10: resolution: {integrity: sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==} @@ -10926,7 +11018,7 @@ packages: graphql: ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 dependencies: graphql: 15.8.0 - tslib: 2.5.0 + tslib: 2.5.2 /graphql@15.8.0: resolution: {integrity: sha512-5gghUc24tP9HRznNpV2+FIoq3xKkj5dTQqf4v0CpdPbFVwFkWoxOM+o+2OC9ZSvjEMTjfmG9QT+gcvggTwW1zw==} @@ -10963,7 +11055,7 @@ packages: /has-property-descriptors@1.0.0: resolution: {integrity: sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==} dependencies: - get-intrinsic: 1.2.0 + get-intrinsic: 1.2.1 /has-proto@1.0.1: resolution: {integrity: sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==} @@ -11154,7 +11246,6 @@ packages: /http2-client@1.3.5: resolution: {integrity: sha512-EC2utToWl4RKfs5zd36Mxq7nzHHBuomZboI0yYL6Y0RmBgT7Sgkq4rQ0ezFTYoIsSs7Tm9SJe+o2FcAg6GBhGA==} - dev: true /https-proxy-agent@5.0.1: resolution: {integrity: sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==} @@ -11211,7 +11302,7 @@ packages: resolution: {integrity: sha512-C7FfFoTA+bI10qfeydT8aZbvr91vAEU+2W5BZUlzPec47oNb07SsOfwYrtxuvOYdUApPP/Qlh4DtAO51Ekk2QA==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} dependencies: - minimatch: 9.0.0 + minimatch: 9.0.1 dev: true /ignore@4.0.6: @@ -11251,7 +11342,7 @@ packages: /import-lazy@4.0.0: resolution: {integrity: sha512-rKtvo6a868b5Hu3heneU+L4yEQ4jYKLtjpnPeUdK7h0yzXGmyBTypknlkCvHFBqfX9YlorEiMM6Dnq/5atfHkw==} engines: {node: '>=8'} - dev: true + dev: false /import-local@3.1.0: resolution: {integrity: sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==} @@ -11306,24 +11397,24 @@ packages: promzard: 0.3.0 read: 1.0.7 read-package-json: 5.0.1 - semver: 7.5.0 + semver: 7.5.1 validate-npm-package-license: 3.0.4 validate-npm-package-name: 4.0.0 dev: true - /inquirer-autocomplete-prompt@2.0.0(inquirer@8.2.5): - resolution: {integrity: sha512-c2LljLP3ewVJe4AUZzKdA6oWjqhpy5pfsisHAjh7mP3WUQ/O02x5OLMMqcLOYuRHx6i2hlVSIhUv0xYGyFxFYA==} + /inquirer-autocomplete-prompt@3.0.0(inquirer@9.1.4): + resolution: {integrity: sha512-nsPWllBQB3qhvpVgV1UIJN4xo3yz7Qv8y1+zrNVpJUNPxtUZ7btCum/4UCAs5apPCe/FVhKH1V6Wx0cAwkreyg==} engines: {node: '>=12'} peerDependencies: - inquirer: ^8.0.0 + inquirer: ^9.1.0 dependencies: - ansi-escapes: 4.3.2 - figures: 3.2.0 - inquirer: 8.2.5 + ansi-escapes: 6.2.0 + figures: 5.0.0 + inquirer: 9.1.4 picocolors: 1.0.0 run-async: 2.4.1 rxjs: 7.8.1 - dev: true + dev: false /inquirer@7.3.3: resolution: {integrity: sha512-JG3eIAj5V9CwcGvuOmoo6LB9kbAYT8HXffUl6memuszlwDC/qvFAJw49XJ5NROSFNPxp3iQg1GqkFhaY/CR0IA==} @@ -11386,6 +11477,27 @@ packages: wrap-ansi: 7.0.0 dev: true + /inquirer@9.1.4: + resolution: {integrity: sha512-9hiJxE5gkK/cM2d1mTEnuurGTAoHebbkX0BYl3h7iEg7FYfuNIom+nDfBCSWtvSnoSrWCeBxqqBZu26xdlJlXA==} + engines: {node: '>=12.0.0'} + dependencies: + ansi-escapes: 6.2.0 + chalk: 5.2.0 + cli-cursor: 4.0.0 + cli-width: 4.0.0 + external-editor: 3.1.0 + figures: 5.0.0 + lodash: 4.17.21 + mute-stream: 0.0.8 + ora: 6.3.1 + run-async: 2.4.1 + rxjs: 7.8.1 + string-width: 5.1.2 + strip-ansi: 7.0.1 + through: 2.3.8 + wrap-ansi: 8.1.0 + dev: false + /internal-ip@4.3.0: resolution: {integrity: sha512-S1zBo1D6zcsyuC6PMmY5+55YMILQ9av8lotMx447Bq6SAgo/sDK6y6uUKmuYhW7eacnIhFfsPmCNYdDzsnnDCg==} engines: {node: '>=6'} @@ -11397,7 +11509,7 @@ packages: resolution: {integrity: sha512-Y+R5hJrzs52QCG2laLn4udYVnxsfny9CpOhNhUvk/SSSVyF6T27FzRbF0sroPidSu3X8oEAkOn2K804mjpt6UQ==} engines: {node: '>= 0.4'} dependencies: - get-intrinsic: 1.2.0 + get-intrinsic: 1.2.1 has: 1.0.3 side-channel: 1.0.4 @@ -11451,7 +11563,7 @@ packages: resolution: {integrity: sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w==} dependencies: call-bind: 1.0.2 - get-intrinsic: 1.2.0 + get-intrinsic: 1.2.1 is-typed-array: 1.1.10 /is-arrayish@0.2.1: @@ -11483,8 +11595,8 @@ packages: ci-info: 2.0.0 dev: true - /is-core-module@2.12.0: - resolution: {integrity: sha512-RECHCBCd/viahWmwj6enj19sKbHfJrddi/6cBDsNTKbNq0f7VeaUkBo60BqzvPqo/W54ChS62Z5qyun7cfOMqQ==} + /is-core-module@2.12.1: + resolution: {integrity: sha512-Q4ZuBAe2FUsKtyQJoQHlvP8OvBERxO3jEmy1I7hcRXcJBGGHFh/aJBswbXuS9sgrDH2QUO8ilkwNPHvHMd8clg==} dependencies: has: 1.0.3 @@ -11587,15 +11699,15 @@ packages: dependencies: is-extglob: 2.1.1 - /is-hex-prefixed@1.0.0: - resolution: {integrity: sha512-WvtOiug1VFrE9v1Cydwm+FnXd3+w9GaeVUss5W4v/SLy3UW00vP+6iNF2SdnfiBoLy4bTqVdkftNGTUeOFVsbA==} - engines: {node: '>=6.5.0', npm: '>=3'} - dev: true - /is-interactive@1.0.0: resolution: {integrity: sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==} engines: {node: '>=8'} + /is-interactive@2.0.0: + resolution: {integrity: sha512-qP1vozQRI+BMOPcjFzrjXuQvdak2pHNUMZoeG2eRbiSqyvbEf/wQtEOTOX1guk6E3t36RkaqiSt8A/6YElNxLQ==} + engines: {node: '>=12'} + dev: false + /is-invalid-path@0.1.0: resolution: {integrity: sha512-aZMG0T3F34mTg4eTdszcGXx54oiZ4NtHSft3hWNJMGJXUUqdIj3cOZuHcU0nCWWcY3jd7yRe/3AEm3vSNTpBGQ==} engines: {node: '>=0.10.0'} @@ -11738,6 +11850,11 @@ packages: resolution: {integrity: sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==} engines: {node: '>=10'} + /is-unicode-supported@1.3.0: + resolution: {integrity: sha512-43r2mRvz+8JRIKnWJ+3j8JtjRKZ6GmjzfaE/qiBJnikNnYv/6bagRJ1kUhNk8R5EX/GkobD+r+sfxCPJsiKBLQ==} + engines: {node: '>=12'} + dev: false + /is-valid-path@0.1.1: resolution: {integrity: sha512-+kwPrVDu9Ms03L90Qaml+79+6DZHqHyRoANI6IsZJ/g8frhnfchDOBCa0RbQ6/kdHt5CS5OeIEyrYznNuVN+8A==} engines: {node: '>=0.10.0'} @@ -11757,7 +11874,7 @@ packages: resolution: {integrity: sha512-t2yVvttHkQktwnNNmBQ98AhENLdPUTDTE21uPqAQ0ARwQfGeQKRVS0NNurH7bTf7RrvcVn1OOge45CnBeHCSmg==} dependencies: call-bind: 1.0.2 - get-intrinsic: 1.2.0 + get-intrinsic: 1.2.1 dev: true /is-windows@1.0.2: @@ -11776,7 +11893,6 @@ packages: /isarray@0.0.1: resolution: {integrity: sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==} - dev: true /isarray@1.0.0: resolution: {integrity: sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==} @@ -11791,7 +11907,6 @@ packages: /iso-url@0.4.7: resolution: {integrity: sha512-27fFRDnPAMnHGLq36bWTpKET+eiXct3ENlCcdcMdk+mjXrb2kw3mhBUg1B7ewAC0kVzlOPhADzQgz1SE6Tglog==} engines: {node: '>=10'} - dev: false /isobject@2.1.0: resolution: {integrity: sha512-+OUdGJlgjOBZDfxnDjYYG6zp487z0JGNQq3cYQYg5f5hKR+syHMsaztzGeml/4kGG55CSpKSpWTY+jYGgsHLgA==} @@ -11860,8 +11975,8 @@ packages: istanbul-lib-report: 3.0.0 dev: true - /jackspeak@2.2.0: - resolution: {integrity: sha512-r5XBrqIJfwRIjRt/Xr5fv9Wh09qyhHfKnYddDlpM+ibRR20qrYActpCAgU6U+d53EOEjzkvxPMVHSlgR7leXrQ==} + /jackspeak@2.2.1: + resolution: {integrity: sha512-MXbxovZ/Pm42f6cDIDkl3xpwv1AGwObKwfmjs2nQePiy85tP3fatofl3FC1aBsOtP/6fq5SbtgHwWcMsLP+bDw==} engines: {node: '>=14'} dependencies: '@isaacs/cliui': 8.0.2 @@ -11869,8 +11984,8 @@ packages: '@pkgjs/parseargs': 0.11.0 dev: true - /jake@10.8.5: - resolution: {integrity: sha512-sVpxYeuAhWt0OTWITwT98oyV0GsXyMlXCF+3L1SuafBVUIr/uILGRB+NqwkzhgXKvoJpDIpQvqkUALgdmQsQxw==} + /jake@10.8.6: + resolution: {integrity: sha512-G43Ub9IYEFfu72sua6rzooi8V8Gz2lkfk48rW20vEWCGizeaEPlKB1Kh8JIA84yQbiAEfqlPmSpGgCKKxH3rDA==} engines: {node: '>=10'} hasBin: true dependencies: @@ -12324,7 +12439,7 @@ packages: jest-util: 27.5.1 natural-compare: 1.4.0 pretty-format: 27.5.1 - semver: 7.5.0 + semver: 7.5.1 transitivePeerDependencies: - supports-color dev: true @@ -12421,7 +12536,7 @@ packages: /jju@1.4.0: resolution: {integrity: sha512-8wb9Yw966OSxApiCt0K3yNJL8pnNeIv+OEq2YMidz4FKP6nonSRoOXc80iXY4JaN2FC11B9qsNmDsm+ZOfMROA==} - dev: true + dev: false /joi@17.9.2: resolution: {integrity: sha512-Itk/r+V4Dx0V3c7RLFdRh12IOjySm2/WGPMubBT92cQvRfYZhPM2W0hZlctjj72iES8jsRCwp7S/cRmWBnJ4nw==} @@ -12598,10 +12713,6 @@ packages: /json-buffer@3.0.1: resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==} - /json-canonicalize@1.0.6: - resolution: {integrity: sha512-kP2iYpOS5SZHYhIaR1t9oG80d4uTY3jPoaBj+nimy3njtJk8+sRsVatN8pyJRDRtk9Su3+6XqA2U8k0dByJBUQ==} - dev: true - /json-parse-better-errors@1.0.2: resolution: {integrity: sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==} @@ -12634,14 +12745,12 @@ packages: /json-schema-traverse@0.4.1: resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} - dev: true /json-schema-traverse@1.0.0: resolution: {integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==} /json-schema@0.4.0: resolution: {integrity: sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==} - dev: true /json-stable-stringify-without-jsonify@1.0.1: resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} @@ -12663,7 +12772,6 @@ packages: resolution: {integrity: sha512-L3mEegEWHRekSHjc7+sc8eJhba9Clq1PZ8kMkzf8OxElhXc8O4TS5MwcVlj9aEbm5dr81N90WHC5nAz3UO971w==} dependencies: delimit-stream: 0.1.0 - dev: false /json5@0.5.1: resolution: {integrity: sha512-4xrs1aW+6N5DalkqSVA8fxh458CXvR99WU8WLKmq4v8eWAL86Xo3BVqyd3SkA9wEVjCMqyvvRRkshAdOnBp5rw==} @@ -12702,7 +12810,7 @@ packages: engines: {node: '>=10'} dependencies: jsonld: link:node_modules/.pnpm/@digitalcredentials+jsonld@5.2.1/node_modules/@digitalcredentials/jsonld - node-fetch: 2.6.9 + node-fetch: 2.6.11 transitivePeerDependencies: - encoding @@ -12728,7 +12836,6 @@ packages: node-forge: 0.10.0 security-context: 4.0.0 serialize-error: 5.0.0 - dev: false /jsonparse@1.3.1: resolution: {integrity: sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==} @@ -12745,6 +12852,7 @@ packages: /jsonpointer@5.0.1: resolution: {integrity: sha512-p/nXbhSEcu3pZRdkW1OfJhpsVtW1gd4Wa1fnQc9YLiTfAjn0312eMKimbdIQzuZl9aa9xUGaRlP9T/CJE/ditQ==} engines: {node: '>=0.10.0'} + dev: false /jsonwebtoken@9.0.0: resolution: {integrity: sha512-tuGfYXxkQGDPnLJ7SibiQgVgeDgfbPq2k2ICcbgqW8WxWLBAxKQM/ZCu/IT8SOSwmaYl4dpTFCW5xZv7YbbWUw==} @@ -12753,7 +12861,7 @@ packages: jws: 3.2.2 lodash: 4.17.21 ms: 2.1.3 - semver: 7.5.0 + semver: 7.5.1 dev: false /just-diff-apply@5.5.0: @@ -12949,7 +13057,7 @@ packages: read-package-json: 5.0.1 resolve-from: 5.0.0 rimraf: 4.4.1 - semver: 7.5.0 + semver: 7.5.1 signal-exit: 3.0.7 slash: 3.0.0 ssri: 9.0.1 @@ -13013,7 +13121,7 @@ packages: normalize-package-data: 4.0.1 npm-package-arg: 9.1.2 npm-registry-fetch: 13.3.1 - semver: 7.5.0 + semver: 7.5.1 ssri: 9.0.1 transitivePeerDependencies: - bluebird @@ -13022,7 +13130,6 @@ packages: /libphonenumber-js@1.10.30: resolution: {integrity: sha512-PLGc+xfrQrkya/YK2/5X+bPpxRmyJBHM+xxz9krUdSgk4Vs2ZwxX5/Ow0lv3r9PDlDtNWb4u+it8MY5rZ0IyGw==} - dev: false /lines-and-columns@1.2.4: resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} @@ -13146,6 +13253,14 @@ packages: chalk: 4.1.2 is-unicode-supported: 0.1.0 + /log-symbols@5.1.0: + resolution: {integrity: sha512-l0x2DvrW294C9uDCoQe1VSU4gf529FkSZ6leBl4TiqZH/e+0R7hSfHQBNut2mNygDgHwvYHfFLn6Oxb3VWj2rA==} + engines: {node: '>=12'} + dependencies: + chalk: 5.2.0 + is-unicode-supported: 1.3.0 + dev: false + /logkitty@0.7.1: resolution: {integrity: sha512-/3ER20CTTbahrCrpYfPn7Xavv9diBROZpoXGVZDWMw4b/X4uuUwAC0ki85tgsdMRONURyIJbcOvS94QsUBYPbQ==} hasBin: true @@ -13199,7 +13314,7 @@ packages: bignumber.js: 4.1.0 crypto-js: 3.3.0 js-sha256: 0.9.0 - node-fetch: 2.6.9 + node-fetch: 2.6.11 parse-json-bignumber: 0.0.2 ts-api-validator: 2.1.3 ts-utils: 6.1.0 @@ -13259,7 +13374,7 @@ packages: engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} dependencies: agentkeepalive: 4.3.0 - cacache: 17.1.0 + cacache: 17.1.3 http-cache-semantics: 4.1.1 http-proxy-agent: 5.0.0 https-proxy-agent: 5.0.1 @@ -13335,13 +13450,13 @@ packages: dependencies: object-visit: 1.0.1 - /marked-terminal@5.1.1(marked@4.3.0): - resolution: {integrity: sha512-+cKTOx9P4l7HwINYhzbrBSyzgxO2HaHKGZGuB1orZsMIgXYaJyfidT81VXRdpelW/PcHEWxywscePVgI/oUF6g==} + /marked-terminal@5.2.0(marked@4.3.0): + resolution: {integrity: sha512-Piv6yNwAQXGFjZSaiNljyNFw7jKDdGrw70FSbtxEyldLsyeuV5ZHm/1wW++kWbrOF1VPnUgYOhB2oLL0ZpnekA==} engines: {node: '>=14.13.1 || >=16.0.0'} peerDependencies: - marked: ^1.0.0 || ^2.0.0 || ^3.0.0 || ^4.0.0 + marked: ^1.0.0 || ^2.0.0 || ^3.0.0 || ^4.0.0 || ^5.0.0 dependencies: - ansi-escapes: 5.0.0 + ansi-escapes: 6.2.0 cardinal: 2.1.1 chalk: 5.2.0 cli-table3: 0.6.3 @@ -13523,7 +13638,7 @@ packages: /metro-minify-terser@0.73.9: resolution: {integrity: sha512-MTGPu2qV5qtzPJ2SqH6s58awHDtZ4jd7lmmLR+7TXDwtZDjIBA0YVfI0Zak2Haby2SqoNKrhhUns/b4dPAQAVg==} dependencies: - terser: 5.17.1 + terser: 5.17.4 /metro-minify-uglify@0.73.9: resolution: {integrity: sha512-gzxD/7WjYcnCNGiFJaA26z34rjOp+c/Ft++194Wg91lYep3TeWQ0CnH8t2HRS7AYDHU81SGWgvD3U7WV0g4LGA==} @@ -13707,7 +13822,7 @@ packages: metro-transform-plugins: 0.73.9 metro-transform-worker: 0.73.9 mime-types: 2.1.35 - node-fetch: 2.6.9 + node-fetch: 2.6.11 nullthrows: 1.1.1 rimraf: 3.0.2 serialize-error: 2.1.0 @@ -13723,10 +13838,6 @@ packages: - supports-color - utf-8-validate - /micro-ftch@0.3.1: - resolution: {integrity: sha512-/0LLxhzP0tfiR5hcQebtudP56gUurs2CLkGarnCiB/OqEyUFQ6U3paQi/tgLv0hBJYt2rnr9MNpxz4fiiugstg==} - dev: true - /micromatch@3.1.10: resolution: {integrity: sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==} engines: {node: '>=0.10.0'} @@ -13830,8 +13941,8 @@ packages: brace-expansion: 2.0.1 dev: true - /minimatch@9.0.0: - resolution: {integrity: sha512-0jJj8AvgKqWN05mrwuqi8QYKx1WmYSUoKSxu5Qhs9prezTz10sxAHGNZe9J9cqIJzta8DWsleh2KaVaLl6Ru2w==} + /minimatch@9.0.1: + resolution: {integrity: sha512-0jWhJpD/MdhPXwPuiRkCbfYfSKp2qnn2eOc279qI7f+osl/l+prKSrvhg157zSYvx/1nmgn2NqdT6k2Z7zSH9w==} engines: {node: '>=16 || 14 >=14.17'} dependencies: brace-expansion: 2.0.1 @@ -13948,6 +14059,11 @@ packages: resolution: {integrity: sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==} engines: {node: '>=8'} + /minipass@6.0.2: + resolution: {integrity: sha512-MzWSV5nYVT7mVyWCwn2o7JH13w2TBRmmSqSRCKzTw+lmft9X4z+3wjvs06Tzijo5z4W/kahUCDpRXTF+ZrmF/w==} + engines: {node: '>=16 || 14 >=14.17'} + dev: true + /minizlib@1.3.3: resolution: {integrity: sha512-6ZYMOEnmVsdCeTJVE0W9ZD+pVnE8h9Hma/iOwwRDsdQoePpoX56/8B6z3P9VNwppJuBKNRuFDRNRqRWexT9G9Q==} dependencies: @@ -14000,7 +14116,6 @@ packages: /moment@2.29.4: resolution: {integrity: sha512-5LC9SOxjSc2HF6vO2CyuTDNivEdoz2IvyJJGj6X8DJ0eFyfszE0QiEd+iXmBvUP3WHxSjFH/vIsA0EN00cgr8w==} - dev: false /mri@1.2.0: resolution: {integrity: sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==} @@ -14170,7 +14285,7 @@ packages: inquirer: 7.3.3 make-promises-safe: 5.1.0 rimraf: 3.0.2 - semver: 7.5.0 + semver: 7.5.1 toml: 3.0.0 ts-typed-json: 0.3.2 validate-npm-package-license: 3.0.4 @@ -14191,7 +14306,7 @@ packages: inquirer: 7.3.3 make-promises-safe: 5.1.0 rimraf: 3.0.2 - semver: 7.5.0 + semver: 7.5.1 toml: 3.0.0 ts-typed-json: 0.3.2 validate-npm-package-license: 3.0.4 @@ -14258,10 +14373,9 @@ packages: engines: {node: 4.x || >=6.0.0} dependencies: http2-client: 1.3.5 - dev: true - /node-fetch@2.6.7: - resolution: {integrity: sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==} + /node-fetch@2.6.11: + resolution: {integrity: sha512-4I6pdBY1EthSqDmJkiNk3JIT8cswwR9nfeW/cPdUagJYEQG7R95WRH74wpz7ma8Gh/9dI9FP+OU+0E4FvtA55w==} engines: {node: 4.x || >=6.0.0} peerDependencies: encoding: ^0.1.0 @@ -14271,8 +14385,8 @@ packages: dependencies: whatwg-url: 5.0.0 - /node-fetch@2.6.9: - resolution: {integrity: sha512-DJm/CJkZkRjKKj4Zi4BsKVZh3ValV5IR5s7LVZnW+6YMh0W1BfNA8XSs6DLMGYlId5F3KnA70uu2qepcR08Qqg==} + /node-fetch@2.6.7: + resolution: {integrity: sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==} engines: {node: 4.x || >=6.0.0} peerDependencies: encoding: ^0.1.0 @@ -14316,8 +14430,8 @@ packages: nopt: 5.0.0 npmlog: 6.0.2 rimraf: 3.0.2 - semver: 7.5.0 - tar: 6.1.14 + semver: 7.5.1 + tar: 6.1.15 which: 2.0.2 transitivePeerDependencies: - bluebird @@ -14336,8 +14450,8 @@ packages: nopt: 6.0.0 npmlog: 6.0.2 rimraf: 3.0.2 - semver: 7.5.0 - tar: 6.1.14 + semver: 7.5.1 + tar: 6.1.11 which: 2.0.2 transitivePeerDependencies: - bluebird @@ -14366,8 +14480,8 @@ packages: - supports-color optional: true - /node-releases@2.0.10: - resolution: {integrity: sha512-5GFldHPXVG/YZmFzJvKK2zDSzPKhEp0+ZR5SVaoSag9fsL5YgHbUHDfnG5494ISANDcK4KwPXAx2xqVEydmd7w==} + /node-releases@2.0.11: + resolution: {integrity: sha512-+M0PwXeU80kRohZ3aT4J/OnR+l9/KD2nVLNNoRgFtnf+umQVFdGBAO2N8+nCnEi0xlh/Wk3zOGC+vNNx+uM79Q==} /node-stream-zip@1.15.0: resolution: {integrity: sha512-LN4fydt9TqhZhThkZIVQnF9cwjU3qmUH9h78Mx/K7d3VvfRqqwthLwJEUOEL0QPZ0XQmNN7be5Ggit5+4dq3Bw==} @@ -14376,14 +14490,12 @@ packages: /nofilter@1.0.4: resolution: {integrity: sha512-N8lidFp+fCz+TD51+haYdbDGrcBWwuHX40F5+z0qkUjMJ5Tp+rdSuAkMJ9N9eoolDlEVTf6u5icM+cNKkKW2mA==} engines: {node: '>=8'} - dev: false /noms@0.0.0: resolution: {integrity: sha512-lNDU9VJaOPxUmXcLb+HQFeUgQQPtMI24Gt6hgfuMHRJgMRHMF/qZ4HJD3GDru4sSw9IQl2jPjAYnQrdIeLbwow==} dependencies: inherits: 2.0.4 readable-stream: 1.0.34 - dev: true /nopt@4.0.3: resolution: {integrity: sha512-CvaGwVMztSMJLOeXPrez7fyfObdZqNUK1cPAEzLHrTybIua9pMdmmPR5YwtfNftIOMv3DPUhFaxsZMNTQO20Kg==} @@ -14430,8 +14542,8 @@ packages: engines: {node: '>=10'} dependencies: hosted-git-info: 4.1.0 - is-core-module: 2.12.0 - semver: 7.5.0 + is-core-module: 2.12.1 + semver: 7.5.1 validate-npm-package-license: 3.0.4 dev: true @@ -14440,8 +14552,8 @@ packages: engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} dependencies: hosted-git-info: 5.2.1 - is-core-module: 2.12.0 - semver: 7.5.0 + is-core-module: 2.12.1 + semver: 7.5.1 validate-npm-package-license: 3.0.4 dev: true @@ -14450,8 +14562,8 @@ packages: engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} dependencies: hosted-git-info: 6.1.1 - is-core-module: 2.12.0 - semver: 7.5.0 + is-core-module: 2.12.1 + semver: 7.5.1 validate-npm-package-license: 3.0.4 dev: true @@ -14480,14 +14592,14 @@ packages: resolution: {integrity: sha512-65lUsMI8ztHCxFz5ckCEC44DRvEGdZX5usQFriauxHEwt7upv1FKaQEmAtU0YnOAdwuNWCmk64xYiQABNrEyLA==} engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} dependencies: - semver: 7.5.0 + semver: 7.5.1 dev: true /npm-install-checks@6.1.1: resolution: {integrity: sha512-dH3GmQL4vsPtld59cOn8uY0iOqRmqKvV+DLGwNXV/Q7MDgD2QfOADWd/mFXcIE5LVhYYGjA3baz6W9JneqnuCw==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} dependencies: - semver: 7.5.0 + semver: 7.5.1 dev: true /npm-normalize-package-bin@1.0.1: @@ -14509,7 +14621,7 @@ packages: dependencies: hosted-git-info: 6.1.1 proc-log: 3.0.0 - semver: 7.5.0 + semver: 7.5.1 validate-npm-package-name: 5.0.0 dev: true @@ -14526,7 +14638,7 @@ packages: engines: {node: '>=10'} dependencies: hosted-git-info: 3.0.8 - semver: 7.5.0 + semver: 7.5.1 validate-npm-package-name: 3.0.0 dev: true @@ -14536,7 +14648,7 @@ packages: dependencies: hosted-git-info: 5.2.1 proc-log: 2.0.1 - semver: 7.5.0 + semver: 7.5.1 validate-npm-package-name: 4.0.0 dev: true @@ -14573,7 +14685,7 @@ packages: npm-install-checks: 5.0.0 npm-normalize-package-bin: 2.0.0 npm-package-arg: 9.1.2 - semver: 7.5.0 + semver: 7.5.1 dev: true /npm-pick-manifest@8.0.1: @@ -14583,7 +14695,7 @@ packages: npm-install-checks: 6.1.1 npm-normalize-package-bin: 3.0.1 npm-package-arg: 10.1.0 - semver: 7.5.0 + semver: 7.5.1 dev: true /npm-registry-fetch@13.3.1: @@ -14790,7 +14902,7 @@ packages: '@nrwl/tao': 15.9.4 '@parcel/watcher': 2.0.4 '@yarnpkg/lockfile': 1.1.0 - '@yarnpkg/parsers': 3.0.0-rc.43 + '@yarnpkg/parsers': 3.0.0-rc.44 '@zkochan/js-yaml': 0.0.6 axios: 1.4.0 chalk: 4.1.2 @@ -14817,7 +14929,7 @@ packages: tar-stream: 2.2.0 tmp: 0.2.1 tsconfig-paths: 4.2.0 - tslib: 2.5.0 + tslib: 2.5.2 v8-compile-cache: 2.3.0 yargs: 17.7.2 yargs-parser: 21.1.1 @@ -14839,7 +14951,6 @@ packages: resolution: {integrity: sha512-pJTS2+T0oGIwgjGpw7sIRU8RQMcUoKCDWFLdBqKB2BNmGpbBMH2sdqAaOXUg8OzonZHU0L7vfJu1mJFEiYDWOQ==} dependencies: fast-safe-stringify: 2.1.1 - dev: true /oas-resolver@2.5.6: resolution: {integrity: sha512-Yx5PWQNZomfEhPPOphFbZKi9W93CocQj18NlD2Pa4GWZzdZpSJvYwoiuurRI7m3SpcChrnO08hkuQDL3FGsVFQ==} @@ -14850,7 +14961,6 @@ packages: reftools: 1.1.9 yaml: 1.10.2 yargs: 17.7.2 - dev: true /ob1@0.73.9: resolution: {integrity: sha512-kHOzCOFXmAM26fy7V/YuXNKne2TyRiXbFAvPBIbuedJCZZWQZHLdPzMeXJI4Egt6IcfDttRzN3jQ90wOwq1iNw==} @@ -14972,7 +15082,6 @@ packages: /openapi-types@12.1.0: resolution: {integrity: sha512-XpeCy01X6L5EpP+6Hc3jWN7rMZJ+/k1lwki/kTmWzbVhdPie3jd5O2ZtedEx8Yp58icJ0osVldLMrTB/zslQXA==} - dev: true /optionator@0.8.3: resolution: {integrity: sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==} @@ -15022,6 +15131,21 @@ packages: strip-ansi: 6.0.1 wcwidth: 1.0.1 + /ora@6.3.1: + resolution: {integrity: sha512-ERAyNnZOfqM+Ao3RAvIXkYh5joP220yf59gVe2X/cI6SiCxIdi4c9HZKZD8R6q/RDXEje1THBju6iExiSsgJaQ==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dependencies: + chalk: 5.2.0 + cli-cursor: 4.0.0 + cli-spinners: 2.9.0 + is-interactive: 2.0.0 + is-unicode-supported: 1.3.0 + log-symbols: 5.1.0 + stdin-discarder: 0.1.0 + strip-ansi: 7.0.1 + wcwidth: 1.0.1 + dev: false + /os-homedir@1.0.2: resolution: {integrity: sha512-B5JU3cabzk8c67mRRd3ECmROafjYMXbuzlwtqdM8IbS8ktlTix8aFGb2bAGKrSRIlnfKwovGUUr72JUPyOb6kQ==} engines: {node: '>=0.10.0'} @@ -15173,9 +15297,6 @@ packages: p-reduce: 2.1.0 dev: true - /packet-reader@1.0.0: - resolution: {integrity: sha512-HAKu/fG3HpHFO0AA8WE8q2g+gBJaZ9MG7fcKk+IJPLTGAD6Psw4443l+9DGRbOIh3/aXr7Phy0TjilYivJo5XQ==} - /pacote@13.6.2: resolution: {integrity: sha512-Gu8fU3GsvOPkak2CkbojR7vjs3k3P9cA6uazKTHdsdV0gpCEQq2opelnEv30KRQWgVzP5Vd/5umjcedma3MKtg==} engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} @@ -15201,22 +15322,22 @@ packages: read-package-json-fast: 2.0.3 rimraf: 3.0.2 ssri: 9.0.1 - tar: 6.1.14 + tar: 6.1.11 transitivePeerDependencies: - bluebird - supports-color dev: true - /pacote@15.1.3: - resolution: {integrity: sha512-aRts8cZqxiJVDitmAh+3z+FxuO3tLNWEmwDRPEpDDiZJaRz06clP4XX112ynMT5uF0QNoMPajBBHnaStUEPJXA==} + /pacote@15.2.0: + resolution: {integrity: sha512-rJVZeIwHTUta23sIZgEIM62WYwbmGbThdbnkt81ravBplQv+HjyroqnLRNH2+sLJHcGZmLRmhPwACqhfTcOmnA==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} hasBin: true dependencies: '@npmcli/git': 4.0.4 '@npmcli/installed-package-contents': 2.0.2 '@npmcli/promise-spawn': 6.0.2 - '@npmcli/run-script': 6.0.1 - cacache: 17.1.0 + '@npmcli/run-script': 6.0.2 + cacache: 17.1.3 fs-minipass: 3.0.2 minipass: 5.0.0 npm-package-arg: 10.1.0 @@ -15227,9 +15348,9 @@ packages: promise-retry: 2.0.1 read-package-json: 6.0.3 read-package-json-fast: 3.0.2 - sigstore: 1.4.0 + sigstore: 1.5.2 ssri: 10.0.4 - tar: 6.1.14 + tar: 6.1.11 transitivePeerDependencies: - bluebird - supports-color @@ -15394,12 +15515,12 @@ packages: /path-parse@1.0.7: resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} - /path-scurry@1.7.0: - resolution: {integrity: sha512-UkZUeDjczjYRE495+9thsgcVgsaCPkaw80slmfVFgllxY+IO8ubTsOpFVjDPROBqJdHfVPUFRHPBV/WciOVfWg==} + /path-scurry@1.9.2: + resolution: {integrity: sha512-qSDLy2aGFPm8i4rsbHd4MNyTcrzHFsLQykrtbuGRknZZCBBVXSv2tSCDN2Cg6Rt/GFRw8GoW9y9Ecw5rIPG1sg==} engines: {node: '>=16 || 14 >=14.17'} dependencies: lru-cache: 9.1.1 - minipass: 5.0.0 + minipass: 6.0.2 dev: true /path-to-regexp@0.1.7: @@ -15419,62 +15540,6 @@ packages: /pause@0.0.1: resolution: {integrity: sha512-KG8UEiEVkR3wGEb4m5yZkVCzigAD+cVEJck2CzYZO37ZGJfctvVptVO192MwrtPhzONn6go8ylnOdMhKqi4nfg==} - /pg-cloudflare@1.1.0: - resolution: {integrity: sha512-tGM8/s6frwuAIyRcJ6nWcIvd3+3NmUKIs6OjviIm1HPPFEt5MzQDOTBQyhPWg/m0kCl95M6gA1JaIXtS8KovOA==} - requiresBuild: true - optional: true - - /pg-connection-string@2.6.0: - resolution: {integrity: sha512-x14ibktcwlHKoHxx9X3uTVW9zIGR41ZB6QNhHb21OPNdCCO3NaRnpJuwKIQSR4u+Yqjx4HCvy7Hh7VSy1U4dGg==} - - /pg-int8@1.0.1: - resolution: {integrity: sha512-WCtabS6t3c8SkpDBUlb1kjOs7l66xsGdKpIPZsg4wR+B3+u9UAum2odSsF9tnvxg80h4ZxLWMy4pRjOsFIqQpw==} - engines: {node: '>=4.0.0'} - - /pg-pool@3.6.0(pg@8.11.0): - resolution: {integrity: sha512-clFRf2ksqd+F497kWFyM21tMjeikn60oGDmqMT8UBrynEwVEX/5R5xd2sdvdo1cZCFlguORNpVuqxIj+aK4cfQ==} - peerDependencies: - pg: '>=8.0' - dependencies: - pg: 8.11.0 - - /pg-protocol@1.6.0: - resolution: {integrity: sha512-M+PDm637OY5WM307051+bsDia5Xej6d9IR4GwJse1qA1DIhiKlksvrneZOYQq42OM+spubpcNYEo2FcKQrDk+Q==} - - /pg-types@2.2.0: - resolution: {integrity: sha512-qTAAlrEsl8s4OiEQY69wDvcMIdQN6wdz5ojQiOy6YRMuynxenON0O5oCpJI6lshc6scgAY8qvJ2On/p+CXY0GA==} - engines: {node: '>=4'} - dependencies: - pg-int8: 1.0.1 - postgres-array: 2.0.0 - postgres-bytea: 1.0.0 - postgres-date: 1.0.7 - postgres-interval: 1.2.0 - - /pg@8.11.0: - resolution: {integrity: sha512-meLUVPn2TWgJyLmy7el3fQQVwft4gU5NGyvV0XbD41iU9Jbg8lCH4zexhIkihDzVHJStlt6r088G6/fWeNjhXA==} - engines: {node: '>= 8.0.0'} - peerDependencies: - pg-native: '>=3.0.1' - peerDependenciesMeta: - pg-native: - optional: true - dependencies: - buffer-writer: 2.0.0 - packet-reader: 1.0.0 - pg-connection-string: 2.6.0 - pg-pool: 3.6.0(pg@8.11.0) - pg-protocol: 1.6.0 - pg-types: 2.2.0 - pgpass: 1.0.5 - optionalDependencies: - pg-cloudflare: 1.1.0 - - /pgpass@1.0.5: - resolution: {integrity: sha512-FdW9r/jQZhSeohs1Z3sI1yxFQNFvMcnmfuj4WBMUTxOrAyLMaTcE1aAMBiTlbMNaXvBCQuVi0R7hd8udDSP7ug==} - dependencies: - split2: 4.2.0 - /picocolors@1.0.0: resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==} @@ -15547,32 +15612,14 @@ packages: resolution: {integrity: sha512-xTgYBc3fuo7Yt7JbiuFxSYGToMoz8fLoE6TC9Wx1P/u+LfeThMOAqmuyECnlBaaJb+u1m9hHiXUEtwW4OzfUJg==} engines: {node: '>=0.10.0'} - /postcss-selector-parser@6.0.12: - resolution: {integrity: sha512-NdxGCAZdRrwVI1sy59+Wzrh+pMMHxapGnpfenDVlMEXoOcvt4pGE0JLK9YY2F5dLxcFYA/YbVQKhcGU+FtSYQg==} + /postcss-selector-parser@6.0.13: + resolution: {integrity: sha512-EaV1Gl4mUEV4ddhDnv/xtj7sxwrwxdetHdWUGnT4VJQf+4d05v6lHYZr8N573k5Z0BViss7BDhfWtKS3+sfAqQ==} engines: {node: '>=4'} dependencies: cssesc: 3.0.0 util-deprecate: 1.0.2 dev: true - /postgres-array@2.0.0: - resolution: {integrity: sha512-VpZrUqU5A69eQyW2c5CA1jtLecCsN2U/bD6VilrFDWq5+5UIEVO7nazS3TEcHf1zuPYO/sqGvUvW62g86RXZuA==} - engines: {node: '>=4'} - - /postgres-bytea@1.0.0: - resolution: {integrity: sha512-xy3pmLuQqRBZBXDULy7KbaitYqLcmxigw14Q5sj8QBVLqEwXfeybIKVWiqAXTlcvdvb0+xkOtDbfQMOf4lST1w==} - engines: {node: '>=0.10.0'} - - /postgres-date@1.0.7: - resolution: {integrity: sha512-suDmjLVQg78nMK2UZ454hAG+OAW+HQPZ6n++TNDUX+L0+uUlLywnoxJKDou51Zm+zTCjrCl0Nq6J9C5hP9vK/Q==} - engines: {node: '>=0.10.0'} - - /postgres-interval@1.2.0: - resolution: {integrity: sha512-9ZhXKM/rw350N1ovuWHbGxnGh/SNJ4cnxHiM0rxE4VN41wsg8P8zWn9hv/buK00RP4WvlOyr/RBDiptyxVbkZQ==} - engines: {node: '>=0.10.0'} - dependencies: - xtend: 4.0.2 - /prelude-ls@1.1.2: resolution: {integrity: sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w==} engines: {node: '>= 0.8.0'} @@ -15767,7 +15814,7 @@ packages: /pvtsutils@1.3.2: resolution: {integrity: sha512-+Ipe2iNUyrZz+8K/2IOo+kKikdtfhRKzNpQbruF2URmqPtoqAs8g3xS7TJvFF2GcPXjh7DkqMnpVveRFq4PgEQ==} dependencies: - tslib: 2.5.0 + tslib: 2.5.2 /pvutils@1.1.3: resolution: {integrity: sha512-pMpnA0qRdFp32b1sJl1wOJNxZLQ2cbQx+k6tjNtZ8CpvVhNqEPRgivZ2WOUev2YMajecdH7ctUPDvEe87nariQ==} @@ -15786,11 +15833,6 @@ packages: resolution: {integrity: sha512-Uu7ii+FQy4Qf82G4xu7ShHhjhGahEpCWc3x8UavY3CTcWV+ufmmCtwkr7ZKsX42jdL0kr1B5FKUeqJvAn51jzQ==} hasBin: true - /qrcode-terminal@0.12.0: - resolution: {integrity: sha512-EXtzRZmC+YGmGlDFbXKxQiMZNwCLEO6BANKXG4iCtSIM0yqc/pappSx3RIKr4r0uh5JsBckOXeKrB3Iz7mdQpQ==} - hasBin: true - dev: true - /qs@6.11.0: resolution: {integrity: sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==} engines: {node: '>=0.6'} @@ -15872,8 +15914,8 @@ packages: minimist: 1.2.8 strip-json-comments: 2.0.1 - /react-devtools-core@4.27.7: - resolution: {integrity: sha512-12N0HrhCPbD76Z7SkyJdGdXdPGouUsgV6tlEsbSpAnLDO06tjXZP+irht4wPdYwJAJRQ85DxL48eQoz7UmrSuQ==} + /react-devtools-core@4.27.8: + resolution: {integrity: sha512-KwoH8/wN/+m5wTItLnsgVraGNmFrcTWR3k1VimP1HjtMMw4CNF+F5vg4S/0tzTEKIdpCi2R7mPNTC+/dswZMgw==} dependencies: shell-quote: 1.8.1 ws: 7.5.9 @@ -15911,19 +15953,19 @@ packages: - '@babel/preset-env' - supports-color - /react-native-gradle-plugin@0.71.17: - resolution: {integrity: sha512-OXXYgpISEqERwjSlaCiaQY6cTY5CH6j73gdkWpK0hedxtiWMWgH+i5TOi4hIGYitm9kQBeyDu+wim9fA8ROFJA==} + /react-native-gradle-plugin@0.71.18: + resolution: {integrity: sha512-7F6bD7B8Xsn3JllxcwHhFcsl9aHIig47+3eN4IHFNqfLhZr++3ElDrcqfMzugM+niWbaMi7bJ0kAkAL8eCpdWg==} - /react-native-securerandom@1.0.1(react-native@0.71.7): + /react-native-securerandom@1.0.1(react-native@0.71.8): resolution: {integrity: sha512-ibuDnd3xi17HyD5CkilOXGPFpS9Z1oifjyHFwUl8NMzcQcpruM0ZX8ytr3A4rCeAsaBHjz69r78Xgd6vUswv1Q==} peerDependencies: react-native: '*' dependencies: base64-js: 1.5.1 - react-native: 0.71.7(@babel/core@7.21.8)(@babel/preset-env@7.21.5)(react@18.2.0) + react-native: 0.71.8(@babel/core@7.21.8)(@babel/preset-env@7.21.5)(react@18.2.0) - /react-native@0.71.7(@babel/core@7.21.8)(@babel/preset-env@7.21.5)(react@18.2.0): - resolution: {integrity: sha512-Id6iRLS581fJMFGbBl1jP5uSmjExtGOvw5Gvh7694zISXjsRAsFMmU+izs0pyCLqDBoHK7y4BT7WGPGw693nYw==} + /react-native@0.71.8(@babel/core@7.21.8)(@babel/preset-env@7.21.5)(react@18.2.0): + resolution: {integrity: sha512-ftMAuhpgTkbHU9brrqsEyxcNrpYvXKeATY+if22Nfhhg1zW+6wn95w9otwTnA3xHkljPCbng8mUhmmERjGEl7g==} engines: {node: '>=14'} hasBin: true peerDependencies: @@ -15953,9 +15995,9 @@ packages: pretty-format: 26.6.2 promise: 8.3.0 react: 18.2.0 - react-devtools-core: 4.27.7 + react-devtools-core: 4.27.8 react-native-codegen: 0.71.5(@babel/preset-env@7.21.5) - react-native-gradle-plugin: 0.71.17 + react-native-gradle-plugin: 0.71.18 react-refresh: 0.4.3 react-shallow-renderer: 16.15.0(react@18.2.0) regenerator-runtime: 0.13.11 @@ -16045,7 +16087,7 @@ packages: resolution: {integrity: sha512-4QbpReW4kxFgeBQ0vPAqh2y8sXEB3D4t3jsXbJKIhBiF80KT6XRo45reqwtftju5J6ru1ax06A2Gb/wM1qCOEQ==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} dependencies: - glob: 10.2.2 + glob: 10.2.6 json-parse-even-better-errors: 3.0.0 normalize-package-data: 5.0.0 npm-normalize-package-bin: 3.0.1 @@ -16101,7 +16143,6 @@ packages: inherits: 2.0.4 isarray: 0.0.1 string_decoder: 0.10.31 - dev: true /readable-stream@2.3.8: resolution: {integrity: sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==} @@ -16122,8 +16163,8 @@ packages: string_decoder: 1.3.0 util-deprecate: 1.0.2 - /readable-stream@4.3.0: - resolution: {integrity: sha512-MuEnA0lbSi7JS8XM+WNJlWZkHAAdm7gETHdFK//Q/mChGyj2akEFtdLZh32jSdkWGbRwCW9pn6g3LWDdDeZnBQ==} + /readable-stream@4.4.0: + resolution: {integrity: sha512-kDMOq0qLtxV9f/SQv522h8cxZBqNZXuXNyjyezmfAAuribMyVXziljpQ/uQhfE1XLg2/TLTW2DsnoE4VAi/krg==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: abort-controller: 3.0.0 @@ -16142,7 +16183,7 @@ packages: ast-types: 0.14.2 esprima: 4.0.1 source-map: 0.6.1 - tslib: 2.5.0 + tslib: 2.5.2 /redent@2.0.0: resolution: {integrity: sha512-XNwrTx77JQCEMXTeb8movBKuK75MgH0RZkujNuDKCezemx/voapl9i2gCSi8WWm8+ox5ycJi1gxF22fR7c0Ciw==} @@ -16176,7 +16217,6 @@ packages: /reftools@1.1.9: resolution: {integrity: sha512-OVede/NQE13xBQ+ob5CKd5KyeJYU2YInb1bmV4nRoOfquZPkAkxuOXicSe1PvqIuZZ4kD13sPKBbR7UFDmli6w==} - dev: true /regenerate-unicode-properties@10.1.0: resolution: {integrity: sha512-d1VudCLoIGitcU/hEg2QqvyGZQmdC0Lf8BqdOMXGFSvJP4bNV1+XqbPQeHHLD51Jh4QJJ225dlIFvY4Ly6MXmQ==} @@ -16304,18 +16344,24 @@ packages: engines: {node: '>=10'} dev: true + /resolve@1.17.0: + resolution: {integrity: sha512-ic+7JYiV8Vi2yzQGFWOkiZD5Z9z7O2Zhm9XMaTxdJExKasieFCr+yXZ/WmXsckHiKl12ar0y6XiXDx3m4RHn1w==} + dependencies: + path-parse: 1.0.7 + dev: false + /resolve@1.19.0: resolution: {integrity: sha512-rArEXAgsBG4UgRGcynxWIWKFvh/XZCcS8UJdHhwy91zwAvCZIbcs+vAbflgBnNjYMs/i/i+/Ux6IZhML1yPvxg==} dependencies: - is-core-module: 2.12.0 + is-core-module: 2.12.1 path-parse: 1.0.7 - dev: true + dev: false /resolve@1.22.2: resolution: {integrity: sha512-Sb+mjNHOULsBv818T40qSPeRiuWLyaGMa5ewydRLFimneixmVy2zdivRl+AF6jaYPC8ERxGDmFSiqui6SfPd+g==} hasBin: true dependencies: - is-core-module: 2.12.0 + is-core-module: 2.12.1 path-parse: 1.0.7 supports-preserve-symlinks-flag: 1.0.0 @@ -16338,6 +16384,14 @@ packages: onetime: 5.1.2 signal-exit: 3.0.7 + /restore-cursor@4.0.0: + resolution: {integrity: sha512-I9fPXU9geO9bHOt9pHHOhOkYerIMsmVaWB0rA2AI9ERh/+x/i7MV5HKBNrg+ljO5eoPVgCcnFuRjJ9uH6I/3eg==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dependencies: + onetime: 5.1.2 + signal-exit: 3.0.7 + dev: false + /ret@0.1.15: resolution: {integrity: sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==} engines: {node: '>=0.12'} @@ -16428,8 +16482,7 @@ packages: /rxjs@7.8.1: resolution: {integrity: sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==} dependencies: - tslib: 2.5.0 - dev: true + tslib: 2.5.2 /safe-buffer@5.1.2: resolution: {integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==} @@ -16446,7 +16499,7 @@ packages: resolution: {integrity: sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==} dependencies: call-bind: 1.0.2 - get-intrinsic: 1.2.0 + get-intrinsic: 1.2.1 is-regex: 1.1.4 /safe-regex@1.1.0: @@ -16457,7 +16510,7 @@ packages: /safe-stable-stringify@2.4.3: resolution: {integrity: sha512-e2bDA2WJT0wxseVd4lsDP4+3ONX6HpMXQa1ZhFQ7SU+GjvORCmShbCMltrtIDfkYhVHrOcPtj+KhmDBdPdZD1g==} engines: {node: '>=10'} - dev: true + dev: false /safer-buffer@2.1.2: resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} @@ -16538,13 +16591,13 @@ packages: hosted-git-info: 4.1.0 lodash: 4.17.21 marked: 4.3.0 - marked-terminal: 5.1.1(marked@4.3.0) + marked-terminal: 5.2.0(marked@4.3.0) micromatch: 4.0.5 p-each-series: 2.2.0 p-reduce: 2.1.0 read-pkg-up: 7.0.1 resolve-from: 5.0.0 - semver: 7.5.0 + semver: 7.5.1 semver-diff: 3.1.1 signale: 1.4.0 yargs: 16.2.0 @@ -16592,10 +16645,9 @@ packages: hasBin: true dependencies: lru-cache: 6.0.0 - dev: true - /semver@7.5.0: - resolution: {integrity: sha512-+XC0AD/R7Q2mPSRuy2Id0+CGTZ98+8f+KvwirxOKIEyid+XSx6HbC63p+O4IndTHuX5Z+JxQ0TghCkO5Cg/2HA==} + /semver@7.5.1: + resolution: {integrity: sha512-Wvss5ivl8TMRZXXESstBA4uR5iXgEN/VC5/sOcuXdVLzcdkz4HWetIoRfG5gb5X+ij/G9rw9YoGn3QoQ8OCSpw==} engines: {node: '>=10'} hasBin: true dependencies: @@ -16642,7 +16694,6 @@ packages: engines: {node: '>=10'} dependencies: type-fest: 0.13.1 - dev: false /serialize-error@8.1.0: resolution: {integrity: sha512-3NnuWfM6vBYoy5gZFvHiYsVbafvI9vZv/+jlIigFn4oP4zjNPK3LhcY0xSCgeb1a5L8jO71Mit9LlNoi2UfDDQ==} @@ -16733,14 +16784,14 @@ packages: resolution: {integrity: sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==} dependencies: call-bind: 1.0.2 - get-intrinsic: 1.2.0 + get-intrinsic: 1.2.1 object-inspect: 1.12.3 /signal-exit@3.0.7: resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} - /signal-exit@4.0.1: - resolution: {integrity: sha512-uUWsN4aOxJAS8KOuf3QMyFtgm1pkb6I+KRZbRF/ghdf5T7sM+B1lLLzPDxswUjkmHyxQAVzEgG35E3NzDM9GVw==} + /signal-exit@4.0.2: + resolution: {integrity: sha512-MY2/qGx4enyjprQnFaZsHib3Yadh3IXyV2C321GY0pjGfVBu4un0uDJkwgdxqO+Rdx8JMT8IfJIRwbYVz3Ob3Q==} engines: {node: '>=14'} dev: true @@ -16753,14 +16804,14 @@ packages: pkg-conf: 2.1.0 dev: true - /sigstore@1.4.0: - resolution: {integrity: sha512-N7TRpSbFjY/TrFDg6yGAQSYBrQ5s6qmPiq4pD6fkv1LoyfMsLG0NwZWG2s5q+uttLHgyVyTa0Rogx2P78rN8kQ==} + /sigstore@1.5.2: + resolution: {integrity: sha512-X95v6xAAooVpn7PaB94TDmFeSO5SBfCtB1R23fvzr36WTfjtkiiyOeei979nbTjc8nzh6FSLeltQZuODsm1EjQ==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} hasBin: true dependencies: '@sigstore/protobuf-specs': 0.1.0 make-fetch-happen: 11.1.1 - tuf-js: 1.1.5 + tuf-js: 1.1.6 transitivePeerDependencies: - supports-color dev: true @@ -16772,10 +16823,6 @@ packages: bplist-parser: 0.3.1 plist: 3.0.6 - /simple-wcswidth@1.0.1: - resolution: {integrity: sha512-xMO/8eNREtaROt7tJvWJqHBDTMFN4eiQ5I4JRMuilwfnFcV5W9u7RUkueNkdw0jPqGMX36iCywelS5yilTuOxg==} - dev: true - /sisteransi@1.0.5: resolution: {integrity: sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==} @@ -16956,10 +17003,6 @@ packages: readable-stream: 3.6.2 dev: true - /split2@4.2.0: - resolution: {integrity: sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg==} - engines: {node: '>= 10.x'} - /split@1.0.1: resolution: {integrity: sha512-mTyOoPbrivtXnwnIxZRFYRrPNtEFKlpB2fvjSnCQUiAA6qAZzqwna5envK4uk6OIeP17CsdF3rSBGYVBsU0Tkg==} dependencies: @@ -16977,7 +17020,7 @@ packages: dependencies: '@mapbox/node-pre-gyp': 1.0.10 node-addon-api: 4.3.0 - tar: 6.1.14 + tar: 6.1.15 optionalDependencies: node-gyp: 8.4.1 transitivePeerDependencies: @@ -17040,6 +17083,13 @@ packages: resolution: {integrity: sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==} engines: {node: '>= 0.8'} + /stdin-discarder@0.1.0: + resolution: {integrity: sha512-xhV7w8S+bUwlPTb4bAOUQhv8/cSS5offJuX8GQGq32ONF0ZtDWKfkdomM3HMRA+LhX6um/FZ0COqlwsjD53LeQ==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dependencies: + bl: 5.1.0 + dev: false + /stop-iteration-iterator@1.0.0: resolution: {integrity: sha512-iCGQj+0l0HOdZ2AEeBADlsRC+vsnDsZsbdSiH1yNSjcfKM7fdpCMfqAL/dwF5BLiw/XhRft/Wax6zQbhq2BcjQ==} engines: {node: '>= 0.4'} @@ -17070,7 +17120,7 @@ packages: /string-argv@0.3.2: resolution: {integrity: sha512-aqD2Q0144Z+/RqG52NeHEkZauTAUWJO8c6yTftGJKO3Tja5tUgIfmIl6kExvhtxSDP7fXB6DvzkfMpCd/F3G+Q==} engines: {node: '>=0.6.19'} - dev: true + dev: false /string-length@4.0.2: resolution: {integrity: sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==} @@ -17104,7 +17154,6 @@ packages: eastasianwidth: 0.2.0 emoji-regex: 9.2.2 strip-ansi: 7.0.1 - dev: true /string.prototype.matchall@4.0.8: resolution: {integrity: sha512-6zOCOcJ+RJAQshcTvXPHoxoQGONa3e/Lqx90wUA+wEzX78sg5Bo+1tQo4N0pohS0erG9qtCqJDjNCQBjeWVxyg==} @@ -17112,7 +17161,7 @@ packages: call-bind: 1.0.2 define-properties: 1.2.0 es-abstract: 1.21.2 - get-intrinsic: 1.2.0 + get-intrinsic: 1.2.1 has-symbols: 1.0.3 internal-slot: 1.0.5 regexp.prototype.flags: 1.5.0 @@ -17142,7 +17191,6 @@ packages: /string_decoder@0.10.31: resolution: {integrity: sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ==} - dev: true /string_decoder@1.1.1: resolution: {integrity: sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==} @@ -17178,7 +17226,6 @@ packages: engines: {node: '>=12'} dependencies: ansi-regex: 6.0.1 - dev: true /strip-bom@3.0.0: resolution: {integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==} @@ -17199,13 +17246,6 @@ packages: engines: {node: '>=6'} dev: true - /strip-hex-prefix@1.0.0: - resolution: {integrity: sha512-q8d4ue7JGEiVcypji1bALTos+0pWtyGlivAWyPuTkHzuTCJqrK9sWxYQZUq6Nq3cuyv3bm734IhHvHtGGURU6A==} - engines: {node: '>=6.5.0', npm: '>=3'} - dependencies: - is-hex-prefixed: 1.0.0 - dev: true - /strip-indent@2.0.0: resolution: {integrity: sha512-RsSNPLpq6YUL7QYy44RnPVTn/lcVZtb48Uof3X5JLbF4zD/Gs7ZFDv2HWol+leoQN2mT86LAzSshGfkTlSOpsA==} engines: {node: '>=4'} @@ -17225,7 +17265,6 @@ packages: /strip-json-comments@3.1.1: resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} engines: {node: '>=8'} - dev: true /strnum@1.0.5: resolution: {integrity: sha512-J8bbNyKKXl5qYcR36TIO8W3mVGVHrmmxsd5PAItGkmyzwJvybiw2IVq5nqd0i4LSNSkB/sx9VHllbfFdr9k1JA==} @@ -17298,20 +17337,6 @@ packages: resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} engines: {node: '>= 0.4'} - /swagger-ui-dist@4.18.3: - resolution: {integrity: sha512-QW280Uvt234+TLo9NMPRa2Sj17RoorbQlR2eEY4R6Cs0LbdXhiO14YWX9OPBkBdiN64GQYz4zU8wlHLVi81lBg==} - dev: true - - /swagger-ui-express@4.6.3(express@4.18.2): - resolution: {integrity: sha512-CDje4PndhTD2HkgyKH3pab+LKspDeB/NhPN2OF1j+piYIamQqBYwAXWESOT1Yju2xFg51bRW9sUng2WxDjzArw==} - engines: {node: '>= v0.10.32'} - peerDependencies: - express: '>=4.0.0 || >=5.0.0-beta' - dependencies: - express: 4.18.2 - swagger-ui-dist: 4.18.3 - dev: true - /symbol-tree@3.2.4: resolution: {integrity: sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==} dev: true @@ -17378,8 +17403,8 @@ packages: yallist: 4.0.0 dev: true - /tar@6.1.14: - resolution: {integrity: sha512-piERznXu0U7/pW7cdSn7hjqySIVTYT6F76icmFk7ptU7dDYlXTm5r9A6K04R2vU3olYgoKeo1Cg3eeu5nhftAw==} + /tar@6.1.15: + resolution: {integrity: sha512-/zKt9UyngnxIT/EAGYuxaMYgOIJiP81ab9ZfkILq4oNLPFX50qyYmu7jRj9qeXoxmJHjGlbH0+cm2uy1WCs10A==} engines: {node: '>=10'} dependencies: chownr: 2.0.0 @@ -17395,7 +17420,7 @@ packages: dependencies: http-proxy-agent: 4.0.1 https-proxy-agent: 5.0.1 - node-fetch: 2.6.9 + node-fetch: 2.6.11 stream-events: 1.0.5 uuid: 8.3.2 transitivePeerDependencies: @@ -17471,8 +17496,8 @@ packages: ansi-escapes: 4.3.2 supports-hyperlinks: 2.3.0 - /terser@5.17.1: - resolution: {integrity: sha512-hVl35zClmpisy6oaoKALOpS0rDYLxRFLHhRuDlEGTKey9qHjS1w9GMORjuwIMt70Wan4lwsLYyWDVnWgF+KUEw==} + /terser@5.17.4: + resolution: {integrity: sha512-jcEKZw6UPrgugz/0Tuk/PVyLAPfMBJf5clnGueo45wTweoV8yh7Q7PEkhkJ5uuUbC7zAxEcG3tqNr1bstkQ8nw==} engines: {node: '>=10'} hasBin: true dependencies: @@ -17680,7 +17705,7 @@ packages: json5: 2.2.3 lodash.memoize: 4.1.2 make-error: 1.3.6 - semver: 7.5.0 + semver: 7.5.1 typescript: 4.9.5 yargs-parser: 20.2.9 dev: true @@ -17697,7 +17722,7 @@ packages: normalize-path: 3.0.0 safe-stable-stringify: 2.4.3 typescript: 4.9.5 - dev: true + dev: false /ts-node@10.9.1(@types/node@18.15.3)(typescript@4.9.5): resolution: {integrity: sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==} @@ -17717,7 +17742,7 @@ packages: '@tsconfig/node10': 1.0.9 '@tsconfig/node12': 1.0.11 '@tsconfig/node14': 1.0.3 - '@tsconfig/node16': 1.0.3 + '@tsconfig/node16': 1.0.4 '@types/node': 18.15.3 acorn: 8.8.2 acorn-walk: 8.2.0 @@ -17748,7 +17773,7 @@ packages: '@tsconfig/node10': 1.0.9 '@tsconfig/node12': 1.0.11 '@tsconfig/node14': 1.0.3 - '@tsconfig/node16': 1.0.3 + '@tsconfig/node16': 1.0.4 '@types/node': 18.16.3 acorn: 8.8.2 acorn-walk: 8.2.0 @@ -17789,8 +17814,8 @@ packages: /tslib@1.14.1: resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==} - /tslib@2.5.0: - resolution: {integrity: sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg==} + /tslib@2.5.2: + resolution: {integrity: sha512-5svOrSA2w3iGFDs1HibEVBGbDrAY82bFQ3HZ3ixB+88nsbsWQoKqDRb5UBYAUPEzbBn6dAp5gRNXglySbx1MlA==} /tsutils@3.21.0(typescript@4.9.5): resolution: {integrity: sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==} @@ -17802,20 +17827,17 @@ packages: typescript: 4.9.5 dev: true - /tuf-js@1.1.5: - resolution: {integrity: sha512-inqodgxdsmuxrtQVbu6tPNgRKWD1Boy3VB6GO7KczJZpAHiTukwhSzXUSzvDcw5pE2Jo8ua+e1ykpHv7VdPVlQ==} + /tuf-js@1.1.6: + resolution: {integrity: sha512-CXwFVIsXGbVY4vFiWF7TJKWmlKJAT8TWkH4RmiohJRcDJInix++F0dznDmoVbtJNzZ8yLprKUG4YrDIhv3nBMg==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} dependencies: '@tufjs/models': 1.0.4 + debug: 4.3.4 make-fetch-happen: 11.1.1 transitivePeerDependencies: - supports-color dev: true - /tweetnacl-util@0.15.1: - resolution: {integrity: sha512-RKJBIj8lySrShN4w6i/BonWp2Z/uxwC3h4y7xsRrpP59ZboCd0GpEVsOnMDYLMmKBpYhb5TgHzZXy7wTfYFBRw==} - dev: true - /tweetnacl@1.0.3: resolution: {integrity: sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw==} dev: true @@ -17844,7 +17866,6 @@ packages: /type-fest@0.13.1: resolution: {integrity: sha512-34R7HTnG0XIJcBSn5XhDd7nNFPRcXYRZrBB2O2jdKqYODldSzBAqzsWoZYYvduky73toYS/ESqxPvkDf/F0XMg==} engines: {node: '>=10'} - dev: false /type-fest@0.16.0: resolution: {integrity: sha512-eaBzG6MxNzEn9kiwvtre90cXaNLkmadMWa1zQMs3XORCXNbsH/OewwbxC5ia9dCxIxnTAsSxXJaa/p5y8DlvJg==} @@ -17885,10 +17906,9 @@ packages: resolution: {integrity: sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==} engines: {node: '>=8'} - /type-fest@1.4.0: - resolution: {integrity: sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==} - engines: {node: '>=10'} - dev: true + /type-fest@3.11.0: + resolution: {integrity: sha512-JaPw5U9ixP0XcpUbQoVSbxSDcK/K4nww20C3kjm9yE6cDRRhptU28AH60VWf9ltXmCrIfIbtt9J+2OUk2Uqiaw==} + engines: {node: '>=14.16'} /type-is@1.6.18: resolution: {integrity: sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==} @@ -17914,7 +17934,7 @@ packages: resolution: {integrity: sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==} dev: true - /typeorm@0.3.12(pg@8.11.0)(sqlite3@5.1.6)(ts-node@10.9.1): + /typeorm@0.3.12(sqlite3@5.1.6)(ts-node@10.9.1): resolution: {integrity: sha512-sYSxBmCf1nJLLTcYtwqZ+lQIRtLPyUoO93rHTOKk9vJCyT4UfRtU7oRsJvfvKP3nnZTD1hzz2SEy2zwPEN6OyA==} engines: {node: '>= 12.9.0'} hasBin: true @@ -17983,12 +18003,11 @@ packages: glob: 8.1.0 js-yaml: 4.1.0 mkdirp: 2.1.6 - pg: 8.11.0 reflect-metadata: 0.1.13 sha.js: 2.4.11 sqlite3: 5.1.6 ts-node: 10.9.1(@types/node@18.16.3)(typescript@4.9.5) - tslib: 2.5.0 + tslib: 2.5.2 uuid: 9.0.0 xml2js: 0.4.23 yargs: 17.7.2 @@ -17999,7 +18018,7 @@ packages: resolution: {integrity: sha512-QCh+85mCy+h0IGff8r5XWzOVSbBO+KfeYrMQh7NJ58QujwcE22u+NUSmUxqF+un70P9GXKxa2HCNiTTMJknyjQ==} engines: {node: '>=4.2.0'} hasBin: true - dev: true + dev: false /typescript@4.9.5: resolution: {integrity: sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==} @@ -18177,7 +18196,6 @@ packages: /untildify@4.0.0: resolution: {integrity: sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw==} engines: {node: '>=8'} - dev: true /upath@2.0.1: resolution: {integrity: sha512-1uEe95xksV1O0CYKXo8vQvN1JEbtJp7lb7C5U9HMsIp6IVwntkH/oNUzyVNQSd4S1sYk2FpSSW44FqMc8qee5w==} @@ -18378,6 +18396,15 @@ packages: - encoding dev: true + /web-did-resolver@2.0.24: + resolution: {integrity: sha512-tJfOfMeXyucV42D3tU7wcPcsvY92CiuaqeF5JRIE6GP7G9z07X6LhNQMFMHUL5D9Jqb7Twk19oKZGE2ivKeC1w==} + dependencies: + cross-fetch: 3.1.5 + did-resolver: 4.1.0 + transitivePeerDependencies: + - encoding + dev: true + /web-encoding@1.1.5: resolution: {integrity: sha512-HYLeVCdJ0+lBYV2FvNZmv3HJ2Nt0QYXqZojk3d9FJOLkwnuhzM9tmamh8d7HPM8QqjKH8DeHkFTx+CFlWpZZDA==} dependencies: @@ -18396,7 +18423,7 @@ packages: '@peculiar/json-schema': 1.1.12 asn1js: 3.0.5 pvtsutils: 1.3.2 - tslib: 2.5.0 + tslib: 2.5.2 /webcrypto-shim@0.1.7: resolution: {integrity: sha512-JAvAQR5mRNRxZW2jKigWMjCMkjSdmP5cColRP1U/pTg69VgHXEi1orv5vVpJ55Zc5MIaPc1aaurzd9pjv2bveg==} @@ -18566,7 +18593,6 @@ packages: ansi-styles: 6.2.1 string-width: 5.1.2 strip-ansi: 7.0.1 - dev: true /wrappy@1.0.2: resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} @@ -18600,7 +18626,7 @@ packages: engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} dependencies: imurmurhash: 0.1.4 - signal-exit: 4.0.1 + signal-exit: 4.0.2 dev: true /write-json-file@3.2.0: @@ -18733,11 +18759,11 @@ packages: /yaml@1.10.2: resolution: {integrity: sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==} engines: {node: '>= 6'} - dev: true /yaml@2.2.2: resolution: {integrity: sha512-CBKFWExMn46Foo4cldiChEzn7S7SRV+wqiluAb6xmueD/fGyRHIhX8m14vVGgeFWjN540nKCNVj6P21eQjgTuA==} engines: {node: '>= 14'} + dev: false /yargs-parser@10.1.0: resolution: {integrity: sha512-VCIyR1wJoEBZUqk5PA+oOBF6ypbwh5aNB3I50guxAL/quggdfs4TtNHQrSazFA3fYZ+tEqfs0zIGlv0c/rgjbQ==}