polywrap
CLI:
- PR-1928 Add
--no-wasm
Option Topolywrap build
build
command now supports the--no-wasm
option, which disables the wasm compilation step when compiling projects.
@polywrap/templates
:
- PR-1929 Fix Rust Codegen Compiler Errors
polywrap
CLI:
- PR-1911 Polywrap Manifest - Default Source Paths
polywrap.yaml
manifests can now omit thesource:
section and use the defaults defined by the CLI babsed on the manifest'sproject.type
property.
- PR-1893 Add
embed
option topolywrap codegen
- Adds the
--embed
option topolywrap codegen
which embeds wrap modules into applications (requires wrap-abi-bindgen support).
- Adds the
polywrap
CLI:
- PR-1913 Use Sys Bundle IPFS Providers in CLI
@polywrap/schema-bind
:
- PR-1890 Update
wasm/rust
Bindings tov2
polywrap
CLI:
- PR-1903 Properly Publish Binary Release
polywrap
CLI:
- PR-1888 Build Wraps Using TypeScript
- Create TypeScript wrap projects via
polywrap create wasm typescript my-wrap
- Create TypeScript wrap projects via
- PR-1879 + PR-1889 Standalone Binary Installer
- The
polywrap
CLI can now be installed via a standalone binary. - An
install.sh
script can now be found at the root of the repository. Usage:$ sh <(curl https://raw.githubusercontent.com/polywrap/cli/origin-dev/install.sh) # Installs to `~/.polywrap` # If polywrap is already installed, the script instead checks for updates
- The
polywrap-wasm-rs
- PR-1887 Bump MsgPack Serde Version
@polywrap/schema-bind
- PR-1891 Fix Various Golang -> Wrap Bindings
polywrap
CLI:
- PR-1870 Add
polywrap create app ios ...
- PR-1867 Add
polywrap create app android ...
- PR-1864 Add
polywrap create app rust ...
- PR-1856 Add
polywrap create app python ...
@polywrap/schema-bind
:
- PR-1868 Add
app/kotlin
Bindings - PR-1871 Add
app/swift
Bindings - PR-1873 Update URIs To
wrapscan.io/polywrap/...-abi-bindgen@1
- Update URIs to wrapscan.io URI so that we can now use fuzzy versioning.
polywrap-wasm-rs
:
- PR-1865 Re-Export Nested Dependencies
- Re-export nested dependencies so that consumers no longer need to import from other packages.
polywrap
CLI:
- PR-1874 Use Rust Client For Testing Rust-Based Wraps
- PR-1866 Use Latest Ganache
- Update the ganache image with the latest from docker.
@polywrap/templates
:
polywrap
CLI:
- PR-1847 Fix IPFS deployer subdirectory duplication issue
- Fixed the IPFS deployer subdirectory issue described in IPFS Deployer possibly duplicates subdirectory paths when deploying (#1846)
polywrap
CLI:
- PR-1074 Golang-based Wraps Now Supported!
- Polywrap projects of
type: wasm/golang
are now supported. - To get started, simply run
polywrap create wasm golang my-wrap
- Polywrap projects of
- PR-1829 Support User-Defined Bindgen URIs
- The
build
andcodegen
commands now have the option--bindgen <URI>
, which allows for the use of a custom bindgen wrap.
- The
- PR-1774
polywrap deploy
Defaults To IPFS on wrapscan.io- When you run the
polywrap deploy
command, you no longer need apolywrap.deploy.yaml
manifest file. By default it will deploy your wrap to IPFS on https://wrapscan.io.
- When you run the
@polywrap/schema-bind
:
- PR-1795 Add
wrap-abi-bindgen
Support- All wrap bindings are now emitted using the wraps defined within the wrap-abi-bindgen project.
- This enables binding updates to be released, without us needing to create a new release of the CLI.
- PR-1840 Support Swift Plugin Bindings
- Add support for
plugin/swift
bindings, used when building plugins in Swift.
- Add support for
polywrap
CLI:
- PR-1809
docgen
Command Removed- The
docgen
command has been largely unused so it has been removed.
- The
- PR-1839 Remove ENS Deploy Modules
- All ENS deploy modules have been removed. If you'd like to publish your wrap's IPFS hash to ENS, simply use the ENS web app.
polywrap
CLI:
- PR-1823 Support Fuzzy URI Strings in Manifests
- URIs within manifest files are no longer as strict, and can be any string.
- PR-1808 IPFS Deploy W/ Node v18
- The IPFS deployer module has been updated so that it runs on all node versions, including version 18.
- PR-1804 Emit Resources & Docs For Interface Wraps
- When building an wrap of type
interface
, resources and doc artifacts were not being properly emitted to the build folder.
- When building an wrap of type
polywrap
CLI:
- PR-1796
wrap/rust
Builds Now Properly Remove wasm-bindgen Imports- The
wasm-bindgen
CLI was emitting an unneeded__wbindgen_throw
import, so we usewasm-snip
to remove it.
- The
@polywrap/schema-bind
:
- PR-1786 Update
plugin/python
plugin bindings to latest client
polywrap
CLI:
- PR-1735 Add Docs Manifest &
polywrap docs init
Command- The
polywrap.docs.yaml
manifest is used to add additional metadata to your wraps.
- The
- PR-1776 Add HTTP Headers To HTTP Deploy Module
- The
http
deploy module now supports theheaders
configuration property.
- The
polywrap
CLI:
- PR-1773 Don't Install
wasm-opt
Everylocal
Rust Build- The
local
strategy for rust wasm projects was unexpectedly installingwasm-opt
every time it was run, leading to very long build times.
- The
@polywrap/schema-bind
:
- PR-1775 Fix Python Plugin Bindings
- The wrap abi type
Bytes
can now be properly used within rust plugins.
- The wrap abi type
- PR-1753 Fix Python Plugin Bindings
polywrap
CLI:
- PR-1747 Add Rust & Python plugin template projects to CLI's
create
command- The
create
command now supportsplugin/rust
andplugin/python
project types.
- The
@polywrap/schema-bind
:
- PR-1734 Update
plugin/python
Bindings- Update
wrap.info
python module embedding.
- Update
- PR-1728 Update
plugin/rust
Bindings- Modify JSON serialization within rust plugin's bindings.
- PR-1736 Properly emit function name when
Env
is missing- Fixed the error message that's emitted when an environment is not supplied to a function that requires it.
- PR-1733 Add imported
Env
topropertyDeps
transform- Adds imported
Env
topropertyDeps
transform, so that now codegen properly generates imports for dependencies of imported env.
- Adds imported
@polywrap/schema-bind
:
- PR-1718
plugin/python
Enum Bindings Fix- Enums are now properly displayed in Python plugins.
@polywrap/schema-bind
:
- PR-1694
plugin/rust
Env Bindings Refactor- Rust plugin bindings now expose
env
as a function argument.
- Rust plugin bindings now expose
@polywrap/schema-bind
:
- PR-1700
plugin/rust
Serde renaming for snake-cased properties in rust plugins types- Rust plugins now properly convert wrap schema property names into snake-cased names, so they are compatable with Rust naming conventions.
@polywrap/templates
:
- PR-1680 Import newer logger in typescript template
- Update the typescript app template to use the latest logging wrap at
ens/wraps.eth:logging@1.0.0
.
- Update the typescript app template to use the latest logging wrap at
@polywrap/polywrap-manifest-types-js
:
- PR-1692 top-level
docker
property is now removed from build manifest during migration- Fixes a bug where the top-level
docker
property of build manifest version 0.1.0 was not being dropped during migration, causing migrated build manifests to fail validation.
- Fixes a bug where the top-level
polywrap
CLI:
- PR-1592 Add
primaryJob
to deploy manifest and outputURI.txt
when runningpolywrap deploy
- The
primaryJob
option in the deploy manifest identifies the name of the job that is used for the primary deployment. The URI that is emitted from theprimaryJob
will be output to aURI.txt
file next to the deploy manifest.
- The
- PR-1529
polywrap create template
Command- Added the
polywrap create template
command to the CLI, enabling users to provide a url to a template project.
- Added the
- PR-1584 Codegen Command Now Supports
--watch
- You can now run npx
polywrap codegen --watch
which will automatically watch files within your project directory and re-run codegen whenever changes are detected.
- You can now run npx
- PR-1677 Python Plugin Support
- Add bindings for
plugin/python
projects.
- Add bindings for
- PR-1428 Rust Plugin Support
- Add bindings for
plugin/rust
projects.
- Add bindings for
- PR-1437 Support Custom Wrapper Environment Variables
- Enable users to customize the CLI's internal client's wrapper environment via a
--wrapper-envs
option, added to thebuild
,codegen
,docgen
, andtest
commands.
- Enable users to customize the CLI's internal client's wrapper environment via a
- PR-1430 Support Arbitrary Resources Files
- Polywrap
wasm/
&interface/
projects can now include aresources:
directory, specified in thepolywrap.yaml
manifest. This resources directory will be copied into thebuild/
folder upon runninpolywrap build
. For example:format: 0.3.0 project: type: interface | wasm/... ... source: ... resources: ./resources
- Polywrap
- PR-1349 Log File Support
- A
-l, --log-file [path]
option has been added to all commands. Its purpose is to configure aLog file to save console output to
, useful in situations when the console log overflows.
- A
@polywrap/cli-js
:
- PR-1359 Polywrap CLI JS Wrapper
- Created the
polywrap/cli-js
package to wrap thepolywrap
CLI with a JavaScript/TypeScript interface.
- Created the
@polywrap/polywrap-manifest-schemas
:
- PR-1430 Support Arbitrary Resources Files
- Added version
0.3.0
of thePolywrapManifest
, which includes the newresources: string
field.
- Added version
@polywrap/polywrap-manifest-types-js
:
- PR-1379 Add Logging to Manifest Migrators
- Added an optional logger parameter to the deserialization function of all manifest types.
- PR-1430 Support Arbitrary Resources Files
- Added version
0.3.0
of thePolywrapManifest
, which includes the newresources: string
field.
- Added version
@polywrap/schema-bind
:
- PR-1677 Python Plugin Support
- Add bindings for
plugin/python
projects.
- Add bindings for
- PR-1464
wasm/rust
Bindings Now UseModuleTrait
Trait- Codegen for
wasm/rust
wraps now generates aModuleTrait
trait that must be implemented for the rootModule
struct.
- Codegen for
- PR-1460
wasm/assemblyscript
Bindings Now UseModuleBase
Interface- Codegen for
wasm/assemblyscript
wraps now generates aModuleBase
interface that must be extended by a rootModule
class.
- Codegen for
- PR-1428 Rust Plugin Support
- Add bindings for
plugin/rust
projects.
- Add bindings for
- PR-1236 Plugin Refactor
- In
plugin-ts
bindings, thePluginModule
type is now imported fron@polywrap/plugin-js
instead of@polywrap/core-js
.
- In
@polywrap/schema-compose
:
- PR-1600 Allow WRAP URIs in Un-Namespaced Imports
- Support URIs within un-namespaced import statements like so
#import { Object, Module } from "wrap://..."
- This effectively enables the "embedding" of external ABIs, which is useful when you'd like to copy 1:1 an ABI that lives elsewhere.
- Support URIs within un-namespaced import statements like so
@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:
- `wrap://ens/wraps.eth:ipfs-uri-resolver-ext@1.0.0
wrap://ens/wraps.eth:ens-text-record-uri-resolver-ext@1.0.0
wrap://ens/wraps.eth:http-uri-resolver-ext@1.0.0
wrap://ens/wraps.eth:file-system-uri-resolver-ext@1.0.0
wrap://ens/wraps.eth:ens-uri-resolver-ext@1.0.0
wrap://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
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:ipfs-http-client@1.0.0
async-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.0
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:logger@1.0.0
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:uri-resolver-ext@1.1.0
wrap://ens/wraps.eth:uri-resolver-ext@1.0.0
- 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
CLI:
- PR-1561 Remove buildx builder by default
- Added new
keepBuilder
option which is default to false and removed the previousremoveBuilder
option from the build manifest.
- Added new
- PR-1525 Unify Typescript App Templates
- Remove
typescript-node
&typescript-react
app templates, and replace them with a singletypescript
.
- Remove
- PR-1432 Remove Legacy Polywrap Project Metadata
- Remove the
polywrap.meta.yaml
manifest.
- Remove the
- PR-1367 Client Configuration Refactor
- The JS/TS module passed into the
--client-config
option has a new function entrypoint signature. Instead of exporting agetCustomConfig
function, users should export the following:configure(builder: IClientConfigBuilder): IClientConfigBuilder
. - See example config.ts.
- The JS/TS module passed into the
- PR-1348 Rename
run
totest
- Rename the
run
command totest
, which uses thetest
project extension, as defined in thepolywrap.test.yaml
manifest file.
- Rename the
- PR-1545 **Remove
config
section from test manifest- The Polywrap Test manifest (
polywrap.test.yaml
) has been upgraded to version0.2.0
with the following change:- The
config
section insidestep
has been removed, and manifest migrations will warn the user regarding this change.
- The
- The Polywrap Test manifest (
@polywrap/schema-bind
- PR-1464
wasm/rust
Bindings Now UseModuleTrait
Trait- Rust-based wraps no longer pub functions, but instead pub a
impl ModuleTrait for Module
.
- Rust-based wraps no longer pub functions, but instead pub a
- PR-1460
wasm/assemblyscript
Bindings Now UseModuleBase
Interface- AssemblyScript-based wraps no longer export functions, but instead export a
class Module
whichextends ModuleBase
.
- AssemblyScript-based wraps no longer export functions, but instead export a
@polywrap/test-env-js
- PR-1530 Deprecate Legacy Test-Env Package
- The
test-env-js
package has been deprecated, in favor of@polywrap/cli-js
- 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
CLI:
- PR-1683 Don't Require Docker
polywrap build
On Interface Projects- When building
type: interface
projects, the CLI no longer requires docker to be running.
- When building
- PR-1610
polywrap test
Non-Zero Exit Codespolywrap test
now exits with an exit code of 1 if a test fails.
- PR-1470 Fix Build Manifest Absolute Path Support
- Accept absolute paths within the
polywrap.build.yaml
manifest'slinked_packages
property.
- Accept absolute paths within the
- PR-1438 Support Maps In Workflows
- Properly handle map types when running workflows using the
test
command.
- Properly handle map types when running workflows using the
- PR-1396 Remove Wasm "Interface Types" Custom Section
- The rust build images have been updated to properly remove the needless inclusion of the
wasm-interface-types
custom section, as a result of running wasm-bindgen. More information can be found here.
- The rust build images have been updated to properly remove the needless inclusion of the
- PR-1379 Manifest Upgrade Warning Message
- Automatically upgrading manifests now emits a warning, suggesting users to upgrade their manifest.
- PR-1382 Execute
asc
Usingnpx
- Invoke
asc
usingnpx
to help with program resolution.
- Invoke
- PR-1368 Client Config Error Messaging
- Update error messaging for the
--client-config
option.
- Update error messaging for the
@polywrap/schema-bind
:
- PR-1444 TypeScript Bindings Export Imports
- The
plugin/typescript
andapp/typescript
bindings now properly export all interfaces.
- The
- PR-1443 Rust Bindings Use String
- The
wasm/rust
bindings now useString
instead ofstr
within imported interface module typings.
- The
@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
@polywrap/templates
:
- PR-1383 Default Deploy Gateway
- Add the
https://ipfs.wrappers.io
gateway to the interface template'spolywrap.deploy.yaml
manifest.
- Add the
- PR-1344
@polywrap/cli
: Improve workflow validation. - PR-1345
@polywrap/cli
: Theens-recursive-name-register
deploy step now properly registers ENS sub-domains recursively. - PR-1342
@polywrap/polywrap-manifest-schemas
: Accept @ character in folder paths. - PR-1333
@polywrap/client-js
: Added TsDoc comments to thePolywrapClient
class. - PR-1337
@polywrap/schema-bind
: In Rust bindings, enum imports are now added in serialization modules when the enum is a subtype of an array (Vec) or map.
- PR-1327
@polywrap/schema-bind
: Added missing serialization bindings for module method arguments & return values.
- PR-1320
@polywrap/ethereum-plugin-js
: Properview
method result parsing. - PR-1317
@polywrap/core-js
,@polywrap/uri-resolvers-extensions-js
: Properly check for null when using UriResolverExtensionFileReader to read wasm module. - PR-1318
polywrap
CLI: Thecodegen
command properly applies the-g, --codegen-dir
option. - PR-1318
@polywrap/templates
: Fix several issues within thewasm
template projects. - PR-1316
polywrap
CLI: Fix an issue where the CLI process would hang after the command had completed. - PR-1315
polywrap
CLI: Minor cleanup post logging refactor. - PR-1310
polywrap
CLI: Use base images from the "polywrap" Docker Hub organization.
- PR-1306
polywrap
CLI: Console logging has been improved, and all commands now support-q, --quiet
and-v, --verbose
options. - PR-1204
polywrap
CLI: Build times are faster for wasm wrappers!!! Thebuild
command has been updated to include the concept of "build strategies". The existing way of building (viaDockerfile
image layers) is available through thepolywrap build --strategy image
command. Building without Docker (if all build-time dependencies are installed locally) can be performed using--strategy local
. And lastly, the new default build strategy is--strategy vm
, which runs all build steps in a pre-built base image, allowing for near-local speeds (once the image has been downloaded).- NOTE:
--strategy image
is useful for source-code verification, something we'll be better supporting in the future.
- NOTE:
- PR-1297
@polywrap/schema-bind
:wasm/rust
now has support forprintln!(...)
andprint!(...)
macros. They have been redefined to use thepolywrap_wasm_rs::wrap_debug_log(...)
function. - PR-1192
@polywrap/client-js
:PolywrapClient.invoke(...)
now supports invoke-time environment variables, passed in via theenv
property. - PR-1270
polywrap
CLI: Themanifest
command has been added:
Usage: polywrap manifest|m [options] [command]
Inspect & Migrade Polywrap Manifests
Options:
-h, --help display help for command
Commands:
schema|s [options] [type] Prints out the schema for the current manifest format.
migrate|m [options] [type] Migrates the polywrap project manifest to the latest version.
help [command] display help for command
- PR-1301 Added a
--format
option to themigrate
command, enabling the targeting of specific format versions when migrating manifests (ex:polywrap manifest migrate -f 0.2.0
). - PR-1218
polywrap
CLI,@polywrap/tracing-js
: Thetracing
infrastructure module (i.e.polywrap infra up --modules tracing
) now uses version0.11.0
of theSizNoz
tracing service. Additionally the underlying@polywrap/tracing-js
library has been updated to support this, and also now has named traces via thetraceName
configuration property.
- PR-1304
polywrap
CLI: Generated build files from thevm
strategy now have proper file-system permissions. - PR-1305
@polywrap/ipfs-plugin-js
: Fallback providers are now properly being used. - PR-1296
polywrap
CLI: Thepolywrap.app.yaml
andpolywrap.plugin.yaml
project manifest file names are being deprecated in favor of a unifiedpolywrap.yaml
file for all types of projects (wasm, interface, plugin, app). They will still silently work now, but in the future will no longer be recognized defaults. - PR-1303
@polywrap/core-js
: TheUri
class now properly formats itself when beingJSON.stringify(...)
'd. - PR-1288
@polywrap/core-js
: Correctly handle errors in thegetImplementations
algorithm. - PR-1298
@polywrap/ipfs-plugin-js
,@polywrap/ipfs-resolver-plugin-js
: Remove the use ofrequire(...)
statements. - PR-1286
@polywrap/polywrap-manifest-types-js
: Manifest migration logic has been upgraded to use a strategy that finds a "shortest path" between thefrom
andto
format versions, using predefined migration functions.
- PR-1284
@polywrap/core-js
:Wrapper.getFile(...)
andWrapper.getManifest(...)
no longer require aClient
instance as a second function argument. - PR-1291
@polywrap/core-js
,@polywrap/client-js
: AllClientConfig
properties are nowreadonly
. - PR-1287
@polywrap/core-js
:executeMaybeAsyncFunction
has been removed. - PR-1277
@polywrap/client-js
: The following methods now return theResult<T, E>
type, and will not throw exceptions:getManifest(...)
,getFile(...)
,getImplementations(...)
,query(...)
,invokeWrapper(...)
,invoke(...)
,loadWrapper(...)
. - PR-1192
@polywrap/client-js
:PolywrapClient.invoke(...)
no longer accepts invoke-time reconfiguration via theconfig
property. Users who wish to reconfigure the client can do so by callingclient.getConfig()
, modifying it via theClientConfigBuilder
, and constructing a newPolywrapClient
instance.
- PR-1083
@polywrap/client-config-builder-js
: The default client config now has the ability to resolvehttp
URIs (ex:wrap://http/domain.com/path
) via the@polywrap/http-resolver-plugin-js
. - PR-1083
polywrap
CLI: Hosting & deploying wrappers via HTTP is now possible with the newhttp
deploy & infra modules. - PR-1097 & PR-1272
polywrap
CLI,@polywrap/polywrap-manifest-schemas
,@polywrap/polywrap-manifest-types-js
:polywrap.deploy.yaml
format version0.2.0
has been added, making the schema similar to thepolywrap.test.yaml
schema, where users define a series ofjobs
to be performed. - PR-1097
polywrap
CLI: Recursive ENS domain name registration is now supported via theens-recursive-name-register
deploy module. - PR-1060
@polywrap/ipfs-interface
: AddedfallbackProviders: [String!]
totype Options
. - PR-1169
@polywrap/core-js
,@polywrap/client-js
: URI resolution has been refactored. Resolution is now implemented in a singleIUriResolver
instance. - PR-1169
@polywrap/client-js
:invokeWrapper(...)
has been added to thePolywrapClient
class. - PR-1169
@polywrap/client-config-builder-js
:setResolver(...)
has been added, enabling users to set theIUriResolver
instance on the builder'sClientConfig
. - PR-1133
@polywrap/core-js
,@polywrap/client-js
:getPluginByUri(...)
has been added to theClient
interface, andPolywrapClient
class. - PR-1231
polywrap
CLI:build
command now supports the--no-codegen
option, which disables the automatic codegen step when compiling projects.
- PR-1244
polywrap
CLI: Workflows can now properly access nested properties of previous job step output. - PR-1243
@polywrap/schema-compose
: Multi-line imports are now properly supported within block comments. - PR-1097
polywrap
CLI: ENS deployment URIs generated via thedeploy
command now properly contain the network's name in the URI. - PR-1234
polywrap
CLI: Therun
command and underlyingWorkflow
system has had multiple bug fixes added.- Workflow validation always printed "SUCCESS" and errors were never printed.
- Workflow manifest was not being validated.
- The stderr messages were not being output (previously unnoticed because errors were not printed).
- PR-1220
@polywrap/schema-bind
:wasm/rust
bindings handle the serialization of reserved words via serde, so that the original name of properties is reserved during encoding. - PR-1219
@polywrap/schema-bind
:wasm/rust
bindings now properly handle imported interface modules. - PR-1229
polywrap
CLI:run
command now properly resolves thevalidation: ...
property within thepolywrap.test.yaml
manifest relative to the manifest's directory, instead of the user's cwd.
- PR-1097
polywrap
CLI: Thelocal-dev-ens
deploy module has been removed. - PR-1060
@polywrap/ipfs-plugin-js
:IpfsPluginConfig
has been removed, and all properties (provider
,fallbackProviders
) have been moved into the wrapper'sEnv
. - PR-1169
@polywrap/client-js
:loadUriResolvers(...)
has been removed from thePolywrapClient
class. - PR-1169
@polywrap/client-js
:resolveUri(...)
has been renamed totryResolveUri(...)
on thePolywrapClient
class. - PR-1169
@polywrap/core-js
,@polywrap/client-js
:getUriResolvers(...)
has been renamed togetUriResolver(...)
on theClient
interface andPolywrapClient
class. - PR-1169
@polywrap/client-config-builder-js
:addUriResolver(...)
andsetUriResolvers(...)
have been removed from theClientConfigBuilder
class. - PR-1169
@polywrap/core-js
,@polywrap/wasm-js
: Moved theWasmWrapper
class and all related types into their own package named@polywrap/wasm-js
. - PR-1235
@polywrap/core-js
:Uri.from(...)
has been added, andtoUri(...)
has been removed.
- PR-1158
@polywrap/client-config-builder-js
: The following plugins have been removed from the default config, and replaced with their WebAssembly wrapper equivalents available at the same URIs:wrap://ens/uts46.polywrap.eth
wrap://ens/sha3.polywrap.eth
wrap://ens/graph-node.polywrap.eth
- PR-1213
@polywrap/schema-bind
: Nested map types (i.e.Map<K, Map<K, V>>
) are now properly supported forwasm/rust
andwasm/assemblyscript
. - PR-1213
@polywrap/wasm-as
: Nested map types (i.e.Map<K, Map<K, V>>
) are now properly msgpack encoded. - PR-1212
polywrap
CLI:wasm/rust
build image now uses thebuild-deps
cargo extension to properly build dependencies in a seperate Dockerfile layer, enabling the caching of compiled artifacts.
- PR-1217
@polywrap/schema-bind
:plugin/typescript
andapp/typescript
bindings have been updated to improve type safety, and no longer accept generic properties for all method argument types. - PR-1051
polywrap
CLI:polywrap plugin codegen
andpolywrap app codegen
commands have been moved into thepolywrap codegen
, which can now generate types for any Polywrap project (wasm, plugin, app). - PR-1154
@polywrap/schema-bind
: Thewasm/assemblyscript
bindings have been updated to useBox<T> | null
for all optional scalar types, instead of theOption<T>
class used before. - PR-1154
@polywrap/ws-plugin-js
: The WebSocket plugin's schema has been updated to useUInt32
for socket IDs, instead ofInt32
.
- PR-1100
polywrap
CLI: A new manifest namedpolywrap.test.yaml
has been added, which encapsulates workflows and validation scripts. - PR-1100
@polywrap/polywrap-manifest-types-js
:polywrap.test
manifest types have been added. - PR-1100
@polywrap/polywrap-manifest-schemas
:polywrap.test
manifest schema has been added.
- PR-1205
polywrap
CLI: Therun
command's output now has deterministic ordering for text emitted from both workflow & validation steps. - PR-1194
@polywrap/msgpack-js
: NestedMap<K, V>
serialization is now supported. - PR-1199
@polywrap/core-js
@polywrap/client-js
: Runtime type inference has been improved to be compatible with JavaScript minimization optimizations where theClass.name
static property is removed. - PR-1196
@polywrap/core-js
: AllWrapperCache
interface methods have been updated to returnMaybeAsync
promises, allowing developers to implement async logic.
- PR-1100
polywrap
CLI:run
command no longer accepts the<workflow>
argument, and instead uses the newpolywrap.test.yaml
manifest. - PR-1100
@polywrap/client-js
: Therun
method has been removed. - PR-1100
@polywrap/core-js
: AllWorkflow
related types have been removed, and migrated into the manifest packages and the CLI.
- PR-1042
@polywrap/client-js
: ThePolywrapClientConfig
now has atracerConfig: Partial<TracerConfig>
property, allowing users to easily configure the tracing level, and various toggles related to tracing. - PR-1042
polywrap
CLI: Added thetracer
infra module, allowing developers to easily spin up an OpenTelemetry compatible tracing server. This can be used to gather runtime tracelog events from thePolywrapClient
. - PR-1042
@polywrap/tracing-js
: The@Tracer.traceMethod()
function decorator now has an optionalTracingLevel
argument. - PR-1143
@polywrap/ethereum-plugin-js
: TheEthereumPluginConfig
now has aconnections
property, which takes an instance of theConnections
class. This new implementation makes configuring new network connections at runtime easier and more application developer friendly. - PR-1045
@polywrap/client-config-builder-js
: TheClientConfigBuilder
has been added to make building & customizingPolywrapClientConfigs
easier than before with a simple user friendly interface. - PR-1036
@polywrap/client-js
: Added thewrapperCache: WrapperCache
property to thePolywrapClientConfig
interface. - PR-1036
@polywrap/core-js
: Added theWrapperCache
core type, along with aSimpleCache
implementation that persists wrappers within a map.
- PR-1186
@polywrap/schema-bind
: Using aMap<K, V>
type within theMap
's value (V
) template argument has been fixed. - PR-1179
polywrap
CLI: Improved the readability of thepolywrap build -v
command's output from the Docker child process.
- PR-1042
@polywrap/client-js
: ThePolywrapClientConfig
'stracingEnabled
property has been removed, and replaced bytracerConfig
. - PR-1143
@polywrap/ethereum-plugin-js
: TheEthereumPluginConfig
'snetworks
property has been removed, and replaced byconnections
. - PR-1045
@polywrap/client-js
: ThegetDefaultClientConfig()
&defaultIpfsProviders
exports have been moved to the@polywrap/client-config-builder-js
package.
- PR-1171
@polywrap/schema-bind
: Handle reserve words (keywords) for object, enum, and method names.
- PR-1168
@polywrap/schema-bind
: Fix imported optional map issue in Rust bindings. - PR-1167 Remove all
wrap-man
folders, that were published to solve the plugin's circular dependency issue.
- PR-1091
@polywrap/polywrap-manifest-schemas
: Polywrap project manifests (polywrap.yaml
,polywrap.app.yaml
,polywrap.plugin.yaml
) have a new format0.2.0
, which restructures the manifest into 3 top level properties:project
,source
, andextensions
. Additionally all project manifests can be given thepolywrap.yaml
file name. - PR-1092
@polywrap/ws-plugin-js
: Added a WebSocket plugin. - PR-1096
@polywrap/client-js
: Expose thenoValidate
option for theclient.getManifest(...)
method. - PR-820
polywrap
CLI:docgen
command added, allowing wrapper developers to easily generate documentation. Supported formats: schema, docusaurus, jsdoc. - PR-1068
@polywrap/ethereum-plugin-js
:requestAccounts
method added, which utilizes theeth_requestAccounts
RPC method on the configured provider.
- PR-1142
wasm/rust
:Map<K, V>
bugs have been fixed. - PR-1140
polywrap
CLI: Added a check to make sure the Docker daemon is running, and provides an informative error if it is not. - PR-1090
polywrap/wrap-manifest-types-js
: Remove runtime schema bundling, which required file system access. - PR-1050
polywrap
CLI: Errors encounted in child processes now output bothstdtypesout
andstderr
, allowing easier end-user debugging.
- PR-1046
polywrap
CLI:schema.graphql
has been removed from wrapper build artifacts.polywrap.plugin.yaml
has been removed from plugin build artifacts. - PR-1046
@polywrap/schema-bind
:schema.ts
has been removed from typescript bindings. - PR-1046
@polywrap/schema-bind
@polywrap/schema-compose
:WrapAbi
is now used in all places, instead of schema documents. - PR-1095
@polywrap/http-plugin-js
: UseMap<String, String>
forheaders
&urlParams
. - PR-1073
@polywrap/schema-compose
: TheComposerOptions
propertyschemas: SchemaFile[]
has been replaced withschema: SchemaFile
. Additionally the function argumentschemas: SchemaFile[]
on theresolveImports
function has bee replaced withschema: SchemaFile
. - PR-1073
@polywrap/wrap-manifest-types-js
: InWrapAbi
format0.1
, properties no longer acceptnull
and instead useundefined
. - PR-1073
@polywrap/schema-parse
:Abi
export renamed toWrapAbi
.
- PR-1034
@polywrap/wrap-manifest-schemas
,@polywrap/wrap-manifest-types-js
: Added a JSON-schema for thewrap.info
'sabi
field. - PR-1058
polywrap
CLI: Deploy results can now be output to a file using the-o, --output-file <path>
option of thedeploy
command.
- PR-1034
@polywrap/wrap-manifest-schemas
,@polywrap/polywrap-manifest-schemas
: Version numbers for the manifest'sformat: ...
field have been changed to only include<major>.<minor>
(ex:0.1.0
is now0.1
). This is because there cannot be a change to a pure interface that is a<patch>
. - PR-1034
@polywrap/package-validation
: Thewrap.info.abi
field is no longer being validated via schema rendering, and is instead utilizing the newly added JSON-schema. - PR-1054
polywrap
CLI: Improvedwasm/rust
build times by refactoring the build image's Dockerfile, helping reduce cache invalidations. - PR-1053
@polywrap/wasm-as
: Increased minor version of as-bignumber. The new version has a bug fix for the toFixed method, which was incorrectly printing numbers when a decimal number was rounded to an integer.
- PR-1034
@polywrap/wrap-manifest-types-js
:deserializeWrapManifest
is nowasync
.
- PR-1040
polywrap
CLI: Added proper CORS handling for the IPFS node located within theeth-ens-ipfs
default infra module.
- PR-1035
polywrap.meta
Manifest: Removed thequeries
property from version0.1.0
of the manifest. - PR-1039
@polywrap/ipfs-resolver-plugin-js
: Remove theIpfsResolverPlugin
's config, as it was never being used.
- PR-1017
@polywrap/templates
,polywrap
CLI: Rust wasm wrapper project template has been added, and made available via thepolywrap create ...
CLI command.
- PR-1016
polywrap
CLI: Improved logging when running workflows using thepolywrap run ...
command. - PR-924
@polywrap/schema-parse
,@polywrap/schema-bind
: ComplexMap<Key, Value>
type usages within wrapper schemas lead to incorrect bindings being generated. Additional tests + fixes have been added.
"Good evening traveler, welcome to Polywrap, a planet in the WRAP galaxy. We're happy to have you here. Ask around, I'm sure someone can help you navigate this place..." - NPC
- PR-986 WRAP build artifacts have been refined:
- Wasm module name changed from
module.wasm
towrap.wasm
- Polywrap manifests are no longer written to build folder (except for project metadata).
- The
wrap.info
is now the primary manifest file describing the wrapper:{ version, type, name, abi }
- source
- encoded as msgpack binary file
schema.graphql
remains but will be deprecated forwrap.info
's built-inabi
.
- Wasm module name changed from
- PR-1006
polywrap-wasm-rs
: Add Rust encoder unit tests. - PR-967
polywrap
CLI,polywrap-wasm-rs
,@polywrap/wasm-as
,@polywrap/schema-parse
,@polywrap/schema-compose
,@polywrap/schema-bind
,@polywrap/core-js
,@polywrap/client-js
: Environment configuration for wrappers was refactored to enable environments at the method level, remove client env sanitization and adding support for Rust.@env
annotation was introduced for methods declared in wrappers's schemas. - PR-1005
@polywrap/core-js
,@polywrap/client-js
: Refactoredclient.subscribe
to use invoke syntax.
- PR-967 Wasm runtime (
polywrap-wasm-rs
,@polywrap/wasm-as
) changed invoke signature and imports/exports, schema pipeline (@polywrap/schema-parse
,@polywrap/schema-compose
,@polywrap/schema-bind
) now supports external env imports and TypeInfo and@env
annotation for methods,polywrap
changed compiler's imports,@polywrap/core-js
changed Plugin interface,@polywrap/client-js
changed environment model implementation. - PR-1005
@polywrap/core-js
,@polywrap/client-js
: Refactoredclient.subscribe
to use invoke syntax.
- PR-989
@polywrap/core-js
: Add job status in workflow job's result object. - PR-992
polywrap
CLI: Allow configuring the client using the--client-config
on all applicable commands. - PR-1000
@polywrap/core-js
: Added theencodeResult
property toInvokeOptions
. - PR-1000
@polywrap/core-js
: Introduced the concept ofInvoker
andInvocable
. - PR-988
polywrap
CLI,wasm/rust
: Updates to the default build-image (Dockerfile
):- Added the system dependencies
clang
,llvm
andbuild-essentials
. - Added steps to remove any
wasm-bindgen
imports that may have been injected.
- Added the system dependencies
- PR-1000 Fixed inconsistencies around
ArrayBuffer
andUint8Array
. - PR-1000
@polywrap/client-js
: ThenoDecode
flag (renamed toencodeResult
) now enfoces the decoding properly, where before it could get confused with returningBytes
from a wrapper. - PR-981
polywrap-wasm-rs
: Remove thewrap-invoke
feature because it is not being used at the moment.
- PR-980
@polywrap/schema-parse
: RenameTypeInfo
fromAbi
.
- PR-912 PR-930 PR-958 All URI resolver extensions have been decoupled and moved into their own plugin packages:
@polywrap/fs-resolver-plugin-js
@polywrap/ipfs-resolver-plugin-js
@polywrap/ens-resolver-plugin-js
- PR-912
@polywrap/file-system-interface
has been created to help standardize FileSystem wrapper implementations. - PR-930
@polywrap/ipfs-interface
has been created to help standardize IPFS wrapper implementations.
- PR-957
@polywrap/schema-bind
:plugin/typescript
module config type interfaces no longer inherit fromRecord<string, unknown>
, making them more type-safe and less generic.
- PR-937 PR-960 The term
Nullable
has been changed toOptional
within thewasm
wrapper codegen. Additionally inwasm/assemblyscript
theNullable<T>
type has been changed to a rust-styleOptional<T>
type. - PR-972 The term
input
in the context of invocations has been renamed toargs
. - PR-976 The invocation
resultFilter
option has been deprecated, as it is a needless & unused feature.
- PR-903
polywrap
CLI: Recipes have been re-worked into composable workflows, and they can be run using CLI commands. - PR-951
polywrap
CLI: Docker Buildx output option has been removed. - PR-944
@polywrap/schema-bind
,@polywrap/wasm-as
:Nullable
type has been replaced withOption
in the Assemblyscript schema bindings. - PR-938
@polywrap/schema-bind
,@polywrap/wasm-as
: Rollback of JSON serialization in the Assemblyscript schema bindings.
- PR-946
@polywrap/test-env-js
: Path fix fornpmCLI
test utility.
- PR-903
polywrap
CLI: Running recipes via thepolywrap query ...
command has been deprecated in favor of a new workflows system, accessible via thepolywrap run ...
command. - PR-944
wasm/assemblyscript
Wrappers:Nullable
type has been removed in favor ofOption
which also has a different interface. - PR-938
wasm/assemblyscript
Wrappers:JSON
serializer and deserializer, and related methodsfromJson
andtoJson
have been removed in favor ofparse
andstringify
.
- Various CI/CD fixes.
- PR-928
@polywrap/manifest-schemas
: Inline documentation has been added to manifest JSON-schemas. - PR-933 Validation package
@polywrap/package-validation
has been implemented to validate WASM wrapper packages.
- PR-932
@polywrap/schema-bind
: Minor fix for JSON type schema bindings - PR-935
@polywrap/test-env-js
: Path fix fornpmCLI
test utility
- PR-923 The Polywrap brand has been applied to the codebase.
- PR-906 The concept of
Mutation
andQuery
modules has been deprecated. Now all wrapper methods are defined within a singleModule
.
- PR-923 All prior integrations using the "Web3API" packages must upgrade to the new "Polywrap" equivalents.
- PR-906 All wrappers created prior to this change are incompatible.
- PR-910
@web3api/cli
:web3api.infra.yaml
manifests now support the concept of "default" modules. - PR-878
@web3api/client-js
:Workflows
can now be run using theclient.run(...)
method. Integration into the Polywrap CLI will be released in the near future.
- PR-908
@web3api/asyncify-js
: Improved WebAssembly import sanitization has been added, resolving an ambiguous error that was found when extraneous imports were added to a built module. - PR-902
@web3api/cli
:w3 create plugin ...
&w3 create app ...
now properly parse their expectedlanguage
andname
arguments.
- PR-328
@web3api/infra
: A modular infrastructure pipeline has been added to the CLI, available via thew3 infra ...
command. This command allows for custom infra modules to be defined and combined, able to support any 3rd party services your development requires. This command supersedes the oldw3 test-env ...
command. - PR-898
@web3api/cli
: Thewasm/rust
default build image has been updated to include thewasm-snip
utility, which helps remove dead code from the wasm modules in a post-processing step. This has reduce the average Rust-based wasm module's size by ~85%. - PR-885
@web3api/test-env-js
: AbuildApi
helper function has been added.
- PR-328
@web3api/cli
: Thew3 test-env ...
command has been removed and replaced by thew3 infra ...
command.
- PR-870
@web3api/cli
: Theweb3api.deploy.yaml
manifest file now supports the use of environment variables. - PR-866
@web3api/test-env-js
: ThebuildAndDeployApi
test utility now supports recursive ENS subdomain registration.
- PR-884
@web3api/client-js
: Plugin registrations are now properly sanitized, and overridden plugins will be removed from the plugins array. - PR-892
@web3api/cli
: Some minor fixes have been made to thewasm/rust
build image's default Dockerfile.
- PR-699
@web3api/cli
: Support for Rust based WebAssembly wrappers has been added.
- PR-872
@web3api/schema-bind
: TypeScript bindings for both app & plugin projects now useArrayBuffer
to represent the schema'sBytes
type, instead of the previousUint8Array
.
- PR-864
@web3api/react
:useWeb3ApiInvoke
anduseWeb3ApiQuery
hooks now support configuring the client's environment, along with all other configuration options. - PR-808
@web3api/cli
: Theweb3api.build.yaml
manifest now supports additional docker buildkit configuration options, including:- local docker image layer cache
- custom image output location
- remove image after build
- remove builder instance after build
- PR-827
@web3api/ethereum-plugin-js
: The provider's connection can now be configured via the wrapper's environment. - PR-807
@web3api/cli
: Make the CLI's Docker file-lock project specific, instead of global to the CLI installation.
- PR-847
@web3api/templates
: The template projects used for thew3 create ...
CLI command now have proper CI setup, and multiple bugs were fixed within them. - PR-861
@web3api/test-env-js
: ThebuildAndDeployApi
function'sensName
no longer assumes the.eth
TLD is ommitted, and requires the user to provide it along with the domain name. This was the original behavior, and was modified in release0.0.1-prealpha.75
.
- PR-859
@web3api/cli
: The CLI is now built using thecommander
package. The CLI's help text formatting has changed in structure as a result.
- PR-855 Pinned
@types/prettier
to version2.6.0
to fix an issue that was created by the latest release.
- PR-852
@web3api/client-test-env
: The IPFS node's API endpoint now has CORS enabled via the following configuration properties:- API.HTTPHeaders.Access-Control-Allow-Origin:
["*"]
- API.HTTPHeaders.Access-Control-Allow-Methods:
["GET", "POST", "PUT", "DELETE"]
- API.HTTPHeaders.Access-Control-Allow-Origin:
- Pinned
@types/prettier
to version2.6.0
to fix an issue that was created by the latest release.
- PR-846
@web3api/wasm-as
: Add support for automatic JSON serialization via the@serial-as/transform
asc
compiler transformation. - PR-846
@web3api/schema-bind
: Assemblyscript object types now haveType.toJson(type)
andType.fromJson(json)
static helper methods added to all class instances. - PR-840
@web3api/cli
: Allowasync getClientConfig
functions within modules passed into thew3 query
command's--client-config
option.
- PR-836
@web3api/cli
: All commands properly handle the--help
option.
- PR-814
@web3api/cli
: A modular deployment pipeline has been added to the CLI. It can be accessed via thew3 deploy
command.
@web3api/schema-bind
: Fix incorrect export fromplugin-ts
bindings.
- PR-821
@web3api/cli
: Fixed a codegen issue when generating types for plugins with only one module.
- PR-620 Plugin DevExp Improvements: The plugin developer experience has been revised to be very close to the API development experience.
- PR-697
BigNumber
Schema Type: TheBigNumber
type is now available for use as a base type for Web3API schemas. - PR-802
@web3api/cli
:w3 query ...
command now supports the following options:-o, --output-file
: Output file path for the query result.-q, --quiet
: Suppress output.
- PR-790
@web3api/schema-bind
:wasm-as
bindings have been updated to include a helper functionrequireEnv()
, which can be used to check if the environment is null or not. - PR-795
@web3api/templates
: The AssemblyScript & interface templates used for thew3 create api ...
command has been updated to include metadata (descriptions, icons, etc). - PR-794
@web3api/templates
: The AssemblyScript template used for thew3 create api assemblyscript ...
command has been updated to include e2e tests.
- PR-777
@web3api/client-js
: TheWeb3ApiClient
now has a public methodloadUriResolvers()
, which will pre-fetch all URI resolver implementations.
- Issue-715 PR-777
@web3api/client-js
: Custom URI resolver implementations now no longer cause an infinite loop during URI resolution.
- PR-777
@web3api/client-js
:Web3ApiClient
public methodgetResolvers(...)
renamed togetUriResolvers(...)
. - PR-777
@web3api/client-js
:Web3ApiClientConfig
propertyresolvers
renamed touriResolvers
.
@web3api/core-js
: Fixed the manifest migration script forweb3api.meta
from v1 to v3. Thename
property is now migrating properly todisplayName
.
- PR-669
Map<K, V>
schema base-type has been added. - PR-761 Modules now subinvoke interface implementation wrappers through the
__w3_subinvokeImplementation
host import. This now gives us a specific import function for these sort of invocations, which can allow for additional types of verification features to be added by clients. - PR-769
@web3api/schema-bind
: Add support forgetImplementations
capability in TypeScript plugin (plugin-ts
) codegen. - PR-763
@web3api/schema-bind
: Theschema-bind
project is now "module agnostic" and accepts an array of arbitrary modules, which it will pass directly to the different binding projects (wasm-as
,plugin-ts
,app-ts
, etc). - PR-759
@web3api/manifest-schemas
: Added thename: string
property to theweb3api
manifest. - PR-759
@web3api/manifest-schemas
: Renamedweb3api.meta
'sname
property todisplayName
. - PR-772
@web3api/manifest-schemas
: Added thetags: string[]
property to theweb3api.meta
manifest, allowing wrapper to developers to add tag keywords to their package's metadata, helping improve searchability on package indexers like The Polywrap Hub. - PR-747
@web3api/ethereum-plugin-js
: Changed all instances of thechainId
property's type toBigInt
fromUInt32
. - PR-776
@web3api/ethereum-plugin-js
: AddedgetBalance
to theQuery
module, allowing callers to check the native balance of arbitrary addresses.
- PR-669 Wrappers that utilize the new
Map<K, V>
schema base-type will break forward compatability of Polywrap clients.- Relevant Downstream Dependencies:
@web3api/client-js
- Relevant Downstream Dependencies:
- PR-761 Modules that use the
getImplementations
capability for interfaces will now require the following host imports:__w3_subinvokeImplementation
,__w3_subinvokeImplementation_result_len
,__w3_subinvokeImplementation_result
,__w3_subinvokeImplementation_error_len
,__w3_subinvokeImplementation_error
- Relevant Upstream Dependencies:
@web3api/wasm-as
,@web3api/schema-bind
,@web3api/cli
,@web3api/client-js
- Relevant Upstream Dependencies:
- PR-763
@web3api/schema-bind
: The entry point function's input & output types have changed. - PR-763
@web3api/cli
: The type of the expected export from user-defined codegen scripts has changed from:
generateBinding = (
output: OutputDirectory,
typeInfo: TypeInfo,
schema: string,
config: Record<string, unknown>
) => void;
to
generateBinding = (
options: BindOptions
) => BindOutput;
- PR-766
@web3api/client-js
: User-configured interface implementations now extend the default configuration's, instead of overwritting them.
- PR-756
@web3api/schema-bind
: Imported enums are properly included in the schema bindings when there are no objects imported.
- PR-726 Improved the application developer experience by creating a new
w3 app codegen
command, which generated types based on the apps wrapper / plugin integrations. For an example of how this works, see the updated application template projects by runningw3 create app typescript-node my-app
orw3 create app typescript-react my-app
. - PR-726
@web3api/react
: Added theuseWeb3ApiInvoke
hook as a non-graphql alternative touseWeb3ApiQuery
. - PR-726
@web3api/schema-compose
: Importing all dependency types from a schema import schema statement can now be done through the new wild-card syntax:#import * into Namespace from "w3://authority/path"
.
- PR-726
@web3api/cli
:w3 build
CLI command now requires the use of the--manifest-file <path>
option in order to specify a custom build manifest file path. - PR-726
@web3api/cli
:w3 codegen
CLI command option renaming:-m, --manifest-path <path>
to-m, --manifest-file <path>
-c, --custom <path>
to-s, --script <path>
-o, --output-dir <path>
to-c, --codegen-dir <path>
- PR-726
@web3api/cli
:w3 plugin
CLI command option renaming:-m, --manifest-path <path>
to-m, --manifest-file <path>
- PR-718
@web3api/cli
:w3 plugin codegen
now outputs the plugin manifest to the build directory. - PR-695
@web3api/ethereum-plugin-js
: Added Query methods:solidityPack
,solidityKeccak256
,soliditySha256
.
- PR-718
@web3api/cli
:w3 plugin codegen
option-s, --output-schema-path
changed to-p, --publish-dir
. - PR-718
@web3api/cli
:w3 plugin codegen
option-t, --output-types-dir
changed to-c, --codegen-dir
.
- PR-690
@web3api/http-plugin-js
: Better axios response header handling for lists. - PR-692
@web3api/wasm-as
: Properly propogateResult<T, E>
error upon unwrap exception.
- PR-685
@web3api/schema-parse
: Properly support recursive object definition properties.
- PR-650
@web3api/cli
: Add YAML support for query recipes. - PR-385
@web3api/cli
,@web3api/client-js
: Use JSON for manifest build artifacts. - PR-678
@web3api/cli
: Build command no longer uses same docker image name by default. The concept of a "build UUID" has been added, and will be appended to the docker image name (if the develoer has not specified their own insideweb3api.build.yaml
). - PR-610
@web3api/client-js
: Support theresolveUri(...)
method onWeb3ApiClient
instances.
- PR-665
@web3api/ethereum-plugin-js
: FixTxRequest
property mapping to ethers.js types. - PR-672
@web3api/core-js
,@web3api/schema-bind
,@web3api/schema-parse
: Remove use of the JS string.substr
method. - PR-673
@web3api/cli
: Thew3 query ...
command now property setsexitCode
to 1 if a query fails. - PR-651
@web3api/http-plugin-js
: JSON payloads are now property supported.
- PR-674
@web3api/cli
,@web3api/schema-bind
: ReturnResult<T, E>
objects from all AssemblyScript subinvoke methods.
- Use the https://ipfs.wrappers.io IPFS gateway throughout the codebase.
- Rename TypeInfo
queryTypes
&importedQueryTypes
tomoduleTypes
&importedModuleTypes
. @web3api/ipfs-plugin-js
: Improve the IPFS plugin's URI resolver implementation, and add the ability to query from multiple gateways in parallel.
@web3api/cli
: Added the--client-config
/-c
option to thew3 query
CLI command, allowing the user the define their own client configurations within a JavaScript or TypeScript module.@web3api/client-js
: Plugins can now be initialized with the client's environment registered at the plugin's URI.
@web3api/schema-bind
: Properly handle reserve words for the bind target's language. Reserved words will be prepended withm_
in order to avoid compiler errors.
@web3api/schema-compose
:ComposerOptions
propertyschemas
is now of typeRecord<SchemaKind, SchemaFile>
and notRecord<string, SchemaFile>
.@web3api/schema-bind
:TargetLanguage
type has been renamed toBindLanguage
.@web3api/schema-bind
:BindOptions
propertylanguage
has been renamed tobindLanguage
.
@web3api/cli
: Properly resolve NPM dependencycolors
due to it being corrupted.@web3api/cli
: Plugin schema codegen now properly represents imports types from both Query and Mutation modules.@web3api/cli
: Properly defined the separation of theManifestLanguage
andBindLanguage
(ex: wasm/assemblyscript -> wasm-as).@web3api/schema-compose
: Introduce the concept of aSchemaKind
to help determine how schemas should be combined.@web3api/schema-compose
: Allow plugins to import mutations within their schemas.@web3api/schema-bind
: Introduced the concept ofBindTarget
to represent a list of known-good bind targets (wasm-as
,plugin-ts
, etc).
- Web3APIs can now be configured via environment variables. Documentation will be created soon. Initial details on this features specification can be found here.
@web3api/client-js
: AddednoDecode
invocation option.@web3api/client-js
: AddednoDefaults
constructor option.
@web3api/ethereum-plugin-js
: TheencodeParams
now properly parses arguments of type Array & Tuple.
@web3api/cli
: CLI command middleware support has been added. The first use-cases implemented are to help ensure Docker is available to the CLI instance, and not in-use by another CLI instance.@web3api/client-js
: Query-time configuration overrides have been added, allowing developers to define new configurations without having to re-create the client instance.
@web3api/asyncify-js
: Fixed issue #570 by using a node-version-agnostic way of indexing into the Uint8Array buffer.
@web3api/ethereum-plugin-js
: The encodeFunction now support array & object arg types.
@web3api/schema-compose
: Properly support empty schema types.@web3api/asyncify-js
: Fixed a low-level inconsistency between Wasm modules when using imported memory. More details here.@web3api/schema-bind
: Fixed issue where imports were inconsistent betweenserialization.ts
assemblyscript files, and some necessary imports were missing.
@web3api/ethereum-plugin-js
: AddedgetNetwork
to the Ethereum plugin'sQuery
module.
as-bigint
upgraded to version0.4.0
. Improvements made found here.
- Querying an interface implementation's modules given its URI is now supported within Wasm.
as-bigint
upgraded to version0.3.2
. Improvements made found here.
- Getting the implementations of an interface is now supported from within Wasm.
@web3api/tracing-js
: Added a class method decorator for tracing.
@web3api/fs-plugin-js
: Added a "File System" plugin, which implements theuri-resolver
interface, enabling users to load Web3API packages from their local filesystem. For example, a user could specify the URI/fs/path/to/package/directory
.- Upgraded the toolchain's Node.JS version to 16.13.0, which solves compatibility issues with Mac computers using the new M1 processor.
@web3api/cli
: Fixed thew3 query ...
command's recipe variable parsing logic, better supporting arrays and objects.@web3api/schema-compose
: Improved import parsing, and added support for recursive schema imports.
@web3api/test-env-js
: Allow the usage of this package as an npm package outside of the monorepo folder structure.
@web3api/client-js
: Add the Graph Node plugin to the client's default configuration.@web3api/ethereum-plugin-js
: Add theencodeFunction
query method, allowing callers to encode smart contract methods w/ argument values.
@web3api/core-js
: Properly check for "undefined" values in query arguments.@web3api/wasm-as
: Improved MsgPack deserialization of integers (signed & unsigned).
@web3api/tracing-js
: Support service name configuration.
@web3api/client-js
: Use Fleek's IPFS gateway.
@web3api/client-js
: Added theclient.subscribe(...)
method, enabling users to easily send queries at a specified frequency.
@web3api/tracing-js
: Replaced theutil-inspect
dependency with a browser compatible one.
@web3api/schema-parse
: Removed unnecessary sanitization for imported methods without any arguments.
@web3api/schema-parse
: Added support forJSON
as a base type.@web3api/ens-api
: Merged in an initial version of the ENS Wasm based Web3Api.web3api.build.yaml
: Added support for thelinked_packages
property, allowing you to link local packages into the dockerized build-env.
@web3api/schema-compose
: Fixed an invalid GraphQL bug that occured when an imported query method did not have any arguments.
@web3api/client-js
: AddedgetManifest(...)
,getFile(...)
, andgetSchema(...)
methods to the client, simply provide a URI.@web3api/cli
: APIs can now define metadata via theweb3api.meta.yaml
manifest file. Upon compiling your project, the CLI will copy all referenced metadata files into the build directory. Applications such as The Polywrap Hub will use this metadata file to display details about your package such as: title, description, icon, example queries, etc.
@web3api/schema-parse
: Duplicate fields on object & query types are not detected, and will cause a compiler error.
@web3api/client-js
: Removed theloadWeb3Api(...)
method from the client. This is because we do not want to give the user of the client a direct reference to the underlying API class object. Since garbage collection will delete these, having the user able to hang onto references, will result in them staying in memory.
@web3api/client-js
: Addedhttps://polywrap-dev.mypinata.cloud
andhttps://ipfs.infura.io
as default fallback IPFS providers.
@web3api/ipfs-plugin-js
: Fallback providers are now used if an error is encountered, not just for timeouts.
@web3api/client-js
: Removed the usage of_w3_init
, as it's unnecessary and caused issues with adding Rust-Wasm support.
@web3api/asyncify-js
: Fixed problem when Wasm modules are larger than 4 KB. More info here.@web3api/client-js
: Use new asyncify-js package, where instantiation is asynchronous.
- Upgrade all JavaScript plugins to use the new
w3 plugin codegen
command. The command generates typings based on the GraphQL schema of the plugin. This ensures the plugin's resolvers match 1:1 with the GraphQL schema.
@web3api/schema-bind
: Fix TypeScript plugin enum bindings.
@web3api/schema-bind
: Fix TypeScript enum bindings.@web3api/graph-node-plugin-js
: Fix mismatched schema.
@web3api/schema-bind
: Fixed plugin code generation oversight. Should be usingnull
instead ofundefined
.
- Improved the plugin developer experience by creating a new
w3 plugin codegen
command, which generated types based on the plugin's schema. For an example of how this works, see the updated plugin template project by runningw3 create plugin typescript my-plugin
. @web3api/cli
: Refactored thew3 codegen
command, making its default behavior the generation of types for Web3APIs. It's "old" behavior of loading a custom generation script is now usable through the--custom
option.
@web3api/cli
: Properly validate all required Wasm exports when compiling Web3APIs.
- Use Binaryen's Asyncify to support async Wasm import calls. Deprecate the Wasm threading model we were using previously. This now means that the client now supports all browsers, as it no longer requires
SharedArrayBuffer
& theatomics
library. @web3api/graph-node-plugin-js
: Finalized the graph-node plugin implementation, added e2e tests. It currently only works with the hosted service.
- Removed support for UInt64 & Int64 base types. More info here.
@web3api/cli
: Properly validate all required exports from Web3API Wasm modules at compile-time.@web3api/ethereum-plugin-js
: Properly support smart contract methods with structures as arguments.
@web3api/ethereum-plugin-js
: Fix ethers.js inconsistencies.
- Web3API Interfaces are now fully supported in the tool-chain.
- GraphQL schema comments are now retained, and will show up in the build folder.
@web3api/parse
: Reference types definitions are now differentiated from the root definitions the reference.
@web3api/cli
: Fix MacOS specific issue w/ PATH not being retained.- The
config
property inweb3api.build.yaml
is now optional.
- Fixed API template project
- Fixed API template project
@web3api/uniswapV2-api
: Completed the Uniswap V2 Web3API implementation.@web3api/ethereum-plugin-js
: Upgraded the Ethereum plugin, added lots of new functionality.@web3api/cli
: Implemented a "reproducible build pipeline", where Web3APIs are now built in an isolated docker container. These builds can be fully configurable by developers. This also paves the way for implementing Web3APIs in any Wasm compatible language. Rust support on the way!@web3api/react
: Added the ability to set queryvariables
within theexecute
function returned by theuseWeb3ApiQuery
hook.@web3api/sha3-plugin-js
: A SHA3 plugin has been implemented, and added to the client as a "default plugin".@web3api/uts46-plugin-js
: A UTS46 plugin has been implemented, and added to the client as a "default plugin".- CI: Windows CI has been implemented using appveyor.
@web3api/client-js
: Fixed threading issue causing the "unknown wake status" error.- Fixed Windows specific errors.
@web3api/client-js
: Added theWEB3API_THREAD_PATH
env variable, allowing integrators to customize where thethread.js
worker thread module is imported from.@web3api/wasm-as
: Improved error logging w/ better error messages and a "context stack" showing exactly what properties of the MsgPack blob the serialization / deserialization is failing at.
@web3api/wasm-as
: Movedas-bigint
fromdevDependencies
todependencies
. Fixes issue #347
@web3api/os-js
: This package contains OS agnostic code for doing things like writing files w/ consistent line endings.- Windows Support: The toolchain now builds and runs properly on the Windows operating system.
BigInt
Schema Type: TheBigInt
type is now available for use as a base type for Web3API GraphQL schemas.@web3api/react
: TheuseWeb3ApiClient
hook was added, allowing users to easily get a reference to the Web3ApiClient used by the Web3ApiProvider.
@web3api/tracing-js
: Thetracing-js
package uses the OpenTelemetry Standard for logging trace events. This enables things like:- Benchmark Timings
- Input Argument + Output Result Logging
- In-Depth Exception Tracing
@web3api/core-js
: All functions are now traceable.@web3api/client-js
: All functions are now traceable.
- Sharing code & types between
query
andmutation
modules is now possible.
- Common types found in both
query
andmutation
schemas are properly consolidated. If types have the same name, but a different structure, and error is thrown.
- Fix the
w3 create app react ...
template project's styling to be responsive.
@web3api/ipfs-plugin-js
: Added options for request timeouts, provider overrides, and fallback providers. Additionally a new method has been added,resolve
, which allows the caller to try and resolve a given IFPS CID to ensure the document exists.
- Updated the
app/react
template project to use the latest "Hello World" Web3API published atens/helloworld.web3api.eth
.
@web3api/ethereum-plugin-js
: Network configurations must be nested within a property in order to allow for thedefaultNetwork
property to be set w/o causing a typing error (for not being of theConnectionConfig
type).
@web3api/test-env
: Expose the IPFS node's swarm port (4001).
- Fix
extractPluginConfigs.ts
output.
- Network Specific ENS Lookup
@web3api/ethereum-plugin-js
: The EthereumPlugin can now be constructed with multiple network connections (mainnet, rinkeby, testnet, etc).- All Query & Mutation methods now accept an optional
connection
property which can be used to configure a specific network to be used for the action.
- All Query & Mutation methods now accept an optional
@web3api/ens-plugin-js
: The EnsPlugin can now handle URIs that address specific networks. For example:w3://ens/testnet/myweb3api.eth
. It will request thetestnet
connection to be used when querying the Ethereum Web3API.
- Improved template projects that are used with the
w3 create ...
CLI command.
- Added schemas to plugin manifest modules, removing the need for
import_redirects
. - Fixed the IpfsPlugin's
addFile
method. - Improved the api/assemblyscript template project.
@web3api/cli
: Include the internationalization JSON files in the published package.
@web3api/ens-plugin-js
: Fix the schema.
@web3api/cli
: CLI Internalized Text Support- Currently English is implemented, and Spanish support is slated to be added next.
@web3api/schema-parse
: GraphQL Infinite Cycle Detection- Bad object relationships within the Web3API's GraphQL schema are now automatically detected, ensuring developers never create objects that can never be instantiated properly.
@web3api/templates
: Auto-Generate Smart Contract ABI & Bytecode Assemblyscript Module- This auto-generated module is being used within the
deployContract
mutation.
- This auto-generated module is being used within the
@web3api/core-js
: Theresolve-uri
core algorithm had an "off by one" iteration bug, where it never retried the firstapi-resolver
in the implementations array.@web3api/ethereum-plugin-js
: When using a provider that lacks signing capabilities (ex: Infura RPC endpoint), thegetContract
function was trying to get a signer when one did not exist.@web3api/ipfs-plugin-js
: Fixed this plugin's schema, as it was using unsupported syntax.
- Upgrade node version to v14.16.0.
- Upgrade TypeScript version to v4.0.7.
- Fixed bug in
@web3api/react
package.
- Removed documentation & demos from the monorepo.
- Console Log Web3API
- Calls log on logger plugin at uri w3://w3/logger. Default logger logs to console, but can be overridden with redirect to custom logger web3api implementation.
- Log levels: Debug, Info, Warn, Error
createWeb3ApiClient(...)
helper for easily setting up a Web3API Client with all needed plugins (ex: ethereum, ipfs, etc) in one function call.- Additional support for plugins can be added in the future, without bloating the
@web3api/client-js
package thanks to dynamic imports!
- Additional support for plugins can be added in the future, without bloating the
- When using the Web3ApiClient, specify Web3API URIs without having to create a new URI class (
new Uri("...")
). Simply provide a string instead. - Improved plugin instantiation interface.
- Proper MsgPack numeric overflow assertions (closes: #150)
- Proper usage of GraphQL Aliases when invoking multiple methods in one query.
- Web3API React Integration:
@web3api/react
- Add the
Web3ApiProvider
HOC to the root of your application. - Use the
useWeb3ApiQuery
hook to execute queries.
- Add the
- Web3API CLI e2e tests.
@web3api/test-env-js
package for common testing logic.@web3api/test-cases
for common test cases.
- Remove unused
workerize-loader
package & logic.
w3 build --watch
support, enabling the automatic rebuilding of Web3APIs whenever project files have changed.
- Enum Support
w3 create ...
CLI Fix (closes: #167)
- Fix typescript plugin template's package.json
Pre-Alpha Initial Release