- PR-74 Add
src/
andREADME.md
to 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.4
fixes 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.txt
file 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/path
intowrap://https/domain.com/path
ipfs://QmHASH
intowrap://ipfs/QmHASH
- Non-wrap URI schemes can now be used (ex:
@polywrap/client-config-builder-js
:
- PR-45 Modular Config Bundles
- The
DefaultBundle
has been broken apart into two separate bundles:sys
andweb3
. addBundle(...)
has been added to theClientConfigBuilder
interface.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
bundle
value, 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
ClientConfigBuilder
toPolywrapClientConfigBuilder
- Renamed
IClientConfigBuilder
toClientConfigBuilder
- Renamed
addWrapper(s)
tosetWrapper(s)
- Renamed
addPackage(s)
tosetPackage(s)
- Renamed
addRedirect(s)
tosetRedirect(s)
- Renamed
@polywrap/core-js
:
- PR-32 Rename
getEnvFromUriHistory
togetEnvFromResolutionPath
@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-js
as 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
resolutionContext
to theWasmWrapper
's state. - Pass the
resolutionContext
through to all subinvocations.
- Added
@polywrap/client-config-builder-js
- PR-8
tryResolveUri
Now Returns Wrap Packages- The default resolver should not automatically convert packages to wrappers. Based on this, the
PackageToWrapperResolver
has 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
WrapError
structure, helping debug common client error scenarios.
- Integrate the
- PR-1340 Wrapper Validation
- Added a
validate(uri, options)
method to thePolywrapClient
class, 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:
- PR-1560 Add
BuildOptions
to 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:[email protected]
async-ipfs-uri-resolver-ext
@wrap://ens/wraps.eth:[email protected]
- 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:[email protected]
interface, and adds theconcurrent-plugin-js
package @wrap://plugin/concurrent
as 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:[email protected]
interface, and adds the@polywrap/logger-plugin-js
package @wrap://plugin/logger
as an implementation.
- The default config bundle now uses the
- PR-1411 Add
ens-text-record-resolver
to Default Config Bundle- The
ens-text-record-resolver
wrapper @wrap://ipfs/QmfRCVA1MSAjUbrXXjya4xA9QHkbWeiKRsT7Um1cvrR7FY
has 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:foo
maps todomain.eth
'swrap/foo
text record. Thewrap/foo
text-record's value must contain another valid WRAP URI. For examples, see dev.polywrap.eth.
- The
- PR-1236 Plugin Refactor
- Added
addRedirects
,addWrappers
,addPackages
methods to theClientConfigBuilder
, so users can add many items at once. - Added
buildDefault
to theClientConfigBuilder
which builds aClientConfig
using default resolvers.
- Added
@polywrap/plugin-js
:
- PR-1614 Add
env
ToPluginModule
Invocation Method ArgumentsPluginModule
invocation methods will now be given anenv
the method's arguments.
- PR-1236 Plugin Refactor
- New package for js plugins.
- Can create plugin packages with
PluginPackage.from
.- Accepts
manifest
and 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
RequestSynchronizerResolver
can 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
StaticResolver
andStaticResolver.from
to optimize building resolvers withIUriRedirect
,IUriWrapper
andIUriPackage
.
- Added
@polywrap/uri-resolver-extensions-js
:
- PR-1582 Update Default URI-Resolver-Ext Interface URI
- The
ExtendableUriResolver
has been updated to get uri-resolver-ext implementations from the following interface URIs:wrap://ens/wraps.eth:[email protected]
wrap://ens/wraps.eth:[email protected]
- The
@polywrap/core-js
:
- PR-1431 WRAP Error Structure
- Created a custom
WrapError
structure that improves debugging ability for common client error scenarios.
- Created a custom
- PR-1369 Remove Legacy Redirects
GetImplementationsOptions
now accepts an optional resolution context, to be used to handle infinite recursion when a resolver usesgetImplementations
GetImplementationsOptions
now accepts an optionalapplyResolution
. This can be used to apply URI resolution to interfaces.
@polywrap/logging-js
:
- PR-1379 Create
@polywrap/logging-js
Package- Created the
@polywrap/logging-js
package 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 theRequest
object.
- Added form-data support through the inclusion of the
@polywrap/client-js
:
- PR-1534 Remove legacy config types from
PolywrapClient
- The
PolywrapClient
now 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
PolywrapClient
config when usingnoDefaults: true
no longer acceptsredirects
(Since redirects have been removed fromCoreClientConfig
).
- PR-1236 Plugin Refactor
- The Polywrap Client with
noDefaults: false
no longer accepts aplugins
field, but it acceptswrappers
andpackages
.resolver
field has been replaced withresolvers
, since with default client the resolver used is theRecursiveResolver
with thePackageToWrapperCacheResolver
.
- The Polywrap Client with
noDefaults: true
, no longer accepts aplugins
field. It is expected that devs using this option will manually configure their own resolver. - removed
getPlugins
andgetPluginByUri
. Will addgetWrapper
,getWrapperByUri
,getPackage
,getPackageByUri
, in a follow up PR. createPolywrapClient
function has been deprecated.
- The Polywrap Client with
- PR-1534 Remove legacy config types from PolywrapClient
- The
PolywrapClient
's constructor now accepts only an optionalCoreClientConfig
type as its configuration object. - It is now advised to use the
ClientConfigBuilder
found in@polywrap/client-config-builder-js
and exported by@polywrap/client-js
in order to set up their client configurations.
- The
@polywrap/client-config-builder-js
:
- PR-1480 ClientConfigBuilder-specific
BuilderConfig
Object- The
ClientConfigBuilder
now uses a specificBuilderConfig
that is easier for users to work with. It will then be turned into aCoreClientConfig
through the use of thebuild()
method.
- The
- PR-1498 Refactor
ClientConfigBuilder.build()
- Rename
buildCoreConfig()
tobuild()
, which returns aCoreClientConfig
instance.
- Rename
- PR-1494 Deprecate Legacy HTTP URIs in Default Config Bundle
- The
wrap://ens/http.polywrap.eth
interface 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.eth
interface and thewrap://ens/js-logger.polywrap.eth
plugin 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.eth
URI + 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.eth
URIs + wraps have been removed from the default configuration bundle.
- The
- PR-1369 Remove Legacy Redirects
- Calling
buildCoreConfig
no longer returns aCoreClientConfig
with redirects since redirects are no longer a part ofCoreClientConfig
.
- Calling
- PR-1367 URI Redirect Renaming
- Renamed
removeUriRedirect(...)
toremoveRedirePR-15e
pluginsand a
resolver, but now has
wrappers,
packagesand
resolvers` - Calling build returns an instance of the
CustomClientConfig
, which can be used with defaults from thePolywrapClient
, but can not be used ifnoDefaults: true
is passed to thePolywrapClient
constructor. - Removed
addPlugin
from theClientConfigBuilder
, users can now useaddWrapper
oraddPackage
where appropriate.
- Renamed
@polywrap/plugin-js
:
- PR-1614 Remove
env
Property FromPluginModule
PluginModule
instances no longer have anenv
property, and instead will be given anenv
within the invocation method's arguments.
@polywrap/core-js
:
- PR-1613 Core Client Config Unique Maps
- The
CoreClientConfig
nowReadonlyUriMap
s for itsinterface
andenv
properties.
- The
- PR-1369 Remove Legacy Redirects
redirects
are no longer a part ofCoreClientConfig
.getRedirects
are no longer a part ofCoreClient
.getUriResolver
onCoreClient
has been renamed togetResolver
.getImplementations
returns a promise now.GetImplementationsOptions
no longer acceptsapplyRedirects
. This has been replaces withapplyResolution
.applyRedirects
helper 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
UriRedirect
toIUriRedirect
to matchIUriWrapper
andIUriPackage
IUriRedirect
,IUriWrapper
andIUriPackage
are now generic and their generic param implementsUri | string
- Removed
options
argument fromclient.getManifest
method since all wrappers have a deserialized manifest
@polywrap/uri-resolvers-js
:
- PR-1586 Separate the
PackageToWrapperCacheResolver
Into Two Resolvers- The
PackageToWrapperCacheResolver
has been split into thePackageToWrapperResolver
&WrapperCacheResolver
resolvers.
- The
- PR-1369 Remove Legacy Redirects
LegacyRedirectsResolver
has been removed.
- PR-1236 Plugin Refactor
- Replaced helper func
buildUriResolver
withUriResolver.from
- Constructors of built-in resolvers like
RecursiveResolver
andPackageToWrapperCacheResolver
now accept a concreteIUriResolver
while their staticfrom
methods accept aUriResolverLike
- Remove
PluginsResolver
andPluginResolver
, users can now useWrapperResolver
orPackageResolver
- Replaced helper func
@polywrap/uri-resolver-extensions-js
:
- PR-1582 Remove Legacy uri-resolver-ext Interface URI
- The
ExtendableUriResolver
no longer supports the legacy interface URIwrap://ens/uri-resolver.core.polywrap.eth
.
- The
@polywrap/react
:
- PR-1236 Plugin Refactor
- Replaced
plugins
on thePolywrapProvider
withwrappers
andpackages
- 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
WrapError
now 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
null
URI Resolver Extension Return Results- Update the
MaybeUriOrManifest
&getFile
interfaces to properly reflect the URI resolver extension interface.
- Update the