From eb57773de3c2adef1a31da53fd386294f98b17a9 Mon Sep 17 00:00:00 2001 From: Jure Bogunovic Date: Fri, 14 Apr 2023 17:14:31 +0200 Subject: [PATCH 01/31] added loadWrapper to core client interface --- packages/js/core/src/types/CoreClient.ts | 22 ++++++++++++++++++++-- 1 file changed, 20 insertions(+), 2 deletions(-) diff --git a/packages/js/core/src/types/CoreClient.ts b/packages/js/core/src/types/CoreClient.ts index da099a6b0..bd068129c 100644 --- a/packages/js/core/src/types/CoreClient.ts +++ b/packages/js/core/src/types/CoreClient.ts @@ -1,9 +1,12 @@ -import { Invoker, Uri, WrapError, WrapperEnv } from "."; +import { Invoker, Uri, WrapError, Wrapper, WrapperEnv } from "."; import { IUriResolutionContext, IUriResolver } from "../uri-resolution"; import { UriResolverHandler } from "./UriResolver"; import { ReadonlyUriMap } from "./UriMap"; -import { WrapManifest } from "@polywrap/wrap-manifest-types-js"; +import { + DeserializeManifestOptions, + WrapManifest, +} from "@polywrap/wrap-manifest-types-js"; import { Result } from "@polywrap/result"; // $start: CoreClient.ts @@ -117,6 +120,21 @@ export interface CoreClient extends Invoker, UriResolverHandler { uri: Uri, options: GetImplementationsOptions ): Promise>; + + /** + * Resolve a URI to a wrap package or wrapper. + * If the URI resolves to wrap package, load the wrapper. + * + * @param uri - the Uri to resolve + * @param resolutionContext? - a resolution context + * @param options - { noValidate?: boolean } + * @returns A Promise with a Result containing a Wrapper or Error + */ + loadWrapper( + uri: Uri, + resolutionContext?: IUriResolutionContext, + options?: DeserializeManifestOptions + ): Promise>; } // $end From 99a96c7a72495dac1d1d7238066dcb9b815304ad Mon Sep 17 00:00:00 2001 From: Jure Bogunovic Date: Fri, 14 Apr 2023 17:17:20 +0200 Subject: [PATCH 02/31] createSubContext now uses a new map object and does not include history --- .../js/core/src/uri-resolution/UriResolutionContext.ts | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/packages/js/core/src/uri-resolution/UriResolutionContext.ts b/packages/js/core/src/uri-resolution/UriResolutionContext.ts index 98a263f05..0888a4115 100644 --- a/packages/js/core/src/uri-resolution/UriResolutionContext.ts +++ b/packages/js/core/src/uri-resolution/UriResolutionContext.ts @@ -72,6 +72,11 @@ export class UriResolutionContext implements IUriResolutionContext { } createSubContext(): IUriResolutionContext { - return new UriResolutionContext(this._resolvingUriMap, this._history); + const map = new Map(); + // Copy the resolvingUriMap to the new map, so that changes to the new map don't affect the old map + for (const key of this._resolvingUriMap.keys()) { + this._resolvingUriMap.get(key) && map.set(key, true); + } + return new UriResolutionContext(map, []); } } From 9154ae5f4c9793bb54ef6fa59e58d5e8655a180c Mon Sep 17 00:00:00 2001 From: Jure Bogunovic Date: Fri, 14 Apr 2023 22:07:06 +0200 Subject: [PATCH 03/31] wasm wrapper properly passes resolution context on subinvokes - nerfzael --- packages/js/wasm/src/WasmWrapper.ts | 3 + packages/js/wasm/src/imports.ts | 86 +++++++++++++++++++++++++---- 2 files changed, 77 insertions(+), 12 deletions(-) diff --git a/packages/js/wasm/src/WasmWrapper.ts b/packages/js/wasm/src/WasmWrapper.ts index ebcc1a35e..2f3c74382 100644 --- a/packages/js/wasm/src/WasmWrapper.ts +++ b/packages/js/wasm/src/WasmWrapper.ts @@ -20,6 +20,7 @@ import { WrapErrorCode, ErrorSource, typesHandler, + IUriResolutionContext, } from "@polywrap/core-js"; import { Result, ResultErr, ResultOk } from "@polywrap/result"; @@ -43,6 +44,7 @@ export interface State { invokeResult?: Result; getImplementationsResult?: Uint8Array; env: Uint8Array; + resolutionContext?: IUriResolutionContext; } const EMPTY_ENCODED_OBJECT = msgpackEncode({}); @@ -163,6 +165,7 @@ export class WasmWrapper implements Wrapper { : msgpackEncode(args) : EMPTY_ENCODED_OBJECT, env: options.env ? msgpackEncode(options.env) : EMPTY_ENCODED_OBJECT, + resolutionContext: options.resolutionContext, }; const abortWithInvokeAborted = ( diff --git a/packages/js/wasm/src/imports.ts b/packages/js/wasm/src/imports.ts index 6eed941bd..aadd47b51 100644 --- a/packages/js/wasm/src/imports.ts +++ b/packages/js/wasm/src/imports.ts @@ -5,7 +5,16 @@ import { readBytes, readString, writeBytes, writeString } from "./buffer"; import { State } from "./WasmWrapper"; import { msgpackEncode } from "@polywrap/msgpack-js"; -import { CoreClient, Uri, ErrorSource } from "@polywrap/core-js"; +import { + CoreClient, + Uri, + ErrorSource, + UriPackageOrWrapper, + UriResolutionContext, + Wrapper, + getEnvFromUriHistory, +} from "@polywrap/core-js"; +import { ResultErr, ResultOk } from "@polywrap/result"; export const createImports = (config: { client: CoreClient; @@ -40,20 +49,73 @@ export const createImports = (config: { const method = readString(memory.buffer, methodPtr, methodLen); const args = readBytes(memory.buffer, argsPtr, argsLen); - const result = await client.invoke({ - uri: Uri.from(uri), - method: method, - args: new Uint8Array(args), - encodeResult: true, - }); + const loadSubinvokeContext = + state.resolutionContext?.createSubContext() ?? + new UriResolutionContext(); + const wrapperResult = await client.loadWrapper( + Uri.from(uri), + loadSubinvokeContext + ); - if (result.ok) { - state.subinvoke.result = result.value; - } else { - state.subinvoke.error = `${result.error?.name}: ${result.error?.message}`; + if (state.resolutionContext) { + state.resolutionContext.trackStep({ + sourceUri: Uri.from(uri), + result: wrapperResult.ok + ? ResultOk({ + type: "wrapper", + uri: Uri.from(uri), + wrapper: wrapperResult.value as Wrapper, + } as UriPackageOrWrapper) + : ResultErr(wrapperResult.error), + description: `Subinvoke - Load(${uri})`, + subHistory: loadSubinvokeContext.getHistory(), + }); } - return result.ok; + if (!wrapperResult.ok) { + state.subinvoke.error = `${wrapperResult.error?.name}: ${wrapperResult.error?.message}`; + + return false; + } else { + const env = getEnvFromUriHistory( + loadSubinvokeContext.getResolutionPath(), + client + ); + + const subinvokeContext = + state.resolutionContext?.createSubContext() ?? + new UriResolutionContext(); + const result = await client.invokeWrapper({ + wrapper: wrapperResult.value, + uri: Uri.from(uri), + method: method, + args: new Uint8Array(args), + encodeResult: true, + env, + resolutionContext: subinvokeContext, + }); + + if (state.resolutionContext) { + state.resolutionContext.trackStep({ + sourceUri: Uri.from(uri), + result: result.ok + ? ResultOk({ + type: "uri", + uri: Uri.from(uri), + } as UriPackageOrWrapper) + : ResultErr(result.error), + description: `Subinvoke - Invoke(${uri})`, + subHistory: subinvokeContext.getHistory(), + }); + } + if (result.ok) { + state.subinvoke.result = result.value; + } else { + state.subinvoke.error = `${result.error?.name}: ${result.error?.message}`; + } + + return result.ok; + } }, // Give WASM the size of the result __wrap_subinvoke_result_len: (): u32 => { From 5fcac060ecd8506553b29b5b8e28957b43bbbf22 Mon Sep 17 00:00:00 2001 From: Jure Bogunovic Date: Fri, 14 Apr 2023 22:07:40 +0200 Subject: [PATCH 04/31] UriResolverWrapper properly passes resolution when invoking resolver extension --- .../src/UriResolverWrapper.ts | 93 ++++++++++++------- 1 file changed, 60 insertions(+), 33 deletions(-) diff --git a/packages/js/uri-resolver-extensions/src/UriResolverWrapper.ts b/packages/js/uri-resolver-extensions/src/UriResolverWrapper.ts index 41d892cbc..6f8844b83 100644 --- a/packages/js/uri-resolver-extensions/src/UriResolverWrapper.ts +++ b/packages/js/uri-resolver-extensions/src/UriResolverWrapper.ts @@ -8,38 +8,25 @@ import { IUriResolutionContext, UriPackageOrWrapper, getEnvFromUriHistory, + IUriResolver, } from "@polywrap/core-js"; import { Result, ResultOk } from "@polywrap/result"; import { WasmPackage } from "@polywrap/wasm-js"; -import { - ResolverWithHistory, - UriResolutionResult, -} from "@polywrap/uri-resolvers-js"; +import { UriResolutionResult } from "@polywrap/uri-resolvers-js"; // $start: UriResolverWrapper /** * An IUriResolver that delegates resolution to a wrapper that implements * the URI Resolver Extension Interface * */ -export class UriResolverWrapper extends ResolverWithHistory /* $ */ { +export class UriResolverWrapper implements IUriResolver /* $ */ { // $start: UriResolverWrapper-constructor /** * construct a UriResolverWrapper * * @param implementationUri - URI that resolves to a URI Resolver Extension implementation * */ - constructor(public readonly implementationUri: Uri) /* $ */ { - super(); - } - - // $start: UriResolverWrapper-getStepDescription - /** - * A utility function for generating step descriptions to facilitate resolution context updates - * - * @returns text describing the URI resolution step - * */ - protected getStepDescription = (): string /* $ */ => - `ResolverExtension (${this.implementationUri.uri})`; + constructor(public readonly implementationUri: Uri) /* $ */ {} // $start: UriResolverWrapper-_tryResolverUri /** @@ -51,7 +38,7 @@ export class UriResolverWrapper extends ResolverWithHistory /* $ */ { * @param resolutionContext - the current URI resolution context * @returns A Promise with a Result containing either a wrap package, a wrapper, or a URI if successful */ - protected async _tryResolveUri( + async tryResolveUri( uri: Uri, client: CoreClient, resolutionContext: IUriResolutionContext @@ -67,22 +54,38 @@ export class UriResolverWrapper extends ResolverWithHistory /* $ */ { return UriResolutionResult.err(result.error); } - const uriOrManifest = result.value; + return getResult(result.value, uri, this.implementationUri, client); + } - if (uriOrManifest?.uri) { - return UriResolutionResult.ok(new Uri(uriOrManifest.uri)); - } else if (uriOrManifest?.manifest) { - const wrapPackage = WasmPackage.from( - uriOrManifest.manifest, - new UriResolverExtensionFileReader(this.implementationUri, uri, client) - ); + // $start: UriResolverWrapper-getStepDescription + /** + * A utility function for generating step descriptions to facilitate resolution context updates + * + * @returns text describing the URI resolution step + * */ + protected getStepDescription = (): string /* $ */ => + `ResolverExtension (${this.implementationUri.uri})`; +} - return UriResolutionResult.ok(uri, wrapPackage); - } +const getResult = ( + uriOrManifest: UriResolverInterface.MaybeUriOrManifest | undefined, + uri: Uri, + implementationUri: Uri, + client: CoreClient +): Result => { + if (uriOrManifest?.uri) { + return UriResolutionResult.ok(new Uri(uriOrManifest.uri)); + } else if (uriOrManifest?.manifest) { + const wrapPackage = WasmPackage.from( + uriOrManifest.manifest, + new UriResolverExtensionFileReader(implementationUri, uri, client) + ); - return UriResolutionResult.ok(uri); + return UriResolutionResult.ok(uri, wrapPackage); } -} + + return UriResolutionResult.ok(uri); +}; // $start: UriResolverWrapper-tryResolveUriWithImplementation /** @@ -102,21 +105,35 @@ const tryResolveUriWithImplementation = async ( ): Promise< Result > /* $ */ => { - const subContext = resolutionContext.createSubContext(); + const loadResolverContext = resolutionContext.createSubContext(); const result = await loadResolverExtension( uri, implementationUri, client, - subContext + loadResolverContext ); + resolutionContext.trackStep({ + sourceUri: uri, + result: result.ok + ? UriResolutionResult.ok(implementationUri, result.value) + : UriResolutionResult.err(result.error), + description: `ResolverExtension - Load(${implementationUri.uri})`, + subHistory: loadResolverContext.getHistory(), + }); + if (!result.ok) { return result; } const extensionWrapper = result.value; - const env = getEnvFromUriHistory(subContext.getResolutionPath(), client); + const resolveWithExtensionContext = resolutionContext.createSubContext(); + + const env = getEnvFromUriHistory( + loadResolverContext.getResolutionPath(), + client + ); const invokeResult = await client.invokeWrapper( { wrapper: extensionWrapper, @@ -127,9 +144,19 @@ const tryResolveUriWithImplementation = async ( path: uri.path, }, env: env, + resolutionContext: resolveWithExtensionContext, } ); + resolutionContext.trackStep({ + sourceUri: uri, + result: invokeResult.ok + ? getResult(invokeResult.value, uri, implementationUri, client) + : UriResolutionResult.err(result), + description: `ResolverExtension - Invoke(${implementationUri.uri})`, + subHistory: resolveWithExtensionContext.getHistory(), + }); + if (!invokeResult.ok) { return invokeResult; } From 87a7c4954ba1e24f9331084255758df699c8488f Mon Sep 17 00:00:00 2001 From: Jure Bogunovic Date: Fri, 14 Apr 2023 22:09:18 +0200 Subject: [PATCH 05/31] updated sanity test case to work with new resolution context passing --- .../core/uri-resolution/histories/sanity.json | 452 ++++++++++++++++-- 1 file changed, 412 insertions(+), 40 deletions(-) diff --git a/packages/js/client/src/__tests__/core/uri-resolution/histories/sanity.json b/packages/js/client/src/__tests__/core/uri-resolution/histories/sanity.json index 4b29e4c5b..26668baef 100644 --- a/packages/js/client/src/__tests__/core/uri-resolution/histories/sanity.json +++ b/packages/js/client/src/__tests__/core/uri-resolution/histories/sanity.json @@ -10,72 +10,423 @@ "wrap://ens/wraps.eth:uri-resolver-ext@1.1.0 => StaticResolver - Miss", "wrap://ens/wraps.eth:uri-resolver-ext@1.1.0 => ExtendableUriResolver => uri (wrap://ipfs/QmSAXrSLcmGUkQRrApAtG5qTPmuRMMX2Zf1wihpguDQfbm)", [ - "wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1 => RequestSynchronizerResolver => uri (wrap://embed/async-ipfs-uri-resolver-ext@1.0.1)", + "wrap://ens/wraps.eth:uri-resolver-ext@1.1.0 => ResolverExtension - Load(wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1) => wrapper (wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1)", [ - "wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1 => ResolutionResultCacheResolver => uri (wrap://embed/async-ipfs-uri-resolver-ext@1.0.1)", + "wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1 => RequestSynchronizerResolver => uri (wrap://embed/async-ipfs-uri-resolver-ext@1.0.1)", [ - "wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1 => PackageToWrapperResolver => uri (wrap://embed/async-ipfs-uri-resolver-ext@1.0.1)", + "wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1 => ResolutionResultCacheResolver => uri (wrap://embed/async-ipfs-uri-resolver-ext@1.0.1)", [ - "wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1 => UriResolverAggregator => uri (wrap://embed/async-ipfs-uri-resolver-ext@1.0.1)", + "wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1 => PackageToWrapperResolver => uri (wrap://embed/async-ipfs-uri-resolver-ext@1.0.1)", [ - "wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1 => StaticResolver - Redirect (wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1 - wrap://embed/async-ipfs-uri-resolver-ext@1.0.1) => uri (wrap://embed/async-ipfs-uri-resolver-ext@1.0.1)" + "wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1 => UriResolverAggregator => uri (wrap://embed/async-ipfs-uri-resolver-ext@1.0.1)", + [ + "wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1 => StaticResolver - Redirect (wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1 - wrap://embed/async-ipfs-uri-resolver-ext@1.0.1) => uri (wrap://embed/async-ipfs-uri-resolver-ext@1.0.1)" + ] ] ] - ] - ], - "wrap://embed/async-ipfs-uri-resolver-ext@1.0.1 => RequestSynchronizerResolver => wrapper (wrap://embed/async-ipfs-uri-resolver-ext@1.0.1)", - [ - "wrap://embed/async-ipfs-uri-resolver-ext@1.0.1 => ResolutionResultCacheResolver => wrapper (wrap://embed/async-ipfs-uri-resolver-ext@1.0.1)", + ], + "wrap://embed/async-ipfs-uri-resolver-ext@1.0.1 => RequestSynchronizerResolver => wrapper (wrap://embed/async-ipfs-uri-resolver-ext@1.0.1)", [ - "wrap://embed/async-ipfs-uri-resolver-ext@1.0.1 => PackageToWrapperResolver => wrapper (wrap://embed/async-ipfs-uri-resolver-ext@1.0.1)", + "wrap://embed/async-ipfs-uri-resolver-ext@1.0.1 => ResolutionResultCacheResolver => wrapper (wrap://embed/async-ipfs-uri-resolver-ext@1.0.1)", [ - "wrap://embed/async-ipfs-uri-resolver-ext@1.0.1 => UriResolverAggregator => package (wrap://embed/async-ipfs-uri-resolver-ext@1.0.1)", + "wrap://embed/async-ipfs-uri-resolver-ext@1.0.1 => PackageToWrapperResolver => wrapper (wrap://embed/async-ipfs-uri-resolver-ext@1.0.1)", [ - "wrap://embed/async-ipfs-uri-resolver-ext@1.0.1 => StaticResolver - Package (wrap://embed/async-ipfs-uri-resolver-ext@1.0.1) => package (wrap://embed/async-ipfs-uri-resolver-ext@1.0.1)" + "wrap://embed/async-ipfs-uri-resolver-ext@1.0.1 => UriResolverAggregator => package (wrap://embed/async-ipfs-uri-resolver-ext@1.0.1)", + [ + "wrap://embed/async-ipfs-uri-resolver-ext@1.0.1 => StaticResolver - Package (wrap://embed/async-ipfs-uri-resolver-ext@1.0.1) => package (wrap://embed/async-ipfs-uri-resolver-ext@1.0.1)" + ] ] ] ] ], - "wrap://ens/wraps.eth:uri-resolver-ext@1.1.0 => ResolverExtension (wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1)", - "wrap://ens/wraps.eth:ens-text-record-uri-resolver-ext@1.0.1 => RequestSynchronizerResolver => uri (wrap://ipfs/QmXcHWtKkfrFmcczdMSXH7udsSyV3UJeoWzkaUqGBm1oYs)", + "wrap://ens/wraps.eth:uri-resolver-ext@1.1.0 => ResolverExtension - Invoke(wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1)", + "wrap://ens/wraps.eth:uri-resolver-ext@1.1.0 => ResolverExtension - Load(wrap://ens/wraps.eth:ens-text-record-uri-resolver-ext@1.0.1) => wrapper (wrap://ens/wraps.eth:ens-text-record-uri-resolver-ext@1.0.1)", [ - "wrap://ens/wraps.eth:ens-text-record-uri-resolver-ext@1.0.1 => ResolutionResultCacheResolver => uri (wrap://ipfs/QmXcHWtKkfrFmcczdMSXH7udsSyV3UJeoWzkaUqGBm1oYs)", + "wrap://ens/wraps.eth:ens-text-record-uri-resolver-ext@1.0.1 => RequestSynchronizerResolver => uri (wrap://ipfs/QmXcHWtKkfrFmcczdMSXH7udsSyV3UJeoWzkaUqGBm1oYs)", + [ + "wrap://ens/wraps.eth:ens-text-record-uri-resolver-ext@1.0.1 => ResolutionResultCacheResolver => uri (wrap://ipfs/QmXcHWtKkfrFmcczdMSXH7udsSyV3UJeoWzkaUqGBm1oYs)", + [ + "wrap://ens/wraps.eth:ens-text-record-uri-resolver-ext@1.0.1 => PackageToWrapperResolver => uri (wrap://ipfs/QmXcHWtKkfrFmcczdMSXH7udsSyV3UJeoWzkaUqGBm1oYs)", + [ + "wrap://ens/wraps.eth:ens-text-record-uri-resolver-ext@1.0.1 => UriResolverAggregator => uri (wrap://ipfs/QmXcHWtKkfrFmcczdMSXH7udsSyV3UJeoWzkaUqGBm1oYs)", + [ + "wrap://ens/wraps.eth:ens-text-record-uri-resolver-ext@1.0.1 => StaticResolver - Redirect (wrap://ens/wraps.eth:ens-text-record-uri-resolver-ext@1.0.1 - wrap://ipfs/QmXcHWtKkfrFmcczdMSXH7udsSyV3UJeoWzkaUqGBm1oYs) => uri (wrap://ipfs/QmXcHWtKkfrFmcczdMSXH7udsSyV3UJeoWzkaUqGBm1oYs)" + ] + ] + ] + ], + "wrap://ipfs/QmXcHWtKkfrFmcczdMSXH7udsSyV3UJeoWzkaUqGBm1oYs => RequestSynchronizerResolver => wrapper (wrap://ipfs/QmXcHWtKkfrFmcczdMSXH7udsSyV3UJeoWzkaUqGBm1oYs)", [ - "wrap://ens/wraps.eth:ens-text-record-uri-resolver-ext@1.0.1 => PackageToWrapperResolver => uri (wrap://ipfs/QmXcHWtKkfrFmcczdMSXH7udsSyV3UJeoWzkaUqGBm1oYs)", + "wrap://ipfs/QmXcHWtKkfrFmcczdMSXH7udsSyV3UJeoWzkaUqGBm1oYs => ResolutionResultCacheResolver => wrapper (wrap://ipfs/QmXcHWtKkfrFmcczdMSXH7udsSyV3UJeoWzkaUqGBm1oYs)", [ - "wrap://ens/wraps.eth:ens-text-record-uri-resolver-ext@1.0.1 => UriResolverAggregator => uri (wrap://ipfs/QmXcHWtKkfrFmcczdMSXH7udsSyV3UJeoWzkaUqGBm1oYs)", + "wrap://ipfs/QmXcHWtKkfrFmcczdMSXH7udsSyV3UJeoWzkaUqGBm1oYs => PackageToWrapperResolver => wrapper (wrap://ipfs/QmXcHWtKkfrFmcczdMSXH7udsSyV3UJeoWzkaUqGBm1oYs)", [ - "wrap://ens/wraps.eth:ens-text-record-uri-resolver-ext@1.0.1 => StaticResolver - Redirect (wrap://ens/wraps.eth:ens-text-record-uri-resolver-ext@1.0.1 - wrap://ipfs/QmXcHWtKkfrFmcczdMSXH7udsSyV3UJeoWzkaUqGBm1oYs) => uri (wrap://ipfs/QmXcHWtKkfrFmcczdMSXH7udsSyV3UJeoWzkaUqGBm1oYs)" + "wrap://ipfs/QmXcHWtKkfrFmcczdMSXH7udsSyV3UJeoWzkaUqGBm1oYs => UriResolverAggregator => package (wrap://ipfs/QmXcHWtKkfrFmcczdMSXH7udsSyV3UJeoWzkaUqGBm1oYs)", + [ + "wrap://ipfs/QmXcHWtKkfrFmcczdMSXH7udsSyV3UJeoWzkaUqGBm1oYs => StaticResolver - Miss", + "wrap://ipfs/QmXcHWtKkfrFmcczdMSXH7udsSyV3UJeoWzkaUqGBm1oYs => ExtendableUriResolver => package (wrap://ipfs/QmXcHWtKkfrFmcczdMSXH7udsSyV3UJeoWzkaUqGBm1oYs)", + [ + "wrap://ipfs/QmXcHWtKkfrFmcczdMSXH7udsSyV3UJeoWzkaUqGBm1oYs => ResolverExtension - Load(wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1) => wrapper (wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1)", + [ + "wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1 => RequestSynchronizerResolver => uri (wrap://embed/async-ipfs-uri-resolver-ext@1.0.1)", + [ + "wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1 => ResolutionResultCacheResolver (Cache) => uri (wrap://embed/async-ipfs-uri-resolver-ext@1.0.1)" + ], + "wrap://embed/async-ipfs-uri-resolver-ext@1.0.1 => RequestSynchronizerResolver => wrapper (wrap://embed/async-ipfs-uri-resolver-ext@1.0.1)", + [ + "wrap://embed/async-ipfs-uri-resolver-ext@1.0.1 => ResolutionResultCacheResolver (Cache) => wrapper (wrap://embed/async-ipfs-uri-resolver-ext@1.0.1)" + ] + ], + "wrap://ipfs/QmXcHWtKkfrFmcczdMSXH7udsSyV3UJeoWzkaUqGBm1oYs => ResolverExtension - Invoke(wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1) => package (wrap://ipfs/QmXcHWtKkfrFmcczdMSXH7udsSyV3UJeoWzkaUqGBm1oYs)", + [ + "wrap://plugin/concurrent@1.0.0 => Subinvoke - Load(wrap://plugin/concurrent@1.0.0) => wrapper (wrap://plugin/concurrent@1.0.0)", + [ + "wrap://plugin/concurrent@1.0.0 => RequestSynchronizerResolver => wrapper (wrap://plugin/concurrent@1.0.0)", + [ + "wrap://plugin/concurrent@1.0.0 => ResolutionResultCacheResolver => wrapper (wrap://plugin/concurrent@1.0.0)", + [ + "wrap://plugin/concurrent@1.0.0 => PackageToWrapperResolver => wrapper (wrap://plugin/concurrent@1.0.0)", + [ + "wrap://plugin/concurrent@1.0.0 => UriResolverAggregator => package (wrap://plugin/concurrent@1.0.0)", + [ + "wrap://plugin/concurrent@1.0.0 => StaticResolver - Package (wrap://plugin/concurrent@1.0.0) => package (wrap://plugin/concurrent@1.0.0)" + ] + ] + ] + ] + ], + "wrap://plugin/concurrent@1.0.0 => Subinvoke - Invoke(wrap://plugin/concurrent@1.0.0)", + "wrap://plugin/concurrent@1.0.0 => Subinvoke - Load(wrap://plugin/concurrent@1.0.0) => wrapper (wrap://plugin/concurrent@1.0.0)", + [ + "wrap://plugin/concurrent@1.0.0 => RequestSynchronizerResolver => wrapper (wrap://plugin/concurrent@1.0.0)", + [ + "wrap://plugin/concurrent@1.0.0 => ResolutionResultCacheResolver (Cache) => wrapper (wrap://plugin/concurrent@1.0.0)" + ] + ], + "wrap://plugin/concurrent@1.0.0 => Subinvoke - Invoke(wrap://plugin/concurrent@1.0.0)" + ] + ] + ] ] ] ] ], - "wrap://ipfs/QmXcHWtKkfrFmcczdMSXH7udsSyV3UJeoWzkaUqGBm1oYs => RequestSynchronizerResolver => wrapper (wrap://ipfs/QmXcHWtKkfrFmcczdMSXH7udsSyV3UJeoWzkaUqGBm1oYs)", + "wrap://ens/wraps.eth:uri-resolver-ext@1.1.0 => ResolverExtension - Invoke(wrap://ens/wraps.eth:ens-text-record-uri-resolver-ext@1.0.1) => uri (wrap://ipfs/QmSAXrSLcmGUkQRrApAtG5qTPmuRMMX2Zf1wihpguDQfbm)", [ - "wrap://ipfs/QmXcHWtKkfrFmcczdMSXH7udsSyV3UJeoWzkaUqGBm1oYs => ResolutionResultCacheResolver => wrapper (wrap://ipfs/QmXcHWtKkfrFmcczdMSXH7udsSyV3UJeoWzkaUqGBm1oYs)", + "wrap://ipfs/QmWG8NJnvGMCosxaUWuRna33MSDR331rByGTdy4EDsVjNL => Subinvoke - Load(wrap://ipfs/QmWG8NJnvGMCosxaUWuRna33MSDR331rByGTdy4EDsVjNL) => wrapper (wrap://ipfs/QmWG8NJnvGMCosxaUWuRna33MSDR331rByGTdy4EDsVjNL)", + [ + "wrap://ipfs/QmWG8NJnvGMCosxaUWuRna33MSDR331rByGTdy4EDsVjNL => RequestSynchronizerResolver => wrapper (wrap://ipfs/QmWG8NJnvGMCosxaUWuRna33MSDR331rByGTdy4EDsVjNL)", + [ + "wrap://ipfs/QmWG8NJnvGMCosxaUWuRna33MSDR331rByGTdy4EDsVjNL => ResolutionResultCacheResolver => wrapper (wrap://ipfs/QmWG8NJnvGMCosxaUWuRna33MSDR331rByGTdy4EDsVjNL)", + [ + "wrap://ipfs/QmWG8NJnvGMCosxaUWuRna33MSDR331rByGTdy4EDsVjNL => PackageToWrapperResolver => wrapper (wrap://ipfs/QmWG8NJnvGMCosxaUWuRna33MSDR331rByGTdy4EDsVjNL)", + [ + "wrap://ipfs/QmWG8NJnvGMCosxaUWuRna33MSDR331rByGTdy4EDsVjNL => UriResolverAggregator => package (wrap://ipfs/QmWG8NJnvGMCosxaUWuRna33MSDR331rByGTdy4EDsVjNL)", + [ + "wrap://ipfs/QmWG8NJnvGMCosxaUWuRna33MSDR331rByGTdy4EDsVjNL => StaticResolver - Miss", + "wrap://ipfs/QmWG8NJnvGMCosxaUWuRna33MSDR331rByGTdy4EDsVjNL => ExtendableUriResolver => package (wrap://ipfs/QmWG8NJnvGMCosxaUWuRna33MSDR331rByGTdy4EDsVjNL)", + [ + "wrap://ipfs/QmWG8NJnvGMCosxaUWuRna33MSDR331rByGTdy4EDsVjNL => ResolverExtension - Load(wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1) => wrapper (wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1)", + [ + "wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1 => RequestSynchronizerResolver => uri (wrap://embed/async-ipfs-uri-resolver-ext@1.0.1)", + [ + "wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1 => ResolutionResultCacheResolver (Cache) => uri (wrap://embed/async-ipfs-uri-resolver-ext@1.0.1)" + ], + "wrap://embed/async-ipfs-uri-resolver-ext@1.0.1 => RequestSynchronizerResolver => wrapper (wrap://embed/async-ipfs-uri-resolver-ext@1.0.1)", + [ + "wrap://embed/async-ipfs-uri-resolver-ext@1.0.1 => ResolutionResultCacheResolver (Cache) => wrapper (wrap://embed/async-ipfs-uri-resolver-ext@1.0.1)" + ] + ], + "wrap://ipfs/QmWG8NJnvGMCosxaUWuRna33MSDR331rByGTdy4EDsVjNL => ResolverExtension - Invoke(wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1) => package (wrap://ipfs/QmWG8NJnvGMCosxaUWuRna33MSDR331rByGTdy4EDsVjNL)", + [ + "wrap://plugin/concurrent@1.0.0 => Subinvoke - Load(wrap://plugin/concurrent@1.0.0) => wrapper (wrap://plugin/concurrent@1.0.0)", + [ + "wrap://plugin/concurrent@1.0.0 => RequestSynchronizerResolver => wrapper (wrap://plugin/concurrent@1.0.0)", + [ + "wrap://plugin/concurrent@1.0.0 => ResolutionResultCacheResolver (Cache) => wrapper (wrap://plugin/concurrent@1.0.0)" + ] + ], + "wrap://plugin/concurrent@1.0.0 => Subinvoke - Invoke(wrap://plugin/concurrent@1.0.0)", + "wrap://plugin/concurrent@1.0.0 => Subinvoke - Load(wrap://plugin/concurrent@1.0.0) => wrapper (wrap://plugin/concurrent@1.0.0)", + [ + "wrap://plugin/concurrent@1.0.0 => RequestSynchronizerResolver => wrapper (wrap://plugin/concurrent@1.0.0)", + [ + "wrap://plugin/concurrent@1.0.0 => ResolutionResultCacheResolver (Cache) => wrapper (wrap://plugin/concurrent@1.0.0)" + ] + ], + "wrap://plugin/concurrent@1.0.0 => Subinvoke - Invoke(wrap://plugin/concurrent@1.0.0)" + ] + ] + ] + ] + ] + ] + ], + "wrap://ipfs/QmWG8NJnvGMCosxaUWuRna33MSDR331rByGTdy4EDsVjNL => Subinvoke - Invoke(wrap://ipfs/QmWG8NJnvGMCosxaUWuRna33MSDR331rByGTdy4EDsVjNL)", [ - "wrap://ipfs/QmXcHWtKkfrFmcczdMSXH7udsSyV3UJeoWzkaUqGBm1oYs => PackageToWrapperResolver => wrapper (wrap://ipfs/QmXcHWtKkfrFmcczdMSXH7udsSyV3UJeoWzkaUqGBm1oYs)", + "wrap://ipfs/QmPL9Njg3rGkpoJyoy8pZ5fTavjvHxNuuuiGRApzyGESZB => Subinvoke - Load(wrap://ipfs/QmPL9Njg3rGkpoJyoy8pZ5fTavjvHxNuuuiGRApzyGESZB) => wrapper (wrap://ipfs/QmPL9Njg3rGkpoJyoy8pZ5fTavjvHxNuuuiGRApzyGESZB)", + [ + "wrap://ipfs/QmPL9Njg3rGkpoJyoy8pZ5fTavjvHxNuuuiGRApzyGESZB => RequestSynchronizerResolver => wrapper (wrap://ipfs/QmPL9Njg3rGkpoJyoy8pZ5fTavjvHxNuuuiGRApzyGESZB)", + [ + "wrap://ipfs/QmPL9Njg3rGkpoJyoy8pZ5fTavjvHxNuuuiGRApzyGESZB => ResolutionResultCacheResolver => wrapper (wrap://ipfs/QmPL9Njg3rGkpoJyoy8pZ5fTavjvHxNuuuiGRApzyGESZB)", + [ + "wrap://ipfs/QmPL9Njg3rGkpoJyoy8pZ5fTavjvHxNuuuiGRApzyGESZB => PackageToWrapperResolver => wrapper (wrap://ipfs/QmPL9Njg3rGkpoJyoy8pZ5fTavjvHxNuuuiGRApzyGESZB)", + [ + "wrap://ipfs/QmPL9Njg3rGkpoJyoy8pZ5fTavjvHxNuuuiGRApzyGESZB => UriResolverAggregator => package (wrap://ipfs/QmPL9Njg3rGkpoJyoy8pZ5fTavjvHxNuuuiGRApzyGESZB)", + [ + "wrap://ipfs/QmPL9Njg3rGkpoJyoy8pZ5fTavjvHxNuuuiGRApzyGESZB => StaticResolver - Miss", + "wrap://ipfs/QmPL9Njg3rGkpoJyoy8pZ5fTavjvHxNuuuiGRApzyGESZB => ExtendableUriResolver => package (wrap://ipfs/QmPL9Njg3rGkpoJyoy8pZ5fTavjvHxNuuuiGRApzyGESZB)", + [ + "wrap://ipfs/QmPL9Njg3rGkpoJyoy8pZ5fTavjvHxNuuuiGRApzyGESZB => ResolverExtension - Load(wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1) => wrapper (wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1)", + [ + "wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1 => RequestSynchronizerResolver => uri (wrap://embed/async-ipfs-uri-resolver-ext@1.0.1)", + [ + "wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1 => ResolutionResultCacheResolver (Cache) => uri (wrap://embed/async-ipfs-uri-resolver-ext@1.0.1)" + ], + "wrap://embed/async-ipfs-uri-resolver-ext@1.0.1 => RequestSynchronizerResolver => wrapper (wrap://embed/async-ipfs-uri-resolver-ext@1.0.1)", + [ + "wrap://embed/async-ipfs-uri-resolver-ext@1.0.1 => ResolutionResultCacheResolver (Cache) => wrapper (wrap://embed/async-ipfs-uri-resolver-ext@1.0.1)" + ] + ], + "wrap://ipfs/QmPL9Njg3rGkpoJyoy8pZ5fTavjvHxNuuuiGRApzyGESZB => ResolverExtension - Invoke(wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1) => package (wrap://ipfs/QmPL9Njg3rGkpoJyoy8pZ5fTavjvHxNuuuiGRApzyGESZB)", + [ + "wrap://plugin/concurrent@1.0.0 => Subinvoke - Load(wrap://plugin/concurrent@1.0.0) => wrapper (wrap://plugin/concurrent@1.0.0)", + [ + "wrap://plugin/concurrent@1.0.0 => RequestSynchronizerResolver => wrapper (wrap://plugin/concurrent@1.0.0)", + [ + "wrap://plugin/concurrent@1.0.0 => ResolutionResultCacheResolver (Cache) => wrapper (wrap://plugin/concurrent@1.0.0)" + ] + ], + "wrap://plugin/concurrent@1.0.0 => Subinvoke - Invoke(wrap://plugin/concurrent@1.0.0)", + "wrap://plugin/concurrent@1.0.0 => Subinvoke - Load(wrap://plugin/concurrent@1.0.0) => wrapper (wrap://plugin/concurrent@1.0.0)", + [ + "wrap://plugin/concurrent@1.0.0 => RequestSynchronizerResolver => wrapper (wrap://plugin/concurrent@1.0.0)", + [ + "wrap://plugin/concurrent@1.0.0 => ResolutionResultCacheResolver (Cache) => wrapper (wrap://plugin/concurrent@1.0.0)" + ] + ], + "wrap://plugin/concurrent@1.0.0 => Subinvoke - Invoke(wrap://plugin/concurrent@1.0.0)" + ] + ] + ] + ] + ] + ] + ], + "wrap://ipfs/QmPL9Njg3rGkpoJyoy8pZ5fTavjvHxNuuuiGRApzyGESZB => Subinvoke - Invoke(wrap://ipfs/QmPL9Njg3rGkpoJyoy8pZ5fTavjvHxNuuuiGRApzyGESZB)", + "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => Subinvoke - Load(wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5) => wrapper (wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)", + [ + "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => RequestSynchronizerResolver => wrapper (wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)", + [ + "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => ResolutionResultCacheResolver => wrapper (wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)", + [ + "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => PackageToWrapperResolver => wrapper (wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)", + [ + "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => UriResolverAggregator => package (wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)", + [ + "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => StaticResolver - Miss", + "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => ExtendableUriResolver => package (wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)", + [ + "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => ResolverExtension - Load(wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1) => wrapper (wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1)", + [ + "wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1 => RequestSynchronizerResolver => uri (wrap://embed/async-ipfs-uri-resolver-ext@1.0.1)", + [ + "wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1 => ResolutionResultCacheResolver (Cache) => uri (wrap://embed/async-ipfs-uri-resolver-ext@1.0.1)" + ], + "wrap://embed/async-ipfs-uri-resolver-ext@1.0.1 => RequestSynchronizerResolver => wrapper (wrap://embed/async-ipfs-uri-resolver-ext@1.0.1)", + [ + "wrap://embed/async-ipfs-uri-resolver-ext@1.0.1 => ResolutionResultCacheResolver (Cache) => wrapper (wrap://embed/async-ipfs-uri-resolver-ext@1.0.1)" + ] + ], + "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => ResolverExtension - Invoke(wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1) => package (wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)", + [ + "wrap://plugin/concurrent@1.0.0 => Subinvoke - Load(wrap://plugin/concurrent@1.0.0) => wrapper (wrap://plugin/concurrent@1.0.0)", + [ + "wrap://plugin/concurrent@1.0.0 => RequestSynchronizerResolver => wrapper (wrap://plugin/concurrent@1.0.0)", + [ + "wrap://plugin/concurrent@1.0.0 => ResolutionResultCacheResolver (Cache) => wrapper (wrap://plugin/concurrent@1.0.0)" + ] + ], + "wrap://plugin/concurrent@1.0.0 => Subinvoke - Invoke(wrap://plugin/concurrent@1.0.0)", + "wrap://plugin/concurrent@1.0.0 => Subinvoke - Load(wrap://plugin/concurrent@1.0.0) => wrapper (wrap://plugin/concurrent@1.0.0)", + [ + "wrap://plugin/concurrent@1.0.0 => RequestSynchronizerResolver => wrapper (wrap://plugin/concurrent@1.0.0)", + [ + "wrap://plugin/concurrent@1.0.0 => ResolutionResultCacheResolver (Cache) => wrapper (wrap://plugin/concurrent@1.0.0)" + ] + ], + "wrap://plugin/concurrent@1.0.0 => Subinvoke - Invoke(wrap://plugin/concurrent@1.0.0)" + ] + ] + ] + ] + ] + ] + ], + "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => Subinvoke - Invoke(wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)", + "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => Subinvoke - Load(wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5) => wrapper (wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)", + [ + "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => RequestSynchronizerResolver => wrapper (wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)", + [ + "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => ResolutionResultCacheResolver (Cache) => wrapper (wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)" + ] + ], + "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => Subinvoke - Invoke(wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)", + "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => Subinvoke - Load(wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5) => wrapper (wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)", + [ + "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => RequestSynchronizerResolver => wrapper (wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)", + [ + "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => ResolutionResultCacheResolver (Cache) => wrapper (wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)" + ] + ], + "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => Subinvoke - Invoke(wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)", + "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => Subinvoke - Load(wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5) => wrapper (wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)", + [ + "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => RequestSynchronizerResolver => wrapper (wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)", + [ + "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => ResolutionResultCacheResolver (Cache) => wrapper (wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)" + ] + ], + "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => Subinvoke - Invoke(wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)", + "wrap://ipfs/QmS4Z679ZE8WwZSoYB8w9gDSERHAoWG1fX94oqdWpfpDq3 => Subinvoke - Load(wrap://ipfs/QmS4Z679ZE8WwZSoYB8w9gDSERHAoWG1fX94oqdWpfpDq3) => wrapper (wrap://ipfs/QmS4Z679ZE8WwZSoYB8w9gDSERHAoWG1fX94oqdWpfpDq3)", [ - "wrap://ipfs/QmXcHWtKkfrFmcczdMSXH7udsSyV3UJeoWzkaUqGBm1oYs => UriResolverAggregator => package (wrap://ipfs/QmXcHWtKkfrFmcczdMSXH7udsSyV3UJeoWzkaUqGBm1oYs)", + "wrap://ipfs/QmS4Z679ZE8WwZSoYB8w9gDSERHAoWG1fX94oqdWpfpDq3 => RequestSynchronizerResolver => wrapper (wrap://ipfs/QmS4Z679ZE8WwZSoYB8w9gDSERHAoWG1fX94oqdWpfpDq3)", [ - "wrap://ipfs/QmXcHWtKkfrFmcczdMSXH7udsSyV3UJeoWzkaUqGBm1oYs => StaticResolver - Miss", - "wrap://ipfs/QmXcHWtKkfrFmcczdMSXH7udsSyV3UJeoWzkaUqGBm1oYs => ExtendableUriResolver => package (wrap://ipfs/QmXcHWtKkfrFmcczdMSXH7udsSyV3UJeoWzkaUqGBm1oYs)", + "wrap://ipfs/QmS4Z679ZE8WwZSoYB8w9gDSERHAoWG1fX94oqdWpfpDq3 => ResolutionResultCacheResolver => wrapper (wrap://ipfs/QmS4Z679ZE8WwZSoYB8w9gDSERHAoWG1fX94oqdWpfpDq3)", [ - "wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1 => RequestSynchronizerResolver => uri (wrap://embed/async-ipfs-uri-resolver-ext@1.0.1)", + "wrap://ipfs/QmS4Z679ZE8WwZSoYB8w9gDSERHAoWG1fX94oqdWpfpDq3 => PackageToWrapperResolver => wrapper (wrap://ipfs/QmS4Z679ZE8WwZSoYB8w9gDSERHAoWG1fX94oqdWpfpDq3)", [ - "wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1 => ResolutionResultCacheResolver (Cache) => uri (wrap://embed/async-ipfs-uri-resolver-ext@1.0.1)" - ], - "wrap://embed/async-ipfs-uri-resolver-ext@1.0.1 => RequestSynchronizerResolver => wrapper (wrap://embed/async-ipfs-uri-resolver-ext@1.0.1)", + "wrap://ipfs/QmS4Z679ZE8WwZSoYB8w9gDSERHAoWG1fX94oqdWpfpDq3 => UriResolverAggregator => package (wrap://ipfs/QmS4Z679ZE8WwZSoYB8w9gDSERHAoWG1fX94oqdWpfpDq3)", + [ + "wrap://ipfs/QmS4Z679ZE8WwZSoYB8w9gDSERHAoWG1fX94oqdWpfpDq3 => StaticResolver - Miss", + "wrap://ipfs/QmS4Z679ZE8WwZSoYB8w9gDSERHAoWG1fX94oqdWpfpDq3 => ExtendableUriResolver => package (wrap://ipfs/QmS4Z679ZE8WwZSoYB8w9gDSERHAoWG1fX94oqdWpfpDq3)", + [ + "wrap://ipfs/QmS4Z679ZE8WwZSoYB8w9gDSERHAoWG1fX94oqdWpfpDq3 => ResolverExtension - Load(wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1) => wrapper (wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1)", + [ + "wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1 => RequestSynchronizerResolver => uri (wrap://embed/async-ipfs-uri-resolver-ext@1.0.1)", + [ + "wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1 => ResolutionResultCacheResolver (Cache) => uri (wrap://embed/async-ipfs-uri-resolver-ext@1.0.1)" + ], + "wrap://embed/async-ipfs-uri-resolver-ext@1.0.1 => RequestSynchronizerResolver => wrapper (wrap://embed/async-ipfs-uri-resolver-ext@1.0.1)", + [ + "wrap://embed/async-ipfs-uri-resolver-ext@1.0.1 => ResolutionResultCacheResolver (Cache) => wrapper (wrap://embed/async-ipfs-uri-resolver-ext@1.0.1)" + ] + ], + "wrap://ipfs/QmS4Z679ZE8WwZSoYB8w9gDSERHAoWG1fX94oqdWpfpDq3 => ResolverExtension - Invoke(wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1) => package (wrap://ipfs/QmS4Z679ZE8WwZSoYB8w9gDSERHAoWG1fX94oqdWpfpDq3)", + [ + "wrap://plugin/concurrent@1.0.0 => Subinvoke - Load(wrap://plugin/concurrent@1.0.0) => wrapper (wrap://plugin/concurrent@1.0.0)", + [ + "wrap://plugin/concurrent@1.0.0 => RequestSynchronizerResolver => wrapper (wrap://plugin/concurrent@1.0.0)", + [ + "wrap://plugin/concurrent@1.0.0 => ResolutionResultCacheResolver (Cache) => wrapper (wrap://plugin/concurrent@1.0.0)" + ] + ], + "wrap://plugin/concurrent@1.0.0 => Subinvoke - Invoke(wrap://plugin/concurrent@1.0.0)", + "wrap://plugin/concurrent@1.0.0 => Subinvoke - Load(wrap://plugin/concurrent@1.0.0) => wrapper (wrap://plugin/concurrent@1.0.0)", + [ + "wrap://plugin/concurrent@1.0.0 => RequestSynchronizerResolver => wrapper (wrap://plugin/concurrent@1.0.0)", + [ + "wrap://plugin/concurrent@1.0.0 => ResolutionResultCacheResolver (Cache) => wrapper (wrap://plugin/concurrent@1.0.0)" + ] + ], + "wrap://plugin/concurrent@1.0.0 => Subinvoke - Invoke(wrap://plugin/concurrent@1.0.0)" + ] + ] + ] + ] + ] + ] + ], + "wrap://ipfs/QmS4Z679ZE8WwZSoYB8w9gDSERHAoWG1fX94oqdWpfpDq3 => Subinvoke - Invoke(wrap://ipfs/QmS4Z679ZE8WwZSoYB8w9gDSERHAoWG1fX94oqdWpfpDq3)", + [ + "wrap://plugin/ethereum-provider@1.1.0 => Subinvoke - Load(wrap://plugin/ethereum-provider@1.1.0) => wrapper (wrap://plugin/ethereum-provider@1.1.0)", + [ + "wrap://plugin/ethereum-provider@1.1.0 => RequestSynchronizerResolver => wrapper (wrap://plugin/ethereum-provider@1.1.0)", + [ + "wrap://plugin/ethereum-provider@1.1.0 => ResolutionResultCacheResolver => wrapper (wrap://plugin/ethereum-provider@1.1.0)", [ - "wrap://embed/async-ipfs-uri-resolver-ext@1.0.1 => ResolutionResultCacheResolver (Cache) => wrapper (wrap://embed/async-ipfs-uri-resolver-ext@1.0.1)" - ], - "wrap://ipfs/QmXcHWtKkfrFmcczdMSXH7udsSyV3UJeoWzkaUqGBm1oYs => ResolverExtension (wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1) => package (wrap://ipfs/QmXcHWtKkfrFmcczdMSXH7udsSyV3UJeoWzkaUqGBm1oYs)" + "wrap://plugin/ethereum-provider@1.1.0 => PackageToWrapperResolver => wrapper (wrap://plugin/ethereum-provider@1.1.0)", + [ + "wrap://plugin/ethereum-provider@1.1.0 => UriResolverAggregator => package (wrap://plugin/ethereum-provider@1.1.0)", + [ + "wrap://plugin/ethereum-provider@1.1.0 => StaticResolver - Package (wrap://plugin/ethereum-provider@1.1.0) => package (wrap://plugin/ethereum-provider@1.1.0)" + ] + ] + ] ] + ], + "wrap://plugin/ethereum-provider@1.1.0 => Subinvoke - Invoke(wrap://plugin/ethereum-provider@1.1.0)" + ] + ], + "wrap://ipfs/QmWG8NJnvGMCosxaUWuRna33MSDR331rByGTdy4EDsVjNL => Subinvoke - Load(wrap://ipfs/QmWG8NJnvGMCosxaUWuRna33MSDR331rByGTdy4EDsVjNL) => wrapper (wrap://ipfs/QmWG8NJnvGMCosxaUWuRna33MSDR331rByGTdy4EDsVjNL)", + [ + "wrap://ipfs/QmWG8NJnvGMCosxaUWuRna33MSDR331rByGTdy4EDsVjNL => RequestSynchronizerResolver => wrapper (wrap://ipfs/QmWG8NJnvGMCosxaUWuRna33MSDR331rByGTdy4EDsVjNL)", + [ + "wrap://ipfs/QmWG8NJnvGMCosxaUWuRna33MSDR331rByGTdy4EDsVjNL => ResolutionResultCacheResolver (Cache) => wrapper (wrap://ipfs/QmWG8NJnvGMCosxaUWuRna33MSDR331rByGTdy4EDsVjNL)" + ] + ], + "wrap://ipfs/QmWG8NJnvGMCosxaUWuRna33MSDR331rByGTdy4EDsVjNL => Subinvoke - Invoke(wrap://ipfs/QmWG8NJnvGMCosxaUWuRna33MSDR331rByGTdy4EDsVjNL)", + [ + "wrap://ipfs/QmPL9Njg3rGkpoJyoy8pZ5fTavjvHxNuuuiGRApzyGESZB => Subinvoke - Load(wrap://ipfs/QmPL9Njg3rGkpoJyoy8pZ5fTavjvHxNuuuiGRApzyGESZB) => wrapper (wrap://ipfs/QmPL9Njg3rGkpoJyoy8pZ5fTavjvHxNuuuiGRApzyGESZB)", + [ + "wrap://ipfs/QmPL9Njg3rGkpoJyoy8pZ5fTavjvHxNuuuiGRApzyGESZB => RequestSynchronizerResolver => wrapper (wrap://ipfs/QmPL9Njg3rGkpoJyoy8pZ5fTavjvHxNuuuiGRApzyGESZB)", + [ + "wrap://ipfs/QmPL9Njg3rGkpoJyoy8pZ5fTavjvHxNuuuiGRApzyGESZB => ResolutionResultCacheResolver (Cache) => wrapper (wrap://ipfs/QmPL9Njg3rGkpoJyoy8pZ5fTavjvHxNuuuiGRApzyGESZB)" + ] + ], + "wrap://ipfs/QmPL9Njg3rGkpoJyoy8pZ5fTavjvHxNuuuiGRApzyGESZB => Subinvoke - Invoke(wrap://ipfs/QmPL9Njg3rGkpoJyoy8pZ5fTavjvHxNuuuiGRApzyGESZB)", + "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => Subinvoke - Load(wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5) => wrapper (wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)", + [ + "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => RequestSynchronizerResolver => wrapper (wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)", + [ + "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => ResolutionResultCacheResolver (Cache) => wrapper (wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)" + ] + ], + "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => Subinvoke - Invoke(wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)", + "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => Subinvoke - Load(wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5) => wrapper (wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)", + [ + "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => RequestSynchronizerResolver => wrapper (wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)", + [ + "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => ResolutionResultCacheResolver (Cache) => wrapper (wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)" + ] + ], + "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => Subinvoke - Invoke(wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)", + "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => Subinvoke - Load(wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5) => wrapper (wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)", + [ + "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => RequestSynchronizerResolver => wrapper (wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)", + [ + "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => ResolutionResultCacheResolver (Cache) => wrapper (wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)" + ] + ], + "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => Subinvoke - Invoke(wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)", + "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => Subinvoke - Load(wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5) => wrapper (wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)", + [ + "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => RequestSynchronizerResolver => wrapper (wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)", + [ + "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => ResolutionResultCacheResolver (Cache) => wrapper (wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)" ] + ], + "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => Subinvoke - Invoke(wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)", + "wrap://ipfs/QmS4Z679ZE8WwZSoYB8w9gDSERHAoWG1fX94oqdWpfpDq3 => Subinvoke - Load(wrap://ipfs/QmS4Z679ZE8WwZSoYB8w9gDSERHAoWG1fX94oqdWpfpDq3) => wrapper (wrap://ipfs/QmS4Z679ZE8WwZSoYB8w9gDSERHAoWG1fX94oqdWpfpDq3)", + [ + "wrap://ipfs/QmS4Z679ZE8WwZSoYB8w9gDSERHAoWG1fX94oqdWpfpDq3 => RequestSynchronizerResolver => wrapper (wrap://ipfs/QmS4Z679ZE8WwZSoYB8w9gDSERHAoWG1fX94oqdWpfpDq3)", + [ + "wrap://ipfs/QmS4Z679ZE8WwZSoYB8w9gDSERHAoWG1fX94oqdWpfpDq3 => ResolutionResultCacheResolver (Cache) => wrapper (wrap://ipfs/QmS4Z679ZE8WwZSoYB8w9gDSERHAoWG1fX94oqdWpfpDq3)" + ] + ], + "wrap://ipfs/QmS4Z679ZE8WwZSoYB8w9gDSERHAoWG1fX94oqdWpfpDq3 => Subinvoke - Invoke(wrap://ipfs/QmS4Z679ZE8WwZSoYB8w9gDSERHAoWG1fX94oqdWpfpDq3)", + [ + "wrap://plugin/ethereum-provider@1.1.0 => Subinvoke - Load(wrap://plugin/ethereum-provider@1.1.0) => wrapper (wrap://plugin/ethereum-provider@1.1.0)", + [ + "wrap://plugin/ethereum-provider@1.1.0 => RequestSynchronizerResolver => wrapper (wrap://plugin/ethereum-provider@1.1.0)", + [ + "wrap://plugin/ethereum-provider@1.1.0 => ResolutionResultCacheResolver (Cache) => wrapper (wrap://plugin/ethereum-provider@1.1.0)" + ] + ], + "wrap://plugin/ethereum-provider@1.1.0 => Subinvoke - Invoke(wrap://plugin/ethereum-provider@1.1.0)" ] ] - ], - "wrap://ens/wraps.eth:uri-resolver-ext@1.1.0 => ResolverExtension (wrap://ens/wraps.eth:ens-text-record-uri-resolver-ext@1.0.1) => uri (wrap://ipfs/QmSAXrSLcmGUkQRrApAtG5qTPmuRMMX2Zf1wihpguDQfbm)" + ] ] ] ] @@ -92,15 +443,36 @@ "wrap://ipfs/QmSAXrSLcmGUkQRrApAtG5qTPmuRMMX2Zf1wihpguDQfbm => StaticResolver - Miss", "wrap://ipfs/QmSAXrSLcmGUkQRrApAtG5qTPmuRMMX2Zf1wihpguDQfbm => ExtendableUriResolver => package (wrap://ipfs/QmSAXrSLcmGUkQRrApAtG5qTPmuRMMX2Zf1wihpguDQfbm)", [ - "wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1 => RequestSynchronizerResolver => uri (wrap://embed/async-ipfs-uri-resolver-ext@1.0.1)", + "wrap://ipfs/QmSAXrSLcmGUkQRrApAtG5qTPmuRMMX2Zf1wihpguDQfbm => ResolverExtension - Load(wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1) => wrapper (wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1)", [ - "wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1 => ResolutionResultCacheResolver (Cache) => uri (wrap://embed/async-ipfs-uri-resolver-ext@1.0.1)" + "wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1 => RequestSynchronizerResolver => uri (wrap://embed/async-ipfs-uri-resolver-ext@1.0.1)", + [ + "wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1 => ResolutionResultCacheResolver (Cache) => uri (wrap://embed/async-ipfs-uri-resolver-ext@1.0.1)" + ], + "wrap://embed/async-ipfs-uri-resolver-ext@1.0.1 => RequestSynchronizerResolver => wrapper (wrap://embed/async-ipfs-uri-resolver-ext@1.0.1)", + [ + "wrap://embed/async-ipfs-uri-resolver-ext@1.0.1 => ResolutionResultCacheResolver (Cache) => wrapper (wrap://embed/async-ipfs-uri-resolver-ext@1.0.1)" + ] ], - "wrap://embed/async-ipfs-uri-resolver-ext@1.0.1 => RequestSynchronizerResolver => wrapper (wrap://embed/async-ipfs-uri-resolver-ext@1.0.1)", + "wrap://ipfs/QmSAXrSLcmGUkQRrApAtG5qTPmuRMMX2Zf1wihpguDQfbm => ResolverExtension - Invoke(wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1) => package (wrap://ipfs/QmSAXrSLcmGUkQRrApAtG5qTPmuRMMX2Zf1wihpguDQfbm)", [ - "wrap://embed/async-ipfs-uri-resolver-ext@1.0.1 => ResolutionResultCacheResolver (Cache) => wrapper (wrap://embed/async-ipfs-uri-resolver-ext@1.0.1)" - ], - "wrap://ipfs/QmSAXrSLcmGUkQRrApAtG5qTPmuRMMX2Zf1wihpguDQfbm => ResolverExtension (wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1) => package (wrap://ipfs/QmSAXrSLcmGUkQRrApAtG5qTPmuRMMX2Zf1wihpguDQfbm)" + "wrap://plugin/concurrent@1.0.0 => Subinvoke - Load(wrap://plugin/concurrent@1.0.0) => wrapper (wrap://plugin/concurrent@1.0.0)", + [ + "wrap://plugin/concurrent@1.0.0 => RequestSynchronizerResolver => wrapper (wrap://plugin/concurrent@1.0.0)", + [ + "wrap://plugin/concurrent@1.0.0 => ResolutionResultCacheResolver (Cache) => wrapper (wrap://plugin/concurrent@1.0.0)" + ] + ], + "wrap://plugin/concurrent@1.0.0 => Subinvoke - Invoke(wrap://plugin/concurrent@1.0.0)", + "wrap://plugin/concurrent@1.0.0 => Subinvoke - Load(wrap://plugin/concurrent@1.0.0) => wrapper (wrap://plugin/concurrent@1.0.0)", + [ + "wrap://plugin/concurrent@1.0.0 => RequestSynchronizerResolver => wrapper (wrap://plugin/concurrent@1.0.0)", + [ + "wrap://plugin/concurrent@1.0.0 => ResolutionResultCacheResolver (Cache) => wrapper (wrap://plugin/concurrent@1.0.0)" + ] + ], + "wrap://plugin/concurrent@1.0.0 => Subinvoke - Invoke(wrap://plugin/concurrent@1.0.0)" + ] ] ] ] From 308f7ee6d9bc8e39c64e42b3f78dc78bf01ec33e Mon Sep 17 00:00:00 2001 From: Jure Bogunovic Date: Tue, 18 Apr 2023 00:51:02 +0200 Subject: [PATCH 06/31] removed resolution context step tracking from wasm imports and added to client invoke --- .../core/uri-resolution/histories/sanity.json | 112 +++++++++--------- .../js/core-client/src/PolywrapCoreClient.ts | 39 ++++-- packages/js/wasm/src/imports.ts | 87 ++------------ yarn.lock | 7 ++ 4 files changed, 108 insertions(+), 137 deletions(-) diff --git a/packages/js/client/src/__tests__/core/uri-resolution/histories/sanity.json b/packages/js/client/src/__tests__/core/uri-resolution/histories/sanity.json index 26668baef..88a6a9a40 100644 --- a/packages/js/client/src/__tests__/core/uri-resolution/histories/sanity.json +++ b/packages/js/client/src/__tests__/core/uri-resolution/histories/sanity.json @@ -79,7 +79,7 @@ ], "wrap://ipfs/QmXcHWtKkfrFmcczdMSXH7udsSyV3UJeoWzkaUqGBm1oYs => ResolverExtension - Invoke(wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1) => package (wrap://ipfs/QmXcHWtKkfrFmcczdMSXH7udsSyV3UJeoWzkaUqGBm1oYs)", [ - "wrap://plugin/concurrent@1.0.0 => Subinvoke - Load(wrap://plugin/concurrent@1.0.0) => wrapper (wrap://plugin/concurrent@1.0.0)", + "wrap://plugin/concurrent@1.0.0 => Client- loadWrapper(wrap://plugin/concurrent@1.0.0) => wrapper (wrap://plugin/concurrent@1.0.0)", [ "wrap://plugin/concurrent@1.0.0 => RequestSynchronizerResolver => wrapper (wrap://plugin/concurrent@1.0.0)", [ @@ -95,15 +95,15 @@ ] ] ], - "wrap://plugin/concurrent@1.0.0 => Subinvoke - Invoke(wrap://plugin/concurrent@1.0.0)", - "wrap://plugin/concurrent@1.0.0 => Subinvoke - Load(wrap://plugin/concurrent@1.0.0) => wrapper (wrap://plugin/concurrent@1.0.0)", + "wrap://plugin/concurrent@1.0.0 => Client - Invoke(wrap://plugin/concurrent@1.0.0)", + "wrap://plugin/concurrent@1.0.0 => Client- loadWrapper(wrap://plugin/concurrent@1.0.0) => wrapper (wrap://plugin/concurrent@1.0.0)", [ "wrap://plugin/concurrent@1.0.0 => RequestSynchronizerResolver => wrapper (wrap://plugin/concurrent@1.0.0)", [ "wrap://plugin/concurrent@1.0.0 => ResolutionResultCacheResolver (Cache) => wrapper (wrap://plugin/concurrent@1.0.0)" ] ], - "wrap://plugin/concurrent@1.0.0 => Subinvoke - Invoke(wrap://plugin/concurrent@1.0.0)" + "wrap://plugin/concurrent@1.0.0 => Client - Invoke(wrap://plugin/concurrent@1.0.0)" ] ] ] @@ -113,7 +113,7 @@ ], "wrap://ens/wraps.eth:uri-resolver-ext@1.1.0 => ResolverExtension - Invoke(wrap://ens/wraps.eth:ens-text-record-uri-resolver-ext@1.0.1) => uri (wrap://ipfs/QmSAXrSLcmGUkQRrApAtG5qTPmuRMMX2Zf1wihpguDQfbm)", [ - "wrap://ipfs/QmWG8NJnvGMCosxaUWuRna33MSDR331rByGTdy4EDsVjNL => Subinvoke - Load(wrap://ipfs/QmWG8NJnvGMCosxaUWuRna33MSDR331rByGTdy4EDsVjNL) => wrapper (wrap://ipfs/QmWG8NJnvGMCosxaUWuRna33MSDR331rByGTdy4EDsVjNL)", + "wrap://ipfs/QmWG8NJnvGMCosxaUWuRna33MSDR331rByGTdy4EDsVjNL => Client- loadWrapper(wrap://ipfs/QmWG8NJnvGMCosxaUWuRna33MSDR331rByGTdy4EDsVjNL) => wrapper (wrap://ipfs/QmWG8NJnvGMCosxaUWuRna33MSDR331rByGTdy4EDsVjNL)", [ "wrap://ipfs/QmWG8NJnvGMCosxaUWuRna33MSDR331rByGTdy4EDsVjNL => RequestSynchronizerResolver => wrapper (wrap://ipfs/QmWG8NJnvGMCosxaUWuRna33MSDR331rByGTdy4EDsVjNL)", [ @@ -139,22 +139,22 @@ ], "wrap://ipfs/QmWG8NJnvGMCosxaUWuRna33MSDR331rByGTdy4EDsVjNL => ResolverExtension - Invoke(wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1) => package (wrap://ipfs/QmWG8NJnvGMCosxaUWuRna33MSDR331rByGTdy4EDsVjNL)", [ - "wrap://plugin/concurrent@1.0.0 => Subinvoke - Load(wrap://plugin/concurrent@1.0.0) => wrapper (wrap://plugin/concurrent@1.0.0)", + "wrap://plugin/concurrent@1.0.0 => Client- loadWrapper(wrap://plugin/concurrent@1.0.0) => wrapper (wrap://plugin/concurrent@1.0.0)", [ "wrap://plugin/concurrent@1.0.0 => RequestSynchronizerResolver => wrapper (wrap://plugin/concurrent@1.0.0)", [ "wrap://plugin/concurrent@1.0.0 => ResolutionResultCacheResolver (Cache) => wrapper (wrap://plugin/concurrent@1.0.0)" ] ], - "wrap://plugin/concurrent@1.0.0 => Subinvoke - Invoke(wrap://plugin/concurrent@1.0.0)", - "wrap://plugin/concurrent@1.0.0 => Subinvoke - Load(wrap://plugin/concurrent@1.0.0) => wrapper (wrap://plugin/concurrent@1.0.0)", + "wrap://plugin/concurrent@1.0.0 => Client - Invoke(wrap://plugin/concurrent@1.0.0)", + "wrap://plugin/concurrent@1.0.0 => Client- loadWrapper(wrap://plugin/concurrent@1.0.0) => wrapper (wrap://plugin/concurrent@1.0.0)", [ "wrap://plugin/concurrent@1.0.0 => RequestSynchronizerResolver => wrapper (wrap://plugin/concurrent@1.0.0)", [ "wrap://plugin/concurrent@1.0.0 => ResolutionResultCacheResolver (Cache) => wrapper (wrap://plugin/concurrent@1.0.0)" ] ], - "wrap://plugin/concurrent@1.0.0 => Subinvoke - Invoke(wrap://plugin/concurrent@1.0.0)" + "wrap://plugin/concurrent@1.0.0 => Client - Invoke(wrap://plugin/concurrent@1.0.0)" ] ] ] @@ -162,9 +162,9 @@ ] ] ], - "wrap://ipfs/QmWG8NJnvGMCosxaUWuRna33MSDR331rByGTdy4EDsVjNL => Subinvoke - Invoke(wrap://ipfs/QmWG8NJnvGMCosxaUWuRna33MSDR331rByGTdy4EDsVjNL)", + "wrap://ipfs/QmWG8NJnvGMCosxaUWuRna33MSDR331rByGTdy4EDsVjNL => Client - Invoke(wrap://ipfs/QmWG8NJnvGMCosxaUWuRna33MSDR331rByGTdy4EDsVjNL)", [ - "wrap://ipfs/QmPL9Njg3rGkpoJyoy8pZ5fTavjvHxNuuuiGRApzyGESZB => Subinvoke - Load(wrap://ipfs/QmPL9Njg3rGkpoJyoy8pZ5fTavjvHxNuuuiGRApzyGESZB) => wrapper (wrap://ipfs/QmPL9Njg3rGkpoJyoy8pZ5fTavjvHxNuuuiGRApzyGESZB)", + "wrap://ipfs/QmPL9Njg3rGkpoJyoy8pZ5fTavjvHxNuuuiGRApzyGESZB => Client- loadWrapper(wrap://ipfs/QmPL9Njg3rGkpoJyoy8pZ5fTavjvHxNuuuiGRApzyGESZB) => wrapper (wrap://ipfs/QmPL9Njg3rGkpoJyoy8pZ5fTavjvHxNuuuiGRApzyGESZB)", [ "wrap://ipfs/QmPL9Njg3rGkpoJyoy8pZ5fTavjvHxNuuuiGRApzyGESZB => RequestSynchronizerResolver => wrapper (wrap://ipfs/QmPL9Njg3rGkpoJyoy8pZ5fTavjvHxNuuuiGRApzyGESZB)", [ @@ -190,22 +190,22 @@ ], "wrap://ipfs/QmPL9Njg3rGkpoJyoy8pZ5fTavjvHxNuuuiGRApzyGESZB => ResolverExtension - Invoke(wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1) => package (wrap://ipfs/QmPL9Njg3rGkpoJyoy8pZ5fTavjvHxNuuuiGRApzyGESZB)", [ - "wrap://plugin/concurrent@1.0.0 => Subinvoke - Load(wrap://plugin/concurrent@1.0.0) => wrapper (wrap://plugin/concurrent@1.0.0)", + "wrap://plugin/concurrent@1.0.0 => Client- loadWrapper(wrap://plugin/concurrent@1.0.0) => wrapper (wrap://plugin/concurrent@1.0.0)", [ "wrap://plugin/concurrent@1.0.0 => RequestSynchronizerResolver => wrapper (wrap://plugin/concurrent@1.0.0)", [ "wrap://plugin/concurrent@1.0.0 => ResolutionResultCacheResolver (Cache) => wrapper (wrap://plugin/concurrent@1.0.0)" ] ], - "wrap://plugin/concurrent@1.0.0 => Subinvoke - Invoke(wrap://plugin/concurrent@1.0.0)", - "wrap://plugin/concurrent@1.0.0 => Subinvoke - Load(wrap://plugin/concurrent@1.0.0) => wrapper (wrap://plugin/concurrent@1.0.0)", + "wrap://plugin/concurrent@1.0.0 => Client - Invoke(wrap://plugin/concurrent@1.0.0)", + "wrap://plugin/concurrent@1.0.0 => Client- loadWrapper(wrap://plugin/concurrent@1.0.0) => wrapper (wrap://plugin/concurrent@1.0.0)", [ "wrap://plugin/concurrent@1.0.0 => RequestSynchronizerResolver => wrapper (wrap://plugin/concurrent@1.0.0)", [ "wrap://plugin/concurrent@1.0.0 => ResolutionResultCacheResolver (Cache) => wrapper (wrap://plugin/concurrent@1.0.0)" ] ], - "wrap://plugin/concurrent@1.0.0 => Subinvoke - Invoke(wrap://plugin/concurrent@1.0.0)" + "wrap://plugin/concurrent@1.0.0 => Client - Invoke(wrap://plugin/concurrent@1.0.0)" ] ] ] @@ -213,8 +213,8 @@ ] ] ], - "wrap://ipfs/QmPL9Njg3rGkpoJyoy8pZ5fTavjvHxNuuuiGRApzyGESZB => Subinvoke - Invoke(wrap://ipfs/QmPL9Njg3rGkpoJyoy8pZ5fTavjvHxNuuuiGRApzyGESZB)", - "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => Subinvoke - Load(wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5) => wrapper (wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)", + "wrap://ipfs/QmPL9Njg3rGkpoJyoy8pZ5fTavjvHxNuuuiGRApzyGESZB => Client - Invoke(wrap://ipfs/QmPL9Njg3rGkpoJyoy8pZ5fTavjvHxNuuuiGRApzyGESZB)", + "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => Client- loadWrapper(wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5) => wrapper (wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)", [ "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => RequestSynchronizerResolver => wrapper (wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)", [ @@ -240,22 +240,22 @@ ], "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => ResolverExtension - Invoke(wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1) => package (wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)", [ - "wrap://plugin/concurrent@1.0.0 => Subinvoke - Load(wrap://plugin/concurrent@1.0.0) => wrapper (wrap://plugin/concurrent@1.0.0)", + "wrap://plugin/concurrent@1.0.0 => Client- loadWrapper(wrap://plugin/concurrent@1.0.0) => wrapper (wrap://plugin/concurrent@1.0.0)", [ "wrap://plugin/concurrent@1.0.0 => RequestSynchronizerResolver => wrapper (wrap://plugin/concurrent@1.0.0)", [ "wrap://plugin/concurrent@1.0.0 => ResolutionResultCacheResolver (Cache) => wrapper (wrap://plugin/concurrent@1.0.0)" ] ], - "wrap://plugin/concurrent@1.0.0 => Subinvoke - Invoke(wrap://plugin/concurrent@1.0.0)", - "wrap://plugin/concurrent@1.0.0 => Subinvoke - Load(wrap://plugin/concurrent@1.0.0) => wrapper (wrap://plugin/concurrent@1.0.0)", + "wrap://plugin/concurrent@1.0.0 => Client - Invoke(wrap://plugin/concurrent@1.0.0)", + "wrap://plugin/concurrent@1.0.0 => Client- loadWrapper(wrap://plugin/concurrent@1.0.0) => wrapper (wrap://plugin/concurrent@1.0.0)", [ "wrap://plugin/concurrent@1.0.0 => RequestSynchronizerResolver => wrapper (wrap://plugin/concurrent@1.0.0)", [ "wrap://plugin/concurrent@1.0.0 => ResolutionResultCacheResolver (Cache) => wrapper (wrap://plugin/concurrent@1.0.0)" ] ], - "wrap://plugin/concurrent@1.0.0 => Subinvoke - Invoke(wrap://plugin/concurrent@1.0.0)" + "wrap://plugin/concurrent@1.0.0 => Client - Invoke(wrap://plugin/concurrent@1.0.0)" ] ] ] @@ -263,32 +263,32 @@ ] ] ], - "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => Subinvoke - Invoke(wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)", - "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => Subinvoke - Load(wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5) => wrapper (wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)", + "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => Client - Invoke(wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)", + "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => Client- loadWrapper(wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5) => wrapper (wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)", [ "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => RequestSynchronizerResolver => wrapper (wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)", [ "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => ResolutionResultCacheResolver (Cache) => wrapper (wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)" ] ], - "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => Subinvoke - Invoke(wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)", - "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => Subinvoke - Load(wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5) => wrapper (wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)", + "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => Client - Invoke(wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)", + "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => Client- loadWrapper(wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5) => wrapper (wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)", [ "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => RequestSynchronizerResolver => wrapper (wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)", [ "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => ResolutionResultCacheResolver (Cache) => wrapper (wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)" ] ], - "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => Subinvoke - Invoke(wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)", - "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => Subinvoke - Load(wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5) => wrapper (wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)", + "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => Client - Invoke(wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)", + "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => Client- loadWrapper(wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5) => wrapper (wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)", [ "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => RequestSynchronizerResolver => wrapper (wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)", [ "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => ResolutionResultCacheResolver (Cache) => wrapper (wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)" ] ], - "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => Subinvoke - Invoke(wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)", - "wrap://ipfs/QmS4Z679ZE8WwZSoYB8w9gDSERHAoWG1fX94oqdWpfpDq3 => Subinvoke - Load(wrap://ipfs/QmS4Z679ZE8WwZSoYB8w9gDSERHAoWG1fX94oqdWpfpDq3) => wrapper (wrap://ipfs/QmS4Z679ZE8WwZSoYB8w9gDSERHAoWG1fX94oqdWpfpDq3)", + "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => Client - Invoke(wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)", + "wrap://ipfs/QmS4Z679ZE8WwZSoYB8w9gDSERHAoWG1fX94oqdWpfpDq3 => Client- loadWrapper(wrap://ipfs/QmS4Z679ZE8WwZSoYB8w9gDSERHAoWG1fX94oqdWpfpDq3) => wrapper (wrap://ipfs/QmS4Z679ZE8WwZSoYB8w9gDSERHAoWG1fX94oqdWpfpDq3)", [ "wrap://ipfs/QmS4Z679ZE8WwZSoYB8w9gDSERHAoWG1fX94oqdWpfpDq3 => RequestSynchronizerResolver => wrapper (wrap://ipfs/QmS4Z679ZE8WwZSoYB8w9gDSERHAoWG1fX94oqdWpfpDq3)", [ @@ -314,22 +314,22 @@ ], "wrap://ipfs/QmS4Z679ZE8WwZSoYB8w9gDSERHAoWG1fX94oqdWpfpDq3 => ResolverExtension - Invoke(wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1) => package (wrap://ipfs/QmS4Z679ZE8WwZSoYB8w9gDSERHAoWG1fX94oqdWpfpDq3)", [ - "wrap://plugin/concurrent@1.0.0 => Subinvoke - Load(wrap://plugin/concurrent@1.0.0) => wrapper (wrap://plugin/concurrent@1.0.0)", + "wrap://plugin/concurrent@1.0.0 => Client- loadWrapper(wrap://plugin/concurrent@1.0.0) => wrapper (wrap://plugin/concurrent@1.0.0)", [ "wrap://plugin/concurrent@1.0.0 => RequestSynchronizerResolver => wrapper (wrap://plugin/concurrent@1.0.0)", [ "wrap://plugin/concurrent@1.0.0 => ResolutionResultCacheResolver (Cache) => wrapper (wrap://plugin/concurrent@1.0.0)" ] ], - "wrap://plugin/concurrent@1.0.0 => Subinvoke - Invoke(wrap://plugin/concurrent@1.0.0)", - "wrap://plugin/concurrent@1.0.0 => Subinvoke - Load(wrap://plugin/concurrent@1.0.0) => wrapper (wrap://plugin/concurrent@1.0.0)", + "wrap://plugin/concurrent@1.0.0 => Client - Invoke(wrap://plugin/concurrent@1.0.0)", + "wrap://plugin/concurrent@1.0.0 => Client- loadWrapper(wrap://plugin/concurrent@1.0.0) => wrapper (wrap://plugin/concurrent@1.0.0)", [ "wrap://plugin/concurrent@1.0.0 => RequestSynchronizerResolver => wrapper (wrap://plugin/concurrent@1.0.0)", [ "wrap://plugin/concurrent@1.0.0 => ResolutionResultCacheResolver (Cache) => wrapper (wrap://plugin/concurrent@1.0.0)" ] ], - "wrap://plugin/concurrent@1.0.0 => Subinvoke - Invoke(wrap://plugin/concurrent@1.0.0)" + "wrap://plugin/concurrent@1.0.0 => Client - Invoke(wrap://plugin/concurrent@1.0.0)" ] ] ] @@ -337,9 +337,9 @@ ] ] ], - "wrap://ipfs/QmS4Z679ZE8WwZSoYB8w9gDSERHAoWG1fX94oqdWpfpDq3 => Subinvoke - Invoke(wrap://ipfs/QmS4Z679ZE8WwZSoYB8w9gDSERHAoWG1fX94oqdWpfpDq3)", + "wrap://ipfs/QmS4Z679ZE8WwZSoYB8w9gDSERHAoWG1fX94oqdWpfpDq3 => Client - Invoke(wrap://ipfs/QmS4Z679ZE8WwZSoYB8w9gDSERHAoWG1fX94oqdWpfpDq3)", [ - "wrap://plugin/ethereum-provider@1.1.0 => Subinvoke - Load(wrap://plugin/ethereum-provider@1.1.0) => wrapper (wrap://plugin/ethereum-provider@1.1.0)", + "wrap://plugin/ethereum-provider@1.1.0 => Client- loadWrapper(wrap://plugin/ethereum-provider@1.1.0) => wrapper (wrap://plugin/ethereum-provider@1.1.0)", [ "wrap://plugin/ethereum-provider@1.1.0 => RequestSynchronizerResolver => wrapper (wrap://plugin/ethereum-provider@1.1.0)", [ @@ -355,75 +355,75 @@ ] ] ], - "wrap://plugin/ethereum-provider@1.1.0 => Subinvoke - Invoke(wrap://plugin/ethereum-provider@1.1.0)" + "wrap://plugin/ethereum-provider@1.1.0 => Client - Invoke(wrap://plugin/ethereum-provider@1.1.0)" ] ], - "wrap://ipfs/QmWG8NJnvGMCosxaUWuRna33MSDR331rByGTdy4EDsVjNL => Subinvoke - Load(wrap://ipfs/QmWG8NJnvGMCosxaUWuRna33MSDR331rByGTdy4EDsVjNL) => wrapper (wrap://ipfs/QmWG8NJnvGMCosxaUWuRna33MSDR331rByGTdy4EDsVjNL)", + "wrap://ipfs/QmWG8NJnvGMCosxaUWuRna33MSDR331rByGTdy4EDsVjNL => Client- loadWrapper(wrap://ipfs/QmWG8NJnvGMCosxaUWuRna33MSDR331rByGTdy4EDsVjNL) => wrapper (wrap://ipfs/QmWG8NJnvGMCosxaUWuRna33MSDR331rByGTdy4EDsVjNL)", [ "wrap://ipfs/QmWG8NJnvGMCosxaUWuRna33MSDR331rByGTdy4EDsVjNL => RequestSynchronizerResolver => wrapper (wrap://ipfs/QmWG8NJnvGMCosxaUWuRna33MSDR331rByGTdy4EDsVjNL)", [ "wrap://ipfs/QmWG8NJnvGMCosxaUWuRna33MSDR331rByGTdy4EDsVjNL => ResolutionResultCacheResolver (Cache) => wrapper (wrap://ipfs/QmWG8NJnvGMCosxaUWuRna33MSDR331rByGTdy4EDsVjNL)" ] ], - "wrap://ipfs/QmWG8NJnvGMCosxaUWuRna33MSDR331rByGTdy4EDsVjNL => Subinvoke - Invoke(wrap://ipfs/QmWG8NJnvGMCosxaUWuRna33MSDR331rByGTdy4EDsVjNL)", + "wrap://ipfs/QmWG8NJnvGMCosxaUWuRna33MSDR331rByGTdy4EDsVjNL => Client - Invoke(wrap://ipfs/QmWG8NJnvGMCosxaUWuRna33MSDR331rByGTdy4EDsVjNL)", [ - "wrap://ipfs/QmPL9Njg3rGkpoJyoy8pZ5fTavjvHxNuuuiGRApzyGESZB => Subinvoke - Load(wrap://ipfs/QmPL9Njg3rGkpoJyoy8pZ5fTavjvHxNuuuiGRApzyGESZB) => wrapper (wrap://ipfs/QmPL9Njg3rGkpoJyoy8pZ5fTavjvHxNuuuiGRApzyGESZB)", + "wrap://ipfs/QmPL9Njg3rGkpoJyoy8pZ5fTavjvHxNuuuiGRApzyGESZB => Client- loadWrapper(wrap://ipfs/QmPL9Njg3rGkpoJyoy8pZ5fTavjvHxNuuuiGRApzyGESZB) => wrapper (wrap://ipfs/QmPL9Njg3rGkpoJyoy8pZ5fTavjvHxNuuuiGRApzyGESZB)", [ "wrap://ipfs/QmPL9Njg3rGkpoJyoy8pZ5fTavjvHxNuuuiGRApzyGESZB => RequestSynchronizerResolver => wrapper (wrap://ipfs/QmPL9Njg3rGkpoJyoy8pZ5fTavjvHxNuuuiGRApzyGESZB)", [ "wrap://ipfs/QmPL9Njg3rGkpoJyoy8pZ5fTavjvHxNuuuiGRApzyGESZB => ResolutionResultCacheResolver (Cache) => wrapper (wrap://ipfs/QmPL9Njg3rGkpoJyoy8pZ5fTavjvHxNuuuiGRApzyGESZB)" ] ], - "wrap://ipfs/QmPL9Njg3rGkpoJyoy8pZ5fTavjvHxNuuuiGRApzyGESZB => Subinvoke - Invoke(wrap://ipfs/QmPL9Njg3rGkpoJyoy8pZ5fTavjvHxNuuuiGRApzyGESZB)", - "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => Subinvoke - Load(wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5) => wrapper (wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)", + "wrap://ipfs/QmPL9Njg3rGkpoJyoy8pZ5fTavjvHxNuuuiGRApzyGESZB => Client - Invoke(wrap://ipfs/QmPL9Njg3rGkpoJyoy8pZ5fTavjvHxNuuuiGRApzyGESZB)", + "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => Client- loadWrapper(wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5) => wrapper (wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)", [ "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => RequestSynchronizerResolver => wrapper (wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)", [ "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => ResolutionResultCacheResolver (Cache) => wrapper (wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)" ] ], - "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => Subinvoke - Invoke(wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)", - "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => Subinvoke - Load(wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5) => wrapper (wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)", + "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => Client - Invoke(wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)", + "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => Client- loadWrapper(wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5) => wrapper (wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)", [ "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => RequestSynchronizerResolver => wrapper (wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)", [ "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => ResolutionResultCacheResolver (Cache) => wrapper (wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)" ] ], - "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => Subinvoke - Invoke(wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)", - "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => Subinvoke - Load(wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5) => wrapper (wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)", + "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => Client - Invoke(wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)", + "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => Client- loadWrapper(wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5) => wrapper (wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)", [ "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => RequestSynchronizerResolver => wrapper (wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)", [ "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => ResolutionResultCacheResolver (Cache) => wrapper (wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)" ] ], - "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => Subinvoke - Invoke(wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)", - "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => Subinvoke - Load(wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5) => wrapper (wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)", + "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => Client - Invoke(wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)", + "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => Client- loadWrapper(wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5) => wrapper (wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)", [ "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => RequestSynchronizerResolver => wrapper (wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)", [ "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => ResolutionResultCacheResolver (Cache) => wrapper (wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)" ] ], - "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => Subinvoke - Invoke(wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)", - "wrap://ipfs/QmS4Z679ZE8WwZSoYB8w9gDSERHAoWG1fX94oqdWpfpDq3 => Subinvoke - Load(wrap://ipfs/QmS4Z679ZE8WwZSoYB8w9gDSERHAoWG1fX94oqdWpfpDq3) => wrapper (wrap://ipfs/QmS4Z679ZE8WwZSoYB8w9gDSERHAoWG1fX94oqdWpfpDq3)", + "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => Client - Invoke(wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)", + "wrap://ipfs/QmS4Z679ZE8WwZSoYB8w9gDSERHAoWG1fX94oqdWpfpDq3 => Client- loadWrapper(wrap://ipfs/QmS4Z679ZE8WwZSoYB8w9gDSERHAoWG1fX94oqdWpfpDq3) => wrapper (wrap://ipfs/QmS4Z679ZE8WwZSoYB8w9gDSERHAoWG1fX94oqdWpfpDq3)", [ "wrap://ipfs/QmS4Z679ZE8WwZSoYB8w9gDSERHAoWG1fX94oqdWpfpDq3 => RequestSynchronizerResolver => wrapper (wrap://ipfs/QmS4Z679ZE8WwZSoYB8w9gDSERHAoWG1fX94oqdWpfpDq3)", [ "wrap://ipfs/QmS4Z679ZE8WwZSoYB8w9gDSERHAoWG1fX94oqdWpfpDq3 => ResolutionResultCacheResolver (Cache) => wrapper (wrap://ipfs/QmS4Z679ZE8WwZSoYB8w9gDSERHAoWG1fX94oqdWpfpDq3)" ] ], - "wrap://ipfs/QmS4Z679ZE8WwZSoYB8w9gDSERHAoWG1fX94oqdWpfpDq3 => Subinvoke - Invoke(wrap://ipfs/QmS4Z679ZE8WwZSoYB8w9gDSERHAoWG1fX94oqdWpfpDq3)", + "wrap://ipfs/QmS4Z679ZE8WwZSoYB8w9gDSERHAoWG1fX94oqdWpfpDq3 => Client - Invoke(wrap://ipfs/QmS4Z679ZE8WwZSoYB8w9gDSERHAoWG1fX94oqdWpfpDq3)", [ - "wrap://plugin/ethereum-provider@1.1.0 => Subinvoke - Load(wrap://plugin/ethereum-provider@1.1.0) => wrapper (wrap://plugin/ethereum-provider@1.1.0)", + "wrap://plugin/ethereum-provider@1.1.0 => Client- loadWrapper(wrap://plugin/ethereum-provider@1.1.0) => wrapper (wrap://plugin/ethereum-provider@1.1.0)", [ "wrap://plugin/ethereum-provider@1.1.0 => RequestSynchronizerResolver => wrapper (wrap://plugin/ethereum-provider@1.1.0)", [ "wrap://plugin/ethereum-provider@1.1.0 => ResolutionResultCacheResolver (Cache) => wrapper (wrap://plugin/ethereum-provider@1.1.0)" ] ], - "wrap://plugin/ethereum-provider@1.1.0 => Subinvoke - Invoke(wrap://plugin/ethereum-provider@1.1.0)" + "wrap://plugin/ethereum-provider@1.1.0 => Client - Invoke(wrap://plugin/ethereum-provider@1.1.0)" ] ] ] @@ -456,22 +456,22 @@ ], "wrap://ipfs/QmSAXrSLcmGUkQRrApAtG5qTPmuRMMX2Zf1wihpguDQfbm => ResolverExtension - Invoke(wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1) => package (wrap://ipfs/QmSAXrSLcmGUkQRrApAtG5qTPmuRMMX2Zf1wihpguDQfbm)", [ - "wrap://plugin/concurrent@1.0.0 => Subinvoke - Load(wrap://plugin/concurrent@1.0.0) => wrapper (wrap://plugin/concurrent@1.0.0)", + "wrap://plugin/concurrent@1.0.0 => Client- loadWrapper(wrap://plugin/concurrent@1.0.0) => wrapper (wrap://plugin/concurrent@1.0.0)", [ "wrap://plugin/concurrent@1.0.0 => RequestSynchronizerResolver => wrapper (wrap://plugin/concurrent@1.0.0)", [ "wrap://plugin/concurrent@1.0.0 => ResolutionResultCacheResolver (Cache) => wrapper (wrap://plugin/concurrent@1.0.0)" ] ], - "wrap://plugin/concurrent@1.0.0 => Subinvoke - Invoke(wrap://plugin/concurrent@1.0.0)", - "wrap://plugin/concurrent@1.0.0 => Subinvoke - Load(wrap://plugin/concurrent@1.0.0) => wrapper (wrap://plugin/concurrent@1.0.0)", + "wrap://plugin/concurrent@1.0.0 => Client - Invoke(wrap://plugin/concurrent@1.0.0)", + "wrap://plugin/concurrent@1.0.0 => Client- loadWrapper(wrap://plugin/concurrent@1.0.0) => wrapper (wrap://plugin/concurrent@1.0.0)", [ "wrap://plugin/concurrent@1.0.0 => RequestSynchronizerResolver => wrapper (wrap://plugin/concurrent@1.0.0)", [ "wrap://plugin/concurrent@1.0.0 => ResolutionResultCacheResolver (Cache) => wrapper (wrap://plugin/concurrent@1.0.0)" ] ], - "wrap://plugin/concurrent@1.0.0 => Subinvoke - Invoke(wrap://plugin/concurrent@1.0.0)" + "wrap://plugin/concurrent@1.0.0 => Client - Invoke(wrap://plugin/concurrent@1.0.0)" ] ] ] diff --git a/packages/js/core-client/src/PolywrapCoreClient.ts b/packages/js/core-client/src/PolywrapCoreClient.ts index 90324b11e..aa8742eb7 100644 --- a/packages/js/core-client/src/PolywrapCoreClient.ts +++ b/packages/js/core-client/src/PolywrapCoreClient.ts @@ -28,6 +28,7 @@ import { WrapManifest, } from "@polywrap/wrap-manifest-types-js"; import { Result, ResultErr, ResultOk } from "@polywrap/result"; +import { UriResolutionResult } from "@polywrap/uri-resolvers-js"; export class PolywrapCoreClient implements CoreClient { // $start: PolywrapCoreClient-constructor @@ -274,29 +275,53 @@ export class PolywrapCoreClient implements CoreClient { const resolutionContext = options.resolutionContext ?? new UriResolutionContext(); + const loadWrapperContext = resolutionContext.createSubContext(); + const loadWrapperResult = await this.loadWrapper( typedOptions.uri, - resolutionContext + loadWrapperContext ); + resolutionContext.trackStep({ + sourceUri: typedOptions.uri, + result: loadWrapperResult.ok + ? UriResolutionResult.ok(typedOptions.uri, loadWrapperResult.value) + : UriResolutionResult.err(loadWrapperResult.error), + description: `Client- loadWrapper(${typedOptions.uri.uri})`, + subHistory: loadWrapperContext.getHistory(), + }); + if (!loadWrapperResult.ok) { return loadWrapperResult; } const wrapper = loadWrapperResult.value; - const resolutionPath = resolutionContext.getResolutionPath(); + let resolutionPath = loadWrapperContext.getResolutionPath(); + resolutionPath = + resolutionPath.length > 0 ? resolutionPath : [typedOptions.uri]; - const env = getEnvFromUriHistory( - resolutionPath.length > 0 ? resolutionPath : [typedOptions.uri], - this - ); + const env = getEnvFromUriHistory(resolutionPath, this); + + const invokeContext = resolutionContext.createSubContext(); const invokeResult = await this.invokeWrapper({ - env: env, ...typedOptions, + env: env, + resolutionContext: invokeContext, wrapper, }); + const finalUri = resolutionPath[resolutionPath.length - 1]; + + resolutionContext.trackStep({ + sourceUri: finalUri, + result: invokeResult.ok + ? UriResolutionResult.ok(finalUri) + : ResultErr(invokeResult.error), + description: `Client - Invoke(${finalUri.uri})`, + subHistory: invokeContext.getHistory(), + }); + if (!invokeResult.ok) { return invokeResult; } diff --git a/packages/js/wasm/src/imports.ts b/packages/js/wasm/src/imports.ts index aadd47b51..4919ed605 100644 --- a/packages/js/wasm/src/imports.ts +++ b/packages/js/wasm/src/imports.ts @@ -5,16 +5,7 @@ import { readBytes, readString, writeBytes, writeString } from "./buffer"; import { State } from "./WasmWrapper"; import { msgpackEncode } from "@polywrap/msgpack-js"; -import { - CoreClient, - Uri, - ErrorSource, - UriPackageOrWrapper, - UriResolutionContext, - Wrapper, - getEnvFromUriHistory, -} from "@polywrap/core-js"; -import { ResultErr, ResultOk } from "@polywrap/result"; +import { CoreClient, Uri, ErrorSource } from "@polywrap/core-js"; export const createImports = (config: { client: CoreClient; @@ -49,73 +40,21 @@ export const createImports = (config: { const method = readString(memory.buffer, methodPtr, methodLen); const args = readBytes(memory.buffer, argsPtr, argsLen); - const loadSubinvokeContext = - state.resolutionContext?.createSubContext() ?? - new UriResolutionContext(); - const wrapperResult = await client.loadWrapper( - Uri.from(uri), - loadSubinvokeContext - ); - - if (state.resolutionContext) { - state.resolutionContext.trackStep({ - sourceUri: Uri.from(uri), - result: wrapperResult.ok - ? ResultOk({ - type: "wrapper", - uri: Uri.from(uri), - wrapper: wrapperResult.value as Wrapper, - } as UriPackageOrWrapper) - : ResultErr(wrapperResult.error), - description: `Subinvoke - Load(${uri})`, - subHistory: loadSubinvokeContext.getHistory(), - }); - } - - if (!wrapperResult.ok) { - state.subinvoke.error = `${wrapperResult.error?.name}: ${wrapperResult.error?.message}`; + const result = await client.invoke({ + uri: Uri.from(uri), + method: method, + args: new Uint8Array(args), + encodeResult: true, + resolutionContext: state.resolutionContext, + }); - return false; + if (result.ok) { + state.subinvoke.result = result.value; } else { - const env = getEnvFromUriHistory( - loadSubinvokeContext.getResolutionPath(), - client - ); - - const subinvokeContext = - state.resolutionContext?.createSubContext() ?? - new UriResolutionContext(); - const result = await client.invokeWrapper({ - wrapper: wrapperResult.value, - uri: Uri.from(uri), - method: method, - args: new Uint8Array(args), - encodeResult: true, - env, - resolutionContext: subinvokeContext, - }); - - if (state.resolutionContext) { - state.resolutionContext.trackStep({ - sourceUri: Uri.from(uri), - result: result.ok - ? ResultOk({ - type: "uri", - uri: Uri.from(uri), - } as UriPackageOrWrapper) - : ResultErr(result.error), - description: `Subinvoke - Invoke(${uri})`, - subHistory: subinvokeContext.getHistory(), - }); - } - if (result.ok) { - state.subinvoke.result = result.value; - } else { - state.subinvoke.error = `${result.error?.name}: ${result.error?.message}`; - } - - return result.ok; + state.subinvoke.error = `${result.error?.name}: ${result.error?.message}`; } + + return result.ok; }, // Give WASM the size of the result __wrap_subinvoke_result_len: (): u32 => { diff --git a/yarn.lock b/yarn.lock index 1591f2db6..7b8b6004d 100644 --- a/yarn.lock +++ b/yarn.lock @@ -9322,6 +9322,13 @@ semver@7.5.0, semver@7.x, semver@^7.1.1, semver@^7.1.3, semver@^7.2.1, semver@^7 dependencies: lru-cache "^6.0.0" +semver@7.x, semver@^7.1.1, semver@^7.1.3, semver@^7.2.1, semver@^7.3.2, semver@^7.3.4, semver@^7.3.5: + version "7.5.0" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.5.0.tgz#ed8c5dc8efb6c629c88b23d41dc9bf40c1d96cd0" + integrity sha512-+XC0AD/R7Q2mPSRuy2Id0+CGTZ98+8f+KvwirxOKIEyid+XSx6HbC63p+O4IndTHuX5Z+JxQ0TghCkO5Cg/2HA== + dependencies: + lru-cache "^6.0.0" + semver@^6.0.0, semver@^6.3.0: version "6.3.0" resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" From d5836aa724d3cd9760f8825e7e384ecefc36bc54 Mon Sep 17 00:00:00 2001 From: Jure Bogunovic Date: Tue, 18 Apr 2023 00:51:18 +0200 Subject: [PATCH 07/31] removed unused method --- .../js/uri-resolver-extensions/src/UriResolverWrapper.ts | 9 --------- 1 file changed, 9 deletions(-) diff --git a/packages/js/uri-resolver-extensions/src/UriResolverWrapper.ts b/packages/js/uri-resolver-extensions/src/UriResolverWrapper.ts index 6f8844b83..199da6afd 100644 --- a/packages/js/uri-resolver-extensions/src/UriResolverWrapper.ts +++ b/packages/js/uri-resolver-extensions/src/UriResolverWrapper.ts @@ -56,15 +56,6 @@ export class UriResolverWrapper implements IUriResolver /* $ */ { return getResult(result.value, uri, this.implementationUri, client); } - - // $start: UriResolverWrapper-getStepDescription - /** - * A utility function for generating step descriptions to facilitate resolution context updates - * - * @returns text describing the URI resolution step - * */ - protected getStepDescription = (): string /* $ */ => - `ResolverExtension (${this.implementationUri.uri})`; } const getResult = ( From 2e06bd6bf54de6949ac07e5af2093d165648ab23 Mon Sep 17 00:00:00 2001 From: Jure Bogunovic Date: Tue, 18 Apr 2023 01:48:01 +0200 Subject: [PATCH 08/31] refactored UriResolverWrapper to use the new invoke resolution history --- .../core/uri-resolution/histories/sanity.json | 642 +++++++++--------- .../js/core-client/src/PolywrapCoreClient.ts | 4 +- .../src/UriResolverWrapper.ts | 45 +- 3 files changed, 342 insertions(+), 349 deletions(-) diff --git a/packages/js/client/src/__tests__/core/uri-resolution/histories/sanity.json b/packages/js/client/src/__tests__/core/uri-resolution/histories/sanity.json index 88a6a9a40..7bdad5569 100644 --- a/packages/js/client/src/__tests__/core/uri-resolution/histories/sanity.json +++ b/packages/js/client/src/__tests__/core/uri-resolution/histories/sanity.json @@ -10,420 +10,441 @@ "wrap://ens/wraps.eth:uri-resolver-ext@1.1.0 => StaticResolver - Miss", "wrap://ens/wraps.eth:uri-resolver-ext@1.1.0 => ExtendableUriResolver => uri (wrap://ipfs/QmSAXrSLcmGUkQRrApAtG5qTPmuRMMX2Zf1wihpguDQfbm)", [ - "wrap://ens/wraps.eth:uri-resolver-ext@1.1.0 => ResolverExtension - Load(wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1) => wrapper (wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1)", + "wrap://ens/wraps.eth:uri-resolver-ext@1.1.0 => ResolverExtension (wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1) => uri (wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1)", [ - "wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1 => RequestSynchronizerResolver => uri (wrap://embed/async-ipfs-uri-resolver-ext@1.0.1)", + "wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1 => Client.loadWrapper(wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1) => wrapper (wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1)", [ - "wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1 => ResolutionResultCacheResolver => uri (wrap://embed/async-ipfs-uri-resolver-ext@1.0.1)", + "wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1 => RequestSynchronizerResolver => uri (wrap://embed/async-ipfs-uri-resolver-ext@1.0.1)", [ - "wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1 => PackageToWrapperResolver => uri (wrap://embed/async-ipfs-uri-resolver-ext@1.0.1)", + "wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1 => ResolutionResultCacheResolver => uri (wrap://embed/async-ipfs-uri-resolver-ext@1.0.1)", [ - "wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1 => UriResolverAggregator => uri (wrap://embed/async-ipfs-uri-resolver-ext@1.0.1)", + "wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1 => PackageToWrapperResolver => uri (wrap://embed/async-ipfs-uri-resolver-ext@1.0.1)", [ - "wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1 => StaticResolver - Redirect (wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1 - wrap://embed/async-ipfs-uri-resolver-ext@1.0.1) => uri (wrap://embed/async-ipfs-uri-resolver-ext@1.0.1)" + "wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1 => UriResolverAggregator => uri (wrap://embed/async-ipfs-uri-resolver-ext@1.0.1)", + [ + "wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1 => StaticResolver - Redirect (wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1 - wrap://embed/async-ipfs-uri-resolver-ext@1.0.1) => uri (wrap://embed/async-ipfs-uri-resolver-ext@1.0.1)" + ] ] ] - ] - ], - "wrap://embed/async-ipfs-uri-resolver-ext@1.0.1 => RequestSynchronizerResolver => wrapper (wrap://embed/async-ipfs-uri-resolver-ext@1.0.1)", - [ - "wrap://embed/async-ipfs-uri-resolver-ext@1.0.1 => ResolutionResultCacheResolver => wrapper (wrap://embed/async-ipfs-uri-resolver-ext@1.0.1)", + ], + "wrap://embed/async-ipfs-uri-resolver-ext@1.0.1 => RequestSynchronizerResolver => wrapper (wrap://embed/async-ipfs-uri-resolver-ext@1.0.1)", [ - "wrap://embed/async-ipfs-uri-resolver-ext@1.0.1 => PackageToWrapperResolver => wrapper (wrap://embed/async-ipfs-uri-resolver-ext@1.0.1)", + "wrap://embed/async-ipfs-uri-resolver-ext@1.0.1 => ResolutionResultCacheResolver => wrapper (wrap://embed/async-ipfs-uri-resolver-ext@1.0.1)", [ - "wrap://embed/async-ipfs-uri-resolver-ext@1.0.1 => UriResolverAggregator => package (wrap://embed/async-ipfs-uri-resolver-ext@1.0.1)", + "wrap://embed/async-ipfs-uri-resolver-ext@1.0.1 => PackageToWrapperResolver => wrapper (wrap://embed/async-ipfs-uri-resolver-ext@1.0.1)", [ - "wrap://embed/async-ipfs-uri-resolver-ext@1.0.1 => StaticResolver - Package (wrap://embed/async-ipfs-uri-resolver-ext@1.0.1) => package (wrap://embed/async-ipfs-uri-resolver-ext@1.0.1)" + "wrap://embed/async-ipfs-uri-resolver-ext@1.0.1 => UriResolverAggregator => package (wrap://embed/async-ipfs-uri-resolver-ext@1.0.1)", + [ + "wrap://embed/async-ipfs-uri-resolver-ext@1.0.1 => StaticResolver - Package (wrap://embed/async-ipfs-uri-resolver-ext@1.0.1) => package (wrap://embed/async-ipfs-uri-resolver-ext@1.0.1)" + ] ] ] ] - ] + ], + "wrap://embed/async-ipfs-uri-resolver-ext@1.0.1 => Client.invoke(wrap://embed/async-ipfs-uri-resolver-ext@1.0.1)" ], - "wrap://ens/wraps.eth:uri-resolver-ext@1.1.0 => ResolverExtension - Invoke(wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1)", - "wrap://ens/wraps.eth:uri-resolver-ext@1.1.0 => ResolverExtension - Load(wrap://ens/wraps.eth:ens-text-record-uri-resolver-ext@1.0.1) => wrapper (wrap://ens/wraps.eth:ens-text-record-uri-resolver-ext@1.0.1)", + "wrap://ens/wraps.eth:uri-resolver-ext@1.1.0 => ResolverExtension (wrap://ens/wraps.eth:ens-text-record-uri-resolver-ext@1.0.1) => uri (wrap://ens/wraps.eth:ens-text-record-uri-resolver-ext@1.0.1)", [ - "wrap://ens/wraps.eth:ens-text-record-uri-resolver-ext@1.0.1 => RequestSynchronizerResolver => uri (wrap://ipfs/QmXcHWtKkfrFmcczdMSXH7udsSyV3UJeoWzkaUqGBm1oYs)", + "wrap://ens/wraps.eth:ens-text-record-uri-resolver-ext@1.0.1 => Client.loadWrapper(wrap://ens/wraps.eth:ens-text-record-uri-resolver-ext@1.0.1) => wrapper (wrap://ens/wraps.eth:ens-text-record-uri-resolver-ext@1.0.1)", [ - "wrap://ens/wraps.eth:ens-text-record-uri-resolver-ext@1.0.1 => ResolutionResultCacheResolver => uri (wrap://ipfs/QmXcHWtKkfrFmcczdMSXH7udsSyV3UJeoWzkaUqGBm1oYs)", + "wrap://ens/wraps.eth:ens-text-record-uri-resolver-ext@1.0.1 => RequestSynchronizerResolver => uri (wrap://ipfs/QmXcHWtKkfrFmcczdMSXH7udsSyV3UJeoWzkaUqGBm1oYs)", [ - "wrap://ens/wraps.eth:ens-text-record-uri-resolver-ext@1.0.1 => PackageToWrapperResolver => uri (wrap://ipfs/QmXcHWtKkfrFmcczdMSXH7udsSyV3UJeoWzkaUqGBm1oYs)", + "wrap://ens/wraps.eth:ens-text-record-uri-resolver-ext@1.0.1 => ResolutionResultCacheResolver => uri (wrap://ipfs/QmXcHWtKkfrFmcczdMSXH7udsSyV3UJeoWzkaUqGBm1oYs)", [ - "wrap://ens/wraps.eth:ens-text-record-uri-resolver-ext@1.0.1 => UriResolverAggregator => uri (wrap://ipfs/QmXcHWtKkfrFmcczdMSXH7udsSyV3UJeoWzkaUqGBm1oYs)", + "wrap://ens/wraps.eth:ens-text-record-uri-resolver-ext@1.0.1 => PackageToWrapperResolver => uri (wrap://ipfs/QmXcHWtKkfrFmcczdMSXH7udsSyV3UJeoWzkaUqGBm1oYs)", [ - "wrap://ens/wraps.eth:ens-text-record-uri-resolver-ext@1.0.1 => StaticResolver - Redirect (wrap://ens/wraps.eth:ens-text-record-uri-resolver-ext@1.0.1 - wrap://ipfs/QmXcHWtKkfrFmcczdMSXH7udsSyV3UJeoWzkaUqGBm1oYs) => uri (wrap://ipfs/QmXcHWtKkfrFmcczdMSXH7udsSyV3UJeoWzkaUqGBm1oYs)" + "wrap://ens/wraps.eth:ens-text-record-uri-resolver-ext@1.0.1 => UriResolverAggregator => uri (wrap://ipfs/QmXcHWtKkfrFmcczdMSXH7udsSyV3UJeoWzkaUqGBm1oYs)", + [ + "wrap://ens/wraps.eth:ens-text-record-uri-resolver-ext@1.0.1 => StaticResolver - Redirect (wrap://ens/wraps.eth:ens-text-record-uri-resolver-ext@1.0.1 - wrap://ipfs/QmXcHWtKkfrFmcczdMSXH7udsSyV3UJeoWzkaUqGBm1oYs) => uri (wrap://ipfs/QmXcHWtKkfrFmcczdMSXH7udsSyV3UJeoWzkaUqGBm1oYs)" + ] ] ] - ] - ], - "wrap://ipfs/QmXcHWtKkfrFmcczdMSXH7udsSyV3UJeoWzkaUqGBm1oYs => RequestSynchronizerResolver => wrapper (wrap://ipfs/QmXcHWtKkfrFmcczdMSXH7udsSyV3UJeoWzkaUqGBm1oYs)", - [ - "wrap://ipfs/QmXcHWtKkfrFmcczdMSXH7udsSyV3UJeoWzkaUqGBm1oYs => ResolutionResultCacheResolver => wrapper (wrap://ipfs/QmXcHWtKkfrFmcczdMSXH7udsSyV3UJeoWzkaUqGBm1oYs)", + ], + "wrap://ipfs/QmXcHWtKkfrFmcczdMSXH7udsSyV3UJeoWzkaUqGBm1oYs => RequestSynchronizerResolver => wrapper (wrap://ipfs/QmXcHWtKkfrFmcczdMSXH7udsSyV3UJeoWzkaUqGBm1oYs)", [ - "wrap://ipfs/QmXcHWtKkfrFmcczdMSXH7udsSyV3UJeoWzkaUqGBm1oYs => PackageToWrapperResolver => wrapper (wrap://ipfs/QmXcHWtKkfrFmcczdMSXH7udsSyV3UJeoWzkaUqGBm1oYs)", + "wrap://ipfs/QmXcHWtKkfrFmcczdMSXH7udsSyV3UJeoWzkaUqGBm1oYs => ResolutionResultCacheResolver => wrapper (wrap://ipfs/QmXcHWtKkfrFmcczdMSXH7udsSyV3UJeoWzkaUqGBm1oYs)", [ - "wrap://ipfs/QmXcHWtKkfrFmcczdMSXH7udsSyV3UJeoWzkaUqGBm1oYs => UriResolverAggregator => package (wrap://ipfs/QmXcHWtKkfrFmcczdMSXH7udsSyV3UJeoWzkaUqGBm1oYs)", + "wrap://ipfs/QmXcHWtKkfrFmcczdMSXH7udsSyV3UJeoWzkaUqGBm1oYs => PackageToWrapperResolver => wrapper (wrap://ipfs/QmXcHWtKkfrFmcczdMSXH7udsSyV3UJeoWzkaUqGBm1oYs)", [ - "wrap://ipfs/QmXcHWtKkfrFmcczdMSXH7udsSyV3UJeoWzkaUqGBm1oYs => StaticResolver - Miss", - "wrap://ipfs/QmXcHWtKkfrFmcczdMSXH7udsSyV3UJeoWzkaUqGBm1oYs => ExtendableUriResolver => package (wrap://ipfs/QmXcHWtKkfrFmcczdMSXH7udsSyV3UJeoWzkaUqGBm1oYs)", + "wrap://ipfs/QmXcHWtKkfrFmcczdMSXH7udsSyV3UJeoWzkaUqGBm1oYs => UriResolverAggregator => package (wrap://ipfs/QmXcHWtKkfrFmcczdMSXH7udsSyV3UJeoWzkaUqGBm1oYs)", [ - "wrap://ipfs/QmXcHWtKkfrFmcczdMSXH7udsSyV3UJeoWzkaUqGBm1oYs => ResolverExtension - Load(wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1) => wrapper (wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1)", - [ - "wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1 => RequestSynchronizerResolver => uri (wrap://embed/async-ipfs-uri-resolver-ext@1.0.1)", - [ - "wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1 => ResolutionResultCacheResolver (Cache) => uri (wrap://embed/async-ipfs-uri-resolver-ext@1.0.1)" - ], - "wrap://embed/async-ipfs-uri-resolver-ext@1.0.1 => RequestSynchronizerResolver => wrapper (wrap://embed/async-ipfs-uri-resolver-ext@1.0.1)", - [ - "wrap://embed/async-ipfs-uri-resolver-ext@1.0.1 => ResolutionResultCacheResolver (Cache) => wrapper (wrap://embed/async-ipfs-uri-resolver-ext@1.0.1)" - ] - ], - "wrap://ipfs/QmXcHWtKkfrFmcczdMSXH7udsSyV3UJeoWzkaUqGBm1oYs => ResolverExtension - Invoke(wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1) => package (wrap://ipfs/QmXcHWtKkfrFmcczdMSXH7udsSyV3UJeoWzkaUqGBm1oYs)", + "wrap://ipfs/QmXcHWtKkfrFmcczdMSXH7udsSyV3UJeoWzkaUqGBm1oYs => StaticResolver - Miss", + "wrap://ipfs/QmXcHWtKkfrFmcczdMSXH7udsSyV3UJeoWzkaUqGBm1oYs => ExtendableUriResolver => package (wrap://ipfs/QmXcHWtKkfrFmcczdMSXH7udsSyV3UJeoWzkaUqGBm1oYs)", [ - "wrap://plugin/concurrent@1.0.0 => Client- loadWrapper(wrap://plugin/concurrent@1.0.0) => wrapper (wrap://plugin/concurrent@1.0.0)", + "wrap://ipfs/QmXcHWtKkfrFmcczdMSXH7udsSyV3UJeoWzkaUqGBm1oYs => ResolverExtension (wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1) => uri (wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1)", [ - "wrap://plugin/concurrent@1.0.0 => RequestSynchronizerResolver => wrapper (wrap://plugin/concurrent@1.0.0)", + "wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1 => Client.loadWrapper(wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1) => wrapper (wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1)", + [ + "wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1 => RequestSynchronizerResolver => uri (wrap://embed/async-ipfs-uri-resolver-ext@1.0.1)", + [ + "wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1 => ResolutionResultCacheResolver (Cache) => uri (wrap://embed/async-ipfs-uri-resolver-ext@1.0.1)" + ], + "wrap://embed/async-ipfs-uri-resolver-ext@1.0.1 => RequestSynchronizerResolver => wrapper (wrap://embed/async-ipfs-uri-resolver-ext@1.0.1)", + [ + "wrap://embed/async-ipfs-uri-resolver-ext@1.0.1 => ResolutionResultCacheResolver (Cache) => wrapper (wrap://embed/async-ipfs-uri-resolver-ext@1.0.1)" + ] + ], + "wrap://embed/async-ipfs-uri-resolver-ext@1.0.1 => Client.invoke(wrap://embed/async-ipfs-uri-resolver-ext@1.0.1)", [ - "wrap://plugin/concurrent@1.0.0 => ResolutionResultCacheResolver => wrapper (wrap://plugin/concurrent@1.0.0)", + "wrap://plugin/concurrent@1.0.0 => Client.loadWrapper(wrap://plugin/concurrent@1.0.0) => wrapper (wrap://plugin/concurrent@1.0.0)", [ - "wrap://plugin/concurrent@1.0.0 => PackageToWrapperResolver => wrapper (wrap://plugin/concurrent@1.0.0)", + "wrap://plugin/concurrent@1.0.0 => RequestSynchronizerResolver => wrapper (wrap://plugin/concurrent@1.0.0)", [ - "wrap://plugin/concurrent@1.0.0 => UriResolverAggregator => package (wrap://plugin/concurrent@1.0.0)", + "wrap://plugin/concurrent@1.0.0 => ResolutionResultCacheResolver => wrapper (wrap://plugin/concurrent@1.0.0)", [ - "wrap://plugin/concurrent@1.0.0 => StaticResolver - Package (wrap://plugin/concurrent@1.0.0) => package (wrap://plugin/concurrent@1.0.0)" + "wrap://plugin/concurrent@1.0.0 => PackageToWrapperResolver => wrapper (wrap://plugin/concurrent@1.0.0)", + [ + "wrap://plugin/concurrent@1.0.0 => UriResolverAggregator => package (wrap://plugin/concurrent@1.0.0)", + [ + "wrap://plugin/concurrent@1.0.0 => StaticResolver - Package (wrap://plugin/concurrent@1.0.0) => package (wrap://plugin/concurrent@1.0.0)" + ] + ] ] ] - ] - ] - ], - "wrap://plugin/concurrent@1.0.0 => Client - Invoke(wrap://plugin/concurrent@1.0.0)", - "wrap://plugin/concurrent@1.0.0 => Client- loadWrapper(wrap://plugin/concurrent@1.0.0) => wrapper (wrap://plugin/concurrent@1.0.0)", - [ - "wrap://plugin/concurrent@1.0.0 => RequestSynchronizerResolver => wrapper (wrap://plugin/concurrent@1.0.0)", - [ - "wrap://plugin/concurrent@1.0.0 => ResolutionResultCacheResolver (Cache) => wrapper (wrap://plugin/concurrent@1.0.0)" + ], + "wrap://plugin/concurrent@1.0.0 => Client.invoke(wrap://plugin/concurrent@1.0.0)", + "wrap://plugin/concurrent@1.0.0 => Client.loadWrapper(wrap://plugin/concurrent@1.0.0) => wrapper (wrap://plugin/concurrent@1.0.0)", + [ + "wrap://plugin/concurrent@1.0.0 => RequestSynchronizerResolver => wrapper (wrap://plugin/concurrent@1.0.0)", + [ + "wrap://plugin/concurrent@1.0.0 => ResolutionResultCacheResolver (Cache) => wrapper (wrap://plugin/concurrent@1.0.0)" + ] + ], + "wrap://plugin/concurrent@1.0.0 => Client.invoke(wrap://plugin/concurrent@1.0.0)" ] - ], - "wrap://plugin/concurrent@1.0.0 => Client - Invoke(wrap://plugin/concurrent@1.0.0)" + ] ] ] ] ] ] - ] - ], - "wrap://ens/wraps.eth:uri-resolver-ext@1.1.0 => ResolverExtension - Invoke(wrap://ens/wraps.eth:ens-text-record-uri-resolver-ext@1.0.1) => uri (wrap://ipfs/QmSAXrSLcmGUkQRrApAtG5qTPmuRMMX2Zf1wihpguDQfbm)", - [ - "wrap://ipfs/QmWG8NJnvGMCosxaUWuRna33MSDR331rByGTdy4EDsVjNL => Client- loadWrapper(wrap://ipfs/QmWG8NJnvGMCosxaUWuRna33MSDR331rByGTdy4EDsVjNL) => wrapper (wrap://ipfs/QmWG8NJnvGMCosxaUWuRna33MSDR331rByGTdy4EDsVjNL)", + ], + "wrap://ipfs/QmXcHWtKkfrFmcczdMSXH7udsSyV3UJeoWzkaUqGBm1oYs => Client.invoke(wrap://ipfs/QmXcHWtKkfrFmcczdMSXH7udsSyV3UJeoWzkaUqGBm1oYs)", [ - "wrap://ipfs/QmWG8NJnvGMCosxaUWuRna33MSDR331rByGTdy4EDsVjNL => RequestSynchronizerResolver => wrapper (wrap://ipfs/QmWG8NJnvGMCosxaUWuRna33MSDR331rByGTdy4EDsVjNL)", + "wrap://ipfs/QmWG8NJnvGMCosxaUWuRna33MSDR331rByGTdy4EDsVjNL => Client.loadWrapper(wrap://ipfs/QmWG8NJnvGMCosxaUWuRna33MSDR331rByGTdy4EDsVjNL) => wrapper (wrap://ipfs/QmWG8NJnvGMCosxaUWuRna33MSDR331rByGTdy4EDsVjNL)", [ - "wrap://ipfs/QmWG8NJnvGMCosxaUWuRna33MSDR331rByGTdy4EDsVjNL => ResolutionResultCacheResolver => wrapper (wrap://ipfs/QmWG8NJnvGMCosxaUWuRna33MSDR331rByGTdy4EDsVjNL)", + "wrap://ipfs/QmWG8NJnvGMCosxaUWuRna33MSDR331rByGTdy4EDsVjNL => RequestSynchronizerResolver => wrapper (wrap://ipfs/QmWG8NJnvGMCosxaUWuRna33MSDR331rByGTdy4EDsVjNL)", [ - "wrap://ipfs/QmWG8NJnvGMCosxaUWuRna33MSDR331rByGTdy4EDsVjNL => PackageToWrapperResolver => wrapper (wrap://ipfs/QmWG8NJnvGMCosxaUWuRna33MSDR331rByGTdy4EDsVjNL)", + "wrap://ipfs/QmWG8NJnvGMCosxaUWuRna33MSDR331rByGTdy4EDsVjNL => ResolutionResultCacheResolver => wrapper (wrap://ipfs/QmWG8NJnvGMCosxaUWuRna33MSDR331rByGTdy4EDsVjNL)", [ - "wrap://ipfs/QmWG8NJnvGMCosxaUWuRna33MSDR331rByGTdy4EDsVjNL => UriResolverAggregator => package (wrap://ipfs/QmWG8NJnvGMCosxaUWuRna33MSDR331rByGTdy4EDsVjNL)", + "wrap://ipfs/QmWG8NJnvGMCosxaUWuRna33MSDR331rByGTdy4EDsVjNL => PackageToWrapperResolver => wrapper (wrap://ipfs/QmWG8NJnvGMCosxaUWuRna33MSDR331rByGTdy4EDsVjNL)", [ - "wrap://ipfs/QmWG8NJnvGMCosxaUWuRna33MSDR331rByGTdy4EDsVjNL => StaticResolver - Miss", - "wrap://ipfs/QmWG8NJnvGMCosxaUWuRna33MSDR331rByGTdy4EDsVjNL => ExtendableUriResolver => package (wrap://ipfs/QmWG8NJnvGMCosxaUWuRna33MSDR331rByGTdy4EDsVjNL)", + "wrap://ipfs/QmWG8NJnvGMCosxaUWuRna33MSDR331rByGTdy4EDsVjNL => UriResolverAggregator => package (wrap://ipfs/QmWG8NJnvGMCosxaUWuRna33MSDR331rByGTdy4EDsVjNL)", [ - "wrap://ipfs/QmWG8NJnvGMCosxaUWuRna33MSDR331rByGTdy4EDsVjNL => ResolverExtension - Load(wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1) => wrapper (wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1)", - [ - "wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1 => RequestSynchronizerResolver => uri (wrap://embed/async-ipfs-uri-resolver-ext@1.0.1)", - [ - "wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1 => ResolutionResultCacheResolver (Cache) => uri (wrap://embed/async-ipfs-uri-resolver-ext@1.0.1)" - ], - "wrap://embed/async-ipfs-uri-resolver-ext@1.0.1 => RequestSynchronizerResolver => wrapper (wrap://embed/async-ipfs-uri-resolver-ext@1.0.1)", - [ - "wrap://embed/async-ipfs-uri-resolver-ext@1.0.1 => ResolutionResultCacheResolver (Cache) => wrapper (wrap://embed/async-ipfs-uri-resolver-ext@1.0.1)" - ] - ], - "wrap://ipfs/QmWG8NJnvGMCosxaUWuRna33MSDR331rByGTdy4EDsVjNL => ResolverExtension - Invoke(wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1) => package (wrap://ipfs/QmWG8NJnvGMCosxaUWuRna33MSDR331rByGTdy4EDsVjNL)", + "wrap://ipfs/QmWG8NJnvGMCosxaUWuRna33MSDR331rByGTdy4EDsVjNL => StaticResolver - Miss", + "wrap://ipfs/QmWG8NJnvGMCosxaUWuRna33MSDR331rByGTdy4EDsVjNL => ExtendableUriResolver => package (wrap://ipfs/QmWG8NJnvGMCosxaUWuRna33MSDR331rByGTdy4EDsVjNL)", [ - "wrap://plugin/concurrent@1.0.0 => Client- loadWrapper(wrap://plugin/concurrent@1.0.0) => wrapper (wrap://plugin/concurrent@1.0.0)", + "wrap://ipfs/QmWG8NJnvGMCosxaUWuRna33MSDR331rByGTdy4EDsVjNL => ResolverExtension (wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1) => uri (wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1)", [ - "wrap://plugin/concurrent@1.0.0 => RequestSynchronizerResolver => wrapper (wrap://plugin/concurrent@1.0.0)", + "wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1 => Client.loadWrapper(wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1) => wrapper (wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1)", [ - "wrap://plugin/concurrent@1.0.0 => ResolutionResultCacheResolver (Cache) => wrapper (wrap://plugin/concurrent@1.0.0)" - ] - ], - "wrap://plugin/concurrent@1.0.0 => Client - Invoke(wrap://plugin/concurrent@1.0.0)", - "wrap://plugin/concurrent@1.0.0 => Client- loadWrapper(wrap://plugin/concurrent@1.0.0) => wrapper (wrap://plugin/concurrent@1.0.0)", - [ - "wrap://plugin/concurrent@1.0.0 => RequestSynchronizerResolver => wrapper (wrap://plugin/concurrent@1.0.0)", + "wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1 => RequestSynchronizerResolver => uri (wrap://embed/async-ipfs-uri-resolver-ext@1.0.1)", + [ + "wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1 => ResolutionResultCacheResolver (Cache) => uri (wrap://embed/async-ipfs-uri-resolver-ext@1.0.1)" + ], + "wrap://embed/async-ipfs-uri-resolver-ext@1.0.1 => RequestSynchronizerResolver => wrapper (wrap://embed/async-ipfs-uri-resolver-ext@1.0.1)", + [ + "wrap://embed/async-ipfs-uri-resolver-ext@1.0.1 => ResolutionResultCacheResolver (Cache) => wrapper (wrap://embed/async-ipfs-uri-resolver-ext@1.0.1)" + ] + ], + "wrap://embed/async-ipfs-uri-resolver-ext@1.0.1 => Client.invoke(wrap://embed/async-ipfs-uri-resolver-ext@1.0.1)", [ - "wrap://plugin/concurrent@1.0.0 => ResolutionResultCacheResolver (Cache) => wrapper (wrap://plugin/concurrent@1.0.0)" + "wrap://plugin/concurrent@1.0.0 => Client.loadWrapper(wrap://plugin/concurrent@1.0.0) => wrapper (wrap://plugin/concurrent@1.0.0)", + [ + "wrap://plugin/concurrent@1.0.0 => RequestSynchronizerResolver => wrapper (wrap://plugin/concurrent@1.0.0)", + [ + "wrap://plugin/concurrent@1.0.0 => ResolutionResultCacheResolver (Cache) => wrapper (wrap://plugin/concurrent@1.0.0)" + ] + ], + "wrap://plugin/concurrent@1.0.0 => Client.invoke(wrap://plugin/concurrent@1.0.0)", + "wrap://plugin/concurrent@1.0.0 => Client.loadWrapper(wrap://plugin/concurrent@1.0.0) => wrapper (wrap://plugin/concurrent@1.0.0)", + [ + "wrap://plugin/concurrent@1.0.0 => RequestSynchronizerResolver => wrapper (wrap://plugin/concurrent@1.0.0)", + [ + "wrap://plugin/concurrent@1.0.0 => ResolutionResultCacheResolver (Cache) => wrapper (wrap://plugin/concurrent@1.0.0)" + ] + ], + "wrap://plugin/concurrent@1.0.0 => Client.invoke(wrap://plugin/concurrent@1.0.0)" ] - ], - "wrap://plugin/concurrent@1.0.0 => Client - Invoke(wrap://plugin/concurrent@1.0.0)" + ] ] ] ] ] ] - ] - ], - "wrap://ipfs/QmWG8NJnvGMCosxaUWuRna33MSDR331rByGTdy4EDsVjNL => Client - Invoke(wrap://ipfs/QmWG8NJnvGMCosxaUWuRna33MSDR331rByGTdy4EDsVjNL)", - [ - "wrap://ipfs/QmPL9Njg3rGkpoJyoy8pZ5fTavjvHxNuuuiGRApzyGESZB => Client- loadWrapper(wrap://ipfs/QmPL9Njg3rGkpoJyoy8pZ5fTavjvHxNuuuiGRApzyGESZB) => wrapper (wrap://ipfs/QmPL9Njg3rGkpoJyoy8pZ5fTavjvHxNuuuiGRApzyGESZB)", + ], + "wrap://ipfs/QmWG8NJnvGMCosxaUWuRna33MSDR331rByGTdy4EDsVjNL => Client.invoke(wrap://ipfs/QmWG8NJnvGMCosxaUWuRna33MSDR331rByGTdy4EDsVjNL)", [ - "wrap://ipfs/QmPL9Njg3rGkpoJyoy8pZ5fTavjvHxNuuuiGRApzyGESZB => RequestSynchronizerResolver => wrapper (wrap://ipfs/QmPL9Njg3rGkpoJyoy8pZ5fTavjvHxNuuuiGRApzyGESZB)", + "wrap://ipfs/QmPL9Njg3rGkpoJyoy8pZ5fTavjvHxNuuuiGRApzyGESZB => Client.loadWrapper(wrap://ipfs/QmPL9Njg3rGkpoJyoy8pZ5fTavjvHxNuuuiGRApzyGESZB) => wrapper (wrap://ipfs/QmPL9Njg3rGkpoJyoy8pZ5fTavjvHxNuuuiGRApzyGESZB)", [ - "wrap://ipfs/QmPL9Njg3rGkpoJyoy8pZ5fTavjvHxNuuuiGRApzyGESZB => ResolutionResultCacheResolver => wrapper (wrap://ipfs/QmPL9Njg3rGkpoJyoy8pZ5fTavjvHxNuuuiGRApzyGESZB)", + "wrap://ipfs/QmPL9Njg3rGkpoJyoy8pZ5fTavjvHxNuuuiGRApzyGESZB => RequestSynchronizerResolver => wrapper (wrap://ipfs/QmPL9Njg3rGkpoJyoy8pZ5fTavjvHxNuuuiGRApzyGESZB)", [ - "wrap://ipfs/QmPL9Njg3rGkpoJyoy8pZ5fTavjvHxNuuuiGRApzyGESZB => PackageToWrapperResolver => wrapper (wrap://ipfs/QmPL9Njg3rGkpoJyoy8pZ5fTavjvHxNuuuiGRApzyGESZB)", + "wrap://ipfs/QmPL9Njg3rGkpoJyoy8pZ5fTavjvHxNuuuiGRApzyGESZB => ResolutionResultCacheResolver => wrapper (wrap://ipfs/QmPL9Njg3rGkpoJyoy8pZ5fTavjvHxNuuuiGRApzyGESZB)", [ - "wrap://ipfs/QmPL9Njg3rGkpoJyoy8pZ5fTavjvHxNuuuiGRApzyGESZB => UriResolverAggregator => package (wrap://ipfs/QmPL9Njg3rGkpoJyoy8pZ5fTavjvHxNuuuiGRApzyGESZB)", + "wrap://ipfs/QmPL9Njg3rGkpoJyoy8pZ5fTavjvHxNuuuiGRApzyGESZB => PackageToWrapperResolver => wrapper (wrap://ipfs/QmPL9Njg3rGkpoJyoy8pZ5fTavjvHxNuuuiGRApzyGESZB)", [ - "wrap://ipfs/QmPL9Njg3rGkpoJyoy8pZ5fTavjvHxNuuuiGRApzyGESZB => StaticResolver - Miss", - "wrap://ipfs/QmPL9Njg3rGkpoJyoy8pZ5fTavjvHxNuuuiGRApzyGESZB => ExtendableUriResolver => package (wrap://ipfs/QmPL9Njg3rGkpoJyoy8pZ5fTavjvHxNuuuiGRApzyGESZB)", + "wrap://ipfs/QmPL9Njg3rGkpoJyoy8pZ5fTavjvHxNuuuiGRApzyGESZB => UriResolverAggregator => package (wrap://ipfs/QmPL9Njg3rGkpoJyoy8pZ5fTavjvHxNuuuiGRApzyGESZB)", [ - "wrap://ipfs/QmPL9Njg3rGkpoJyoy8pZ5fTavjvHxNuuuiGRApzyGESZB => ResolverExtension - Load(wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1) => wrapper (wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1)", - [ - "wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1 => RequestSynchronizerResolver => uri (wrap://embed/async-ipfs-uri-resolver-ext@1.0.1)", - [ - "wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1 => ResolutionResultCacheResolver (Cache) => uri (wrap://embed/async-ipfs-uri-resolver-ext@1.0.1)" - ], - "wrap://embed/async-ipfs-uri-resolver-ext@1.0.1 => RequestSynchronizerResolver => wrapper (wrap://embed/async-ipfs-uri-resolver-ext@1.0.1)", - [ - "wrap://embed/async-ipfs-uri-resolver-ext@1.0.1 => ResolutionResultCacheResolver (Cache) => wrapper (wrap://embed/async-ipfs-uri-resolver-ext@1.0.1)" - ] - ], - "wrap://ipfs/QmPL9Njg3rGkpoJyoy8pZ5fTavjvHxNuuuiGRApzyGESZB => ResolverExtension - Invoke(wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1) => package (wrap://ipfs/QmPL9Njg3rGkpoJyoy8pZ5fTavjvHxNuuuiGRApzyGESZB)", + "wrap://ipfs/QmPL9Njg3rGkpoJyoy8pZ5fTavjvHxNuuuiGRApzyGESZB => StaticResolver - Miss", + "wrap://ipfs/QmPL9Njg3rGkpoJyoy8pZ5fTavjvHxNuuuiGRApzyGESZB => ExtendableUriResolver => package (wrap://ipfs/QmPL9Njg3rGkpoJyoy8pZ5fTavjvHxNuuuiGRApzyGESZB)", [ - "wrap://plugin/concurrent@1.0.0 => Client- loadWrapper(wrap://plugin/concurrent@1.0.0) => wrapper (wrap://plugin/concurrent@1.0.0)", + "wrap://ipfs/QmPL9Njg3rGkpoJyoy8pZ5fTavjvHxNuuuiGRApzyGESZB => ResolverExtension (wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1) => uri (wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1)", [ - "wrap://plugin/concurrent@1.0.0 => RequestSynchronizerResolver => wrapper (wrap://plugin/concurrent@1.0.0)", + "wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1 => Client.loadWrapper(wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1) => wrapper (wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1)", [ - "wrap://plugin/concurrent@1.0.0 => ResolutionResultCacheResolver (Cache) => wrapper (wrap://plugin/concurrent@1.0.0)" - ] - ], - "wrap://plugin/concurrent@1.0.0 => Client - Invoke(wrap://plugin/concurrent@1.0.0)", - "wrap://plugin/concurrent@1.0.0 => Client- loadWrapper(wrap://plugin/concurrent@1.0.0) => wrapper (wrap://plugin/concurrent@1.0.0)", - [ - "wrap://plugin/concurrent@1.0.0 => RequestSynchronizerResolver => wrapper (wrap://plugin/concurrent@1.0.0)", + "wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1 => RequestSynchronizerResolver => uri (wrap://embed/async-ipfs-uri-resolver-ext@1.0.1)", + [ + "wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1 => ResolutionResultCacheResolver (Cache) => uri (wrap://embed/async-ipfs-uri-resolver-ext@1.0.1)" + ], + "wrap://embed/async-ipfs-uri-resolver-ext@1.0.1 => RequestSynchronizerResolver => wrapper (wrap://embed/async-ipfs-uri-resolver-ext@1.0.1)", + [ + "wrap://embed/async-ipfs-uri-resolver-ext@1.0.1 => ResolutionResultCacheResolver (Cache) => wrapper (wrap://embed/async-ipfs-uri-resolver-ext@1.0.1)" + ] + ], + "wrap://embed/async-ipfs-uri-resolver-ext@1.0.1 => Client.invoke(wrap://embed/async-ipfs-uri-resolver-ext@1.0.1)", [ - "wrap://plugin/concurrent@1.0.0 => ResolutionResultCacheResolver (Cache) => wrapper (wrap://plugin/concurrent@1.0.0)" + "wrap://plugin/concurrent@1.0.0 => Client.loadWrapper(wrap://plugin/concurrent@1.0.0) => wrapper (wrap://plugin/concurrent@1.0.0)", + [ + "wrap://plugin/concurrent@1.0.0 => RequestSynchronizerResolver => wrapper (wrap://plugin/concurrent@1.0.0)", + [ + "wrap://plugin/concurrent@1.0.0 => ResolutionResultCacheResolver (Cache) => wrapper (wrap://plugin/concurrent@1.0.0)" + ] + ], + "wrap://plugin/concurrent@1.0.0 => Client.invoke(wrap://plugin/concurrent@1.0.0)", + "wrap://plugin/concurrent@1.0.0 => Client.loadWrapper(wrap://plugin/concurrent@1.0.0) => wrapper (wrap://plugin/concurrent@1.0.0)", + [ + "wrap://plugin/concurrent@1.0.0 => RequestSynchronizerResolver => wrapper (wrap://plugin/concurrent@1.0.0)", + [ + "wrap://plugin/concurrent@1.0.0 => ResolutionResultCacheResolver (Cache) => wrapper (wrap://plugin/concurrent@1.0.0)" + ] + ], + "wrap://plugin/concurrent@1.0.0 => Client.invoke(wrap://plugin/concurrent@1.0.0)" ] - ], - "wrap://plugin/concurrent@1.0.0 => Client - Invoke(wrap://plugin/concurrent@1.0.0)" + ] ] ] ] ] ] - ] - ], - "wrap://ipfs/QmPL9Njg3rGkpoJyoy8pZ5fTavjvHxNuuuiGRApzyGESZB => Client - Invoke(wrap://ipfs/QmPL9Njg3rGkpoJyoy8pZ5fTavjvHxNuuuiGRApzyGESZB)", - "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => Client- loadWrapper(wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5) => wrapper (wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)", - [ - "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => RequestSynchronizerResolver => wrapper (wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)", + ], + "wrap://ipfs/QmPL9Njg3rGkpoJyoy8pZ5fTavjvHxNuuuiGRApzyGESZB => Client.invoke(wrap://ipfs/QmPL9Njg3rGkpoJyoy8pZ5fTavjvHxNuuuiGRApzyGESZB)", + "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => Client.loadWrapper(wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5) => wrapper (wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)", [ - "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => ResolutionResultCacheResolver => wrapper (wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)", + "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => RequestSynchronizerResolver => wrapper (wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)", [ - "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => PackageToWrapperResolver => wrapper (wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)", + "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => ResolutionResultCacheResolver => wrapper (wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)", [ - "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => UriResolverAggregator => package (wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)", + "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => PackageToWrapperResolver => wrapper (wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)", [ - "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => StaticResolver - Miss", - "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => ExtendableUriResolver => package (wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)", + "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => UriResolverAggregator => package (wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)", [ - "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => ResolverExtension - Load(wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1) => wrapper (wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1)", + "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => StaticResolver - Miss", + "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => ExtendableUriResolver => package (wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)", [ - "wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1 => RequestSynchronizerResolver => uri (wrap://embed/async-ipfs-uri-resolver-ext@1.0.1)", + "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => ResolverExtension (wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1) => uri (wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1)", [ - "wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1 => ResolutionResultCacheResolver (Cache) => uri (wrap://embed/async-ipfs-uri-resolver-ext@1.0.1)" - ], - "wrap://embed/async-ipfs-uri-resolver-ext@1.0.1 => RequestSynchronizerResolver => wrapper (wrap://embed/async-ipfs-uri-resolver-ext@1.0.1)", - [ - "wrap://embed/async-ipfs-uri-resolver-ext@1.0.1 => ResolutionResultCacheResolver (Cache) => wrapper (wrap://embed/async-ipfs-uri-resolver-ext@1.0.1)" - ] - ], - "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => ResolverExtension - Invoke(wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1) => package (wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)", - [ - "wrap://plugin/concurrent@1.0.0 => Client- loadWrapper(wrap://plugin/concurrent@1.0.0) => wrapper (wrap://plugin/concurrent@1.0.0)", - [ - "wrap://plugin/concurrent@1.0.0 => RequestSynchronizerResolver => wrapper (wrap://plugin/concurrent@1.0.0)", + "wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1 => Client.loadWrapper(wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1) => wrapper (wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1)", [ - "wrap://plugin/concurrent@1.0.0 => ResolutionResultCacheResolver (Cache) => wrapper (wrap://plugin/concurrent@1.0.0)" - ] - ], - "wrap://plugin/concurrent@1.0.0 => Client - Invoke(wrap://plugin/concurrent@1.0.0)", - "wrap://plugin/concurrent@1.0.0 => Client- loadWrapper(wrap://plugin/concurrent@1.0.0) => wrapper (wrap://plugin/concurrent@1.0.0)", - [ - "wrap://plugin/concurrent@1.0.0 => RequestSynchronizerResolver => wrapper (wrap://plugin/concurrent@1.0.0)", + "wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1 => RequestSynchronizerResolver => uri (wrap://embed/async-ipfs-uri-resolver-ext@1.0.1)", + [ + "wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1 => ResolutionResultCacheResolver (Cache) => uri (wrap://embed/async-ipfs-uri-resolver-ext@1.0.1)" + ], + "wrap://embed/async-ipfs-uri-resolver-ext@1.0.1 => RequestSynchronizerResolver => wrapper (wrap://embed/async-ipfs-uri-resolver-ext@1.0.1)", + [ + "wrap://embed/async-ipfs-uri-resolver-ext@1.0.1 => ResolutionResultCacheResolver (Cache) => wrapper (wrap://embed/async-ipfs-uri-resolver-ext@1.0.1)" + ] + ], + "wrap://embed/async-ipfs-uri-resolver-ext@1.0.1 => Client.invoke(wrap://embed/async-ipfs-uri-resolver-ext@1.0.1)", [ - "wrap://plugin/concurrent@1.0.0 => ResolutionResultCacheResolver (Cache) => wrapper (wrap://plugin/concurrent@1.0.0)" + "wrap://plugin/concurrent@1.0.0 => Client.loadWrapper(wrap://plugin/concurrent@1.0.0) => wrapper (wrap://plugin/concurrent@1.0.0)", + [ + "wrap://plugin/concurrent@1.0.0 => RequestSynchronizerResolver => wrapper (wrap://plugin/concurrent@1.0.0)", + [ + "wrap://plugin/concurrent@1.0.0 => ResolutionResultCacheResolver (Cache) => wrapper (wrap://plugin/concurrent@1.0.0)" + ] + ], + "wrap://plugin/concurrent@1.0.0 => Client.invoke(wrap://plugin/concurrent@1.0.0)", + "wrap://plugin/concurrent@1.0.0 => Client.loadWrapper(wrap://plugin/concurrent@1.0.0) => wrapper (wrap://plugin/concurrent@1.0.0)", + [ + "wrap://plugin/concurrent@1.0.0 => RequestSynchronizerResolver => wrapper (wrap://plugin/concurrent@1.0.0)", + [ + "wrap://plugin/concurrent@1.0.0 => ResolutionResultCacheResolver (Cache) => wrapper (wrap://plugin/concurrent@1.0.0)" + ] + ], + "wrap://plugin/concurrent@1.0.0 => Client.invoke(wrap://plugin/concurrent@1.0.0)" ] - ], - "wrap://plugin/concurrent@1.0.0 => Client - Invoke(wrap://plugin/concurrent@1.0.0)" + ] ] ] ] ] ] - ] - ], - "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => Client - Invoke(wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)", - "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => Client- loadWrapper(wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5) => wrapper (wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)", - [ - "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => RequestSynchronizerResolver => wrapper (wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)", + ], + "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => Client.invoke(wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)", + "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => Client.loadWrapper(wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5) => wrapper (wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)", [ - "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => ResolutionResultCacheResolver (Cache) => wrapper (wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)" - ] - ], - "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => Client - Invoke(wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)", - "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => Client- loadWrapper(wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5) => wrapper (wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)", - [ - "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => RequestSynchronizerResolver => wrapper (wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)", + "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => RequestSynchronizerResolver => wrapper (wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)", + [ + "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => ResolutionResultCacheResolver (Cache) => wrapper (wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)" + ] + ], + "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => Client.invoke(wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)", + "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => Client.loadWrapper(wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5) => wrapper (wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)", [ - "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => ResolutionResultCacheResolver (Cache) => wrapper (wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)" - ] - ], - "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => Client - Invoke(wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)", - "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => Client- loadWrapper(wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5) => wrapper (wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)", - [ - "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => RequestSynchronizerResolver => wrapper (wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)", + "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => RequestSynchronizerResolver => wrapper (wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)", + [ + "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => ResolutionResultCacheResolver (Cache) => wrapper (wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)" + ] + ], + "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => Client.invoke(wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)", + "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => Client.loadWrapper(wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5) => wrapper (wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)", [ - "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => ResolutionResultCacheResolver (Cache) => wrapper (wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)" - ] - ], - "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => Client - Invoke(wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)", - "wrap://ipfs/QmS4Z679ZE8WwZSoYB8w9gDSERHAoWG1fX94oqdWpfpDq3 => Client- loadWrapper(wrap://ipfs/QmS4Z679ZE8WwZSoYB8w9gDSERHAoWG1fX94oqdWpfpDq3) => wrapper (wrap://ipfs/QmS4Z679ZE8WwZSoYB8w9gDSERHAoWG1fX94oqdWpfpDq3)", - [ - "wrap://ipfs/QmS4Z679ZE8WwZSoYB8w9gDSERHAoWG1fX94oqdWpfpDq3 => RequestSynchronizerResolver => wrapper (wrap://ipfs/QmS4Z679ZE8WwZSoYB8w9gDSERHAoWG1fX94oqdWpfpDq3)", + "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => RequestSynchronizerResolver => wrapper (wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)", + [ + "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => ResolutionResultCacheResolver (Cache) => wrapper (wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)" + ] + ], + "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => Client.invoke(wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)", + "wrap://ipfs/QmS4Z679ZE8WwZSoYB8w9gDSERHAoWG1fX94oqdWpfpDq3 => Client.loadWrapper(wrap://ipfs/QmS4Z679ZE8WwZSoYB8w9gDSERHAoWG1fX94oqdWpfpDq3) => wrapper (wrap://ipfs/QmS4Z679ZE8WwZSoYB8w9gDSERHAoWG1fX94oqdWpfpDq3)", [ - "wrap://ipfs/QmS4Z679ZE8WwZSoYB8w9gDSERHAoWG1fX94oqdWpfpDq3 => ResolutionResultCacheResolver => wrapper (wrap://ipfs/QmS4Z679ZE8WwZSoYB8w9gDSERHAoWG1fX94oqdWpfpDq3)", + "wrap://ipfs/QmS4Z679ZE8WwZSoYB8w9gDSERHAoWG1fX94oqdWpfpDq3 => RequestSynchronizerResolver => wrapper (wrap://ipfs/QmS4Z679ZE8WwZSoYB8w9gDSERHAoWG1fX94oqdWpfpDq3)", [ - "wrap://ipfs/QmS4Z679ZE8WwZSoYB8w9gDSERHAoWG1fX94oqdWpfpDq3 => PackageToWrapperResolver => wrapper (wrap://ipfs/QmS4Z679ZE8WwZSoYB8w9gDSERHAoWG1fX94oqdWpfpDq3)", + "wrap://ipfs/QmS4Z679ZE8WwZSoYB8w9gDSERHAoWG1fX94oqdWpfpDq3 => ResolutionResultCacheResolver => wrapper (wrap://ipfs/QmS4Z679ZE8WwZSoYB8w9gDSERHAoWG1fX94oqdWpfpDq3)", [ - "wrap://ipfs/QmS4Z679ZE8WwZSoYB8w9gDSERHAoWG1fX94oqdWpfpDq3 => UriResolverAggregator => package (wrap://ipfs/QmS4Z679ZE8WwZSoYB8w9gDSERHAoWG1fX94oqdWpfpDq3)", + "wrap://ipfs/QmS4Z679ZE8WwZSoYB8w9gDSERHAoWG1fX94oqdWpfpDq3 => PackageToWrapperResolver => wrapper (wrap://ipfs/QmS4Z679ZE8WwZSoYB8w9gDSERHAoWG1fX94oqdWpfpDq3)", [ - "wrap://ipfs/QmS4Z679ZE8WwZSoYB8w9gDSERHAoWG1fX94oqdWpfpDq3 => StaticResolver - Miss", - "wrap://ipfs/QmS4Z679ZE8WwZSoYB8w9gDSERHAoWG1fX94oqdWpfpDq3 => ExtendableUriResolver => package (wrap://ipfs/QmS4Z679ZE8WwZSoYB8w9gDSERHAoWG1fX94oqdWpfpDq3)", + "wrap://ipfs/QmS4Z679ZE8WwZSoYB8w9gDSERHAoWG1fX94oqdWpfpDq3 => UriResolverAggregator => package (wrap://ipfs/QmS4Z679ZE8WwZSoYB8w9gDSERHAoWG1fX94oqdWpfpDq3)", [ - "wrap://ipfs/QmS4Z679ZE8WwZSoYB8w9gDSERHAoWG1fX94oqdWpfpDq3 => ResolverExtension - Load(wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1) => wrapper (wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1)", + "wrap://ipfs/QmS4Z679ZE8WwZSoYB8w9gDSERHAoWG1fX94oqdWpfpDq3 => StaticResolver - Miss", + "wrap://ipfs/QmS4Z679ZE8WwZSoYB8w9gDSERHAoWG1fX94oqdWpfpDq3 => ExtendableUriResolver => package (wrap://ipfs/QmS4Z679ZE8WwZSoYB8w9gDSERHAoWG1fX94oqdWpfpDq3)", [ - "wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1 => RequestSynchronizerResolver => uri (wrap://embed/async-ipfs-uri-resolver-ext@1.0.1)", + "wrap://ipfs/QmS4Z679ZE8WwZSoYB8w9gDSERHAoWG1fX94oqdWpfpDq3 => ResolverExtension (wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1) => uri (wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1)", [ - "wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1 => ResolutionResultCacheResolver (Cache) => uri (wrap://embed/async-ipfs-uri-resolver-ext@1.0.1)" - ], - "wrap://embed/async-ipfs-uri-resolver-ext@1.0.1 => RequestSynchronizerResolver => wrapper (wrap://embed/async-ipfs-uri-resolver-ext@1.0.1)", - [ - "wrap://embed/async-ipfs-uri-resolver-ext@1.0.1 => ResolutionResultCacheResolver (Cache) => wrapper (wrap://embed/async-ipfs-uri-resolver-ext@1.0.1)" - ] - ], - "wrap://ipfs/QmS4Z679ZE8WwZSoYB8w9gDSERHAoWG1fX94oqdWpfpDq3 => ResolverExtension - Invoke(wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1) => package (wrap://ipfs/QmS4Z679ZE8WwZSoYB8w9gDSERHAoWG1fX94oqdWpfpDq3)", - [ - "wrap://plugin/concurrent@1.0.0 => Client- loadWrapper(wrap://plugin/concurrent@1.0.0) => wrapper (wrap://plugin/concurrent@1.0.0)", - [ - "wrap://plugin/concurrent@1.0.0 => RequestSynchronizerResolver => wrapper (wrap://plugin/concurrent@1.0.0)", + "wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1 => Client.loadWrapper(wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1) => wrapper (wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1)", [ - "wrap://plugin/concurrent@1.0.0 => ResolutionResultCacheResolver (Cache) => wrapper (wrap://plugin/concurrent@1.0.0)" - ] - ], - "wrap://plugin/concurrent@1.0.0 => Client - Invoke(wrap://plugin/concurrent@1.0.0)", - "wrap://plugin/concurrent@1.0.0 => Client- loadWrapper(wrap://plugin/concurrent@1.0.0) => wrapper (wrap://plugin/concurrent@1.0.0)", - [ - "wrap://plugin/concurrent@1.0.0 => RequestSynchronizerResolver => wrapper (wrap://plugin/concurrent@1.0.0)", + "wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1 => RequestSynchronizerResolver => uri (wrap://embed/async-ipfs-uri-resolver-ext@1.0.1)", + [ + "wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1 => ResolutionResultCacheResolver (Cache) => uri (wrap://embed/async-ipfs-uri-resolver-ext@1.0.1)" + ], + "wrap://embed/async-ipfs-uri-resolver-ext@1.0.1 => RequestSynchronizerResolver => wrapper (wrap://embed/async-ipfs-uri-resolver-ext@1.0.1)", + [ + "wrap://embed/async-ipfs-uri-resolver-ext@1.0.1 => ResolutionResultCacheResolver (Cache) => wrapper (wrap://embed/async-ipfs-uri-resolver-ext@1.0.1)" + ] + ], + "wrap://embed/async-ipfs-uri-resolver-ext@1.0.1 => Client.invoke(wrap://embed/async-ipfs-uri-resolver-ext@1.0.1)", [ - "wrap://plugin/concurrent@1.0.0 => ResolutionResultCacheResolver (Cache) => wrapper (wrap://plugin/concurrent@1.0.0)" + "wrap://plugin/concurrent@1.0.0 => Client.loadWrapper(wrap://plugin/concurrent@1.0.0) => wrapper (wrap://plugin/concurrent@1.0.0)", + [ + "wrap://plugin/concurrent@1.0.0 => RequestSynchronizerResolver => wrapper (wrap://plugin/concurrent@1.0.0)", + [ + "wrap://plugin/concurrent@1.0.0 => ResolutionResultCacheResolver (Cache) => wrapper (wrap://plugin/concurrent@1.0.0)" + ] + ], + "wrap://plugin/concurrent@1.0.0 => Client.invoke(wrap://plugin/concurrent@1.0.0)", + "wrap://plugin/concurrent@1.0.0 => Client.loadWrapper(wrap://plugin/concurrent@1.0.0) => wrapper (wrap://plugin/concurrent@1.0.0)", + [ + "wrap://plugin/concurrent@1.0.0 => RequestSynchronizerResolver => wrapper (wrap://plugin/concurrent@1.0.0)", + [ + "wrap://plugin/concurrent@1.0.0 => ResolutionResultCacheResolver (Cache) => wrapper (wrap://plugin/concurrent@1.0.0)" + ] + ], + "wrap://plugin/concurrent@1.0.0 => Client.invoke(wrap://plugin/concurrent@1.0.0)" ] - ], - "wrap://plugin/concurrent@1.0.0 => Client - Invoke(wrap://plugin/concurrent@1.0.0)" + ] ] ] ] ] ] - ] - ], - "wrap://ipfs/QmS4Z679ZE8WwZSoYB8w9gDSERHAoWG1fX94oqdWpfpDq3 => Client - Invoke(wrap://ipfs/QmS4Z679ZE8WwZSoYB8w9gDSERHAoWG1fX94oqdWpfpDq3)", - [ - "wrap://plugin/ethereum-provider@1.1.0 => Client- loadWrapper(wrap://plugin/ethereum-provider@1.1.0) => wrapper (wrap://plugin/ethereum-provider@1.1.0)", + ], + "wrap://ipfs/QmS4Z679ZE8WwZSoYB8w9gDSERHAoWG1fX94oqdWpfpDq3 => Client.invoke(wrap://ipfs/QmS4Z679ZE8WwZSoYB8w9gDSERHAoWG1fX94oqdWpfpDq3)", [ - "wrap://plugin/ethereum-provider@1.1.0 => RequestSynchronizerResolver => wrapper (wrap://plugin/ethereum-provider@1.1.0)", + "wrap://plugin/ethereum-provider@1.1.0 => Client.loadWrapper(wrap://plugin/ethereum-provider@1.1.0) => wrapper (wrap://plugin/ethereum-provider@1.1.0)", [ - "wrap://plugin/ethereum-provider@1.1.0 => ResolutionResultCacheResolver => wrapper (wrap://plugin/ethereum-provider@1.1.0)", + "wrap://plugin/ethereum-provider@1.1.0 => RequestSynchronizerResolver => wrapper (wrap://plugin/ethereum-provider@1.1.0)", [ - "wrap://plugin/ethereum-provider@1.1.0 => PackageToWrapperResolver => wrapper (wrap://plugin/ethereum-provider@1.1.0)", + "wrap://plugin/ethereum-provider@1.1.0 => ResolutionResultCacheResolver => wrapper (wrap://plugin/ethereum-provider@1.1.0)", [ - "wrap://plugin/ethereum-provider@1.1.0 => UriResolverAggregator => package (wrap://plugin/ethereum-provider@1.1.0)", + "wrap://plugin/ethereum-provider@1.1.0 => PackageToWrapperResolver => wrapper (wrap://plugin/ethereum-provider@1.1.0)", [ - "wrap://plugin/ethereum-provider@1.1.0 => StaticResolver - Package (wrap://plugin/ethereum-provider@1.1.0) => package (wrap://plugin/ethereum-provider@1.1.0)" + "wrap://plugin/ethereum-provider@1.1.0 => UriResolverAggregator => package (wrap://plugin/ethereum-provider@1.1.0)", + [ + "wrap://plugin/ethereum-provider@1.1.0 => StaticResolver - Package (wrap://plugin/ethereum-provider@1.1.0) => package (wrap://plugin/ethereum-provider@1.1.0)" + ] ] ] ] - ] - ], - "wrap://plugin/ethereum-provider@1.1.0 => Client - Invoke(wrap://plugin/ethereum-provider@1.1.0)" - ] - ], - "wrap://ipfs/QmWG8NJnvGMCosxaUWuRna33MSDR331rByGTdy4EDsVjNL => Client- loadWrapper(wrap://ipfs/QmWG8NJnvGMCosxaUWuRna33MSDR331rByGTdy4EDsVjNL) => wrapper (wrap://ipfs/QmWG8NJnvGMCosxaUWuRna33MSDR331rByGTdy4EDsVjNL)", - [ - "wrap://ipfs/QmWG8NJnvGMCosxaUWuRna33MSDR331rByGTdy4EDsVjNL => RequestSynchronizerResolver => wrapper (wrap://ipfs/QmWG8NJnvGMCosxaUWuRna33MSDR331rByGTdy4EDsVjNL)", - [ - "wrap://ipfs/QmWG8NJnvGMCosxaUWuRna33MSDR331rByGTdy4EDsVjNL => ResolutionResultCacheResolver (Cache) => wrapper (wrap://ipfs/QmWG8NJnvGMCosxaUWuRna33MSDR331rByGTdy4EDsVjNL)" - ] - ], - "wrap://ipfs/QmWG8NJnvGMCosxaUWuRna33MSDR331rByGTdy4EDsVjNL => Client - Invoke(wrap://ipfs/QmWG8NJnvGMCosxaUWuRna33MSDR331rByGTdy4EDsVjNL)", - [ - "wrap://ipfs/QmPL9Njg3rGkpoJyoy8pZ5fTavjvHxNuuuiGRApzyGESZB => Client- loadWrapper(wrap://ipfs/QmPL9Njg3rGkpoJyoy8pZ5fTavjvHxNuuuiGRApzyGESZB) => wrapper (wrap://ipfs/QmPL9Njg3rGkpoJyoy8pZ5fTavjvHxNuuuiGRApzyGESZB)", - [ - "wrap://ipfs/QmPL9Njg3rGkpoJyoy8pZ5fTavjvHxNuuuiGRApzyGESZB => RequestSynchronizerResolver => wrapper (wrap://ipfs/QmPL9Njg3rGkpoJyoy8pZ5fTavjvHxNuuuiGRApzyGESZB)", - [ - "wrap://ipfs/QmPL9Njg3rGkpoJyoy8pZ5fTavjvHxNuuuiGRApzyGESZB => ResolutionResultCacheResolver (Cache) => wrapper (wrap://ipfs/QmPL9Njg3rGkpoJyoy8pZ5fTavjvHxNuuuiGRApzyGESZB)" + ], + "wrap://plugin/ethereum-provider@1.1.0 => Client.invoke(wrap://plugin/ethereum-provider@1.1.0)" ] ], - "wrap://ipfs/QmPL9Njg3rGkpoJyoy8pZ5fTavjvHxNuuuiGRApzyGESZB => Client - Invoke(wrap://ipfs/QmPL9Njg3rGkpoJyoy8pZ5fTavjvHxNuuuiGRApzyGESZB)", - "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => Client- loadWrapper(wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5) => wrapper (wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)", + "wrap://ipfs/QmWG8NJnvGMCosxaUWuRna33MSDR331rByGTdy4EDsVjNL => Client.loadWrapper(wrap://ipfs/QmWG8NJnvGMCosxaUWuRna33MSDR331rByGTdy4EDsVjNL) => wrapper (wrap://ipfs/QmWG8NJnvGMCosxaUWuRna33MSDR331rByGTdy4EDsVjNL)", [ - "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => RequestSynchronizerResolver => wrapper (wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)", + "wrap://ipfs/QmWG8NJnvGMCosxaUWuRna33MSDR331rByGTdy4EDsVjNL => RequestSynchronizerResolver => wrapper (wrap://ipfs/QmWG8NJnvGMCosxaUWuRna33MSDR331rByGTdy4EDsVjNL)", [ - "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => ResolutionResultCacheResolver (Cache) => wrapper (wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)" + "wrap://ipfs/QmWG8NJnvGMCosxaUWuRna33MSDR331rByGTdy4EDsVjNL => ResolutionResultCacheResolver (Cache) => wrapper (wrap://ipfs/QmWG8NJnvGMCosxaUWuRna33MSDR331rByGTdy4EDsVjNL)" ] ], - "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => Client - Invoke(wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)", - "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => Client- loadWrapper(wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5) => wrapper (wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)", + "wrap://ipfs/QmWG8NJnvGMCosxaUWuRna33MSDR331rByGTdy4EDsVjNL => Client.invoke(wrap://ipfs/QmWG8NJnvGMCosxaUWuRna33MSDR331rByGTdy4EDsVjNL)", [ - "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => RequestSynchronizerResolver => wrapper (wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)", + "wrap://ipfs/QmPL9Njg3rGkpoJyoy8pZ5fTavjvHxNuuuiGRApzyGESZB => Client.loadWrapper(wrap://ipfs/QmPL9Njg3rGkpoJyoy8pZ5fTavjvHxNuuuiGRApzyGESZB) => wrapper (wrap://ipfs/QmPL9Njg3rGkpoJyoy8pZ5fTavjvHxNuuuiGRApzyGESZB)", [ - "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => ResolutionResultCacheResolver (Cache) => wrapper (wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)" - ] - ], - "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => Client - Invoke(wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)", - "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => Client- loadWrapper(wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5) => wrapper (wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)", - [ - "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => RequestSynchronizerResolver => wrapper (wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)", + "wrap://ipfs/QmPL9Njg3rGkpoJyoy8pZ5fTavjvHxNuuuiGRApzyGESZB => RequestSynchronizerResolver => wrapper (wrap://ipfs/QmPL9Njg3rGkpoJyoy8pZ5fTavjvHxNuuuiGRApzyGESZB)", + [ + "wrap://ipfs/QmPL9Njg3rGkpoJyoy8pZ5fTavjvHxNuuuiGRApzyGESZB => ResolutionResultCacheResolver (Cache) => wrapper (wrap://ipfs/QmPL9Njg3rGkpoJyoy8pZ5fTavjvHxNuuuiGRApzyGESZB)" + ] + ], + "wrap://ipfs/QmPL9Njg3rGkpoJyoy8pZ5fTavjvHxNuuuiGRApzyGESZB => Client.invoke(wrap://ipfs/QmPL9Njg3rGkpoJyoy8pZ5fTavjvHxNuuuiGRApzyGESZB)", + "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => Client.loadWrapper(wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5) => wrapper (wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)", [ - "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => ResolutionResultCacheResolver (Cache) => wrapper (wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)" - ] - ], - "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => Client - Invoke(wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)", - "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => Client- loadWrapper(wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5) => wrapper (wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)", - [ - "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => RequestSynchronizerResolver => wrapper (wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)", + "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => RequestSynchronizerResolver => wrapper (wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)", + [ + "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => ResolutionResultCacheResolver (Cache) => wrapper (wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)" + ] + ], + "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => Client.invoke(wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)", + "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => Client.loadWrapper(wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5) => wrapper (wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)", [ - "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => ResolutionResultCacheResolver (Cache) => wrapper (wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)" - ] - ], - "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => Client - Invoke(wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)", - "wrap://ipfs/QmS4Z679ZE8WwZSoYB8w9gDSERHAoWG1fX94oqdWpfpDq3 => Client- loadWrapper(wrap://ipfs/QmS4Z679ZE8WwZSoYB8w9gDSERHAoWG1fX94oqdWpfpDq3) => wrapper (wrap://ipfs/QmS4Z679ZE8WwZSoYB8w9gDSERHAoWG1fX94oqdWpfpDq3)", - [ - "wrap://ipfs/QmS4Z679ZE8WwZSoYB8w9gDSERHAoWG1fX94oqdWpfpDq3 => RequestSynchronizerResolver => wrapper (wrap://ipfs/QmS4Z679ZE8WwZSoYB8w9gDSERHAoWG1fX94oqdWpfpDq3)", + "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => RequestSynchronizerResolver => wrapper (wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)", + [ + "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => ResolutionResultCacheResolver (Cache) => wrapper (wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)" + ] + ], + "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => Client.invoke(wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)", + "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => Client.loadWrapper(wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5) => wrapper (wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)", [ - "wrap://ipfs/QmS4Z679ZE8WwZSoYB8w9gDSERHAoWG1fX94oqdWpfpDq3 => ResolutionResultCacheResolver (Cache) => wrapper (wrap://ipfs/QmS4Z679ZE8WwZSoYB8w9gDSERHAoWG1fX94oqdWpfpDq3)" - ] - ], - "wrap://ipfs/QmS4Z679ZE8WwZSoYB8w9gDSERHAoWG1fX94oqdWpfpDq3 => Client - Invoke(wrap://ipfs/QmS4Z679ZE8WwZSoYB8w9gDSERHAoWG1fX94oqdWpfpDq3)", - [ - "wrap://plugin/ethereum-provider@1.1.0 => Client- loadWrapper(wrap://plugin/ethereum-provider@1.1.0) => wrapper (wrap://plugin/ethereum-provider@1.1.0)", + "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => RequestSynchronizerResolver => wrapper (wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)", + [ + "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => ResolutionResultCacheResolver (Cache) => wrapper (wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)" + ] + ], + "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => Client.invoke(wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)", + "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => Client.loadWrapper(wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5) => wrapper (wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)", + [ + "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => RequestSynchronizerResolver => wrapper (wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)", + [ + "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => ResolutionResultCacheResolver (Cache) => wrapper (wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)" + ] + ], + "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => Client.invoke(wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)", + "wrap://ipfs/QmS4Z679ZE8WwZSoYB8w9gDSERHAoWG1fX94oqdWpfpDq3 => Client.loadWrapper(wrap://ipfs/QmS4Z679ZE8WwZSoYB8w9gDSERHAoWG1fX94oqdWpfpDq3) => wrapper (wrap://ipfs/QmS4Z679ZE8WwZSoYB8w9gDSERHAoWG1fX94oqdWpfpDq3)", [ - "wrap://plugin/ethereum-provider@1.1.0 => RequestSynchronizerResolver => wrapper (wrap://plugin/ethereum-provider@1.1.0)", + "wrap://ipfs/QmS4Z679ZE8WwZSoYB8w9gDSERHAoWG1fX94oqdWpfpDq3 => RequestSynchronizerResolver => wrapper (wrap://ipfs/QmS4Z679ZE8WwZSoYB8w9gDSERHAoWG1fX94oqdWpfpDq3)", [ - "wrap://plugin/ethereum-provider@1.1.0 => ResolutionResultCacheResolver (Cache) => wrapper (wrap://plugin/ethereum-provider@1.1.0)" + "wrap://ipfs/QmS4Z679ZE8WwZSoYB8w9gDSERHAoWG1fX94oqdWpfpDq3 => ResolutionResultCacheResolver (Cache) => wrapper (wrap://ipfs/QmS4Z679ZE8WwZSoYB8w9gDSERHAoWG1fX94oqdWpfpDq3)" ] ], - "wrap://plugin/ethereum-provider@1.1.0 => Client - Invoke(wrap://plugin/ethereum-provider@1.1.0)" + "wrap://ipfs/QmS4Z679ZE8WwZSoYB8w9gDSERHAoWG1fX94oqdWpfpDq3 => Client.invoke(wrap://ipfs/QmS4Z679ZE8WwZSoYB8w9gDSERHAoWG1fX94oqdWpfpDq3)", + [ + "wrap://plugin/ethereum-provider@1.1.0 => Client.loadWrapper(wrap://plugin/ethereum-provider@1.1.0) => wrapper (wrap://plugin/ethereum-provider@1.1.0)", + [ + "wrap://plugin/ethereum-provider@1.1.0 => RequestSynchronizerResolver => wrapper (wrap://plugin/ethereum-provider@1.1.0)", + [ + "wrap://plugin/ethereum-provider@1.1.0 => ResolutionResultCacheResolver (Cache) => wrapper (wrap://plugin/ethereum-provider@1.1.0)" + ] + ], + "wrap://plugin/ethereum-provider@1.1.0 => Client.invoke(wrap://plugin/ethereum-provider@1.1.0)" + ] ] ] ] @@ -443,35 +464,38 @@ "wrap://ipfs/QmSAXrSLcmGUkQRrApAtG5qTPmuRMMX2Zf1wihpguDQfbm => StaticResolver - Miss", "wrap://ipfs/QmSAXrSLcmGUkQRrApAtG5qTPmuRMMX2Zf1wihpguDQfbm => ExtendableUriResolver => package (wrap://ipfs/QmSAXrSLcmGUkQRrApAtG5qTPmuRMMX2Zf1wihpguDQfbm)", [ - "wrap://ipfs/QmSAXrSLcmGUkQRrApAtG5qTPmuRMMX2Zf1wihpguDQfbm => ResolverExtension - Load(wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1) => wrapper (wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1)", + "wrap://ipfs/QmSAXrSLcmGUkQRrApAtG5qTPmuRMMX2Zf1wihpguDQfbm => ResolverExtension (wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1) => uri (wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1)", [ - "wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1 => RequestSynchronizerResolver => uri (wrap://embed/async-ipfs-uri-resolver-ext@1.0.1)", + "wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1 => Client.loadWrapper(wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1) => wrapper (wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1)", [ - "wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1 => ResolutionResultCacheResolver (Cache) => uri (wrap://embed/async-ipfs-uri-resolver-ext@1.0.1)" - ], - "wrap://embed/async-ipfs-uri-resolver-ext@1.0.1 => RequestSynchronizerResolver => wrapper (wrap://embed/async-ipfs-uri-resolver-ext@1.0.1)", - [ - "wrap://embed/async-ipfs-uri-resolver-ext@1.0.1 => ResolutionResultCacheResolver (Cache) => wrapper (wrap://embed/async-ipfs-uri-resolver-ext@1.0.1)" - ] - ], - "wrap://ipfs/QmSAXrSLcmGUkQRrApAtG5qTPmuRMMX2Zf1wihpguDQfbm => ResolverExtension - Invoke(wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1) => package (wrap://ipfs/QmSAXrSLcmGUkQRrApAtG5qTPmuRMMX2Zf1wihpguDQfbm)", - [ - "wrap://plugin/concurrent@1.0.0 => Client- loadWrapper(wrap://plugin/concurrent@1.0.0) => wrapper (wrap://plugin/concurrent@1.0.0)", - [ - "wrap://plugin/concurrent@1.0.0 => RequestSynchronizerResolver => wrapper (wrap://plugin/concurrent@1.0.0)", + "wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1 => RequestSynchronizerResolver => uri (wrap://embed/async-ipfs-uri-resolver-ext@1.0.1)", + [ + "wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1 => ResolutionResultCacheResolver (Cache) => uri (wrap://embed/async-ipfs-uri-resolver-ext@1.0.1)" + ], + "wrap://embed/async-ipfs-uri-resolver-ext@1.0.1 => RequestSynchronizerResolver => wrapper (wrap://embed/async-ipfs-uri-resolver-ext@1.0.1)", [ - "wrap://plugin/concurrent@1.0.0 => ResolutionResultCacheResolver (Cache) => wrapper (wrap://plugin/concurrent@1.0.0)" + "wrap://embed/async-ipfs-uri-resolver-ext@1.0.1 => ResolutionResultCacheResolver (Cache) => wrapper (wrap://embed/async-ipfs-uri-resolver-ext@1.0.1)" ] ], - "wrap://plugin/concurrent@1.0.0 => Client - Invoke(wrap://plugin/concurrent@1.0.0)", - "wrap://plugin/concurrent@1.0.0 => Client- loadWrapper(wrap://plugin/concurrent@1.0.0) => wrapper (wrap://plugin/concurrent@1.0.0)", + "wrap://embed/async-ipfs-uri-resolver-ext@1.0.1 => Client.invoke(wrap://embed/async-ipfs-uri-resolver-ext@1.0.1)", [ - "wrap://plugin/concurrent@1.0.0 => RequestSynchronizerResolver => wrapper (wrap://plugin/concurrent@1.0.0)", + "wrap://plugin/concurrent@1.0.0 => Client.loadWrapper(wrap://plugin/concurrent@1.0.0) => wrapper (wrap://plugin/concurrent@1.0.0)", [ - "wrap://plugin/concurrent@1.0.0 => ResolutionResultCacheResolver (Cache) => wrapper (wrap://plugin/concurrent@1.0.0)" - ] - ], - "wrap://plugin/concurrent@1.0.0 => Client - Invoke(wrap://plugin/concurrent@1.0.0)" + "wrap://plugin/concurrent@1.0.0 => RequestSynchronizerResolver => wrapper (wrap://plugin/concurrent@1.0.0)", + [ + "wrap://plugin/concurrent@1.0.0 => ResolutionResultCacheResolver (Cache) => wrapper (wrap://plugin/concurrent@1.0.0)" + ] + ], + "wrap://plugin/concurrent@1.0.0 => Client.invoke(wrap://plugin/concurrent@1.0.0)", + "wrap://plugin/concurrent@1.0.0 => Client.loadWrapper(wrap://plugin/concurrent@1.0.0) => wrapper (wrap://plugin/concurrent@1.0.0)", + [ + "wrap://plugin/concurrent@1.0.0 => RequestSynchronizerResolver => wrapper (wrap://plugin/concurrent@1.0.0)", + [ + "wrap://plugin/concurrent@1.0.0 => ResolutionResultCacheResolver (Cache) => wrapper (wrap://plugin/concurrent@1.0.0)" + ] + ], + "wrap://plugin/concurrent@1.0.0 => Client.invoke(wrap://plugin/concurrent@1.0.0)" + ] ] ] ] diff --git a/packages/js/core-client/src/PolywrapCoreClient.ts b/packages/js/core-client/src/PolywrapCoreClient.ts index aa8742eb7..c0a1b6239 100644 --- a/packages/js/core-client/src/PolywrapCoreClient.ts +++ b/packages/js/core-client/src/PolywrapCoreClient.ts @@ -287,7 +287,7 @@ export class PolywrapCoreClient implements CoreClient { result: loadWrapperResult.ok ? UriResolutionResult.ok(typedOptions.uri, loadWrapperResult.value) : UriResolutionResult.err(loadWrapperResult.error), - description: `Client- loadWrapper(${typedOptions.uri.uri})`, + description: `Client.loadWrapper(${typedOptions.uri.uri})`, subHistory: loadWrapperContext.getHistory(), }); @@ -318,7 +318,7 @@ export class PolywrapCoreClient implements CoreClient { result: invokeResult.ok ? UriResolutionResult.ok(finalUri) : ResultErr(invokeResult.error), - description: `Client - Invoke(${finalUri.uri})`, + description: `Client.invoke(${finalUri.uri})`, subHistory: invokeContext.getHistory(), }); diff --git a/packages/js/uri-resolver-extensions/src/UriResolverWrapper.ts b/packages/js/uri-resolver-extensions/src/UriResolverWrapper.ts index 199da6afd..19b49fb93 100644 --- a/packages/js/uri-resolver-extensions/src/UriResolverWrapper.ts +++ b/packages/js/uri-resolver-extensions/src/UriResolverWrapper.ts @@ -1,5 +1,4 @@ import { UriResolverExtensionFileReader } from "./UriResolverExtensionFileReader"; -import { loadResolverExtension } from "./ResolverExtensionLoader"; import { Uri, @@ -7,7 +6,6 @@ import { UriResolverInterface, IUriResolutionContext, UriPackageOrWrapper, - getEnvFromUriHistory, IUriResolver, } from "@polywrap/core-js"; import { Result, ResultOk } from "@polywrap/result"; @@ -96,56 +94,27 @@ const tryResolveUriWithImplementation = async ( ): Promise< Result > /* $ */ => { - const loadResolverContext = resolutionContext.createSubContext(); - const result = await loadResolverExtension( - uri, - implementationUri, - client, - loadResolverContext - ); - - resolutionContext.trackStep({ - sourceUri: uri, - result: result.ok - ? UriResolutionResult.ok(implementationUri, result.value) - : UriResolutionResult.err(result.error), - description: `ResolverExtension - Load(${implementationUri.uri})`, - subHistory: loadResolverContext.getHistory(), - }); + const resolverExtensionContext = resolutionContext.createSubContext(); - if (!result.ok) { - return result; - } - - const extensionWrapper = result.value; - - const resolveWithExtensionContext = resolutionContext.createSubContext(); - - const env = getEnvFromUriHistory( - loadResolverContext.getResolutionPath(), - client - ); - const invokeResult = await client.invokeWrapper( + const invokeResult = await client.invoke( { - wrapper: extensionWrapper, uri: implementationUri, method: "tryResolveUri", args: { authority: uri.authority, path: uri.path, }, - env: env, - resolutionContext: resolveWithExtensionContext, + resolutionContext: resolverExtensionContext, } ); resolutionContext.trackStep({ sourceUri: uri, result: invokeResult.ok - ? getResult(invokeResult.value, uri, implementationUri, client) - : UriResolutionResult.err(result), - description: `ResolverExtension - Invoke(${implementationUri.uri})`, - subHistory: resolveWithExtensionContext.getHistory(), + ? UriResolutionResult.ok(implementationUri) + : UriResolutionResult.err(invokeResult.error), + description: `ResolverExtension (${implementationUri.uri})`, + subHistory: resolverExtensionContext.getHistory(), }); if (!invokeResult.ok) { From abf91412c9a89385666b5df76dbe07d839cc9432 Mon Sep 17 00:00:00 2001 From: Jure Bogunovic Date: Thu, 20 Apr 2023 00:15:38 +0200 Subject: [PATCH 09/31] tracking actual resolver extension result --- .../src/UriResolverWrapper.ts | 32 +++++++++---------- 1 file changed, 15 insertions(+), 17 deletions(-) diff --git a/packages/uri-resolver-extensions/src/UriResolverWrapper.ts b/packages/uri-resolver-extensions/src/UriResolverWrapper.ts index 19b49fb93..0b09593aa 100644 --- a/packages/uri-resolver-extensions/src/UriResolverWrapper.ts +++ b/packages/uri-resolver-extensions/src/UriResolverWrapper.ts @@ -41,18 +41,27 @@ export class UriResolverWrapper implements IUriResolver /* $ */ { client: CoreClient, resolutionContext: IUriResolutionContext ): Promise> /* $ */ { + const resolverExtensionContext = resolutionContext.createSubContext(); + const result = await tryResolveUriWithImplementation( uri, this.implementationUri, client, - resolutionContext + resolverExtensionContext ); - if (!result.ok) { - return UriResolutionResult.err(result.error); - } + const resolutionResult = result.ok + ? getResult(result.value, uri, this.implementationUri, client) + : UriResolutionResult.err(result.error); + + resolutionContext.trackStep({ + sourceUri: uri, + result: resolutionResult, + description: `ResolverExtension (${this.implementationUri.uri})`, + subHistory: resolverExtensionContext.getHistory(), + }); - return getResult(result.value, uri, this.implementationUri, client); + return resolutionResult; } } @@ -94,8 +103,6 @@ const tryResolveUriWithImplementation = async ( ): Promise< Result > /* $ */ => { - const resolverExtensionContext = resolutionContext.createSubContext(); - const invokeResult = await client.invoke( { uri: implementationUri, @@ -104,19 +111,10 @@ const tryResolveUriWithImplementation = async ( authority: uri.authority, path: uri.path, }, - resolutionContext: resolverExtensionContext, + resolutionContext, } ); - resolutionContext.trackStep({ - sourceUri: uri, - result: invokeResult.ok - ? UriResolutionResult.ok(implementationUri) - : UriResolutionResult.err(invokeResult.error), - description: `ResolverExtension (${implementationUri.uri})`, - subHistory: resolverExtensionContext.getHistory(), - }); - if (!invokeResult.ok) { return invokeResult; } From 4085b9908fc7eac6bdd2626438ea698023bb7ede Mon Sep 17 00:00:00 2001 From: Jure Bogunovic Date: Thu, 20 Apr 2023 00:16:16 +0200 Subject: [PATCH 10/31] tracking final uri from loadWrapper --- .../core-client/src/PolywrapCoreClient.ts | 34 +++++++++++-------- yarn.lock | 21 ++++-------- 2 files changed, 27 insertions(+), 28 deletions(-) diff --git a/packages/core-client/src/PolywrapCoreClient.ts b/packages/core-client/src/PolywrapCoreClient.ts index c0a1b6239..51f5b021a 100644 --- a/packages/core-client/src/PolywrapCoreClient.ts +++ b/packages/core-client/src/PolywrapCoreClient.ts @@ -282,25 +282,33 @@ export class PolywrapCoreClient implements CoreClient { loadWrapperContext ); - resolutionContext.trackStep({ - sourceUri: typedOptions.uri, - result: loadWrapperResult.ok - ? UriResolutionResult.ok(typedOptions.uri, loadWrapperResult.value) - : UriResolutionResult.err(loadWrapperResult.error), - description: `Client.loadWrapper(${typedOptions.uri.uri})`, - subHistory: loadWrapperContext.getHistory(), - }); - if (!loadWrapperResult.ok) { + resolutionContext.trackStep({ + sourceUri: typedOptions.uri, + result: UriResolutionResult.err(loadWrapperResult.error), + description: `Client.loadWrapper`, + subHistory: loadWrapperContext.getHistory(), + }); + return loadWrapperResult; } - const wrapper = loadWrapperResult.value; let resolutionPath = loadWrapperContext.getResolutionPath(); resolutionPath = resolutionPath.length > 0 ? resolutionPath : [typedOptions.uri]; - const env = getEnvFromUriHistory(resolutionPath, this); + const finalUri = resolutionPath[resolutionPath.length - 1]; + + const wrapper = loadWrapperResult.value; + + resolutionContext.trackStep({ + sourceUri: typedOptions.uri, + result: UriResolutionResult.ok(finalUri, loadWrapperResult.value), + description: `Client.loadWrapper`, + subHistory: loadWrapperContext.getHistory(), + }); + + const env = options.env ?? getEnvFromUriHistory(resolutionPath, this); const invokeContext = resolutionContext.createSubContext(); @@ -311,14 +319,12 @@ export class PolywrapCoreClient implements CoreClient { wrapper, }); - const finalUri = resolutionPath[resolutionPath.length - 1]; - resolutionContext.trackStep({ sourceUri: finalUri, result: invokeResult.ok ? UriResolutionResult.ok(finalUri) : ResultErr(invokeResult.error), - description: `Client.invoke(${finalUri.uri})`, + description: `Client.invokeWrapper`, subHistory: invokeContext.getHistory(), }); diff --git a/yarn.lock b/yarn.lock index 3d865b151..2a523fbc8 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3825,7 +3825,7 @@ defaults@^1.0.3: dependencies: clone "^1.0.2" -define-properties@^1.1.3, define-properties@^1.1.4: +define-properties@^1.1.3, define-properties@^1.1.4, define-properties@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.2.0.tgz#52988570670c9eacedd8064f4a990f2405849bd5" integrity sha512-xvqAVKGfT1+UAvPwKTVw/njhdQ8ZhXK4lI0bCIuCMrp2up9nPnaDftrLtmpTazqd1o+UY4zgzU+avtMbDP+ldA== @@ -4721,7 +4721,7 @@ functional-red-black-tree@^1.0.1: resolved "https://registry.yarnpkg.com/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz#1b0ab3bd553b2a0d6399d29c0e3ea0b252078327" integrity sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g== -functions-have-names@^1.2.2: +functions-have-names@^1.2.2, functions-have-names@^1.2.3: version "1.2.3" resolved "https://registry.yarnpkg.com/functions-have-names/-/functions-have-names-1.2.3.tgz#0404fe4ee2ba2f607f0e0ec3c80bae994133b834" integrity sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ== @@ -8083,13 +8083,13 @@ regex-parser@2.2.11: integrity sha512-jbD/FT0+9MBU2XAZluI7w2OBs1RBi6p9M83nkoZayQXXU9e8Robt69FcZc7wU4eJD/YFTjn1JdCk3rbMJajz8Q== regexp.prototype.flags@^1.4.3: - version "1.4.3" - resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.4.3.tgz#87cab30f80f66660181a3bb7bf5981a872b367ac" - integrity sha512-fjggEOO3slI6Wvgjwflkc4NFRCTZAu5CnNfBd5qOMYhWdn67nJBBu34/TkD++eeFmd8C9r9jfXJ27+nSiRkSUA== + version "1.5.0" + resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.5.0.tgz#fe7ce25e7e4cca8db37b6634c8a2c7009199b9cb" + integrity sha512-0SutC3pNudRKgquxGoRGIz946MZVHqbNfPjBdxeOhBrdgDKlRoXmYLQN9xRbrR09ZXWeGAdPuif7egofn6v5LA== dependencies: call-bind "^1.0.2" - define-properties "^1.1.3" - functions-have-names "^1.2.2" + define-properties "^1.2.0" + functions-have-names "^1.2.3" regexpp@^3.0.0, regexpp@^3.1.0: version "3.2.0" @@ -8286,13 +8286,6 @@ semver@7.5.0, semver@7.x, semver@^7.1.1, semver@^7.1.3, semver@^7.2.1, semver@^7 dependencies: lru-cache "^6.0.0" -semver@7.x, semver@^7.1.1, semver@^7.1.3, semver@^7.2.1, semver@^7.3.2, semver@^7.3.4, semver@^7.3.5: - version "7.5.0" - resolved "https://registry.yarnpkg.com/semver/-/semver-7.5.0.tgz#ed8c5dc8efb6c629c88b23d41dc9bf40c1d96cd0" - integrity sha512-+XC0AD/R7Q2mPSRuy2Id0+CGTZ98+8f+KvwirxOKIEyid+XSx6HbC63p+O4IndTHuX5Z+JxQ0TghCkO5Cg/2HA== - dependencies: - lru-cache "^6.0.0" - semver@^6.0.0, semver@^6.3.0: version "6.3.0" resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" From d12cc1557f7f54c9d913d7bf112f683392e9d9ae Mon Sep 17 00:00:00 2001 From: Jure Bogunovic Date: Thu, 20 Apr 2023 00:16:38 +0200 Subject: [PATCH 11/31] updated history test cases --- .../core/uri-resolution/histories/sanity.json | 162 +++++++++--------- .../histories/can-resolve-package.json | 16 +- .../__tests__/histories/can-resolve-uri.json | 30 +++- .../src/__tests__/histories/not-a-match.json | 16 +- .../histories/not-found-extension.json | 15 +- .../shows-plugin-extension-error.json | 16 +- .../histories/shows-wasm-extension-error.json | 16 +- .../src/__tests__/resolver-extensions.spec.ts | 9 +- 8 files changed, 163 insertions(+), 117 deletions(-) diff --git a/packages/client/src/__tests__/core/uri-resolution/histories/sanity.json b/packages/client/src/__tests__/core/uri-resolution/histories/sanity.json index 7bdad5569..296001ad2 100644 --- a/packages/client/src/__tests__/core/uri-resolution/histories/sanity.json +++ b/packages/client/src/__tests__/core/uri-resolution/histories/sanity.json @@ -10,9 +10,9 @@ "wrap://ens/wraps.eth:uri-resolver-ext@1.1.0 => StaticResolver - Miss", "wrap://ens/wraps.eth:uri-resolver-ext@1.1.0 => ExtendableUriResolver => uri (wrap://ipfs/QmSAXrSLcmGUkQRrApAtG5qTPmuRMMX2Zf1wihpguDQfbm)", [ - "wrap://ens/wraps.eth:uri-resolver-ext@1.1.0 => ResolverExtension (wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1) => uri (wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1)", + "wrap://ens/wraps.eth:uri-resolver-ext@1.1.0 => ResolverExtension (wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1)", [ - "wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1 => Client.loadWrapper(wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1) => wrapper (wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1)", + "wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1 => Client.loadWrapper => wrapper (wrap://embed/async-ipfs-uri-resolver-ext@1.0.1)", [ "wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1 => RequestSynchronizerResolver => uri (wrap://embed/async-ipfs-uri-resolver-ext@1.0.1)", [ @@ -41,11 +41,11 @@ ] ] ], - "wrap://embed/async-ipfs-uri-resolver-ext@1.0.1 => Client.invoke(wrap://embed/async-ipfs-uri-resolver-ext@1.0.1)" + "wrap://embed/async-ipfs-uri-resolver-ext@1.0.1 => Client.invokeWrapper" ], - "wrap://ens/wraps.eth:uri-resolver-ext@1.1.0 => ResolverExtension (wrap://ens/wraps.eth:ens-text-record-uri-resolver-ext@1.0.1) => uri (wrap://ens/wraps.eth:ens-text-record-uri-resolver-ext@1.0.1)", + "wrap://ens/wraps.eth:uri-resolver-ext@1.1.0 => ResolverExtension (wrap://ens/wraps.eth:ens-text-record-uri-resolver-ext@1.0.1) => uri (wrap://ipfs/QmSAXrSLcmGUkQRrApAtG5qTPmuRMMX2Zf1wihpguDQfbm)", [ - "wrap://ens/wraps.eth:ens-text-record-uri-resolver-ext@1.0.1 => Client.loadWrapper(wrap://ens/wraps.eth:ens-text-record-uri-resolver-ext@1.0.1) => wrapper (wrap://ens/wraps.eth:ens-text-record-uri-resolver-ext@1.0.1)", + "wrap://ens/wraps.eth:ens-text-record-uri-resolver-ext@1.0.1 => Client.loadWrapper => wrapper (wrap://ipfs/QmXcHWtKkfrFmcczdMSXH7udsSyV3UJeoWzkaUqGBm1oYs)", [ "wrap://ens/wraps.eth:ens-text-record-uri-resolver-ext@1.0.1 => RequestSynchronizerResolver => uri (wrap://ipfs/QmXcHWtKkfrFmcczdMSXH7udsSyV3UJeoWzkaUqGBm1oYs)", [ @@ -71,9 +71,9 @@ "wrap://ipfs/QmXcHWtKkfrFmcczdMSXH7udsSyV3UJeoWzkaUqGBm1oYs => StaticResolver - Miss", "wrap://ipfs/QmXcHWtKkfrFmcczdMSXH7udsSyV3UJeoWzkaUqGBm1oYs => ExtendableUriResolver => package (wrap://ipfs/QmXcHWtKkfrFmcczdMSXH7udsSyV3UJeoWzkaUqGBm1oYs)", [ - "wrap://ipfs/QmXcHWtKkfrFmcczdMSXH7udsSyV3UJeoWzkaUqGBm1oYs => ResolverExtension (wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1) => uri (wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1)", + "wrap://ipfs/QmXcHWtKkfrFmcczdMSXH7udsSyV3UJeoWzkaUqGBm1oYs => ResolverExtension (wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1) => package (wrap://ipfs/QmXcHWtKkfrFmcczdMSXH7udsSyV3UJeoWzkaUqGBm1oYs)", [ - "wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1 => Client.loadWrapper(wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1) => wrapper (wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1)", + "wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1 => Client.loadWrapper => wrapper (wrap://embed/async-ipfs-uri-resolver-ext@1.0.1)", [ "wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1 => RequestSynchronizerResolver => uri (wrap://embed/async-ipfs-uri-resolver-ext@1.0.1)", [ @@ -84,9 +84,9 @@ "wrap://embed/async-ipfs-uri-resolver-ext@1.0.1 => ResolutionResultCacheResolver (Cache) => wrapper (wrap://embed/async-ipfs-uri-resolver-ext@1.0.1)" ] ], - "wrap://embed/async-ipfs-uri-resolver-ext@1.0.1 => Client.invoke(wrap://embed/async-ipfs-uri-resolver-ext@1.0.1)", + "wrap://embed/async-ipfs-uri-resolver-ext@1.0.1 => Client.invokeWrapper", [ - "wrap://plugin/concurrent@1.0.0 => Client.loadWrapper(wrap://plugin/concurrent@1.0.0) => wrapper (wrap://plugin/concurrent@1.0.0)", + "wrap://plugin/concurrent@1.0.0 => Client.loadWrapper => wrapper (wrap://plugin/concurrent@1.0.0)", [ "wrap://plugin/concurrent@1.0.0 => RequestSynchronizerResolver => wrapper (wrap://plugin/concurrent@1.0.0)", [ @@ -102,15 +102,15 @@ ] ] ], - "wrap://plugin/concurrent@1.0.0 => Client.invoke(wrap://plugin/concurrent@1.0.0)", - "wrap://plugin/concurrent@1.0.0 => Client.loadWrapper(wrap://plugin/concurrent@1.0.0) => wrapper (wrap://plugin/concurrent@1.0.0)", + "wrap://plugin/concurrent@1.0.0 => Client.invokeWrapper", + "wrap://plugin/concurrent@1.0.0 => Client.loadWrapper => wrapper (wrap://plugin/concurrent@1.0.0)", [ "wrap://plugin/concurrent@1.0.0 => RequestSynchronizerResolver => wrapper (wrap://plugin/concurrent@1.0.0)", [ "wrap://plugin/concurrent@1.0.0 => ResolutionResultCacheResolver (Cache) => wrapper (wrap://plugin/concurrent@1.0.0)" ] ], - "wrap://plugin/concurrent@1.0.0 => Client.invoke(wrap://plugin/concurrent@1.0.0)" + "wrap://plugin/concurrent@1.0.0 => Client.invokeWrapper" ] ] ] @@ -119,9 +119,9 @@ ] ] ], - "wrap://ipfs/QmXcHWtKkfrFmcczdMSXH7udsSyV3UJeoWzkaUqGBm1oYs => Client.invoke(wrap://ipfs/QmXcHWtKkfrFmcczdMSXH7udsSyV3UJeoWzkaUqGBm1oYs)", + "wrap://ipfs/QmXcHWtKkfrFmcczdMSXH7udsSyV3UJeoWzkaUqGBm1oYs => Client.invokeWrapper", [ - "wrap://ipfs/QmWG8NJnvGMCosxaUWuRna33MSDR331rByGTdy4EDsVjNL => Client.loadWrapper(wrap://ipfs/QmWG8NJnvGMCosxaUWuRna33MSDR331rByGTdy4EDsVjNL) => wrapper (wrap://ipfs/QmWG8NJnvGMCosxaUWuRna33MSDR331rByGTdy4EDsVjNL)", + "wrap://ipfs/QmWG8NJnvGMCosxaUWuRna33MSDR331rByGTdy4EDsVjNL => Client.loadWrapper => wrapper (wrap://ipfs/QmWG8NJnvGMCosxaUWuRna33MSDR331rByGTdy4EDsVjNL)", [ "wrap://ipfs/QmWG8NJnvGMCosxaUWuRna33MSDR331rByGTdy4EDsVjNL => RequestSynchronizerResolver => wrapper (wrap://ipfs/QmWG8NJnvGMCosxaUWuRna33MSDR331rByGTdy4EDsVjNL)", [ @@ -134,9 +134,9 @@ "wrap://ipfs/QmWG8NJnvGMCosxaUWuRna33MSDR331rByGTdy4EDsVjNL => StaticResolver - Miss", "wrap://ipfs/QmWG8NJnvGMCosxaUWuRna33MSDR331rByGTdy4EDsVjNL => ExtendableUriResolver => package (wrap://ipfs/QmWG8NJnvGMCosxaUWuRna33MSDR331rByGTdy4EDsVjNL)", [ - "wrap://ipfs/QmWG8NJnvGMCosxaUWuRna33MSDR331rByGTdy4EDsVjNL => ResolverExtension (wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1) => uri (wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1)", + "wrap://ipfs/QmWG8NJnvGMCosxaUWuRna33MSDR331rByGTdy4EDsVjNL => ResolverExtension (wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1) => package (wrap://ipfs/QmWG8NJnvGMCosxaUWuRna33MSDR331rByGTdy4EDsVjNL)", [ - "wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1 => Client.loadWrapper(wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1) => wrapper (wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1)", + "wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1 => Client.loadWrapper => wrapper (wrap://embed/async-ipfs-uri-resolver-ext@1.0.1)", [ "wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1 => RequestSynchronizerResolver => uri (wrap://embed/async-ipfs-uri-resolver-ext@1.0.1)", [ @@ -147,24 +147,24 @@ "wrap://embed/async-ipfs-uri-resolver-ext@1.0.1 => ResolutionResultCacheResolver (Cache) => wrapper (wrap://embed/async-ipfs-uri-resolver-ext@1.0.1)" ] ], - "wrap://embed/async-ipfs-uri-resolver-ext@1.0.1 => Client.invoke(wrap://embed/async-ipfs-uri-resolver-ext@1.0.1)", + "wrap://embed/async-ipfs-uri-resolver-ext@1.0.1 => Client.invokeWrapper", [ - "wrap://plugin/concurrent@1.0.0 => Client.loadWrapper(wrap://plugin/concurrent@1.0.0) => wrapper (wrap://plugin/concurrent@1.0.0)", + "wrap://plugin/concurrent@1.0.0 => Client.loadWrapper => wrapper (wrap://plugin/concurrent@1.0.0)", [ "wrap://plugin/concurrent@1.0.0 => RequestSynchronizerResolver => wrapper (wrap://plugin/concurrent@1.0.0)", [ "wrap://plugin/concurrent@1.0.0 => ResolutionResultCacheResolver (Cache) => wrapper (wrap://plugin/concurrent@1.0.0)" ] ], - "wrap://plugin/concurrent@1.0.0 => Client.invoke(wrap://plugin/concurrent@1.0.0)", - "wrap://plugin/concurrent@1.0.0 => Client.loadWrapper(wrap://plugin/concurrent@1.0.0) => wrapper (wrap://plugin/concurrent@1.0.0)", + "wrap://plugin/concurrent@1.0.0 => Client.invokeWrapper", + "wrap://plugin/concurrent@1.0.0 => Client.loadWrapper => wrapper (wrap://plugin/concurrent@1.0.0)", [ "wrap://plugin/concurrent@1.0.0 => RequestSynchronizerResolver => wrapper (wrap://plugin/concurrent@1.0.0)", [ "wrap://plugin/concurrent@1.0.0 => ResolutionResultCacheResolver (Cache) => wrapper (wrap://plugin/concurrent@1.0.0)" ] ], - "wrap://plugin/concurrent@1.0.0 => Client.invoke(wrap://plugin/concurrent@1.0.0)" + "wrap://plugin/concurrent@1.0.0 => Client.invokeWrapper" ] ] ] @@ -173,9 +173,9 @@ ] ] ], - "wrap://ipfs/QmWG8NJnvGMCosxaUWuRna33MSDR331rByGTdy4EDsVjNL => Client.invoke(wrap://ipfs/QmWG8NJnvGMCosxaUWuRna33MSDR331rByGTdy4EDsVjNL)", + "wrap://ipfs/QmWG8NJnvGMCosxaUWuRna33MSDR331rByGTdy4EDsVjNL => Client.invokeWrapper", [ - "wrap://ipfs/QmPL9Njg3rGkpoJyoy8pZ5fTavjvHxNuuuiGRApzyGESZB => Client.loadWrapper(wrap://ipfs/QmPL9Njg3rGkpoJyoy8pZ5fTavjvHxNuuuiGRApzyGESZB) => wrapper (wrap://ipfs/QmPL9Njg3rGkpoJyoy8pZ5fTavjvHxNuuuiGRApzyGESZB)", + "wrap://ipfs/QmPL9Njg3rGkpoJyoy8pZ5fTavjvHxNuuuiGRApzyGESZB => Client.loadWrapper => wrapper (wrap://ipfs/QmPL9Njg3rGkpoJyoy8pZ5fTavjvHxNuuuiGRApzyGESZB)", [ "wrap://ipfs/QmPL9Njg3rGkpoJyoy8pZ5fTavjvHxNuuuiGRApzyGESZB => RequestSynchronizerResolver => wrapper (wrap://ipfs/QmPL9Njg3rGkpoJyoy8pZ5fTavjvHxNuuuiGRApzyGESZB)", [ @@ -188,9 +188,9 @@ "wrap://ipfs/QmPL9Njg3rGkpoJyoy8pZ5fTavjvHxNuuuiGRApzyGESZB => StaticResolver - Miss", "wrap://ipfs/QmPL9Njg3rGkpoJyoy8pZ5fTavjvHxNuuuiGRApzyGESZB => ExtendableUriResolver => package (wrap://ipfs/QmPL9Njg3rGkpoJyoy8pZ5fTavjvHxNuuuiGRApzyGESZB)", [ - "wrap://ipfs/QmPL9Njg3rGkpoJyoy8pZ5fTavjvHxNuuuiGRApzyGESZB => ResolverExtension (wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1) => uri (wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1)", + "wrap://ipfs/QmPL9Njg3rGkpoJyoy8pZ5fTavjvHxNuuuiGRApzyGESZB => ResolverExtension (wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1) => package (wrap://ipfs/QmPL9Njg3rGkpoJyoy8pZ5fTavjvHxNuuuiGRApzyGESZB)", [ - "wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1 => Client.loadWrapper(wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1) => wrapper (wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1)", + "wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1 => Client.loadWrapper => wrapper (wrap://embed/async-ipfs-uri-resolver-ext@1.0.1)", [ "wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1 => RequestSynchronizerResolver => uri (wrap://embed/async-ipfs-uri-resolver-ext@1.0.1)", [ @@ -201,24 +201,24 @@ "wrap://embed/async-ipfs-uri-resolver-ext@1.0.1 => ResolutionResultCacheResolver (Cache) => wrapper (wrap://embed/async-ipfs-uri-resolver-ext@1.0.1)" ] ], - "wrap://embed/async-ipfs-uri-resolver-ext@1.0.1 => Client.invoke(wrap://embed/async-ipfs-uri-resolver-ext@1.0.1)", + "wrap://embed/async-ipfs-uri-resolver-ext@1.0.1 => Client.invokeWrapper", [ - "wrap://plugin/concurrent@1.0.0 => Client.loadWrapper(wrap://plugin/concurrent@1.0.0) => wrapper (wrap://plugin/concurrent@1.0.0)", + "wrap://plugin/concurrent@1.0.0 => Client.loadWrapper => wrapper (wrap://plugin/concurrent@1.0.0)", [ "wrap://plugin/concurrent@1.0.0 => RequestSynchronizerResolver => wrapper (wrap://plugin/concurrent@1.0.0)", [ "wrap://plugin/concurrent@1.0.0 => ResolutionResultCacheResolver (Cache) => wrapper (wrap://plugin/concurrent@1.0.0)" ] ], - "wrap://plugin/concurrent@1.0.0 => Client.invoke(wrap://plugin/concurrent@1.0.0)", - "wrap://plugin/concurrent@1.0.0 => Client.loadWrapper(wrap://plugin/concurrent@1.0.0) => wrapper (wrap://plugin/concurrent@1.0.0)", + "wrap://plugin/concurrent@1.0.0 => Client.invokeWrapper", + "wrap://plugin/concurrent@1.0.0 => Client.loadWrapper => wrapper (wrap://plugin/concurrent@1.0.0)", [ "wrap://plugin/concurrent@1.0.0 => RequestSynchronizerResolver => wrapper (wrap://plugin/concurrent@1.0.0)", [ "wrap://plugin/concurrent@1.0.0 => ResolutionResultCacheResolver (Cache) => wrapper (wrap://plugin/concurrent@1.0.0)" ] ], - "wrap://plugin/concurrent@1.0.0 => Client.invoke(wrap://plugin/concurrent@1.0.0)" + "wrap://plugin/concurrent@1.0.0 => Client.invokeWrapper" ] ] ] @@ -227,8 +227,8 @@ ] ] ], - "wrap://ipfs/QmPL9Njg3rGkpoJyoy8pZ5fTavjvHxNuuuiGRApzyGESZB => Client.invoke(wrap://ipfs/QmPL9Njg3rGkpoJyoy8pZ5fTavjvHxNuuuiGRApzyGESZB)", - "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => Client.loadWrapper(wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5) => wrapper (wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)", + "wrap://ipfs/QmPL9Njg3rGkpoJyoy8pZ5fTavjvHxNuuuiGRApzyGESZB => Client.invokeWrapper", + "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => Client.loadWrapper => wrapper (wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)", [ "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => RequestSynchronizerResolver => wrapper (wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)", [ @@ -241,9 +241,9 @@ "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => StaticResolver - Miss", "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => ExtendableUriResolver => package (wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)", [ - "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => ResolverExtension (wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1) => uri (wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1)", + "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => ResolverExtension (wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1) => package (wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)", [ - "wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1 => Client.loadWrapper(wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1) => wrapper (wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1)", + "wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1 => Client.loadWrapper => wrapper (wrap://embed/async-ipfs-uri-resolver-ext@1.0.1)", [ "wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1 => RequestSynchronizerResolver => uri (wrap://embed/async-ipfs-uri-resolver-ext@1.0.1)", [ @@ -254,24 +254,24 @@ "wrap://embed/async-ipfs-uri-resolver-ext@1.0.1 => ResolutionResultCacheResolver (Cache) => wrapper (wrap://embed/async-ipfs-uri-resolver-ext@1.0.1)" ] ], - "wrap://embed/async-ipfs-uri-resolver-ext@1.0.1 => Client.invoke(wrap://embed/async-ipfs-uri-resolver-ext@1.0.1)", + "wrap://embed/async-ipfs-uri-resolver-ext@1.0.1 => Client.invokeWrapper", [ - "wrap://plugin/concurrent@1.0.0 => Client.loadWrapper(wrap://plugin/concurrent@1.0.0) => wrapper (wrap://plugin/concurrent@1.0.0)", + "wrap://plugin/concurrent@1.0.0 => Client.loadWrapper => wrapper (wrap://plugin/concurrent@1.0.0)", [ "wrap://plugin/concurrent@1.0.0 => RequestSynchronizerResolver => wrapper (wrap://plugin/concurrent@1.0.0)", [ "wrap://plugin/concurrent@1.0.0 => ResolutionResultCacheResolver (Cache) => wrapper (wrap://plugin/concurrent@1.0.0)" ] ], - "wrap://plugin/concurrent@1.0.0 => Client.invoke(wrap://plugin/concurrent@1.0.0)", - "wrap://plugin/concurrent@1.0.0 => Client.loadWrapper(wrap://plugin/concurrent@1.0.0) => wrapper (wrap://plugin/concurrent@1.0.0)", + "wrap://plugin/concurrent@1.0.0 => Client.invokeWrapper", + "wrap://plugin/concurrent@1.0.0 => Client.loadWrapper => wrapper (wrap://plugin/concurrent@1.0.0)", [ "wrap://plugin/concurrent@1.0.0 => RequestSynchronizerResolver => wrapper (wrap://plugin/concurrent@1.0.0)", [ "wrap://plugin/concurrent@1.0.0 => ResolutionResultCacheResolver (Cache) => wrapper (wrap://plugin/concurrent@1.0.0)" ] ], - "wrap://plugin/concurrent@1.0.0 => Client.invoke(wrap://plugin/concurrent@1.0.0)" + "wrap://plugin/concurrent@1.0.0 => Client.invokeWrapper" ] ] ] @@ -280,32 +280,32 @@ ] ] ], - "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => Client.invoke(wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)", - "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => Client.loadWrapper(wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5) => wrapper (wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)", + "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => Client.invokeWrapper", + "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => Client.loadWrapper => wrapper (wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)", [ "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => RequestSynchronizerResolver => wrapper (wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)", [ "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => ResolutionResultCacheResolver (Cache) => wrapper (wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)" ] ], - "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => Client.invoke(wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)", - "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => Client.loadWrapper(wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5) => wrapper (wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)", + "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => Client.invokeWrapper", + "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => Client.loadWrapper => wrapper (wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)", [ "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => RequestSynchronizerResolver => wrapper (wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)", [ "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => ResolutionResultCacheResolver (Cache) => wrapper (wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)" ] ], - "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => Client.invoke(wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)", - "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => Client.loadWrapper(wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5) => wrapper (wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)", + "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => Client.invokeWrapper", + "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => Client.loadWrapper => wrapper (wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)", [ "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => RequestSynchronizerResolver => wrapper (wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)", [ "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => ResolutionResultCacheResolver (Cache) => wrapper (wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)" ] ], - "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => Client.invoke(wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)", - "wrap://ipfs/QmS4Z679ZE8WwZSoYB8w9gDSERHAoWG1fX94oqdWpfpDq3 => Client.loadWrapper(wrap://ipfs/QmS4Z679ZE8WwZSoYB8w9gDSERHAoWG1fX94oqdWpfpDq3) => wrapper (wrap://ipfs/QmS4Z679ZE8WwZSoYB8w9gDSERHAoWG1fX94oqdWpfpDq3)", + "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => Client.invokeWrapper", + "wrap://ipfs/QmS4Z679ZE8WwZSoYB8w9gDSERHAoWG1fX94oqdWpfpDq3 => Client.loadWrapper => wrapper (wrap://ipfs/QmS4Z679ZE8WwZSoYB8w9gDSERHAoWG1fX94oqdWpfpDq3)", [ "wrap://ipfs/QmS4Z679ZE8WwZSoYB8w9gDSERHAoWG1fX94oqdWpfpDq3 => RequestSynchronizerResolver => wrapper (wrap://ipfs/QmS4Z679ZE8WwZSoYB8w9gDSERHAoWG1fX94oqdWpfpDq3)", [ @@ -318,9 +318,9 @@ "wrap://ipfs/QmS4Z679ZE8WwZSoYB8w9gDSERHAoWG1fX94oqdWpfpDq3 => StaticResolver - Miss", "wrap://ipfs/QmS4Z679ZE8WwZSoYB8w9gDSERHAoWG1fX94oqdWpfpDq3 => ExtendableUriResolver => package (wrap://ipfs/QmS4Z679ZE8WwZSoYB8w9gDSERHAoWG1fX94oqdWpfpDq3)", [ - "wrap://ipfs/QmS4Z679ZE8WwZSoYB8w9gDSERHAoWG1fX94oqdWpfpDq3 => ResolverExtension (wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1) => uri (wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1)", + "wrap://ipfs/QmS4Z679ZE8WwZSoYB8w9gDSERHAoWG1fX94oqdWpfpDq3 => ResolverExtension (wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1) => package (wrap://ipfs/QmS4Z679ZE8WwZSoYB8w9gDSERHAoWG1fX94oqdWpfpDq3)", [ - "wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1 => Client.loadWrapper(wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1) => wrapper (wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1)", + "wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1 => Client.loadWrapper => wrapper (wrap://embed/async-ipfs-uri-resolver-ext@1.0.1)", [ "wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1 => RequestSynchronizerResolver => uri (wrap://embed/async-ipfs-uri-resolver-ext@1.0.1)", [ @@ -331,24 +331,24 @@ "wrap://embed/async-ipfs-uri-resolver-ext@1.0.1 => ResolutionResultCacheResolver (Cache) => wrapper (wrap://embed/async-ipfs-uri-resolver-ext@1.0.1)" ] ], - "wrap://embed/async-ipfs-uri-resolver-ext@1.0.1 => Client.invoke(wrap://embed/async-ipfs-uri-resolver-ext@1.0.1)", + "wrap://embed/async-ipfs-uri-resolver-ext@1.0.1 => Client.invokeWrapper", [ - "wrap://plugin/concurrent@1.0.0 => Client.loadWrapper(wrap://plugin/concurrent@1.0.0) => wrapper (wrap://plugin/concurrent@1.0.0)", + "wrap://plugin/concurrent@1.0.0 => Client.loadWrapper => wrapper (wrap://plugin/concurrent@1.0.0)", [ "wrap://plugin/concurrent@1.0.0 => RequestSynchronizerResolver => wrapper (wrap://plugin/concurrent@1.0.0)", [ "wrap://plugin/concurrent@1.0.0 => ResolutionResultCacheResolver (Cache) => wrapper (wrap://plugin/concurrent@1.0.0)" ] ], - "wrap://plugin/concurrent@1.0.0 => Client.invoke(wrap://plugin/concurrent@1.0.0)", - "wrap://plugin/concurrent@1.0.0 => Client.loadWrapper(wrap://plugin/concurrent@1.0.0) => wrapper (wrap://plugin/concurrent@1.0.0)", + "wrap://plugin/concurrent@1.0.0 => Client.invokeWrapper", + "wrap://plugin/concurrent@1.0.0 => Client.loadWrapper => wrapper (wrap://plugin/concurrent@1.0.0)", [ "wrap://plugin/concurrent@1.0.0 => RequestSynchronizerResolver => wrapper (wrap://plugin/concurrent@1.0.0)", [ "wrap://plugin/concurrent@1.0.0 => ResolutionResultCacheResolver (Cache) => wrapper (wrap://plugin/concurrent@1.0.0)" ] ], - "wrap://plugin/concurrent@1.0.0 => Client.invoke(wrap://plugin/concurrent@1.0.0)" + "wrap://plugin/concurrent@1.0.0 => Client.invokeWrapper" ] ] ] @@ -357,9 +357,9 @@ ] ] ], - "wrap://ipfs/QmS4Z679ZE8WwZSoYB8w9gDSERHAoWG1fX94oqdWpfpDq3 => Client.invoke(wrap://ipfs/QmS4Z679ZE8WwZSoYB8w9gDSERHAoWG1fX94oqdWpfpDq3)", + "wrap://ipfs/QmS4Z679ZE8WwZSoYB8w9gDSERHAoWG1fX94oqdWpfpDq3 => Client.invokeWrapper", [ - "wrap://plugin/ethereum-provider@1.1.0 => Client.loadWrapper(wrap://plugin/ethereum-provider@1.1.0) => wrapper (wrap://plugin/ethereum-provider@1.1.0)", + "wrap://plugin/ethereum-provider@1.1.0 => Client.loadWrapper => wrapper (wrap://plugin/ethereum-provider@1.1.0)", [ "wrap://plugin/ethereum-provider@1.1.0 => RequestSynchronizerResolver => wrapper (wrap://plugin/ethereum-provider@1.1.0)", [ @@ -375,75 +375,75 @@ ] ] ], - "wrap://plugin/ethereum-provider@1.1.0 => Client.invoke(wrap://plugin/ethereum-provider@1.1.0)" + "wrap://plugin/ethereum-provider@1.1.0 => Client.invokeWrapper" ] ], - "wrap://ipfs/QmWG8NJnvGMCosxaUWuRna33MSDR331rByGTdy4EDsVjNL => Client.loadWrapper(wrap://ipfs/QmWG8NJnvGMCosxaUWuRna33MSDR331rByGTdy4EDsVjNL) => wrapper (wrap://ipfs/QmWG8NJnvGMCosxaUWuRna33MSDR331rByGTdy4EDsVjNL)", + "wrap://ipfs/QmWG8NJnvGMCosxaUWuRna33MSDR331rByGTdy4EDsVjNL => Client.loadWrapper => wrapper (wrap://ipfs/QmWG8NJnvGMCosxaUWuRna33MSDR331rByGTdy4EDsVjNL)", [ "wrap://ipfs/QmWG8NJnvGMCosxaUWuRna33MSDR331rByGTdy4EDsVjNL => RequestSynchronizerResolver => wrapper (wrap://ipfs/QmWG8NJnvGMCosxaUWuRna33MSDR331rByGTdy4EDsVjNL)", [ "wrap://ipfs/QmWG8NJnvGMCosxaUWuRna33MSDR331rByGTdy4EDsVjNL => ResolutionResultCacheResolver (Cache) => wrapper (wrap://ipfs/QmWG8NJnvGMCosxaUWuRna33MSDR331rByGTdy4EDsVjNL)" ] ], - "wrap://ipfs/QmWG8NJnvGMCosxaUWuRna33MSDR331rByGTdy4EDsVjNL => Client.invoke(wrap://ipfs/QmWG8NJnvGMCosxaUWuRna33MSDR331rByGTdy4EDsVjNL)", + "wrap://ipfs/QmWG8NJnvGMCosxaUWuRna33MSDR331rByGTdy4EDsVjNL => Client.invokeWrapper", [ - "wrap://ipfs/QmPL9Njg3rGkpoJyoy8pZ5fTavjvHxNuuuiGRApzyGESZB => Client.loadWrapper(wrap://ipfs/QmPL9Njg3rGkpoJyoy8pZ5fTavjvHxNuuuiGRApzyGESZB) => wrapper (wrap://ipfs/QmPL9Njg3rGkpoJyoy8pZ5fTavjvHxNuuuiGRApzyGESZB)", + "wrap://ipfs/QmPL9Njg3rGkpoJyoy8pZ5fTavjvHxNuuuiGRApzyGESZB => Client.loadWrapper => wrapper (wrap://ipfs/QmPL9Njg3rGkpoJyoy8pZ5fTavjvHxNuuuiGRApzyGESZB)", [ "wrap://ipfs/QmPL9Njg3rGkpoJyoy8pZ5fTavjvHxNuuuiGRApzyGESZB => RequestSynchronizerResolver => wrapper (wrap://ipfs/QmPL9Njg3rGkpoJyoy8pZ5fTavjvHxNuuuiGRApzyGESZB)", [ "wrap://ipfs/QmPL9Njg3rGkpoJyoy8pZ5fTavjvHxNuuuiGRApzyGESZB => ResolutionResultCacheResolver (Cache) => wrapper (wrap://ipfs/QmPL9Njg3rGkpoJyoy8pZ5fTavjvHxNuuuiGRApzyGESZB)" ] ], - "wrap://ipfs/QmPL9Njg3rGkpoJyoy8pZ5fTavjvHxNuuuiGRApzyGESZB => Client.invoke(wrap://ipfs/QmPL9Njg3rGkpoJyoy8pZ5fTavjvHxNuuuiGRApzyGESZB)", - "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => Client.loadWrapper(wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5) => wrapper (wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)", + "wrap://ipfs/QmPL9Njg3rGkpoJyoy8pZ5fTavjvHxNuuuiGRApzyGESZB => Client.invokeWrapper", + "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => Client.loadWrapper => wrapper (wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)", [ "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => RequestSynchronizerResolver => wrapper (wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)", [ "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => ResolutionResultCacheResolver (Cache) => wrapper (wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)" ] ], - "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => Client.invoke(wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)", - "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => Client.loadWrapper(wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5) => wrapper (wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)", + "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => Client.invokeWrapper", + "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => Client.loadWrapper => wrapper (wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)", [ "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => RequestSynchronizerResolver => wrapper (wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)", [ "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => ResolutionResultCacheResolver (Cache) => wrapper (wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)" ] ], - "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => Client.invoke(wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)", - "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => Client.loadWrapper(wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5) => wrapper (wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)", + "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => Client.invokeWrapper", + "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => Client.loadWrapper => wrapper (wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)", [ "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => RequestSynchronizerResolver => wrapper (wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)", [ "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => ResolutionResultCacheResolver (Cache) => wrapper (wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)" ] ], - "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => Client.invoke(wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)", - "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => Client.loadWrapper(wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5) => wrapper (wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)", + "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => Client.invokeWrapper", + "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => Client.loadWrapper => wrapper (wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)", [ "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => RequestSynchronizerResolver => wrapper (wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)", [ "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => ResolutionResultCacheResolver (Cache) => wrapper (wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)" ] ], - "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => Client.invoke(wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)", - "wrap://ipfs/QmS4Z679ZE8WwZSoYB8w9gDSERHAoWG1fX94oqdWpfpDq3 => Client.loadWrapper(wrap://ipfs/QmS4Z679ZE8WwZSoYB8w9gDSERHAoWG1fX94oqdWpfpDq3) => wrapper (wrap://ipfs/QmS4Z679ZE8WwZSoYB8w9gDSERHAoWG1fX94oqdWpfpDq3)", + "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => Client.invokeWrapper", + "wrap://ipfs/QmS4Z679ZE8WwZSoYB8w9gDSERHAoWG1fX94oqdWpfpDq3 => Client.loadWrapper => wrapper (wrap://ipfs/QmS4Z679ZE8WwZSoYB8w9gDSERHAoWG1fX94oqdWpfpDq3)", [ "wrap://ipfs/QmS4Z679ZE8WwZSoYB8w9gDSERHAoWG1fX94oqdWpfpDq3 => RequestSynchronizerResolver => wrapper (wrap://ipfs/QmS4Z679ZE8WwZSoYB8w9gDSERHAoWG1fX94oqdWpfpDq3)", [ "wrap://ipfs/QmS4Z679ZE8WwZSoYB8w9gDSERHAoWG1fX94oqdWpfpDq3 => ResolutionResultCacheResolver (Cache) => wrapper (wrap://ipfs/QmS4Z679ZE8WwZSoYB8w9gDSERHAoWG1fX94oqdWpfpDq3)" ] ], - "wrap://ipfs/QmS4Z679ZE8WwZSoYB8w9gDSERHAoWG1fX94oqdWpfpDq3 => Client.invoke(wrap://ipfs/QmS4Z679ZE8WwZSoYB8w9gDSERHAoWG1fX94oqdWpfpDq3)", + "wrap://ipfs/QmS4Z679ZE8WwZSoYB8w9gDSERHAoWG1fX94oqdWpfpDq3 => Client.invokeWrapper", [ - "wrap://plugin/ethereum-provider@1.1.0 => Client.loadWrapper(wrap://plugin/ethereum-provider@1.1.0) => wrapper (wrap://plugin/ethereum-provider@1.1.0)", + "wrap://plugin/ethereum-provider@1.1.0 => Client.loadWrapper => wrapper (wrap://plugin/ethereum-provider@1.1.0)", [ "wrap://plugin/ethereum-provider@1.1.0 => RequestSynchronizerResolver => wrapper (wrap://plugin/ethereum-provider@1.1.0)", [ "wrap://plugin/ethereum-provider@1.1.0 => ResolutionResultCacheResolver (Cache) => wrapper (wrap://plugin/ethereum-provider@1.1.0)" ] ], - "wrap://plugin/ethereum-provider@1.1.0 => Client.invoke(wrap://plugin/ethereum-provider@1.1.0)" + "wrap://plugin/ethereum-provider@1.1.0 => Client.invokeWrapper" ] ] ] @@ -464,9 +464,9 @@ "wrap://ipfs/QmSAXrSLcmGUkQRrApAtG5qTPmuRMMX2Zf1wihpguDQfbm => StaticResolver - Miss", "wrap://ipfs/QmSAXrSLcmGUkQRrApAtG5qTPmuRMMX2Zf1wihpguDQfbm => ExtendableUriResolver => package (wrap://ipfs/QmSAXrSLcmGUkQRrApAtG5qTPmuRMMX2Zf1wihpguDQfbm)", [ - "wrap://ipfs/QmSAXrSLcmGUkQRrApAtG5qTPmuRMMX2Zf1wihpguDQfbm => ResolverExtension (wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1) => uri (wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1)", + "wrap://ipfs/QmSAXrSLcmGUkQRrApAtG5qTPmuRMMX2Zf1wihpguDQfbm => ResolverExtension (wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1) => package (wrap://ipfs/QmSAXrSLcmGUkQRrApAtG5qTPmuRMMX2Zf1wihpguDQfbm)", [ - "wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1 => Client.loadWrapper(wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1) => wrapper (wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1)", + "wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1 => Client.loadWrapper => wrapper (wrap://embed/async-ipfs-uri-resolver-ext@1.0.1)", [ "wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1 => RequestSynchronizerResolver => uri (wrap://embed/async-ipfs-uri-resolver-ext@1.0.1)", [ @@ -477,24 +477,24 @@ "wrap://embed/async-ipfs-uri-resolver-ext@1.0.1 => ResolutionResultCacheResolver (Cache) => wrapper (wrap://embed/async-ipfs-uri-resolver-ext@1.0.1)" ] ], - "wrap://embed/async-ipfs-uri-resolver-ext@1.0.1 => Client.invoke(wrap://embed/async-ipfs-uri-resolver-ext@1.0.1)", + "wrap://embed/async-ipfs-uri-resolver-ext@1.0.1 => Client.invokeWrapper", [ - "wrap://plugin/concurrent@1.0.0 => Client.loadWrapper(wrap://plugin/concurrent@1.0.0) => wrapper (wrap://plugin/concurrent@1.0.0)", + "wrap://plugin/concurrent@1.0.0 => Client.loadWrapper => wrapper (wrap://plugin/concurrent@1.0.0)", [ "wrap://plugin/concurrent@1.0.0 => RequestSynchronizerResolver => wrapper (wrap://plugin/concurrent@1.0.0)", [ "wrap://plugin/concurrent@1.0.0 => ResolutionResultCacheResolver (Cache) => wrapper (wrap://plugin/concurrent@1.0.0)" ] ], - "wrap://plugin/concurrent@1.0.0 => Client.invoke(wrap://plugin/concurrent@1.0.0)", - "wrap://plugin/concurrent@1.0.0 => Client.loadWrapper(wrap://plugin/concurrent@1.0.0) => wrapper (wrap://plugin/concurrent@1.0.0)", + "wrap://plugin/concurrent@1.0.0 => Client.invokeWrapper", + "wrap://plugin/concurrent@1.0.0 => Client.loadWrapper => wrapper (wrap://plugin/concurrent@1.0.0)", [ "wrap://plugin/concurrent@1.0.0 => RequestSynchronizerResolver => wrapper (wrap://plugin/concurrent@1.0.0)", [ "wrap://plugin/concurrent@1.0.0 => ResolutionResultCacheResolver (Cache) => wrapper (wrap://plugin/concurrent@1.0.0)" ] ], - "wrap://plugin/concurrent@1.0.0 => Client.invoke(wrap://plugin/concurrent@1.0.0)" + "wrap://plugin/concurrent@1.0.0 => Client.invokeWrapper" ] ] ] @@ -502,4 +502,4 @@ ] ] ] -] \ No newline at end of file +] diff --git a/packages/uri-resolver-extensions/src/__tests__/histories/can-resolve-package.json b/packages/uri-resolver-extensions/src/__tests__/histories/can-resolve-package.json index a619bfe96..361b49dea 100644 --- a/packages/uri-resolver-extensions/src/__tests__/histories/can-resolve-package.json +++ b/packages/uri-resolver-extensions/src/__tests__/histories/can-resolve-package.json @@ -4,11 +4,17 @@ "wrap://test/package => StaticResolver - Miss", "wrap://test/package => ExtendableUriResolver => package (wrap://test/package)", [ - "wrap://package/test-resolver => UriResolverAggregator => package (wrap://package/test-resolver)", + "wrap://test/package => ResolverExtension (wrap://package/test-resolver) => package (wrap://test/package)", [ - "wrap://package/test-resolver => StaticResolver - Package (wrap://package/test-resolver) => package (wrap://package/test-resolver)" - ], - "wrap://test/package => ResolverExtension (wrap://package/test-resolver) => package (wrap://test/package)" + "wrap://package/test-resolver => Client.loadWrapper => wrapper (wrap://package/test-resolver)", + [ + "wrap://package/test-resolver => UriResolverAggregator => package (wrap://package/test-resolver)", + [ + "wrap://package/test-resolver => StaticResolver - Package (wrap://package/test-resolver) => package (wrap://package/test-resolver)" + ] + ], + "wrap://package/test-resolver => Client.invokeWrapper" + ] ] ] -] +] \ No newline at end of file diff --git a/packages/uri-resolver-extensions/src/__tests__/histories/can-resolve-uri.json b/packages/uri-resolver-extensions/src/__tests__/histories/can-resolve-uri.json index dc0dd43dc..16c63d9a7 100644 --- a/packages/uri-resolver-extensions/src/__tests__/histories/can-resolve-uri.json +++ b/packages/uri-resolver-extensions/src/__tests__/histories/can-resolve-uri.json @@ -4,11 +4,17 @@ "wrap://test/from => StaticResolver - Miss", "wrap://test/from => ExtendableUriResolver => uri (wrap://test/to)", [ - "wrap://package/test-resolver => UriResolverAggregator => package (wrap://package/test-resolver)", + "wrap://test/from => ResolverExtension (wrap://package/test-resolver) => uri (wrap://test/to)", [ - "wrap://package/test-resolver => StaticResolver - Package (wrap://package/test-resolver) => package (wrap://package/test-resolver)" - ], - "wrap://test/from => ResolverExtension (wrap://package/test-resolver) => uri (wrap://test/to)" + "wrap://package/test-resolver => Client.loadWrapper => wrapper (wrap://package/test-resolver)", + [ + "wrap://package/test-resolver => UriResolverAggregator => package (wrap://package/test-resolver)", + [ + "wrap://package/test-resolver => StaticResolver - Package (wrap://package/test-resolver) => package (wrap://package/test-resolver)" + ] + ], + "wrap://package/test-resolver => Client.invokeWrapper" + ] ] ], "wrap://test/to => UriResolverAggregator", @@ -16,11 +22,17 @@ "wrap://test/to => StaticResolver - Miss", "wrap://test/to => ExtendableUriResolver", [ - "wrap://package/test-resolver => UriResolverAggregator => package (wrap://package/test-resolver)", + "wrap://test/to => ResolverExtension (wrap://package/test-resolver)", [ - "wrap://package/test-resolver => StaticResolver - Package (wrap://package/test-resolver) => package (wrap://package/test-resolver)" - ], - "wrap://test/to => ResolverExtension (wrap://package/test-resolver)" + "wrap://package/test-resolver => Client.loadWrapper => wrapper (wrap://package/test-resolver)", + [ + "wrap://package/test-resolver => UriResolverAggregator => package (wrap://package/test-resolver)", + [ + "wrap://package/test-resolver => StaticResolver - Package (wrap://package/test-resolver) => package (wrap://package/test-resolver)" + ] + ], + "wrap://package/test-resolver => Client.invokeWrapper" + ] ] ] -] +] \ No newline at end of file diff --git a/packages/uri-resolver-extensions/src/__tests__/histories/not-a-match.json b/packages/uri-resolver-extensions/src/__tests__/histories/not-a-match.json index 06c334e8e..1898507ce 100644 --- a/packages/uri-resolver-extensions/src/__tests__/histories/not-a-match.json +++ b/packages/uri-resolver-extensions/src/__tests__/histories/not-a-match.json @@ -4,11 +4,17 @@ "wrap://test/not-a-match => StaticResolver - Miss", "wrap://test/not-a-match => ExtendableUriResolver", [ - "wrap://package/test-resolver => UriResolverAggregator => package (wrap://package/test-resolver)", + "wrap://test/not-a-match => ResolverExtension (wrap://package/test-resolver)", [ - "wrap://package/test-resolver => StaticResolver - Package (wrap://package/test-resolver) => package (wrap://package/test-resolver)" - ], - "wrap://test/not-a-match => ResolverExtension (wrap://package/test-resolver)" + "wrap://package/test-resolver => Client.loadWrapper => wrapper (wrap://package/test-resolver)", + [ + "wrap://package/test-resolver => UriResolverAggregator => package (wrap://package/test-resolver)", + [ + "wrap://package/test-resolver => StaticResolver - Package (wrap://package/test-resolver) => package (wrap://package/test-resolver)" + ] + ], + "wrap://package/test-resolver => Client.invokeWrapper" + ] ] ] -] +] \ No newline at end of file diff --git a/packages/uri-resolver-extensions/src/__tests__/histories/not-found-extension.json b/packages/uri-resolver-extensions/src/__tests__/histories/not-found-extension.json index fccc0c255..1fd642d37 100644 --- a/packages/uri-resolver-extensions/src/__tests__/histories/not-found-extension.json +++ b/packages/uri-resolver-extensions/src/__tests__/histories/not-found-extension.json @@ -1,10 +1,15 @@ [ - "wrap://test/not-a-match => UriResolverAggregator => error (While resolving wrap://test/not-a-match with URI resolver extension wrap://test/undefined-resolver, the extension could not be fully resolved. Last tried URI is wrap://test/undefined-resolver)", + "wrap://test/not-a-match => UriResolverAggregator => error (Unable to find URI wrap://test/undefined-resolver.\ncode: 28 URI NOT FOUND\nuri: wrap://test/undefined-resolver\nuriResolutionStack: [\n \"wrap://test/undefined-resolver => UriResolverAggregator\"\n])", [ - "wrap://test/not-a-match => ExtendableUriResolver => error (While resolving wrap://test/not-a-match with URI resolver extension wrap://test/undefined-resolver, the extension could not be fully resolved. Last tried URI is wrap://test/undefined-resolver)", + "wrap://test/not-a-match => ExtendableUriResolver => error (Unable to find URI wrap://test/undefined-resolver.\ncode: 28 URI NOT FOUND\nuri: wrap://test/undefined-resolver\nuriResolutionStack: [\n \"wrap://test/undefined-resolver => UriResolverAggregator\"\n])", [ - "wrap://test/undefined-resolver => UriResolverAggregator", - "wrap://test/not-a-match => ResolverExtension (wrap://test/undefined-resolver) => error (While resolving wrap://test/not-a-match with URI resolver extension wrap://test/undefined-resolver, the extension could not be fully resolved. Last tried URI is wrap://test/undefined-resolver)" + "wrap://test/not-a-match => ResolverExtension (wrap://test/undefined-resolver) => error (Unable to find URI wrap://test/undefined-resolver.\ncode: 28 URI NOT FOUND\nuri: wrap://test/undefined-resolver\nuriResolutionStack: [\n \"wrap://test/undefined-resolver => UriResolverAggregator\"\n])", + [ + "wrap://test/undefined-resolver => Client.loadWrapper => error (Unable to find URI wrap://test/undefined-resolver.\ncode: 28 URI NOT FOUND\nuri: wrap://test/undefined-resolver\nuriResolutionStack: [\n \"wrap://test/undefined-resolver => UriResolverAggregator\"\n])", + [ + "wrap://test/undefined-resolver => UriResolverAggregator" + ] + ] ] ] -] +] \ No newline at end of file diff --git a/packages/uri-resolver-extensions/src/__tests__/histories/shows-plugin-extension-error.json b/packages/uri-resolver-extensions/src/__tests__/histories/shows-plugin-extension-error.json index 2ac0166a0..b5ef0f5e2 100644 --- a/packages/uri-resolver-extensions/src/__tests__/histories/shows-plugin-extension-error.json +++ b/packages/uri-resolver-extensions/src/__tests__/histories/shows-plugin-extension-error.json @@ -4,11 +4,17 @@ "wrap://test/error => StaticResolver - Miss", "wrap://test/error => ExtendableUriResolver => error (Test error\ncode: 51 WRAPPER INVOKE ABORTED\nuri: wrap://package/test-resolver\nmethod: tryResolveUri\nargs: {\n \"authority\": \"test\",\n \"path\": \"error\"\n} )", [ - "wrap://package/test-resolver => UriResolverAggregator => package (wrap://package/test-resolver)", + "wrap://test/error => ResolverExtension (wrap://package/test-resolver) => error (Test error\ncode: 51 WRAPPER INVOKE ABORTED\nuri: wrap://package/test-resolver\nmethod: tryResolveUri\nargs: {\n \"authority\": \"test\",\n \"path\": \"error\"\n} )", [ - "wrap://package/test-resolver => StaticResolver - Package (wrap://package/test-resolver) => package (wrap://package/test-resolver)" - ], - "wrap://test/error => ResolverExtension (wrap://package/test-resolver) => error (Test error\ncode: 51 WRAPPER INVOKE ABORTED\nuri: wrap://package/test-resolver\nmethod: tryResolveUri\nargs: {\n \"authority\": \"test\",\n \"path\": \"error\"\n} )" + "wrap://package/test-resolver => Client.loadWrapper => wrapper (wrap://package/test-resolver)", + [ + "wrap://package/test-resolver => UriResolverAggregator => package (wrap://package/test-resolver)", + [ + "wrap://package/test-resolver => StaticResolver - Package (wrap://package/test-resolver) => package (wrap://package/test-resolver)" + ] + ], + "wrap://package/test-resolver => Client.invokeWrapper => error (Test error\ncode: 51 WRAPPER INVOKE ABORTED\nuri: wrap://package/test-resolver\nmethod: tryResolveUri\nargs: {\n \"authority\": \"test\",\n \"path\": \"error\"\n} )" + ] ] ] -] +] \ No newline at end of file diff --git a/packages/uri-resolver-extensions/src/__tests__/histories/shows-wasm-extension-error.json b/packages/uri-resolver-extensions/src/__tests__/histories/shows-wasm-extension-error.json index dadd6e97e..fc431bc16 100644 --- a/packages/uri-resolver-extensions/src/__tests__/histories/shows-wasm-extension-error.json +++ b/packages/uri-resolver-extensions/src/__tests__/histories/shows-wasm-extension-error.json @@ -4,11 +4,17 @@ "wrap://test/error => StaticResolver - Miss", "wrap://test/error => ExtendableUriResolver => error (__wrap_abort: Test error\ncode: 51 WRAPPER INVOKE ABORTED\nuri: wrap://package/test-resolver\nmethod: tryResolveUri\nargs: {\n \"authority\": \"test\",\n \"path\": \"error\"\n} \nsource: { file: \"src/wrap/module/wrapped.rs\", row: 35, col: 21 })", [ - "wrap://package/test-resolver => UriResolverAggregator => package (wrap://package/test-resolver)", + "wrap://test/error => ResolverExtension (wrap://package/test-resolver) => error (__wrap_abort: Test error\ncode: 51 WRAPPER INVOKE ABORTED\nuri: wrap://package/test-resolver\nmethod: tryResolveUri\nargs: {\n \"authority\": \"test\",\n \"path\": \"error\"\n} \nsource: { file: \"src/wrap/module/wrapped.rs\", row: 35, col: 21 })", [ - "wrap://package/test-resolver => StaticResolver - Package (wrap://package/test-resolver) => package (wrap://package/test-resolver)" - ], - "wrap://test/error => ResolverExtension (wrap://package/test-resolver) => error (__wrap_abort: Test error\ncode: 51 WRAPPER INVOKE ABORTED\nuri: wrap://package/test-resolver\nmethod: tryResolveUri\nargs: {\n \"authority\": \"test\",\n \"path\": \"error\"\n} \nsource: { file: \"src/wrap/module/wrapped.rs\", row: 35, col: 21 })" + "wrap://package/test-resolver => Client.loadWrapper => wrapper (wrap://package/test-resolver)", + [ + "wrap://package/test-resolver => UriResolverAggregator => package (wrap://package/test-resolver)", + [ + "wrap://package/test-resolver => StaticResolver - Package (wrap://package/test-resolver) => package (wrap://package/test-resolver)" + ] + ], + "wrap://package/test-resolver => Client.invokeWrapper => error (__wrap_abort: Test error\ncode: 51 WRAPPER INVOKE ABORTED\nuri: wrap://package/test-resolver\nmethod: tryResolveUri\nargs: {\n \"authority\": \"test\",\n \"path\": \"error\"\n} \nsource: { file: \"src/wrap/module/wrapped.rs\", row: 35, col: 21 })" + ] ] ] -] + ] \ No newline at end of file diff --git a/packages/uri-resolver-extensions/src/__tests__/resolver-extensions.spec.ts b/packages/uri-resolver-extensions/src/__tests__/resolver-extensions.spec.ts index bd1d57ee9..331948777 100644 --- a/packages/uri-resolver-extensions/src/__tests__/resolver-extensions.spec.ts +++ b/packages/uri-resolver-extensions/src/__tests__/resolver-extensions.spec.ts @@ -448,8 +448,13 @@ source: { file: "src/wrap/module/wrapped.rs", row: 35, col: 21 }` fail("Resoulution should have failed"); } - expect(result.error).toEqual( - "While resolving wrap://test/not-a-match with URI resolver extension wrap://test/undefined-resolver, the extension could not be fully resolved. Last tried URI is wrap://test/undefined-resolver" + expect((result.error as Error)?.message).toEqual( + `Unable to find URI wrap://test/undefined-resolver. +code: 28 URI NOT FOUND +uri: wrap://test/undefined-resolver +uriResolutionStack: [ + "wrap://test/undefined-resolver => UriResolverAggregator" +]` ); }); }); From a3da65c8244f3299d22381a0a8701956f7a567ea Mon Sep 17 00:00:00 2001 From: Jure Bogunovic Date: Thu, 20 Apr 2023 00:56:08 +0200 Subject: [PATCH 12/31] moved UriResolutionResult to core-js --- .../uri-resolution/uri-resolution.spec.ts | 4 +-- .../core-client/src/PolywrapCoreClient.ts | 2 +- .../uri-resolution}/UriResolutionResult.ts | 11 +++----- packages/core/src/uri-resolution/index.ts | 1 + .../src/ExtendableUriResolver.ts | 6 ++--- .../src/UriResolverWrapper.ts | 2 +- .../package-to-wrapper.spec.ts | 2 +- .../recursive-resolver.spec.ts | 27 +++++++------------ .../request-synchronizer-resolver.spec.ts | 4 +-- .../resolution-result-cache-resolver.spec.ts | 3 ++- .../wrapper-cache-resolver.spec.ts | 3 ++- .../aggregator/UriResolverAggregatorBase.ts | 3 +-- .../src/cache/WrapperCacheResolver.ts | 3 ++- .../src/helpers/RecursiveResolver.ts | 2 +- .../src/helpers/ResolverWithLoopGuard.ts | 2 +- packages/uri-resolvers/src/helpers/index.ts | 1 - .../src/packages/PackageResolver.ts | 9 +++++-- .../src/packages/PackageToWrapperResolver.ts | 3 ++- .../src/redirects/RedirectResolver.ts | 8 ++++-- .../src/static/StaticResolver.ts | 3 ++- .../src/wrappers/WrapperResolver.ts | 9 +++++-- 21 files changed, 56 insertions(+), 52 deletions(-) rename packages/{uri-resolvers/src/helpers => core/src/uri-resolution}/UriResolutionResult.ts (92%) diff --git a/packages/client/src/__tests__/core/uri-resolution/uri-resolution.spec.ts b/packages/client/src/__tests__/core/uri-resolution/uri-resolution.spec.ts index 1336e0397..4cd569479 100644 --- a/packages/client/src/__tests__/core/uri-resolution/uri-resolution.spec.ts +++ b/packages/client/src/__tests__/core/uri-resolution/uri-resolution.spec.ts @@ -5,8 +5,8 @@ import { UriPackageOrWrapper, UriResolutionContext, buildCleanUriHistory, + UriResolutionResult, } from "@polywrap/core-js"; -import { UriResolutionResult } from "@polywrap/uri-resolvers-js"; import fs from "fs"; import { Result } from "@polywrap/result"; import { PolywrapClient, ClientConfigBuilder } from "../../../"; @@ -78,7 +78,7 @@ describe("URI resolution", () => { ); if (expectResult.ok) { - expectResult.value.type = "wrapper" + expectResult.value.type = "wrapper"; } await expectResultWithHistory( diff --git a/packages/core-client/src/PolywrapCoreClient.ts b/packages/core-client/src/PolywrapCoreClient.ts index 51f5b021a..6e4e05854 100644 --- a/packages/core-client/src/PolywrapCoreClient.ts +++ b/packages/core-client/src/PolywrapCoreClient.ts @@ -21,6 +21,7 @@ import { WrapperEnv, ReadonlyUriMap, UriMap, + UriResolutionResult, } from "@polywrap/core-js"; import { msgpackEncode, msgpackDecode } from "@polywrap/msgpack-js"; import { @@ -28,7 +29,6 @@ import { WrapManifest, } from "@polywrap/wrap-manifest-types-js"; import { Result, ResultErr, ResultOk } from "@polywrap/result"; -import { UriResolutionResult } from "@polywrap/uri-resolvers-js"; export class PolywrapCoreClient implements CoreClient { // $start: PolywrapCoreClient-constructor diff --git a/packages/uri-resolvers/src/helpers/UriResolutionResult.ts b/packages/core/src/uri-resolution/UriResolutionResult.ts similarity index 92% rename from packages/uri-resolvers/src/helpers/UriResolutionResult.ts rename to packages/core/src/uri-resolution/UriResolutionResult.ts index af836bcc7..41e38a2c7 100644 --- a/packages/uri-resolvers/src/helpers/UriResolutionResult.ts +++ b/packages/core/src/uri-resolution/UriResolutionResult.ts @@ -1,10 +1,7 @@ -import { - UriPackageOrWrapper, - IUriResolutionStep, - Uri, - IWrapPackage, - Wrapper, -} from "@polywrap/core-js"; +import { Uri, IWrapPackage, Wrapper } from "../types"; +import { IUriResolutionStep } from "./IUriResolutionStep"; +import { UriPackageOrWrapper } from "./UriPackageOrWrapper"; + import { Result, ResultOk, ResultErr } from "@polywrap/result"; // $start: UriResolutionResult diff --git a/packages/core/src/uri-resolution/index.ts b/packages/core/src/uri-resolution/index.ts index 94cbea532..33918490c 100644 --- a/packages/core/src/uri-resolution/index.ts +++ b/packages/core/src/uri-resolution/index.ts @@ -3,3 +3,4 @@ export * from "./IUriResolver"; export * from "./UriPackageOrWrapper"; export * from "./IUriResolutionContext"; export * from "./UriResolutionContext"; +export * from "./UriResolutionResult"; diff --git a/packages/uri-resolver-extensions/src/ExtendableUriResolver.ts b/packages/uri-resolver-extensions/src/ExtendableUriResolver.ts index aefdb14c8..8a8818034 100644 --- a/packages/uri-resolver-extensions/src/ExtendableUriResolver.ts +++ b/packages/uri-resolver-extensions/src/ExtendableUriResolver.ts @@ -6,12 +6,10 @@ import { IUriResolver, IUriResolutionContext, UriPackageOrWrapper, + UriResolutionResult, } from "@polywrap/core-js"; import { Result, ResultErr, ResultOk } from "@polywrap/result"; -import { - UriResolverAggregatorBase, - UriResolutionResult, -} from "@polywrap/uri-resolvers-js"; +import { UriResolverAggregatorBase } from "@polywrap/uri-resolvers-js"; // $start: ExtendableUriResolver /** diff --git a/packages/uri-resolver-extensions/src/UriResolverWrapper.ts b/packages/uri-resolver-extensions/src/UriResolverWrapper.ts index 0b09593aa..2b004a4df 100644 --- a/packages/uri-resolver-extensions/src/UriResolverWrapper.ts +++ b/packages/uri-resolver-extensions/src/UriResolverWrapper.ts @@ -7,10 +7,10 @@ import { IUriResolutionContext, UriPackageOrWrapper, IUriResolver, + UriResolutionResult, } from "@polywrap/core-js"; import { Result, ResultOk } from "@polywrap/result"; import { WasmPackage } from "@polywrap/wasm-js"; -import { UriResolutionResult } from "@polywrap/uri-resolvers-js"; // $start: UriResolverWrapper /** diff --git a/packages/uri-resolvers/src/__tests__/package-to-wrapper-resolver/package-to-wrapper.spec.ts b/packages/uri-resolvers/src/__tests__/package-to-wrapper-resolver/package-to-wrapper.spec.ts index b19209bc3..6990df642 100644 --- a/packages/uri-resolvers/src/__tests__/package-to-wrapper-resolver/package-to-wrapper.spec.ts +++ b/packages/uri-resolvers/src/__tests__/package-to-wrapper-resolver/package-to-wrapper.spec.ts @@ -6,11 +6,11 @@ import { Uri, UriPackageOrWrapper, UriResolutionContext, + UriResolutionResult, } from "@polywrap/core-js"; import { expectHistory } from "../helpers/expectHistory"; import { PolywrapCoreClient } from "@polywrap/core-client-js"; import { PluginPackage } from "@polywrap/plugin-js"; -import { UriResolutionResult } from "../../helpers"; import { PackageToWrapperResolver } from "../../packages"; jest.setTimeout(20000); diff --git a/packages/uri-resolvers/src/__tests__/recursive-resolver/recursive-resolver.spec.ts b/packages/uri-resolvers/src/__tests__/recursive-resolver/recursive-resolver.spec.ts index 1b844881c..a6f47ad5f 100644 --- a/packages/uri-resolvers/src/__tests__/recursive-resolver/recursive-resolver.spec.ts +++ b/packages/uri-resolvers/src/__tests__/recursive-resolver/recursive-resolver.spec.ts @@ -6,10 +6,11 @@ import { Uri, UriPackageOrWrapper, UriResolutionContext, + UriResolutionResult, } from "@polywrap/core-js"; import { expectHistory } from "../helpers/expectHistory"; import { PolywrapCoreClient } from "@polywrap/core-client-js"; -import { RecursiveResolver, UriResolutionResult } from "../../helpers"; +import { RecursiveResolver } from "../../helpers"; jest.setTimeout(20000); @@ -23,19 +24,13 @@ class SimpleRedirectResolver implements IUriResolver { switch (uri.uri) { case "wrap://test/1": - result = UriResolutionResult.ok( - Uri.from("test/2"), - ); + result = UriResolutionResult.ok(Uri.from("test/2")); break; case "wrap://test/2": - result = UriResolutionResult.ok( - Uri.from("test/3"), - ); + result = UriResolutionResult.ok(Uri.from("test/3")); break; case "wrap://test/3": - result = UriResolutionResult.ok( - Uri.from("test/4"), - ); + result = UriResolutionResult.ok(Uri.from("test/4")); break; default: result = UriResolutionResult.ok(uri); @@ -56,9 +51,7 @@ describe("RecursiveResolver", () => { const uri = new Uri("test/1"); const client = new PolywrapCoreClient({ - resolver: RecursiveResolver.from( - new SimpleRedirectResolver() - ) + resolver: RecursiveResolver.from(new SimpleRedirectResolver()), }); let resolutionContext = new UriResolutionContext(); @@ -67,7 +60,7 @@ describe("RecursiveResolver", () => { await expectHistory( resolutionContext.getHistory(), "recursive-resolver", - "can-recursively-resolve-uri", + "can-recursively-resolve-uri" ); if (!result.ok) { @@ -85,9 +78,7 @@ describe("RecursiveResolver", () => { const uri = new Uri("test/not-a-match"); const client = new PolywrapCoreClient({ - resolver: RecursiveResolver.from( - new SimpleRedirectResolver() - ) + resolver: RecursiveResolver.from(new SimpleRedirectResolver()), }); let resolutionContext = new UriResolutionContext(); @@ -96,7 +87,7 @@ describe("RecursiveResolver", () => { await expectHistory( resolutionContext.getHistory(), "recursive-resolver", - "not-a-match", + "not-a-match" ); if (!result.ok) { diff --git a/packages/uri-resolvers/src/__tests__/request-synchronizer-resolver/request-synchronizer-resolver.spec.ts b/packages/uri-resolvers/src/__tests__/request-synchronizer-resolver/request-synchronizer-resolver.spec.ts index 320fb1d9c..187cc2f4c 100644 --- a/packages/uri-resolvers/src/__tests__/request-synchronizer-resolver/request-synchronizer-resolver.spec.ts +++ b/packages/uri-resolvers/src/__tests__/request-synchronizer-resolver/request-synchronizer-resolver.spec.ts @@ -6,10 +6,10 @@ import { Uri, UriPackageOrWrapper, UriResolutionContext, + UriResolutionResult, } from "@polywrap/core-js"; import { expectHistory } from "../helpers/expectHistory"; import { RequestSynchronizerResolver } from "../../cache"; -import { UriResolutionResult } from "../../helpers"; import { PolywrapCoreClient } from "@polywrap/core-client-js"; jest.setTimeout(20000); @@ -211,7 +211,7 @@ describe("RequestSynchronizerResolver", () => { const invocations: Promise>[] = []; const resolutionContexts: IUriResolutionContext[] = []; - + for (let i = 0; i < 3; i++) { const resolutionContext = new UriResolutionContext(); const result = client.tryResolveUri({ uri, resolutionContext }); diff --git a/packages/uri-resolvers/src/__tests__/resolution-result-cache-resolver/resolution-result-cache-resolver.spec.ts b/packages/uri-resolvers/src/__tests__/resolution-result-cache-resolver/resolution-result-cache-resolver.spec.ts index a37a4c393..9124c58a3 100644 --- a/packages/uri-resolvers/src/__tests__/resolution-result-cache-resolver/resolution-result-cache-resolver.spec.ts +++ b/packages/uri-resolvers/src/__tests__/resolution-result-cache-resolver/resolution-result-cache-resolver.spec.ts @@ -6,9 +6,10 @@ import { Uri, UriPackageOrWrapper, UriResolutionContext, + UriResolutionResult, } from "@polywrap/core-js"; import { expectHistory } from "../helpers/expectHistory"; -import { RecursiveResolver, UriResolutionResult } from "../../helpers"; +import { RecursiveResolver } from "../../helpers"; import { PolywrapCoreClient } from "@polywrap/core-client-js"; import { PluginPackage } from "@polywrap/plugin-js"; import { ResolutionResultCacheResolver } from "../../cache/ResolutionResultCacheResolver"; diff --git a/packages/uri-resolvers/src/__tests__/wrapper-cache-resolver/wrapper-cache-resolver.spec.ts b/packages/uri-resolvers/src/__tests__/wrapper-cache-resolver/wrapper-cache-resolver.spec.ts index 91912d122..c7b39b5ed 100644 --- a/packages/uri-resolvers/src/__tests__/wrapper-cache-resolver/wrapper-cache-resolver.spec.ts +++ b/packages/uri-resolvers/src/__tests__/wrapper-cache-resolver/wrapper-cache-resolver.spec.ts @@ -6,9 +6,10 @@ import { Uri, UriPackageOrWrapper, UriResolutionContext, + UriResolutionResult, } from "@polywrap/core-js"; import { expectHistory } from "../helpers/expectHistory"; -import { RecursiveResolver, UriResolutionResult } from "../../helpers"; +import { RecursiveResolver } from "../../helpers"; import { PolywrapCoreClient } from "@polywrap/core-client-js"; import { PluginPackage } from "@polywrap/plugin-js"; import { WrapperCache, WrapperCacheResolver } from "../../cache"; diff --git a/packages/uri-resolvers/src/aggregator/UriResolverAggregatorBase.ts b/packages/uri-resolvers/src/aggregator/UriResolverAggregatorBase.ts index d33deef84..c004b91c8 100644 --- a/packages/uri-resolvers/src/aggregator/UriResolverAggregatorBase.ts +++ b/packages/uri-resolvers/src/aggregator/UriResolverAggregatorBase.ts @@ -1,11 +1,10 @@ -import { UriResolutionResult } from "../helpers"; - import { IUriResolver, Uri, CoreClient, IUriResolutionContext, UriPackageOrWrapper, + UriResolutionResult, } from "@polywrap/core-js"; import { Result } from "@polywrap/result"; diff --git a/packages/uri-resolvers/src/cache/WrapperCacheResolver.ts b/packages/uri-resolvers/src/cache/WrapperCacheResolver.ts index e7128caae..401f97f5a 100644 --- a/packages/uri-resolvers/src/cache/WrapperCacheResolver.ts +++ b/packages/uri-resolvers/src/cache/WrapperCacheResolver.ts @@ -1,5 +1,5 @@ import { IWrapperCache } from "./IWrapperCache"; -import { UriResolutionResult, UriResolver, UriResolverLike } from "../helpers"; +import { UriResolver, UriResolverLike } from "../helpers"; import { IUriResolver, @@ -7,6 +7,7 @@ import { CoreClient, IUriResolutionContext, UriPackageOrWrapper, + UriResolutionResult, } from "@polywrap/core-js"; import { Result } from "@polywrap/result"; diff --git a/packages/uri-resolvers/src/helpers/RecursiveResolver.ts b/packages/uri-resolvers/src/helpers/RecursiveResolver.ts index e111d0faf..3705bb1fb 100644 --- a/packages/uri-resolvers/src/helpers/RecursiveResolver.ts +++ b/packages/uri-resolvers/src/helpers/RecursiveResolver.ts @@ -1,6 +1,5 @@ import { InfiniteLoopError } from "./InfiniteLoopError"; import { UriResolverLike } from "./UriResolverLike"; -import { UriResolutionResult } from "./UriResolutionResult"; import { UriResolver } from "./UriResolver"; import { Result } from "@polywrap/result"; @@ -10,6 +9,7 @@ import { CoreClient, IUriResolutionContext, UriPackageOrWrapper, + UriResolutionResult, } from "@polywrap/core-js"; // $start: RecursiveResolver diff --git a/packages/uri-resolvers/src/helpers/ResolverWithLoopGuard.ts b/packages/uri-resolvers/src/helpers/ResolverWithLoopGuard.ts index c1af045c4..b84166248 100644 --- a/packages/uri-resolvers/src/helpers/ResolverWithLoopGuard.ts +++ b/packages/uri-resolvers/src/helpers/ResolverWithLoopGuard.ts @@ -1,6 +1,5 @@ import { InfiniteLoopError } from "./InfiniteLoopError"; import { UriResolverLike } from "./UriResolverLike"; -import { UriResolutionResult } from "./UriResolutionResult"; import { UriResolver } from "./UriResolver"; import { @@ -9,6 +8,7 @@ import { CoreClient, IUriResolutionContext, UriPackageOrWrapper, + UriResolutionResult, } from "@polywrap/core-js"; import { Result } from "@polywrap/result"; diff --git a/packages/uri-resolvers/src/helpers/index.ts b/packages/uri-resolvers/src/helpers/index.ts index def176891..11f0157d2 100644 --- a/packages/uri-resolvers/src/helpers/index.ts +++ b/packages/uri-resolvers/src/helpers/index.ts @@ -1,4 +1,3 @@ -export * from "./UriResolutionResult"; export * from "./UriResolverLike"; export * from "./ResolverWithHistory"; export * from "./InfiniteLoopError"; diff --git a/packages/uri-resolvers/src/packages/PackageResolver.ts b/packages/uri-resolvers/src/packages/PackageResolver.ts index 396d72d79..346e4b273 100644 --- a/packages/uri-resolvers/src/packages/PackageResolver.ts +++ b/packages/uri-resolvers/src/packages/PackageResolver.ts @@ -1,6 +1,11 @@ -import { ResolverWithHistory, UriResolutionResult } from "../helpers"; +import { ResolverWithHistory } from "../helpers"; -import { Uri, IWrapPackage, UriPackageOrWrapper } from "@polywrap/core-js"; +import { + Uri, + IWrapPackage, + UriPackageOrWrapper, + UriResolutionResult, +} from "@polywrap/core-js"; import { Result } from "@polywrap/result"; // $start: PackageResolver diff --git a/packages/uri-resolvers/src/packages/PackageToWrapperResolver.ts b/packages/uri-resolvers/src/packages/PackageToWrapperResolver.ts index b22ba7499..d7115c050 100644 --- a/packages/uri-resolvers/src/packages/PackageToWrapperResolver.ts +++ b/packages/uri-resolvers/src/packages/PackageToWrapperResolver.ts @@ -1,4 +1,4 @@ -import { UriResolutionResult, UriResolver, UriResolverLike } from "../helpers"; +import { UriResolver, UriResolverLike } from "../helpers"; import { IUriResolver, @@ -6,6 +6,7 @@ import { CoreClient, IUriResolutionContext, UriPackageOrWrapper, + UriResolutionResult, } from "@polywrap/core-js"; import { DeserializeManifestOptions } from "@polywrap/wrap-manifest-types-js"; import { Result } from "@polywrap/result"; diff --git a/packages/uri-resolvers/src/redirects/RedirectResolver.ts b/packages/uri-resolvers/src/redirects/RedirectResolver.ts index 4124b625a..19bacfb44 100644 --- a/packages/uri-resolvers/src/redirects/RedirectResolver.ts +++ b/packages/uri-resolvers/src/redirects/RedirectResolver.ts @@ -1,6 +1,10 @@ -import { ResolverWithHistory, UriResolutionResult } from "../helpers"; +import { ResolverWithHistory } from "../helpers"; -import { Uri, UriPackageOrWrapper } from "@polywrap/core-js"; +import { + Uri, + UriPackageOrWrapper, + UriResolutionResult, +} from "@polywrap/core-js"; import { Result } from "@polywrap/result"; // $start: RedirectResolver diff --git a/packages/uri-resolvers/src/static/StaticResolver.ts b/packages/uri-resolvers/src/static/StaticResolver.ts index d18594074..3cf7031a3 100644 --- a/packages/uri-resolvers/src/static/StaticResolver.ts +++ b/packages/uri-resolvers/src/static/StaticResolver.ts @@ -1,4 +1,4 @@ -import { UriResolutionResult, UriResolverLike } from "../helpers"; +import { UriResolverLike } from "../helpers"; import { CoreClient, @@ -9,6 +9,7 @@ import { IUriRedirect, IUriPackage, IUriWrapper, + UriResolutionResult, } from "@polywrap/core-js"; import { Result } from "@polywrap/result"; diff --git a/packages/uri-resolvers/src/wrappers/WrapperResolver.ts b/packages/uri-resolvers/src/wrappers/WrapperResolver.ts index 3820a7a84..782805273 100644 --- a/packages/uri-resolvers/src/wrappers/WrapperResolver.ts +++ b/packages/uri-resolvers/src/wrappers/WrapperResolver.ts @@ -1,6 +1,11 @@ -import { ResolverWithHistory, UriResolutionResult } from "../helpers"; +import { ResolverWithHistory } from "../helpers"; -import { Uri, UriPackageOrWrapper, Wrapper } from "@polywrap/core-js"; +import { + Uri, + UriPackageOrWrapper, + Wrapper, + UriResolutionResult, +} from "@polywrap/core-js"; import { Result } from "@polywrap/result"; // $start: WrapperResolver From c41cc73b8321a74eb9dbddc903b1331de0e9d3eb Mon Sep 17 00:00:00 2001 From: Jure Bogunovic Date: Thu, 20 Apr 2023 13:50:26 +0200 Subject: [PATCH 13/31] built docs --- packages/core-client/README.md | 2 +- packages/core/README.md | 15 ++ packages/uri-resolver-extensions/README.md | 191 +++--------------- .../uri-resolver-extensions/readme/README.md | 56 ++--- .../readme/sub-sections/base/helpers.md | 69 ++++--- yarn.lock | 6 +- 6 files changed, 124 insertions(+), 215 deletions(-) diff --git a/packages/core-client/README.md b/packages/core-client/README.md index 8844fdb90..78922e1fa 100644 --- a/packages/core-client/README.md +++ b/packages/core-client/README.md @@ -257,7 +257,7 @@ Invoke a wrapper. ## Development -The Polywrap JavaScript client is open-source. It lives within the [Polywrap JavaScript Client repo](https://github.com/polywrap/javascript-client). Contributions from the community are welcomed! +The Polywrap JavaScript client is open-source. It lives within the [Polywrap JavaScript Client repository](https://github.com/polywrap/javascript-client). Contributions from the community are welcomed! ### Build ```bash diff --git a/packages/core/README.md b/packages/core/README.md index f122bcdaa..ec0e0c606 100644 --- a/packages/core/README.md +++ b/packages/core/README.md @@ -119,6 +119,21 @@ export interface CoreClient extends Invoker, UriResolverHandler { uri: Uri, options: GetImplementationsOptions ): Promise>; + + /** + * Resolve a URI to a wrap package or wrapper. + * If the URI resolves to wrap package, load the wrapper. + * + * @param uri - the Uri to resolve + * @param resolutionContext? - a resolution context + * @param options - { noValidate?: boolean } + * @returns A Promise with a Result containing a Wrapper or Error + */ + loadWrapper( + uri: Uri, + resolutionContext?: IUriResolutionContext, + options?: DeserializeManifestOptions + ): Promise>; } ``` diff --git a/packages/uri-resolver-extensions/README.md b/packages/uri-resolver-extensions/README.md index c65df80d7..05cd937a4 100644 --- a/packages/uri-resolver-extensions/README.md +++ b/packages/uri-resolver-extensions/README.md @@ -1,4 +1,5 @@ # @polywrap/uri-resolver-extensions-js + npm @@ -20,28 +21,7 @@ If you build a configuration for the Polywrap client using the `ClientConfigBuil Otherwise, you must also add the `ExtendableUriResolver` to your resolver. ```ts - const clientConfig: CoreClientConfig = { - interfaces: new UriMap([ - [ - Uri.from("wrap://ens/uri-resolver.core.polywrap.eth"), - [ - Uri.from("wrap://ens/fs-resolver.polywrap.eth"), - Uri.from("wrap://ens/ipfs-resolver.polywrap.eth"), - Uri.from("wrap://ens/ens-resolver.polywrap.eth"), - ], - ], - ]), - resolver: RecursiveResolver.from( - [ - StaticResolver.from([ - ...redirects, - ...wrappers, - ...packages, - ]), - new ExtendableUriResolver(), - ] - ) - }; +$snippet: quickstart - example; ``` # Reference @@ -49,199 +29,87 @@ Otherwise, you must also add the `ExtendableUriResolver` to your resolver. ## ExtendableUriResolver ```ts -/** - * A Uri Resolver that delegates resolution to wrappers implementing the - * URI Resolver Extension Interface. - * */ -export class ExtendableUriResolver extends UriResolverAggregatorBase< - Error, - Error -> +$snippet: ExtendableUriResolver; ``` ### Properties #### extInterfaceUri (static) + ```ts - /** The supported interface URIs to which resolver-ext implementations should be registered */ - public static defaultExtInterfaceUris: Uri[] = [ - Uri.from("wrap://ens/wraps.eth:uri-resolver-ext@1.1.0"), - Uri.from("wrap://ens/wraps.eth:uri-resolver-ext@1.0.0"), - ]; +$snippet: ExtendableUriResolver - extInterfaceUri - static; ``` #### extInterfaceUri + ```ts - /** The active interface URIs to which implementations should be registered */ - public readonly extInterfaceUris: Uri[]; +$snippet: ExtendableUriResolver - extInterfaceUri; ``` ### constructor + ```ts - /** - * Create an ExtendableUriResolver - * - * @param extInterfaceUris - URI Resolver Interface URIs - * @param resolverName - Name to use in resolution history output - * */ - constructor( - extInterfaceUris: Uri[] = ExtendableUriResolver.defaultExtInterfaceUris, - resolverName = "ExtendableUriResolver" - ) +$snippet: ExtendableUriResolver - constructor; ``` ### Methods #### getUriResolvers + ```ts - /** - * Get a list of URI Resolvers - * - * @param uri - the URI to query for resolvers - * @param client - a CoreClient instance that can be used to make an invocation - * @param resolutionContext - the current URI resolution context - * - * @returns a list of IUriResolver or an error - * */ - async getUriResolvers( - uri: Uri, - client: CoreClient, - resolutionContext: IUriResolutionContext - ): Promise[], Error>> +$snippet: ExtendableUriResolver - getUriResolvers; ``` #### tryResolverUri + ```ts - /** - * Resolve a URI to a wrap package, a wrapper, or a URI. - * Attempts resolution with each the URI Resolver Extension wrappers sequentially. - * - * @param uri - the URI to resolve - * @param client - a CoreClient instance that may be used to invoke a wrapper that implements the UriResolver interface - * @param resolutionContext - the current URI resolution context - * @returns A Promise with a Result containing either a wrap package, a wrapper, or a URI if successful - */ - async tryResolveUri( - uri: Uri, - client: CoreClient, - resolutionContext: IUriResolutionContext - ): Promise> +$snippet: ExtendableUriResolver - tryResolverUri; ``` #### getStepDescription (protected) + ```ts - /** - * A utility function for generating step descriptions to facilitate resolution context updates - * - * @returns text describing the URI resolution step - * */ - protected getStepDescription = (): string +$snippet: ExtendableUriResolver - getStepDescription; ``` ## UriResolverExtensionFileReader + ```ts -/** An IFileReader that reads files by invoking URI Resolver Extension wrappers */ -export class UriResolverExtensionFileReader implements IFileReader +$snippet: UriResolverExtensionFileReader; ``` ### constructor + ```ts - /** - * Construct a UriResolverExtensionFileReader - * - * @param _resolverExtensionUri - URI of the URI Resolver Extension wrapper - * @param _wrapperUri - URI of the wrap package to read from - * @param _client - A CoreClient instance - * */ - constructor( - private readonly _resolverExtensionUri: Uri, - private readonly _wrapperUri: Uri, - private readonly _client: CoreClient - ) +$snippet: UriResolverExtensionFileReader - constructor; ``` ### Methods #### readFile + ```ts - /** - * Read a file - * - * @param filePath - the file's path from the wrap package root - * - * @returns a Result containing a buffer if successful, or an error - * */ - async readFile(filePath: string): Promise> +$snippet: UriResolverExtensionFileReader - readFile; ``` ## UriResolverWrapper + ```ts -/** - * An IUriResolver that delegates resolution to a wrapper that implements - * the URI Resolver Extension Interface - * */ -export class UriResolverWrapper extends ResolverWithHistory +$snippet: UriResolverWrapper; ``` ### constructor + ```ts - /** - * construct a UriResolverWrapper - * - * @param implementationUri - URI that resolves to a URI Resolver Extension implementation - * */ - constructor(public readonly implementationUri: Uri) +$snippet: UriResolverWrapper - constructor; ``` ### Methods -#### getStepDescription -```ts - /** - * A utility function for generating step descriptions to facilitate resolution context updates - * - * @returns text describing the URI resolution step - * */ - protected getStepDescription = (): string -``` - -#### tryResolveUriWithImplementation -```ts -/** - * Attempt to resolve a URI by invoking a URI Resolver Extension wrapper - * - * @param uri - the URI to resolve - * @param implementationUri - URI that resolves to a URI Resolver Extension implementation - * @param client - a CoreClient instance that will be used to invoke the URI Resolver Extension wrapper - * @param resolutionContext - the current URI resolution context - * @returns A Promise with a Result containing either URI or a manifest if successful - */ -const tryResolveUriWithImplementation = async ( - uri: Uri, - implementationUri: Uri, - client: CoreClient, - resolutionContext: IUriResolutionContext -): Promise< - Result -> -``` +#### tryResolverUri -#### _tryResolverUri (protected) ```ts - /** - * Attempt to resolve a URI by invoking a URI Resolver Extension wrapper, then - * parse the result to a wrap package, a wrapper, or a URI - * - * @param uri - the URI to resolve - * @param client - a CoreClient instance that may be used to invoke a wrapper that implements the UriResolver interface - * @param resolutionContext - the current URI resolution context - * @returns A Promise with a Result containing either a wrap package, a wrapper, or a URI if successful - */ - protected async _tryResolveUri( - uri: Uri, - client: CoreClient, - resolutionContext: IUriResolutionContext - ): Promise> +$snippet: UriResolverWrapper - tryResolverUri; ``` ## Development @@ -249,11 +117,14 @@ const tryResolveUriWithImplementation = async ( This package is open-source. It lives within the [Polywrap JavaScript Client repository](https://github.com/polywrap/javascript-client). Contributions from the community are welcomed! ### Build + ```bash nvm use && yarn install && yarn build ``` ### Test + ```bash yarn test -`` \ No newline at end of file +`` +``` diff --git a/packages/uri-resolver-extensions/readme/README.md b/packages/uri-resolver-extensions/readme/README.md index 75af0dae2..05cd937a4 100644 --- a/packages/uri-resolver-extensions/readme/README.md +++ b/packages/uri-resolver-extensions/readme/README.md @@ -1,4 +1,5 @@ # @polywrap/uri-resolver-extensions-js + npm @@ -20,7 +21,7 @@ If you build a configuration for the Polywrap client using the `ClientConfigBuil Otherwise, you must also add the `ExtendableUriResolver` to your resolver. ```ts -$snippet: quickstart-example +$snippet: quickstart - example; ``` # Reference @@ -28,85 +29,87 @@ $snippet: quickstart-example ## ExtendableUriResolver ```ts -$snippet: ExtendableUriResolver +$snippet: ExtendableUriResolver; ``` ### Properties #### extInterfaceUri (static) + ```ts -$snippet: ExtendableUriResolver-extInterfaceUri-static +$snippet: ExtendableUriResolver - extInterfaceUri - static; ``` #### extInterfaceUri + ```ts -$snippet: ExtendableUriResolver-extInterfaceUri +$snippet: ExtendableUriResolver - extInterfaceUri; ``` ### constructor + ```ts -$snippet: ExtendableUriResolver-constructor +$snippet: ExtendableUriResolver - constructor; ``` ### Methods #### getUriResolvers + ```ts -$snippet: ExtendableUriResolver-getUriResolvers +$snippet: ExtendableUriResolver - getUriResolvers; ``` #### tryResolverUri + ```ts -$snippet: ExtendableUriResolver-tryResolverUri +$snippet: ExtendableUriResolver - tryResolverUri; ``` #### getStepDescription (protected) + ```ts -$snippet: ExtendableUriResolver-getStepDescription +$snippet: ExtendableUriResolver - getStepDescription; ``` ## UriResolverExtensionFileReader + ```ts -$snippet: UriResolverExtensionFileReader +$snippet: UriResolverExtensionFileReader; ``` ### constructor + ```ts -$snippet: UriResolverExtensionFileReader-constructor +$snippet: UriResolverExtensionFileReader - constructor; ``` ### Methods #### readFile + ```ts -$snippet: UriResolverExtensionFileReader-readFile +$snippet: UriResolverExtensionFileReader - readFile; ``` ## UriResolverWrapper + ```ts -$snippet: UriResolverWrapper +$snippet: UriResolverWrapper; ``` ### constructor + ```ts -$snippet: UriResolverWrapper-constructor +$snippet: UriResolverWrapper - constructor; ``` ### Methods -#### getStepDescription -```ts -$snippet: UriResolverWrapper-getStepDescription -``` - -#### tryResolveUriWithImplementation -```ts -$snippet: UriResolverWrapper-tryResolveUriWithImplementation -``` +#### tryResolverUri -#### _tryResolverUri (protected) ```ts -$snippet: UriResolverWrapper-_tryResolverUri +$snippet: UriResolverWrapper - tryResolverUri; ``` ## Development @@ -114,11 +117,14 @@ $snippet: UriResolverWrapper-_tryResolverUri This package is open-source. It lives within the [Polywrap JavaScript Client repository](https://github.com/polywrap/javascript-client). Contributions from the community are welcomed! ### Build + ```bash nvm use && yarn install && yarn build ``` ### Test + ```bash yarn test -`` \ No newline at end of file +`` +``` diff --git a/packages/uri-resolvers/readme/sub-sections/base/helpers.md b/packages/uri-resolvers/readme/sub-sections/base/helpers.md index cc1dcd997..655a83fd6 100644 --- a/packages/uri-resolvers/readme/sub-sections/base/helpers.md +++ b/packages/uri-resolvers/readme/sub-sections/base/helpers.md @@ -1,116 +1,133 @@ $start: helpers.md + ## getUriResolutionPath + ```ts -$snippet: getUriResolutionPath +$snippet: getUriResolutionPath; ``` ## InfiniteLoopError + ```ts -$snippet: InfiniteLoopError +$snippet: InfiniteLoopError; ``` ### constructor + ```ts -$snippet: InfiniteLoopError-constructor +$snippet: InfiniteLoopError - constructor; ``` ## ResolverWithHistory + ```ts -$snippet: ResolverWithHistory +$snippet: ResolverWithHistory; ``` ### Methods #### tryResolveUri + ```ts -$snippet: ResolverWithHistory-tryResolveUri +$snippet: ResolverWithHistory - tryResolveUri; ``` #### getStepDescription (protected) + ```ts -$snippet: ResolverWithHistory-getStepDescription +$snippet: ResolverWithHistory - getStepDescription; ``` -#### _tryResolveUri (protected) +#### \_tryResolveUri (protected) + ```ts -$snippet: ResolverWithHistory-_tryResolveUri +$snippet: ResolverWithHistory - _tryResolveUri; ``` ## ResolverWithLoopGuard + ```ts -$snippet: ResolverWithLoopGuard +$snippet: ResolverWithLoopGuard; ``` ### constructor + ```ts -$snippet: ResolverWithLoopGuard-constructor +$snippet: ResolverWithLoopGuard - constructor; ``` ### Methods #### from + ```ts -$snippet: ResolverWithLoopGuard-from +$snippet: ResolverWithLoopGuard - from; ``` #### tryResolveUri + ```ts -$snippet: ResolverWithLoopGuard-tryResolveUri +$snippet: ResolverWithLoopGuard - tryResolveUri; ``` ## PackageToWrapperResolver + ```ts -$snippet: PackageToWrapperResolver +$snippet: PackageToWrapperResolver; ``` ### constructor + ```ts -$snippet: PackageToWrapperResolver-constructor +$snippet: PackageToWrapperResolver - constructor; ``` ### Methods #### from + ```ts -$snippet: PackageToWrapperResolver-from +$snippet: PackageToWrapperResolver - from; ``` #### tryResolveUri -```ts -$snippet: PackageToWrapperResolver-tryResolveUri -``` -## UriResolutionResult ```ts -$snippet: UriResolutionResult +$snippet: PackageToWrapperResolver - tryResolveUri; ``` ### Methods #### ok + ```ts -$snippet: UriResolutionResult-ok +$snippet: UriResolutionResult - ok; ``` #### err + ```ts -$snippet: UriResolutionResult-err +$snippet: UriResolutionResult - err; ``` ## UriResolver + ```ts -$snippet: UriResolver +$snippet: UriResolver; ``` ### Methods #### from + ```ts -$snippet: UriResolver-from +$snippet: UriResolver - from; ``` ## UriResolverLike + ```ts -$snippet: UriResolverLike +$snippet: UriResolverLike; ``` -$end \ No newline at end of file + +$end diff --git a/yarn.lock b/yarn.lock index 2a523fbc8..0e49fa7ab 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2457,9 +2457,9 @@ integrity sha512-wH6Tu9mbiOt0n5EvdoWy0VGQaJMHfLIxY/6wS0xLC7CV1taM6gESEzcYy0ZlWvxxiiljYvfDIvz4hHbUUDRlhw== "@types/node@*", "@types/node@^18.14.6": - version "18.15.11" - resolved "https://registry.yarnpkg.com/@types/node/-/node-18.15.11.tgz#b3b790f09cb1696cffcec605de025b088fa4225f" - integrity sha512-E5Kwq2n4SbMzQOn6wnmBjuK9ouqlURrcZDVfbo9ftDDTFt3nk7ZKK4GMOzoYgnpQJKcxwQw+lGaBvvlMo0qN/Q== + version "18.15.12" + resolved "https://registry.yarnpkg.com/@types/node/-/node-18.15.12.tgz#833756634e78c829e1254db006468dadbb0c696b" + integrity sha512-Wha1UwsB3CYdqUm2PPzh/1gujGCNtWVUYF0mB00fJFoR4gTyWTDPjSm+zBF787Ahw8vSGgBja90MkgFwvB86Dg== "@types/normalize-package-data@^2.4.0": version "2.4.1" From 9883dc8a308f404a3297896e753b28b41ba65784 Mon Sep 17 00:00:00 2001 From: Jure Bogunovic Date: Thu, 20 Apr 2023 15:32:38 +0200 Subject: [PATCH 14/31] removed unused loadWrapper --- packages/core/README.md | 15 --------------- packages/core/src/types/CoreClient.ts | 22 ++-------------------- 2 files changed, 2 insertions(+), 35 deletions(-) diff --git a/packages/core/README.md b/packages/core/README.md index ec0e0c606..f122bcdaa 100644 --- a/packages/core/README.md +++ b/packages/core/README.md @@ -119,21 +119,6 @@ export interface CoreClient extends Invoker, UriResolverHandler { uri: Uri, options: GetImplementationsOptions ): Promise>; - - /** - * Resolve a URI to a wrap package or wrapper. - * If the URI resolves to wrap package, load the wrapper. - * - * @param uri - the Uri to resolve - * @param resolutionContext? - a resolution context - * @param options - { noValidate?: boolean } - * @returns A Promise with a Result containing a Wrapper or Error - */ - loadWrapper( - uri: Uri, - resolutionContext?: IUriResolutionContext, - options?: DeserializeManifestOptions - ): Promise>; } ``` diff --git a/packages/core/src/types/CoreClient.ts b/packages/core/src/types/CoreClient.ts index bd068129c..da099a6b0 100644 --- a/packages/core/src/types/CoreClient.ts +++ b/packages/core/src/types/CoreClient.ts @@ -1,12 +1,9 @@ -import { Invoker, Uri, WrapError, Wrapper, WrapperEnv } from "."; +import { Invoker, Uri, WrapError, WrapperEnv } from "."; import { IUriResolutionContext, IUriResolver } from "../uri-resolution"; import { UriResolverHandler } from "./UriResolver"; import { ReadonlyUriMap } from "./UriMap"; -import { - DeserializeManifestOptions, - WrapManifest, -} from "@polywrap/wrap-manifest-types-js"; +import { WrapManifest } from "@polywrap/wrap-manifest-types-js"; import { Result } from "@polywrap/result"; // $start: CoreClient.ts @@ -120,21 +117,6 @@ export interface CoreClient extends Invoker, UriResolverHandler { uri: Uri, options: GetImplementationsOptions ): Promise>; - - /** - * Resolve a URI to a wrap package or wrapper. - * If the URI resolves to wrap package, load the wrapper. - * - * @param uri - the Uri to resolve - * @param resolutionContext? - a resolution context - * @param options - { noValidate?: boolean } - * @returns A Promise with a Result containing a Wrapper or Error - */ - loadWrapper( - uri: Uri, - resolutionContext?: IUriResolutionContext, - options?: DeserializeManifestOptions - ): Promise>; } // $end From fb38d97ad064a7e31d3a9d81a44a8231c06e9043 Mon Sep 17 00:00:00 2001 From: Jure Bogunovic Date: Thu, 20 Apr 2023 15:32:45 +0200 Subject: [PATCH 15/31] fixed up docs --- packages/uri-resolver-extensions/README.md | 142 ++++++++++++++++-- .../uri-resolver-extensions/readme/README.md | 28 ++-- .../src/UriResolverWrapper.ts | 2 +- packages/uri-resolvers/README.md | 94 +++++++----- .../readme/sub-sections/base/helpers.md | 79 ++++++---- 5 files changed, 251 insertions(+), 94 deletions(-) diff --git a/packages/uri-resolver-extensions/README.md b/packages/uri-resolver-extensions/README.md index 05cd937a4..e5c37348c 100644 --- a/packages/uri-resolver-extensions/README.md +++ b/packages/uri-resolver-extensions/README.md @@ -21,7 +21,28 @@ If you build a configuration for the Polywrap client using the `ClientConfigBuil Otherwise, you must also add the `ExtendableUriResolver` to your resolver. ```ts -$snippet: quickstart - example; + const clientConfig: CoreClientConfig = { + interfaces: new UriMap([ + [ + Uri.from("wrap://ens/uri-resolver.core.polywrap.eth"), + [ + Uri.from("wrap://ens/fs-resolver.polywrap.eth"), + Uri.from("wrap://ens/ipfs-resolver.polywrap.eth"), + Uri.from("wrap://ens/ens-resolver.polywrap.eth"), + ], + ], + ]), + resolver: RecursiveResolver.from( + [ + StaticResolver.from([ + ...redirects, + ...wrappers, + ...packages, + ]), + new ExtendableUriResolver(), + ] + ) + }; ``` # Reference @@ -29,7 +50,14 @@ $snippet: quickstart - example; ## ExtendableUriResolver ```ts -$snippet: ExtendableUriResolver; +/** + * A Uri Resolver that delegates resolution to wrappers implementing the + * URI Resolver Extension Interface. + * */ +export class ExtendableUriResolver extends UriResolverAggregatorBase< + Error, + Error +> ``` ### Properties @@ -37,19 +65,33 @@ $snippet: ExtendableUriResolver; #### extInterfaceUri (static) ```ts -$snippet: ExtendableUriResolver - extInterfaceUri - static; + /** The supported interface URIs to which resolver-ext implementations should be registered */ + public static defaultExtInterfaceUris: Uri[] = [ + Uri.from("wrap://ens/wraps.eth:uri-resolver-ext@1.1.0"), + Uri.from("wrap://ens/wraps.eth:uri-resolver-ext@1.0.0"), + ]; ``` #### extInterfaceUri ```ts -$snippet: ExtendableUriResolver - extInterfaceUri; + /** The active interface URIs to which implementations should be registered */ + public readonly extInterfaceUris: Uri[]; ``` ### constructor ```ts -$snippet: ExtendableUriResolver - constructor; + /** + * Create an ExtendableUriResolver + * + * @param extInterfaceUris - URI Resolver Interface URIs + * @param resolverName - Name to use in resolution history output + * */ + constructor( + extInterfaceUris: Uri[] = ExtendableUriResolver.defaultExtInterfaceUris, + resolverName = "ExtendableUriResolver" + ) ``` ### Methods @@ -57,31 +99,74 @@ $snippet: ExtendableUriResolver - constructor; #### getUriResolvers ```ts -$snippet: ExtendableUriResolver - getUriResolvers; + /** + * Get a list of URI Resolvers + * + * @param uri - the URI to query for resolvers + * @param client - a CoreClient instance that can be used to make an invocation + * @param resolutionContext - the current URI resolution context + * + * @returns a list of IUriResolver or an error + * */ + async getUriResolvers( + uri: Uri, + client: CoreClient, + resolutionContext: IUriResolutionContext + ): Promise[], Error>> ``` #### tryResolverUri ```ts -$snippet: ExtendableUriResolver - tryResolverUri; + /** + * Resolve a URI to a wrap package, a wrapper, or a URI. + * Attempts resolution with each the URI Resolver Extension wrappers sequentially. + * + * @param uri - the URI to resolve + * @param client - a CoreClient instance that may be used to invoke a wrapper that implements the UriResolver interface + * @param resolutionContext - the current URI resolution context + * @returns A Promise with a Result containing either a wrap package, a wrapper, or a URI if successful + */ + async tryResolveUri( + uri: Uri, + client: CoreClient, + resolutionContext: IUriResolutionContext + ): Promise> ``` #### getStepDescription (protected) ```ts -$snippet: ExtendableUriResolver - getStepDescription; + /** + * A utility function for generating step descriptions to facilitate resolution context updates + * + * @returns text describing the URI resolution step + * */ + protected getStepDescription = (): string ``` ## UriResolverExtensionFileReader ```ts -$snippet: UriResolverExtensionFileReader; +/** An IFileReader that reads files by invoking URI Resolver Extension wrappers */ +export class UriResolverExtensionFileReader implements IFileReader ``` ### constructor ```ts -$snippet: UriResolverExtensionFileReader - constructor; + /** + * Construct a UriResolverExtensionFileReader + * + * @param _resolverExtensionUri - URI of the URI Resolver Extension wrapper + * @param _wrapperUri - URI of the wrap package to read from + * @param _client - A CoreClient instance + * */ + constructor( + private readonly _resolverExtensionUri: Uri, + private readonly _wrapperUri: Uri, + private readonly _client: CoreClient + ) ``` ### Methods @@ -89,19 +174,35 @@ $snippet: UriResolverExtensionFileReader - constructor; #### readFile ```ts -$snippet: UriResolverExtensionFileReader - readFile; + /** + * Read a file + * + * @param filePath - the file's path from the wrap package root + * + * @returns a Result containing a buffer if successful, or an error + * */ + async readFile(filePath: string): Promise> ``` ## UriResolverWrapper ```ts -$snippet: UriResolverWrapper; +/** + * An IUriResolver that delegates resolution to a wrapper that implements + * the URI Resolver Extension Interface + * */ +export class UriResolverWrapper implements IUriResolver ``` ### constructor ```ts -$snippet: UriResolverWrapper - constructor; + /** + * construct a UriResolverWrapper + * + * @param implementationUri - URI that resolves to a URI Resolver Extension implementation + * */ + constructor(public readonly implementationUri: Uri) ``` ### Methods @@ -109,7 +210,20 @@ $snippet: UriResolverWrapper - constructor; #### tryResolverUri ```ts -$snippet: UriResolverWrapper - tryResolverUri; + /** + * Attempt to resolve a URI by invoking a URI Resolver Extension wrapper, then + * parse the result to a wrap package, a wrapper, or a URI + * + * @param uri - the URI to resolve + * @param client - a CoreClient instance that may be used to invoke a wrapper that implements the UriResolver interface + * @param resolutionContext - the current URI resolution context + * @returns A Promise with a Result containing either a wrap package, a wrapper, or a URI if successful + */ + async tryResolveUri( + uri: Uri, + client: CoreClient, + resolutionContext: IUriResolutionContext + ): Promise> ``` ## Development diff --git a/packages/uri-resolver-extensions/readme/README.md b/packages/uri-resolver-extensions/readme/README.md index 05cd937a4..d301ff794 100644 --- a/packages/uri-resolver-extensions/readme/README.md +++ b/packages/uri-resolver-extensions/readme/README.md @@ -21,7 +21,7 @@ If you build a configuration for the Polywrap client using the `ClientConfigBuil Otherwise, you must also add the `ExtendableUriResolver` to your resolver. ```ts -$snippet: quickstart - example; +$snippet: quickstart-example ``` # Reference @@ -29,7 +29,7 @@ $snippet: quickstart - example; ## ExtendableUriResolver ```ts -$snippet: ExtendableUriResolver; +$snippet: ExtendableUriResolver ``` ### Properties @@ -37,19 +37,19 @@ $snippet: ExtendableUriResolver; #### extInterfaceUri (static) ```ts -$snippet: ExtendableUriResolver - extInterfaceUri - static; +$snippet: ExtendableUriResolver-extInterfaceUri-static ``` #### extInterfaceUri ```ts -$snippet: ExtendableUriResolver - extInterfaceUri; +$snippet: ExtendableUriResolver-extInterfaceUri ``` ### constructor ```ts -$snippet: ExtendableUriResolver - constructor; +$snippet: ExtendableUriResolver-constructor ``` ### Methods @@ -57,31 +57,31 @@ $snippet: ExtendableUriResolver - constructor; #### getUriResolvers ```ts -$snippet: ExtendableUriResolver - getUriResolvers; +$snippet: ExtendableUriResolver-getUriResolvers ``` #### tryResolverUri ```ts -$snippet: ExtendableUriResolver - tryResolverUri; +$snippet: ExtendableUriResolver-tryResolverUri ``` #### getStepDescription (protected) ```ts -$snippet: ExtendableUriResolver - getStepDescription; +$snippet: ExtendableUriResolver-getStepDescription ``` ## UriResolverExtensionFileReader ```ts -$snippet: UriResolverExtensionFileReader; +$snippet: UriResolverExtensionFileReader ``` ### constructor ```ts -$snippet: UriResolverExtensionFileReader - constructor; +$snippet: UriResolverExtensionFileReader-constructor ``` ### Methods @@ -89,19 +89,19 @@ $snippet: UriResolverExtensionFileReader - constructor; #### readFile ```ts -$snippet: UriResolverExtensionFileReader - readFile; +$snippet: UriResolverExtensionFileReader-readFile ``` ## UriResolverWrapper ```ts -$snippet: UriResolverWrapper; +$snippet: UriResolverWrapper ``` ### constructor ```ts -$snippet: UriResolverWrapper - constructor; +$snippet: UriResolverWrapper-constructor ``` ### Methods @@ -109,7 +109,7 @@ $snippet: UriResolverWrapper - constructor; #### tryResolverUri ```ts -$snippet: UriResolverWrapper - tryResolverUri; +$snippet: UriResolverWrapper-tryResolverUri ``` ## Development diff --git a/packages/uri-resolver-extensions/src/UriResolverWrapper.ts b/packages/uri-resolver-extensions/src/UriResolverWrapper.ts index 2b004a4df..7ae60e2aa 100644 --- a/packages/uri-resolver-extensions/src/UriResolverWrapper.ts +++ b/packages/uri-resolver-extensions/src/UriResolverWrapper.ts @@ -26,7 +26,7 @@ export class UriResolverWrapper implements IUriResolver /* $ */ { * */ constructor(public readonly implementationUri: Uri) /* $ */ {} - // $start: UriResolverWrapper-_tryResolverUri + // $start: UriResolverWrapper-tryResolverUri /** * Attempt to resolve a URI by invoking a URI Resolver Extension wrapper, then * parse the result to a wrap package, a wrapper, or a URI diff --git a/packages/uri-resolvers/README.md b/packages/uri-resolvers/README.md index 1fae9e393..3af7dfe0d 100644 --- a/packages/uri-resolvers/README.md +++ b/packages/uri-resolvers/README.md @@ -316,7 +316,9 @@ export class WrapperCacheResolver ): Promise> ``` + ## getUriResolutionPath + ```ts /** * Get a resolution path from the history of a URI resolution attempt @@ -330,6 +332,7 @@ export const getUriResolutionPath = ( ``` ## InfiniteLoopError + ```ts /** * Error used if the URI resolution path contains an infinite loop @@ -338,6 +341,7 @@ export class InfiniteLoopError extends Error ``` ### constructor + ```ts /** * Create an InfiniteLoopError @@ -352,6 +356,7 @@ export class InfiniteLoopError extends Error ``` ## ResolverWithHistory + ```ts /** An abstract IUriResolver implementation that updates the resolution context */ export abstract class ResolverWithHistory @@ -361,6 +366,7 @@ export abstract class ResolverWithHistory ### Methods #### tryResolveUri + ```ts /** * Resolve a URI to a wrap package, a wrapper, or a URI. @@ -384,6 +390,7 @@ export abstract class ResolverWithHistory ``` #### getStepDescription (protected) + ```ts /** * A utility function for generating step descriptions to facilitate resolution context updates @@ -399,7 +406,8 @@ export abstract class ResolverWithHistory ): string; ``` -#### _tryResolveUri (protected) +#### \_tryResolveUri (protected) + ```ts /** * Resolve a URI to a wrap package, a wrapper, or a URI. @@ -418,6 +426,7 @@ export abstract class ResolverWithHistory ``` ## ResolverWithLoopGuard + ```ts /** An IUriResolver implementation that prevents infinite loops in the resolution path. */ export class ResolverWithLoopGuard @@ -425,6 +434,7 @@ export class ResolverWithLoopGuard ``` ### constructor + ```ts /** * Construct a ResolverWithLoopGuard @@ -437,6 +447,7 @@ export class ResolverWithLoopGuard ### Methods #### from + ```ts /** * Create a ResolverWithLoopGuard from a resolver-like object @@ -451,6 +462,7 @@ export class ResolverWithLoopGuard ``` #### tryResolveUri + ```ts /** * Resolve a URI to a wrap package, a wrapper, or a URI. @@ -469,6 +481,7 @@ export class ResolverWithLoopGuard ``` ## PackageToWrapperResolver + ```ts /** * An IUriResolver implementation that initalizes wrappers from resolved packages. @@ -479,6 +492,7 @@ export class PackageToWrapperResolver ``` ### constructor + ```ts /** * Creates a PackageToWrapperResolver @@ -497,6 +511,7 @@ export class PackageToWrapperResolver ### Methods #### from + ```ts /** * Creates a PackageToWrapperResolver from a resolver-like object @@ -513,6 +528,7 @@ export class PackageToWrapperResolver ``` #### tryResolveUri + ```ts /** * Resolve a URI to a wrap package, a wrapper, or a URI. @@ -530,6 +546,46 @@ export class PackageToWrapperResolver ): Promise> ``` +## UriResolver + +```ts +/** An IUriResolver factory */ +export class UriResolver +``` + +### Methods + +#### from + +```ts + /** + * Create an IUriResolver instance + * + * @param resolverLike - an object that can be transformed into a resolver + * @param resolverName - a name to assign to the resolver in resolution history output + * */ + static from( + resolverLike: UriResolverLike, + resolverName?: string + ): IUriResolver +``` + +## UriResolverLike + +```ts +/** An UriResolverLike can be one of three things: + * - An IUriResolver + * - An object that can be transformed into a static IUriResolver + * - An array of UriResolverLike + * */ +export type UriResolverLike = + | IUriResolver + | IUriRedirect + | IUriPackage + | IUriWrapper + | UriResolverLike[]; +``` + ## UriResolutionResult ```ts /** Factory for creating Result from URI resolution output */ @@ -567,42 +623,6 @@ export class UriResolutionResult ): Result ``` -## UriResolver -```ts -/** An IUriResolver factory */ -export class UriResolver -``` - -### Methods - -#### from -```ts - /** - * Create an IUriResolver instance - * - * @param resolverLike - an object that can be transformed into a resolver - * @param resolverName - a name to assign to the resolver in resolution history output - * */ - static from( - resolverLike: UriResolverLike, - resolverName?: string - ): IUriResolver -``` - -## UriResolverLike -```ts -/** An UriResolverLike can be one of three things: - * - An IUriResolver - * - An object that can be transformed into a static IUriResolver - * - An array of UriResolverLike - * */ -export type UriResolverLike = - | IUriResolver - | IUriRedirect - | IUriPackage - | IUriWrapper - | UriResolverLike[]; -``` ## PackageResolver ```ts diff --git a/packages/uri-resolvers/readme/sub-sections/base/helpers.md b/packages/uri-resolvers/readme/sub-sections/base/helpers.md index 655a83fd6..fcd53ac09 100644 --- a/packages/uri-resolvers/readme/sub-sections/base/helpers.md +++ b/packages/uri-resolvers/readme/sub-sections/base/helpers.md @@ -3,25 +3,25 @@ $start: helpers.md ## getUriResolutionPath ```ts -$snippet: getUriResolutionPath; +$snippet: getUriResolutionPath ``` ## InfiniteLoopError ```ts -$snippet: InfiniteLoopError; +$snippet: InfiniteLoopError ``` ### constructor ```ts -$snippet: InfiniteLoopError - constructor; +$snippet: InfiniteLoopError-constructor ``` ## ResolverWithHistory ```ts -$snippet: ResolverWithHistory; +$snippet: ResolverWithHistory ``` ### Methods @@ -29,31 +29,31 @@ $snippet: ResolverWithHistory; #### tryResolveUri ```ts -$snippet: ResolverWithHistory - tryResolveUri; +$snippet: ResolverWithHistory-tryResolveUri ``` #### getStepDescription (protected) ```ts -$snippet: ResolverWithHistory - getStepDescription; +$snippet: ResolverWithHistory-getStepDescription ``` #### \_tryResolveUri (protected) ```ts -$snippet: ResolverWithHistory - _tryResolveUri; +$snippet: ResolverWithHistory-_tryResolveUri ``` ## ResolverWithLoopGuard ```ts -$snippet: ResolverWithLoopGuard; +$snippet: ResolverWithLoopGuard ``` ### constructor ```ts -$snippet: ResolverWithLoopGuard - constructor; +$snippet: ResolverWithLoopGuard-constructor ``` ### Methods @@ -61,25 +61,25 @@ $snippet: ResolverWithLoopGuard - constructor; #### from ```ts -$snippet: ResolverWithLoopGuard - from; +$snippet: ResolverWithLoopGuard-from ``` #### tryResolveUri ```ts -$snippet: ResolverWithLoopGuard - tryResolveUri; +$snippet: ResolverWithLoopGuard-tryResolveUri ``` ## PackageToWrapperResolver ```ts -$snippet: PackageToWrapperResolver; +$snippet: PackageToWrapperResolver ``` ### constructor ```ts -$snippet: PackageToWrapperResolver - constructor; +$snippet: PackageToWrapperResolver-constructor ``` ### Methods @@ -87,47 +87,70 @@ $snippet: PackageToWrapperResolver - constructor; #### from ```ts -$snippet: PackageToWrapperResolver - from; +$snippet: PackageToWrapperResolver-from ``` #### tryResolveUri ```ts -$snippet: PackageToWrapperResolver - tryResolveUri; +$snippet: PackageToWrapperResolver-tryResolveUri +``` + +## UriResolver + +```ts +$snippet: UriResolver ``` ### Methods -#### ok +#### from ```ts -$snippet: UriResolutionResult - ok; +$snippet: UriResolver-from ``` -#### err +## UriResolverLike ```ts -$snippet: UriResolutionResult - err; +$snippet: UriResolverLike ``` -## UriResolver - +## UriResolutionResult ```ts -$snippet: UriResolver; +/** Factory for creating Result from URI resolution output */ +export class UriResolutionResult ``` ### Methods -#### from - +#### ok ```ts -$snippet: UriResolver - from; + /** Returns a Result with `ok` set to true */ + static ok(uri: Uri): Result; + static ok( + uri: Uri, + wrapPackage: IWrapPackage + ): Result; + static ok( + uri: Uri, + wrapper: Wrapper + ): Result; + static ok( + uriPackageOrWrapper: UriPackageOrWrapper + ): Result; + static ok( + uriPackageOrWrapper: Uri | UriPackageOrWrapper, + packageOrWrapper?: IWrapPackage | Wrapper + ): Result ``` -## UriResolverLike - +#### err ```ts -$snippet: UriResolverLike; + /** Returns a Result with `ok` set to false */ + static err( + error: TError + ): Result ``` $end From 7120d4848a6a83bfc4ae8857c498fee32e096b8e Mon Sep 17 00:00:00 2001 From: Jure Bogunovic Date: Thu, 20 Apr 2023 22:48:26 +0200 Subject: [PATCH 16/31] removed unused test resolver --- .../__tests__/embeds/test-resolver/wrap.info | Bin 2337 -> 0 bytes .../src/__tests__/embeds/test-resolver/wrap.ts | 17 ----------------- .../__tests__/embeds/test-resolver/wrap.wasm | Bin 93333 -> 0 bytes 3 files changed, 17 deletions(-) delete mode 100644 packages/uri-resolver-extensions/src/__tests__/embeds/test-resolver/wrap.info delete mode 100644 packages/uri-resolver-extensions/src/__tests__/embeds/test-resolver/wrap.ts delete mode 100755 packages/uri-resolver-extensions/src/__tests__/embeds/test-resolver/wrap.wasm diff --git a/packages/uri-resolver-extensions/src/__tests__/embeds/test-resolver/wrap.info b/packages/uri-resolver-extensions/src/__tests__/embeds/test-resolver/wrap.info deleted file mode 100644 index fa01c3e2fd8b9ba06c1e6fd5a0d01fe192038ac5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2337 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 From 4f321f72057c2b582a8a497a8ef5f92a50945846 Mon Sep 17 00:00:00 2001 From: Jure Bogunovic Date: Thu, 20 Apr 2023 22:49:39 +0200 Subject: [PATCH 17/31] added subinvoke resolver extension tests --- .../can-resolve-package-with-subinvoke.json | 30 ++ .../can-resolve-uri-with-subinvoke.json | 58 +++ .../histories/not-a-match-with-subinvoke.json | 30 ++ ...plugin-extension-error-with-subinvoke.json | 30 ++ ...s-wasm-extension-error-with-subinvoke.json | 30 ++ .../src/__tests__/resolver-extensions.spec.ts | 464 +++++++++++++++++- .../wrappers/subinvoke-resolver/.gitignore | 6 + .../wrappers/subinvoke-resolver/Cargo.toml | 20 + .../subinvoke-resolver/polywrap.graphql | 6 + .../wrappers/subinvoke-resolver/polywrap.yaml | 10 + .../wrappers/subinvoke-resolver/src/lib.rs | 46 ++ .../wrappers/subinvoke-resolver/tsconfig.json | 28 ++ .../wrappers/test-resolver/polywrap.graphql | 2 +- 13 files changed, 754 insertions(+), 6 deletions(-) create mode 100644 packages/uri-resolver-extensions/src/__tests__/histories/can-resolve-package-with-subinvoke.json create mode 100644 packages/uri-resolver-extensions/src/__tests__/histories/can-resolve-uri-with-subinvoke.json create mode 100644 packages/uri-resolver-extensions/src/__tests__/histories/not-a-match-with-subinvoke.json create mode 100644 packages/uri-resolver-extensions/src/__tests__/histories/shows-plugin-extension-error-with-subinvoke.json create mode 100644 packages/uri-resolver-extensions/src/__tests__/histories/shows-wasm-extension-error-with-subinvoke.json create mode 100644 packages/uri-resolver-extensions/src/__tests__/wrappers/subinvoke-resolver/.gitignore create mode 100644 packages/uri-resolver-extensions/src/__tests__/wrappers/subinvoke-resolver/Cargo.toml create mode 100644 packages/uri-resolver-extensions/src/__tests__/wrappers/subinvoke-resolver/polywrap.graphql create mode 100644 packages/uri-resolver-extensions/src/__tests__/wrappers/subinvoke-resolver/polywrap.yaml create mode 100644 packages/uri-resolver-extensions/src/__tests__/wrappers/subinvoke-resolver/src/lib.rs create mode 100644 packages/uri-resolver-extensions/src/__tests__/wrappers/subinvoke-resolver/tsconfig.json diff --git a/packages/uri-resolver-extensions/src/__tests__/histories/can-resolve-package-with-subinvoke.json b/packages/uri-resolver-extensions/src/__tests__/histories/can-resolve-package-with-subinvoke.json new file mode 100644 index 000000000..490dfb3b5 --- /dev/null +++ b/packages/uri-resolver-extensions/src/__tests__/histories/can-resolve-package-with-subinvoke.json @@ -0,0 +1,30 @@ +[ + "wrap://test/package => UriResolverAggregator => package (wrap://test/package)", + [ + "wrap://test/package => StaticResolver - Miss", + "wrap://test/package => ExtendableUriResolver => package (wrap://test/package)", + [ + "wrap://test/package => ResolverExtension (wrap://package/subinvoke-resolver) => package (wrap://test/package)", + [ + "wrap://package/subinvoke-resolver => Client.loadWrapper => wrapper (wrap://package/subinvoke-resolver)", + [ + "wrap://package/subinvoke-resolver => UriResolverAggregator => package (wrap://package/subinvoke-resolver)", + [ + "wrap://package/subinvoke-resolver => StaticResolver - Package (wrap://package/subinvoke-resolver) => package (wrap://package/subinvoke-resolver)" + ] + ], + "wrap://package/subinvoke-resolver => Client.invokeWrapper", + [ + "wrap://package/test-resolver => Client.loadWrapper => wrapper (wrap://package/test-resolver)", + [ + "wrap://package/test-resolver => UriResolverAggregator => package (wrap://package/test-resolver)", + [ + "wrap://package/test-resolver => StaticResolver - Package (wrap://package/test-resolver) => package (wrap://package/test-resolver)" + ] + ], + "wrap://package/test-resolver => Client.invokeWrapper" + ] + ] + ] + ] +] \ No newline at end of file diff --git a/packages/uri-resolver-extensions/src/__tests__/histories/can-resolve-uri-with-subinvoke.json b/packages/uri-resolver-extensions/src/__tests__/histories/can-resolve-uri-with-subinvoke.json new file mode 100644 index 000000000..a0085af55 --- /dev/null +++ b/packages/uri-resolver-extensions/src/__tests__/histories/can-resolve-uri-with-subinvoke.json @@ -0,0 +1,58 @@ +[ + "wrap://test/from => UriResolverAggregator => uri (wrap://test/to)", + [ + "wrap://test/from => StaticResolver - Miss", + "wrap://test/from => ExtendableUriResolver => uri (wrap://test/to)", + [ + "wrap://test/from => ResolverExtension (wrap://package/subinvoke-resolver) => uri (wrap://test/to)", + [ + "wrap://package/subinvoke-resolver => Client.loadWrapper => wrapper (wrap://package/subinvoke-resolver)", + [ + "wrap://package/subinvoke-resolver => UriResolverAggregator => package (wrap://package/subinvoke-resolver)", + [ + "wrap://package/subinvoke-resolver => StaticResolver - Package (wrap://package/subinvoke-resolver) => package (wrap://package/subinvoke-resolver)" + ] + ], + "wrap://package/subinvoke-resolver => Client.invokeWrapper", + [ + "wrap://package/test-resolver => Client.loadWrapper => wrapper (wrap://package/test-resolver)", + [ + "wrap://package/test-resolver => UriResolverAggregator => package (wrap://package/test-resolver)", + [ + "wrap://package/test-resolver => StaticResolver - Package (wrap://package/test-resolver) => package (wrap://package/test-resolver)" + ] + ], + "wrap://package/test-resolver => Client.invokeWrapper" + ] + ] + ] + ], + "wrap://test/to => UriResolverAggregator", + [ + "wrap://test/to => StaticResolver - Miss", + "wrap://test/to => ExtendableUriResolver", + [ + "wrap://test/to => ResolverExtension (wrap://package/subinvoke-resolver)", + [ + "wrap://package/subinvoke-resolver => Client.loadWrapper => wrapper (wrap://package/subinvoke-resolver)", + [ + "wrap://package/subinvoke-resolver => UriResolverAggregator => package (wrap://package/subinvoke-resolver)", + [ + "wrap://package/subinvoke-resolver => StaticResolver - Package (wrap://package/subinvoke-resolver) => package (wrap://package/subinvoke-resolver)" + ] + ], + "wrap://package/subinvoke-resolver => Client.invokeWrapper", + [ + "wrap://package/test-resolver => Client.loadWrapper => wrapper (wrap://package/test-resolver)", + [ + "wrap://package/test-resolver => UriResolverAggregator => package (wrap://package/test-resolver)", + [ + "wrap://package/test-resolver => StaticResolver - Package (wrap://package/test-resolver) => package (wrap://package/test-resolver)" + ] + ], + "wrap://package/test-resolver => Client.invokeWrapper" + ] + ] + ] + ] +] \ No newline at end of file diff --git a/packages/uri-resolver-extensions/src/__tests__/histories/not-a-match-with-subinvoke.json b/packages/uri-resolver-extensions/src/__tests__/histories/not-a-match-with-subinvoke.json new file mode 100644 index 000000000..81d60c03e --- /dev/null +++ b/packages/uri-resolver-extensions/src/__tests__/histories/not-a-match-with-subinvoke.json @@ -0,0 +1,30 @@ +[ + "wrap://test/not-a-match => UriResolverAggregator", + [ + "wrap://test/not-a-match => StaticResolver - Miss", + "wrap://test/not-a-match => ExtendableUriResolver", + [ + "wrap://test/not-a-match => ResolverExtension (wrap://package/subinvoke-resolver)", + [ + "wrap://package/subinvoke-resolver => Client.loadWrapper => wrapper (wrap://package/subinvoke-resolver)", + [ + "wrap://package/subinvoke-resolver => UriResolverAggregator => package (wrap://package/subinvoke-resolver)", + [ + "wrap://package/subinvoke-resolver => StaticResolver - Package (wrap://package/subinvoke-resolver) => package (wrap://package/subinvoke-resolver)" + ] + ], + "wrap://package/subinvoke-resolver => Client.invokeWrapper", + [ + "wrap://package/test-resolver => Client.loadWrapper => wrapper (wrap://package/test-resolver)", + [ + "wrap://package/test-resolver => UriResolverAggregator => package (wrap://package/test-resolver)", + [ + "wrap://package/test-resolver => StaticResolver - Package (wrap://package/test-resolver) => package (wrap://package/test-resolver)" + ] + ], + "wrap://package/test-resolver => Client.invokeWrapper" + ] + ] + ] + ] +] \ No newline at end of file diff --git a/packages/uri-resolver-extensions/src/__tests__/histories/shows-plugin-extension-error-with-subinvoke.json b/packages/uri-resolver-extensions/src/__tests__/histories/shows-plugin-extension-error-with-subinvoke.json new file mode 100644 index 000000000..170a296a2 --- /dev/null +++ b/packages/uri-resolver-extensions/src/__tests__/histories/shows-plugin-extension-error-with-subinvoke.json @@ -0,0 +1,30 @@ +[ + "wrap://test/error => UriResolverAggregator => error (Test error\ncode: 51 WRAPPER INVOKE ABORTED\nuri: wrap://package/test-resolver\nmethod: tryResolveUri\nargs: {\n \"authority\": \"test\",\n \"path\": \"error\"\n} \ncode: 51 WRAPPER INVOKE ABORTED\nuri: wrap://package/subinvoke-resolver\nmethod: tryResolveUri\nargs: {\n \"authority\": \"test\",\n \"path\": \"error\"\n} \nsource: { file: \"/home/nerfzael/dev/web3api/repos/javascript-client/packages/plugin/src/PluginWrapper.ts\", row: 105, col: 21 })", + [ + "wrap://test/error => StaticResolver - Miss", + "wrap://test/error => ExtendableUriResolver => error (Test error\ncode: 51 WRAPPER INVOKE ABORTED\nuri: wrap://package/test-resolver\nmethod: tryResolveUri\nargs: {\n \"authority\": \"test\",\n \"path\": \"error\"\n} \ncode: 51 WRAPPER INVOKE ABORTED\nuri: wrap://package/subinvoke-resolver\nmethod: tryResolveUri\nargs: {\n \"authority\": \"test\",\n \"path\": \"error\"\n} \nsource: { file: \"/home/nerfzael/dev/web3api/repos/javascript-client/packages/plugin/src/PluginWrapper.ts\", row: 105, col: 21 })", + [ + "wrap://test/error => ResolverExtension (wrap://package/subinvoke-resolver) => error (Test error\ncode: 51 WRAPPER INVOKE ABORTED\nuri: wrap://package/test-resolver\nmethod: tryResolveUri\nargs: {\n \"authority\": \"test\",\n \"path\": \"error\"\n} \ncode: 51 WRAPPER INVOKE ABORTED\nuri: wrap://package/subinvoke-resolver\nmethod: tryResolveUri\nargs: {\n \"authority\": \"test\",\n \"path\": \"error\"\n} \nsource: { file: \"/home/nerfzael/dev/web3api/repos/javascript-client/packages/plugin/src/PluginWrapper.ts\", row: 105, col: 21 })", + [ + "wrap://package/subinvoke-resolver => Client.loadWrapper => wrapper (wrap://package/subinvoke-resolver)", + [ + "wrap://package/subinvoke-resolver => UriResolverAggregator => package (wrap://package/subinvoke-resolver)", + [ + "wrap://package/subinvoke-resolver => StaticResolver - Package (wrap://package/subinvoke-resolver) => package (wrap://package/subinvoke-resolver)" + ] + ], + "wrap://package/subinvoke-resolver => Client.invokeWrapper => error (Test error\ncode: 51 WRAPPER INVOKE ABORTED\nuri: wrap://package/test-resolver\nmethod: tryResolveUri\nargs: {\n \"authority\": \"test\",\n \"path\": \"error\"\n} \ncode: 51 WRAPPER INVOKE ABORTED\nuri: wrap://package/subinvoke-resolver\nmethod: tryResolveUri\nargs: {\n \"authority\": \"test\",\n \"path\": \"error\"\n} \nsource: { file: \"/home/nerfzael/dev/web3api/repos/javascript-client/packages/plugin/src/PluginWrapper.ts\", row: 105, col: 21 })", + [ + "wrap://package/test-resolver => Client.loadWrapper => wrapper (wrap://package/test-resolver)", + [ + "wrap://package/test-resolver => UriResolverAggregator => package (wrap://package/test-resolver)", + [ + "wrap://package/test-resolver => StaticResolver - Package (wrap://package/test-resolver) => package (wrap://package/test-resolver)" + ] + ], + "wrap://package/test-resolver => Client.invokeWrapper => error (Test error\ncode: 51 WRAPPER INVOKE ABORTED\nuri: wrap://package/test-resolver\nmethod: tryResolveUri\nargs: {\n \"authority\": \"test\",\n \"path\": \"error\"\n} )" + ] + ] + ] + ] +] \ No newline at end of file diff --git a/packages/uri-resolver-extensions/src/__tests__/histories/shows-wasm-extension-error-with-subinvoke.json b/packages/uri-resolver-extensions/src/__tests__/histories/shows-wasm-extension-error-with-subinvoke.json new file mode 100644 index 000000000..14dba5275 --- /dev/null +++ b/packages/uri-resolver-extensions/src/__tests__/histories/shows-wasm-extension-error-with-subinvoke.json @@ -0,0 +1,30 @@ +[ + "wrap://test/error => UriResolverAggregator => error (SubInvocation exception encountered\ncode: 51 WRAPPER INVOKE ABORTED\nuri: wrap://package/subinvoke-resolver\nmethod: tryResolveUri\nargs: {\n \"authority\": \"test\",\n \"path\": \"error\"\n} \nsource: { file: \"src/wrap/module/wrapped.rs\", row: 35, col: 21 }\n\nAnother exception was encountered during execution:\nWrapError: __wrap_abort: Test error\ncode: 51 WRAPPER INVOKE ABORTED\nuri: wrap://package/test-resolver\nmethod: tryResolveUri\nargs: {\n \"authority\": \"test\",\n \"path\": \"error\"\n} \nsource: { file: \"src/wrap/module/wrapped.rs\", row: 35, col: 21 })", + [ + "wrap://test/error => StaticResolver - Miss", + "wrap://test/error => ExtendableUriResolver => error (SubInvocation exception encountered\ncode: 51 WRAPPER INVOKE ABORTED\nuri: wrap://package/subinvoke-resolver\nmethod: tryResolveUri\nargs: {\n \"authority\": \"test\",\n \"path\": \"error\"\n} \nsource: { file: \"src/wrap/module/wrapped.rs\", row: 35, col: 21 }\n\nAnother exception was encountered during execution:\nWrapError: __wrap_abort: Test error\ncode: 51 WRAPPER INVOKE ABORTED\nuri: wrap://package/test-resolver\nmethod: tryResolveUri\nargs: {\n \"authority\": \"test\",\n \"path\": \"error\"\n} \nsource: { file: \"src/wrap/module/wrapped.rs\", row: 35, col: 21 })", + [ + "wrap://test/error => ResolverExtension (wrap://package/subinvoke-resolver) => error (SubInvocation exception encountered\ncode: 51 WRAPPER INVOKE ABORTED\nuri: wrap://package/subinvoke-resolver\nmethod: tryResolveUri\nargs: {\n \"authority\": \"test\",\n \"path\": \"error\"\n} \nsource: { file: \"src/wrap/module/wrapped.rs\", row: 35, col: 21 }\n\nAnother exception was encountered during execution:\nWrapError: __wrap_abort: Test error\ncode: 51 WRAPPER INVOKE ABORTED\nuri: wrap://package/test-resolver\nmethod: tryResolveUri\nargs: {\n \"authority\": \"test\",\n \"path\": \"error\"\n} \nsource: { file: \"src/wrap/module/wrapped.rs\", row: 35, col: 21 })", + [ + "wrap://package/subinvoke-resolver => Client.loadWrapper => wrapper (wrap://package/subinvoke-resolver)", + [ + "wrap://package/subinvoke-resolver => UriResolverAggregator => package (wrap://package/subinvoke-resolver)", + [ + "wrap://package/subinvoke-resolver => StaticResolver - Package (wrap://package/subinvoke-resolver) => package (wrap://package/subinvoke-resolver)" + ] + ], + "wrap://package/subinvoke-resolver => Client.invokeWrapper => error (SubInvocation exception encountered\ncode: 51 WRAPPER INVOKE ABORTED\nuri: wrap://package/subinvoke-resolver\nmethod: tryResolveUri\nargs: {\n \"authority\": \"test\",\n \"path\": \"error\"\n} \nsource: { file: \"src/wrap/module/wrapped.rs\", row: 35, col: 21 }\n\nAnother exception was encountered during execution:\nWrapError: __wrap_abort: Test error\ncode: 51 WRAPPER INVOKE ABORTED\nuri: wrap://package/test-resolver\nmethod: tryResolveUri\nargs: {\n \"authority\": \"test\",\n \"path\": \"error\"\n} \nsource: { file: \"src/wrap/module/wrapped.rs\", row: 35, col: 21 })", + [ + "wrap://package/test-resolver => Client.loadWrapper => wrapper (wrap://package/test-resolver)", + [ + "wrap://package/test-resolver => UriResolverAggregator => package (wrap://package/test-resolver)", + [ + "wrap://package/test-resolver => StaticResolver - Package (wrap://package/test-resolver) => package (wrap://package/test-resolver)" + ] + ], + "wrap://package/test-resolver => Client.invokeWrapper => error (__wrap_abort: Test error\ncode: 51 WRAPPER INVOKE ABORTED\nuri: wrap://package/test-resolver\nmethod: tryResolveUri\nargs: {\n \"authority\": \"test\",\n \"path\": \"error\"\n} \nsource: { file: \"src/wrap/module/wrapped.rs\", row: 35, col: 21 })" + ] + ] + ] + ] +] \ No newline at end of file diff --git a/packages/uri-resolver-extensions/src/__tests__/resolver-extensions.spec.ts b/packages/uri-resolver-extensions/src/__tests__/resolver-extensions.spec.ts index 331948777..85f22749e 100644 --- a/packages/uri-resolver-extensions/src/__tests__/resolver-extensions.spec.ts +++ b/packages/uri-resolver-extensions/src/__tests__/resolver-extensions.spec.ts @@ -1,7 +1,7 @@ import { ExtendableUriResolver } from "../ExtendableUriResolver"; import { expectHistory } from "./helpers/expectHistory"; -import { Uri, UriMap, UriResolutionContext, IWrapPackage } from "@polywrap/core-js"; +import { Uri, UriMap, UriResolutionContext, IWrapPackage, IUriResolutionContext } from "@polywrap/core-js"; import { PolywrapCoreClient } from "@polywrap/core-client-js"; import { PluginPackage } from "@polywrap/plugin-js"; import { WasmPackage } from "@polywrap/wasm-js"; @@ -12,11 +12,12 @@ import fs from "fs"; jest.setTimeout(600000); +const subinvokeResolverUri = Uri.from("wrap://package/subinvoke-resolver"); const customPluginResolverUri = Uri.from("wrap://package/test-resolver"); const customPluginResolver = PluginPackage.from(() => ({ tryResolveUri: async ( args: any, - client: PolywrapCoreClient + client: PolywrapCoreClient, ): Promise<{ uri?: string | null; manifest?: Uint8Array | null; @@ -42,29 +43,76 @@ const customPluginResolver = PluginPackage.from(() => ({ }, })); +const subinvokePluginResolver = PluginPackage.from(() => ({ + tryResolveUri: async ( + args: any, + client: PolywrapCoreClient, + _env: any, + resolutionContext?: IUriResolutionContext, + ): Promise<{ + uri?: string | null; + manifest?: Uint8Array | null; + } | null> => { + const result = await client.invoke<{ + uri?: string | null; + manifest?: Uint8Array | null; + } | null>({ + uri: Uri.from("wrap://package/test-resolver"), + method: "tryResolveUri", + args, + resolutionContext + }); + + if (!result.ok) { + throw result.error; + } + + return result.value; + }, +})); + describe("Resolver extensions", () => { let testResolverPackage: IWrapPackage; + let subinvokeResolverPackage: IWrapPackage; beforeAll(async () => { - const wrapDir = path.join(__dirname, "/wrappers/test-resolver"); + const testResolverDir = path.join(__dirname, "/wrappers/test-resolver"); // Build the test-resolver wrapper const res = await Commands.build({}, { - cwd: wrapDir + cwd: testResolverDir }); if (res.exitCode !== 0) { fail(`STDOUT: ${res.stdout}\nSTDERR: ${res.stderr}`); } - const wrapBuildDir = path.join(wrapDir, "build"); + const wrapBuildDir = path.join(testResolverDir, "build"); // Load the wrapper from disk testResolverPackage = WasmPackage.from( fs.readFileSync(path.join(wrapBuildDir, "wrap.info")), fs.readFileSync(path.join(wrapBuildDir, "wrap.wasm")) ); + + const subinvokeResolverDir = path.join(__dirname, "/wrappers/subinvoke-resolver"); + + // Build the test-resolver wrapper + const subinvokeRes = await Commands.build({}, { + cwd: subinvokeResolverDir + }); + + if (subinvokeRes.exitCode !== 0) { + fail(`STDOUT: ${res.stdout}\nSTDERR: ${res.stderr}`); + } + + const subinvokeBuildDir = path.join(subinvokeResolverDir, "build"); + // Load the wrapper from disk + subinvokeResolverPackage = WasmPackage.from( + fs.readFileSync(path.join(subinvokeBuildDir, "wrap.info")), + fs.readFileSync(path.join(subinvokeBuildDir, "wrap.wasm")) + ); }); it("can resolve URI with plugin extension", async () => { @@ -111,6 +159,54 @@ describe("Resolver extensions", () => { expect(result.value.uri.uri).toEqual(redirectedUri.uri); }); + it("can resolve URI with plugin extension and subinvoke", async () => { + const sourceUri = Uri.from(`test/from`); + const redirectedUri = Uri.from("test/to"); + + const client = new PolywrapCoreClient({ + interfaces: new UriMap([ + [ + ExtendableUriResolver.defaultExtInterfaceUris[0], + [subinvokeResolverUri], + ], + ]), + resolver: RecursiveResolver.from([ + StaticResolver.from([ + { + uri: customPluginResolverUri, + package: customPluginResolver, + }, + { + uri: subinvokeResolverUri, + package: subinvokePluginResolver, + }, + ]), + new ExtendableUriResolver(), + ]), + }); + + let resolutionContext = new UriResolutionContext(); + let result = await client.tryResolveUri({ + uri: sourceUri, + resolutionContext, + }); + + await expectHistory( + resolutionContext.getHistory(), + "can-resolve-uri-with-subinvoke" + ); + + if (!result.ok) { + fail(result.error); + } + + if (result.value.type !== "uri") { + fail("Expected a URI, received: " + result.value.type); + } + + expect(result.value.uri.uri).toEqual(redirectedUri.uri); + }); + it("can resolve a package with plugin extension", async () => { const sourceUri = Uri.from(`test/package`); const redirectedUri = Uri.from("test/package"); @@ -155,6 +251,54 @@ describe("Resolver extensions", () => { expect(result.value.uri.uri).toEqual(redirectedUri.uri); }); + it("can resolve package with plugin extension and subinvoke", async () => { + const sourceUri = Uri.from(`test/package`); + const redirectedUri = Uri.from("test/package"); + + const client = new PolywrapCoreClient({ + interfaces: new UriMap([ + [ + ExtendableUriResolver.defaultExtInterfaceUris[0], + [subinvokeResolverUri], + ], + ]), + resolver: RecursiveResolver.from([ + StaticResolver.from([ + { + uri: customPluginResolverUri, + package: customPluginResolver, + }, + { + uri: subinvokeResolverUri, + package: subinvokePluginResolver, + }, + ]), + new ExtendableUriResolver(), + ]), + }); + + let resolutionContext = new UriResolutionContext(); + let result = await client.tryResolveUri({ + uri: sourceUri, + resolutionContext, + }); + + await expectHistory( + resolutionContext.getHistory(), + "can-resolve-package-with-subinvoke" + ); + + if (!result.ok) { + fail(result.error); + } + + if (result.value.type !== "package") { + fail("Expected a package, received: " + result.value.type); + } + + expect(result.value.uri.uri).toEqual(redirectedUri.uri); + }); + it("shows the plugin resolver extension error", async () => { const sourceUri = Uri.from(`test/error`); @@ -203,6 +347,66 @@ args: { ); }); + it("shows the plugin resolver extension error with subinvoke", async () => { + const sourceUri = Uri.from(`test/error`); + + const client = new PolywrapCoreClient({ + interfaces: new UriMap([ + [ + ExtendableUriResolver.defaultExtInterfaceUris[0], + [subinvokeResolverUri], + ], + ]), + resolver: RecursiveResolver.from([ + StaticResolver.from([ + { + uri: customPluginResolverUri, + package: customPluginResolver, + }, + { + uri: subinvokeResolverUri, + package: subinvokePluginResolver, + }, + ]), + new ExtendableUriResolver(), + ]), + }); + + let resolutionContext = new UriResolutionContext(); + let result = await client.tryResolveUri({ + uri: sourceUri, + resolutionContext, + }); + + await expectHistory( + resolutionContext.getHistory(), + "shows-plugin-extension-error-with-subinvoke" + ); + + if (result.ok) { + fail("Expected an error, received: " + result.value.type); + } + + expect((result.error as Error)?.message).toEqual( + `Test error +code: 51 WRAPPER INVOKE ABORTED +uri: wrap://package/test-resolver +method: tryResolveUri +args: { + "authority": "test", + "path": "error" +} +code: 51 WRAPPER INVOKE ABORTED +uri: wrap://package/subinvoke-resolver +method: tryResolveUri +args: { + "authority": "test", + "path": "error" +} +source: { file: "/home/nerfzael/dev/web3api/repos/javascript-client/packages/plugin/src/PluginWrapper.ts", row: 105, col: 21 }` + ); + }); + it("does not resolve a URI when not a match with plugin extension", async () => { const uri = new Uri("test/not-a-match"); @@ -243,6 +447,51 @@ args: { expect(result.value.uri.uri).toEqual("wrap://test/not-a-match"); }); + it("does not resolve a URI when not a match with plugin extension and subinvoke", async () => { + const uri = new Uri("test/not-a-match"); + + const client = new PolywrapCoreClient({ + interfaces: new UriMap([ + [ + ExtendableUriResolver.defaultExtInterfaceUris[0], + [subinvokeResolverUri], + ], + ]), + resolver: RecursiveResolver.from([ + StaticResolver.from([ + { + uri: customPluginResolverUri, + package: customPluginResolver, + }, + { + uri: subinvokeResolverUri, + package: subinvokePluginResolver, + }, + ]), + new ExtendableUriResolver(), + ]), + }); + + const resolutionContext = new UriResolutionContext(); + const result = await client.tryResolveUri({ uri, resolutionContext }); + + await expectHistory( + resolutionContext.getHistory(), + "not-a-match-with-subinvoke" + ); + + if (!result.ok) { + fail(result.error); + } + + if (result.value.type !== "uri") { + fail("Expected a uri, received: " + result.value.type); + } + + expect(result.value.uri.uri).toEqual("wrap://test/not-a-match"); + }); + + it("can resolve URI with wasm extension", async () => { const sourceUri = Uri.from(`test/from`); const redirectedUri = Uri.from("test/to"); @@ -287,6 +536,55 @@ args: { expect(result.value.uri.uri).toEqual(redirectedUri.uri); }); + it("can resolve URI with wasm extension and subinvoke", async () => { + const sourceUri = Uri.from(`test/from`); + const redirectedUri = Uri.from("test/to"); + + const subinvokeResolverUri = Uri.from("wrap://package/subinvoke-resolver"); + const client = new PolywrapCoreClient({ + interfaces: new UriMap([ + [ + ExtendableUriResolver.defaultExtInterfaceUris[0], + [subinvokeResolverUri], + ], + ]), + resolver: RecursiveResolver.from([ + StaticResolver.from([ + { + uri: customPluginResolverUri, + package: testResolverPackage, + }, + { + uri: subinvokeResolverUri, + package: subinvokeResolverPackage, + }, + ]), + new ExtendableUriResolver(), + ]), + }); + + let resolutionContext = new UriResolutionContext(); + let result = await client.tryResolveUri({ + uri: sourceUri, + resolutionContext, + }); + + await expectHistory( + resolutionContext.getHistory(), + "can-resolve-uri-with-subinvoke" + ); + + if (!result.ok) { + fail(result.error); + } + + if (result.value.type !== "uri") { + fail("Expected a URI, received: " + result.value.type); + } + + expect(result.value.uri.uri).toEqual(redirectedUri.uri); + }); + it("can resolve a package with wasm extension", async () => { const sourceUri = Uri.from(`test/package`); const redirectedUri = Uri.from("test/package"); @@ -331,6 +629,54 @@ args: { expect(result.value.uri.uri).toEqual(redirectedUri.uri); }); + it("can resolve a package with wasm extension and subinvoke", async () => { + const sourceUri = Uri.from(`test/package`); + const redirectedUri = Uri.from("test/package"); + + const client = new PolywrapCoreClient({ + interfaces: new UriMap([ + [ + ExtendableUriResolver.defaultExtInterfaceUris[0], + [subinvokeResolverUri], + ], + ]), + resolver: RecursiveResolver.from([ + StaticResolver.from([ + { + uri: customPluginResolverUri, + package: testResolverPackage, + }, + { + uri: subinvokeResolverUri, + package: subinvokeResolverPackage, + }, + ]), + new ExtendableUriResolver(), + ]), + }); + + let resolutionContext = new UriResolutionContext(); + let result = await client.tryResolveUri({ + uri: sourceUri, + resolutionContext, + }); + + await expectHistory( + resolutionContext.getHistory(), + "can-resolve-package-with-subinvoke" + ); + + if (!result.ok) { + fail(result.error); + } + + if (result.value.type !== "package") { + fail("Expected a package, received: " + result.value.type); + } + + expect(result.value.uri.uri).toEqual(redirectedUri.uri); + }); + it("shows the wasm resolver extension error", async () => { const sourceUri = Uri.from(`test/error`); @@ -380,6 +726,70 @@ source: { file: "src/wrap/module/wrapped.rs", row: 35, col: 21 }` ); }); + it("shows the wasm resolver extension error with subinvoke", async () => { + const sourceUri = Uri.from(`test/error`); + + const client = new PolywrapCoreClient({ + interfaces: new UriMap([ + [ + ExtendableUriResolver.defaultExtInterfaceUris[0], + [subinvokeResolverUri], + ], + ]), + resolver: RecursiveResolver.from([ + StaticResolver.from([ + { + uri: customPluginResolverUri, + package: testResolverPackage, + }, + { + uri: subinvokeResolverUri, + package: subinvokeResolverPackage, + }, + ]), + new ExtendableUriResolver(), + ]), + }); + + let resolutionContext = new UriResolutionContext(); + let result = await client.tryResolveUri({ + uri: sourceUri, + resolutionContext, + }); + + await expectHistory( + resolutionContext.getHistory(), + "shows-wasm-extension-error-with-subinvoke" + ); + + if (result.ok) { + fail("Expected an error, received: " + result.value.type); + } + + expect((result.error as Error)?.message).toEqual( + `SubInvocation exception encountered +code: 51 WRAPPER INVOKE ABORTED +uri: wrap://package/subinvoke-resolver +method: tryResolveUri +args: { + "authority": "test", + "path": "error" +} +source: { file: "src/wrap/module/wrapped.rs", row: 35, col: 21 } + +Another exception was encountered during execution: +WrapError: __wrap_abort: Test error +code: 51 WRAPPER INVOKE ABORTED +uri: wrap://package/test-resolver +method: tryResolveUri +args: { + "authority": "test", + "path": "error" +} +source: { file: "src/wrap/module/wrapped.rs", row: 35, col: 21 }` + ); + }); + it("does not resolve a URI when not a match with wasm extension", async () => { const uri = new Uri("test/not-a-match"); @@ -420,6 +830,50 @@ source: { file: "src/wrap/module/wrapped.rs", row: 35, col: 21 }` expect(result.value.uri.uri).toEqual("wrap://test/not-a-match"); }); + it("does not resolve a URI when not a match with wasm extension and subinvoke", async () => { + const uri = new Uri("test/not-a-match"); + + const client = new PolywrapCoreClient({ + interfaces: new UriMap([ + [ + ExtendableUriResolver.defaultExtInterfaceUris[0], + [subinvokeResolverUri], + ], + ]), + resolver: RecursiveResolver.from([ + StaticResolver.from([ + { + uri: customPluginResolverUri, + package: testResolverPackage, + }, + { + uri: subinvokeResolverUri, + package: subinvokeResolverPackage, + }, + ]), + new ExtendableUriResolver(), + ]), + }); + + const resolutionContext = new UriResolutionContext(); + const result = await client.tryResolveUri({ uri, resolutionContext }); + + await expectHistory( + resolutionContext.getHistory(), + "not-a-match-with-subinvoke" + ); + + if (!result.ok) { + fail(result.error); + } + + if (result.value.type !== "uri") { + fail("Expected a uri, received: " + result.value.type); + } + + expect(result.value.uri.uri).toEqual("wrap://test/not-a-match"); + }); + it("does not cause infinite recursion when resolved at runtime when an extension is not found", async () => { const undefinedResolverUri = Uri.from("test/undefined-resolver"); diff --git a/packages/uri-resolver-extensions/src/__tests__/wrappers/subinvoke-resolver/.gitignore b/packages/uri-resolver-extensions/src/__tests__/wrappers/subinvoke-resolver/.gitignore new file mode 100644 index 000000000..ec0cd1fa6 --- /dev/null +++ b/packages/uri-resolver-extensions/src/__tests__/wrappers/subinvoke-resolver/.gitignore @@ -0,0 +1,6 @@ +build +node_modules +wrap +.polywrap +target +workflows/output.json diff --git a/packages/uri-resolver-extensions/src/__tests__/wrappers/subinvoke-resolver/Cargo.toml b/packages/uri-resolver-extensions/src/__tests__/wrappers/subinvoke-resolver/Cargo.toml new file mode 100644 index 000000000..38d76d45e --- /dev/null +++ b/packages/uri-resolver-extensions/src/__tests__/wrappers/subinvoke-resolver/Cargo.toml @@ -0,0 +1,20 @@ +[package] +name = "test-uri-resolver-wasm-rs" +version = "0.1.0" +description = "A URI resolver extension wrapper for testing" +authors = ["Polywrap"] +repository = "https://github.com/polywrap/javascript-client" +license = "MIT" +edition = "2021" + +[dependencies] +polywrap-wasm-rs = { version = "0.10.0" } +serde = { version = "1.0", features = ["derive"] } + +[lib] +crate-type = ["cdylib"] + +[profile.release] +opt-level = 's' +lto = true +panic = 'abort' diff --git a/packages/uri-resolver-extensions/src/__tests__/wrappers/subinvoke-resolver/polywrap.graphql b/packages/uri-resolver-extensions/src/__tests__/wrappers/subinvoke-resolver/polywrap.graphql new file mode 100644 index 000000000..61b51ce1d --- /dev/null +++ b/packages/uri-resolver-extensions/src/__tests__/wrappers/subinvoke-resolver/polywrap.graphql @@ -0,0 +1,6 @@ +#import { Module } into UriResolver from "wrap://ens/wraps.eth:uri-resolver-ext@1.1.0" +#import { Module } into TestResolver from "wrap://package/test-resolver" + +type Module implements UriResolver_Module {} + +type Env {} diff --git a/packages/uri-resolver-extensions/src/__tests__/wrappers/subinvoke-resolver/polywrap.yaml b/packages/uri-resolver-extensions/src/__tests__/wrappers/subinvoke-resolver/polywrap.yaml new file mode 100644 index 000000000..b94dfbae3 --- /dev/null +++ b/packages/uri-resolver-extensions/src/__tests__/wrappers/subinvoke-resolver/polywrap.yaml @@ -0,0 +1,10 @@ +format: 0.2.0 +project: + name: test-subinvoke-resolver-ext + type: wasm/rust +source: + module: ./Cargo.toml + schema: ./polywrap.graphql + import_abis: + - uri: "wrap://package/test-resolver" + abi: ../test-resolver/polywrap.graphql diff --git a/packages/uri-resolver-extensions/src/__tests__/wrappers/subinvoke-resolver/src/lib.rs b/packages/uri-resolver-extensions/src/__tests__/wrappers/subinvoke-resolver/src/lib.rs new file mode 100644 index 000000000..f4b652394 --- /dev/null +++ b/packages/uri-resolver-extensions/src/__tests__/wrappers/subinvoke-resolver/src/lib.rs @@ -0,0 +1,46 @@ +pub mod wrap; +use wrap::{ + *, + env::{Env}, + imported::{ + uri_resolver_module::ArgsGetFile, uri_resolver_module::ArgsTryResolveUri, test_resolver_module, + } +}; + +impl ModuleTrait for Module { + fn try_resolve_uri( + args: ArgsTryResolveUri, + _env: Option + ) -> Result, String> { + let result = TestResolverModule::try_resolve_uri(&test_resolver_module::ArgsTryResolveUri { + authority: args.authority, + path: args.path, + }); + + match result { + Ok(result) => { + match result { + Some(result) => { + return Ok(Some(UriResolverMaybeUriOrManifest { + uri: result.uri, + manifest: result.manifest + })); + }, + None => { + return Ok(None); + } + } + }, + Err(e) => { + return Err(e); + } + } + } + + fn get_file( + _args: ArgsGetFile, + _env: Option + ) -> Result>, String> { + return Ok(None); + } +} \ No newline at end of file diff --git a/packages/uri-resolver-extensions/src/__tests__/wrappers/subinvoke-resolver/tsconfig.json b/packages/uri-resolver-extensions/src/__tests__/wrappers/subinvoke-resolver/tsconfig.json new file mode 100644 index 000000000..75bfa86f2 --- /dev/null +++ b/packages/uri-resolver-extensions/src/__tests__/wrappers/subinvoke-resolver/tsconfig.json @@ -0,0 +1,28 @@ +{ + "compilerOptions": { + "lib": [ + "es2015", + "es5", + "dom" + ], + "esModuleInterop": true, + "outDir": "build", + "moduleResolution": "node", + "declaration": true, + "preserveSymlinks": true, + "preserveWatchOutput": true, + "pretty": false, + "forceConsistentCasingInFileNames": true, + "noFallthroughCasesInSwitch": true, + "noImplicitAny": true, + "noImplicitReturns": true, + "noUnusedLocals": true, + "module": "commonjs", + "sourceMap": true, + "target": "es5", + "resolveJsonModule": true, + "strictNullChecks": true, + "experimentalDecorators": true + }, + "typeAcquisition": { "include": ["jest"] } +} \ No newline at end of file diff --git a/packages/uri-resolver-extensions/src/__tests__/wrappers/test-resolver/polywrap.graphql b/packages/uri-resolver-extensions/src/__tests__/wrappers/test-resolver/polywrap.graphql index 41ff37c50..4031992f2 100644 --- a/packages/uri-resolver-extensions/src/__tests__/wrappers/test-resolver/polywrap.graphql +++ b/packages/uri-resolver-extensions/src/__tests__/wrappers/test-resolver/polywrap.graphql @@ -1,4 +1,4 @@ -#import { Module } into UriResolver from "wrap://ens/wraps.eth:uri-resolver-ext@1.1.0" +#import { Module, MaybeUriOrManifest } into UriResolver from "wrap://ens/wraps.eth:uri-resolver-ext@1.1.0" type Module implements UriResolver_Module {} From 6938164556e1424efd6e8be7a49a82c09a38ee28 Mon Sep 17 00:00:00 2001 From: Jure Bogunovic Date: Thu, 20 Apr 2023 22:50:47 +0200 Subject: [PATCH 18/31] resolution context is now available to plugins --- packages/plugin/src/PluginMethod.ts | 4 ++-- packages/plugin/src/PluginModule.ts | 7 ++++--- packages/plugin/src/PluginWrapper.ts | 3 ++- packages/plugin/src/utils/PluginModuleWithMethods.ts | 7 ++++--- 4 files changed, 12 insertions(+), 9 deletions(-) diff --git a/packages/plugin/src/PluginMethod.ts b/packages/plugin/src/PluginMethod.ts index 0575f94ba..e9728829d 100644 --- a/packages/plugin/src/PluginMethod.ts +++ b/packages/plugin/src/PluginMethod.ts @@ -1,5 +1,5 @@ /* eslint-disable @typescript-eslint/naming-convention */ -import { CoreClient, MaybeAsync } from "@polywrap/core-js"; +import { CoreClient, IUriResolutionContext, MaybeAsync } from "@polywrap/core-js"; /** * Invocable plugin method. @@ -13,4 +13,4 @@ export type PluginMethod< TArgs extends Record = Record, TResult = unknown, TEnv extends Record = Record -> = (args: TArgs, client: CoreClient, env: TEnv) => MaybeAsync; +> = (args: TArgs, client: CoreClient, env: TEnv, resolutionContext?: IUriResolutionContext) => MaybeAsync; diff --git a/packages/plugin/src/PluginModule.ts b/packages/plugin/src/PluginModule.ts index 04dbbd649..9594eaa8c 100644 --- a/packages/plugin/src/PluginModule.ts +++ b/packages/plugin/src/PluginModule.ts @@ -1,7 +1,7 @@ /* eslint-disable @typescript-eslint/naming-convention */ import { PluginMethod } from "./PluginMethod"; -import { CoreClient, WrapErrorCode } from "@polywrap/core-js"; +import { CoreClient, IUriResolutionContext, WrapErrorCode } from "@polywrap/core-js"; import { Result, ResultErr, ResultOk } from "@polywrap/result"; export abstract class PluginModule< @@ -25,7 +25,8 @@ export abstract class PluginModule< method: string, args: TArgs, client: CoreClient, - env: TEnv + env: TEnv, + resolutionContext?: IUriResolutionContext ): Promise> { const fn = this.getMethod(method); @@ -40,7 +41,7 @@ export abstract class PluginModule< } try { - const data = await fn(args, client, env); + const data = await fn(args, client, env, resolutionContext); return ResultOk(data); } catch (e) { e.code = WrapErrorCode.WRAPPER_INVOKE_ABORTED; diff --git a/packages/plugin/src/PluginWrapper.ts b/packages/plugin/src/PluginWrapper.ts index 7281f40b2..649d55341 100644 --- a/packages/plugin/src/PluginWrapper.ts +++ b/packages/plugin/src/PluginWrapper.ts @@ -85,7 +85,8 @@ export class PluginWrapper implements Wrapper { method, jsArgs, client, - options.env || {} + options.env || {}, + options.resolutionContext ); if (result.ok) { diff --git a/packages/plugin/src/utils/PluginModuleWithMethods.ts b/packages/plugin/src/utils/PluginModuleWithMethods.ts index 03b1e6d63..b038e17b7 100644 --- a/packages/plugin/src/utils/PluginModuleWithMethods.ts +++ b/packages/plugin/src/utils/PluginModuleWithMethods.ts @@ -4,7 +4,7 @@ import { PluginMethod } from "../PluginMethod"; import { PluginModule } from "../PluginModule"; import { GetPluginMethodsFunc } from "./GetPluginMethodsFunc"; -import { CoreClient, WrapErrorCode } from "@polywrap/core-js"; +import { CoreClient, IUriResolutionContext, WrapErrorCode } from "@polywrap/core-js"; import { Result, ResultErr, ResultOk } from "@polywrap/result"; export class PluginModuleWithMethods< @@ -21,7 +21,8 @@ export class PluginModuleWithMethods< method: string, args: TArgs, client: CoreClient, - env: TEnv + env: TEnv, + resolutionContext?: IUriResolutionContext ): Promise> { const fn = this.getMethod(method); @@ -36,7 +37,7 @@ export class PluginModuleWithMethods< } try { - const data = await fn(args, client, env); + const data = await fn(args, client, env, resolutionContext); return ResultOk(data); } catch (e) { e.code = WrapErrorCode.WRAPPER_INVOKE_ABORTED; From 99de6f236acbee0042a3b56eabc39419d0f6e1af Mon Sep 17 00:00:00 2001 From: Jure Bogunovic Date: Thu, 20 Apr 2023 22:51:31 +0200 Subject: [PATCH 19/31] lint fix --- packages/plugin/src/PluginMethod.ts | 13 +++++++++++-- packages/plugin/src/PluginModule.ts | 6 +++++- .../plugin/src/utils/PluginModuleWithMethods.ts | 6 +++++- 3 files changed, 21 insertions(+), 4 deletions(-) diff --git a/packages/plugin/src/PluginMethod.ts b/packages/plugin/src/PluginMethod.ts index e9728829d..93c55f45a 100644 --- a/packages/plugin/src/PluginMethod.ts +++ b/packages/plugin/src/PluginMethod.ts @@ -1,5 +1,9 @@ /* eslint-disable @typescript-eslint/naming-convention */ -import { CoreClient, IUriResolutionContext, MaybeAsync } from "@polywrap/core-js"; +import { + CoreClient, + IUriResolutionContext, + MaybeAsync, +} from "@polywrap/core-js"; /** * Invocable plugin method. @@ -13,4 +17,9 @@ export type PluginMethod< TArgs extends Record = Record, TResult = unknown, TEnv extends Record = Record -> = (args: TArgs, client: CoreClient, env: TEnv, resolutionContext?: IUriResolutionContext) => MaybeAsync; +> = ( + args: TArgs, + client: CoreClient, + env: TEnv, + resolutionContext?: IUriResolutionContext +) => MaybeAsync; diff --git a/packages/plugin/src/PluginModule.ts b/packages/plugin/src/PluginModule.ts index 9594eaa8c..36dd245a8 100644 --- a/packages/plugin/src/PluginModule.ts +++ b/packages/plugin/src/PluginModule.ts @@ -1,7 +1,11 @@ /* eslint-disable @typescript-eslint/naming-convention */ import { PluginMethod } from "./PluginMethod"; -import { CoreClient, IUriResolutionContext, WrapErrorCode } from "@polywrap/core-js"; +import { + CoreClient, + IUriResolutionContext, + WrapErrorCode, +} from "@polywrap/core-js"; import { Result, ResultErr, ResultOk } from "@polywrap/result"; export abstract class PluginModule< diff --git a/packages/plugin/src/utils/PluginModuleWithMethods.ts b/packages/plugin/src/utils/PluginModuleWithMethods.ts index b038e17b7..06e02d5a2 100644 --- a/packages/plugin/src/utils/PluginModuleWithMethods.ts +++ b/packages/plugin/src/utils/PluginModuleWithMethods.ts @@ -4,7 +4,11 @@ import { PluginMethod } from "../PluginMethod"; import { PluginModule } from "../PluginModule"; import { GetPluginMethodsFunc } from "./GetPluginMethodsFunc"; -import { CoreClient, IUriResolutionContext, WrapErrorCode } from "@polywrap/core-js"; +import { + CoreClient, + IUriResolutionContext, + WrapErrorCode, +} from "@polywrap/core-js"; import { Result, ResultErr, ResultOk } from "@polywrap/result"; export class PluginModuleWithMethods< From 61b28d21addb5517670f16792571cd816d47ceba Mon Sep 17 00:00:00 2001 From: Jure Bogunovic Date: Thu, 20 Apr 2023 23:18:09 +0200 Subject: [PATCH 20/31] calling wasm wrapper resolver from plugin resolver instead of plugin --- ...plugin-extension-error-with-subinvoke.json | 10 +++---- .../src/__tests__/resolver-extensions.spec.ts | 27 ++++--------------- 2 files changed, 10 insertions(+), 27 deletions(-) diff --git a/packages/uri-resolver-extensions/src/__tests__/histories/shows-plugin-extension-error-with-subinvoke.json b/packages/uri-resolver-extensions/src/__tests__/histories/shows-plugin-extension-error-with-subinvoke.json index 170a296a2..71701ebdf 100644 --- a/packages/uri-resolver-extensions/src/__tests__/histories/shows-plugin-extension-error-with-subinvoke.json +++ b/packages/uri-resolver-extensions/src/__tests__/histories/shows-plugin-extension-error-with-subinvoke.json @@ -1,10 +1,10 @@ [ - "wrap://test/error => UriResolverAggregator => error (Test error\ncode: 51 WRAPPER INVOKE ABORTED\nuri: wrap://package/test-resolver\nmethod: tryResolveUri\nargs: {\n \"authority\": \"test\",\n \"path\": \"error\"\n} \ncode: 51 WRAPPER INVOKE ABORTED\nuri: wrap://package/subinvoke-resolver\nmethod: tryResolveUri\nargs: {\n \"authority\": \"test\",\n \"path\": \"error\"\n} \nsource: { file: \"/home/nerfzael/dev/web3api/repos/javascript-client/packages/plugin/src/PluginWrapper.ts\", row: 105, col: 21 })", + "wrap://test/error => UriResolverAggregator => error (__wrap_abort: Test error\ncode: 51 WRAPPER INVOKE ABORTED\nuri: wrap://package/test-resolver\nmethod: tryResolveUri\nargs: {\n \"authority\": \"test\",\n \"path\": \"error\"\n} \nsource: { file: \"src/wrap/module/wrapped.rs\", row: 35, col: 21 }\ncode: 51 WRAPPER INVOKE ABORTED\nuri: wrap://package/subinvoke-resolver\nmethod: tryResolveUri\nargs: {\n \"authority\": \"test\",\n \"path\": \"error\"\n} \nsource: { file: \"/home/nerfzael/dev/web3api/repos/javascript-client/packages/wasm/src/WasmWrapper.ts\", row: 177, col: 15 })", [ "wrap://test/error => StaticResolver - Miss", - "wrap://test/error => ExtendableUriResolver => error (Test error\ncode: 51 WRAPPER INVOKE ABORTED\nuri: wrap://package/test-resolver\nmethod: tryResolveUri\nargs: {\n \"authority\": \"test\",\n \"path\": \"error\"\n} \ncode: 51 WRAPPER INVOKE ABORTED\nuri: wrap://package/subinvoke-resolver\nmethod: tryResolveUri\nargs: {\n \"authority\": \"test\",\n \"path\": \"error\"\n} \nsource: { file: \"/home/nerfzael/dev/web3api/repos/javascript-client/packages/plugin/src/PluginWrapper.ts\", row: 105, col: 21 })", + "wrap://test/error => ExtendableUriResolver => error (__wrap_abort: Test error\ncode: 51 WRAPPER INVOKE ABORTED\nuri: wrap://package/test-resolver\nmethod: tryResolveUri\nargs: {\n \"authority\": \"test\",\n \"path\": \"error\"\n} \nsource: { file: \"src/wrap/module/wrapped.rs\", row: 35, col: 21 }\ncode: 51 WRAPPER INVOKE ABORTED\nuri: wrap://package/subinvoke-resolver\nmethod: tryResolveUri\nargs: {\n \"authority\": \"test\",\n \"path\": \"error\"\n} \nsource: { file: \"/home/nerfzael/dev/web3api/repos/javascript-client/packages/wasm/src/WasmWrapper.ts\", row: 177, col: 15 })", [ - "wrap://test/error => ResolverExtension (wrap://package/subinvoke-resolver) => error (Test error\ncode: 51 WRAPPER INVOKE ABORTED\nuri: wrap://package/test-resolver\nmethod: tryResolveUri\nargs: {\n \"authority\": \"test\",\n \"path\": \"error\"\n} \ncode: 51 WRAPPER INVOKE ABORTED\nuri: wrap://package/subinvoke-resolver\nmethod: tryResolveUri\nargs: {\n \"authority\": \"test\",\n \"path\": \"error\"\n} \nsource: { file: \"/home/nerfzael/dev/web3api/repos/javascript-client/packages/plugin/src/PluginWrapper.ts\", row: 105, col: 21 })", + "wrap://test/error => ResolverExtension (wrap://package/subinvoke-resolver) => error (__wrap_abort: Test error\ncode: 51 WRAPPER INVOKE ABORTED\nuri: wrap://package/test-resolver\nmethod: tryResolveUri\nargs: {\n \"authority\": \"test\",\n \"path\": \"error\"\n} \nsource: { file: \"src/wrap/module/wrapped.rs\", row: 35, col: 21 }\ncode: 51 WRAPPER INVOKE ABORTED\nuri: wrap://package/subinvoke-resolver\nmethod: tryResolveUri\nargs: {\n \"authority\": \"test\",\n \"path\": \"error\"\n} \nsource: { file: \"/home/nerfzael/dev/web3api/repos/javascript-client/packages/wasm/src/WasmWrapper.ts\", row: 177, col: 15 })", [ "wrap://package/subinvoke-resolver => Client.loadWrapper => wrapper (wrap://package/subinvoke-resolver)", [ @@ -13,7 +13,7 @@ "wrap://package/subinvoke-resolver => StaticResolver - Package (wrap://package/subinvoke-resolver) => package (wrap://package/subinvoke-resolver)" ] ], - "wrap://package/subinvoke-resolver => Client.invokeWrapper => error (Test error\ncode: 51 WRAPPER INVOKE ABORTED\nuri: wrap://package/test-resolver\nmethod: tryResolveUri\nargs: {\n \"authority\": \"test\",\n \"path\": \"error\"\n} \ncode: 51 WRAPPER INVOKE ABORTED\nuri: wrap://package/subinvoke-resolver\nmethod: tryResolveUri\nargs: {\n \"authority\": \"test\",\n \"path\": \"error\"\n} \nsource: { file: \"/home/nerfzael/dev/web3api/repos/javascript-client/packages/plugin/src/PluginWrapper.ts\", row: 105, col: 21 })", + "wrap://package/subinvoke-resolver => Client.invokeWrapper => error (__wrap_abort: Test error\ncode: 51 WRAPPER INVOKE ABORTED\nuri: wrap://package/test-resolver\nmethod: tryResolveUri\nargs: {\n \"authority\": \"test\",\n \"path\": \"error\"\n} \nsource: { file: \"src/wrap/module/wrapped.rs\", row: 35, col: 21 }\ncode: 51 WRAPPER INVOKE ABORTED\nuri: wrap://package/subinvoke-resolver\nmethod: tryResolveUri\nargs: {\n \"authority\": \"test\",\n \"path\": \"error\"\n} \nsource: { file: \"/home/nerfzael/dev/web3api/repos/javascript-client/packages/wasm/src/WasmWrapper.ts\", row: 177, col: 15 })", [ "wrap://package/test-resolver => Client.loadWrapper => wrapper (wrap://package/test-resolver)", [ @@ -22,7 +22,7 @@ "wrap://package/test-resolver => StaticResolver - Package (wrap://package/test-resolver) => package (wrap://package/test-resolver)" ] ], - "wrap://package/test-resolver => Client.invokeWrapper => error (Test error\ncode: 51 WRAPPER INVOKE ABORTED\nuri: wrap://package/test-resolver\nmethod: tryResolveUri\nargs: {\n \"authority\": \"test\",\n \"path\": \"error\"\n} )" + "wrap://package/test-resolver => Client.invokeWrapper => error (__wrap_abort: Test error\ncode: 51 WRAPPER INVOKE ABORTED\nuri: wrap://package/test-resolver\nmethod: tryResolveUri\nargs: {\n \"authority\": \"test\",\n \"path\": \"error\"\n} \nsource: { file: \"src/wrap/module/wrapped.rs\", row: 35, col: 21 })" ] ] ] diff --git a/packages/uri-resolver-extensions/src/__tests__/resolver-extensions.spec.ts b/packages/uri-resolver-extensions/src/__tests__/resolver-extensions.spec.ts index 85f22749e..dd78728b6 100644 --- a/packages/uri-resolver-extensions/src/__tests__/resolver-extensions.spec.ts +++ b/packages/uri-resolver-extensions/src/__tests__/resolver-extensions.spec.ts @@ -174,7 +174,7 @@ describe("Resolver extensions", () => { StaticResolver.from([ { uri: customPluginResolverUri, - package: customPluginResolver, + package: testResolverPackage, }, { uri: subinvokeResolverUri, @@ -266,7 +266,7 @@ describe("Resolver extensions", () => { StaticResolver.from([ { uri: customPluginResolverUri, - package: customPluginResolver, + package: testResolverPackage, }, { uri: subinvokeResolverUri, @@ -361,7 +361,7 @@ args: { StaticResolver.from([ { uri: customPluginResolverUri, - package: customPluginResolver, + package: testResolverPackage, }, { uri: subinvokeResolverUri, @@ -387,24 +387,7 @@ args: { fail("Expected an error, received: " + result.value.type); } - expect((result.error as Error)?.message).toEqual( - `Test error -code: 51 WRAPPER INVOKE ABORTED -uri: wrap://package/test-resolver -method: tryResolveUri -args: { - "authority": "test", - "path": "error" -} -code: 51 WRAPPER INVOKE ABORTED -uri: wrap://package/subinvoke-resolver -method: tryResolveUri -args: { - "authority": "test", - "path": "error" -} -source: { file: "/home/nerfzael/dev/web3api/repos/javascript-client/packages/plugin/src/PluginWrapper.ts", row: 105, col: 21 }` - ); + expect((result.error as Error)?.message).toMatch(/Test error/); }); it("does not resolve a URI when not a match with plugin extension", async () => { @@ -461,7 +444,7 @@ source: { file: "/home/nerfzael/dev/web3api/repos/javascript-client/packages/plu StaticResolver.from([ { uri: customPluginResolverUri, - package: customPluginResolver, + package: testResolverPackage, }, { uri: subinvokeResolverUri, From fd145c2a5d762c872d0d703b888ba4db4b45245f Mon Sep 17 00:00:00 2001 From: Jure Bogunovic Date: Fri, 21 Apr 2023 12:33:57 +0200 Subject: [PATCH 21/31] removed unused function --- .../src/ResolverExtensionLoader.ts | 55 ------------------- 1 file changed, 55 deletions(-) delete mode 100644 packages/uri-resolver-extensions/src/ResolverExtensionLoader.ts diff --git a/packages/uri-resolver-extensions/src/ResolverExtensionLoader.ts b/packages/uri-resolver-extensions/src/ResolverExtensionLoader.ts deleted file mode 100644 index 57f36de9e..000000000 --- a/packages/uri-resolver-extensions/src/ResolverExtensionLoader.ts +++ /dev/null @@ -1,55 +0,0 @@ -import { - Uri, - CoreClient, - Wrapper, - IUriResolutionContext, -} from "@polywrap/core-js"; -import { Result, ResultErr, ResultOk } from "@polywrap/result"; - -/* - * load a URI Resolver Extension wrapper, given a URI that resolves to it - * - * @param currentUri - The URI currently being resolved - * @param resolverExtensionUri - A URI that resolves to the Resolver Extension - * @param client - A CoreClient instance - * @param resolutionContext - The current URI resolution context - * - * @returns a Result containing a Wrapper or an error - * */ -export const loadResolverExtension = async ( - currentUri: Uri, - resolverExtensionUri: Uri, - client: CoreClient, - resolutionContext: IUriResolutionContext -): Promise> => { - const result = await client.tryResolveUri({ - uri: resolverExtensionUri, - resolutionContext, - }); - - if (!result.ok) { - return result; - } - - const uriPackageOrWrapper = result.value; - - if (uriPackageOrWrapper.type === "uri") { - const lastTriedUri = uriPackageOrWrapper.uri as Uri; - - return ResultErr( - `While resolving ${currentUri.uri} with URI resolver extension ${resolverExtensionUri.uri}, the extension could not be fully resolved. Last tried URI is ${lastTriedUri.uri}` - ); - } - - if (uriPackageOrWrapper.type === "package") { - const result = await uriPackageOrWrapper.package.createWrapper(); - - if (!result.ok) { - return result; - } - - return ResultOk(result.value); - } else { - return ResultOk(uriPackageOrWrapper.wrapper); - } -}; From a1b6832c9b47c5d63351ff2e9de498e76def9255 Mon Sep 17 00:00:00 2001 From: Jure Bogunovic Date: Fri, 21 Apr 2023 12:34:11 +0200 Subject: [PATCH 22/31] removing file path so that it works across different platforms --- .../src/__tests__/helpers/expectHistory.ts | 11 +++++++++-- .../shows-plugin-extension-error-with-subinvoke.json | 10 +++++----- .../src/__tests__/resolver-extensions.spec.ts | 3 ++- 3 files changed, 16 insertions(+), 8 deletions(-) diff --git a/packages/uri-resolver-extensions/src/__tests__/helpers/expectHistory.ts b/packages/uri-resolver-extensions/src/__tests__/helpers/expectHistory.ts index 43522689f..d471f2075 100644 --- a/packages/uri-resolver-extensions/src/__tests__/helpers/expectHistory.ts +++ b/packages/uri-resolver-extensions/src/__tests__/helpers/expectHistory.ts @@ -4,7 +4,8 @@ import fs from "fs"; export const expectHistory = async ( receivedHistory: IUriResolutionStep[] | undefined, - historyFileName: string + historyFileName: string, + replaceFilePaths?: boolean ): Promise => { if (!receivedHistory) { fail("History is not defined"); @@ -17,12 +18,18 @@ export const expectHistory = async ( const expectedCleanHistory = JSON.stringify(JSON.parse(expectedCleanHistoryStr), null, 2); - const receivedCleanHistory = replaceAll( + let receivedCleanHistory = replaceAll( JSON.stringify(buildCleanUriHistory(receivedHistory), null, 2), `${GetPathToTestWrappers()}`, "$root-wrapper-dir" ); + if (replaceFilePaths) { + receivedCleanHistory = receivedCleanHistory + .replace(/file: \\"[^"]+\\"/gm, "") + .replace(/file: "[^"]+"/gm, ""); + } + expect(receivedCleanHistory).toEqual(expectedCleanHistory); }; diff --git a/packages/uri-resolver-extensions/src/__tests__/histories/shows-plugin-extension-error-with-subinvoke.json b/packages/uri-resolver-extensions/src/__tests__/histories/shows-plugin-extension-error-with-subinvoke.json index 71701ebdf..2e1d6583b 100644 --- a/packages/uri-resolver-extensions/src/__tests__/histories/shows-plugin-extension-error-with-subinvoke.json +++ b/packages/uri-resolver-extensions/src/__tests__/histories/shows-plugin-extension-error-with-subinvoke.json @@ -1,10 +1,10 @@ [ - "wrap://test/error => UriResolverAggregator => error (__wrap_abort: Test error\ncode: 51 WRAPPER INVOKE ABORTED\nuri: wrap://package/test-resolver\nmethod: tryResolveUri\nargs: {\n \"authority\": \"test\",\n \"path\": \"error\"\n} \nsource: { file: \"src/wrap/module/wrapped.rs\", row: 35, col: 21 }\ncode: 51 WRAPPER INVOKE ABORTED\nuri: wrap://package/subinvoke-resolver\nmethod: tryResolveUri\nargs: {\n \"authority\": \"test\",\n \"path\": \"error\"\n} \nsource: { file: \"/home/nerfzael/dev/web3api/repos/javascript-client/packages/wasm/src/WasmWrapper.ts\", row: 177, col: 15 })", + "wrap://test/error => UriResolverAggregator => error (__wrap_abort: Test error\ncode: 51 WRAPPER INVOKE ABORTED\nuri: wrap://package/test-resolver\nmethod: tryResolveUri\nargs: {\n \"authority\": \"test\",\n \"path\": \"error\"\n} \nsource: { , row: 35, col: 21 }\ncode: 51 WRAPPER INVOKE ABORTED\nuri: wrap://package/subinvoke-resolver\nmethod: tryResolveUri\nargs: {\n \"authority\": \"test\",\n \"path\": \"error\"\n} \nsource: { , row: 177, col: 15 })", [ "wrap://test/error => StaticResolver - Miss", - "wrap://test/error => ExtendableUriResolver => error (__wrap_abort: Test error\ncode: 51 WRAPPER INVOKE ABORTED\nuri: wrap://package/test-resolver\nmethod: tryResolveUri\nargs: {\n \"authority\": \"test\",\n \"path\": \"error\"\n} \nsource: { file: \"src/wrap/module/wrapped.rs\", row: 35, col: 21 }\ncode: 51 WRAPPER INVOKE ABORTED\nuri: wrap://package/subinvoke-resolver\nmethod: tryResolveUri\nargs: {\n \"authority\": \"test\",\n \"path\": \"error\"\n} \nsource: { file: \"/home/nerfzael/dev/web3api/repos/javascript-client/packages/wasm/src/WasmWrapper.ts\", row: 177, col: 15 })", + "wrap://test/error => ExtendableUriResolver => error (__wrap_abort: Test error\ncode: 51 WRAPPER INVOKE ABORTED\nuri: wrap://package/test-resolver\nmethod: tryResolveUri\nargs: {\n \"authority\": \"test\",\n \"path\": \"error\"\n} \nsource: { , row: 35, col: 21 }\ncode: 51 WRAPPER INVOKE ABORTED\nuri: wrap://package/subinvoke-resolver\nmethod: tryResolveUri\nargs: {\n \"authority\": \"test\",\n \"path\": \"error\"\n} \nsource: { , row: 177, col: 15 })", [ - "wrap://test/error => ResolverExtension (wrap://package/subinvoke-resolver) => error (__wrap_abort: Test error\ncode: 51 WRAPPER INVOKE ABORTED\nuri: wrap://package/test-resolver\nmethod: tryResolveUri\nargs: {\n \"authority\": \"test\",\n \"path\": \"error\"\n} \nsource: { file: \"src/wrap/module/wrapped.rs\", row: 35, col: 21 }\ncode: 51 WRAPPER INVOKE ABORTED\nuri: wrap://package/subinvoke-resolver\nmethod: tryResolveUri\nargs: {\n \"authority\": \"test\",\n \"path\": \"error\"\n} \nsource: { file: \"/home/nerfzael/dev/web3api/repos/javascript-client/packages/wasm/src/WasmWrapper.ts\", row: 177, col: 15 })", + "wrap://test/error => ResolverExtension (wrap://package/subinvoke-resolver) => error (__wrap_abort: Test error\ncode: 51 WRAPPER INVOKE ABORTED\nuri: wrap://package/test-resolver\nmethod: tryResolveUri\nargs: {\n \"authority\": \"test\",\n \"path\": \"error\"\n} \nsource: { , row: 35, col: 21 }\ncode: 51 WRAPPER INVOKE ABORTED\nuri: wrap://package/subinvoke-resolver\nmethod: tryResolveUri\nargs: {\n \"authority\": \"test\",\n \"path\": \"error\"\n} \nsource: { , row: 177, col: 15 })", [ "wrap://package/subinvoke-resolver => Client.loadWrapper => wrapper (wrap://package/subinvoke-resolver)", [ @@ -13,7 +13,7 @@ "wrap://package/subinvoke-resolver => StaticResolver - Package (wrap://package/subinvoke-resolver) => package (wrap://package/subinvoke-resolver)" ] ], - "wrap://package/subinvoke-resolver => Client.invokeWrapper => error (__wrap_abort: Test error\ncode: 51 WRAPPER INVOKE ABORTED\nuri: wrap://package/test-resolver\nmethod: tryResolveUri\nargs: {\n \"authority\": \"test\",\n \"path\": \"error\"\n} \nsource: { file: \"src/wrap/module/wrapped.rs\", row: 35, col: 21 }\ncode: 51 WRAPPER INVOKE ABORTED\nuri: wrap://package/subinvoke-resolver\nmethod: tryResolveUri\nargs: {\n \"authority\": \"test\",\n \"path\": \"error\"\n} \nsource: { file: \"/home/nerfzael/dev/web3api/repos/javascript-client/packages/wasm/src/WasmWrapper.ts\", row: 177, col: 15 })", + "wrap://package/subinvoke-resolver => Client.invokeWrapper => error (__wrap_abort: Test error\ncode: 51 WRAPPER INVOKE ABORTED\nuri: wrap://package/test-resolver\nmethod: tryResolveUri\nargs: {\n \"authority\": \"test\",\n \"path\": \"error\"\n} \nsource: { , row: 35, col: 21 }\ncode: 51 WRAPPER INVOKE ABORTED\nuri: wrap://package/subinvoke-resolver\nmethod: tryResolveUri\nargs: {\n \"authority\": \"test\",\n \"path\": \"error\"\n} \nsource: { , row: 177, col: 15 })", [ "wrap://package/test-resolver => Client.loadWrapper => wrapper (wrap://package/test-resolver)", [ @@ -22,7 +22,7 @@ "wrap://package/test-resolver => StaticResolver - Package (wrap://package/test-resolver) => package (wrap://package/test-resolver)" ] ], - "wrap://package/test-resolver => Client.invokeWrapper => error (__wrap_abort: Test error\ncode: 51 WRAPPER INVOKE ABORTED\nuri: wrap://package/test-resolver\nmethod: tryResolveUri\nargs: {\n \"authority\": \"test\",\n \"path\": \"error\"\n} \nsource: { file: \"src/wrap/module/wrapped.rs\", row: 35, col: 21 })" + "wrap://package/test-resolver => Client.invokeWrapper => error (__wrap_abort: Test error\ncode: 51 WRAPPER INVOKE ABORTED\nuri: wrap://package/test-resolver\nmethod: tryResolveUri\nargs: {\n \"authority\": \"test\",\n \"path\": \"error\"\n} \nsource: { , row: 35, col: 21 })" ] ] ] diff --git a/packages/uri-resolver-extensions/src/__tests__/resolver-extensions.spec.ts b/packages/uri-resolver-extensions/src/__tests__/resolver-extensions.spec.ts index dd78728b6..a142eb444 100644 --- a/packages/uri-resolver-extensions/src/__tests__/resolver-extensions.spec.ts +++ b/packages/uri-resolver-extensions/src/__tests__/resolver-extensions.spec.ts @@ -380,7 +380,8 @@ args: { await expectHistory( resolutionContext.getHistory(), - "shows-plugin-extension-error-with-subinvoke" + "shows-plugin-extension-error-with-subinvoke", + true ); if (result.ok) { From cb421499d8de1cb1b61dbf7fc4da78b2629a90f2 Mon Sep 17 00:00:00 2001 From: Jure Bogunovic Date: Mon, 24 Apr 2023 17:22:21 +0200 Subject: [PATCH 23/31] using embeded abi --- .../wrappers/test-resolver/polywrap.graphql | 4 +--- .../__tests__/wrappers/test-resolver/src/lib.rs | 14 ++++---------- 2 files changed, 5 insertions(+), 13 deletions(-) diff --git a/packages/uri-resolver-extensions/src/__tests__/wrappers/test-resolver/polywrap.graphql b/packages/uri-resolver-extensions/src/__tests__/wrappers/test-resolver/polywrap.graphql index 4031992f2..4cf15a9d5 100644 --- a/packages/uri-resolver-extensions/src/__tests__/wrappers/test-resolver/polywrap.graphql +++ b/packages/uri-resolver-extensions/src/__tests__/wrappers/test-resolver/polywrap.graphql @@ -1,5 +1,3 @@ -#import { Module, MaybeUriOrManifest } into UriResolver from "wrap://ens/wraps.eth:uri-resolver-ext@1.1.0" - -type Module implements UriResolver_Module {} +#import * from "wrap://ens/wraps.eth:uri-resolver-ext@1.1.0" type Env {} diff --git a/packages/uri-resolver-extensions/src/__tests__/wrappers/test-resolver/src/lib.rs b/packages/uri-resolver-extensions/src/__tests__/wrappers/test-resolver/src/lib.rs index 1a5d73bd4..2f37e3930 100644 --- a/packages/uri-resolver-extensions/src/__tests__/wrappers/test-resolver/src/lib.rs +++ b/packages/uri-resolver-extensions/src/__tests__/wrappers/test-resolver/src/lib.rs @@ -1,27 +1,21 @@ pub mod wrap; -use wrap::{ - *, - env::{Env}, - imported::{ - ArgsGetFile, ArgsTryResolveUri, - } -}; +use wrap::{*,env::Env}; impl ModuleTrait for Module { fn try_resolve_uri( args: ArgsTryResolveUri, _env: Option - ) -> Result, String> { + ) -> Result, String> { if args.authority != "test" { return Ok(None); } match args.path.as_str() { - "from" => Ok(Some(UriResolverMaybeUriOrManifest { + "from" => Ok(Some(MaybeUriOrManifest { manifest: None, uri: Some("test/to".to_string()) })), - "package" => Ok(Some(UriResolverMaybeUriOrManifest { + "package" => Ok(Some(MaybeUriOrManifest { manifest: Some(vec![0]), uri: None })), From 8f75f7e34b24fcb1b103948fd574c2c906bdd77e Mon Sep 17 00:00:00 2001 From: Jure Bogunovic Date: Mon, 24 Apr 2023 17:26:22 +0200 Subject: [PATCH 24/31] removed quotes --- packages/uri-resolver-extensions/readme/README.md | 1 - 1 file changed, 1 deletion(-) diff --git a/packages/uri-resolver-extensions/readme/README.md b/packages/uri-resolver-extensions/readme/README.md index d301ff794..d74282dbc 100644 --- a/packages/uri-resolver-extensions/readme/README.md +++ b/packages/uri-resolver-extensions/readme/README.md @@ -126,5 +126,4 @@ nvm use && yarn install && yarn build ```bash yarn test -`` ``` From 4eac351b945bf0162c48d9c8f11623670fe5c4af Mon Sep 17 00:00:00 2001 From: Jure Bogunovic Date: Tue, 25 Apr 2023 14:02:38 +0200 Subject: [PATCH 25/31] overriding the plugin client instead of passing resolution context as arg --- packages/plugin/src/PluginMethod.ts | 13 +-- packages/plugin/src/PluginModule.ts | 11 +-- packages/plugin/src/PluginWrapper.ts | 6 +- .../src/ResolutionContextOverrideClient.ts | 91 +++++++++++++++++++ .../src/utils/PluginModuleWithMethods.ts | 11 +-- .../src/__tests__/resolver-extensions.spec.ts | 78 +++++++--------- yarn.lock | 58 +++++++----- 7 files changed, 172 insertions(+), 96 deletions(-) create mode 100644 packages/plugin/src/ResolutionContextOverrideClient.ts diff --git a/packages/plugin/src/PluginMethod.ts b/packages/plugin/src/PluginMethod.ts index 93c55f45a..0575f94ba 100644 --- a/packages/plugin/src/PluginMethod.ts +++ b/packages/plugin/src/PluginMethod.ts @@ -1,9 +1,5 @@ /* eslint-disable @typescript-eslint/naming-convention */ -import { - CoreClient, - IUriResolutionContext, - MaybeAsync, -} from "@polywrap/core-js"; +import { CoreClient, MaybeAsync } from "@polywrap/core-js"; /** * Invocable plugin method. @@ -17,9 +13,4 @@ export type PluginMethod< TArgs extends Record = Record, TResult = unknown, TEnv extends Record = Record -> = ( - args: TArgs, - client: CoreClient, - env: TEnv, - resolutionContext?: IUriResolutionContext -) => MaybeAsync; +> = (args: TArgs, client: CoreClient, env: TEnv) => MaybeAsync; diff --git a/packages/plugin/src/PluginModule.ts b/packages/plugin/src/PluginModule.ts index 36dd245a8..04dbbd649 100644 --- a/packages/plugin/src/PluginModule.ts +++ b/packages/plugin/src/PluginModule.ts @@ -1,11 +1,7 @@ /* eslint-disable @typescript-eslint/naming-convention */ import { PluginMethod } from "./PluginMethod"; -import { - CoreClient, - IUriResolutionContext, - WrapErrorCode, -} from "@polywrap/core-js"; +import { CoreClient, WrapErrorCode } from "@polywrap/core-js"; import { Result, ResultErr, ResultOk } from "@polywrap/result"; export abstract class PluginModule< @@ -29,8 +25,7 @@ export abstract class PluginModule< method: string, args: TArgs, client: CoreClient, - env: TEnv, - resolutionContext?: IUriResolutionContext + env: TEnv ): Promise> { const fn = this.getMethod(method); @@ -45,7 +40,7 @@ export abstract class PluginModule< } try { - const data = await fn(args, client, env, resolutionContext); + const data = await fn(args, client, env); return ResultOk(data); } catch (e) { e.code = WrapErrorCode.WRAPPER_INVOKE_ABORTED; diff --git a/packages/plugin/src/PluginWrapper.ts b/packages/plugin/src/PluginWrapper.ts index 649d55341..8e940196f 100644 --- a/packages/plugin/src/PluginWrapper.ts +++ b/packages/plugin/src/PluginWrapper.ts @@ -14,6 +14,7 @@ import { import { WrapManifest } from "@polywrap/wrap-manifest-types-js"; import { msgpackDecode } from "@polywrap/msgpack-js"; import { Result, ResultErr, ResultOk } from "@polywrap/result"; +import { ResolutionContextOverrideClient } from "./ResolutionContextOverrideClient"; export class PluginWrapper implements Wrapper { constructor( @@ -84,9 +85,8 @@ export class PluginWrapper implements Wrapper { const result = await this._module._wrap_invoke( method, jsArgs, - client, - options.env || {}, - options.resolutionContext + new ResolutionContextOverrideClient(client, options.resolutionContext), + options.env || {} ); if (result.ok) { diff --git a/packages/plugin/src/ResolutionContextOverrideClient.ts b/packages/plugin/src/ResolutionContextOverrideClient.ts new file mode 100644 index 000000000..7496584e6 --- /dev/null +++ b/packages/plugin/src/ResolutionContextOverrideClient.ts @@ -0,0 +1,91 @@ +import { + Wrapper, + CoreClient, + GetFileOptions, + WrapError, + IUriResolutionContext, + CoreClientConfig, + GetImplementationsOptions, + IUriResolver, + InvokeResult, + InvokerOptions, + ReadonlyUriMap, + TryResolveUriOptions, + Uri, + UriPackageOrWrapper, + WrapperEnv, +} from "@polywrap/core-js"; +import { WrapManifest } from "@polywrap/wrap-manifest-types-js"; +import { Result } from "@polywrap/result"; + +export class ResolutionContextOverrideClient implements CoreClient { + constructor( + private readonly _client: CoreClient, + private readonly _resolutionContext?: IUriResolutionContext + ) {} + + public getConfig(): CoreClientConfig { + return this._client.getConfig(); + } + + public getInterfaces(): ReadonlyUriMap | undefined { + return this._client.getInterfaces(); + } + + public getEnvs(): ReadonlyUriMap | undefined { + return this._client.getEnvs(); + } + + public getResolver(): IUriResolver { + return this._client.getResolver(); + } + + public getEnvByUri(uri: Uri): WrapperEnv | undefined { + return this._client.getEnvByUri(uri); + } + + public async getManifest(uri: Uri): Promise> { + return this._client.getManifest(uri); + } + + public async getFile( + uri: Uri, + options: GetFileOptions + ): Promise> { + return this._client.getFile(uri, options); + } + + public async getImplementations( + uri: Uri, + options: GetImplementationsOptions = {} + ): Promise> /* $ */ { + return this._client.getImplementations(uri, options); + } + + public async invokeWrapper( + options: InvokerOptions & { wrapper: Wrapper } + ): Promise> /* $ */ { + return this._client.invokeWrapper({ + ...options, + resolutionContext: options.resolutionContext ?? this._resolutionContext, + }); + } + + public async invoke( + options: InvokerOptions + ): Promise> /* $ */ { + return this._client.invoke({ + ...options, + resolutionContext: options.resolutionContext ?? this._resolutionContext, + }); + } + + public async tryResolveUri( + options: TryResolveUriOptions + ): Promise> /* $ */ { + return this._client.tryResolveUri({ + ...options, + resolutionContext: options.resolutionContext ?? this._resolutionContext, + }); + } +} diff --git a/packages/plugin/src/utils/PluginModuleWithMethods.ts b/packages/plugin/src/utils/PluginModuleWithMethods.ts index 06e02d5a2..03b1e6d63 100644 --- a/packages/plugin/src/utils/PluginModuleWithMethods.ts +++ b/packages/plugin/src/utils/PluginModuleWithMethods.ts @@ -4,11 +4,7 @@ import { PluginMethod } from "../PluginMethod"; import { PluginModule } from "../PluginModule"; import { GetPluginMethodsFunc } from "./GetPluginMethodsFunc"; -import { - CoreClient, - IUriResolutionContext, - WrapErrorCode, -} from "@polywrap/core-js"; +import { CoreClient, WrapErrorCode } from "@polywrap/core-js"; import { Result, ResultErr, ResultOk } from "@polywrap/result"; export class PluginModuleWithMethods< @@ -25,8 +21,7 @@ export class PluginModuleWithMethods< method: string, args: TArgs, client: CoreClient, - env: TEnv, - resolutionContext?: IUriResolutionContext + env: TEnv ): Promise> { const fn = this.getMethod(method); @@ -41,7 +36,7 @@ export class PluginModuleWithMethods< } try { - const data = await fn(args, client, env, resolutionContext); + const data = await fn(args, client, env); return ResultOk(data); } catch (e) { e.code = WrapErrorCode.WRAPPER_INVOKE_ABORTED; diff --git a/packages/uri-resolver-extensions/src/__tests__/resolver-extensions.spec.ts b/packages/uri-resolver-extensions/src/__tests__/resolver-extensions.spec.ts index a142eb444..2c744fa17 100644 --- a/packages/uri-resolver-extensions/src/__tests__/resolver-extensions.spec.ts +++ b/packages/uri-resolver-extensions/src/__tests__/resolver-extensions.spec.ts @@ -1,7 +1,13 @@ import { ExtendableUriResolver } from "../ExtendableUriResolver"; import { expectHistory } from "./helpers/expectHistory"; -import { Uri, UriMap, UriResolutionContext, IWrapPackage, IUriResolutionContext } from "@polywrap/core-js"; +import { + Uri, + UriMap, + UriResolutionContext, + IWrapPackage, + CoreClient, +} from "@polywrap/core-js"; import { PolywrapCoreClient } from "@polywrap/core-client-js"; import { PluginPackage } from "@polywrap/plugin-js"; import { WasmPackage } from "@polywrap/wasm-js"; @@ -16,8 +22,7 @@ const subinvokeResolverUri = Uri.from("wrap://package/subinvoke-resolver"); const customPluginResolverUri = Uri.from("wrap://package/test-resolver"); const customPluginResolver = PluginPackage.from(() => ({ tryResolveUri: async ( - args: any, - client: PolywrapCoreClient, + args: any ): Promise<{ uri?: string | null; manifest?: Uint8Array | null; @@ -46,9 +51,7 @@ const customPluginResolver = PluginPackage.from(() => ({ const subinvokePluginResolver = PluginPackage.from(() => ({ tryResolveUri: async ( args: any, - client: PolywrapCoreClient, - _env: any, - resolutionContext?: IUriResolutionContext, + client: CoreClient ): Promise<{ uri?: string | null; manifest?: Uint8Array | null; @@ -56,11 +59,10 @@ const subinvokePluginResolver = PluginPackage.from(() => ({ const result = await client.invoke<{ uri?: string | null; manifest?: Uint8Array | null; - } | null>({ + } | null>({ uri: Uri.from("wrap://package/test-resolver"), method: "tryResolveUri", args, - resolutionContext }); if (!result.ok) { @@ -72,7 +74,6 @@ const subinvokePluginResolver = PluginPackage.from(() => ({ })); describe("Resolver extensions", () => { - let testResolverPackage: IWrapPackage; let subinvokeResolverPackage: IWrapPackage; @@ -80,9 +81,12 @@ describe("Resolver extensions", () => { const testResolverDir = path.join(__dirname, "/wrappers/test-resolver"); // Build the test-resolver wrapper - const res = await Commands.build({}, { - cwd: testResolverDir - }); + const res = await Commands.build( + {}, + { + cwd: testResolverDir, + } + ); if (res.exitCode !== 0) { fail(`STDOUT: ${res.stdout}\nSTDERR: ${res.stderr}`); @@ -96,12 +100,18 @@ describe("Resolver extensions", () => { fs.readFileSync(path.join(wrapBuildDir, "wrap.wasm")) ); - const subinvokeResolverDir = path.join(__dirname, "/wrappers/subinvoke-resolver"); + const subinvokeResolverDir = path.join( + __dirname, + "/wrappers/subinvoke-resolver" + ); // Build the test-resolver wrapper - const subinvokeRes = await Commands.build({}, { - cwd: subinvokeResolverDir - }); + const subinvokeRes = await Commands.build( + {}, + { + cwd: subinvokeResolverDir, + } + ); if (subinvokeRes.exitCode !== 0) { fail(`STDOUT: ${res.stdout}\nSTDERR: ${res.stderr}`); @@ -143,10 +153,7 @@ describe("Resolver extensions", () => { resolutionContext, }); - await expectHistory( - resolutionContext.getHistory(), - "can-resolve-uri" - ); + await expectHistory(resolutionContext.getHistory(), "can-resolve-uri"); if (!result.ok) { fail(result.error); @@ -235,10 +242,7 @@ describe("Resolver extensions", () => { resolutionContext, }); - await expectHistory( - resolutionContext.getHistory(), - "can-resolve-package" - ); + await expectHistory(resolutionContext.getHistory(), "can-resolve-package"); if (!result.ok) { fail(result.error); @@ -415,10 +419,7 @@ args: { const resolutionContext = new UriResolutionContext(); const result = await client.tryResolveUri({ uri, resolutionContext }); - await expectHistory( - resolutionContext.getHistory(), - "not-a-match" - ); + await expectHistory(resolutionContext.getHistory(), "not-a-match"); if (!result.ok) { fail(result.error); @@ -475,7 +476,6 @@ args: { expect(result.value.uri.uri).toEqual("wrap://test/not-a-match"); }); - it("can resolve URI with wasm extension", async () => { const sourceUri = Uri.from(`test/from`); const redirectedUri = Uri.from("test/to"); @@ -504,10 +504,7 @@ args: { resolutionContext, }); - await expectHistory( - resolutionContext.getHistory(), - "can-resolve-uri" - ); + await expectHistory(resolutionContext.getHistory(), "can-resolve-uri"); if (!result.ok) { fail(result.error); @@ -597,10 +594,7 @@ args: { resolutionContext, }); - await expectHistory( - resolutionContext.getHistory(), - "can-resolve-package" - ); + await expectHistory(resolutionContext.getHistory(), "can-resolve-package"); if (!result.ok) { fail(result.error); @@ -798,10 +792,7 @@ source: { file: "src/wrap/module/wrapped.rs", row: 35, col: 21 }` const resolutionContext = new UriResolutionContext(); const result = await client.tryResolveUri({ uri, resolutionContext }); - await expectHistory( - resolutionContext.getHistory(), - "not-a-match" - ); + await expectHistory(resolutionContext.getHistory(), "not-a-match"); if (!result.ok) { fail(result.error); @@ -877,10 +868,7 @@ source: { file: "src/wrap/module/wrapped.rs", row: 35, col: 21 }` resolutionContext, }); - await expectHistory( - resolutionContext.getHistory(), - "not-found-extension" - ); + await expectHistory(resolutionContext.getHistory(), "not-found-extension"); if (result.ok) { fail("Resoulution should have failed"); diff --git a/yarn.lock b/yarn.lock index 0e49fa7ab..9ac3f11ed 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2457,9 +2457,9 @@ integrity sha512-wH6Tu9mbiOt0n5EvdoWy0VGQaJMHfLIxY/6wS0xLC7CV1taM6gESEzcYy0ZlWvxxiiljYvfDIvz4hHbUUDRlhw== "@types/node@*", "@types/node@^18.14.6": - version "18.15.12" - resolved "https://registry.yarnpkg.com/@types/node/-/node-18.15.12.tgz#833756634e78c829e1254db006468dadbb0c696b" - integrity sha512-Wha1UwsB3CYdqUm2PPzh/1gujGCNtWVUYF0mB00fJFoR4gTyWTDPjSm+zBF787Ahw8vSGgBja90MkgFwvB86Dg== + version "18.16.0" + resolved "https://registry.yarnpkg.com/@types/node/-/node-18.16.0.tgz#4668bc392bb6938637b47e98b1f2ed5426f33316" + integrity sha512-BsAaKhB+7X+H4GnSjGhJG9Qi8Tw+inU9nJDwmD5CgOmBLEI6ArdhikpLX7DjbjDRDTbqZzU2LSQNZg8WGPiSZQ== "@types/normalize-package-data@^2.4.0": version "2.4.1" @@ -3293,9 +3293,9 @@ camelcase@^6.2.0: integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA== caniuse-lite@^1.0.30001449: - version "1.0.30001480" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001480.tgz#9bbd35ee44c2480a1e3a3b9f4496f5066817164a" - integrity sha512-q7cpoPPvZYgtyC4VaBSN0Bt+PJ4c4EYRf0DrduInOz2SkFpHD5p3LnvEpqBp7UnJn+8x1Ogl1s38saUxe+ihQQ== + version "1.0.30001481" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001481.tgz#f58a717afe92f9e69d0e35ff64df596bfad93912" + integrity sha512-KCqHwRnaa1InZBtqXzP98LPg0ajCVujMKjqKDhZEthIpAsJl/YEIa3YvXjGXPVqzZVguccuu7ga9KOE1J9rKPQ== caseless@~0.12.0: version "0.12.0" @@ -3972,9 +3972,9 @@ electron-fetch@^1.7.2: encoding "^0.1.13" electron-to-chromium@^1.4.284: - version "1.4.368" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.368.tgz#75901f97d3e23da2e66feb1e61fbb8e70ac96430" - integrity sha512-e2aeCAixCj9M7nJxdB/wDjO6mbYX+lJJxSJCXDzlr5YPGYVofuJwGN9nKg2o6wWInjX6XmxRinn3AeJMK81ltw== + version "1.4.371" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.371.tgz#393983ef087268a20c926a89be30e9f0bfc803b0" + integrity sha512-jlBzY4tFcJaiUjzhRTCWAqRvTO/fWzjA3Bls0mykzGZ7zvcMP7h05W6UcgzfT9Ca1SW2xyKDOFRyI0pQeRNZGw== elliptic@6.5.4: version "6.5.4" @@ -4068,7 +4068,7 @@ error-ex@^1.2.0, error-ex@^1.3.1: dependencies: is-arrayish "^0.2.1" -es-abstract@^1.19.0, es-abstract@^1.20.4: +es-abstract@^1.19.0, es-abstract@^1.20.4, es-abstract@^1.21.2: version "1.21.2" resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.21.2.tgz#a56b9695322c8a185dc25975aa3b8ec31d0e7eff" integrity sha512-y/B5POM2iBnIxCiernH1G7rC9qQoM77lLIMQLuob0zhp8C56Po81+2Nj0WFKnd0pNReDTnkYryc+zhOzpEIROg== @@ -5655,6 +5655,11 @@ isarray@^1.0.0, isarray@~1.0.0: resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" integrity sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ== +isarray@^2.0.5: + version "2.0.5" + resolved "https://registry.yarnpkg.com/isarray/-/isarray-2.0.5.tgz#8af1e4c1221244cc62459faf38940d4e644a5723" + integrity sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw== + isexe@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" @@ -7307,14 +7312,15 @@ object.assign@^4.1.4: object-keys "^1.1.1" object.getownpropertydescriptors@^2.0.3: - version "2.1.5" - resolved "https://registry.yarnpkg.com/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.5.tgz#db5a9002489b64eef903df81d6623c07e5b4b4d3" - integrity sha512-yDNzckpM6ntyQiGTik1fKV1DcVDRS+w8bvpWNCBanvH5LfRX9O8WTHqQzG4RZwRAM4I0oU7TV11Lj5v0g20ibw== + version "2.1.6" + resolved "https://registry.yarnpkg.com/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.6.tgz#5e5c384dd209fa4efffead39e3a0512770ccc312" + integrity sha512-lq+61g26E/BgHv0ZTFgRvi7NMEPuAxLkFU7rukXjc/AlwH4Am5xXVnIXy3un1bg/JPbXHrixRkK1itUzzPiIjQ== dependencies: array.prototype.reduce "^1.0.5" call-bind "^1.0.2" - define-properties "^1.1.4" - es-abstract "^1.20.4" + define-properties "^1.2.0" + es-abstract "^1.21.2" + safe-array-concat "^1.0.0" object.values@^1.1.1: version "1.1.6" @@ -7738,9 +7744,9 @@ prettier@2.2.1: integrity sha512-PqyhM2yCjg/oKkFPtTGUojv7gnZAoG80ttl45O6x2Ug/rMJw4wcc9k6aaf2hibP7BGVCCM33gZoGjyvt9mm16Q== prettier@^2.6.2: - version "2.8.7" - resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.8.7.tgz#bb79fc8729308549d28fe3a98fce73d2c0656450" - integrity sha512-yPngTo3aXUUmyuTjeTUT75txrf+aMh9FiD7q9ZE/i6r0bPb22g4FsE6Y338PQX1bmfy08i9QQCB7/rcUAVntfw== + version "2.8.8" + resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.8.8.tgz#e8c5d7e98a4305ffe3de2e1fc4aca1a71c28b1da" + integrity sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q== pretty-format@^29.0.0, pretty-format@^29.5.0: version "29.5.0" @@ -7848,9 +7854,9 @@ punycode@^2.1.0, punycode@^2.1.1: integrity sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA== pure-rand@^6.0.0: - version "6.0.1" - resolved "https://registry.yarnpkg.com/pure-rand/-/pure-rand-6.0.1.tgz#31207dddd15d43f299fdcdb2f572df65030c19af" - integrity sha512-t+x1zEHDjBwkDGY5v5ApnZ/utcd4XYDiJsaQQoptTXgUXX95sDg1elCdJghzicm7n2mbCBJ3uYWr6M22SO19rg== + version "6.0.2" + resolved "https://registry.yarnpkg.com/pure-rand/-/pure-rand-6.0.2.tgz#a9c2ddcae9b68d736a8163036f088a2781c8b306" + integrity sha512-6Yg0ekpKICSjPswYOuC5sku/TSWaRYlA0qsXqJgM/d/4pLPHPuTxK7Nbf7jFKzAeedUhR8C7K9Uv63FBsSo8xQ== q@^1.5.1: version "1.5.1" @@ -8231,6 +8237,16 @@ rxjs@^6.6.0: dependencies: tslib "^1.9.0" +safe-array-concat@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/safe-array-concat/-/safe-array-concat-1.0.0.tgz#2064223cba3c08d2ee05148eedbc563cd6d84060" + integrity sha512-9dVEFruWIsnie89yym+xWTAYASdpw3CJV7Li/6zBewGf9z2i1j31rP6jnY0pHEO4QZh6N0K11bFjWmdR8UGdPQ== + dependencies: + call-bind "^1.0.2" + get-intrinsic "^1.2.0" + has-symbols "^1.0.3" + isarray "^2.0.5" + safe-buffer@^5.0.1, safe-buffer@^5.1.2, safe-buffer@^5.2.1, safe-buffer@~5.2.0: version "5.2.1" resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" From 47fb79e479284f4712d02573827d5ab877ce50df Mon Sep 17 00:00:00 2001 From: Jure Bogunovic Date: Tue, 25 Apr 2023 16:15:07 +0200 Subject: [PATCH 26/31] lint fix --- packages/plugin/src/PluginWrapper.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/plugin/src/PluginWrapper.ts b/packages/plugin/src/PluginWrapper.ts index 8e940196f..9f080dbe6 100644 --- a/packages/plugin/src/PluginWrapper.ts +++ b/packages/plugin/src/PluginWrapper.ts @@ -1,5 +1,6 @@ import { PluginModule } from "./PluginModule"; import { getErrorSource } from "./utils/getErrorSource"; +import { ResolutionContextOverrideClient } from "./ResolutionContextOverrideClient"; import { Wrapper, @@ -14,7 +15,6 @@ import { import { WrapManifest } from "@polywrap/wrap-manifest-types-js"; import { msgpackDecode } from "@polywrap/msgpack-js"; import { Result, ResultErr, ResultOk } from "@polywrap/result"; -import { ResolutionContextOverrideClient } from "./ResolutionContextOverrideClient"; export class PluginWrapper implements Wrapper { constructor( From 2681fb3b05abe276f6ba29b9d85239a88ff5df91 Mon Sep 17 00:00:00 2001 From: dOrgJelli Date: Tue, 25 Apr 2023 17:08:27 -0500 Subject: [PATCH 27/31] chore: fix CI --- .../src/__tests__/resolver-extensions.spec.ts | 70 ++++++++----------- .../subinvoke-resolver/polywrap.graphql | 4 +- .../wrappers/subinvoke-resolver/polywrap.yaml | 2 +- .../wrappers/subinvoke-resolver/src/lib.rs | 8 +-- .../wrappers/test-resolver/polywrap.yaml | 2 +- yarn.lock | 18 ++--- 6 files changed, 46 insertions(+), 58 deletions(-) diff --git a/packages/uri-resolver-extensions/src/__tests__/resolver-extensions.spec.ts b/packages/uri-resolver-extensions/src/__tests__/resolver-extensions.spec.ts index 2c744fa17..4a3aeeeea 100644 --- a/packages/uri-resolver-extensions/src/__tests__/resolver-extensions.spec.ts +++ b/packages/uri-resolver-extensions/src/__tests__/resolver-extensions.spec.ts @@ -81,17 +81,13 @@ describe("Resolver extensions", () => { const testResolverDir = path.join(__dirname, "/wrappers/test-resolver"); // Build the test-resolver wrapper - const res = await Commands.build( + await Commands.build( {}, { cwd: testResolverDir, } ); - if (res.exitCode !== 0) { - fail(`STDOUT: ${res.stdout}\nSTDERR: ${res.stderr}`); - } - const wrapBuildDir = path.join(testResolverDir, "build"); // Load the wrapper from disk @@ -106,17 +102,13 @@ describe("Resolver extensions", () => { ); // Build the test-resolver wrapper - const subinvokeRes = await Commands.build( + await Commands.build( {}, { cwd: subinvokeResolverDir, } ); - if (subinvokeRes.exitCode !== 0) { - fail(`STDOUT: ${res.stdout}\nSTDERR: ${res.stderr}`); - } - const subinvokeBuildDir = path.join(subinvokeResolverDir, "build"); // Load the wrapper from disk subinvokeResolverPackage = WasmPackage.from( @@ -156,11 +148,11 @@ describe("Resolver extensions", () => { await expectHistory(resolutionContext.getHistory(), "can-resolve-uri"); if (!result.ok) { - fail(result.error); + throw result.error; } if (result.value.type !== "uri") { - fail("Expected a URI, received: " + result.value.type); + throw Error("Expected a URI, received: " + result.value.type); } expect(result.value.uri.uri).toEqual(redirectedUri.uri); @@ -204,11 +196,11 @@ describe("Resolver extensions", () => { ); if (!result.ok) { - fail(result.error); + throw result.error; } if (result.value.type !== "uri") { - fail("Expected a URI, received: " + result.value.type); + throw Error("Expected a URI, received: " + result.value.type); } expect(result.value.uri.uri).toEqual(redirectedUri.uri); @@ -245,11 +237,11 @@ describe("Resolver extensions", () => { await expectHistory(resolutionContext.getHistory(), "can-resolve-package"); if (!result.ok) { - fail(result.error); + throw result.error; } if (result.value.type !== "package") { - fail("Expected a package, received: " + result.value.type); + throw Error("Expected a package, received: " + result.value.type); } expect(result.value.uri.uri).toEqual(redirectedUri.uri); @@ -293,11 +285,11 @@ describe("Resolver extensions", () => { ); if (!result.ok) { - fail(result.error); + throw result.error; } if (result.value.type !== "package") { - fail("Expected a package, received: " + result.value.type); + throw Error("Expected a package, received: " + result.value.type); } expect(result.value.uri.uri).toEqual(redirectedUri.uri); @@ -336,7 +328,7 @@ describe("Resolver extensions", () => { ); if (result.ok) { - fail("Expected an error, received: " + result.value.type); + throw Error("Expected an error, received: " + result.value.type); } expect((result.error as Error)?.message).toEqual( @@ -389,7 +381,7 @@ args: { ); if (result.ok) { - fail("Expected an error, received: " + result.value.type); + throw Error("Expected an error, received: " + result.value.type); } expect((result.error as Error)?.message).toMatch(/Test error/); @@ -422,11 +414,11 @@ args: { await expectHistory(resolutionContext.getHistory(), "not-a-match"); if (!result.ok) { - fail(result.error); + throw result.error; } if (result.value.type !== "uri") { - fail("Expected a uri, received: " + result.value.type); + throw Error("Expected a uri, received: " + result.value.type); } expect(result.value.uri.uri).toEqual("wrap://test/not-a-match"); @@ -466,11 +458,11 @@ args: { ); if (!result.ok) { - fail(result.error); + throw result.error; } if (result.value.type !== "uri") { - fail("Expected a uri, received: " + result.value.type); + throw Error("Expected a uri, received: " + result.value.type); } expect(result.value.uri.uri).toEqual("wrap://test/not-a-match"); @@ -507,11 +499,11 @@ args: { await expectHistory(resolutionContext.getHistory(), "can-resolve-uri"); if (!result.ok) { - fail(result.error); + throw result.error; } if (result.value.type !== "uri") { - fail("Expected a URI, received: " + result.value.type); + throw Error("Expected a URI, received: " + result.value.type); } expect(result.value.uri.uri).toEqual(redirectedUri.uri); @@ -556,11 +548,11 @@ args: { ); if (!result.ok) { - fail(result.error); + throw result.error; } if (result.value.type !== "uri") { - fail("Expected a URI, received: " + result.value.type); + throw Error("Expected a URI, received: " + result.value.type); } expect(result.value.uri.uri).toEqual(redirectedUri.uri); @@ -597,11 +589,11 @@ args: { await expectHistory(resolutionContext.getHistory(), "can-resolve-package"); if (!result.ok) { - fail(result.error); + throw result.error; } if (result.value.type !== "package") { - fail("Expected a package, received: " + result.value.type); + throw Error("Expected a package, received: " + result.value.type); } expect(result.value.uri.uri).toEqual(redirectedUri.uri); @@ -645,11 +637,11 @@ args: { ); if (!result.ok) { - fail(result.error); + throw result.error; } if (result.value.type !== "package") { - fail("Expected a package, received: " + result.value.type); + throw Error("Expected a package, received: " + result.value.type); } expect(result.value.uri.uri).toEqual(redirectedUri.uri); @@ -688,7 +680,7 @@ args: { ); if (result.ok) { - fail("Expected an error, received: " + result.value.type); + throw Error("Expected an error, received: " + result.value.type); } expect((result.error as Error)?.message).toEqual( @@ -741,7 +733,7 @@ source: { file: "src/wrap/module/wrapped.rs", row: 35, col: 21 }` ); if (result.ok) { - fail("Expected an error, received: " + result.value.type); + throw Error("Expected an error, received: " + result.value.type); } expect((result.error as Error)?.message).toEqual( @@ -795,11 +787,11 @@ source: { file: "src/wrap/module/wrapped.rs", row: 35, col: 21 }` await expectHistory(resolutionContext.getHistory(), "not-a-match"); if (!result.ok) { - fail(result.error); + throw result.error; } if (result.value.type !== "uri") { - fail("Expected a uri, received: " + result.value.type); + throw Error("Expected a uri, received: " + result.value.type); } expect(result.value.uri.uri).toEqual("wrap://test/not-a-match"); @@ -839,11 +831,11 @@ source: { file: "src/wrap/module/wrapped.rs", row: 35, col: 21 }` ); if (!result.ok) { - fail(result.error); + throw result.error; } if (result.value.type !== "uri") { - fail("Expected a uri, received: " + result.value.type); + throw Error("Expected a uri, received: " + result.value.type); } expect(result.value.uri.uri).toEqual("wrap://test/not-a-match"); @@ -871,7 +863,7 @@ source: { file: "src/wrap/module/wrapped.rs", row: 35, col: 21 }` await expectHistory(resolutionContext.getHistory(), "not-found-extension"); if (result.ok) { - fail("Resoulution should have failed"); + throw Error("Resoulution should have failed"); } expect((result.error as Error)?.message).toEqual( diff --git a/packages/uri-resolver-extensions/src/__tests__/wrappers/subinvoke-resolver/polywrap.graphql b/packages/uri-resolver-extensions/src/__tests__/wrappers/subinvoke-resolver/polywrap.graphql index 61b51ce1d..c54340789 100644 --- a/packages/uri-resolver-extensions/src/__tests__/wrappers/subinvoke-resolver/polywrap.graphql +++ b/packages/uri-resolver-extensions/src/__tests__/wrappers/subinvoke-resolver/polywrap.graphql @@ -1,6 +1,4 @@ -#import { Module } into UriResolver from "wrap://ens/wraps.eth:uri-resolver-ext@1.1.0" +#import * from "wrap://ens/wraps.eth:uri-resolver-ext@1.1.0" #import { Module } into TestResolver from "wrap://package/test-resolver" -type Module implements UriResolver_Module {} - type Env {} diff --git a/packages/uri-resolver-extensions/src/__tests__/wrappers/subinvoke-resolver/polywrap.yaml b/packages/uri-resolver-extensions/src/__tests__/wrappers/subinvoke-resolver/polywrap.yaml index b94dfbae3..4af86b387 100644 --- a/packages/uri-resolver-extensions/src/__tests__/wrappers/subinvoke-resolver/polywrap.yaml +++ b/packages/uri-resolver-extensions/src/__tests__/wrappers/subinvoke-resolver/polywrap.yaml @@ -1,4 +1,4 @@ -format: 0.2.0 +format: 0.3.0 project: name: test-subinvoke-resolver-ext type: wasm/rust diff --git a/packages/uri-resolver-extensions/src/__tests__/wrappers/subinvoke-resolver/src/lib.rs b/packages/uri-resolver-extensions/src/__tests__/wrappers/subinvoke-resolver/src/lib.rs index f4b652394..22b520d8a 100644 --- a/packages/uri-resolver-extensions/src/__tests__/wrappers/subinvoke-resolver/src/lib.rs +++ b/packages/uri-resolver-extensions/src/__tests__/wrappers/subinvoke-resolver/src/lib.rs @@ -2,16 +2,14 @@ pub mod wrap; use wrap::{ *, env::{Env}, - imported::{ - uri_resolver_module::ArgsGetFile, uri_resolver_module::ArgsTryResolveUri, test_resolver_module, - } + imported::{test_resolver_module} }; impl ModuleTrait for Module { fn try_resolve_uri( args: ArgsTryResolveUri, _env: Option - ) -> Result, String> { + ) -> Result, String> { let result = TestResolverModule::try_resolve_uri(&test_resolver_module::ArgsTryResolveUri { authority: args.authority, path: args.path, @@ -21,7 +19,7 @@ impl ModuleTrait for Module { Ok(result) => { match result { Some(result) => { - return Ok(Some(UriResolverMaybeUriOrManifest { + return Ok(Some(MaybeUriOrManifest { uri: result.uri, manifest: result.manifest })); diff --git a/packages/uri-resolver-extensions/src/__tests__/wrappers/test-resolver/polywrap.yaml b/packages/uri-resolver-extensions/src/__tests__/wrappers/test-resolver/polywrap.yaml index f31ecde3a..43b09b062 100644 --- a/packages/uri-resolver-extensions/src/__tests__/wrappers/test-resolver/polywrap.yaml +++ b/packages/uri-resolver-extensions/src/__tests__/wrappers/test-resolver/polywrap.yaml @@ -1,4 +1,4 @@ -format: 0.2.0 +format: 0.3.0 project: name: test-uri-resolver-ext type: wasm/rust diff --git a/yarn.lock b/yarn.lock index 9ac3f11ed..3e8c05420 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2365,9 +2365,9 @@ "@babel/types" "^7.0.0" "@types/babel__traverse@*", "@types/babel__traverse@^7.0.6": - version "7.18.3" - resolved "https://registry.yarnpkg.com/@types/babel__traverse/-/babel__traverse-7.18.3.tgz#dfc508a85781e5698d5b33443416b6268c4b3e8d" - integrity sha512-1kbcJ40lLB7MHsj39U4Sh1uTd2E7rLEa79kmDpI6cy+XiXsteB3POdQomoq4FxszMrO3ZYchkhYJw7A2862b3w== + version "7.18.4" + resolved "https://registry.yarnpkg.com/@types/babel__traverse/-/babel__traverse-7.18.4.tgz#0fa6be6c182288831be8c31c35dab6d6ccac47c5" + integrity sha512-TLG7CsGZZmX9aDF78UuJxnNTfQyRUFU0OYIVyIblr0/wd/HvsIo8wmuB90CszeD2MtLLAE9Tt4cWvk+KVkyGIw== dependencies: "@babel/types" "^7.3.0" @@ -2457,9 +2457,9 @@ integrity sha512-wH6Tu9mbiOt0n5EvdoWy0VGQaJMHfLIxY/6wS0xLC7CV1taM6gESEzcYy0ZlWvxxiiljYvfDIvz4hHbUUDRlhw== "@types/node@*", "@types/node@^18.14.6": - version "18.16.0" - resolved "https://registry.yarnpkg.com/@types/node/-/node-18.16.0.tgz#4668bc392bb6938637b47e98b1f2ed5426f33316" - integrity sha512-BsAaKhB+7X+H4GnSjGhJG9Qi8Tw+inU9nJDwmD5CgOmBLEI6ArdhikpLX7DjbjDRDTbqZzU2LSQNZg8WGPiSZQ== + version "18.16.1" + resolved "https://registry.yarnpkg.com/@types/node/-/node-18.16.1.tgz#5db121e9c5352925bb1f1b892c4ae620e3526799" + integrity sha512-DZxSZWXxFfOlx7k7Rv4LAyiMroaxa3Ly/7OOzZO8cBNho0YzAi4qlbrx8W27JGqG57IgR/6J7r+nOJWw6kcvZA== "@types/normalize-package-data@^2.4.0": version "2.4.1" @@ -3972,9 +3972,9 @@ electron-fetch@^1.7.2: encoding "^0.1.13" electron-to-chromium@^1.4.284: - version "1.4.371" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.371.tgz#393983ef087268a20c926a89be30e9f0bfc803b0" - integrity sha512-jlBzY4tFcJaiUjzhRTCWAqRvTO/fWzjA3Bls0mykzGZ7zvcMP7h05W6UcgzfT9Ca1SW2xyKDOFRyI0pQeRNZGw== + version "1.4.372" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.372.tgz#7888ac92ccb9556627c3a37eba3b89ee5ac345f8" + integrity sha512-MrlFq/j+TYHOjeWsWGYfzevc25HNeJdsF6qaLFrqBTRWZQtWkb1myq/Q2veLWezVaa5OcSZ99CFwTT4aF4Mung== elliptic@6.5.4: version "6.5.4" From 16b579693551753eba1ff0d7ddbaf8b9282666df Mon Sep 17 00:00:00 2001 From: dOrgJelli Date: Tue, 25 Apr 2023 17:50:47 -0500 Subject: [PATCH 28/31] chore: fix CI --- .../core/uri-resolution/histories/sanity.json | 239 +++++++++++++++++- 1 file changed, 238 insertions(+), 1 deletion(-) diff --git a/packages/client/src/__tests__/core/uri-resolution/histories/sanity.json b/packages/client/src/__tests__/core/uri-resolution/histories/sanity.json index 296001ad2..c5c068920 100644 --- a/packages/client/src/__tests__/core/uri-resolution/histories/sanity.json +++ b/packages/client/src/__tests__/core/uri-resolution/histories/sanity.json @@ -103,6 +103,43 @@ ] ], "wrap://plugin/concurrent@1.0.0 => Client.invokeWrapper", + [ + "wrap://embed/ipfs-http-client@1.0.0 => Client.loadWrapper => wrapper (wrap://embed/ipfs-http-client@1.0.0)", + [ + "wrap://embed/ipfs-http-client@1.0.0 => RequestSynchronizerResolver => wrapper (wrap://embed/ipfs-http-client@1.0.0)", + [ + "wrap://embed/ipfs-http-client@1.0.0 => ResolutionResultCacheResolver => wrapper (wrap://embed/ipfs-http-client@1.0.0)", + [ + "wrap://embed/ipfs-http-client@1.0.0 => PackageToWrapperResolver => wrapper (wrap://embed/ipfs-http-client@1.0.0)", + [ + "wrap://embed/ipfs-http-client@1.0.0 => UriResolverAggregator => package (wrap://embed/ipfs-http-client@1.0.0)", + [ + "wrap://embed/ipfs-http-client@1.0.0 => StaticResolver - Package (wrap://embed/ipfs-http-client@1.0.0) => package (wrap://embed/ipfs-http-client@1.0.0)" + ] + ] + ] + ] + ], + "wrap://embed/ipfs-http-client@1.0.0 => Client.loadWrapper => wrapper (wrap://embed/ipfs-http-client@1.0.0)", + [ + "wrap://embed/ipfs-http-client@1.0.0 => RequestSynchronizerResolver (Cache) => wrapper (wrap://embed/ipfs-http-client@1.0.0)" + ], + "wrap://embed/ipfs-http-client@1.0.0 => Client.invokeWrapper", + [ + "wrap://ens/wraps.eth:http@1.1.0 => Client.loadWrapper => wrapper (wrap://plugin/http@1.1.0)", + [ + "wrap://ens/wraps.eth:http@1.1.0 => RequestSynchronizerResolver => uri (wrap://plugin/http@1.1.0)", + [ + "wrap://ens/wraps.eth:http@1.1.0 => ResolutionResultCacheResolver (Cache) => uri (wrap://plugin/http@1.1.0)" + ], + "wrap://plugin/http@1.1.0 => RequestSynchronizerResolver => wrapper (wrap://plugin/http@1.1.0)", + [ + "wrap://plugin/http@1.1.0 => ResolutionResultCacheResolver (Cache) => wrapper (wrap://plugin/http@1.1.0)" + ] + ], + "wrap://plugin/http@1.1.0 => Client.invokeWrapper" + ] + ], "wrap://plugin/concurrent@1.0.0 => Client.loadWrapper => wrapper (wrap://plugin/concurrent@1.0.0)", [ "wrap://plugin/concurrent@1.0.0 => RequestSynchronizerResolver => wrapper (wrap://plugin/concurrent@1.0.0)", @@ -157,6 +194,49 @@ ] ], "wrap://plugin/concurrent@1.0.0 => Client.invokeWrapper", + [ + "wrap://embed/ipfs-http-client@1.0.0 => Client.loadWrapper => wrapper (wrap://embed/ipfs-http-client@1.0.0)", + [ + "wrap://embed/ipfs-http-client@1.0.0 => RequestSynchronizerResolver => wrapper (wrap://embed/ipfs-http-client@1.0.0)", + [ + "wrap://embed/ipfs-http-client@1.0.0 => ResolutionResultCacheResolver (Cache) => wrapper (wrap://embed/ipfs-http-client@1.0.0)" + ] + ], + "wrap://embed/ipfs-http-client@1.0.0 => Client.loadWrapper => wrapper (wrap://embed/ipfs-http-client@1.0.0)", + [ + "wrap://embed/ipfs-http-client@1.0.0 => RequestSynchronizerResolver (Cache) => wrapper (wrap://embed/ipfs-http-client@1.0.0)" + ], + "wrap://embed/ipfs-http-client@1.0.0 => Client.invokeWrapper", + [ + "wrap://ens/wraps.eth:http@1.1.0 => Client.loadWrapper => wrapper (wrap://plugin/http@1.1.0)", + [ + "wrap://ens/wraps.eth:http@1.1.0 => RequestSynchronizerResolver => uri (wrap://plugin/http@1.1.0)", + [ + "wrap://ens/wraps.eth:http@1.1.0 => ResolutionResultCacheResolver (Cache) => uri (wrap://plugin/http@1.1.0)" + ], + "wrap://plugin/http@1.1.0 => RequestSynchronizerResolver => wrapper (wrap://plugin/http@1.1.0)", + [ + "wrap://plugin/http@1.1.0 => ResolutionResultCacheResolver (Cache) => wrapper (wrap://plugin/http@1.1.0)" + ] + ], + "wrap://plugin/http@1.1.0 => Client.invokeWrapper" + ], + "wrap://embed/ipfs-http-client@1.0.0 => Client.invokeWrapper", + [ + "wrap://ens/wraps.eth:http@1.1.0 => Client.loadWrapper => wrapper (wrap://plugin/http@1.1.0)", + [ + "wrap://ens/wraps.eth:http@1.1.0 => RequestSynchronizerResolver => uri (wrap://plugin/http@1.1.0)", + [ + "wrap://ens/wraps.eth:http@1.1.0 => ResolutionResultCacheResolver (Cache) => uri (wrap://plugin/http@1.1.0)" + ], + "wrap://plugin/http@1.1.0 => RequestSynchronizerResolver => wrapper (wrap://plugin/http@1.1.0)", + [ + "wrap://plugin/http@1.1.0 => ResolutionResultCacheResolver (Cache) => wrapper (wrap://plugin/http@1.1.0)" + ] + ], + "wrap://plugin/http@1.1.0 => Client.invokeWrapper" + ] + ], "wrap://plugin/concurrent@1.0.0 => Client.loadWrapper => wrapper (wrap://plugin/concurrent@1.0.0)", [ "wrap://plugin/concurrent@1.0.0 => RequestSynchronizerResolver => wrapper (wrap://plugin/concurrent@1.0.0)", @@ -211,6 +291,49 @@ ] ], "wrap://plugin/concurrent@1.0.0 => Client.invokeWrapper", + [ + "wrap://embed/ipfs-http-client@1.0.0 => Client.loadWrapper => wrapper (wrap://embed/ipfs-http-client@1.0.0)", + [ + "wrap://embed/ipfs-http-client@1.0.0 => RequestSynchronizerResolver => wrapper (wrap://embed/ipfs-http-client@1.0.0)", + [ + "wrap://embed/ipfs-http-client@1.0.0 => ResolutionResultCacheResolver (Cache) => wrapper (wrap://embed/ipfs-http-client@1.0.0)" + ] + ], + "wrap://embed/ipfs-http-client@1.0.0 => Client.loadWrapper => wrapper (wrap://embed/ipfs-http-client@1.0.0)", + [ + "wrap://embed/ipfs-http-client@1.0.0 => RequestSynchronizerResolver (Cache) => wrapper (wrap://embed/ipfs-http-client@1.0.0)" + ], + "wrap://embed/ipfs-http-client@1.0.0 => Client.invokeWrapper", + [ + "wrap://ens/wraps.eth:http@1.1.0 => Client.loadWrapper => wrapper (wrap://plugin/http@1.1.0)", + [ + "wrap://ens/wraps.eth:http@1.1.0 => RequestSynchronizerResolver => uri (wrap://plugin/http@1.1.0)", + [ + "wrap://ens/wraps.eth:http@1.1.0 => ResolutionResultCacheResolver (Cache) => uri (wrap://plugin/http@1.1.0)" + ], + "wrap://plugin/http@1.1.0 => RequestSynchronizerResolver => wrapper (wrap://plugin/http@1.1.0)", + [ + "wrap://plugin/http@1.1.0 => ResolutionResultCacheResolver (Cache) => wrapper (wrap://plugin/http@1.1.0)" + ] + ], + "wrap://plugin/http@1.1.0 => Client.invokeWrapper" + ], + "wrap://embed/ipfs-http-client@1.0.0 => Client.invokeWrapper", + [ + "wrap://ens/wraps.eth:http@1.1.0 => Client.loadWrapper => wrapper (wrap://plugin/http@1.1.0)", + [ + "wrap://ens/wraps.eth:http@1.1.0 => RequestSynchronizerResolver => uri (wrap://plugin/http@1.1.0)", + [ + "wrap://ens/wraps.eth:http@1.1.0 => ResolutionResultCacheResolver (Cache) => uri (wrap://plugin/http@1.1.0)" + ], + "wrap://plugin/http@1.1.0 => RequestSynchronizerResolver => wrapper (wrap://plugin/http@1.1.0)", + [ + "wrap://plugin/http@1.1.0 => ResolutionResultCacheResolver (Cache) => wrapper (wrap://plugin/http@1.1.0)" + ] + ], + "wrap://plugin/http@1.1.0 => Client.invokeWrapper" + ] + ], "wrap://plugin/concurrent@1.0.0 => Client.loadWrapper => wrapper (wrap://plugin/concurrent@1.0.0)", [ "wrap://plugin/concurrent@1.0.0 => RequestSynchronizerResolver => wrapper (wrap://plugin/concurrent@1.0.0)", @@ -264,6 +387,49 @@ ] ], "wrap://plugin/concurrent@1.0.0 => Client.invokeWrapper", + [ + "wrap://embed/ipfs-http-client@1.0.0 => Client.loadWrapper => wrapper (wrap://embed/ipfs-http-client@1.0.0)", + [ + "wrap://embed/ipfs-http-client@1.0.0 => RequestSynchronizerResolver => wrapper (wrap://embed/ipfs-http-client@1.0.0)", + [ + "wrap://embed/ipfs-http-client@1.0.0 => ResolutionResultCacheResolver (Cache) => wrapper (wrap://embed/ipfs-http-client@1.0.0)" + ] + ], + "wrap://embed/ipfs-http-client@1.0.0 => Client.loadWrapper => wrapper (wrap://embed/ipfs-http-client@1.0.0)", + [ + "wrap://embed/ipfs-http-client@1.0.0 => RequestSynchronizerResolver (Cache) => wrapper (wrap://embed/ipfs-http-client@1.0.0)" + ], + "wrap://embed/ipfs-http-client@1.0.0 => Client.invokeWrapper", + [ + "wrap://ens/wraps.eth:http@1.1.0 => Client.loadWrapper => wrapper (wrap://plugin/http@1.1.0)", + [ + "wrap://ens/wraps.eth:http@1.1.0 => RequestSynchronizerResolver => uri (wrap://plugin/http@1.1.0)", + [ + "wrap://ens/wraps.eth:http@1.1.0 => ResolutionResultCacheResolver (Cache) => uri (wrap://plugin/http@1.1.0)" + ], + "wrap://plugin/http@1.1.0 => RequestSynchronizerResolver => wrapper (wrap://plugin/http@1.1.0)", + [ + "wrap://plugin/http@1.1.0 => ResolutionResultCacheResolver (Cache) => wrapper (wrap://plugin/http@1.1.0)" + ] + ], + "wrap://plugin/http@1.1.0 => Client.invokeWrapper" + ], + "wrap://embed/ipfs-http-client@1.0.0 => Client.invokeWrapper", + [ + "wrap://ens/wraps.eth:http@1.1.0 => Client.loadWrapper => wrapper (wrap://plugin/http@1.1.0)", + [ + "wrap://ens/wraps.eth:http@1.1.0 => RequestSynchronizerResolver => uri (wrap://plugin/http@1.1.0)", + [ + "wrap://ens/wraps.eth:http@1.1.0 => ResolutionResultCacheResolver (Cache) => uri (wrap://plugin/http@1.1.0)" + ], + "wrap://plugin/http@1.1.0 => RequestSynchronizerResolver => wrapper (wrap://plugin/http@1.1.0)", + [ + "wrap://plugin/http@1.1.0 => ResolutionResultCacheResolver (Cache) => wrapper (wrap://plugin/http@1.1.0)" + ] + ], + "wrap://plugin/http@1.1.0 => Client.invokeWrapper" + ] + ], "wrap://plugin/concurrent@1.0.0 => Client.loadWrapper => wrapper (wrap://plugin/concurrent@1.0.0)", [ "wrap://plugin/concurrent@1.0.0 => RequestSynchronizerResolver => wrapper (wrap://plugin/concurrent@1.0.0)", @@ -341,6 +507,49 @@ ] ], "wrap://plugin/concurrent@1.0.0 => Client.invokeWrapper", + [ + "wrap://embed/ipfs-http-client@1.0.0 => Client.loadWrapper => wrapper (wrap://embed/ipfs-http-client@1.0.0)", + [ + "wrap://embed/ipfs-http-client@1.0.0 => RequestSynchronizerResolver => wrapper (wrap://embed/ipfs-http-client@1.0.0)", + [ + "wrap://embed/ipfs-http-client@1.0.0 => ResolutionResultCacheResolver (Cache) => wrapper (wrap://embed/ipfs-http-client@1.0.0)" + ] + ], + "wrap://embed/ipfs-http-client@1.0.0 => Client.loadWrapper => wrapper (wrap://embed/ipfs-http-client@1.0.0)", + [ + "wrap://embed/ipfs-http-client@1.0.0 => RequestSynchronizerResolver (Cache) => wrapper (wrap://embed/ipfs-http-client@1.0.0)" + ], + "wrap://embed/ipfs-http-client@1.0.0 => Client.invokeWrapper", + [ + "wrap://ens/wraps.eth:http@1.1.0 => Client.loadWrapper => wrapper (wrap://plugin/http@1.1.0)", + [ + "wrap://ens/wraps.eth:http@1.1.0 => RequestSynchronizerResolver => uri (wrap://plugin/http@1.1.0)", + [ + "wrap://ens/wraps.eth:http@1.1.0 => ResolutionResultCacheResolver (Cache) => uri (wrap://plugin/http@1.1.0)" + ], + "wrap://plugin/http@1.1.0 => RequestSynchronizerResolver => wrapper (wrap://plugin/http@1.1.0)", + [ + "wrap://plugin/http@1.1.0 => ResolutionResultCacheResolver (Cache) => wrapper (wrap://plugin/http@1.1.0)" + ] + ], + "wrap://plugin/http@1.1.0 => Client.invokeWrapper" + ], + "wrap://embed/ipfs-http-client@1.0.0 => Client.invokeWrapper", + [ + "wrap://ens/wraps.eth:http@1.1.0 => Client.loadWrapper => wrapper (wrap://plugin/http@1.1.0)", + [ + "wrap://ens/wraps.eth:http@1.1.0 => RequestSynchronizerResolver => uri (wrap://plugin/http@1.1.0)", + [ + "wrap://ens/wraps.eth:http@1.1.0 => ResolutionResultCacheResolver (Cache) => uri (wrap://plugin/http@1.1.0)" + ], + "wrap://plugin/http@1.1.0 => RequestSynchronizerResolver => wrapper (wrap://plugin/http@1.1.0)", + [ + "wrap://plugin/http@1.1.0 => ResolutionResultCacheResolver (Cache) => wrapper (wrap://plugin/http@1.1.0)" + ] + ], + "wrap://plugin/http@1.1.0 => Client.invokeWrapper" + ] + ], "wrap://plugin/concurrent@1.0.0 => Client.loadWrapper => wrapper (wrap://plugin/concurrent@1.0.0)", [ "wrap://plugin/concurrent@1.0.0 => RequestSynchronizerResolver => wrapper (wrap://plugin/concurrent@1.0.0)", @@ -487,6 +696,34 @@ ] ], "wrap://plugin/concurrent@1.0.0 => Client.invokeWrapper", + [ + "wrap://embed/ipfs-http-client@1.0.0 => Client.loadWrapper => wrapper (wrap://embed/ipfs-http-client@1.0.0)", + [ + "wrap://embed/ipfs-http-client@1.0.0 => RequestSynchronizerResolver => wrapper (wrap://embed/ipfs-http-client@1.0.0)", + [ + "wrap://embed/ipfs-http-client@1.0.0 => ResolutionResultCacheResolver (Cache) => wrapper (wrap://embed/ipfs-http-client@1.0.0)" + ] + ], + "wrap://embed/ipfs-http-client@1.0.0 => Client.loadWrapper => wrapper (wrap://embed/ipfs-http-client@1.0.0)", + [ + "wrap://embed/ipfs-http-client@1.0.0 => RequestSynchronizerResolver (Cache) => wrapper (wrap://embed/ipfs-http-client@1.0.0)" + ], + "wrap://embed/ipfs-http-client@1.0.0 => Client.invokeWrapper", + [ + "wrap://ens/wraps.eth:http@1.1.0 => Client.loadWrapper => wrapper (wrap://plugin/http@1.1.0)", + [ + "wrap://ens/wraps.eth:http@1.1.0 => RequestSynchronizerResolver => uri (wrap://plugin/http@1.1.0)", + [ + "wrap://ens/wraps.eth:http@1.1.0 => ResolutionResultCacheResolver (Cache) => uri (wrap://plugin/http@1.1.0)" + ], + "wrap://plugin/http@1.1.0 => RequestSynchronizerResolver => wrapper (wrap://plugin/http@1.1.0)", + [ + "wrap://plugin/http@1.1.0 => ResolutionResultCacheResolver (Cache) => wrapper (wrap://plugin/http@1.1.0)" + ] + ], + "wrap://plugin/http@1.1.0 => Client.invokeWrapper" + ] + ], "wrap://plugin/concurrent@1.0.0 => Client.loadWrapper => wrapper (wrap://plugin/concurrent@1.0.0)", [ "wrap://plugin/concurrent@1.0.0 => RequestSynchronizerResolver => wrapper (wrap://plugin/concurrent@1.0.0)", @@ -502,4 +739,4 @@ ] ] ] -] +] \ No newline at end of file From d7d3537cd53e3bff1dff2dcff1425c42573ed4d5 Mon Sep 17 00:00:00 2001 From: dOrgJelli Date: Tue, 25 Apr 2023 18:49:39 -0500 Subject: [PATCH 29/31] chore: debugging CI --- .github/workflows/ci-javascript.yaml | 16 +++------------- 1 file changed, 3 insertions(+), 13 deletions(-) diff --git a/.github/workflows/ci-javascript.yaml b/.github/workflows/ci-javascript.yaml index 723b35a6c..9645a1317 100644 --- a/.github/workflows/ci-javascript.yaml +++ b/.github/workflows/ci-javascript.yaml @@ -101,19 +101,8 @@ jobs: with: node-version: '${{ steps.nvm.outputs.NVMRC }}' - - name: Get yarn cache directory path - id: yarn-cache-dir-path - run: echo "::set-output name=dir::$(yarn cache dir)" - - - uses: actions/cache@v2 - with: - path: ${{ steps.yarn-cache-dir-path.outputs.dir }} - key: ${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }} - restore-keys: | - ${{ runner.os }}-yarn- - - name: Install dependencies - run: yarn install --nonInteractive --frozen-lockfile --prefer-offline + run: yarn install --nonInteractive --frozen-lockfile - name: Build run: yarn build @@ -132,4 +121,5 @@ jobs: mv wrappers packages/test-cases - name: Test - run: yarn test + run: yarn test ./src/__tests__/core/uri-resolution/uri-resolution.spec.ts + working-directory: ./packages/client From 848c1bedb644ab11cac26d4bf9e2f8b85a9e70bd Mon Sep 17 00:00:00 2001 From: dOrgJelli Date: Tue, 25 Apr 2023 19:05:40 -0500 Subject: [PATCH 30/31] chore: remove history check from client uri-resolution test --- .github/workflows/ci-javascript.yaml | 2 +- .../uri-resolution.spec.ts | 45 +- .../core/uri-resolution/histories/sanity.json | 742 ------------------ 3 files changed, 4 insertions(+), 785 deletions(-) rename packages/client/src/__tests__/core/{uri-resolution => }/uri-resolution.spec.ts (60%) delete mode 100644 packages/client/src/__tests__/core/uri-resolution/histories/sanity.json diff --git a/.github/workflows/ci-javascript.yaml b/.github/workflows/ci-javascript.yaml index 9645a1317..7f0193c96 100644 --- a/.github/workflows/ci-javascript.yaml +++ b/.github/workflows/ci-javascript.yaml @@ -121,5 +121,5 @@ jobs: mv wrappers packages/test-cases - name: Test - run: yarn test ./src/__tests__/core/uri-resolution/uri-resolution.spec.ts + run: yarn test ./src/__tests__/core/uri-resolution.spec.ts working-directory: ./packages/client diff --git a/packages/client/src/__tests__/core/uri-resolution/uri-resolution.spec.ts b/packages/client/src/__tests__/core/uri-resolution.spec.ts similarity index 60% rename from packages/client/src/__tests__/core/uri-resolution/uri-resolution.spec.ts rename to packages/client/src/__tests__/core/uri-resolution.spec.ts index 4cd569479..4e233f5bc 100644 --- a/packages/client/src/__tests__/core/uri-resolution/uri-resolution.spec.ts +++ b/packages/client/src/__tests__/core/uri-resolution.spec.ts @@ -1,27 +1,18 @@ -import { GetPathToTestWrappers } from "@polywrap/test-cases"; import { Uri, - IUriResolutionStep, UriPackageOrWrapper, UriResolutionContext, - buildCleanUriHistory, UriResolutionResult, } from "@polywrap/core-js"; -import fs from "fs"; import { Result } from "@polywrap/result"; -import { PolywrapClient, ClientConfigBuilder } from "../../../"; +import { PolywrapClient, ClientConfigBuilder } from "../../"; jest.setTimeout(200000); -const expectResultWithHistory = async ( +const expectResolutionResult = async ( receivedResult: Result, expectedResult: Result, - uriHistory: IUriResolutionStep[], - historyFileName: string ): Promise => { - if (historyFileName && uriHistory) { - await expectHistory(uriHistory, historyFileName); - } expect(expectedResult.ok).toEqual(receivedResult.ok); @@ -36,34 +27,6 @@ const expectResultWithHistory = async ( } }; -const expectHistory = async ( - receivedHistory: IUriResolutionStep[] | undefined, - historyFileName: string -): Promise => { - if (!receivedHistory) { - fail("History is not defined"); - } - - let expectedCleanHistory = await fs.promises.readFile( - `${__dirname}/histories/${historyFileName}.json`, - "utf-8" - ); - - const receivedCleanHistory = replaceAll( - JSON.stringify(buildCleanUriHistory(receivedHistory), null, 2), - `${GetPathToTestWrappers()}`, - "$root-wrapper-dir" - ); - - expect(receivedCleanHistory).toEqual( - JSON.stringify(JSON.parse(expectedCleanHistory), null, 2) - ); -}; - -function replaceAll(str: string, strToReplace: string, replaceStr: string) { - return str.replace(new RegExp(strToReplace, "g"), replaceStr); -} - describe("URI resolution", () => { it("sanity", async () => { const uri = new Uri("ens/wraps.eth:uri-resolver-ext@1.1.0"); @@ -81,11 +44,9 @@ describe("URI resolution", () => { expectResult.value.type = "wrapper"; } - await expectResultWithHistory( + await expectResolutionResult( result, expectResult, - resolutionContext.getHistory(), - "sanity" ); }); diff --git a/packages/client/src/__tests__/core/uri-resolution/histories/sanity.json b/packages/client/src/__tests__/core/uri-resolution/histories/sanity.json deleted file mode 100644 index c5c068920..000000000 --- a/packages/client/src/__tests__/core/uri-resolution/histories/sanity.json +++ /dev/null @@ -1,742 +0,0 @@ -[ - "wrap://ens/wraps.eth:uri-resolver-ext@1.1.0 => RequestSynchronizerResolver => uri (wrap://ipfs/QmSAXrSLcmGUkQRrApAtG5qTPmuRMMX2Zf1wihpguDQfbm)", - [ - "wrap://ens/wraps.eth:uri-resolver-ext@1.1.0 => ResolutionResultCacheResolver => uri (wrap://ipfs/QmSAXrSLcmGUkQRrApAtG5qTPmuRMMX2Zf1wihpguDQfbm)", - [ - "wrap://ens/wraps.eth:uri-resolver-ext@1.1.0 => PackageToWrapperResolver => uri (wrap://ipfs/QmSAXrSLcmGUkQRrApAtG5qTPmuRMMX2Zf1wihpguDQfbm)", - [ - "wrap://ens/wraps.eth:uri-resolver-ext@1.1.0 => UriResolverAggregator => uri (wrap://ipfs/QmSAXrSLcmGUkQRrApAtG5qTPmuRMMX2Zf1wihpguDQfbm)", - [ - "wrap://ens/wraps.eth:uri-resolver-ext@1.1.0 => StaticResolver - Miss", - "wrap://ens/wraps.eth:uri-resolver-ext@1.1.0 => ExtendableUriResolver => uri (wrap://ipfs/QmSAXrSLcmGUkQRrApAtG5qTPmuRMMX2Zf1wihpguDQfbm)", - [ - "wrap://ens/wraps.eth:uri-resolver-ext@1.1.0 => ResolverExtension (wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1)", - [ - "wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1 => Client.loadWrapper => wrapper (wrap://embed/async-ipfs-uri-resolver-ext@1.0.1)", - [ - "wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1 => RequestSynchronizerResolver => uri (wrap://embed/async-ipfs-uri-resolver-ext@1.0.1)", - [ - "wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1 => ResolutionResultCacheResolver => uri (wrap://embed/async-ipfs-uri-resolver-ext@1.0.1)", - [ - "wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1 => PackageToWrapperResolver => uri (wrap://embed/async-ipfs-uri-resolver-ext@1.0.1)", - [ - "wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1 => UriResolverAggregator => uri (wrap://embed/async-ipfs-uri-resolver-ext@1.0.1)", - [ - "wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1 => StaticResolver - Redirect (wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1 - wrap://embed/async-ipfs-uri-resolver-ext@1.0.1) => uri (wrap://embed/async-ipfs-uri-resolver-ext@1.0.1)" - ] - ] - ] - ], - "wrap://embed/async-ipfs-uri-resolver-ext@1.0.1 => RequestSynchronizerResolver => wrapper (wrap://embed/async-ipfs-uri-resolver-ext@1.0.1)", - [ - "wrap://embed/async-ipfs-uri-resolver-ext@1.0.1 => ResolutionResultCacheResolver => wrapper (wrap://embed/async-ipfs-uri-resolver-ext@1.0.1)", - [ - "wrap://embed/async-ipfs-uri-resolver-ext@1.0.1 => PackageToWrapperResolver => wrapper (wrap://embed/async-ipfs-uri-resolver-ext@1.0.1)", - [ - "wrap://embed/async-ipfs-uri-resolver-ext@1.0.1 => UriResolverAggregator => package (wrap://embed/async-ipfs-uri-resolver-ext@1.0.1)", - [ - "wrap://embed/async-ipfs-uri-resolver-ext@1.0.1 => StaticResolver - Package (wrap://embed/async-ipfs-uri-resolver-ext@1.0.1) => package (wrap://embed/async-ipfs-uri-resolver-ext@1.0.1)" - ] - ] - ] - ] - ], - "wrap://embed/async-ipfs-uri-resolver-ext@1.0.1 => Client.invokeWrapper" - ], - "wrap://ens/wraps.eth:uri-resolver-ext@1.1.0 => ResolverExtension (wrap://ens/wraps.eth:ens-text-record-uri-resolver-ext@1.0.1) => uri (wrap://ipfs/QmSAXrSLcmGUkQRrApAtG5qTPmuRMMX2Zf1wihpguDQfbm)", - [ - "wrap://ens/wraps.eth:ens-text-record-uri-resolver-ext@1.0.1 => Client.loadWrapper => wrapper (wrap://ipfs/QmXcHWtKkfrFmcczdMSXH7udsSyV3UJeoWzkaUqGBm1oYs)", - [ - "wrap://ens/wraps.eth:ens-text-record-uri-resolver-ext@1.0.1 => RequestSynchronizerResolver => uri (wrap://ipfs/QmXcHWtKkfrFmcczdMSXH7udsSyV3UJeoWzkaUqGBm1oYs)", - [ - "wrap://ens/wraps.eth:ens-text-record-uri-resolver-ext@1.0.1 => ResolutionResultCacheResolver => uri (wrap://ipfs/QmXcHWtKkfrFmcczdMSXH7udsSyV3UJeoWzkaUqGBm1oYs)", - [ - "wrap://ens/wraps.eth:ens-text-record-uri-resolver-ext@1.0.1 => PackageToWrapperResolver => uri (wrap://ipfs/QmXcHWtKkfrFmcczdMSXH7udsSyV3UJeoWzkaUqGBm1oYs)", - [ - "wrap://ens/wraps.eth:ens-text-record-uri-resolver-ext@1.0.1 => UriResolverAggregator => uri (wrap://ipfs/QmXcHWtKkfrFmcczdMSXH7udsSyV3UJeoWzkaUqGBm1oYs)", - [ - "wrap://ens/wraps.eth:ens-text-record-uri-resolver-ext@1.0.1 => StaticResolver - Redirect (wrap://ens/wraps.eth:ens-text-record-uri-resolver-ext@1.0.1 - wrap://ipfs/QmXcHWtKkfrFmcczdMSXH7udsSyV3UJeoWzkaUqGBm1oYs) => uri (wrap://ipfs/QmXcHWtKkfrFmcczdMSXH7udsSyV3UJeoWzkaUqGBm1oYs)" - ] - ] - ] - ], - "wrap://ipfs/QmXcHWtKkfrFmcczdMSXH7udsSyV3UJeoWzkaUqGBm1oYs => RequestSynchronizerResolver => wrapper (wrap://ipfs/QmXcHWtKkfrFmcczdMSXH7udsSyV3UJeoWzkaUqGBm1oYs)", - [ - "wrap://ipfs/QmXcHWtKkfrFmcczdMSXH7udsSyV3UJeoWzkaUqGBm1oYs => ResolutionResultCacheResolver => wrapper (wrap://ipfs/QmXcHWtKkfrFmcczdMSXH7udsSyV3UJeoWzkaUqGBm1oYs)", - [ - "wrap://ipfs/QmXcHWtKkfrFmcczdMSXH7udsSyV3UJeoWzkaUqGBm1oYs => PackageToWrapperResolver => wrapper (wrap://ipfs/QmXcHWtKkfrFmcczdMSXH7udsSyV3UJeoWzkaUqGBm1oYs)", - [ - "wrap://ipfs/QmXcHWtKkfrFmcczdMSXH7udsSyV3UJeoWzkaUqGBm1oYs => UriResolverAggregator => package (wrap://ipfs/QmXcHWtKkfrFmcczdMSXH7udsSyV3UJeoWzkaUqGBm1oYs)", - [ - "wrap://ipfs/QmXcHWtKkfrFmcczdMSXH7udsSyV3UJeoWzkaUqGBm1oYs => StaticResolver - Miss", - "wrap://ipfs/QmXcHWtKkfrFmcczdMSXH7udsSyV3UJeoWzkaUqGBm1oYs => ExtendableUriResolver => package (wrap://ipfs/QmXcHWtKkfrFmcczdMSXH7udsSyV3UJeoWzkaUqGBm1oYs)", - [ - "wrap://ipfs/QmXcHWtKkfrFmcczdMSXH7udsSyV3UJeoWzkaUqGBm1oYs => ResolverExtension (wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1) => package (wrap://ipfs/QmXcHWtKkfrFmcczdMSXH7udsSyV3UJeoWzkaUqGBm1oYs)", - [ - "wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1 => Client.loadWrapper => wrapper (wrap://embed/async-ipfs-uri-resolver-ext@1.0.1)", - [ - "wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1 => RequestSynchronizerResolver => uri (wrap://embed/async-ipfs-uri-resolver-ext@1.0.1)", - [ - "wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1 => ResolutionResultCacheResolver (Cache) => uri (wrap://embed/async-ipfs-uri-resolver-ext@1.0.1)" - ], - "wrap://embed/async-ipfs-uri-resolver-ext@1.0.1 => RequestSynchronizerResolver => wrapper (wrap://embed/async-ipfs-uri-resolver-ext@1.0.1)", - [ - "wrap://embed/async-ipfs-uri-resolver-ext@1.0.1 => ResolutionResultCacheResolver (Cache) => wrapper (wrap://embed/async-ipfs-uri-resolver-ext@1.0.1)" - ] - ], - "wrap://embed/async-ipfs-uri-resolver-ext@1.0.1 => Client.invokeWrapper", - [ - "wrap://plugin/concurrent@1.0.0 => Client.loadWrapper => wrapper (wrap://plugin/concurrent@1.0.0)", - [ - "wrap://plugin/concurrent@1.0.0 => RequestSynchronizerResolver => wrapper (wrap://plugin/concurrent@1.0.0)", - [ - "wrap://plugin/concurrent@1.0.0 => ResolutionResultCacheResolver => wrapper (wrap://plugin/concurrent@1.0.0)", - [ - "wrap://plugin/concurrent@1.0.0 => PackageToWrapperResolver => wrapper (wrap://plugin/concurrent@1.0.0)", - [ - "wrap://plugin/concurrent@1.0.0 => UriResolverAggregator => package (wrap://plugin/concurrent@1.0.0)", - [ - "wrap://plugin/concurrent@1.0.0 => StaticResolver - Package (wrap://plugin/concurrent@1.0.0) => package (wrap://plugin/concurrent@1.0.0)" - ] - ] - ] - ] - ], - "wrap://plugin/concurrent@1.0.0 => Client.invokeWrapper", - [ - "wrap://embed/ipfs-http-client@1.0.0 => Client.loadWrapper => wrapper (wrap://embed/ipfs-http-client@1.0.0)", - [ - "wrap://embed/ipfs-http-client@1.0.0 => RequestSynchronizerResolver => wrapper (wrap://embed/ipfs-http-client@1.0.0)", - [ - "wrap://embed/ipfs-http-client@1.0.0 => ResolutionResultCacheResolver => wrapper (wrap://embed/ipfs-http-client@1.0.0)", - [ - "wrap://embed/ipfs-http-client@1.0.0 => PackageToWrapperResolver => wrapper (wrap://embed/ipfs-http-client@1.0.0)", - [ - "wrap://embed/ipfs-http-client@1.0.0 => UriResolverAggregator => package (wrap://embed/ipfs-http-client@1.0.0)", - [ - "wrap://embed/ipfs-http-client@1.0.0 => StaticResolver - Package (wrap://embed/ipfs-http-client@1.0.0) => package (wrap://embed/ipfs-http-client@1.0.0)" - ] - ] - ] - ] - ], - "wrap://embed/ipfs-http-client@1.0.0 => Client.loadWrapper => wrapper (wrap://embed/ipfs-http-client@1.0.0)", - [ - "wrap://embed/ipfs-http-client@1.0.0 => RequestSynchronizerResolver (Cache) => wrapper (wrap://embed/ipfs-http-client@1.0.0)" - ], - "wrap://embed/ipfs-http-client@1.0.0 => Client.invokeWrapper", - [ - "wrap://ens/wraps.eth:http@1.1.0 => Client.loadWrapper => wrapper (wrap://plugin/http@1.1.0)", - [ - "wrap://ens/wraps.eth:http@1.1.0 => RequestSynchronizerResolver => uri (wrap://plugin/http@1.1.0)", - [ - "wrap://ens/wraps.eth:http@1.1.0 => ResolutionResultCacheResolver (Cache) => uri (wrap://plugin/http@1.1.0)" - ], - "wrap://plugin/http@1.1.0 => RequestSynchronizerResolver => wrapper (wrap://plugin/http@1.1.0)", - [ - "wrap://plugin/http@1.1.0 => ResolutionResultCacheResolver (Cache) => wrapper (wrap://plugin/http@1.1.0)" - ] - ], - "wrap://plugin/http@1.1.0 => Client.invokeWrapper" - ] - ], - "wrap://plugin/concurrent@1.0.0 => Client.loadWrapper => wrapper (wrap://plugin/concurrent@1.0.0)", - [ - "wrap://plugin/concurrent@1.0.0 => RequestSynchronizerResolver => wrapper (wrap://plugin/concurrent@1.0.0)", - [ - "wrap://plugin/concurrent@1.0.0 => ResolutionResultCacheResolver (Cache) => wrapper (wrap://plugin/concurrent@1.0.0)" - ] - ], - "wrap://plugin/concurrent@1.0.0 => Client.invokeWrapper" - ] - ] - ] - ] - ] - ] - ] - ], - "wrap://ipfs/QmXcHWtKkfrFmcczdMSXH7udsSyV3UJeoWzkaUqGBm1oYs => Client.invokeWrapper", - [ - "wrap://ipfs/QmWG8NJnvGMCosxaUWuRna33MSDR331rByGTdy4EDsVjNL => Client.loadWrapper => wrapper (wrap://ipfs/QmWG8NJnvGMCosxaUWuRna33MSDR331rByGTdy4EDsVjNL)", - [ - "wrap://ipfs/QmWG8NJnvGMCosxaUWuRna33MSDR331rByGTdy4EDsVjNL => RequestSynchronizerResolver => wrapper (wrap://ipfs/QmWG8NJnvGMCosxaUWuRna33MSDR331rByGTdy4EDsVjNL)", - [ - "wrap://ipfs/QmWG8NJnvGMCosxaUWuRna33MSDR331rByGTdy4EDsVjNL => ResolutionResultCacheResolver => wrapper (wrap://ipfs/QmWG8NJnvGMCosxaUWuRna33MSDR331rByGTdy4EDsVjNL)", - [ - "wrap://ipfs/QmWG8NJnvGMCosxaUWuRna33MSDR331rByGTdy4EDsVjNL => PackageToWrapperResolver => wrapper (wrap://ipfs/QmWG8NJnvGMCosxaUWuRna33MSDR331rByGTdy4EDsVjNL)", - [ - "wrap://ipfs/QmWG8NJnvGMCosxaUWuRna33MSDR331rByGTdy4EDsVjNL => UriResolverAggregator => package (wrap://ipfs/QmWG8NJnvGMCosxaUWuRna33MSDR331rByGTdy4EDsVjNL)", - [ - "wrap://ipfs/QmWG8NJnvGMCosxaUWuRna33MSDR331rByGTdy4EDsVjNL => StaticResolver - Miss", - "wrap://ipfs/QmWG8NJnvGMCosxaUWuRna33MSDR331rByGTdy4EDsVjNL => ExtendableUriResolver => package (wrap://ipfs/QmWG8NJnvGMCosxaUWuRna33MSDR331rByGTdy4EDsVjNL)", - [ - "wrap://ipfs/QmWG8NJnvGMCosxaUWuRna33MSDR331rByGTdy4EDsVjNL => ResolverExtension (wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1) => package (wrap://ipfs/QmWG8NJnvGMCosxaUWuRna33MSDR331rByGTdy4EDsVjNL)", - [ - "wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1 => Client.loadWrapper => wrapper (wrap://embed/async-ipfs-uri-resolver-ext@1.0.1)", - [ - "wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1 => RequestSynchronizerResolver => uri (wrap://embed/async-ipfs-uri-resolver-ext@1.0.1)", - [ - "wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1 => ResolutionResultCacheResolver (Cache) => uri (wrap://embed/async-ipfs-uri-resolver-ext@1.0.1)" - ], - "wrap://embed/async-ipfs-uri-resolver-ext@1.0.1 => RequestSynchronizerResolver => wrapper (wrap://embed/async-ipfs-uri-resolver-ext@1.0.1)", - [ - "wrap://embed/async-ipfs-uri-resolver-ext@1.0.1 => ResolutionResultCacheResolver (Cache) => wrapper (wrap://embed/async-ipfs-uri-resolver-ext@1.0.1)" - ] - ], - "wrap://embed/async-ipfs-uri-resolver-ext@1.0.1 => Client.invokeWrapper", - [ - "wrap://plugin/concurrent@1.0.0 => Client.loadWrapper => wrapper (wrap://plugin/concurrent@1.0.0)", - [ - "wrap://plugin/concurrent@1.0.0 => RequestSynchronizerResolver => wrapper (wrap://plugin/concurrent@1.0.0)", - [ - "wrap://plugin/concurrent@1.0.0 => ResolutionResultCacheResolver (Cache) => wrapper (wrap://plugin/concurrent@1.0.0)" - ] - ], - "wrap://plugin/concurrent@1.0.0 => Client.invokeWrapper", - [ - "wrap://embed/ipfs-http-client@1.0.0 => Client.loadWrapper => wrapper (wrap://embed/ipfs-http-client@1.0.0)", - [ - "wrap://embed/ipfs-http-client@1.0.0 => RequestSynchronizerResolver => wrapper (wrap://embed/ipfs-http-client@1.0.0)", - [ - "wrap://embed/ipfs-http-client@1.0.0 => ResolutionResultCacheResolver (Cache) => wrapper (wrap://embed/ipfs-http-client@1.0.0)" - ] - ], - "wrap://embed/ipfs-http-client@1.0.0 => Client.loadWrapper => wrapper (wrap://embed/ipfs-http-client@1.0.0)", - [ - "wrap://embed/ipfs-http-client@1.0.0 => RequestSynchronizerResolver (Cache) => wrapper (wrap://embed/ipfs-http-client@1.0.0)" - ], - "wrap://embed/ipfs-http-client@1.0.0 => Client.invokeWrapper", - [ - "wrap://ens/wraps.eth:http@1.1.0 => Client.loadWrapper => wrapper (wrap://plugin/http@1.1.0)", - [ - "wrap://ens/wraps.eth:http@1.1.0 => RequestSynchronizerResolver => uri (wrap://plugin/http@1.1.0)", - [ - "wrap://ens/wraps.eth:http@1.1.0 => ResolutionResultCacheResolver (Cache) => uri (wrap://plugin/http@1.1.0)" - ], - "wrap://plugin/http@1.1.0 => RequestSynchronizerResolver => wrapper (wrap://plugin/http@1.1.0)", - [ - "wrap://plugin/http@1.1.0 => ResolutionResultCacheResolver (Cache) => wrapper (wrap://plugin/http@1.1.0)" - ] - ], - "wrap://plugin/http@1.1.0 => Client.invokeWrapper" - ], - "wrap://embed/ipfs-http-client@1.0.0 => Client.invokeWrapper", - [ - "wrap://ens/wraps.eth:http@1.1.0 => Client.loadWrapper => wrapper (wrap://plugin/http@1.1.0)", - [ - "wrap://ens/wraps.eth:http@1.1.0 => RequestSynchronizerResolver => uri (wrap://plugin/http@1.1.0)", - [ - "wrap://ens/wraps.eth:http@1.1.0 => ResolutionResultCacheResolver (Cache) => uri (wrap://plugin/http@1.1.0)" - ], - "wrap://plugin/http@1.1.0 => RequestSynchronizerResolver => wrapper (wrap://plugin/http@1.1.0)", - [ - "wrap://plugin/http@1.1.0 => ResolutionResultCacheResolver (Cache) => wrapper (wrap://plugin/http@1.1.0)" - ] - ], - "wrap://plugin/http@1.1.0 => Client.invokeWrapper" - ] - ], - "wrap://plugin/concurrent@1.0.0 => Client.loadWrapper => wrapper (wrap://plugin/concurrent@1.0.0)", - [ - "wrap://plugin/concurrent@1.0.0 => RequestSynchronizerResolver => wrapper (wrap://plugin/concurrent@1.0.0)", - [ - "wrap://plugin/concurrent@1.0.0 => ResolutionResultCacheResolver (Cache) => wrapper (wrap://plugin/concurrent@1.0.0)" - ] - ], - "wrap://plugin/concurrent@1.0.0 => Client.invokeWrapper" - ] - ] - ] - ] - ] - ] - ] - ], - "wrap://ipfs/QmWG8NJnvGMCosxaUWuRna33MSDR331rByGTdy4EDsVjNL => Client.invokeWrapper", - [ - "wrap://ipfs/QmPL9Njg3rGkpoJyoy8pZ5fTavjvHxNuuuiGRApzyGESZB => Client.loadWrapper => wrapper (wrap://ipfs/QmPL9Njg3rGkpoJyoy8pZ5fTavjvHxNuuuiGRApzyGESZB)", - [ - "wrap://ipfs/QmPL9Njg3rGkpoJyoy8pZ5fTavjvHxNuuuiGRApzyGESZB => RequestSynchronizerResolver => wrapper (wrap://ipfs/QmPL9Njg3rGkpoJyoy8pZ5fTavjvHxNuuuiGRApzyGESZB)", - [ - "wrap://ipfs/QmPL9Njg3rGkpoJyoy8pZ5fTavjvHxNuuuiGRApzyGESZB => ResolutionResultCacheResolver => wrapper (wrap://ipfs/QmPL9Njg3rGkpoJyoy8pZ5fTavjvHxNuuuiGRApzyGESZB)", - [ - "wrap://ipfs/QmPL9Njg3rGkpoJyoy8pZ5fTavjvHxNuuuiGRApzyGESZB => PackageToWrapperResolver => wrapper (wrap://ipfs/QmPL9Njg3rGkpoJyoy8pZ5fTavjvHxNuuuiGRApzyGESZB)", - [ - "wrap://ipfs/QmPL9Njg3rGkpoJyoy8pZ5fTavjvHxNuuuiGRApzyGESZB => UriResolverAggregator => package (wrap://ipfs/QmPL9Njg3rGkpoJyoy8pZ5fTavjvHxNuuuiGRApzyGESZB)", - [ - "wrap://ipfs/QmPL9Njg3rGkpoJyoy8pZ5fTavjvHxNuuuiGRApzyGESZB => StaticResolver - Miss", - "wrap://ipfs/QmPL9Njg3rGkpoJyoy8pZ5fTavjvHxNuuuiGRApzyGESZB => ExtendableUriResolver => package (wrap://ipfs/QmPL9Njg3rGkpoJyoy8pZ5fTavjvHxNuuuiGRApzyGESZB)", - [ - "wrap://ipfs/QmPL9Njg3rGkpoJyoy8pZ5fTavjvHxNuuuiGRApzyGESZB => ResolverExtension (wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1) => package (wrap://ipfs/QmPL9Njg3rGkpoJyoy8pZ5fTavjvHxNuuuiGRApzyGESZB)", - [ - "wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1 => Client.loadWrapper => wrapper (wrap://embed/async-ipfs-uri-resolver-ext@1.0.1)", - [ - "wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1 => RequestSynchronizerResolver => uri (wrap://embed/async-ipfs-uri-resolver-ext@1.0.1)", - [ - "wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1 => ResolutionResultCacheResolver (Cache) => uri (wrap://embed/async-ipfs-uri-resolver-ext@1.0.1)" - ], - "wrap://embed/async-ipfs-uri-resolver-ext@1.0.1 => RequestSynchronizerResolver => wrapper (wrap://embed/async-ipfs-uri-resolver-ext@1.0.1)", - [ - "wrap://embed/async-ipfs-uri-resolver-ext@1.0.1 => ResolutionResultCacheResolver (Cache) => wrapper (wrap://embed/async-ipfs-uri-resolver-ext@1.0.1)" - ] - ], - "wrap://embed/async-ipfs-uri-resolver-ext@1.0.1 => Client.invokeWrapper", - [ - "wrap://plugin/concurrent@1.0.0 => Client.loadWrapper => wrapper (wrap://plugin/concurrent@1.0.0)", - [ - "wrap://plugin/concurrent@1.0.0 => RequestSynchronizerResolver => wrapper (wrap://plugin/concurrent@1.0.0)", - [ - "wrap://plugin/concurrent@1.0.0 => ResolutionResultCacheResolver (Cache) => wrapper (wrap://plugin/concurrent@1.0.0)" - ] - ], - "wrap://plugin/concurrent@1.0.0 => Client.invokeWrapper", - [ - "wrap://embed/ipfs-http-client@1.0.0 => Client.loadWrapper => wrapper (wrap://embed/ipfs-http-client@1.0.0)", - [ - "wrap://embed/ipfs-http-client@1.0.0 => RequestSynchronizerResolver => wrapper (wrap://embed/ipfs-http-client@1.0.0)", - [ - "wrap://embed/ipfs-http-client@1.0.0 => ResolutionResultCacheResolver (Cache) => wrapper (wrap://embed/ipfs-http-client@1.0.0)" - ] - ], - "wrap://embed/ipfs-http-client@1.0.0 => Client.loadWrapper => wrapper (wrap://embed/ipfs-http-client@1.0.0)", - [ - "wrap://embed/ipfs-http-client@1.0.0 => RequestSynchronizerResolver (Cache) => wrapper (wrap://embed/ipfs-http-client@1.0.0)" - ], - "wrap://embed/ipfs-http-client@1.0.0 => Client.invokeWrapper", - [ - "wrap://ens/wraps.eth:http@1.1.0 => Client.loadWrapper => wrapper (wrap://plugin/http@1.1.0)", - [ - "wrap://ens/wraps.eth:http@1.1.0 => RequestSynchronizerResolver => uri (wrap://plugin/http@1.1.0)", - [ - "wrap://ens/wraps.eth:http@1.1.0 => ResolutionResultCacheResolver (Cache) => uri (wrap://plugin/http@1.1.0)" - ], - "wrap://plugin/http@1.1.0 => RequestSynchronizerResolver => wrapper (wrap://plugin/http@1.1.0)", - [ - "wrap://plugin/http@1.1.0 => ResolutionResultCacheResolver (Cache) => wrapper (wrap://plugin/http@1.1.0)" - ] - ], - "wrap://plugin/http@1.1.0 => Client.invokeWrapper" - ], - "wrap://embed/ipfs-http-client@1.0.0 => Client.invokeWrapper", - [ - "wrap://ens/wraps.eth:http@1.1.0 => Client.loadWrapper => wrapper (wrap://plugin/http@1.1.0)", - [ - "wrap://ens/wraps.eth:http@1.1.0 => RequestSynchronizerResolver => uri (wrap://plugin/http@1.1.0)", - [ - "wrap://ens/wraps.eth:http@1.1.0 => ResolutionResultCacheResolver (Cache) => uri (wrap://plugin/http@1.1.0)" - ], - "wrap://plugin/http@1.1.0 => RequestSynchronizerResolver => wrapper (wrap://plugin/http@1.1.0)", - [ - "wrap://plugin/http@1.1.0 => ResolutionResultCacheResolver (Cache) => wrapper (wrap://plugin/http@1.1.0)" - ] - ], - "wrap://plugin/http@1.1.0 => Client.invokeWrapper" - ] - ], - "wrap://plugin/concurrent@1.0.0 => Client.loadWrapper => wrapper (wrap://plugin/concurrent@1.0.0)", - [ - "wrap://plugin/concurrent@1.0.0 => RequestSynchronizerResolver => wrapper (wrap://plugin/concurrent@1.0.0)", - [ - "wrap://plugin/concurrent@1.0.0 => ResolutionResultCacheResolver (Cache) => wrapper (wrap://plugin/concurrent@1.0.0)" - ] - ], - "wrap://plugin/concurrent@1.0.0 => Client.invokeWrapper" - ] - ] - ] - ] - ] - ] - ] - ], - "wrap://ipfs/QmPL9Njg3rGkpoJyoy8pZ5fTavjvHxNuuuiGRApzyGESZB => Client.invokeWrapper", - "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => Client.loadWrapper => wrapper (wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)", - [ - "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => RequestSynchronizerResolver => wrapper (wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)", - [ - "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => ResolutionResultCacheResolver => wrapper (wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)", - [ - "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => PackageToWrapperResolver => wrapper (wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)", - [ - "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => UriResolverAggregator => package (wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)", - [ - "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => StaticResolver - Miss", - "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => ExtendableUriResolver => package (wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)", - [ - "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => ResolverExtension (wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1) => package (wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)", - [ - "wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1 => Client.loadWrapper => wrapper (wrap://embed/async-ipfs-uri-resolver-ext@1.0.1)", - [ - "wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1 => RequestSynchronizerResolver => uri (wrap://embed/async-ipfs-uri-resolver-ext@1.0.1)", - [ - "wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1 => ResolutionResultCacheResolver (Cache) => uri (wrap://embed/async-ipfs-uri-resolver-ext@1.0.1)" - ], - "wrap://embed/async-ipfs-uri-resolver-ext@1.0.1 => RequestSynchronizerResolver => wrapper (wrap://embed/async-ipfs-uri-resolver-ext@1.0.1)", - [ - "wrap://embed/async-ipfs-uri-resolver-ext@1.0.1 => ResolutionResultCacheResolver (Cache) => wrapper (wrap://embed/async-ipfs-uri-resolver-ext@1.0.1)" - ] - ], - "wrap://embed/async-ipfs-uri-resolver-ext@1.0.1 => Client.invokeWrapper", - [ - "wrap://plugin/concurrent@1.0.0 => Client.loadWrapper => wrapper (wrap://plugin/concurrent@1.0.0)", - [ - "wrap://plugin/concurrent@1.0.0 => RequestSynchronizerResolver => wrapper (wrap://plugin/concurrent@1.0.0)", - [ - "wrap://plugin/concurrent@1.0.0 => ResolutionResultCacheResolver (Cache) => wrapper (wrap://plugin/concurrent@1.0.0)" - ] - ], - "wrap://plugin/concurrent@1.0.0 => Client.invokeWrapper", - [ - "wrap://embed/ipfs-http-client@1.0.0 => Client.loadWrapper => wrapper (wrap://embed/ipfs-http-client@1.0.0)", - [ - "wrap://embed/ipfs-http-client@1.0.0 => RequestSynchronizerResolver => wrapper (wrap://embed/ipfs-http-client@1.0.0)", - [ - "wrap://embed/ipfs-http-client@1.0.0 => ResolutionResultCacheResolver (Cache) => wrapper (wrap://embed/ipfs-http-client@1.0.0)" - ] - ], - "wrap://embed/ipfs-http-client@1.0.0 => Client.loadWrapper => wrapper (wrap://embed/ipfs-http-client@1.0.0)", - [ - "wrap://embed/ipfs-http-client@1.0.0 => RequestSynchronizerResolver (Cache) => wrapper (wrap://embed/ipfs-http-client@1.0.0)" - ], - "wrap://embed/ipfs-http-client@1.0.0 => Client.invokeWrapper", - [ - "wrap://ens/wraps.eth:http@1.1.0 => Client.loadWrapper => wrapper (wrap://plugin/http@1.1.0)", - [ - "wrap://ens/wraps.eth:http@1.1.0 => RequestSynchronizerResolver => uri (wrap://plugin/http@1.1.0)", - [ - "wrap://ens/wraps.eth:http@1.1.0 => ResolutionResultCacheResolver (Cache) => uri (wrap://plugin/http@1.1.0)" - ], - "wrap://plugin/http@1.1.0 => RequestSynchronizerResolver => wrapper (wrap://plugin/http@1.1.0)", - [ - "wrap://plugin/http@1.1.0 => ResolutionResultCacheResolver (Cache) => wrapper (wrap://plugin/http@1.1.0)" - ] - ], - "wrap://plugin/http@1.1.0 => Client.invokeWrapper" - ], - "wrap://embed/ipfs-http-client@1.0.0 => Client.invokeWrapper", - [ - "wrap://ens/wraps.eth:http@1.1.0 => Client.loadWrapper => wrapper (wrap://plugin/http@1.1.0)", - [ - "wrap://ens/wraps.eth:http@1.1.0 => RequestSynchronizerResolver => uri (wrap://plugin/http@1.1.0)", - [ - "wrap://ens/wraps.eth:http@1.1.0 => ResolutionResultCacheResolver (Cache) => uri (wrap://plugin/http@1.1.0)" - ], - "wrap://plugin/http@1.1.0 => RequestSynchronizerResolver => wrapper (wrap://plugin/http@1.1.0)", - [ - "wrap://plugin/http@1.1.0 => ResolutionResultCacheResolver (Cache) => wrapper (wrap://plugin/http@1.1.0)" - ] - ], - "wrap://plugin/http@1.1.0 => Client.invokeWrapper" - ] - ], - "wrap://plugin/concurrent@1.0.0 => Client.loadWrapper => wrapper (wrap://plugin/concurrent@1.0.0)", - [ - "wrap://plugin/concurrent@1.0.0 => RequestSynchronizerResolver => wrapper (wrap://plugin/concurrent@1.0.0)", - [ - "wrap://plugin/concurrent@1.0.0 => ResolutionResultCacheResolver (Cache) => wrapper (wrap://plugin/concurrent@1.0.0)" - ] - ], - "wrap://plugin/concurrent@1.0.0 => Client.invokeWrapper" - ] - ] - ] - ] - ] - ] - ] - ], - "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => Client.invokeWrapper", - "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => Client.loadWrapper => wrapper (wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)", - [ - "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => RequestSynchronizerResolver => wrapper (wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)", - [ - "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => ResolutionResultCacheResolver (Cache) => wrapper (wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)" - ] - ], - "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => Client.invokeWrapper", - "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => Client.loadWrapper => wrapper (wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)", - [ - "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => RequestSynchronizerResolver => wrapper (wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)", - [ - "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => ResolutionResultCacheResolver (Cache) => wrapper (wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)" - ] - ], - "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => Client.invokeWrapper", - "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => Client.loadWrapper => wrapper (wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)", - [ - "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => RequestSynchronizerResolver => wrapper (wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)", - [ - "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => ResolutionResultCacheResolver (Cache) => wrapper (wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)" - ] - ], - "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => Client.invokeWrapper", - "wrap://ipfs/QmS4Z679ZE8WwZSoYB8w9gDSERHAoWG1fX94oqdWpfpDq3 => Client.loadWrapper => wrapper (wrap://ipfs/QmS4Z679ZE8WwZSoYB8w9gDSERHAoWG1fX94oqdWpfpDq3)", - [ - "wrap://ipfs/QmS4Z679ZE8WwZSoYB8w9gDSERHAoWG1fX94oqdWpfpDq3 => RequestSynchronizerResolver => wrapper (wrap://ipfs/QmS4Z679ZE8WwZSoYB8w9gDSERHAoWG1fX94oqdWpfpDq3)", - [ - "wrap://ipfs/QmS4Z679ZE8WwZSoYB8w9gDSERHAoWG1fX94oqdWpfpDq3 => ResolutionResultCacheResolver => wrapper (wrap://ipfs/QmS4Z679ZE8WwZSoYB8w9gDSERHAoWG1fX94oqdWpfpDq3)", - [ - "wrap://ipfs/QmS4Z679ZE8WwZSoYB8w9gDSERHAoWG1fX94oqdWpfpDq3 => PackageToWrapperResolver => wrapper (wrap://ipfs/QmS4Z679ZE8WwZSoYB8w9gDSERHAoWG1fX94oqdWpfpDq3)", - [ - "wrap://ipfs/QmS4Z679ZE8WwZSoYB8w9gDSERHAoWG1fX94oqdWpfpDq3 => UriResolverAggregator => package (wrap://ipfs/QmS4Z679ZE8WwZSoYB8w9gDSERHAoWG1fX94oqdWpfpDq3)", - [ - "wrap://ipfs/QmS4Z679ZE8WwZSoYB8w9gDSERHAoWG1fX94oqdWpfpDq3 => StaticResolver - Miss", - "wrap://ipfs/QmS4Z679ZE8WwZSoYB8w9gDSERHAoWG1fX94oqdWpfpDq3 => ExtendableUriResolver => package (wrap://ipfs/QmS4Z679ZE8WwZSoYB8w9gDSERHAoWG1fX94oqdWpfpDq3)", - [ - "wrap://ipfs/QmS4Z679ZE8WwZSoYB8w9gDSERHAoWG1fX94oqdWpfpDq3 => ResolverExtension (wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1) => package (wrap://ipfs/QmS4Z679ZE8WwZSoYB8w9gDSERHAoWG1fX94oqdWpfpDq3)", - [ - "wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1 => Client.loadWrapper => wrapper (wrap://embed/async-ipfs-uri-resolver-ext@1.0.1)", - [ - "wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1 => RequestSynchronizerResolver => uri (wrap://embed/async-ipfs-uri-resolver-ext@1.0.1)", - [ - "wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1 => ResolutionResultCacheResolver (Cache) => uri (wrap://embed/async-ipfs-uri-resolver-ext@1.0.1)" - ], - "wrap://embed/async-ipfs-uri-resolver-ext@1.0.1 => RequestSynchronizerResolver => wrapper (wrap://embed/async-ipfs-uri-resolver-ext@1.0.1)", - [ - "wrap://embed/async-ipfs-uri-resolver-ext@1.0.1 => ResolutionResultCacheResolver (Cache) => wrapper (wrap://embed/async-ipfs-uri-resolver-ext@1.0.1)" - ] - ], - "wrap://embed/async-ipfs-uri-resolver-ext@1.0.1 => Client.invokeWrapper", - [ - "wrap://plugin/concurrent@1.0.0 => Client.loadWrapper => wrapper (wrap://plugin/concurrent@1.0.0)", - [ - "wrap://plugin/concurrent@1.0.0 => RequestSynchronizerResolver => wrapper (wrap://plugin/concurrent@1.0.0)", - [ - "wrap://plugin/concurrent@1.0.0 => ResolutionResultCacheResolver (Cache) => wrapper (wrap://plugin/concurrent@1.0.0)" - ] - ], - "wrap://plugin/concurrent@1.0.0 => Client.invokeWrapper", - [ - "wrap://embed/ipfs-http-client@1.0.0 => Client.loadWrapper => wrapper (wrap://embed/ipfs-http-client@1.0.0)", - [ - "wrap://embed/ipfs-http-client@1.0.0 => RequestSynchronizerResolver => wrapper (wrap://embed/ipfs-http-client@1.0.0)", - [ - "wrap://embed/ipfs-http-client@1.0.0 => ResolutionResultCacheResolver (Cache) => wrapper (wrap://embed/ipfs-http-client@1.0.0)" - ] - ], - "wrap://embed/ipfs-http-client@1.0.0 => Client.loadWrapper => wrapper (wrap://embed/ipfs-http-client@1.0.0)", - [ - "wrap://embed/ipfs-http-client@1.0.0 => RequestSynchronizerResolver (Cache) => wrapper (wrap://embed/ipfs-http-client@1.0.0)" - ], - "wrap://embed/ipfs-http-client@1.0.0 => Client.invokeWrapper", - [ - "wrap://ens/wraps.eth:http@1.1.0 => Client.loadWrapper => wrapper (wrap://plugin/http@1.1.0)", - [ - "wrap://ens/wraps.eth:http@1.1.0 => RequestSynchronizerResolver => uri (wrap://plugin/http@1.1.0)", - [ - "wrap://ens/wraps.eth:http@1.1.0 => ResolutionResultCacheResolver (Cache) => uri (wrap://plugin/http@1.1.0)" - ], - "wrap://plugin/http@1.1.0 => RequestSynchronizerResolver => wrapper (wrap://plugin/http@1.1.0)", - [ - "wrap://plugin/http@1.1.0 => ResolutionResultCacheResolver (Cache) => wrapper (wrap://plugin/http@1.1.0)" - ] - ], - "wrap://plugin/http@1.1.0 => Client.invokeWrapper" - ], - "wrap://embed/ipfs-http-client@1.0.0 => Client.invokeWrapper", - [ - "wrap://ens/wraps.eth:http@1.1.0 => Client.loadWrapper => wrapper (wrap://plugin/http@1.1.0)", - [ - "wrap://ens/wraps.eth:http@1.1.0 => RequestSynchronizerResolver => uri (wrap://plugin/http@1.1.0)", - [ - "wrap://ens/wraps.eth:http@1.1.0 => ResolutionResultCacheResolver (Cache) => uri (wrap://plugin/http@1.1.0)" - ], - "wrap://plugin/http@1.1.0 => RequestSynchronizerResolver => wrapper (wrap://plugin/http@1.1.0)", - [ - "wrap://plugin/http@1.1.0 => ResolutionResultCacheResolver (Cache) => wrapper (wrap://plugin/http@1.1.0)" - ] - ], - "wrap://plugin/http@1.1.0 => Client.invokeWrapper" - ] - ], - "wrap://plugin/concurrent@1.0.0 => Client.loadWrapper => wrapper (wrap://plugin/concurrent@1.0.0)", - [ - "wrap://plugin/concurrent@1.0.0 => RequestSynchronizerResolver => wrapper (wrap://plugin/concurrent@1.0.0)", - [ - "wrap://plugin/concurrent@1.0.0 => ResolutionResultCacheResolver (Cache) => wrapper (wrap://plugin/concurrent@1.0.0)" - ] - ], - "wrap://plugin/concurrent@1.0.0 => Client.invokeWrapper" - ] - ] - ] - ] - ] - ] - ] - ], - "wrap://ipfs/QmS4Z679ZE8WwZSoYB8w9gDSERHAoWG1fX94oqdWpfpDq3 => Client.invokeWrapper", - [ - "wrap://plugin/ethereum-provider@1.1.0 => Client.loadWrapper => wrapper (wrap://plugin/ethereum-provider@1.1.0)", - [ - "wrap://plugin/ethereum-provider@1.1.0 => RequestSynchronizerResolver => wrapper (wrap://plugin/ethereum-provider@1.1.0)", - [ - "wrap://plugin/ethereum-provider@1.1.0 => ResolutionResultCacheResolver => wrapper (wrap://plugin/ethereum-provider@1.1.0)", - [ - "wrap://plugin/ethereum-provider@1.1.0 => PackageToWrapperResolver => wrapper (wrap://plugin/ethereum-provider@1.1.0)", - [ - "wrap://plugin/ethereum-provider@1.1.0 => UriResolverAggregator => package (wrap://plugin/ethereum-provider@1.1.0)", - [ - "wrap://plugin/ethereum-provider@1.1.0 => StaticResolver - Package (wrap://plugin/ethereum-provider@1.1.0) => package (wrap://plugin/ethereum-provider@1.1.0)" - ] - ] - ] - ] - ], - "wrap://plugin/ethereum-provider@1.1.0 => Client.invokeWrapper" - ] - ], - "wrap://ipfs/QmWG8NJnvGMCosxaUWuRna33MSDR331rByGTdy4EDsVjNL => Client.loadWrapper => wrapper (wrap://ipfs/QmWG8NJnvGMCosxaUWuRna33MSDR331rByGTdy4EDsVjNL)", - [ - "wrap://ipfs/QmWG8NJnvGMCosxaUWuRna33MSDR331rByGTdy4EDsVjNL => RequestSynchronizerResolver => wrapper (wrap://ipfs/QmWG8NJnvGMCosxaUWuRna33MSDR331rByGTdy4EDsVjNL)", - [ - "wrap://ipfs/QmWG8NJnvGMCosxaUWuRna33MSDR331rByGTdy4EDsVjNL => ResolutionResultCacheResolver (Cache) => wrapper (wrap://ipfs/QmWG8NJnvGMCosxaUWuRna33MSDR331rByGTdy4EDsVjNL)" - ] - ], - "wrap://ipfs/QmWG8NJnvGMCosxaUWuRna33MSDR331rByGTdy4EDsVjNL => Client.invokeWrapper", - [ - "wrap://ipfs/QmPL9Njg3rGkpoJyoy8pZ5fTavjvHxNuuuiGRApzyGESZB => Client.loadWrapper => wrapper (wrap://ipfs/QmPL9Njg3rGkpoJyoy8pZ5fTavjvHxNuuuiGRApzyGESZB)", - [ - "wrap://ipfs/QmPL9Njg3rGkpoJyoy8pZ5fTavjvHxNuuuiGRApzyGESZB => RequestSynchronizerResolver => wrapper (wrap://ipfs/QmPL9Njg3rGkpoJyoy8pZ5fTavjvHxNuuuiGRApzyGESZB)", - [ - "wrap://ipfs/QmPL9Njg3rGkpoJyoy8pZ5fTavjvHxNuuuiGRApzyGESZB => ResolutionResultCacheResolver (Cache) => wrapper (wrap://ipfs/QmPL9Njg3rGkpoJyoy8pZ5fTavjvHxNuuuiGRApzyGESZB)" - ] - ], - "wrap://ipfs/QmPL9Njg3rGkpoJyoy8pZ5fTavjvHxNuuuiGRApzyGESZB => Client.invokeWrapper", - "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => Client.loadWrapper => wrapper (wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)", - [ - "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => RequestSynchronizerResolver => wrapper (wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)", - [ - "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => ResolutionResultCacheResolver (Cache) => wrapper (wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)" - ] - ], - "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => Client.invokeWrapper", - "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => Client.loadWrapper => wrapper (wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)", - [ - "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => RequestSynchronizerResolver => wrapper (wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)", - [ - "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => ResolutionResultCacheResolver (Cache) => wrapper (wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)" - ] - ], - "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => Client.invokeWrapper", - "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => Client.loadWrapper => wrapper (wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)", - [ - "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => RequestSynchronizerResolver => wrapper (wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)", - [ - "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => ResolutionResultCacheResolver (Cache) => wrapper (wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)" - ] - ], - "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => Client.invokeWrapper", - "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => Client.loadWrapper => wrapper (wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)", - [ - "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => RequestSynchronizerResolver => wrapper (wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)", - [ - "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => ResolutionResultCacheResolver (Cache) => wrapper (wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)" - ] - ], - "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => Client.invokeWrapper", - "wrap://ipfs/QmS4Z679ZE8WwZSoYB8w9gDSERHAoWG1fX94oqdWpfpDq3 => Client.loadWrapper => wrapper (wrap://ipfs/QmS4Z679ZE8WwZSoYB8w9gDSERHAoWG1fX94oqdWpfpDq3)", - [ - "wrap://ipfs/QmS4Z679ZE8WwZSoYB8w9gDSERHAoWG1fX94oqdWpfpDq3 => RequestSynchronizerResolver => wrapper (wrap://ipfs/QmS4Z679ZE8WwZSoYB8w9gDSERHAoWG1fX94oqdWpfpDq3)", - [ - "wrap://ipfs/QmS4Z679ZE8WwZSoYB8w9gDSERHAoWG1fX94oqdWpfpDq3 => ResolutionResultCacheResolver (Cache) => wrapper (wrap://ipfs/QmS4Z679ZE8WwZSoYB8w9gDSERHAoWG1fX94oqdWpfpDq3)" - ] - ], - "wrap://ipfs/QmS4Z679ZE8WwZSoYB8w9gDSERHAoWG1fX94oqdWpfpDq3 => Client.invokeWrapper", - [ - "wrap://plugin/ethereum-provider@1.1.0 => Client.loadWrapper => wrapper (wrap://plugin/ethereum-provider@1.1.0)", - [ - "wrap://plugin/ethereum-provider@1.1.0 => RequestSynchronizerResolver => wrapper (wrap://plugin/ethereum-provider@1.1.0)", - [ - "wrap://plugin/ethereum-provider@1.1.0 => ResolutionResultCacheResolver (Cache) => wrapper (wrap://plugin/ethereum-provider@1.1.0)" - ] - ], - "wrap://plugin/ethereum-provider@1.1.0 => Client.invokeWrapper" - ] - ] - ] - ] - ] - ] - ] - ] - ], - "wrap://ipfs/QmSAXrSLcmGUkQRrApAtG5qTPmuRMMX2Zf1wihpguDQfbm => RequestSynchronizerResolver => wrapper (wrap://ipfs/QmSAXrSLcmGUkQRrApAtG5qTPmuRMMX2Zf1wihpguDQfbm)", - [ - "wrap://ipfs/QmSAXrSLcmGUkQRrApAtG5qTPmuRMMX2Zf1wihpguDQfbm => ResolutionResultCacheResolver => wrapper (wrap://ipfs/QmSAXrSLcmGUkQRrApAtG5qTPmuRMMX2Zf1wihpguDQfbm)", - [ - "wrap://ipfs/QmSAXrSLcmGUkQRrApAtG5qTPmuRMMX2Zf1wihpguDQfbm => PackageToWrapperResolver => wrapper (wrap://ipfs/QmSAXrSLcmGUkQRrApAtG5qTPmuRMMX2Zf1wihpguDQfbm)", - [ - "wrap://ipfs/QmSAXrSLcmGUkQRrApAtG5qTPmuRMMX2Zf1wihpguDQfbm => UriResolverAggregator => package (wrap://ipfs/QmSAXrSLcmGUkQRrApAtG5qTPmuRMMX2Zf1wihpguDQfbm)", - [ - "wrap://ipfs/QmSAXrSLcmGUkQRrApAtG5qTPmuRMMX2Zf1wihpguDQfbm => StaticResolver - Miss", - "wrap://ipfs/QmSAXrSLcmGUkQRrApAtG5qTPmuRMMX2Zf1wihpguDQfbm => ExtendableUriResolver => package (wrap://ipfs/QmSAXrSLcmGUkQRrApAtG5qTPmuRMMX2Zf1wihpguDQfbm)", - [ - "wrap://ipfs/QmSAXrSLcmGUkQRrApAtG5qTPmuRMMX2Zf1wihpguDQfbm => ResolverExtension (wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1) => package (wrap://ipfs/QmSAXrSLcmGUkQRrApAtG5qTPmuRMMX2Zf1wihpguDQfbm)", - [ - "wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1 => Client.loadWrapper => wrapper (wrap://embed/async-ipfs-uri-resolver-ext@1.0.1)", - [ - "wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1 => RequestSynchronizerResolver => uri (wrap://embed/async-ipfs-uri-resolver-ext@1.0.1)", - [ - "wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1 => ResolutionResultCacheResolver (Cache) => uri (wrap://embed/async-ipfs-uri-resolver-ext@1.0.1)" - ], - "wrap://embed/async-ipfs-uri-resolver-ext@1.0.1 => RequestSynchronizerResolver => wrapper (wrap://embed/async-ipfs-uri-resolver-ext@1.0.1)", - [ - "wrap://embed/async-ipfs-uri-resolver-ext@1.0.1 => ResolutionResultCacheResolver (Cache) => wrapper (wrap://embed/async-ipfs-uri-resolver-ext@1.0.1)" - ] - ], - "wrap://embed/async-ipfs-uri-resolver-ext@1.0.1 => Client.invokeWrapper", - [ - "wrap://plugin/concurrent@1.0.0 => Client.loadWrapper => wrapper (wrap://plugin/concurrent@1.0.0)", - [ - "wrap://plugin/concurrent@1.0.0 => RequestSynchronizerResolver => wrapper (wrap://plugin/concurrent@1.0.0)", - [ - "wrap://plugin/concurrent@1.0.0 => ResolutionResultCacheResolver (Cache) => wrapper (wrap://plugin/concurrent@1.0.0)" - ] - ], - "wrap://plugin/concurrent@1.0.0 => Client.invokeWrapper", - [ - "wrap://embed/ipfs-http-client@1.0.0 => Client.loadWrapper => wrapper (wrap://embed/ipfs-http-client@1.0.0)", - [ - "wrap://embed/ipfs-http-client@1.0.0 => RequestSynchronizerResolver => wrapper (wrap://embed/ipfs-http-client@1.0.0)", - [ - "wrap://embed/ipfs-http-client@1.0.0 => ResolutionResultCacheResolver (Cache) => wrapper (wrap://embed/ipfs-http-client@1.0.0)" - ] - ], - "wrap://embed/ipfs-http-client@1.0.0 => Client.loadWrapper => wrapper (wrap://embed/ipfs-http-client@1.0.0)", - [ - "wrap://embed/ipfs-http-client@1.0.0 => RequestSynchronizerResolver (Cache) => wrapper (wrap://embed/ipfs-http-client@1.0.0)" - ], - "wrap://embed/ipfs-http-client@1.0.0 => Client.invokeWrapper", - [ - "wrap://ens/wraps.eth:http@1.1.0 => Client.loadWrapper => wrapper (wrap://plugin/http@1.1.0)", - [ - "wrap://ens/wraps.eth:http@1.1.0 => RequestSynchronizerResolver => uri (wrap://plugin/http@1.1.0)", - [ - "wrap://ens/wraps.eth:http@1.1.0 => ResolutionResultCacheResolver (Cache) => uri (wrap://plugin/http@1.1.0)" - ], - "wrap://plugin/http@1.1.0 => RequestSynchronizerResolver => wrapper (wrap://plugin/http@1.1.0)", - [ - "wrap://plugin/http@1.1.0 => ResolutionResultCacheResolver (Cache) => wrapper (wrap://plugin/http@1.1.0)" - ] - ], - "wrap://plugin/http@1.1.0 => Client.invokeWrapper" - ] - ], - "wrap://plugin/concurrent@1.0.0 => Client.loadWrapper => wrapper (wrap://plugin/concurrent@1.0.0)", - [ - "wrap://plugin/concurrent@1.0.0 => RequestSynchronizerResolver => wrapper (wrap://plugin/concurrent@1.0.0)", - [ - "wrap://plugin/concurrent@1.0.0 => ResolutionResultCacheResolver (Cache) => wrapper (wrap://plugin/concurrent@1.0.0)" - ] - ], - "wrap://plugin/concurrent@1.0.0 => Client.invokeWrapper" - ] - ] - ] - ] - ] - ] - ] -] \ No newline at end of file From f57a7c99de14857c89af31bdae342ffc5b959d48 Mon Sep 17 00:00:00 2001 From: dOrgJelli Date: Tue, 25 Apr 2023 19:06:16 -0500 Subject: [PATCH 31/31] chore: revert workflow changes --- .github/workflows/ci-javascript.yaml | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/.github/workflows/ci-javascript.yaml b/.github/workflows/ci-javascript.yaml index 7f0193c96..723b35a6c 100644 --- a/.github/workflows/ci-javascript.yaml +++ b/.github/workflows/ci-javascript.yaml @@ -101,8 +101,19 @@ jobs: with: node-version: '${{ steps.nvm.outputs.NVMRC }}' + - name: Get yarn cache directory path + id: yarn-cache-dir-path + run: echo "::set-output name=dir::$(yarn cache dir)" + + - uses: actions/cache@v2 + with: + path: ${{ steps.yarn-cache-dir-path.outputs.dir }} + key: ${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }} + restore-keys: | + ${{ runner.os }}-yarn- + - name: Install dependencies - run: yarn install --nonInteractive --frozen-lockfile + run: yarn install --nonInteractive --frozen-lockfile --prefer-offline - name: Build run: yarn build @@ -121,5 +132,4 @@ jobs: mv wrappers packages/test-cases - name: Test - run: yarn test ./src/__tests__/core/uri-resolution.spec.ts - working-directory: ./packages/client + run: yarn test