From e4d178d04ede4d61a060d0a6ac64b7b9575cbc0a Mon Sep 17 00:00:00 2001 From: apporc Date: Thu, 31 Aug 2023 16:27:38 +0800 Subject: [PATCH] Support scatter desktop --- README.md | 20 +- package.json | 39 +-- rollup.config.js | 41 ++- src/index.ts | 183 +++++++++++--- src/types.ts | 18 ++ test/tests/common.ts | 99 ++++---- yarn.lock | 589 +++++++++++++++++++++++++++++-------------- 7 files changed, 698 insertions(+), 291 deletions(-) create mode 100644 src/types.ts diff --git a/README.md b/README.md index cd6d673..46a9d54 100644 --- a/README.md +++ b/README.md @@ -1,13 +1,21 @@ -# @wharfkit/wallet-plugin-template +# @wharfkit/wallet-plugin-scatter -A template to create a `WalletPlugin` for use within the `@wharfkit/session` library. +A Session Kit wallet plugin for the [Scatter](https://github.com/GetScatter/ScatterDesktop) wallet. ## Usage -- [Use this as a template.](https://docs.github.com/en/repositories/creating-and-managing-repositories/creating-a-repository-from-a-template) -- Write your wallet plugin's logic. -- Publish it on Github or npmjs.com -- Include it in your project and use it. +Include this wallet plugin while initializing the SessionKit. + +**NOTE**: This wallet plugin will only work with the SessionKit and requires a browser-based environment. + +```ts +import {WalletPluginScatter} from '@wharfkit/wallet-plugin-scatter' + +const kit = new SessionKit({ + // ... your other options + walletPlugins: [new WalletPluginScatter()], +}) +``` ## Developing diff --git a/package.json b/package.json index 60480fb..674e23a 100644 --- a/package.json +++ b/package.json @@ -1,12 +1,13 @@ { - "name": "@wharfkit/wallet-plugin-template", - "description": "A template to create wallet plugins for use with @wharfkit/session.", - "version": "1.0.0", - "homepage": "https://github.com/wharfkit/wallet-plugin-template", + "name": "@wharfkit/wallet-plugin-scatter", + "description": "A WalletPlugin for the Scatter wallet for use within the @wharfkit/session.", + "version": "1.0.1", + "homepage": "https://github.com/wharfkit/wallet-plugin-scatter", "license": "BSD-3-Clause", - "main": "lib/wallet-plugin-template.js", - "module": "lib/wallet-plugin-template.m.js", - "types": "lib/wallet-plugin-template.d.ts", + "type": "module", + "main": "lib/wallet-plugin-scatter.js", + "module": "lib/wallet-plugin-scatter.m.js", + "types": "lib/wallet-plugin-scatter.d.ts", "sideEffects": false, "files": [ "lib/*", @@ -16,27 +17,31 @@ "prepare": "make" }, "dependencies": { + "@scatterjs/core": "^2.7.48", + "@scatterjs/eosjs2": "^1.5.30", + "eosjs": "20.0.0", "tslib": "^2.1.0" }, "peerDependencies": { "@wharfkit/session": "^1.0.0" }, "devDependencies": { - "@rollup/plugin-alias": "^3.1.4", - "@rollup/plugin-commonjs": "^22.0.0", - "@rollup/plugin-json": "^4.1.0", - "@rollup/plugin-node-resolve": "^14.1.0", + "@babel/runtime": "^7.22.6", + "@rollup/plugin-commonjs": "^25.0.4", + "@rollup/plugin-json": "^6.0.0", + "@rollup/plugin-node-resolve": "^15.2.1", "@rollup/plugin-replace": "^5.0.1", - "@rollup/plugin-typescript": "^10.0.1", - "@rollup/plugin-virtual": "^2.0.3", + "@rollup/plugin-typescript": "^11.1.3", + "@scatterjs/core": "^2.7.48", + "@scatterjs/eosjs2": "^1.5.30", "@types/chai": "^4.3.1", "@types/mocha": "^9.0.0", "@types/node": "^18.7.18", "@typescript-eslint/eslint-plugin": "^5.20.0", "@typescript-eslint/parser": "^5.20.0", - "@wharfkit/mock-data": "^1.0.2", "@wharfkit/session": "^1.0.0", "chai": "^4.3.4", + "crypto-js": "^4.1.1", "eslint": "^8.13.0", "eslint-config-prettier": "^8.1.0", "eslint-plugin-prettier": "^4.0.0", @@ -45,9 +50,9 @@ "node-fetch": "^2.6.1", "nyc": "^15.1.0", "prettier": "^2.2.1", - "rollup": "^2.70.2", - "rollup-plugin-dts": "^4.2.1", - "rollup-plugin-terser": "^7.0.2", + "rollup": "^3.28.1", + "rollup-plugin-dts": "^6.0.0", + "rollup-plugin-polyfill-node": "^0.12.0", "ts-node": "^10.9.1", "tsconfig-paths": "^4.1.1", "typedoc": "^0.23.14", diff --git a/rollup.config.js b/rollup.config.js index a673002..1683a3d 100644 --- a/rollup.config.js +++ b/rollup.config.js @@ -1,8 +1,15 @@ import fs from 'fs' import dts from 'rollup-plugin-dts' import typescript from '@rollup/plugin-typescript' +import commonjs from '@rollup/plugin-commonjs' +import nodePolyfills from 'rollup-plugin-polyfill-node' +import replace from '@rollup/plugin-replace' +import resolve from '@rollup/plugin-node-resolve' +import json from '@rollup/plugin-json' -import pkg from './package.json' +import {createRequire} from 'module' +const require = createRequire(import.meta.url) +const pkg = require('./package.json') const name = pkg.name const license = fs.readFileSync('LICENSE').toString('utf-8').trim() @@ -16,7 +23,7 @@ const banner = ` */ `.trim() -const external = Object.keys(pkg.peerDependencies) +const external = [...Object.keys(pkg.peerDependencies)] /** @type {import('rollup').RollupOptions} */ export default [ @@ -29,7 +36,20 @@ export default [ sourcemap: true, exports: 'named', }, - plugins: [typescript({target: 'es6'})], + plugins: [ + typescript({target: 'es6'}), + commonjs({ + defaultIsModuleExports: false, + }), + nodePolyfills(), + replace({ + preventAssignment: true, + '})(commonjsGlobal);': '})(deviceUuid$1);', + delimiters: ['', ''], + }), + resolve({browser: true}), + json(), + ], external, }, { @@ -40,7 +60,20 @@ export default [ format: 'esm', sourcemap: true, }, - plugins: [typescript({target: 'es2020'})], + plugins: [ + typescript({target: 'es2020'}), + commonjs({ + defaultIsModuleExports: false, + }), + nodePolyfills(), + replace({ + preventAssignment: true, + '})(commonjsGlobal)': '})(deviceUuid$1)', + delimiters: ['', ''], + }), + resolve({browser: true}), + json(), + ], external, }, { diff --git a/src/index.ts b/src/index.ts index fbe961e..654aa27 100644 --- a/src/index.ts +++ b/src/index.ts @@ -1,11 +1,15 @@ import { AbstractWalletPlugin, + Canceled, + Chains, Checksum256, LoginContext, PermissionLevel, ResolvedSigningRequest, - Signature, + Serializer, + SigningRequest, TransactContext, + Transaction, WalletPlugin, WalletPluginConfig, WalletPluginLoginResponse, @@ -13,7 +17,17 @@ import { WalletPluginSignResponse, } from '@wharfkit/session' -export class WalletPluginTEMPLATE extends AbstractWalletPlugin implements WalletPlugin { +import {Api, JsonRpc} from 'eosjs' +import ScatterJS from '@scatterjs/core' +import ScatterEOS from '@scatterjs/eosjs2' + +import {ScatterAccount} from './types' + +export class WalletPluginScatter extends AbstractWalletPlugin implements WalletPlugin { + id = 'scatter' + + translations = {} + /** * The logic configuration for the wallet plugin. */ @@ -23,45 +37,103 @@ export class WalletPluginTEMPLATE extends AbstractWalletPlugin implements Wallet // Should the user interface display a permission selector? requiresPermissionSelect: false, + } - // Optionally specify if this plugin only works with specific blockchains. - // supportedChains: ['73e4385a2708e6d7048834fbc1079f2fabb17b3c125b146af438971e90716c4d'] + constructor() { + super() + ScatterJS.plugins(new ScatterEOS()) } + /** * The metadata for the wallet plugin to be displayed in the user interface. */ readonly metadata: WalletPluginMetadata = WalletPluginMetadata.from({ - name: 'Wallet Plugin Template', - description: 'A template that can be used to build wallet plugins!', - logo: 'base_64_encoded_image', - homepage: 'https://someplace.com', - download: 'https://someplace.com/download', + name: 'Scatter', + description: '', + logo: 'data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB3aWR0aD0iMjAwIiBoZWlnaHQ9IjIwMCIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSIgdmVyc2lvbj0iMS4xIiB2aWV3Qm94PSIwIDAgMjAwIDIwMCI+CiAgICA8aW1hZ2Ugd2lkdGg9IjIwMCIgaGVpZ2h0PSIyMDAiIHhsaW5rOmhyZWY9ImRhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBSUFBQUFDQUNBWUFBQUREUG1ITEFBQUFBWE5TUjBJQXJzNGM2UUFBSUFCSlJFRlVlRjd0bldtMFhlVjUzMzk3UE1PZEpDRUpOSUFBZ1pBUU04SU1BcHNBRHNaTzNEUjIwamp4V2xsWlhlMjNmbXEvdEIrYWoxMzkwSDdveDZacGt0VW1jUWE3ZG16SHNZM0JHR016VDBLTU1vTUVRdU85dXVNNWUzcDMxLzk1OTVFdWpsZTRBaXU2VnpvYmp1NjB6ejduN09mL1B1OHovcC9nWDMvdHFacmhjZDdlZ1dBSWdQTlc5dmJCaHdBNHYrVS9CTUI1THY4aEFJWUFHQnFCNXpVR2hqYkFlUzMrb1JGNG5vdC9DSUFoQUlaeGdQTWJBK2VVRFJBc1ZaWTFETTZ0bTI5K1lUZzBjTlE0aFV1YUsrdXJIaUVNbnRqOExhQmE2cXN2cS9QT1N3QUU5U2x4ZXpsNkFmdmZub0pSSFRnSUpOZ0JTaFlCUUw4N0NRS2RNUVRBV1VmMmtqV0FyV3FKKzRNcnU3YWZGMStseGtEd2dXUHhjMDc5WVRHb3p2cU5PSTAzY0Y1cUFMUmFKZGdQcVBFSTZ2RG5RS0ZURmdOQW9HbTB4ODhEdzU2NzhvN3pGZ0NuQk90WGZWQ2ZBa0N3U0pndWtNRXcyRElhQU5pMnNQaDMrakZlZWRJLzE1SkJTOTBDSkh3RGdNa3dJQ0FrcUFXQ0FSZ0dxem5BMlVVZE1oc0MrN00wUWdPQVJjQ282MlFJZ0xOOUI1WUtBSzNxZWlBOENWNTJ2UUhBdzBGYmc3K1dBS0NmYS9TZnZnMzAzRnJHNFFkdEEwZDB0ai8rUjNyOTgzSUwwS28yd1VyRWRXMkN0OTFmMzl2WGdTbllBT0RrclYzc0xDN3lKS1FqbXV0OUpDbWN4U2VkbHdDb2dnaG5JcmMxVGxqWGhMam1lMzJ0YlhzUUhGd1FFZ1NCUFdwWDQxeE5HQzQyRnYxT1lyYkNDanpPVHdDUVVBV3hDZHdEUUhDb3pKZlg5NFBmQ3dCVkhSSkdPamN3NFhzQXhJM0g0Q1Z1QUFpSGNZQXpnLytncGdva2xJRFFESEwvVld2WEsyeHQyZjc3cUM1TkhGTEhXcm4yOTBDcnRhYXVHdUhXTlhHcy9ib21jQ1dKUUZEbHhIWEZxdEV1YXliR0dSc2RvZE51MHc1ajRrb21RTTE4bGpFNU04UDBRbytqSjJiSmRkMGtwYWhCR3FWd0FWRVVReFNTRndWUnJOZlg5cUozVVp1VzBWZXZlWlpxclp5Wlc3cjRxc3RlQThoWUs2UFNqTFJRTjFrUFdldDFhRzY4aEcwS1BBaUk2OHdFV3dXaENVVWdxQ3BISzQ1SWdwcHNmb1pXR05LaUlLWGdnckZSdGx5MG5tMWJOck5tcEUwcmhOSEUyd002QkpPa2dEQ0NNb0M1QXVaS09KRVZ2SG5vQ0srKzh5NEhKMDhRZDhiSWdpNzlvcUtVMEJNQm9qU2dCYlVqYWg0Q2dUVFBBTGhuWHJ3Zi9nb3JBZ0JWMk96VEJvTFF3S0REQzk4YmFqTHN0STk3bGV4L3I3UHM1bGNGN2JER1pmTk1kRHRzMzNBUjJ6ZHU0dUlOYlViay9wZllTazkxRFVtL0NSUXFOSkRyNzZkK1phOVRBTkkxZmVEbDE0L3prMmVlNTdCTFNicGRxakFrY3hWMUZIclhzZGxpOUQ2R0FQaHdRUDZqTTZRQm5HMEJBL1h2L1hWVEFvdUVQekRZZEFIZDZOalZ4SFZCeXhXa1ZjNUVLMlRENmpHdTJYRWwyOWFQMFJGUUpNVVMybUVqK01HR1ByRG5RcGdQU3pQNklnT1V2YWdKTmk4Z2FrR3ZENi90UDhiMzN0alA0YWtwNHU0b2MwVkprTFlNbUY0L2FRdnd0b1ZqcUFGT0d3WSthdGY0NW9QOTM4dGkwVFlRVUFXSnVYQ3hxMHp3N1NwamxJTHJyOWpDZFZkY3d2cXhtUGFpTEVDVDF5UHhtOGdwaTY3UklQNzZwL1p3blBjT2JBOFBZNHJjRVdqUEQrQzFISDcweEI3ZVBueVVvRFBHWEZXYk52QVpCMjhENkRVVUx4aHVBYWNOZ1ZOUDhDdmZHMmFuRW5LNnhUS3dCSURhaEo5a0Myd2FhL1BKRzY5aHg2WlJScVFaWEVrYVF0ODVYQmpicXZiV3YzZjlmS0RYbExaQlFuOVB5OEVHb09EUDRIM29kMDFLT0l4WUtCenpyWWdEVXhWLys1M3YwNC9iekJQakVxOEZEREptQjBpYk5jYnB4N2dIdjh5bkxuc2J3SC9ZeHBKdmZHMWJWYUhjTWtmdEhPRkExY3BuTHdzdTZLUmNjOGttcnQ2OG5rdFdSeWI4MUZ3OTZmeUtta2dPMzhsMUhnWTFSVkVpV1VkUzNhYW1RY0hkV0J0K0wvYy82RzJVR2JSVGl3dnJIQm1IRlJHbHJobkFveS92NTVsOSt6bVd5WDVJelJqMVdzRGJBQU9QNVpjcHhJOXpyUlVCQUNWcXBJcTk5dlhyTklvaVhDbnZZS0Jlb1JNV3hHV2Z6OTM5U2E1WWw5SjJNQ1p2emJSNzBUelhRUlZESlJ1L1VmdGFwTTIrWDRmeUhyeVJKM2N6R1dTTmRZNmVXdldKV2hLMlZyTis1WUdRVmpVekJmVGJLWC8xM1NkNGV6cWpGN2NvRFFBV1JXaTB6TStubkQrTytENytjMWNFQUpBNWJxcC9rSm1yMFg2Y0VwQUVrQy8wVEYxdnV6RGxubHR2Wk4xb3dsZ0E3UW9pVjNsSmVzL1JGSDdzb3BQNW5KTzNVQm85Z3FJUnZvOG9lSU5QcjZITHBCRW81MmVwZ0FFZ0IrcTk2a0hTWVpxSXA5K1o1S0huWG1XcUNpbkNVMGFmQWszL3VPYmc0d3Z4NDF4aGhRQWdibEwzRXFUUDRvV3VNZ0RJMnFjb3VmemlpL20xMnk1bVRRTHRHdEt5TkJmUVozQzBuQ1VNcVdxdnljM2I4emp5RzRNcy9nS096aXh3WkhxVzk0NGN3N21BbUpqUlZzSzFWMTNHMmxFZ2c1RUU0a0grd0R3SHZZZEphSTB5SDdRNEN2enhOeDVqc293TUFOcjNCOWJGY2pJQVRhRXU5NkpRS2MvSXhSU0JRd3RYVlhxUmM3U3JrblpWMGFvZG05YXY1ZmJiZG5CcEI4YWxtcXVDVmlBSFhoSWVXTzBoVlJTUU56NjhWcmUyOS9rU1pnczRkR0thNTE5OW5YZVBIbWUrS0lsYWJib2pveFM5UHQwNEpzeHlycnQwQzUrNmNTc1RFYlNrWFJwYjBGUkMzVGN3RldtWE9lQXZ2dnMwcjh6MnlPTTJkUjNadVhKbmw5dXg3QUVnN2QzT1Ezb3hsSjJFckM1SXlwSjF6dEdhbWVMYVN6ZXkrL2JyYWJkZ25NTE10MG9XdUJsNUVCVit0ZXB3ZFlsTEE5dVg1M0o0NmMxRHZIemdJTy9OOVptcFErYURrREwwUnB2WkhLRWllejJpdWtXM2lobk5TcTY5Y0MzLzhzNHJXU1V3bGhtQjBnSkJTRndrWkRJVVMwY2FoankyZHo5Lzl2SmV5dEcxa0lXMFhVQS9rU0c0cUw1a0dhQmgyUU5BR2lBcElsdzdZcTdPY1ZSMHFvcTFWY1dWYThiNXpPN3JHRy83TFgyOGxpM3VmQmpZWEx6UWxubWtmVjBHWEFyVEpieHg2Qml2dm51SWZmc1BNRk9DU3p2a1lZSUxGUkZRK05iNzdnYUFNQWVYMEFsYXRMS2MwV3llTDl4MU05ZHVtYkQ4Z1ZrVlFVUlk2djJWdEtMWVZ2ditHY2QvK2NIM3lkcXJDWXFZZGlVQUtCOHhCTUJwNGo0Z3FDSmNvcFZia1VZMXJielBXbGZ5NVFjK3hmcXU5OUMwMnR0bDZiK0p2R1Z1aFIxMVNHWkNodjNUOE1qekw3SnY4aGh6WVUyaG9JSXM5VHFrckFLaUlEWUJ4YzZyZDRITnhRNFh0SlR1b3hOQXVuQ0NHemF2NXJPN3J6Y1BRd2tvYWZhb2pwbDFCZDAwb2NwZ0xvYi8vTTJIbUFtN3hLNUZxMlFJZ05PVWZITzY0dnl4TFpzb3FDam1wMWdUd1JjK3VadnRGM2JNMnJkaUxGYzFGZHlCbDU1VjdnUVVWVVFad1R0VDhNMmZQc3ViVXllb0owYm9oeklRUXpQMHRIZExXOFMxakVvUEFETXVaWEdFbUhib1Z6VlJYVEZLeG9WeHhyLzlqWHN0dnRBVitDcmI0SmtQS3RweFpBQllTT0VQdi9VSWt5NGxwVTBxRjNHb0FVNGZBcllmeHlsMTBhY2JPa2JxblB0dnU1a2JOb3pZelZkb04xQmdYbnJiS1pXblZhMnNtMCs5eXNKLzdiMVp2dmZrU3h3b1lEN3BVT2d2eXZBcGpoQkZGdXRYQkZHNFViUXVzaFd0bjJ1cXNpVFQ2N2M3bEdXZkxobnAzR0grMDVkL2c2Q2ZjVUdyaGJBa1kxTUFTTVBJZnA2UDRRKy8vU2hIaTRoMjBDVXA2aUVBVGwvOFB0WXY2NzJlbjdXVmY4M21DL24xMjNmWUt1M2c2RWpaTytmOXVUeUVUa3l2cktoYUVRc1ZQUEw0czd6eTltRk9CQjFtV3hQTVJpMjZCTFNLc3NralNNVVBhdncrV0JJV0thRlVWU3dFTVdXcTZGOUZYTXl5SnBqbjMzL2hBY1lFd0VwQll3c0hzaEE1V3NvQ0Z0Qkw0RC84elhmcHRTYUlxNVMwaEV3YXdDcVFQOHFkT0RQUFdmWkdvS2x5Q2tiS25JdlNpTis2OXk0MmpHQXAzaml3NlA4Z3drTmRSdFNkZ0JNVnpJYnd6TjQzZWY3Vm4zR2k1M0R0Y1JiU05uT0VqTHVFa2R4bkdWWEo0NElLRjZwUzJEZUNhV3VRak9MYWtWU09YaERqb3BnNGhMWmJZTnNGYmI1MDEwMG9MSkNxME1TZUZKa1hZS1doQmN5RThCKy9OZ1RBTHdHMmp0QXRNRkVWZlA3V1hkeXlaYlhkZElKQmFGZjFBUXJ0eWlJTG1IR3dFTU8zbjM2TloxNTlrN2c3N3QzQ01LRlhWNWE1RzZtMUp5dEFwTlZmVWR0RDMvdHFvaWIvWnhtRHFDNm93cFo1QjJGVjBDbm11Zi9tSGR5MjlTSkc2NHFXMlI4ZUFMbE1sVWFaN0o4dStLOFBQVFRVQUI4WEFZcWhLN2QyU2FmRjc5NTlCK3VDbWxRWm1sQXFYRDYvOXR5RXNJN29hKzlONElrM2ovRzk1MTlpcW9vSWttNFQwNVZrU29KSXVRUDVqUW1CTlhnSVRQcTZ1SmhFNjlneVB3UkJSaDIyREdCcFdURGhNcjU4LzExY01ob3hGdm95TXp1M2lzZ2JEU0NOOFBTK1EveXZGMTRZQXVDZkFvQXlZNE9hT1g5ZTQ3NlpMK2VUUGtyWEp2MWovTmFuN3VMbWpST01XUkhISEtyZmtuMVF5bjZ2RXlJWE1SZkE2OGQ2Zk9PblQvQmVFVkIxVnRFdjVEMm9YS3dralNwYzNTZXJVNnF3WTllV1plK0xRWnNnclZVYktad2tBRlRVWVVIbFFvTEtzVHFLMk5TSytJTUhkakd1M0VEb2NHVnVSYU80bUN6MDBRZmxEYjcreUZNOE5IV0NmbXVjeUNYbUJSVHhvQmI1NHk2TFg5N3p6NW9Ob0xxOU1veEpsYnQzUHF1bm0yNnh2Q2l5ckZ0SVRwdWNpNU9DTDM3NlY5bllDYTJTSjVSZlQ2R2FERXJWM3Nta0wwcmVUcnI4OWNQUGNIaHFsb1U2SWxkWUtFb3RVamVJeGV0ckdhcG1VTFdGTllsenlOalQ2emVoQTZzcHRJNmdPb1dxZzR0eld0RTg3YmxqZlBIV1hkeTU2U0xDd2drQkZBa1dYaDRwRmlCcXMxQ0hIQWYrNkp1UDhWNEZaZG94RzBWMUJTMVhrd3MweTZjbTlPemxBZ3dBUVV4YUZ3WUNXY2JhWjdNNkpJZ2o0ckNpeW1icEJqbWYzbms1dCsrNGdxU0NNU1VHVlltVHFHUmJtVDc1OFZybElWOTkrUUNQdi9vV1ZSaVRFMVBVRXJRdjdoaWtrWDFabGsvSkt1ampDelpQUmVkTXF6UTFobXIzeXZzdzBnbUl5eW0yWGREbGR6NzFDZGJyWldXSHlPZVBmVTZoWGN4RDFHRWhESG4rNEFKLy9hT2ZNcE4wcUpLMmFZVzRyR2tQQVhCS2RTbERwcGg4cWhWY0Z5WU1GV0tVQ3NrcTA2Y0lYSCtHUzllTjgzdDM3MkpWNkFNMFhkbHVDcnlFaWd6V0ppeXQzZU96cy96Sm95L3g3a3hHMnVuU3J4VEVzYUx2SnRXdjFpN1hkQUpKSkY3b2kwT3oycElHWFVPMlN2VWVzNEtPeTdpb0JaKy84eGF1V3RlMmxSeTRpbENheHdwVHpBUWtjekh6Y2NpM24zaWQ1OTQ5d2dscG9LUmwwVWdsc0ZKWFU0Uk5YY012VDR0L3JDdWR0UzFBMXJaaTlnS0FoVk90WkNLaWp0cmtXWTkyVkJGWEM5enppZXU0NTlLMVZGbkdlS3RsTjFKQ1U1VFB4UUc5SnJ2MzZQTXY4L0JiSjVpdEU5dVQrM2xCbktTbUhhdzl3S0NnL1Y0MUFsN3dabldvdkh4UmI0RUViMlZuNXF3N0tIdGNVRlhzM25vcDk5NThHWkZXZjZ3Z2NVbXFaTEVMTFo5YzFBVkZLK0hBWE0xWEgva3BCM3VPaFVCNTQ3UUJtbTlBOFY3Rzhqbk9HZ0MwMmhRV1NXcnQvNzdvVTF1QXRnV3FncEdvcE8xNmZPbHp2OEwyRnViemE5WEtQamN5QnR2akxkSEdHNU1aMzNuc01kN3VkeW1UTGxFVVVwWVZTUnhUVmtWVCt1VUJZQTZiN2ZtK29VUlhIZFRwK1hyRFFaVlFUZWo2cE9Vc3QyNjZoTS9mdEpPdTFQaElRRThoYWVRQ1JyVGtmdWFRdHdLbUEzajR4VGQ1OExtOVJLdldrNVZxRnZGZHc3VlFJdmRBZ0JrMmhneHE5MVY0NlFIZ216c2lTOHAwa29ocTVnaVhyTzd3Mi9mdjVncVY0UmhmVCtNWktNbmpJdm8xbGliK2Y0Ky93dk1IRGpBZnI2TU1WQ2FpanB4Qmk1Y3Y4enhaOHlVZ05ZV2xycFlXOG1XaEVyNS9YbVVWUVBwdGk0eHQ2MGQ1NExxYnVLeXRsSy9lUjBrL2xUZ1ZQbFpvT3FHZUs1a2JqemxTd2g5OS9YdjBXbU9jNkt1Q3FOTUFUWUdtaWtwdW80dWJOdlRsb1FYT21nYndxNkNweXJWcVdZa3BKZ2dUVWdWWThoazJqVWI4M21mdllJUFI5S2pNV2dhY2hXUUlTM2tSY0tpRVAzdndjUTZVMm9NbmtPSFdyT3RHNVo4aWM3QUFUN1BLTGQvZmJFUG1qa29lQ3ZRb2Q1ek5XNlJ4eHlVWGN1OE5WN0c1M2JiVm41amhGNUJiNU5EM0N5YXFCSFV3bWNCWGYvUUNldzRmWlQ3dVVDc0xXRVhtWlNqT1VJYktLVlFrbFFDd2ZOaEV6aUlBZktXL1Zwd0YwOHoxaW5BdUlpbjdyS0xIcFJNdHZuVC9iYXpSeXBPbnAzQ3RXUW9oVWVWZHRUZm40WTkvOENPT0tBMmJkeTBndExqWlUyQ3czZnhrRjVFNmRwUTJia3EwWmNncG95aGc5QmRvVlRuamtlT0t6UnY0NUUwNzJkUUVkd0tyTXJKSVBxNVM1NCtLVGp5ZzhocGUzRC9MTjU5NmtoTnBpemwxak5DaWxRZTBLaCtBeXVPQ1hsS1NscWwxTnkyWDQ2d0N3TmRxS2dhdmtJc0VHbE83Z0U1ZE1GN09jZE9XOVh6dXRxc1oxV1p2YlZvU3Y0Ly9SMlZvalpuN1p1R1BmL2dJN3lVUjdXckVqTEt3MXRWOGdNZnZ2MTdWRzhDMDJwVTZ0bFN2YndyWGxxRGkwWGFWc3lvczJYM05kbTdjZHBIbDhCWHRxK1J4K0ZJUndySWlidWhrdFAzM0l0aTcveEFQL3ZnbHB0b3BrMGxNMWhxaHlrUEdEQUErYk4xUENoYlNrbmFoN09FUUFBMHJodytrR3dDc29UTzJLTnFxT0tBMWQ0ejdkMTNObmRzMjBGYlBaK3o3OUNwOE1hZ0FJUEcrT2xYelB4OTZpRU9qYlVhS05rbWx6TDRpZS9Jc3BPWUhBRkFwdDI4WVZaSkhEeVVRRlJDU1VabFdCUmUwUW43bGhwM2N0R1hVbWtKVkFLTFVYcEVFekZ0R0lhWmR5eGJ3YWwvdjZYQlY4MysrL1czbStsMG0wNGpwZG9jc2FhTWloTkUrZENxRnJEMEE1bHNsN1Z5ZXpCQUFUUkJHZDdpeWhncTFVVmtUaFFzWW9XQTBPOEVEdTNaeTZ4VWJyY3AzMEJHa1ZhM2dqWnBDZWxHTFBVZG0rZk1mUGNueFpOUTBnS0o3aEJsQm9OYk5tcUowSkdtSExDdElWTmNkT3ZwWlRydlZ0bVlSNW1aWjMyMno4NUpOWEgvRjVXd1kxL2FpUUU5TmtqVG1vL241aFRxL2NYbEpHTGRaQ0FKT2hQQVBUK3pqcFhmZW93aGJGR0ZBSWEyaXJhSldNYXZ2VS9UYmpXd1lHWmtETHFMbHNRbWN0UzFBYnJiYXZDWFFVd0JRY1g1SXA4cFlYYzF4LzgxWHMydnJCcDl4YXhvMXJJZXZWZ3JYV1FuMjN1TnovTVVQbjJRcUhxZFZLcjZ2UFZjSm5NeGIvM1Zrd1p6UmR0dUNOVVV4UXhLa0pNU3M2clM1YXRORjNLU1M3NDV2SUduSkcyaENBTllnb2w0QUNWS3FTWjNCVlVXWnBCeDM4TjJuWHVPbEE0ZnBCOG90REVyWC8ybkJMcWNZZ01WQnptWlp1QkV6S2VGaVc0QVBETWt2YU9jOTFnWVo5OTJ3blp1M1hrVFg0c1RlVXZlTlFWcWlxc0NKMkR2WjR5OS8rQlRIbzFFNmhRb3lsZU12cU1QU1ZIdFlCWFNqaUgveHE1OWcweWhrbWFQdFFxSWNSanZRU1gxc3dmSi93bzZWZVBzbzRLRFVRSHRGSlhhUUtLVG5ZTmFwdHZBTjlyNTdpT041UmRRZE4wMnpsR01JZ09ZdURhSnZmaWYzNVZzeTBxUWkyM25HR3Rmbm51dXU1STZyTjlFWnBGd0hkODhTTnpXOUtPU1ZFeFZmK2VGVEhMSFNiY1gzUy9PM1phQUpZRkZXTVZLVi9QNXYzTVdsbzhvajlPazRXUkU2d2F1VlNtNmQ3SVpJOWtOVHNTTUR3UmpDU3B5MFNKeFkxUEZvRHQ5N2JBK3ZIenBDUDBySVpGTzBtckxrSlNCZ0NJQUJBR3pGeTJLWHNTWkRNTEFHQ3ZsMm5iSmdOSi9uazFkdjVkNmJ0dERSaXBmdnZJalp1WFlWZVJxWkYvQ1ZoNS9rWUJhYStsWmhoL2JhTWhTWlJNeWFwRU8zdjhBWFBua3oyOWRBVWs1YmVGWnJ2cXh5aXFpMjVOTWdRYVMzcCszQnRoeDFGMUdTQlNsWmxQTDJMRHo5eG43MnZQMGVjOW9XMm0xNmVVNVh4QkE5V2FvZmZnd0IwTnlqUVM1QVpac0NnZSthbFE4ZmsyUjlWcm1jS3k4WTQ0djMzY2lFQ2paK0RnRFNBSGtVY0RDSHIvemdTZDZaS1hHaVpwR3hwYWFnS0xJU3NWRmlXclBUZkhMN0pYem14aTEwZy9tR0I4NnJlSFhyWldpVkt4YlFzcWJ3UkhYR3B0RnI1c3A1OHFUTE8xTVozM2prS2N2dkgrdVZWSEZDcFk1ajZ6R3JmQlBwRW80bG5yYUVLLzF5VGpsck5vRHg5d1JxbVZKUXRXZ1NNdkx6SXRLcVpCVVZGNDhrZk9tQlhheVdUei9nOGZYYTMwTEQ4aHlPVi9EWFAzaUNmY2RtNlhYSDZJZUJSUXd0M3k5akw2c1p5VE0ydHdPKy9KbmJXTjkyQk1VOGlUcUFGQzVXdXRqY1BkSEJKV2IxdWI2cWhrUEtCSTZtOE5iN3gvbk9qNSttbjR3elZRU1VTY2RiK2szSVdZYW45U0V1NFJnQzRLUU40QU0vcXJrTEJBQXIvcFFwRnBPVUZhMXNnUTJkaE4vOTNCMXNhaW1OZXlxSDc1azYxUElUTXgrR1BQMno5M24weFZkNXAyeVJwNm5GM1V1NWkwR0xlcUZnZGRLaW5qN09ybTBidWV1V3E5bVF3SWlGYUJ0L2Z0QS8yRlNJbVFJb1lQODhQUGoySzd6eHpydCtHd2hUS21Vckd6QmFLWG5EQk9iTHlqNzhHQUpnRVFBa2JBRkFHc0FYWkVZRVlVcWQ1YlR5SGhkMVcvelcvYmR4ZVhlUU9mQ3BYTXNHdXN5S1FQdDF3RnlVOHZjL2ZwckhEeGIwNHhaQnBIQlJnYXRxT3NrSXJsZlNqVU9DWW9GdFd6Znl3SzdMV1R0d0t4dU9JR2tWUlp3VmJEcHdISjdhczVlZlRaN2dpSGdDNDlqMitxalZBZ3RYSzFQb0Mwb0doRldWMVNnT0FmRGhkK0RrR1NHQmkwMzRZWkJiWE44Q1FlTDVLZFQ1VzdJcXJybjNsbXU1L1pLeGsreDZxdDR4bjl6MXpZclBLa2VaanZHenFXbis5dkdESE8wVmxOVThjU0l5QjRWOFcrUnkvZElPQ3VnVytUdzdMbDNOMWcwVFhMNXBNeE9pQnF0QU50eUJZMU84ZlBBOTlyNS9rQmtjcTlac1puYXl0aWJRaWJFUmVndHpST3BRTXE1Q1BVSUw2MHJ3UlRRRXdHa0lYNmY2dmowZnI3ZGw3VWtVdFRkYnZOMFpiOS9GYThiNGc3dXZ0aHA4VWJtWmZTNEYwS1JYWmNSWmEwWWQ4czAzVHZDVFBXK1FtMlUrd3R5OHRFVExHTHR5dVlkeFJlRXlVcGZSRFJ5cHdzQ0sxVmVPd09qZEhJV3FpTnBkZXM1UnlSNmg3U09BVG5FRlI2ekVnU3FDN1AyZllpeVQzYkdVWTdnRmZOaGRraXZuMU5mbk9YbGJnZVAzNzlqSmp2VWpKS0xuYVVpNU02dkYwKzJzU01RS1ZsUzgzK3J5Vnc4L3g5SGpjMlJWekh3UkVIUzY1RVkyNlNnajFmaVhKS1ZQNDBxdzVvSkt1SElNelREMEdVbjFESnF0dVVRUzhPVW0yQSs3ellPL256VXY0TVBlb0FDZ2VIOVk1ZHkwcnMydjdiNkZ0YkdTSzc3OXIwcFVsT0dMUkZUaG80TFIyU2hoMnNIM2Y3cVhQUWNPazQrTU1lZEVER0hFTG1hcFc2bzRWTXlocGxZM3NaSThzUWhFdE13OUgzQmR5U05RbWxqcDNxV0pkbWxuZmRpbi91Zi8rN0lEd0dEbFd4aFdxcmJ5cWVIN2JyNkIyNjljUjlxSHJ2YUN5SWVRVlJ1b2VIK2cydjNHa0R2czRPK2VmcEU5UjQ4ekY3UndrVkt3Y2kvOXl2ZUJvcWFqVXlHZ3B0ek01d0Q4S0JramlUTlhkV21pWGRwWi8vd0MvckJYWEhZQThBV2NpOHpwMnBHV1BUYVB0Zm44blovZ3NsSG95Z2cwbTEySE1mcGEzQ1kwK3M2QVhoSWJUOCtlbzNOOC8vSG5tSzlpWEoxYWtFbEdtd0NneDZENXhITjkrVmhnRXgzMnpjYnlOcVZ1bG5BTUFiQ0VtN1NVVTR5WFg3dXYvZDkwNjZwTXZGamdqaDJYOFpuckw2TlZGSXdhNGJkdXV6YnkyTnJBWTllbnJuTHFWcGNGWXVhQmg1L2R4eXNIam5Lc1gxSEdiV01UbFdvWHk1Y3FoaXNWaDBTQjhRNmlSazhGa016SzlPL0JEUUd3RkxHZDJYUFVCa0EyeDdwMndLL2NzSjFQWEhZaFkyck1NV2FIZ0ZLMHJMRXFlOVJOVkZtYm1JWTQxWFhNQW5Db0Q5OTYvRVgySGo2S0d4MjNtRTFDZU5LM2o5c3Rza3hsUng1d3l1RVBJbnRMblFReTFBQm5FQU8xcUZ2VW0rOTZySTRjdjM3SHJWeTd0a1dhTjd4OW9nS0s1VVo2anFDV3BHRlZPMnJYRGExMC9HZ0FQLzdaSVI1NytXVWorMHlqbGlXanlpZ2lWL20vNmhNVVBEQmVYMDhRWVRwb2FUdkFzcXIxUHgxUkxEOGI0QmU4KzFJTm5pMEpzeUlzKzF5VXBOeDM5WFp1M0RKT1M5VTY2aEVNRlZKT2ZERFpDQ05zMG9PbkFROWpaaFRzaWVIdFl6MmVmdWwxZm5iZ01DNU9qUGxqdnF5SjJsMXlGWEEyR21EUUxEcjBBazRIVG1mbzNDU0k2UnROUkcyQm1MYW9XWG9MZlBGVHQ3SGpZclYvaS9DL3BLMjJiM1BlamJqSERFVlhWMlJGUlpLTzR0UXJXTUZrQUUrOU9jbHplMS9oUkY2eW9JSXZsWG5IdnZiSUY2dDZsb0NUL1FRZjh0bUdXOEFaRXI3WitmTFA0OWhxN3JJc1kxMTNoSGg2a290SFV1N2VkUTFiTm5iTmVoZGxpM0lGSGdDcTQ5Vys3cnNQQklLZ1Rra2lYOWpSaitDcFY5L255VGYyTVZWakdrSk5KYklibEE0T3JEbFE1ZCs1WWVBa3cyOHpXdTRVNDJjRGt5VzZpMmZ3Tm4ya1M2K0lMVUR4ZjNQUkxURGprMEVLRUxWcXp3eSs0OUtMdVg3N1p0WXJVR1Q1eElwSWZmc0RDOTZDT3NvNmVLcllqdjRSajA4RUI2bDU5UFhYZVdyZlcvUm9FNFpqa0hsbXI0cWNQSjF0K1A2OVp2RE5wTDdqMkI0RFJwRWxaZ00va3BUTzRKTldDQUFVOFdzR1FabFJwbWtnRlhGWmtGUVpVWm14ODhvcnVPL1diWll6a0NtbmlsK0ZpQTBEOWh6L2ZQUDJiZGdRUmoyck9wN2pHZXc3Tk1tUG50N0RWQllRakt6bTJHeVAwVldqRk5YY29ybUNwNXBLbTBtREo4ZlRpR1ptSlI0ckRnQURjZ1dGZE5YTUlTR1BwREZsYjU2dEY2M2lwcXV2NG9yMUkyWU1pa0xPaXIrczBMUFp6NFBhSm43SlgxQWl5TnEzUkJtSDV4TDgvbk12OGRxSkUvUTdIYVo3ZlRxSnJqRGdEMmpHeHB6ODJRZXR2SFphV2pKb3VZRmsyUVBBa2pUV1BEb1lEdVZqZG1XUjAyMmxsUDNNdUhsMVRsd3VNSnBHWExmdFNtNjVaaE9yeE94cDJrQWwzNzZjWEV1L0w1YlFNS1FyRW1lNWkyS09VcnQ1Q3c0NStNNExyL0hzTzI4VGRpZkljei9odzZ0NjMwcnU5VW16RlRVL0x6VmtQQVRBYWQ0QkR3RGZGenlZRG1aVEJJT0FJaS9vdE5vVW1jaGdRbkdDV0x0NVZCWnN1bUNDVzNkdTU2ck5YV1AwbEx0b0lGRDZPZkpnQ3VYMithWUVYd2F1Y1RJcFRBSS9mUFpWWG56elhSWVk4VTFtUWR3MHJ6Ulp3c0Vjb0dZZW9FclFWdUt4TWpTQXo4ODA3QjMrYXhPemEvb0Ztam1DUldaVXJhRW9aNG9GMXJRU2JyenlNbTY0Y2lQcjJwNDV2R3NoNUlaWTB1WUorRmtDZ3BnS1VveXFRa0NvNE5XRE0zemppVDNNWndWRm5CQjBSNHhLbnNnVFNnOXFBV1dVS3FpMEVvOWxEd0J6QTMzVnBoOE0xWXhxa1VyMmc1c0dRNWdhemg4OXdmbHBvSzJnaE40Y083WnM1STdycitiaVZaSFpCZDI4c1F0dGdraEpLVTRLdTVweWdFMXJHTEJRdzllZWZKM1g5eDlnMmdXVXJTNG54RHpTSFYwVU12YlRRWmNUOGRQcEFIRkZBRUNsVjRQTW5TZDFiS2dpbW4zWk1vSTJWTEt4OWFUZUxaMmMwNktpVGNsbzROaTZjVDI3Yjk3QnBnZzZoU2ZyVUxTNE5QS0pwdTFjUUtnQ2d0TGJDUW9hUGYzcXV6eTk3eTBPTGVURXE5Y3lreHRoUVpNejhBeGpRd0NjRHV4Tzg5eEFUS0JXTnFZOWZOQkk0bk9GM2pEenhJN2VFd3VzN2RzZUVteVpNeG9IeEVWR21NMXp6UlZiMmIxdEs1dTZBYWxuYi9HekJnV0dzckRDRUNOL1V1ZXd0RUNGTVlEKzVmZWY1SzNwQlNaVkE5Z2FNWmZTY2dZcUVHMDRDRTd6WXkyTDAxZUVCbEJtenhvOUcyWlAzMGswc01jSFFSbjFHS2lTeHpPRUsyd2NSQkZKSE9LeW5zVUZSRWNuMTNHMDdISGo1UmV6ZTlkT281MGJqSTIxT0xIMUZTanNMREtRaUtKZjJiQ0tRd1g4NmJkK3lGU1FNcWRtMEdhMmdHY1ZIOURYTEF1Wm50YWJXQmtBK0lVZmFiRkR0dFRQN0UzSHFNcnBoaFYzZnVKNnJ0ODh3WVRDeUs2MCtVTTJXa1MwQy8xdkFBQUsva2xFUVZUOGYxRk01UUtxdVpKa0pMYlE4VGQrL0FJdnZEL0pWS3dHRkZrVG5rdElMS1JXcXI0Q2p4VU1nSTkrdHhQeFNsY1pTWkJ6Kzg0cnVYUGJaZ1BCU0NFQ2FqRkVCWlpORHRXNXBLTGgydWNPRHN3Ny91OC9QTUt4Y0lSZTJMYllnTmhJQklDVmVweVhBQ2lMZ200N3hlVnpqQVU1RDl4Nkk3czJyNlVqTWdtdDVFZ2RCQ29lalFuVmd1QWNXUmhhN3VDdmZyU0h2VWRtNlVWdGl3c0lBT0liOXR6Q0srODRMd0ZBSkRaU1J4SlcxTDBwTHB2b2NPOTFPN2x1NDJxYk51b0xRUnl1VXJoWmlhUUswVTNNSnpIUDdaL2lXMCs4YUV4ZzN2ZVhGeUFBK0k3aWxYYWNsd0JRbGJBSXB1TElFWlh6ZFB0emJGc3p6dWMrc1lzdEV6RlZYcEtvSzhXbVNrb2p5RFNveUpNVzcvVGdULzd1UWViaXJnMmk5UHlDenVqcFZ1SnhYZ0tnREJKdjVNbDRLM3VNdVp3MUx1YzNkOS9PZFp0R0NEVnJNRlovZ09ZRmVOcDQyUVZaa0RBTi9JKy8rUUVuU01sVlFxYnVFa1VSYkJieHlqdk9Td0NJNU5GRmlYVVFPNWN6NGdwRytndmN2ZU1xN3J0K3MzSDdpMDlLZklMV0lOTHdDaFpoeWd6d3A5OTlramRQTE5BWFgzMmlXWVBhQm9aYndJcUJ2M0VFYTQ2d0drUnE4UU5XZFBvTFhIL1JldjdWM1RzWlVlTElVZ2FxQ0JKcGhjOGlpc2w4Vm1OaEgzNmV2WWVueU5PMlZTcXB0RHdaQW1ERnlKOWFBbzBDaWtoa2swb2pPOGFya2tzN2JmN041M1l4MGd5UHROeERwRm1Ddm90SUF5NEVnRDkvOEZsZVBqcURHeGtqVXpKUlFTWmxGVmZnY1Y1dUFZRTRDVVE5RzJzV3NSLytNT0ZxMXJtS2YvZUYzYjZxeUlmN0tVTE1OUlNsclFDZ3dkQi8vdEJ6N0QwOFRkNFpzZnJDSkkySnMyRkYwQm5CdncyR2tqTnV5UmNsZkh4YmVWSEs5Zko1L2ZaSWg2ejBYTDZ1S0VqaXlPWUZaNzBla2NpaVBwQ3E5VGsvdFlMM1VzaGlqWTBwV1YwVjNMaHVMYit6ZTRkNEptbXAzei9XNUJITkJwVENjRFpxZGlvSytOTWY3bUh2MFJtaTlnaEZiNTZKYm92K29GUHRqTnlGTTNmUlphOEJiSmFmQUdBOGdWNzRucy9IcTF3MWsycDBqS3NkM1NTaXJpb3E1eXVJb2tqZFFhZHVucFZ5bUZlWG1EQnpBU0FzaWJJRjFsUTVuNzMrV202L2JEM2pHa0JxSmFFS0NJVjB4QWhtYlNjaGt5SDh0Mi84bUVOVlNwaWtCRVZHU3hPTTFISzJBbzlsRHdEZDB3R05uTFZ3TmxXNFd1RlZudEZORmEzVDNPQ1NQSnNta2xFV3ByaTRaWE9EYW1NRGJ3STJpdTRaVDNCTVdmb080U0IyZEYzQlJON255L2ZkdzVWclFpc2pxMXpQNkdvMGxrN2o2cFVsekFnNVdNSi8vOXFETEhSV1d5d2hWUzZ5TEtpYXdSQXJEUVBMSGdCYTU5cVB4ZGp0dVhoVkVhVGUvcHd4VlhOcXBHd3I1WWJ0VjNIWnBldDQ1LzJEUExYbk5ZNzJIRlY3d3M4Z01rWXZQMGxZbkVTaW1vL3FpRGdPQ0lvZTNUSm41NFZyK2MxUFhVZTdoSmJtRlpueUYzQTBGaXl6eVI5aUpuM3k3YU44L1ptOXpLZWo5RXZOQ3RiVWsyRkYwQmtEdmdEUUxqVWdLa1NzSU1ZWXJqeC92c0I0NEZnVDF0eDcwdzFjZS9FcXF3cVk3Qy93NCtmRTRYdU11WGlVWERGN0E0RFdzam9EY3VNU1VQRklYSlpXOFhmdDVvM2N0djFLTm83N2lxRXdFbW1WV3MyMFhZU29OYTBLMnZUamdLODgvQ3d2SFoxaFpqQVBxS3BKTlRocVdCTjRaakJnQU5BUXlDZ2lpNkN2NlJ0MVlWVSt3Y3h4N3JsdUovZGNmd1ZyTkRUY2FCOGpUdFN3OThBMGorNTVnK01MQlM2eVFrQnJDNG1DZ2poTm1Ea3hiZTdlWGRkZHh5MVhiV1pDODUyMCttMHJGK0dUTHp6SnNoNWhQRVlScGJ3M0IvLzdHOTlqSnUzUWwzMFIrUEV2S2xtckIxT296c3h0T0dOWFhSRmJRR3BiUUdoYlFDNGgxd1dqb1dNTkJWKzhlemRiUmhOV3E3QTM3MW1ucUhoOTVhNGRuSWFYZm5hQVE4Y25tWnljSk05N3BFbEluUVJzMkhBaHU3WmR4V1ZyT295cElOakdDdFdFR2kzYkVFRGFvS2VnWnJaS0thT1lSL1llNHdmUHZFQTUwckZ5TWFPS0VqdUpETk1sa2tTZE1VbCt4QXN2ZXdEWXlqVUdNVC8wellaRTFoVVRvZU9XS3k3aFY2L1pUTHVzR1ZHMWtCbDduaTlBN0lOSzVEVmRZSmJUYWFiRG5PUVdVUnVaMnNSa3lLbSt5Mm9EQS9VWXEyUmN1cWRrSWVqVEQ4YzRuTUdmZk8wbk1MNktFL204YlVPK044QjRhVzBBOVVvOGxqOEFaUERKSi9mRC9LeFJ0T1VjbzY3a3R6OTlKMXRYaWZXekpuYVo3ZFBXQm1pQ2FZWkZHZE84T0FCVTZ1VUxmbFRBcVdSZlcydFlaV0RpQ2xjWldETmxOTFdHRVU5SE81UGt6TlBtNjQrOXpaNzl4NmphSFVxekQrUWtOZ0F3SjNFSWdET3lBSlNYTDlQY0pvbEVsV2J3UkhSZHdEZ0Z2L2ZaM1d6c2FoeThHRVJteU5yamcwa3VKSzRuUDlFbWdhRzJiek1HRTZ2M2owSkhXeXRXYUZBVmtPb0drNEMrRFl4UDZCck52SGNDamlVWlQ3eHloRWRmUHNKQ01zRjBuaE9tTWloN2Z1QzBOSUJaSHl1ekttaEZhQUNuY2F2VzJpZitIcThCQklEZi9jeHV0blI5VzNqUVg2QnFkNXY2ZnBWNHF4MThNQVJTVzBjemtzWXFpYlZhTTJzWk0wSXFkUjQ1eFFWazJHa2NKTlE1ekVmdzRPdUgrTWt6ZTZHN211bmNrWFE3NVBxanRaODNIRVhhTWxRN3NBS1A1UThBSTJ6UXNDZmZ4U1dqVFBUeWFYK09PM1pzNWRQWGIyRzFXcjhLTGUyRzBxVVp6MnJqZWs2Nlo2ZEd0bnAxclZYY0ZISU41c1VHcWExalJRQ2tLVjQrbFBQM0wremoyT1FrblpHdWhadU5UOGlWOWw0R1Q1UGNMWGV3QW84VkFRQzVXUXJqYUEvWFRaYzVPQ2JPb0lWcGRtMjloSHR1M002NHVBR3NUNjhaK1RKbzQveEF0VzZ6U3JWYUc5ZlE5NXRwOVdzU2FVaVZ3T0U1K09tekwvRHF1MGVaaWNZSmRhN0t4V3ZsQThSSjQyY1dOa3JKeEc3RUZDdndXQkVBME5BbVAyRENnMEJHbTZhTGFzQmt1K2h4Njg2cnVISDdwV3lNTUlJb1R3SGI5QURhTm1EVHBuMXppUjNpZzFkT3djOFAxbUNvSXNZWXhkNmFLbm5rdVJmWTk5NTdoTzF4d21UQzA4bXBsVHhKeVBMTUpveXNUSVgvanhHNjdBRWdRUW9BZnFpVUxIbXZ5cFdzYVd1a2ZKbFJ6VTJ6ZWYxYVByWDlDaTdvdEprWTc5SnBOOFRTVFN1MzUvMXB1SCthYmFIcEZXWTZoME16T2ZzT0hlR1oxOTVncWl4b1Q2eG1acTVQSExTTVNGbzJnb1pTVzJhaXNTMFdzOElNVzhQT2tQcXpjS3dtZHFtS3g2aGJCUVRQRjZ4V3JqU29hVWNoVmQ0bm5wdGh6ZWdJYTFhdll2MEZhN2hvL1ZyV3JPclNhVUVuOHB5aUFvL2F2YWJuTWlhbnBqbDBkSkw5Qnc5eGJHYWVVck9FT2wyeUlDRFQzRUJWL09RVmFlS3JpRFV5MWhOSysvVXZBUGkyVmI4MXJjUmoyV3NBMjE5UDhnTm83L1dhWUhDWXBhOXVZSWtoejJrbGFpTlRrV1pwdGY5WmI5NHlnTzNVdDVkVnl1eTFZNEkwcENnYzRvczJobkEvYjlTRHJPSCs4ZlJTL3JVR3J6Z1ErZ0FBZy9jeEJNQVpoUDhnekg2S2tNbnpBd3gyOU1GK2JHVWphdHIwcmNGVzB4ZEhmc3k3SGxZS1p2RzkzR29NZ2xEOWhBTjdRRTBlQThLWGhpVFNpSXMvMlBDeFdPMHZYdlFyMVNaWUVScGdvR2cvcUdVSGRDMmUwYzhQZVF4c3NxZFVkR3hXdmxhMzJNREZLSEtLOGk5UW9rZGgzMHEwOGFvWWl2M29GNTE3S3Vqc3g4c3Zhdmo0cDFoRFZ5aEwzTm1kSExwVXBXRVR2NDJSUTVHM3hwQlRCczRFTDRPZzRmSFIxSEI1QUNvTmM0NVNlN2JZUEd3S3FHWUIrSUhSeXQ4cjNoK29QRnpCd05KckJzTk1vSXlEQUtKaGt2ck9WL29zZHZrR3EzMHhJSVp1NEZLbCtSSE8rMFVBT0xrckN3Qk5sWkRSdzJyQXZGWHhldTVmR3p3aEc2SUpDa250eTZzSUtxZEpNZlpjZ1VSV3BWaEZQUStCSHoxdlkrY2JEZkR6UWwvOHM0RnpoZTRCSzJRTCtBaW9HVDVsU1hkZ0NJQWwzYVp6OTZRaEFNNWQyUzdwa3cwQnNLVGJkTzZlTkFUQXVTdmJKWDJ5SVFDV2RKdk8zWk9HQURoM1pidWtUellFd0pKdTA3bDcwaEFBNTY1c2wvVEpoZ0JZMG0wNmQwOGFBdURjbGUyU1B0a1FBRXU2VGVmdVNVTUFuTHV5WGRJbkd3SmdTYmZwM0QxcENJQnpWN1pMK21UL0h3MUlyRHlNTjR1dUFBQUFBRWxGVGtTdVFtQ0MiLz4KICA8L3N2Zz4=', + homepage: 'https://github.com/GetScatter', + download: 'https://github.com/GetScatter/ScatterDesktop/releases', }) - /** - * A unique string identifier for this wallet plugin. - * - * It's recommended this is all lower case, no spaces, and only URL-friendly special characters (dashes, underscores, etc) - */ - get id(): string { - return 'wallet-plugin-template' - } /** * Performs the wallet logic required to login and return the chain and permission level to use. * * @param options WalletPluginLoginOptions * @returns Promise */ - // TODO: Remove these eslint rule modifiers when you are implementing this method. - /* eslint-disable @typescript-eslint/no-unused-vars */ - async login(context: LoginContext): Promise { - // Example response... + login(context: LoginContext): Promise { + return new Promise((resolve, reject) => { + this.handleLogin(context) + .then((response) => { + resolve(response) + }) + .catch((error) => { + reject(error) + }) + }) + } + + async handleLogin(context: LoginContext): Promise { + if (!context.ui) { + throw new Error('No UI available') + } + + // Retrieve translation helper from the UI, passing the app ID + // const t = context.ui.getTranslate(this.id) + + const {account} = await this.getScatter(context) + let chainId: string + if (account.chainId) { + chainId = account.chainId + } else if ( + account.blockchain && + Object.keys(Chains).includes(account.blockchain.toUpperCase()) + ) { + chainId = Chains[account.blockchain.toUpperCase()].id + } else { + throw new Error('Unknown chain') + } + + return { + chain: Checksum256.from(chainId), + permissionLevel: PermissionLevel.from(`${account.name}@${account.authority}`), + } + } + + async getScatter(context): Promise<{account: ScatterAccount; connector: any}> { + // Ensure connected + const connected: boolean = await ScatterJS.connect(context.appName) + if (!connected) { + throw new Error('Unable to connect with Scatter wallet') + } + + // Setup network + const url = new URL(context.chain.url) + const network = ScatterJS.Network.fromJson({ + blockchain: context.chain.name, + chainId: String(context.chain.id), + host: url.hostname, + port: url.port, + protocol: url.protocol.replace(':', ''), + }) + + // Ensure connection and get identity + const scatterIdentity = await ScatterJS.login({accounts: [network]}) + if (!scatterIdentity || !scatterIdentity.accounts) { + throw new Error('Unable to retrieve account from Scatter') + } + const account: ScatterAccount = scatterIdentity.accounts[0] + + // Establish connector + const rpc = new JsonRpc(network.fullhost()) + rpc.getRequiredKeys = async () => [] // Hacky way to get around getRequiredKeys + const connector = ScatterJS.eos(network, Api, {rpc}) + return { - chain: Checksum256.from( - '73e4385a2708e6d7048834fbc1079f2fabb17b3c125b146af438971e90716c4d' - ), - permissionLevel: PermissionLevel.from('wharfkit1111@test'), + account, + connector, } } + /** * Performs the wallet logic required to sign a transaction and return the signature. * @@ -69,19 +141,62 @@ export class WalletPluginTEMPLATE extends AbstractWalletPlugin implements Wallet * @param resolved ResolvedSigningRequest * @returns Promise */ - // TODO: Remove these eslint rule modifiers when you are implementing this method. - /* eslint-disable @typescript-eslint/no-unused-vars */ - async sign( + sign( + resolved: ResolvedSigningRequest, + context: TransactContext + ): Promise { + return this.handleSignatureRequest(resolved, context) + } + + private async handleSignatureRequest( resolved: ResolvedSigningRequest, context: TransactContext ): Promise { - // Example response... + if (!context.ui) { + throw new Error('No UI available') + } + + // Retrieve translation helper from the UI, passing the app ID + // const t = context.ui.getTranslate(this.id) + + // Get the connector from Scatter + const {connector} = await this.getScatter(context) + + // Encode the resolved transaction + const encoded = Serializer.encode({object: resolved.transaction}) + + // So eosjs can decode it in its own format + const decoded = await connector.deserializeTransactionWithActions(encoded.array) + + // Call transact on the connector + const response = await connector.transact(decoded, { + broadcast: false, + }) + + if (!response.serializedTransaction) { + throw new Canceled('User Canceled request') + } + + // Get the response back (since the wallet may have modified the transaction) + const modified = Serializer.decode({ + data: response.serializedTransaction, + type: Transaction, + }) + + // Create the new request and resolve it + const modifiedRequest = await SigningRequest.create( + { + transaction: modified, + }, + context.esrOptions + ) + const abis = await modifiedRequest.fetchAbis(context.abiCache) + const modifiedResolved = modifiedRequest.resolve(abis, context.permissionLevel) + + // Return the modified request and the signatures from the wallet return { - signatures: [ - Signature.from( - 'SIG_K1_KfqBXGdSRnVgZbAXyL9hEYbAvrZjcaxUCenD7Z3aX6yzf6MEyc4Cy3ywToD4j3SKkzSg7L1uvRUirEPHwAwrbg5c9z27Z3' - ), - ], + signatures: response.signatures, + resolved: modifiedResolved, } } } diff --git a/src/types.ts b/src/types.ts new file mode 100644 index 0000000..10f65a1 --- /dev/null +++ b/src/types.ts @@ -0,0 +1,18 @@ +import {Struct} from '@wharfkit/antelope' + +@Struct.type('scatter_account') +export class ScatterAccount extends Struct { + @Struct.field('authority') authority!: string + @Struct.field('blockchain') blockchain!: string + @Struct.field('chainId') chainId!: string + @Struct.field('isHardware') isHardware!: boolean + @Struct.field('name') name!: string + @Struct.field('publicKey') publicKey!: string +} +@Struct.type('scatter_identity') +export class ScatterIdentity extends Struct { + @Struct.field('accounts') accounts!: ScatterAccount[] + @Struct.field('hash') hash!: string + @Struct.field('name') name!: string + @Struct.field('publicKey') publicKey!: string +} diff --git a/test/tests/common.ts b/test/tests/common.ts index ebfe55e..dbb9f20 100644 --- a/test/tests/common.ts +++ b/test/tests/common.ts @@ -1,51 +1,60 @@ import {assert} from 'chai' import {PermissionLevel, SessionKit} from '@wharfkit/session' -import { - mockChainDefinition, - mockPermissionLevel, - mockSessionKitArgs, - mockSessionKitOptions, -} from '@wharfkit/mock-data' -import {WalletPluginTEMPLATE} from '$lib' +import {WalletPluginScatter} from '$lib' +import {mockFetch} from '$test/utils/mock-fetch' +import {MockStorage} from '$test/utils/mock-storage' +import {MockUserInterface} from '$test/utils/mock-ui' + +const mockChainDefinition = { + id: 'aca376f206b8fc25a6ed44dbdc66547c36c6c33e3a119ffbeaef943642f0e906', + url: 'https://eos.greymass.com', +} + +const mockPermissionLevel = PermissionLevel.from('wharfkit1111@test') + +const mockSessionKitOptions = { + appName: 'unittests', + chains: [mockChainDefinition], + fetch: mockFetch, // Required for unit tests + storage: new MockStorage(), + ui: new MockUserInterface(), + walletPlugins: [new WalletPluginScatter()], +} suite('wallet plugin', function () { - test('login and sign', async function () { - const kit = new SessionKit( - { - ...mockSessionKitArgs, - walletPlugins: [new WalletPluginTEMPLATE()], - }, - mockSessionKitOptions - ) - const {session} = await kit.login({ - chain: mockChainDefinition.id, - permissionLevel: mockPermissionLevel, - }) - assert.isTrue(session.chain.equals(mockChainDefinition)) - assert.isTrue(session.actor.equals(PermissionLevel.from(mockPermissionLevel).actor)) - assert.isTrue( - session.permission.equals(PermissionLevel.from(mockPermissionLevel).permission) - ) - const result = await session.transact( - { - action: { - authorization: [PermissionLevel.from(mockPermissionLevel)], - account: 'eosio.token', - name: 'transfer', - data: { - from: PermissionLevel.from(mockPermissionLevel).actor, - to: 'wharfkittest', - quantity: '0.0001 EOS', - memo: 'wharfkit/session wallet plugin template', - }, - }, - }, - { - broadcast: false, - } - ) - assert.isTrue(result.signer.equals(mockPermissionLevel)) - assert.equal(result.signatures.length, 1) - }) + this.timeout(120 * 1000) + this.slow(5 * 1000) + + // test('login and sign', async function () { + + // const kit = new SessionKit(mockSessionKitOptions) + // const { session } = await kit.login({ + // chain: mockChainDefinition.id, + // permissionLevel: mockPermissionLevel, + // }) + // assert.isTrue(session.chain.equals(mockChainDefinition)) + // assert.isTrue(session.actor.equals(mockPermissionLevel.actor)) + // assert.isTrue(session.permission.equals(mockPermissionLevel.permission)) + // const result = await session.transact( + // { + // action: { + // authorization: [mockPermissionLevel], + // account: 'eosio.token', + // name: 'transfer', + // data: { + // from: mockPermissionLevel.actor, + // to: 'wharfkittest', + // quantity: '0.0001 EOS', + // memo: 'wharfkit/session wallet plugin template', + // }, + // }, + // }, + // { + // broadcast: false, + // } + // ) + // assert.isTrue(result.signer.equals(mockPermissionLevel)) + // assert.equal(result.signatures.length, 1) + // }) }) diff --git a/yarn.lock b/yarn.lock index 076f5ad..0eaf972 100644 --- a/yarn.lock +++ b/yarn.lock @@ -10,13 +10,21 @@ "@jridgewell/gen-mapping" "^0.1.0" "@jridgewell/trace-mapping" "^0.3.9" -"@babel/code-frame@^7.10.4", "@babel/code-frame@^7.18.6": +"@babel/code-frame@^7.18.6": version "7.18.6" resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.18.6.tgz#3b25d38c89600baa2dcc219edfa88a74eb2c427a" integrity sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q== dependencies: "@babel/highlight" "^7.18.6" +"@babel/code-frame@^7.22.10": + version "7.22.13" + resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.22.13.tgz#e3c1c099402598483b7a8c46a721d1038803755e" + integrity sha512-XktuhWlJ5g+3TJXc5upd9Ks1HutSArik6jf2eAjYFyIOf4ej3RN+184cZbzDvbPnuTJIUhPKKJE3cIsYTiAT3w== + dependencies: + "@babel/highlight" "^7.22.13" + chalk "^2.4.2" + "@babel/compat-data@^7.20.5": version "7.20.14" resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.20.14.tgz#4106fc8b755f3e3ee0a0a7c27dde5de1d2b2baf8" @@ -128,6 +136,11 @@ resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz#7eea834cf32901ffdc1a7ee555e2f9c27e249ca2" integrity sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w== +"@babel/helper-validator-identifier@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.5.tgz#9544ef6a33999343c8740fa51350f30eeaaaf193" + integrity sha512-aJXu+6lErq8ltp+JhkJUfk1MTGyuA4v7f3pA+BJ5HLfNC6nAQ0Cpi9uOquUj8Hehg0aUiHzWQbOVJGao6ztBAQ== + "@babel/helper-validator-option@^7.18.6": version "7.18.6" resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.18.6.tgz#bf0d2b5a509b1f336099e4ff36e1a63aa5db4db8" @@ -151,11 +164,27 @@ chalk "^2.0.0" js-tokens "^4.0.0" +"@babel/highlight@^7.22.13": + version "7.22.13" + resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.22.13.tgz#9cda839e5d3be9ca9e8c26b6dd69e7548f0cbf16" + integrity sha512-C/BaXcnnvBCmHTpz/VGZ8jgtE2aYlW4hxDhseJAWZb7gqGM/qtCK6iZUb0TyKFf7BOUsBH7Q7fkRsDRhg1XklQ== + dependencies: + "@babel/helper-validator-identifier" "^7.22.5" + chalk "^2.4.2" + js-tokens "^4.0.0" + "@babel/parser@^7.20.13", "@babel/parser@^7.20.7": version "7.20.15" resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.20.15.tgz#eec9f36d8eaf0948bb88c87a46784b5ee9fd0c89" integrity sha512-DI4a1oZuf8wC+oAJA9RW6ga3Zbe8RZFt7kD9i4qAspz3I/yHet1VvC3DiSy/fsUvv5pvJuNPh0LPOdCcqinDPg== +"@babel/runtime@^7.22.6": + version "7.22.11" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.22.11.tgz#7a9ba3bbe406ad6f9e8dd4da2ece453eb23a77a4" + integrity sha512-ee7jVNlWN09+KftVOu9n7S8gQzD/Z6hN/I8VBRXW4P1+Xe7kJGXMwu8vds4aGIMHZnNbdpSWCfZZtinytpcAvA== + dependencies: + regenerator-runtime "^0.14.0" + "@babel/template@^7.18.10", "@babel/template@^7.20.7": version "7.20.7" resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.20.7.tgz#a15090c2839a83b02aa996c0b4994005841fd5a8" @@ -255,7 +284,7 @@ "@jridgewell/set-array" "^1.0.0" "@jridgewell/sourcemap-codec" "^1.4.10" -"@jridgewell/gen-mapping@^0.3.0", "@jridgewell/gen-mapping@^0.3.2": +"@jridgewell/gen-mapping@^0.3.2": version "0.3.2" resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz#c1aedc61e853f2bb9f5dfe6d4442d3b565b253b9" integrity sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A== @@ -274,19 +303,16 @@ resolved "https://registry.yarnpkg.com/@jridgewell/set-array/-/set-array-1.1.2.tgz#7c6cf998d6d20b914c0a55a91ae928ff25965e72" integrity sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw== -"@jridgewell/source-map@^0.3.2": - version "0.3.2" - resolved "https://registry.yarnpkg.com/@jridgewell/source-map/-/source-map-0.3.2.tgz#f45351aaed4527a298512ec72f81040c998580fb" - integrity sha512-m7O9o2uR8k2ObDysZYzdfhb08VuEml5oWGiosa1VdaPZ/A6QyPkAJuwN0Q1lhULOf6B7MtQmHENS743hWtCrgw== - dependencies: - "@jridgewell/gen-mapping" "^0.3.0" - "@jridgewell/trace-mapping" "^0.3.9" - "@jridgewell/sourcemap-codec@^1.4.10", "@jridgewell/sourcemap-codec@^1.4.13": version "1.4.14" resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz#add4c98d341472a289190b424efbdb096991bb24" integrity sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw== +"@jridgewell/sourcemap-codec@^1.4.15": + version "1.4.15" + resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz#d7c6e6755c78567a951e04ab52ef0fd26de59f32" + integrity sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg== + "@jridgewell/trace-mapping@0.3.9", "@jridgewell/trace-mapping@^0.3.9": version "0.3.9" resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz#6534fd5933a53ba7cbf3a17615e273a0d1273ff9" @@ -316,44 +342,45 @@ "@nodelib/fs.scandir" "2.1.5" fastq "^1.6.0" -"@rollup/plugin-alias@^3.1.4": - version "3.1.9" - resolved "https://registry.yarnpkg.com/@rollup/plugin-alias/-/plugin-alias-3.1.9.tgz#a5d267548fe48441f34be8323fb64d1d4a1b3fdf" - integrity sha512-QI5fsEvm9bDzt32k39wpOwZhVzRcL5ydcffUHMyLVaVaLeC70I8TJZ17F1z1eMoLu4E/UOcH9BWVkKpIKdrfiw== +"@rollup/plugin-commonjs@^25.0.4": + version "25.0.4" + resolved "https://registry.yarnpkg.com/@rollup/plugin-commonjs/-/plugin-commonjs-25.0.4.tgz#a7547a0c4ec3fa79818eb313e1de0023e548f4e6" + integrity sha512-L92Vz9WUZXDnlQQl3EwbypJR4+DM2EbsO+/KOcEkP4Mc6Ct453EeDB2uH9lgRwj4w5yflgNpq9pHOiY8aoUXBQ== dependencies: - slash "^3.0.0" + "@rollup/pluginutils" "^5.0.1" + commondir "^1.0.1" + estree-walker "^2.0.2" + glob "^8.0.3" + is-reference "1.2.1" + magic-string "^0.27.0" -"@rollup/plugin-commonjs@^22.0.0": - version "22.0.2" - resolved "https://registry.yarnpkg.com/@rollup/plugin-commonjs/-/plugin-commonjs-22.0.2.tgz#ee8ca8415cda30d383b4096aad5222435b4b69b6" - integrity sha512-//NdP6iIwPbMTcazYsiBMbJW7gfmpHom33u1beiIoHDEM0Q9clvtQB1T0efvMqHeKsGohiHo97BCPCkBXdscwg== +"@rollup/plugin-inject@^5.0.1": + version "5.0.3" + resolved "https://registry.yarnpkg.com/@rollup/plugin-inject/-/plugin-inject-5.0.3.tgz#0783711efd93a9547d52971db73b2fb6140a67b1" + integrity sha512-411QlbL+z2yXpRWFXSmw/teQRMkXcAAC8aYTemc15gwJRpvEVDQwoe+N/HTFD8RFG8+88Bme9DK2V9CVm7hJdA== dependencies: - "@rollup/pluginutils" "^3.1.0" - commondir "^1.0.1" - estree-walker "^2.0.1" - glob "^7.1.6" - is-reference "^1.2.1" - magic-string "^0.25.7" - resolve "^1.17.0" + "@rollup/pluginutils" "^5.0.1" + estree-walker "^2.0.2" + magic-string "^0.27.0" -"@rollup/plugin-json@^4.1.0": - version "4.1.0" - resolved "https://registry.yarnpkg.com/@rollup/plugin-json/-/plugin-json-4.1.0.tgz#54e09867ae6963c593844d8bd7a9c718294496f3" - integrity sha512-yfLbTdNS6amI/2OpmbiBoW12vngr5NW2jCJVZSBEz+H5KfUJZ2M7sDjk0U6GOOdCWFVScShte29o9NezJ53TPw== +"@rollup/plugin-json@^6.0.0": + version "6.0.0" + resolved "https://registry.yarnpkg.com/@rollup/plugin-json/-/plugin-json-6.0.0.tgz#199fea6670fd4dfb1f4932250569b14719db234a" + integrity sha512-i/4C5Jrdr1XUarRhVu27EEwjt4GObltD7c+MkCIpO2QIbojw8MUs+CCTqOphQi3Qtg1FLmYt+l+6YeoIf51J7w== dependencies: - "@rollup/pluginutils" "^3.0.8" + "@rollup/pluginutils" "^5.0.1" -"@rollup/plugin-node-resolve@^14.1.0": - version "14.1.0" - resolved "https://registry.yarnpkg.com/@rollup/plugin-node-resolve/-/plugin-node-resolve-14.1.0.tgz#f2fa475405cd7fed6420bf438fe393f988a9bc96" - integrity sha512-5G2niJroNCz/1zqwXtk0t9+twOSDlG00k1Wfd7bkbbXmwg8H8dvgHdIWAun53Ps/rckfvOC7scDBjuGFg5OaWw== +"@rollup/plugin-node-resolve@^15.2.1": + version "15.2.1" + resolved "https://registry.yarnpkg.com/@rollup/plugin-node-resolve/-/plugin-node-resolve-15.2.1.tgz#a15b14fb7969229e26a30feff2816d39eff503f0" + integrity sha512-nsbUg588+GDSu8/NS8T4UAshO6xeaOfINNuXeVHcKV02LJtoRaM1SiOacClw4kws1SFiNhdLGxlbMY9ga/zs/w== dependencies: - "@rollup/pluginutils" "^3.1.0" - "@types/resolve" "1.17.1" + "@rollup/pluginutils" "^5.0.1" + "@types/resolve" "1.20.2" deepmerge "^4.2.2" - is-builtin-module "^3.1.0" + is-builtin-module "^3.2.1" is-module "^1.0.0" - resolve "^1.19.0" + resolve "^1.22.1" "@rollup/plugin-replace@^5.0.1": version "5.0.2" @@ -363,28 +390,14 @@ "@rollup/pluginutils" "^5.0.1" magic-string "^0.27.0" -"@rollup/plugin-typescript@^10.0.1": - version "10.0.1" - resolved "https://registry.yarnpkg.com/@rollup/plugin-typescript/-/plugin-typescript-10.0.1.tgz#270b515b116ea28320e6bb62451c4767d49072d6" - integrity sha512-wBykxRLlX7EzL8BmUqMqk5zpx2onnmRMSw/l9M1sVfkJvdwfxogZQVNUM9gVMJbjRLDR5H6U0OMOrlDGmIV45A== +"@rollup/plugin-typescript@^11.1.3": + version "11.1.3" + resolved "https://registry.yarnpkg.com/@rollup/plugin-typescript/-/plugin-typescript-11.1.3.tgz#8172858a1e5f4c181aebc61f8920002fd5e04b91" + integrity sha512-8o6cNgN44kQBcpsUJTbTXMTtb87oR1O0zgP3Dxm71hrNgparap3VujgofEilTYJo+ivf2ke6uy3/E5QEaiRlDA== dependencies: "@rollup/pluginutils" "^5.0.1" resolve "^1.22.1" -"@rollup/plugin-virtual@^2.0.3": - version "2.1.0" - resolved "https://registry.yarnpkg.com/@rollup/plugin-virtual/-/plugin-virtual-2.1.0.tgz#a77bfd0dff74f0203401c75287ff4d1a1cfbc816" - integrity sha512-CPPAtlKT53HFqC8jFHb/V5WErpU8Hrq2TyCR0A7kPQMlF2wNUf0o1xuAc+Qxj8NCZM0Z3Yvl+FbUXfJjVWqDwA== - -"@rollup/pluginutils@^3.0.8", "@rollup/pluginutils@^3.1.0": - version "3.1.0" - resolved "https://registry.yarnpkg.com/@rollup/pluginutils/-/pluginutils-3.1.0.tgz#706b4524ee6dc8b103b3c995533e5ad680c02b9b" - integrity sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg== - dependencies: - "@types/estree" "0.0.39" - estree-walker "^1.0.1" - picomatch "^2.2.2" - "@rollup/pluginutils@^5.0.1": version "5.0.2" resolved "https://registry.yarnpkg.com/@rollup/pluginutils/-/pluginutils-5.0.2.tgz#012b8f53c71e4f6f9cb317e311df1404f56e7a33" @@ -394,6 +407,25 @@ estree-walker "^2.0.2" picomatch "^2.3.1" +"@scatterjs/core@^2.7.48", "@scatterjs/core@^2.7.54": + version "2.7.54" + resolved "https://registry.yarnpkg.com/@scatterjs/core/-/core-2.7.54.tgz#c82f539b6f77f96be93817c3e1f6d0799cf53193" + integrity sha512-BtV44dvEPajDmDfn+jpGE9kHIlPyz70ttd96+LIokdRUR+lf5E33rMpJGH+OEFwxGDhY8tDS6SYlyIU8ohCFHw== + dependencies: + create-hash "^1.2.0" + device-uuid "^1.0.4" + es6-promise "^4.2.4" + get-random-values "^1.2.0" + isomorphic-ws "^4.0.1" + ws "^6.1.0" + +"@scatterjs/eosjs2@^1.5.30": + version "1.5.36" + resolved "https://registry.yarnpkg.com/@scatterjs/eosjs2/-/eosjs2-1.5.36.tgz#457ed69f181a6a19eb053352662bfb25726d0f74" + integrity sha512-osx/shuwiB59ql0XTVCZ/D9T3AZf+RA0lRnUa0Gya9M21GGBt6YHdxO2jxkmJHjEpfxE7FIwV3dRDj9T1swd2g== + dependencies: + "@scatterjs/core" "^2.7.54" + "@tsconfig/node10@^1.0.7": version "1.0.9" resolved "https://registry.yarnpkg.com/@tsconfig/node10/-/node10-1.0.9.tgz#df4907fc07a886922637b15e02d4cebc4c0021b2" @@ -424,11 +456,6 @@ resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.0.tgz#5fb2e536c1ae9bf35366eed879e827fa59ca41c2" integrity sha512-WulqXMDUTYAXCjZnk6JtIHPigp55cVtDgDrO2gHRwhyJto21+1zbVCtOYB2L1F9w4qCQ0rOGWBnBe0FNTiEJIQ== -"@types/estree@0.0.39": - version "0.0.39" - resolved "https://registry.yarnpkg.com/@types/estree/-/estree-0.0.39.tgz#e177e699ee1b8c22d23174caaa7422644389509f" - integrity sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw== - "@types/json-schema@^7.0.9": version "7.0.11" resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.11.tgz#d421b6c527a3037f7c84433fd2c4229e016863d3" @@ -439,17 +466,15 @@ resolved "https://registry.yarnpkg.com/@types/mocha/-/mocha-9.1.1.tgz#e7c4f1001eefa4b8afbd1eee27a237fee3bf29c4" integrity sha512-Z61JK7DKDtdKTWwLeElSEBcWGRLY8g95ic5FoQqI9CMx0ns/Ghep3B4DfcEimiKMvtamNVULVNKEsiwV3aQmXw== -"@types/node@*", "@types/node@^18.7.18": +"@types/node@^18.7.18": version "18.11.18" resolved "https://registry.yarnpkg.com/@types/node/-/node-18.11.18.tgz#8dfb97f0da23c2293e554c5a50d61ef134d7697f" integrity sha512-DHQpWGjyQKSHj3ebjFI/wRKcqQcdR+MoFBygntYOZytCqNfkd2ZC4ARDJ2DQqhjH5p85Nnd3jhUJIXrszFX/JA== -"@types/resolve@1.17.1": - version "1.17.1" - resolved "https://registry.yarnpkg.com/@types/resolve/-/resolve-1.17.1.tgz#3afd6ad8967c77e4376c598a82ddd58f46ec45d6" - integrity sha512-yy7HuzQhj0dhGpD8RLXSZWEkLsV9ibvxvi6EiJ3bkqLAO1RGo0WbkWQiwpRlSFymTJRz0d3k5LM3kkx8ArDbLw== - dependencies: - "@types/node" "*" +"@types/resolve@1.20.2": + version "1.20.2" + resolved "https://registry.yarnpkg.com/@types/resolve/-/resolve-1.20.2.tgz#97d26e00cd4a0423b4af620abecf3e6f442b7975" + integrity sha512-60BCwRFOZCQhDncwQdxxeOEEkbc5dIMccYLwbxsS4TUNeVECQ/pBJ0j09mrHOl/JJvpRPGwO9SvE4nR2Nb/a4Q== "@types/semver@^7.3.12": version "7.3.13" @@ -568,17 +593,6 @@ dependencies: tslib "^2.1.0" -"@wharfkit/mock-data@^1.0.2": - version "1.0.2" - resolved "https://registry.yarnpkg.com/@wharfkit/mock-data/-/mock-data-1.0.2.tgz#81d6327c76032b40e5acf209d507cf6ca2a3ae9f" - integrity sha512-Mbf/rZX2dqj5r+h+6NcRsDfRdHZ5OWEk0oIZ6iarXEBV65jmODoLdZlS906m9ndC1bi1ewCm/276JDimIqtLkQ== - dependencies: - "@wharfkit/antelope" "^0.7.3" - "@wharfkit/session" "^1.0.0" - "@wharfkit/wallet-plugin-privatekey" "^1.0.0" - node-fetch "^2.6.1" - tslib "^2.1.0" - "@wharfkit/session@^1.0.0": version "1.0.0" resolved "https://registry.yarnpkg.com/@wharfkit/session/-/session-1.0.0.tgz#09c60d01a6185ab2e451d34462d84de2d7013220" @@ -599,13 +613,6 @@ "@wharfkit/antelope" "^0.7.3" tslib "^2.0.3" -"@wharfkit/wallet-plugin-privatekey@^1.0.0": - version "1.0.0" - resolved "https://registry.yarnpkg.com/@wharfkit/wallet-plugin-privatekey/-/wallet-plugin-privatekey-1.0.0.tgz#2600cce1117ce9391c8078649e05ceaf93780f1d" - integrity sha512-V+/7T/cwoHM8fDaM3MZ1DFKrX2+NddBkkWJ8BIFfmEZnGR1W8Qr77t+piOP0/6UM2etmuZh98XLwZS33vORQ0A== - dependencies: - tslib "^2.1.0" - "@yarnpkg/lockfile@^1.1.0": version "1.1.0" resolved "https://registry.yarnpkg.com/@yarnpkg/lockfile/-/lockfile-1.1.0.tgz#e77a97fbd345b76d83245edcd17d393b1b41fb31" @@ -621,7 +628,7 @@ acorn-walk@^8.1.1: resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-8.2.0.tgz#741210f2e2426454508853a2f44d0ab83b7f69c1" integrity sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA== -acorn@^8.4.1, acorn@^8.5.0, acorn@^8.8.0: +acorn@^8.4.1, acorn@^8.8.0: version "8.8.2" resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.8.2.tgz#1b2f25db02af965399b9776b0c2c391276d37c4a" integrity sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw== @@ -727,6 +734,11 @@ assertion-error@^1.1.0: resolved "https://registry.yarnpkg.com/assertion-error/-/assertion-error-1.1.0.tgz#e60b6b0e8f301bd97e5375215bda406c85118c0b" integrity sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw== +async-limiter@~1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/async-limiter/-/async-limiter-1.0.1.tgz#dd379e94f0db8310b08291f9d64c3209766617fd" + integrity sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ== + async@^2.6.1: version "2.6.4" resolved "https://registry.yarnpkg.com/async/-/async-2.6.4.tgz#706b7ff6084664cd7eae713f6f965433b5504221" @@ -734,11 +746,31 @@ async@^2.6.1: dependencies: lodash "^4.17.14" +babel-runtime@6.26.0: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-runtime/-/babel-runtime-6.26.0.tgz#965c7058668e82b55d7bfe04ff2337bc8b5647fe" + integrity sha512-ITKNuq2wKlW1fJg9sSW52eepoYgZBggvOAHC0u/CYu/qxQ9EVzThCgR69BnSXLHjy2f7SY5zaQ4yt7H9ZVxY2g== + dependencies: + core-js "^2.4.0" + regenerator-runtime "^0.11.0" + balanced-match@^1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== +base-x@^3.0.2: + version "3.0.9" + resolved "https://registry.yarnpkg.com/base-x/-/base-x-3.0.9.tgz#6349aaabb58526332de9f60995e548a53fe21320" + integrity sha512-H7JU6iBHTal1gp56aKoaa//YUxEaAOUiydvrV/pILqIHXTtqxSkATOnDA2u+jZ/61sD+L/412+7kzXRtWukhpQ== + dependencies: + safe-buffer "^5.0.1" + +bigi@^1.1.0, bigi@^1.4.2: + version "1.4.2" + resolved "https://registry.yarnpkg.com/bigi/-/bigi-1.4.2.tgz#9c665a95f88b8b08fc05cfd731f561859d725825" + integrity sha512-ddkU+dFIuEIW8lE7ZwdIAf2UPoM90eaprg5m3YXAVVTmKlqV/9BX4A2M8BOK2yOq6/VgZFVhK6QAxJebhlbhzw== + binary-extensions@^2.0.0: version "2.2.0" resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.2.0.tgz#75f502eeaf9ffde42fc98829645be4ea76bd9e2d" @@ -781,6 +813,18 @@ browser-stdout@1.3.1: resolved "https://registry.yarnpkg.com/browser-stdout/-/browser-stdout-1.3.1.tgz#baa559ee14ced73452229bad7326467c61fabd60" integrity sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw== +browserify-aes@^1.0.6: + version "1.2.0" + resolved "https://registry.yarnpkg.com/browserify-aes/-/browserify-aes-1.2.0.tgz#326734642f403dabc3003209853bb70ad428ef48" + integrity sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA== + dependencies: + buffer-xor "^1.0.3" + cipher-base "^1.0.0" + create-hash "^1.1.0" + evp_bytestokey "^1.0.3" + inherits "^2.0.1" + safe-buffer "^5.0.1" + browserslist@^4.21.3: version "4.21.5" resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.21.5.tgz#75c5dae60063ee641f977e00edd3cfb2fb7af6a7" @@ -791,16 +835,30 @@ browserslist@^4.21.3: node-releases "^2.0.8" update-browserslist-db "^1.0.10" -buffer-from@^1.0.0: - version "1.1.2" - resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.2.tgz#2b146a6fd72e80b4f55d255f35ed59a3a9a41bd5" - integrity sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ== +bs58@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/bs58/-/bs58-4.0.1.tgz#be161e76c354f6f788ae4071f63f34e8c4f0a42a" + integrity sha512-Ok3Wdf5vOIlBrgCvTq96gBkJw+JUEzdBgyaza5HLtPm7yTHkjRy8+JzNyHF7BHa0bNWOQIp3m5YF0nnFcOIKLw== + dependencies: + base-x "^3.0.2" + +buffer-xor@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/buffer-xor/-/buffer-xor-1.0.3.tgz#26e61ed1422fb70dd42e6e36729ed51d855fe8d9" + integrity sha512-571s0T7nZWK6vB67HI5dyUF7wXiNcfaPPPTl6zYCNApANjIvYJTg7hlud/+cJpdAhS7dVzqMLmfhfHR3rAcOjQ== builtin-modules@^3.3.0: version "3.3.0" resolved "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-3.3.0.tgz#cae62812b89801e9656336e46223e030386be7b6" integrity sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw== +bytebuffer@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/bytebuffer/-/bytebuffer-5.0.1.tgz#582eea4b1a873b6d020a48d58df85f0bba6cfddd" + integrity sha512-IuzSdmADppkZ6DlpycMkm8l9zeEq16fWtLvunEwFiYciR/BHo4E8/xs5piFquG+Za8OWmMqHF8zuRviz2LHvRQ== + dependencies: + long "~3" + caching-transform@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/caching-transform/-/caching-transform-4.0.0.tgz#00d297a4206d71e2163c39eaffa8157ac0651f0f" @@ -844,7 +902,7 @@ chai@^4.3.4: pathval "^1.1.1" type-detect "^4.0.5" -chalk@^2.0.0: +chalk@^2.0.0, chalk@^2.4.2: version "2.4.2" resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== @@ -881,6 +939,14 @@ chokidar@3.5.3: optionalDependencies: fsevents "~2.3.2" +cipher-base@^1.0.0, cipher-base@^1.0.1, cipher-base@^1.0.3: + version "1.0.4" + resolved "https://registry.yarnpkg.com/cipher-base/-/cipher-base-1.0.4.tgz#8760e4ecc272f4c363532f926d874aae2c1397de" + integrity sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q== + dependencies: + inherits "^2.0.1" + safe-buffer "^5.0.1" + clean-stack@^2.0.0: version "2.2.0" resolved "https://registry.yarnpkg.com/clean-stack/-/clean-stack-2.2.0.tgz#ee8472dbb129e727b31e8a10a427dee9dfe4008b" @@ -928,7 +994,7 @@ color-name@~1.1.4: resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== -commander@^2.18.0, commander@^2.20.0: +commander@^2.18.0: version "2.20.3" resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== @@ -953,6 +1019,34 @@ convert-source-map@^1.7.0: resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.9.0.tgz#7faae62353fb4213366d0ca98358d22e8368b05f" integrity sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A== +core-js@^2.4.0: + version "2.6.12" + resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.6.12.tgz#d9333dfa7b065e347cc5682219d6f690859cc2ec" + integrity sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ== + +create-hash@^1.1.0, create-hash@^1.1.3, create-hash@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/create-hash/-/create-hash-1.2.0.tgz#889078af11a63756bcfb59bd221996be3a9ef196" + integrity sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg== + dependencies: + cipher-base "^1.0.1" + inherits "^2.0.1" + md5.js "^1.3.4" + ripemd160 "^2.0.1" + sha.js "^2.4.0" + +create-hmac@^1.1.6: + version "1.1.7" + resolved "https://registry.yarnpkg.com/create-hmac/-/create-hmac-1.1.7.tgz#69170c78b3ab957147b2b8b04572e47ead2243ff" + integrity sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg== + dependencies: + cipher-base "^1.0.3" + create-hash "^1.1.0" + inherits "^2.0.1" + ripemd160 "^2.0.0" + safe-buffer "^5.0.1" + sha.js "^2.4.8" + create-require@^1.1.0: version "1.1.1" resolved "https://registry.yarnpkg.com/create-require/-/create-require-1.1.1.tgz#c1d7e8f1e5f6cfc9ff65f9cd352d37348756c333" @@ -967,6 +1061,11 @@ cross-spawn@^7.0.0, cross-spawn@^7.0.2, cross-spawn@^7.0.3: shebang-command "^2.0.0" which "^2.0.1" +crypto-js@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/crypto-js/-/crypto-js-4.1.1.tgz#9e485bcf03521041bd85844786b83fb7619736cf" + integrity sha512-o2JlM7ydqd3Qk9CA0L4NL6mTzU2sdx96a+oOfPu8Mkl/PK51vSyoi8/rQ8NknZtk44vq15lmhAj9CIAGwgeWKw== + debug@4.3.4, debug@^4.1.0, debug@^4.1.1, debug@^4.3.2, debug@^4.3.4: version "4.3.4" resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865" @@ -1008,6 +1107,11 @@ default-require-extensions@^3.0.0: dependencies: strip-bom "^4.0.0" +device-uuid@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/device-uuid/-/device-uuid-1.0.4.tgz#f6973e58f19b92a237aeca7b16a395ae7195a883" + integrity sha512-nNbUKlCuXZ1BV4zKFr9z8VxypL1PCNExRoNtRx/mNKFcOEDWUdT3E1B4vw7LBWftBmixkrjQIjpdLov3EmEJjA== + diff@5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/diff/-/diff-5.0.0.tgz#7ed6ad76d859d030787ec35855f5b1daf31d852b" @@ -1032,6 +1136,19 @@ doctrine@^3.0.0: dependencies: esutils "^2.0.2" +dom-walk@^0.1.0: + version "0.1.2" + resolved "https://registry.yarnpkg.com/dom-walk/-/dom-walk-0.1.2.tgz#0c548bef048f4d1f2a97249002236060daa3fd84" + integrity sha512-6QvTW9mrGeIegrFXdtQi9pk7O/nSK6lSdXW2eqUspN5LWD7UTji2Fqw5V2YLjBpHEoU9Xl/eUWNpDeZvoyOv2w== + +ecurve@^1.0.5: + version "1.0.6" + resolved "https://registry.yarnpkg.com/ecurve/-/ecurve-1.0.6.tgz#dfdabbb7149f8d8b78816be5a7d5b83fcf6de797" + integrity sha512-/BzEjNfiSuB7jIWKcS/z8FK9jNjmEWvUV2YZ4RLSmcDtP7Lq0m6FvDuSnJpBlDpGRpfRQeTLGLBI8H+kEv0r+w== + dependencies: + bigi "^1.1.0" + safe-buffer "^5.0.1" + electron-to-chromium@^1.4.284: version "1.4.284" resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.284.tgz#61046d1e4cab3a25238f6bf7413795270f125592" @@ -1060,11 +1177,39 @@ emoji-regex@^8.0.0: resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== +eosjs-ecc@4.0.4: + version "4.0.4" + resolved "https://registry.yarnpkg.com/eosjs-ecc/-/eosjs-ecc-4.0.4.tgz#431450f30a6f73088ff5d7ba1ebdfe967a5ca4ab" + integrity sha512-9wAYefts4TidHOu+eN9nAisZdWpUzlUimZrB63oP7+/s4xRNJEn2Vvep2ICRODpxpidbshM1L7WaSYW9oiV5gA== + dependencies: + bigi "^1.4.2" + browserify-aes "^1.0.6" + bs58 "^4.0.1" + bytebuffer "^5.0.1" + create-hash "^1.1.3" + create-hmac "^1.1.6" + ecurve "^1.0.5" + randombytes "^2.0.5" + +eosjs@20.0.0: + version "20.0.0" + resolved "https://registry.yarnpkg.com/eosjs/-/eosjs-20.0.0.tgz#43940abfe15cd191ce4027d60294036e914613e9" + integrity sha512-Ak9CPtZgCFayUmq43X3Nsn4v67lkLfSzEdTUfMk1XAWA5s4HRn7lBTeTeDCzJ/rggi+dZ170VeJwc5T3gPk4HQ== + dependencies: + babel-runtime "6.26.0" + eosjs-ecc "4.0.4" + text-encoding "0.7.0" + es6-error@^4.0.1: version "4.1.1" resolved "https://registry.yarnpkg.com/es6-error/-/es6-error-4.1.1.tgz#9e3af407459deed47e9a91f9b885a84eb05c561d" integrity sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg== +es6-promise@^4.2.4: + version "4.2.8" + resolved "https://registry.yarnpkg.com/es6-promise/-/es6-promise-4.2.8.tgz#4eb21594c972bc40553d276e510539143db53e0a" + integrity sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w== + escalade@^3.1.1: version "3.1.1" resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40" @@ -1208,12 +1353,7 @@ estraverse@^5.1.0, estraverse@^5.2.0: resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.3.0.tgz#2eea5290702f26ab8fe5370370ff86c965d21123" integrity sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA== -estree-walker@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-1.0.1.tgz#31bc5d612c96b704106b477e6dd5d8aa138cb700" - integrity sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg== - -estree-walker@^2.0.1, estree-walker@^2.0.2: +estree-walker@^2.0.2: version "2.0.2" resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-2.0.2.tgz#52f010178c2a4c117a7757cfe942adb7d2da4cac" integrity sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w== @@ -1223,6 +1363,14 @@ esutils@^2.0.2: resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== +evp_bytestokey@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz#7fcbdb198dc71959432efe13842684e0525acb02" + integrity sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA== + dependencies: + md5.js "^1.3.4" + safe-buffer "^5.1.1" + fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3: version "3.1.3" resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" @@ -1389,6 +1537,13 @@ get-package-type@^0.1.0: resolved "https://registry.yarnpkg.com/get-package-type/-/get-package-type-0.1.0.tgz#8de2d803cff44df3bc6c456e6668b36c3926e11a" integrity sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q== +get-random-values@^1.2.0: + version "1.2.2" + resolved "https://registry.yarnpkg.com/get-random-values/-/get-random-values-1.2.2.tgz#f1d944d0025433d53a2bd9941b9e975d98a2f7ff" + integrity sha512-lMyPjQyl0cNNdDf2oR+IQ/fM3itDvpoHy45Ymo2r0L1EjazeSl13SfbKZs7KtZ/3MDCeueiaJiuOEfKqRTsSgA== + dependencies: + global "^4.4.0" + gh-pages@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/gh-pages/-/gh-pages-4.0.0.tgz#bd7447bab7eef008f677ac8cc4f6049ab978f4a6" @@ -1428,6 +1583,25 @@ glob@7.2.0, glob@^7.0.3, glob@^7.1.3, glob@^7.1.4, glob@^7.1.6: once "^1.3.0" path-is-absolute "^1.0.0" +glob@^8.0.3: + version "8.1.0" + resolved "https://registry.yarnpkg.com/glob/-/glob-8.1.0.tgz#d388f656593ef708ee3e34640fdfb99a9fd1c33e" + integrity sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ== + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^5.0.1" + once "^1.3.0" + +global@^4.4.0: + version "4.4.0" + resolved "https://registry.yarnpkg.com/global/-/global-4.4.0.tgz#3e7b105179006a323ed71aafca3e9c57a5cc6406" + integrity sha512-wv/LAoHdRE3BeTGz53FAamhGlPLhlssK45usmGFThIi4XqnBmjKQ16u+RNbP7WvigRZDxUsM0J3gcQ5yicaL0w== + dependencies: + min-document "^2.19.0" + process "^0.11.10" + globals@^11.1.0: version "11.12.0" resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e" @@ -1490,6 +1664,15 @@ has@^1.0.3: dependencies: function-bind "^1.1.1" +hash-base@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/hash-base/-/hash-base-3.1.0.tgz#55c381d9e06e1d2997a883b4a3fddfe7f0d3af33" + integrity sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA== + dependencies: + inherits "^2.0.4" + readable-stream "^3.6.0" + safe-buffer "^5.2.0" + hash.js@^1.0.0, hash.js@^1.0.3: version "1.1.7" resolved "https://registry.yarnpkg.com/hash.js/-/hash.js-1.1.7.tgz#0babca538e8d4ee4a0f8988d68866537a003cf42" @@ -1556,7 +1739,7 @@ inflight@^1.0.4: once "^1.3.0" wrappy "1" -inherits@2, inherits@^2.0.3, inherits@^2.0.4: +inherits@2, inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4: version "2.0.4" resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== @@ -1568,7 +1751,7 @@ is-binary-path@~2.1.0: dependencies: binary-extensions "^2.0.0" -is-builtin-module@^3.1.0: +is-builtin-module@^3.2.1: version "3.2.1" resolved "https://registry.yarnpkg.com/is-builtin-module/-/is-builtin-module-3.2.1.tgz#f03271717d8654cfcaf07ab0463faa3571581169" integrity sha512-BSLE3HnV2syZ0FK0iMA/yUGplUeMmNz4AW5fnTunbCIqZi4vG3WjJT9FHMy5D69xmAYBHXQhJdALdpwVxV501A== @@ -1619,7 +1802,7 @@ is-plain-obj@^2.1.0: resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-2.1.0.tgz#45e42e37fccf1f40da8e5f76ee21515840c09287" integrity sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA== -is-reference@^1.2.1: +is-reference@1.2.1: version "1.2.1" resolved "https://registry.yarnpkg.com/is-reference/-/is-reference-1.2.1.tgz#8b2dac0b371f4bc994fdeaba9eb542d03002d0b7" integrity sha512-U82MsXXiFIrjCK4otLT+o2NA2Cd2g5MLoOVXUZjIOhLurrRxpEXzI8O0KZHr3IjLvlAH1kTPYSuqer5T9ZVBKQ== @@ -1651,6 +1834,11 @@ isexe@^2.0.0: resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" integrity sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw== +isomorphic-ws@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/isomorphic-ws/-/isomorphic-ws-4.0.1.tgz#55fd4cd6c5e6491e76dc125938dd863f5cd4f2dc" + integrity sha512-BhBvN2MBpWTaSHdWRb/bwdZJ1WaehQ2L1KngkCkfLUGF0mAWAT1sQUQacEmQ0jXkFw/czDXPNQSL5u2/Krsz1w== + istanbul-lib-coverage@^3.0.0, istanbul-lib-coverage@^3.2.0: version "3.2.0" resolved "https://registry.yarnpkg.com/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz#189e7909d0a39fa5a3dfad5b03f71947770191d3" @@ -1711,15 +1899,6 @@ istanbul-reports@^3.0.2: html-escaper "^2.0.0" istanbul-lib-report "^3.0.0" -jest-worker@^26.2.1: - version "26.6.2" - resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-26.6.2.tgz#7f72cbc4d643c365e27b9fd775f9d0eaa9c7a8ed" - integrity sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ== - dependencies: - "@types/node" "*" - merge-stream "^2.0.0" - supports-color "^7.0.0" - js-sdsl@^4.1.4: version "4.3.0" resolved "https://registry.yarnpkg.com/js-sdsl/-/js-sdsl-4.3.0.tgz#aeefe32a451f7af88425b11fdb5f58c90ae1d711" @@ -1822,6 +2001,11 @@ log-symbols@4.1.0: chalk "^4.1.0" is-unicode-supported "^0.1.0" +long@~3: + version "3.2.0" + resolved "https://registry.yarnpkg.com/long/-/long-3.2.0.tgz#d821b7138ca1cb581c172990ef14db200b5c474b" + integrity sha512-ZYvPPOMqUwPoDsbJaR10iQJYnMuZhRTvHYl62ErLIEX7RgFlziSBUUvrt3OVfc47QlHHpzPZYP17g3Fv7oeJkg== + loupe@^2.3.1: version "2.3.6" resolved "https://registry.yarnpkg.com/loupe/-/loupe-2.3.6.tgz#76e4af498103c532d1ecc9be102036a21f787b53" @@ -1848,20 +2032,6 @@ lunr@^2.3.9: resolved "https://registry.yarnpkg.com/lunr/-/lunr-2.3.9.tgz#18b123142832337dd6e964df1a5a7707b25d35e1" integrity sha512-zTU3DaZaF3Rt9rhN3uBMGQD3dD2/vFQqnvZCDv4dl5iOzq2IZQqTxu90r4E5J+nP70J3ilqVCrbho2eWaeW8Ow== -magic-string@^0.25.7: - version "0.25.9" - resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.25.9.tgz#de7f9faf91ef8a1c91d02c2e5314c8277dbcdd1c" - integrity sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ== - dependencies: - sourcemap-codec "^1.4.8" - -magic-string@^0.26.6: - version "0.26.7" - resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.26.7.tgz#caf7daf61b34e9982f8228c4527474dac8981d6f" - integrity sha512-hX9XH3ziStPoPhJxLq1syWuZMxbDvGNbVchfrdCtanC7D13888bMFow61x8axrx+GfHLtVeAx2kxL7tTGRl+Ow== - dependencies: - sourcemap-codec "^1.4.8" - magic-string@^0.27.0: version "0.27.0" resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.27.0.tgz#e4a3413b4bab6d98d2becffd48b4a257effdbbf3" @@ -1869,6 +2039,13 @@ magic-string@^0.27.0: dependencies: "@jridgewell/sourcemap-codec" "^1.4.13" +magic-string@^0.30.2: + version "0.30.3" + resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.30.3.tgz#403755dfd9d6b398dfa40635d52e96c5ac095b85" + integrity sha512-B7xGbll2fG/VjP+SWg4sX3JynwIU0mjoTc6MPpKNuIvftk6u6vqhDnk1R80b8C2GBR6ywqy+1DcKBrevBg+bmw== + dependencies: + "@jridgewell/sourcemap-codec" "^1.4.15" + make-dir@^3.0.0, make-dir@^3.0.2: version "3.1.0" resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-3.1.0.tgz#415e967046b3a7f1d185277d84aa58203726a13f" @@ -1886,10 +2063,14 @@ marked@^4.2.5: resolved "https://registry.yarnpkg.com/marked/-/marked-4.2.12.tgz#d69a64e21d71b06250da995dcd065c11083bebb5" integrity sha512-yr8hSKa3Fv4D3jdZmtMMPghgVt6TWbk86WQaWhDloQjRSQhMMYCAro7jP7VDJrjjdV8pxVxMssXS8B8Y5DZ5aw== -merge-stream@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60" - integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w== +md5.js@^1.3.4: + version "1.3.5" + resolved "https://registry.yarnpkg.com/md5.js/-/md5.js-1.3.5.tgz#b5d07b8e3216e3e27cd728d72f70d1e6a342005f" + integrity sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg== + dependencies: + hash-base "^3.0.0" + inherits "^2.0.1" + safe-buffer "^5.1.2" merge2@^1.3.0, merge2@^1.4.1: version "1.4.1" @@ -1904,6 +2085,13 @@ micromatch@^4.0.4: braces "^3.0.2" picomatch "^2.3.1" +min-document@^2.19.0: + version "2.19.0" + resolved "https://registry.yarnpkg.com/min-document/-/min-document-2.19.0.tgz#7bd282e3f5842ed295bb748cdd9f1ffa2c824685" + integrity sha512-9Wy1B3m3f66bPPmU5hdA4DR4PB2OfDU/+GS3yAB7IQozE3tqXaVv2zOjgla7MEGSRv95+ILmOuvhLkOK6wJtCQ== + dependencies: + dom-walk "^0.1.0" + minimalistic-assert@^1.0.0, minimalistic-assert@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz#2e194de044626d4a10e7f7fbc00ce73e83e4d5c7" @@ -1928,7 +2116,7 @@ minimatch@^3.0.4, minimatch@^3.0.5, minimatch@^3.1.2: dependencies: brace-expansion "^1.1.7" -minimatch@^5.1.2: +minimatch@^5.0.1, minimatch@^5.1.2: version "5.1.6" resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-5.1.6.tgz#1cfcb8cf5522ea69952cd2af95ae09477f122a96" integrity sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g== @@ -2170,7 +2358,7 @@ picocolors@^1.0.0: resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.0.tgz#cb5bdc74ff3f51892236eaf79d68bc44564ab81c" integrity sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ== -picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.2.2, picomatch@^2.3.1: +picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.3.1: version "2.3.1" resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42" integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== @@ -2223,6 +2411,11 @@ process-on-spawn@^1.0.0: dependencies: fromentries "^1.2.0" +process@^0.11.10: + version "0.11.10" + resolved "https://registry.yarnpkg.com/process/-/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182" + integrity sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A== + punycode@^2.1.0: version "2.3.0" resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.3.0.tgz#f67fa67c94da8f4d0cfff981aee4118064199b8f" @@ -2233,13 +2426,22 @@ queue-microtask@^1.2.2: resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243" integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A== -randombytes@^2.1.0: +randombytes@^2.0.5, randombytes@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a" integrity sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ== dependencies: safe-buffer "^5.1.0" +readable-stream@^3.6.0: + version "3.6.2" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.2.tgz#56a9b36ea965c00c5a93ef31eb111a0f11056967" + integrity sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA== + dependencies: + inherits "^2.0.3" + string_decoder "^1.1.1" + util-deprecate "^1.0.1" + readdirp@~3.6.0: version "3.6.0" resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.6.0.tgz#74a370bd857116e245b29cc97340cd431a02a6c7" @@ -2247,6 +2449,16 @@ readdirp@~3.6.0: dependencies: picomatch "^2.2.1" +regenerator-runtime@^0.11.0: + version "0.11.1" + resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz#be05ad7f9bf7d22e056f9726cee5017fbf19e2e9" + integrity sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg== + +regenerator-runtime@^0.14.0: + version "0.14.0" + resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.14.0.tgz#5e19d68eb12d486f797e15a3c6a918f7cec5eb45" + integrity sha512-srw17NI0TUWHuGa5CFGGmhfNIeja30WMBfbslPNhf6JrqQlLN5gcrvig1oqPxiVaXb0oW0XRKtH6Nngs5lKCIA== + regexpp@^3.2.0: version "3.2.0" resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-3.2.0.tgz#0425a2768d8f23bad70ca4b90461fa2f1213e1b2" @@ -2279,7 +2491,7 @@ resolve-from@^5.0.0: resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-5.0.0.tgz#c35225843df8f776df21c57557bc087e9dfdfc69" integrity sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw== -resolve@^1.17.0, resolve@^1.19.0, resolve@^1.22.1: +resolve@^1.22.1: version "1.22.1" resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.1.tgz#27cb2ebb53f91abb49470a928bba7558066ac177" integrity sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw== @@ -2300,29 +2512,34 @@ rimraf@^3.0.0, rimraf@^3.0.2: dependencies: glob "^7.1.3" -rollup-plugin-dts@^4.2.1: - version "4.2.3" - resolved "https://registry.yarnpkg.com/rollup-plugin-dts/-/rollup-plugin-dts-4.2.3.tgz#04c3615df1ffab4228aa9d540697eaca61e01f47" - integrity sha512-jlcpItqM2efqfIiKzDB/IKOS9E9fDvbkJSGw5GtK/PqPGS9eC3R3JKyw2VvpTktZA+TNgJRMu1NTv244aTUzzQ== +ripemd160@^2.0.0, ripemd160@^2.0.1: + version "2.0.2" + resolved "https://registry.yarnpkg.com/ripemd160/-/ripemd160-2.0.2.tgz#a1c1a6f624751577ba5d07914cbc92850585890c" + integrity sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA== + dependencies: + hash-base "^3.0.0" + inherits "^2.0.1" + +rollup-plugin-dts@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/rollup-plugin-dts/-/rollup-plugin-dts-6.0.0.tgz#c916072c20261c079344351bb5184f41e486a7b6" + integrity sha512-A996xSZDAqnx/KfFttzC8mDEuyMjsRpiLCrlGc8effhK8KhE3AG0g1woQiITgFc5HSE8HWU7ccR9CiQ3vXgUlQ== dependencies: - magic-string "^0.26.6" + magic-string "^0.30.2" optionalDependencies: - "@babel/code-frame" "^7.18.6" + "@babel/code-frame" "^7.22.10" -rollup-plugin-terser@^7.0.2: - version "7.0.2" - resolved "https://registry.yarnpkg.com/rollup-plugin-terser/-/rollup-plugin-terser-7.0.2.tgz#e8fbba4869981b2dc35ae7e8a502d5c6c04d324d" - integrity sha512-w3iIaU4OxcF52UUXiZNsNeuXIMDvFrr+ZXK6bFZ0Q60qyVfq4uLptoS4bbq3paG3x216eQllFZX7zt6TIImguQ== +rollup-plugin-polyfill-node@^0.12.0: + version "0.12.0" + resolved "https://registry.yarnpkg.com/rollup-plugin-polyfill-node/-/rollup-plugin-polyfill-node-0.12.0.tgz#33d421ddb7fcb69c234461e508ca6d2db6193f1d" + integrity sha512-PWEVfDxLEKt8JX1nZ0NkUAgXpkZMTb85rO/Ru9AQ69wYW8VUCfDgP4CGRXXWYni5wDF0vIeR1UoF3Jmw/Lt3Ug== dependencies: - "@babel/code-frame" "^7.10.4" - jest-worker "^26.2.1" - serialize-javascript "^4.0.0" - terser "^5.0.0" + "@rollup/plugin-inject" "^5.0.1" -rollup@^2.70.2: - version "2.79.1" - resolved "https://registry.yarnpkg.com/rollup/-/rollup-2.79.1.tgz#bedee8faef7c9f93a2647ac0108748f497f081c7" - integrity sha512-uKxbd0IhMZOhjAiD5oAFp7BqvkA4Dv47qpOCtaNvng4HBwdbWtdOh8f5nZNuk2rp51PMGk3bzfWu5oayNEuYnw== +rollup@^3.28.1: + version "3.28.1" + resolved "https://registry.yarnpkg.com/rollup/-/rollup-3.28.1.tgz#fb44aa6d5e65c7e13fd5bcfff266d0c4ea9ba433" + integrity sha512-R9OMQmIHJm9znrU3m3cpE8uhN0fGdXiawME7aZIpQqvpS/85+Vt1Hq1/yVIcYfOmaQiHjvXkQAoJukvLpau6Yw== optionalDependencies: fsevents "~2.3.2" @@ -2333,7 +2550,7 @@ run-parallel@^1.1.9: dependencies: queue-microtask "^1.2.2" -safe-buffer@^5.1.0: +safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@^5.1.2, safe-buffer@^5.2.0, safe-buffer@~5.2.0: version "5.2.1" resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== @@ -2357,18 +2574,19 @@ serialize-javascript@6.0.0: dependencies: randombytes "^2.1.0" -serialize-javascript@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-4.0.0.tgz#b525e1238489a5ecfc42afacc3fe99e666f4b1aa" - integrity sha512-GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw== - dependencies: - randombytes "^2.1.0" - set-blocking@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" integrity sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw== +sha.js@^2.4.0, sha.js@^2.4.8: + version "2.4.11" + resolved "https://registry.yarnpkg.com/sha.js/-/sha.js-2.4.11.tgz#37a5cf0b81ecbc6943de109ba2960d1b26584ae7" + integrity sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ== + dependencies: + inherits "^2.0.1" + safe-buffer "^5.0.1" + shebang-command@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea" @@ -2400,24 +2618,11 @@ slash@^3.0.0: resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634" integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q== -source-map-support@~0.5.20: - version "0.5.21" - resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.21.tgz#04fe7c7f9e1ed2d662233c28cb2b35b9f63f6e4f" - integrity sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w== - dependencies: - buffer-from "^1.0.0" - source-map "^0.6.0" - -source-map@^0.6.0, source-map@^0.6.1: +source-map@^0.6.1: version "0.6.1" resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== -sourcemap-codec@^1.4.8: - version "1.4.8" - resolved "https://registry.yarnpkg.com/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz#ea804bd94857402e6992d05a38ef1ae35a9ab4c4" - integrity sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA== - spawn-wrap@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/spawn-wrap/-/spawn-wrap-2.0.0.tgz#103685b8b8f9b79771318827aa78650a610d457e" @@ -2444,6 +2649,13 @@ string-width@^4.1.0, string-width@^4.2.0: is-fullwidth-code-point "^3.0.0" strip-ansi "^6.0.1" +string_decoder@^1.1.1: + version "1.3.0" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e" + integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== + dependencies: + safe-buffer "~5.2.0" + strip-ansi@^6.0.0, strip-ansi@^6.0.1: version "6.0.1" resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" @@ -2487,7 +2699,7 @@ supports-color@^5.3.0: dependencies: has-flag "^3.0.0" -supports-color@^7.0.0, supports-color@^7.1.0: +supports-color@^7.1.0: version "7.2.0" resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da" integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== @@ -2499,16 +2711,6 @@ supports-preserve-symlinks-flag@^1.0.0: resolved "https://registry.yarnpkg.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09" integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w== -terser@^5.0.0: - version "5.16.2" - resolved "https://registry.yarnpkg.com/terser/-/terser-5.16.2.tgz#8f495819439e8b5c150e7530fc434a6e70ea18b2" - integrity sha512-JKuM+KvvWVqT7muHVyrwv7FVRPnmHDwF6XwoIxdbF5Witi0vu99RYpxDexpJndXt3jbZZmmWr2/mQa6HvSNdSg== - dependencies: - "@jridgewell/source-map" "^0.3.2" - acorn "^8.5.0" - commander "^2.20.0" - source-map-support "~0.5.20" - test-exclude@^6.0.0: version "6.0.0" resolved "https://registry.yarnpkg.com/test-exclude/-/test-exclude-6.0.0.tgz#04a8698661d805ea6fa293b6cb9e63ac044ef15e" @@ -2518,6 +2720,11 @@ test-exclude@^6.0.0: glob "^7.1.4" minimatch "^3.0.4" +text-encoding@0.7.0: + version "0.7.0" + resolved "https://registry.yarnpkg.com/text-encoding/-/text-encoding-0.7.0.tgz#f895e836e45990624086601798ea98e8f36ee643" + integrity sha512-oJQ3f1hrOnbRLOcwKz0Liq2IcrvDeZRHXhd9RgLrsT+DjWY/nty1Hi7v3dtkaEYbPYe0mUoOfzRrMwfXXwgPUA== + text-table@^0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" @@ -2656,6 +2863,11 @@ uri-js@^4.2.2: dependencies: punycode "^2.1.0" +util-deprecate@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" + integrity sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw== + uuid@^8.3.2: version "8.3.2" resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.2.tgz#80d5b5ced271bb9af6c445f21a1a04c606cefbe2" @@ -2744,6 +2956,13 @@ write-file-atomic@^3.0.0: signal-exit "^3.0.2" typedarray-to-buffer "^3.1.5" +ws@^6.1.0: + version "6.2.2" + resolved "https://registry.yarnpkg.com/ws/-/ws-6.2.2.tgz#dd5cdbd57a9979916097652d78f1cc5faea0c32e" + integrity sha512-zmhltoSR8u1cnDsD43TX59mzoMZsLKqUweyYBAIvTngR3shc0W6aOZylZmq/7hqyVxPdi+5Ud2QInblgyE72fw== + dependencies: + async-limiter "~1.0.0" + y18n@^4.0.0: version "4.0.3" resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.3.tgz#b5f259c82cd6e336921efd7bfd8bf560de9eeedf"