- PR-74 Add
src/andREADME.mdto package artifacts
@polywrap/wrap-manifest-types-js:
- PR-68 Browser compilation fix
- The "semver" sub-dependency (version
7.5.0) has a problem building for the browser, upgrading to7.5.4fixes this.- source: npm/node-semver#554
- The "semver" sub-dependency (version
@polywrap/sys-config-bundle-js:
- PR-56 Wrapscan URI Resolution Using Sys Bundle
- Resolving
wrapscan.io/URIs is now possible by simply adding the "sys" bundle to your client's configuration. - The "sys" bundle now includes:
wrapscanResolver,ipfsResolver, andipfsHttpClient.
- Resolving
- PR-55 GitHub URI Resolution Using Sys Bundle
- Resolving
github.com/URIs is now possible by simply adding the "sys" bundle to your client's configuration. - NOTE: this requires a
URI.txtfile located in the directory you're linking to on GitHub.
- Resolving
@polywrap/client-js:
- PR-62 Migrate All URIs To Wrapscan (Remove ENS URIs)
- All URIs used within the client's packages (uri-resolver-extensions, config-bundles, etc) have been migrated to
wrapscan.io/based URIs. - All
ens/URIs have been deprecated, but resolvingens/URIs is still supported.
- All URIs used within the client's packages (uri-resolver-extensions, config-bundles, etc) have been migrated to
@polywrap/core-js:
- PR-61 URI Should Start W/ Word Character
- URIs should not start with non-word characters, for example
../.
- URIs should not start with non-word characters, for example
@polywrap/core-js:
- PR-6 Improved URI Inference
- Non-wrap URI schemes can now be used (ex:
https://domain.com/path). The non-wrap scheme will be used as the authority, and all other contents will be shifted into the path. - Examples:
https://domain.com/pathintowrap://https/domain.com/pathipfs://QmHASHintowrap://ipfs/QmHASH
- Non-wrap URI schemes can now be used (ex:
@polywrap/client-config-builder-js:
- PR-45 Modular Config Bundles
- The
DefaultBundlehas been broken apart into two separate bundles:sysandweb3. addBundle(...)has been added to theClientConfigBuilderinterface.addDefaults()now callsaddBundle("sys")andaddBundle("web3")internally.
- The
@polywrap/sys-config-bundle-js:
- PR-45 Bundled System-Level Plugins & Resolvers
- The sys bundle includes:
logger,datetime,concurrent,http,httpResolver - This package is compiled to run in both node.js and browsers.
- In node.js, the bundle also includes:
fileSystem,fileSystemResolver.
- The sys bundle includes:
@polywrap/web3-config-bundle-js:
- PR-45 Bundled Web3 Plugins & Resolvers
- The web3 bundle includes:
ethereumProviderV1,ethereumProviderV2,ipfsHttpClient,ipfsResolver,ensTextRecordResolver,ensResolver,ensIpfsContenthashResolver.
- The web3 bundle includes:
@polywrap/config-bundle-types-js:
- PR-45 Base Typings For Config Bundle Packages
- Valid config bundle packages are expected to export a
bundlevalue, which is of typeBundle.
- Valid config bundle packages are expected to export a
@polywrap/client-config-builder-js:
- PR-47 Renaming For Improved Accuracy
- Renamed
ClientConfigBuildertoPolywrapClientConfigBuilder - Renamed
IClientConfigBuildertoClientConfigBuilder - Renamed
addWrapper(s)tosetWrapper(s) - Renamed
addPackage(s)tosetPackage(s) - Renamed
addRedirect(s)tosetRedirect(s)
- Renamed
@polywrap/core-js:
- PR-32 Rename
getEnvFromUriHistorytogetEnvFromResolutionPath
@polywrap/client-js
- PR-32 Improved Browser Compatability
- Building the JS client into browser-based applications no longer requires custom polyfills to remove Node.JS dependencies.
@polywrap/client-cofig-builder-js
- PR-37 Add
@polywrap/plugin-jsas a Dependency- This resolves some package resolution warnings that are emitted from npm when installing the client-config-builder.
@polywrap/wasm-js:
- PR-30 Properly Serialize Empty Wrap Environment
- The wrap environment was being improperly encoded as an empty object, which had a size > 0 bytes, causing deserialization to fail. This has been fixed and it is now an empty byte array with size of 0.
@polywrap/wasm-js:
- PR-3 WasmWrapper Subinvcations Now Retain The Resolution Context
- Added
resolutionContextto theWasmWrapper's state. - Pass the
resolutionContextthrough to all subinvocations.
- Added
@polywrap/client-config-builder-js
- PR-8
tryResolveUriNow Returns Wrap Packages- The default resolver should not automatically convert packages to wrappers. Based on this, the
PackageToWrapperResolverhas been removed from the default config bundle.
- The default resolver should not automatically convert packages to wrappers. Based on this, the
@polywrap/core-client-js:
- PR-3 Properly Track Subinvocation Resolution Contexts
- Instead of passing the core resolution context to the resolution and invocation processes, seperate sub contexts are created for them. This means that subinvokes will now be tracked in the resolution context.
@polywrap/plugin-js:
- PR-3 Properly Track Subinvocation Resolution Contexts
- The client instance provided to plugin methods has been wrapped, enabling the automatic tracking of all subinvocation resolution contexts.
@polywrap/client-js:
- PR-1582 Support ENS Text Record WRAP URIs
- Support has been added for using ENS text records as valid
wrap://URIs. - Example:
wrap://ens/uniswap.wraps.eth:v3 - NOTE: Text record key names must begin with
wrap/
- Support has been added for using ENS text records as valid
- PR-1431 WRAP Error Structure
- Integrate the
WrapErrorstructure, helping debug common client error scenarios.
- Integrate the
- PR-1340 Wrapper Validation
- Added a
validate(uri, options)method to thePolywrapClientclass, allowing users to guarantee the client can communicate with the provided wrapper located at the provided URI.
- Added a
- PR-1236 Plugin Refactor
- Polywrap Client now re-exports the config builder and uri-resolvers (in addition to core) packages. This is done to improve dev exp and remove the need for users to import those package themselves.
- For users who do not need those packages and are using noDefaults there will be a separate PR that refactor core client functionality into a core-client package that does not depend on the config builder and uri-resolvers packages, but has no defaults.
- Polywrap Client now re-exports the config builder and uri-resolvers (in addition to core) packages. This is done to improve dev exp and remove the need for users to import those package themselves.
@polywrap/client-config-builder-js:
- PR-1582 Integrate URI Resolver Extension Wraps
- The default configuration bundle now has the following uri-resolver-ext wraps registered as interface implementations:
- `wrap://ens/wraps.eth:ipfs-uri-resolver-ext@1.0.0
wrap://ens/wraps.eth:ens-text-record-uri-resolver-ext@1.0.0wrap://ens/wraps.eth:http-uri-resolver-ext@1.0.0wrap://ens/wraps.eth:file-system-uri-resolver-ext@1.0.0wrap://ens/wraps.eth:ens-uri-resolver-ext@1.0.0wrap://ens/wraps.eth:ens-ipfs-contenthash-uri-resolver-ext@1.0.0
- The default configuration bundle now has the following uri-resolver-ext wraps registered as interface implementations:
- PR-1560 Add
BuildOptionsto build method inIClientConfigBuilder- This makes it possible to add a custom cache or resolver without casting.
- PR-1475 Embed IPFS HTTP Client & IPFS URI Resolver Wraps
- The default configuration bundle now comes with two embedded wraps that enable interactions with IPFS:
ipfs-http-client@wrap://ens/wraps.eth:ipfs-http-client@1.0.0async-ipfs-uri-resolver-ext@wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1
- The default configuration bundle now comes with two embedded wraps that enable interactions with IPFS:
- PR-1518 Optional Build Method Arguments
- The
build(...)method now accepts a single argument of typeBuildOptions.
- The
- PR-1496 Use New Concurrent Wrapper
- The default config bundle now uses the
wrap://ens/wrappers.polywrap.eth:concurrent@1.0.0interface, and adds theconcurrent-plugin-jspackage @wrap://plugin/concurrentas an implementation.
- The default config bundle now uses the
- PR-1468 Export Default Config Bundle URIs
- The default config now exports constants for all URIs used within the config.
- PR-1436 Use New Logger Wrapper
- The default config bundle now uses the
wrap://ens/wrappers.polywrap.eth:logger@1.0.0interface, and adds the@polywrap/logger-plugin-jspackage @wrap://plugin/loggeras an implementation.
- The default config bundle now uses the
- PR-1411 Add
ens-text-record-resolverto Default Config Bundle- The
ens-text-record-resolverwrapper @wrap://ipfs/QmfRCVA1MSAjUbrXXjya4xA9QHkbWeiKRsT7Um1cvrR7FYhas been added to the default client config bundle. This resolver enables ENS, text-record based, WRAP URI resolution. The text-record's key must be prepended with thewrap/...identifier. For example, the URIwrap://ens/domain.eth:foomaps todomain.eth'swrap/footext record. Thewrap/footext-record's value must contain another valid WRAP URI. For examples, see dev.polywrap.eth.
- The
- PR-1236 Plugin Refactor
- Added
addRedirects,addWrappers,addPackagesmethods to theClientConfigBuilder, so users can add many items at once. - Added
buildDefaultto theClientConfigBuilderwhich builds aClientConfigusing default resolvers.
- Added
@polywrap/plugin-js:
- PR-1614 Add
envToPluginModuleInvocation Method ArgumentsPluginModuleinvocation methods will now be given anenvthe method's arguments.
- PR-1236 Plugin Refactor
- New package for js plugins.
- Can create plugin packages with
PluginPackage.from.- Accepts
manifestand aPluginModule, or an inlinePluginModule.
- Accepts
@polywrap/uri-resolvers-js:
- PR-1646 Resolution Result Cache Resolver
- Added a new cache resolver
ResolutionResultCacheResolver. - Unlike the
WrapperCacheResolver, which caches wrappers (URI => Wrapper), this resolver caches the result of the resolution process: URI, wrapper, package or error (URI => URI, URI => wrapper, URI => package, URI => error). - By default, it does not cache errors, but a flag can be passed to enable that functionality.
- Added a new cache resolver
- PR-1528 Request Synchronizer Resolver
- With URI resolvers, multiple requests for the same URI, in most cases, needlessly repeat the same process (usually a network request). Using a cache resolver (like PackageToWrapperCacheResolver) helps if the resolution requests are synchronous (one after another). This new
RequestSynchronizerResolvercan be used to reuse parallel requests for the same URI, this way, only the first one needs to do the work (e.g. a network request) while others will await that same promise.
- With URI resolvers, multiple requests for the same URI, in most cases, needlessly repeat the same process (usually a network request). Using a cache resolver (like PackageToWrapperCacheResolver) helps if the resolution requests are synchronous (one after another). This new
- PR-1236 Plugin Refactor
- Added
StaticResolverandStaticResolver.fromto optimize building resolvers withIUriRedirect,IUriWrapperandIUriPackage.
- Added
@polywrap/uri-resolver-extensions-js:
- PR-1582 Update Default URI-Resolver-Ext Interface URI
- The
ExtendableUriResolverhas been updated to get uri-resolver-ext implementations from the following interface URIs:wrap://ens/wraps.eth:uri-resolver-ext@1.1.0wrap://ens/wraps.eth:uri-resolver-ext@1.0.0
- The
@polywrap/core-js:
- PR-1431 WRAP Error Structure
- Created a custom
WrapErrorstructure that improves debugging ability for common client error scenarios.
- Created a custom
- PR-1369 Remove Legacy Redirects
GetImplementationsOptionsnow accepts an optional resolution context, to be used to handle infinite recursion when a resolver usesgetImplementationsGetImplementationsOptionsnow accepts an optionalapplyResolution. This can be used to apply URI resolution to interfaces.
@polywrap/logging-js:
- PR-1379 Create
@polywrap/logging-jsPackage- Created the
@polywrap/logging-jspackage from the logging lib previously in the CLI's codebase.
- Created the
@polywrap/http-plugin-js:
- PR-1471 Add form-data Support
- Added form-data support through the inclusion of the
formData: [FormDataEntry!]property on theRequestobject.
- Added form-data support through the inclusion of the
@polywrap/client-js:
- PR-1534 Remove legacy config types from
PolywrapClient- The
PolywrapClientnow simply accepts aCoreClientConfig, which is expected to come from the config builder.
- The
- PR-1461 Remove Legacy Invocation Methods
- Remove
client.query(...)&client.subscribe(...)methods.
- Remove
- PR-1369 Remove Legacy Redirects
PolywrapClientconfig when usingnoDefaults: trueno longer acceptsredirects(Since redirects have been removed fromCoreClientConfig).
- PR-1236 Plugin Refactor
- The Polywrap Client with
noDefaults: falseno longer accepts apluginsfield, but it acceptswrappersandpackages.resolverfield has been replaced withresolvers, since with default client the resolver used is theRecursiveResolverwith thePackageToWrapperCacheResolver.
- The Polywrap Client with
noDefaults: true, no longer accepts apluginsfield. It is expected that devs using this option will manually configure their own resolver. - removed
getPluginsandgetPluginByUri. Will addgetWrapper,getWrapperByUri,getPackage,getPackageByUri, in a follow up PR. createPolywrapClientfunction has been deprecated.
- The Polywrap Client with
- PR-1534 Remove legacy config types from PolywrapClient
- The
PolywrapClient's constructor now accepts only an optionalCoreClientConfigtype as its configuration object. - It is now advised to use the
ClientConfigBuilderfound in@polywrap/client-config-builder-jsand exported by@polywrap/client-jsin order to set up their client configurations.
- The
@polywrap/client-config-builder-js:
- PR-1480 ClientConfigBuilder-specific
BuilderConfigObject- The
ClientConfigBuildernow uses a specificBuilderConfigthat is easier for users to work with. It will then be turned into aCoreClientConfigthrough the use of thebuild()method.
- The
- PR-1498 Refactor
ClientConfigBuilder.build()- Rename
buildCoreConfig()tobuild(), which returns aCoreClientConfiginstance.
- Rename
- PR-1494 Deprecate Legacy HTTP URIs in Default Config Bundle
- The
wrap://ens/http.polywrap.ethinterface and wrapper have been removed from the default configuration bundle.
- The
- PR-1436 Deprecate Legacy Logger URIs in Default Config Bundle
- The
wrap://ens/logger.core.polywrap.ethinterface and thewrap://ens/js-logger.polywrap.ethplugin wrapper have both been removed from the default configuration bundle.
- The
- PR-1446 Deprecate Legacy Ethereum URI in Default Config Bundle
- The
wrap://ens/ethereum.polywrap.ethURI + wrap has been removed from the default configuration bundle.
- The
- PR-1475 Deprecate Legacy IPFS URIs in Default Config Bundle
- The
wrap://ens/ipfs.polywrap.eth&wrap://ens/ipfs-resolver.polywrap.ethURIs + wraps have been removed from the default configuration bundle.
- The
- PR-1369 Remove Legacy Redirects
- Calling
buildCoreConfigno longer returns aCoreClientConfigwith redirects since redirects are no longer a part ofCoreClientConfig.
- Calling
- PR-1367 URI Redirect Renaming
- Renamed
removeUriRedirect(...)toremoveRedirePR-15epluginsand aresolver, but now haswrappers,packagesandresolvers` - Calling build returns an instance of the
CustomClientConfig, which can be used with defaults from thePolywrapClient, but can not be used ifnoDefaults: trueis passed to thePolywrapClientconstructor. - Removed
addPluginfrom theClientConfigBuilder, users can now useaddWrapperoraddPackagewhere appropriate.
- Renamed
@polywrap/plugin-js:
- PR-1614 Remove
envProperty FromPluginModulePluginModuleinstances no longer have anenvproperty, and instead will be given anenvwithin the invocation method's arguments.
@polywrap/core-js:
- PR-1613 Core Client Config Unique Maps
- The
CoreClientConfignowReadonlyUriMaps for itsinterfaceandenvproperties.
- The
- PR-1369 Remove Legacy Redirects
redirectsare no longer a part ofCoreClientConfig.getRedirectsare no longer a part ofCoreClient.getUriResolveronCoreClienthas been renamed togetResolver.getImplementationsreturns a promise now.GetImplementationsOptionsno longer acceptsapplyRedirects. This has been replaces withapplyResolution.applyRedirectshelper function has been replaced withapplyResolution.
- PR-1236 Plugin Refactor
- Plugins are no longer a part of this package, they have been moved to the plugin-js package
- Renamed
UriRedirecttoIUriRedirectto matchIUriWrapperandIUriPackage IUriRedirect,IUriWrapperandIUriPackageare now generic and their generic param implementsUri | string- Removed
optionsargument fromclient.getManifestmethod since all wrappers have a deserialized manifest
@polywrap/uri-resolvers-js:
- PR-1586 Separate the
PackageToWrapperCacheResolverInto Two Resolvers- The
PackageToWrapperCacheResolverhas been split into thePackageToWrapperResolver&WrapperCacheResolverresolvers.
- The
- PR-1369 Remove Legacy Redirects
LegacyRedirectsResolverhas been removed.
- PR-1236 Plugin Refactor
- Replaced helper func
buildUriResolverwithUriResolver.from - Constructors of built-in resolvers like
RecursiveResolverandPackageToWrapperCacheResolvernow accept a concreteIUriResolverwhile their staticfrommethods accept aUriResolverLike - Remove
PluginsResolverandPluginResolver, users can now useWrapperResolverorPackageResolver
- Replaced helper func
@polywrap/uri-resolver-extensions-js:
- PR-1582 Remove Legacy uri-resolver-ext Interface URI
- The
ExtendableUriResolverno longer supports the legacy interface URIwrap://ens/uri-resolver.core.polywrap.eth.
- The
@polywrap/react:
- PR-1236 Plugin Refactor
- Replaced
pluginson thePolywrapProviderwithwrappersandpackages
- Replaced
@polywrap/http-plugin-js:
- PR-1494 Migrated to polywrap/http
@polywrap/fs-plugin-js:
- PR-1495 Migrate to polywrap/file-system
@polywrap/ws-plugin-js:
- PR-1547 Migrate to polywrap/websocket
@polywrap/ethereum-plugin-js:
- PR-1446 Deprecated in favor of the polywrap/ethereum wasm-based wrap
@polywrap/ipfs-plugin-js:
- PR-1475 Deprecated in favor of the polywrap/ipfs wasm-based wrap
@polywrap/http-interface:
- PR-1494 Migrated to polywrap/http
@polywrap/file-system-interface:
- PR-1495 Migrate to polywrap/file-system
@polywrap/core-js:
- PR-1593 Display decoded args when errors are thrown in subinvocations
- Args used to be displayed as-is in error messages when errors were thrown in Wasm wrapper invocations. This meant args for subinvocations were byte arrays. Now the args are always decoded for errors so they are human-readable.
- PR-1556
WrapErrornow correctly parses Rust unwrap errors- When calling
.unwrap()on a Rust result that contains an error, Rust will panic with an error message that contains the Err. For fidelity to the original Err, Rust inserts escape characters in the string. For example, "\n" becomes "\n". This behavior was not being handled correctly by WrapError's string parsing logic.
- When calling
@polywrap/uri-resolvers-extensions-js:
- PR-1487 Handle
nullURI Resolver Extension Return Results- Update the
MaybeUriOrManifest&getFileinterfaces to properly reflect the URI resolver extension interface.
- Update the