Compare commits

..

307 Commits

Author SHA1 Message Date
zach
d704a5068e refactor!: make UserData more generic 2024-03-18 10:24:47 -07:00
zach
054a29e91d v1.2.0 2024-03-12 08:52:04 -07:00
zach
d32d4a3dd7 fix(pdk): return error when no response is available (#694) 2024-03-11 10:32:31 -07:00
Steve Manuel
5f62554aa1 chore: update badge to reflect rust installs (#693) 2024-03-08 11:29:07 -07:00
zach
d47af24552 feat: add ability to configure size of the Extism var store (#692)
- Adds `memory.max_var_bytes` to the manifest to limit the number of
bytes allowed to be stored in Extism vars - if `max_var_bytes` is set to
0 then vars are disabled.
- Adds some builder functions to `MemoryOptions` struct
- Sets the default var store size to 1mb
- Includes a test to make sure `var_set` returns an error when the limit
is reached
2024-03-07 09:55:02 -08:00
dependabot[bot]
8a29e5b1d4 chore(deps): Update base64 requirement from ~0.21 to ~0.22 (#690)
Updates the requirements on
[base64](https://github.com/marshallpierce/rust-base64) to permit the
latest version.
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/marshallpierce/rust-base64/blob/master/RELEASE-NOTES.md">base64's
changelog</a>.</em></p>
<blockquote>
<h1>0.22.0</h1>
<ul>
<li><code>DecodeSliceError::OutputSliceTooSmall</code> is now
conservative rather than precise. That is, the error will only occur if
the decoded output <em>cannot</em> fit, meaning that
<code>Engine::decode_slice</code> can now be used with exactly-sized
output slices. As part of this, <code>Engine::internal_decode</code> now
returns <code>DecodeSliceError</code> instead of
<code>DecodeError</code>, but that is not expected to affect any
external callers.</li>
<li><code>DecodeError::InvalidLength</code> now refers specifically to
the <em>number of valid symbols</em> being invalid (i.e. <code>len % 4
== 1</code>), rather than just the number of input bytes. This avoids
confusing scenarios when based on interpretation you could make a case
for either <code>InvalidLength</code> or <code>InvalidByte</code> being
appropriate.</li>
<li>Decoding is somewhat faster (5-10%)</li>
</ul>
<h1>0.21.7</h1>
<ul>
<li>Support getting an alphabet's contents as a str via
<code>Alphabet::as_str()</code></li>
</ul>
<h1>0.21.6</h1>
<ul>
<li>Improved introductory documentation and example</li>
</ul>
<h1>0.21.5</h1>
<ul>
<li>Add <code>Debug</code> and <code>Clone</code> impls for the general
purpose Engine</li>
</ul>
<h1>0.21.4</h1>
<ul>
<li>Make <code>encoded_len</code> <code>const</code>, allowing the
creation of arrays sized to encode compile-time-known data lengths</li>
</ul>
<h1>0.21.3</h1>
<ul>
<li>Implement <code>source</code> instead of <code>cause</code> on Error
types</li>
<li>Roll back MSRV to 1.48.0 so Debian can continue to live in a time
warp</li>
<li>Slightly faster chunked encoding for short inputs</li>
<li>Decrease binary size</li>
</ul>
<h1>0.21.2</h1>
<ul>
<li>Rollback MSRV to 1.57.0 -- only dev dependencies need 1.60, not the
main code</li>
</ul>
<h1>0.21.1</h1>
<ul>
<li>Remove the possibility of panicking during decoded length
calculations</li>
<li><code>DecoderReader</code> no longer sometimes erroneously ignores
padding <a
href="https://redirect.github.com/marshallpierce/rust-base64/issues/226">#226</a></li>
</ul>
<h2>Breaking changes</h2>
<ul>
<li><code>Engine.internal_decode</code> return type changed</li>
<li>Update MSRV to 1.60.0</li>
</ul>
<h1>0.21.0</h1>
<h2>Migration</h2>
<h3>Functions</h3>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="5d70ba7576"><code>5d70ba7</code></a>
Merge pull request <a
href="https://redirect.github.com/marshallpierce/rust-base64/issues/269">#269</a>
from marshallpierce/mp/decode-precisely</li>
<li><a
href="efb6c006c7"><code>efb6c00</code></a>
Release notes</li>
<li><a
href="2b91084a31"><code>2b91084</code></a>
Add some tests to boost coverage</li>
<li><a
href="9e9c7abe65"><code>9e9c7ab</code></a>
Engine::internal_decode now returns DecodeSliceError</li>
<li><a
href="a8a60f43c5"><code>a8a60f4</code></a>
Decode main loop improvements</li>
<li><a
href="a25be0667c"><code>a25be06</code></a>
Simplify leftover output writes</li>
<li><a
href="9979cc33bb"><code>9979cc3</code></a>
Keep morsels as separate bytes</li>
<li><a
href="37670c5ec2"><code>37670c5</code></a>
Bump dev toolchain version (<a
href="https://redirect.github.com/marshallpierce/rust-base64/issues/268">#268</a>)</li>
<li><a
href="9652c78773"><code>9652c78</code></a>
v0.21.7</li>
<li><a
href="08deccf703"><code>08deccf</code></a>
provide as_str() method to return the alphabet characters (<a
href="https://redirect.github.com/marshallpierce/rust-base64/issues/264">#264</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/marshallpierce/rust-base64/compare/v0.21.0...v0.22.0">compare
view</a></li>
</ul>
</details>
<br />


Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-03-04 09:04:37 -08:00
zach
4e0cd3b1cf doc: remove old default for timeout_ms (#688) 2024-02-26 16:29:35 -08:00
zach
f4013c5ac0 fix: circular dependencies 2024-02-22 14:04:01 -08:00
zach
ddc339334e fix: remove readme field 2024-02-22 13:07:06 -08:00
zach
ff5b714f95 v1.1.0 2024-02-22 11:01:19 -08:00
zach
ed1439ec2d fix: linker issue that depends on the ordering of the linked functions (#685)
It looks like when a module is added to the linker, all of its imports
must already be present. This PR updates the linking process to take
that into consideration and adds a test with a reproduction of the issue
@chrisdickinson shared with me.
2024-02-22 10:56:21 -08:00
zach
62f0a231b0 ci: add release workflow for convert-macros crate (#683) 2024-02-14 09:18:28 -08:00
zach
fc22412ff0 feat: allow max HTTP response size to be configured in the manifest (#674)
- Adds `memory.max_http_response_bytes` field to specify the maximum
size of an HTTP request response
2024-02-07 14:31:23 -08:00
Roland Fredenhagen
1a083f612a feat(convert): add derive macros for To and FromBytes (#667)
closes #661.

- [x] docs
- [x] tests
- [x] depend on `extism-convert/extism-pdk-path` feature in
https://github.com/extism/rust-pdk
https://github.com/extism/rust-pdk/pull/47
2024-02-05 15:59:55 -08:00
zach
efa69d3668 chore: support for wasmtime 17.0.0 (#665) 2024-01-25 16:11:17 -08:00
zach
fa1beb9155 v1.0.3 2024-01-22 10:21:30 -08:00
Onigbinde Oluwamuyiwa Elijah
fbae853505 fix: make function Plugin::function_extists check the type of the functions. (#664)
This PR addresses #654
It checks the parameters and results of the function as described in the
mentioned issue.
2024-01-22 08:40:09 -08:00
zach
8c8e4a6ffb fix(kernel): fix potential overflow in bounds check when lots of memory has been allocated (#663)
- Fixes potential overflow in bounds checking function
- Found by running the `check_large_allocations` quickcheck test in a
loop
2024-01-19 16:14:36 -08:00
zach
1f1e2699cb v1.0.2 2024-01-19 13:10:13 -08:00
zach
d5dc9b41ab feat: Use quickcheck to test allocations, fix one bug that was uncovered. (#662)
- Adds quickcheck tests for alloc/free/load/store from the kernel, I
wasn't able to include these in the new wasm-bindgen tests because
`getrandom` isn't available on wasm32-unknown-unknown
- Fixes a bug in the calculation of how much memory is needed to
allocate the next block in the kernel. This bug is triggered when
allocating at the end of a page, the size of the MemoryBlock value
wasn't being taken in consideration when determining whether or not to
call memory.grow
2024-01-19 13:04:21 -08:00
zach
822cec4093 v1.0.1 2024-01-18 10:32:04 -08:00
Marton Soos
0b4b732eb8 fix(kernel): Fix calculation of handle offset when splitting re-used memory, add kernel test (#659) 2024-01-17 15:15:51 -08:00
zach
fa368d0b5a feat(convert): add conversions for Option<T> (#658) 2024-01-12 14:45:01 -08:00
Gavin Hayes
092eba5e2f feat: manifest wasm data without base64 (#657)
base64 support is retained. Now `data` can instead be `{"ptr":
ptr_value, "len": len_value}` where `ptr_value` points to a wasm module
and `len_value` is the size of bytes of it.
2024-01-12 16:48:25 -05:00
Benjamin Eckel
94b0b9a430 docs: fix rc version in docs (#656) 2024-01-09 18:56:08 -06:00
Steve Manuel
85cc72e832 docs: add .NET PDK link to table 2024-01-09 07:41:13 -07:00
Steve Manuel
9aee9d8ca5 feat: update README (#655)
Gives the README a bit of a refresh.

---------

Co-authored-by: Benjamin Eckel <bhelx@simst.im>
2024-01-09 07:30:30 -07:00
Gavin Hayes
4012dd22de chore: kernel add Handle and Offset types to differentiate from Pointer (#652)
This cosmetic change to the kernel adds two `u64` types for usage where
`Pointer` was used and it is actually something else or is more
restrictive (a pointer to the start of a data block (handle) or a
relative offset).

Instead of adding `Offset` to match `Length` I'd prefer to use `u64`
directly when referring to those scalars, but not sure if the those
types are preferred?
2024-01-08 12:31:24 -05:00
Steve Manuel
211d55337d feat: add rust-protobuf support to extism-convert (#653)
(code from @zshipko, thank you!)

---------

Co-authored-by: Zach Shipko <zach@dylibso.com>
2024-01-05 16:36:40 -07:00
zach
431bc4d8af cleanup: improve wat detection (again) (#651)
Merged the other one too quickly, this PR is updated with some
additional feedback from @chrisdickinson:

              (Ooh, this could also start with `(;`)
https://github.com/extism/extism/pull/650#discussion_r1443419249

It's also updated to accommodate for modules that start with an open
paren followed by some whitespace. I doubt this covers all of the
permitted syntax but it should be good enough.
2024-01-05 14:58:47 -08:00
zach
cd4fc39655 cleanup: improve wat detection (#650)
- Update to ensure `is_wat` is only true when the input is a valid
string
- Update to allow leading whitespace in a wat file
2024-01-05 14:00:41 -08:00
zach
03e761908c feat: add Plugin::call_get_error_code to get Extism error code along with the error (#649)
- Adds `Plugin::call_get_error_code` to get the Extism error code when a
call fails
2024-01-05 12:52:31 -08:00
zach
26542d5740 feat(kernel): add extism_length_unsafe (#648)
- Adds `length_unsafe` function to the extism kernel, a more performant
`length` for known-valid memory handles

After this is merged I will update go-sdk and js-sdk too.

Closes #643
2024-01-03 09:29:05 -08:00
CosmicHorror
950a0f449f Toggle off default clap feature for cbindgen (#644)
The only feature for `cbindgen` is the `clap` feature for using it as a
standalone binary and isn't needed when using it as a library
2023-12-26 19:40:32 -08:00
zach
c8868c37d8 chore: update wasmtime bounds to include 16.0.0 (#642) 2023-12-20 14:37:43 -08:00
zach
ab812d9281 cleanup: remove default timeout (#641)
The default for `timeout_ms` is currently 30s which was an arbitrary
decision but it forces a user to set `timeout_ms` to null to avoid
having plugins cancelled which is a little strange.
2023-12-18 11:05:12 -08:00
Chris Dickinson
2087398513 v1.0.0-rc7 2023-12-15 15:45:23 -08:00
Chris Dickinson
212e28bec3 fix: give extism_log_drain's param a named type (#638)
This fixes a test failure on the python-sdk [1]. (See also [2]). In
particular, while maturin creates bindings for `extism_log_drain` on
clang platforms, it seems that MSVC cannot generate the required binding
information for `ffi.py`. This results in an `extism_sys` wheel whose
shared object (in this case, a DLL) contains the `extism_log_drain`, but
whose Python FFI bindings don't contain a definition for that function.

Naming the function pointer type parameter resolves the issue. What a
strange issue!

[1]:
https://github.com/extism/python-sdk/actions/runs/7172934060/job/19669775001#step:9:35
[2]:
https://github.com/extism/python-sdk/pull/18#issuecomment-1850892835
2023-12-15 15:40:54 -08:00
zach
fd95729d8d fix(kernel): length function should return 0 for invalid offsets (#635)
Fixes #634 

- Updates `extism_length` to walks the allocation list to determine
valid offsets instead of assuming the provided offset is valid

---------

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: zshipko <zshipko@users.noreply.github.com>
2023-12-14 16:55:13 -08:00
Muhammad Azeez
49e28892bc ci: release extism.dll.lib and extism.dll.a (#633)
Related to #141 and #584 
Follow up of #632
2023-12-13 22:29:29 +03:00
zach
a5edf58747 fix(kernel): improve performance after large allocations, add extism_plugin_reset to give users more control when dealing with large allocations (#627)
See https://github.com/extism/cpp-sdk/issues/15

- Limits a call to memset in the kernel to the size of the current
memory offset instead of the total size of memory.
- Adds `extism_plugin_reset` to the C API and `extism::Plugin::reset` to
Rust

---------

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: zshipko <zshipko@users.noreply.github.com>
2023-12-12 13:56:34 -08:00
zach
e5ffabb975 feat: Add extism_convert::Raw to allow direct encoding using bytemuck (#626)
- Adds `extism_convert::Raw` to encode certain types using their direct
memory representations using https://github.com/Lokathor/bytemuck
- Only enabled on little-endian targets to prevent memory mismatch
issues
- Allows for certain types of structs to be encoded using their
in-memory representation
- Makes passing structs between Rust and C easier since none of the
other encodings are available in C by default.

## Usage
After making a bytemuck-compatible struct:
```rust
use bytemuck::{Zeroable, Pod};

#[derive(Debug, Clone, Copy, PartialEq, Pod, Zeroable)]
#[repr(C)]
struct Point {
  x: i32,
  y: i32,
}
```

It can be used in `call`:

```rust
let input = Point { x: 100, y: 50 };
let Raw(pt): Raw<Point> = plugin.call("transform", Raw(&input))?;
```
2023-12-11 11:14:33 -08:00
Gavin Hayes
0285f64ecf build: add c++ compat to extism.h (#625)
Before `extern "C"` was needed to include the header in C++ code. Now
that's included inside, so it's easier and cleaner to include in c++
projects like the `cpp-sdk`.
2023-12-06 15:34:09 -05:00
Muhammad Azeez
c7a68ed757 ci: bring back nuget packages for Extism runtime (#624)
Seems like these accidentally got removed in #583
2023-12-05 22:32:53 +03:00
zach
9bff8be915 refactor!: better scoping of arguments in host_fn macro, allow visibility in macros to be specified (#621)
Fixes #619  

- Also updates `host_fn`, `encoding`, and `typed_plugin` macros to allow
for visibility specifiers to manage the visibility of the defined types.
This means that `pub` will need to be added to existing invocations that
should remain public
2023-12-05 09:58:35 -08:00
zach
b1cb80fb47 fix: improve handling of 0 length blocks (#622)
Fixes #620 

- Returns `MemoryHandle::null()` instead of returning an error when the
offset is 0
2023-12-04 10:55:26 -08:00
neuronicnobody
03718edbfc fix manifest link (#617)
Fix link to Manifest in the Rust/Runtime README
2023-12-01 17:13:47 -08:00
zach
083b6db029 cleanup: implement Debug and PartialEq for manifest types (#618) 2023-12-01 15:23:01 -08:00
Chris Dickinson
c1b14e841a v1.0.0-rc6 2023-12-01 11:52:18 -08:00
Chris Dickinson
528ae6f6a5 build: combine rust release workflows (#611)
Okay, phew.

The main bug from the [last
PR](https://github.com/extism/extism/pull/610) was that the rust
releases scramble to publish, but we have to publish them in a
particular order for the release to work since they depend on each
other.

There's a secondary bug: `cargo publish` is prone to 502'ing on publish.
I lean towards seeing how painful this is in practice; we should be able
to safely re-run the release flow on failure.
2023-12-01 11:51:18 -08:00
Chris Dickinson
75f2ea2efc doc: add example of linking modules in a plugin (#616)
Add an example of dynamically linking plugins and a benchmark that does
an apples-to-apples comparison of `reflect` using host functions vs.
`reflect` using a linked wasm module. (To my surprise, the host
functions are a _little bit faster_!)
2023-12-01 11:38:27 -08:00
Benjamin Eckel
895f82cf10 docs: Some readme changes on api status (#614)
Just moving this around and changing it up for the beta release.
2023-11-29 14:02:08 -06:00
zach
e4140fda9d cleanup: avoid matching meta.name twice (#613)
As pointed out by @mtb0x1 in
af4fd184e6 (r133737418)
2023-11-28 19:06:58 -08:00
zach
af4fd184e6 cleanup: simplify main module resolution (#612)
This PR simplifies the resolution of the `main` module when multiple
modules are provided. Before we would try to look at the path/URL when
the wasm was coming from disk or via HTTP, now any module missing a name
will be used as `main`. This is much nicer and more consistent since
this is what was being done when no filename was available (i.e. raw
data modules). It also make sense because non-main modules will need to
be named for the functions to be linked correctly.
2023-11-28 16:15:44 -08:00
zach
a517cd23be feat: enable wasmtime caching (#605)
Alternate to: #596 without support for manually compiling/loading native
code

- Enables wasmtime caching: https://docs.wasmtime.dev/cli-cache.html
- Adds `EXTISM_CACHE_CONFIG` and `PluginBuilder::with_cache_config` to
determine where to load a custom cache configuration from
- Adds `PluginBuilder::with_cache_disabled` to disable the cache when
initializing a plugin
  - Setting `EXTISM_CACHE_CONFIG=""` will also disable caching 

## Performance

With caching:
```
create/create_plugin    time:   [2.9079 ms 2.9139 ms 2.9200 ms]                                  
                        change: [+3.2677% +3.6399% +3.9766%] (p = 0.00 < 0.20)
                        Change within noise threshold.
```

Compared to `main`:
```
create/create_plugin    time:   [26.089 ms 26.498 ms 26.923 ms]                                 
                        change: [+0.1729% +2.0868% +4.1337%] (p = 0.04 < 0.20)
                        Change within noise threshold.
```
2023-11-28 11:50:21 -08:00
Chris Dickinson
938e3af7f0 v1.0.0-rc5 2023-11-27 17:30:41 -08:00
Chris Dickinson
06706f07be build: drive cargo releases from git tag (#610)
Follow-up to f7d297f98f.

Update the release workflows for the dependent crates. The Cargo
workflows run on GitHub release publish to match the Python package
release workflow. This means all of our crates are versioned in lockstep
by the Git tag.

There are four changes:

1. Trigger the workflows on GitHub release publish
2. Add the `set version` step from `release.yml` to modify the version
tags in `Cargo.toml`.
3. Publish with `--allow-dirty` (to account for the edit in step 2)
4. In `extism-maturin`, do not inherit `authors` from the workspace
since [PyPI rejects the value we have
set](https://github.com/extism/extism/actions/runs/7012534645/job/19077216730#step:7:23).
2023-11-27 17:28:56 -08:00
Chris Dickinson
e75dd05c6c v1.0.0-rc4 2023-11-27 16:25:46 -08:00
Chris Dickinson
f7d297f98f build: drive crate versions from workspace; drive workspace version from ci (#604)
This is an attempt to sand down [a sharp
edge](https://github.com/extism/extism/actions/runs/6949120346/job/18906546065#step:4:476)
around releases – keeping the `Cargo.toml` versions in-sync with the
release tag, & the versions of the workspace crates aligned with one
another.
2023-11-27 16:14:56 -08:00
zach
a94a0a7a15 cleanup: remove old SDKs (#583)
Removes all SDKs but the Rust SDK/runtime and the C SDK, which is
automatically generated from the Rust crate.

---------

Co-authored-by: Ben <ben@dylibso.com>
Co-authored-by: Steve <steve@dylibso.com>
Co-authored-by: Rob <rob@dylibso.com>
Co-authored-by: Muhammad <muhammad@dylibso.com>
Co-authored-by: Gavin <gavin@dylibso.com>
Co-authored-by: Chris <chris@dylibso.com>
Co-authored-by: Dom <dom@dylibso.com>
Co-authored-by: Charles <charles@dylibso.com>
2023-11-27 11:19:17 -08:00
Chris Dickinson
45b0749fe2 doc: add DEVELOPING.md with release workflow (#602)
Describe the release workflow as flowing from tag -> builds -> release.
2023-11-21 13:30:31 -08:00
Benjamin Eckel
15c30dfa8c fix: forgot to update the runtime version 2023-11-21 14:27:14 -06:00
Benjamin Eckel
7411eef7b0 release: 1.0.0-rc3 (#603) 2023-11-21 13:50:47 -06:00
zach
6e49548ca3 chore: support wasmtime 15 (#601) 2023-11-20 08:36:57 -08:00
George Hopkins
97f4dea8e6 Implement convenience traits for encoded types (#597)
Implement `From<T>` and `Debug` for `Base64<T>`, `Json<T>`, `Msgpack<T>`
and `Protobuf<T>`
2023-11-20 06:34:27 -08:00
George Hopkins
14248f8e17 ci: check formatting of all crates (#598)
Check formatting of all crates to ensure the whole codebase stays
formatted.
2023-11-20 06:34:04 -08:00
Muhammad Azeez
0f3b485813 Update release-dotnet-native.yaml to be resilient against file name changes (#589)
Seems like the assets now include version numbers in their name
2023-11-19 13:50:51 +03:00
Thomas Zahner
ecf5e3b9d4 Fix typo in README.md (#593) 2023-11-17 15:57:16 -08:00
Chris Dickinson
0aadf60272 build(bench): add "consume" and "echo" benchmarks (#595)
Further flesh out our runtime benchmarks: add benchmarks for sending
bytes one-way into Wasm linear memory, as well as testing copy-in then
copy-out. This compliments our `reflect` benchmark; we can get a sense
of how expensive the sub-operations are via `echo` and `consume`.
(Notably, we're missing a `produce` or `emit` that purely generates
output and sends it to the host!)

The source of these plugins is available in `extism/plugins` as
`echo.wat` and `consume.wat` [1].

[1]: https://github.com/extism/plugins/pull/4/files
2023-11-17 15:56:28 -08:00
Chris Dickinson
3eb454dd19 refactor(bench): Add throughput information to reflect function. (#592)
This parameterizes the `reflect` test and calls the `g.throughput` on
each data set to get an idea of our roundtrip throughput. (The changes
follow the "Throughput Measurements" [1] part of the Criterion guide
pretty much to the letter.)

Example output:

```
reflect/reflect 1       time:   [208.57 µs 209.05 µs 209.57 µs]
                        thrpt:  [298.23 MiB/s 298.97 MiB/s 299.66 MiB/s]
```

[1]:
https://bheisler.github.io/criterion.rs/book/user_guide/advanced_configuration.html#throughput-measurements
2023-11-16 17:23:39 -08:00
zach
2a24d13c9b refactor!: use tracing crate for logging, add extism_log_callback function (#578)
- Uses `tracing` instead of `log` crate
- Uses `tracing-subscriber` instead of `fern`
- This allows us to automatically capture `log` events using
`tracing-subscriber`
- Breaking: Makes `extism::set_log_file` private and only used through
the C API, Rust users should use `tracing-subscriber` to determine which
filters/levels to log.
- Adds `extism::set_log_callback` function to set a callback that can be
used for custom logging from Rust.
- Adds `bool extism_log_custom(const char *level)` and
`extism_log_drain(void (*fn)(const char *s, size_t length)` to the C API
to enable custom sinks in other SDKs
2023-11-16 10:35:22 -08:00
Benjamin Eckel
a1cf591de5 release 1.0.0-rc2 (#588) 2023-11-15 16:53:19 -06:00
Rob
d5c6ffb950 chore: loosen dependency requirements for base64 (#576)
Attempts to address an error seen when upgrading both Rust PDK & SDK to
latest:

```
    Updating git repository `https://github.com/extism/extism.git`
    Updating git repository `https://github.com/extism/rust-pdk.git`
    Updating crates.io index
error: failed to select a version for `base64`.
    ... required by package `extism-convert v0.2.0 (https://github.com/extism/extism.git?branch=main#7636c873)`
    ... which satisfies git dependency `extism-convert` of package `extism v1.0.0-alpha.0 (https://github.com/extism/extism.git?branch=main#7636c873)`
    ... which satisfies git dependency `extism` of package `proto_core v0.22.4 (/Users/miles/Projects/proto/crates/core)`
    ... which satisfies path dependency `proto_core` (locked to 0.22.4) of package `proto_cli v0.22.0 (/Users/miles/Projects/proto/crates/cli)`
versions that meet the requirements `^0.21.3` are: 0.21.5, 0.21.4, 0.21.3

all possible versions conflict with previously selected packages.

  previously selected package `base64 v0.21.0`
    ... which satisfies dependency `base64 = "^0.21.0"` (locked to 0.21.0) of package `extism-manifest v0.5.0`
    ... which satisfies dependency `extism-manifest = "^0.5.0"` (locked to 0.5.0) of package `extism-pdk v1.0.0-beta.0 (https://github.com/extism/rust-pdk.git?branch=main#009bf808)`
    ... which satisfies git dependency `extism-pdk` of package `proto_pdk v0.10.2 (/Users/miles/Projects/proto/crates/pdk)`

failed to select a version for `base64` which could resolve this conflict
```
2023-11-15 16:51:16 -06:00
Benjamin Eckel
719462ba61 1.0.0-beta.0 (#587) 2023-11-15 14:47:23 -06:00
Benjamin Eckel
bdb44f2e80 docs: fix readme for runtime rust sdk (#577) 2023-11-13 16:56:02 -06:00
Chris Dickinson
5afa658d10 v1.0.0-rc1 2023-11-13 13:05:56 -08:00
Muhammad Azeez
2fb29025c9 fix: nuget packing in release-dotnet-native.yaml (#524)
Seems like there are some weird subtle differences between Windows and
Linux
2023-11-09 10:00:35 +03:00
zach
91257f0a54 cleanup: simplify logging, include plugin ID in log messages (#573)
My initial goal was to make logging configurable for each plugin instead
of global but wasn't able to accomplish that in this PR (still looking
into it)

- Switches from `log4rs` to `fern` - this significantly simplifies the
logging code
  - Also considered `simplelog`
- Adds `plugin.id` to the logs whenever available
- Uses `extism::plugin::$id` target for functions logged from the PDK
2023-11-08 15:36:47 -08:00
Gavin Hayes
7636c87319 build: libextism/CMakeLists.txt add installing to support in-tree builds that use shared libraries (#575) 2023-11-08 17:17:38 -05:00
Gavin Hayes
6e18283ae6 feat: add add_subdirectory compatible cmake config (#574)
This enables cmake in-tree builds with libextism such as with the
cpp-sdk: https://github.com/extism/cpp-sdk/pull/7
2023-11-08 13:08:35 -05:00
Gavin Hayes
5eb8995347 fix: libextism - make fully static target no longer hardcoded to musl-gcc (#572)
I realized the glibc static build does actually work (though prints
warnings at compile time), so I made it no longer hard-coded to the
compiler. It's still a bad idea, so I added notes for why you shouldn't
do it with glibc.
2023-11-06 19:23:01 -05:00
Gavin Hayes
9992d34510 feat: add x86_64-unknown-linux-musl target, specifying target to make (#571)
The `x86_64-unknown-linux-musl` target does not build dynamic libraries
for now:
```
 warning: dropping unsupported crate type `cdylib` for target `x86_64-unknown-linux-musl`
```

A target may now be optionally specified to the root `Makefile`,
example:
`make RUST_TARGET=x86_64-unknown-linux-musl && sudo make
RUST_TARGET=x86_64-unknown-linux-musl install`

The new musl targets may be used to create entirely static binaries with
libextism. See the new `musl-static` target in `libextism/Makefile`
2023-11-06 17:06:44 -05:00
zach
3226060dd1 refactor!: allow Plugin::new to take raw wasm or Manifest (#569)
- Removes `Plugin::new_with_manifest` and updates `Plugin::new` to take
wasm bytes or `Manifest` using the new `WasmInput` trait
- Removes `PluginBuilder::new_with_module` in favor of a
`PluginBuilder::new` with a `WasmInput` argument
2023-11-06 13:31:24 -08:00
Benjamin Eckel
b0157efca4 chore: fix cargo resolver warning (#570)
```
warning: some crates are on edition 2021 which defaults to `resolver = "2"`, but virtual workspaces default to `resolver = "1"`
note: to keep the current resolver, specify `workspace.resolver = "1"` in the workspace root's manifest
note: to use the edition 2021 resolver, specify `workspace.resolver = "2"` in the workspace root's manifest
```
2023-11-06 14:41:39 -06:00
zach
b86ce1fec7 fix: improve handling of custom error messages (#568)
Fixes #567
2023-11-06 10:18:52 -08:00
zach
94e7722fbc test: add some http tests (#562) 2023-11-06 08:55:10 -08:00
zach
f36d0f60cc cleanup: update error message (#561) 2023-11-03 11:25:57 -07:00
zach
215d6838e9 cleanup: add PTR as an alias for I64 in C API (#560)
Similar to #558 but for libextism
2023-11-02 16:52:46 -07:00
Gavin Hayes
1aff1ce69c feat: pkg-config (#559)
Adds `pkg-config` configs for dynamic and static builds of libextism.
Example usage is shown in `libextism/Makefile`.

Added the `.in` versions of the `.pc` files to non-MSVC releases.
2023-11-02 19:38:50 -04:00
zach
ce5d43c9ae cleanup: add PTR as an alias for ValType::I64 (#558)
This will help simplify writing the types for host functions, `PTR` can
be used for any arguments that will point to Extism memory instead of
`ValType::I64`
2023-11-02 13:45:09 -07:00
zach
c5b3af2963 fix: set epoch deadline before each plugin call (#557)
We were updating the epoch deadline callback after the call has ended to
ignore any timeouts that might happen when reading output, which would
allow for the plugin to be cancelled successfully the first time a
plugin is called but would fail after the first call. This PR fixes
cancellation by resetting the epoch deadline and callback before each
plugin call.

I tested this against the dotnet sdk tests, where this was discovered,
and added a similar test to the runtime test suite,

Fixes #556
2023-11-01 13:05:08 -07:00
zach
f3447a538c refactor!: Use extism:host/env namespace for extism functions and extism:host/user for user-defined host functions (#511)
See #504 

Removes CI for the in-repo SDKs, we can remove the actual code closer to
the 1.0 release.

---------

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: zshipko <zshipko@users.noreply.github.com>
2023-10-30 11:43:40 -07:00
Gavin Hayes
fab44c5db8 feat: build static libextism (#552)
* libextism is now built to crate-type `staticlib` as recommend by
@zshipko
* updated `Makefile` to install and uninstall the static library.
* updated c example to have `static` target to link libextism statically
* Compiler is no longer hardcoded to `clang`. Set `CC` to use a compiler
other than the system compiler. Tested with `gcc` and `clang`.
* added `static-artifact` to actions release. Untested as it's only ran
on push with tag.

---------

Co-authored-by: zach <zach@dylibso.com>
2023-10-27 19:10:57 -04:00
zach
0e65c3afae refactor!: Cleanup UserData implementation, update example in README (#550)
Fixes #545 

- Adds a type parameter to `UserData` type to avoid dynamic typing
issues
- Adds KV example from README to `examples/readme.rs` to make sure it
stays in-sync
- Implement `Default` for `UserData<T>` when `T` implements `Default`
- Make `UserData` argument non-optional in `Function::new`,
`UserData::default()` can be used instead.
2023-10-26 11:19:48 -07:00
Benjamin Eckel
fea4e6c293 docs: Add some documentation for plugin.call (#546)
We should go through some of the main ones people will be interacting
with and make sure there is a little more description of how to use it.
2023-10-26 12:42:55 -05:00
Chris Dickinson
c2910bdc60 fix(release): bump maturin manylinux floor for ring 0.17 dep (#548)
An update to `ring` broke the maturin-extism builds. Tracked this down
to [1]; the maintainers of `ring` don't intend to support linux sysroots
that old. This PR updates the ARM Linux builds in particular to pull in
a newer manylinux target. Tested on a [private
fork](https://github.com/extism/dev-extism/actions/runs/6644247344) of
the extism repo.

[1]: https://github.com/briansmith/ring/issues/1728
2023-10-25 13:34:34 -07:00
Benjamin Eckel
1f72c2a1ce docs: Point to readmes (#541)
Point everything to to new repos. We will eventually remove these
subrepos to clean everything up but leaving them for the next month at
least.

---------

Co-authored-by: zach <zach@dylibso.com>
2023-10-25 10:25:38 -05:00
zach
4bd0ed6d03 feat: add ability to dump extism kernel memory and generate coredumps, cleanup kernel memory layout (#539)
Fixes https://github.com/extism/extism/issues/537

- Requires wasmtime 14.0.0 or greater for coredump serialization
- Adds `EXTISM_COREDUMP` environment variable to write wasmtime coredump
to a file when an error occurs
- This will create a coredump from the main wasm module, which means it
doesn't give us too much insight into the kernel
- Adds `EXTISM_MEMDUMP` environment variable to write extism linear
memory to a file when an error occurs
  - This gives us access to the kernel memory  
- Adds some missing profiling options
- Converts timeouts to a Trap instead of a plain error, this helps us
get better information about where the timeout occured
- Some small improvements to error handling after a plugin call
- Adds a test for coredump and memdump generation
- Adds the ability to configure debug options using `PluginBuilder`
- Fixes memory layout and a wasted page of memory in the kernel, found
while debugging a memory dump

---------

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: zshipko <zshipko@users.noreply.github.com>
2023-10-24 17:31:26 -07:00
Thomas Darimont
dba0b67cd3 chore: fix docstring for Manifest/allowed_paths (#531) 2023-10-24 17:48:40 -05:00
Chance Snow
abb31ee7de feat(dlang): Add a D host SDK (#412)
See [dlang.org](https://dlang.org).

SDK Coverage: ~91.30%	(21/23)

## Issues 

- [x] These symbols are undefined in the latest release
([v0.5.2](https://github.com/extism/extism/releases/tag/v0.5.2)):
    > Undefined symbols for architecture x86_64:
    > "_extism_plugin_id"
    > "_extism_plugin_new_error_free"
    
    Using `libextism` compiled from source does _not_ have this issue.
- [ ] `dub lint` reads many intermediate targets files:
https://github.com/dlang/dub/issues/2700

## Todo List

- [x] Flesh out initial binding
- [ ] Cover host API:
  - [x] `ExtismFunctionType`
    See `FunctionType` alias.
  - [x] `extism_plugin_id`
  - [x] `extism_plugin_new_error_free`
  - [ ] `extism_plugin_error`
- [ ] Add unit tests
- [x] Add usage example

---------

Co-authored-by: zach <zachshipko@gmail.com>
2023-10-23 16:00:17 -05:00
dependabot[bot]
30322dba23 chore(deps-dev): Bump ex_doc from 0.30.7 to 0.30.9 in /elixir (#536)
Bumps [ex_doc](https://github.com/elixir-lang/ex_doc) from 0.30.7 to
0.30.9.
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/elixir-lang/ex_doc/blob/main/CHANGELOG.md">ex_doc's
changelog</a>.</em></p>
<blockquote>
<h2>v0.30.9 (2023-10-20)</h2>
<ul>
<li>
<p>Bug fixes</p>
<ul>
<li>Fix a scenario where invalid assets would be generated</li>
</ul>
</li>
<li>
<p>Enhancements</p>
<ul>
<li>Add admonition EPUB styles</li>
</ul>
</li>
</ul>
<h2>v0.30.8 (2023-10-17)</h2>
<ul>
<li>Bug fixes
<ul>
<li>Fix regression in umbrella applications</li>
</ul>
</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="6ddaa2b5f1"><code>6ddaa2b</code></a>
Release v0.30.9</li>
<li><a
href="4ece4a783d"><code>4ece4a7</code></a>
Revert &quot;Safety check before running File.rm_rf! in doc gen (<a
href="https://redirect.github.com/elixir-lang/ex_doc/issues/1707">#1707</a>)&quot;</li>
<li><a
href="be88652efb"><code>be88652</code></a>
Update assets</li>
<li><a
href="ab9339894d"><code>ab93398</code></a>
Admonition EPUB styles (<a
href="https://redirect.github.com/elixir-lang/ex_doc/issues/1793">#1793</a>)</li>
<li><a
href="3e9358c5e5"><code>3e9358c</code></a>
Release v0.30.8</li>
<li><a
href="0e84d5dd43"><code>0e84d5d</code></a>
Fix docs generation with multiple source beams</li>
<li>See full diff in <a
href="https://github.com/elixir-lang/ex_doc/compare/v0.30.7...v0.30.9">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=ex_doc&package-manager=hex&previous-version=0.30.7&new-version=0.30.9)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-10-23 15:56:46 -05:00
zach
8ff9b9a015 chore: support wasmtime 14.0.0 (#529) 2023-10-20 10:52:08 -07:00
zach
728ee84b73 doc: add runtime/README.md and libextism/README.md (#526)
C: https://github.com/extism/extism/blob/new-readmes/libextism/README.md
Rust:
https://github.com/extism/extism/blob/new-readmes/runtime/README.md

Also includes some small usability improvements I stumbled across when
working on the docs
2023-10-20 10:30:10 -07:00
Muhammad Azeez
2c82b928ab ci(dotnet): publish nuget packages for all supported environments (#523)
NuGet supports the distribution of native binaries. We already provide a
win-x64 package, this PR adds packages for the other environments. We
will be publishing these NuGet packages:
 - Extism.runtime.linux-arm64
 - Extism.runtime.linux-musl-arm64
 - Extism.runtime.linux-x64
 - Extism.runtime.osx-arm64
 - Extism.runtime.osx-x64
 - Extism.runtime.win-x64 (msvc)
- Extism.runtime.all -> this is a meta package that referencs all other
packages. The idea is, in the getting started guides we instruct the
user to take a dependency on `Extism.Sdk` and `Extism.runtime.all`. This
will make sure their apps work on all supported operating systems
automatically. Otherwise, they can just take a dependency on what they
care about

This PR also adds a dependency on
[MinVer](https://github.com/adamralph/minver) which make sure packages
are automatically versioned based on git tags.

 Related to #486
2023-10-18 10:47:16 +03:00
dependabot[bot]
eb05381297 chore(deps-dev): Bump @babel/traverse from 7.19.6 to 7.23.2 in /node (#517)
Bumps
[@babel/traverse](https://github.com/babel/babel/tree/HEAD/packages/babel-traverse)
from 7.19.6 to 7.23.2.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/babel/babel/releases"><code>@​babel/traverse</code>'s
releases</a>.</em></p>
<blockquote>
<h2>v7.23.2 (2023-10-11)</h2>
<p><strong>NOTE</strong>: This release also re-publishes
<code>@babel/core</code>, even if it does not appear in the linked
release commit.</p>
<p>Thanks <a
href="https://github.com/jimmydief"><code>@​jimmydief</code></a> for
your first PR!</p>
<h4>🐛 Bug Fix</h4>
<ul>
<li><code>babel-traverse</code>
<ul>
<li><a
href="https://redirect.github.com/babel/babel/pull/16033">#16033</a>
Only evaluate own String/Number/Math methods (<a
href="https://github.com/nicolo-ribaudo"><code>@​nicolo-ribaudo</code></a>)</li>
</ul>
</li>
<li><code>babel-preset-typescript</code>
<ul>
<li><a
href="https://redirect.github.com/babel/babel/pull/16022">#16022</a>
Rewrite <code>.tsx</code> extension when using
<code>rewriteImportExtensions</code> (<a
href="https://github.com/jimmydief"><code>@​jimmydief</code></a>)</li>
</ul>
</li>
<li><code>babel-helpers</code>
<ul>
<li><a
href="https://redirect.github.com/babel/babel/pull/16017">#16017</a>
Fix: fallback to typeof when toString is applied to incompatible object
(<a href="https://github.com/JLHwung"><code>@​JLHwung</code></a>)</li>
</ul>
</li>
<li><code>babel-helpers</code>,
<code>babel-plugin-transform-modules-commonjs</code>,
<code>babel-runtime-corejs2</code>, <code>babel-runtime-corejs3</code>,
<code>babel-runtime</code>
<ul>
<li><a
href="https://redirect.github.com/babel/babel/pull/16025">#16025</a>
Avoid override mistake in namespace imports (<a
href="https://github.com/nicolo-ribaudo"><code>@​nicolo-ribaudo</code></a>)</li>
</ul>
</li>
</ul>
<h4>Committers: 5</h4>
<ul>
<li>Babel Bot (<a
href="https://github.com/babel-bot"><code>@​babel-bot</code></a>)</li>
<li>Huáng Jùnliàng (<a
href="https://github.com/JLHwung"><code>@​JLHwung</code></a>)</li>
<li>James Diefenderfer (<a
href="https://github.com/jimmydief"><code>@​jimmydief</code></a>)</li>
<li>Nicolò Ribaudo (<a
href="https://github.com/nicolo-ribaudo"><code>@​nicolo-ribaudo</code></a>)</li>
<li><a
href="https://github.com/liuxingbaoyu"><code>@​liuxingbaoyu</code></a></li>
</ul>
<h2>v7.23.1 (2023-09-25)</h2>
<p>Re-publishing <code>@babel/helpers</code> due to a publishing error
in 7.23.0.</p>
<h2>v7.23.0 (2023-09-25)</h2>
<p>Thanks <a
href="https://github.com/lorenzoferre"><code>@​lorenzoferre</code></a>
and <a
href="https://github.com/RajShukla1"><code>@​RajShukla1</code></a> for
your first PRs!</p>
<h4>🚀 New Feature</h4>
<ul>
<li><code>babel-plugin-proposal-import-wasm-source</code>,
<code>babel-plugin-syntax-import-source</code>,
<code>babel-plugin-transform-dynamic-import</code>
<ul>
<li><a
href="https://redirect.github.com/babel/babel/pull/15870">#15870</a>
Support transforming <code>import source</code> for wasm (<a
href="https://github.com/nicolo-ribaudo"><code>@​nicolo-ribaudo</code></a>)</li>
</ul>
</li>
<li><code>babel-helper-module-transforms</code>,
<code>babel-helpers</code>,
<code>babel-plugin-proposal-import-defer</code>,
<code>babel-plugin-syntax-import-defer</code>,
<code>babel-plugin-transform-modules-commonjs</code>,
<code>babel-runtime-corejs2</code>, <code>babel-runtime-corejs3</code>,
<code>babel-runtime</code>, <code>babel-standalone</code>
<ul>
<li><a
href="https://redirect.github.com/babel/babel/pull/15878">#15878</a>
Implement <code>import defer</code> proposal transform support (<a
href="https://github.com/nicolo-ribaudo"><code>@​nicolo-ribaudo</code></a>)</li>
</ul>
</li>
<li><code>babel-generator</code>, <code>babel-parser</code>,
<code>babel-types</code>
<ul>
<li><a
href="https://redirect.github.com/babel/babel/pull/15845">#15845</a>
Implement <code>import defer</code> parsing support (<a
href="https://github.com/nicolo-ribaudo"><code>@​nicolo-ribaudo</code></a>)</li>
<li><a
href="https://redirect.github.com/babel/babel/pull/15829">#15829</a> Add
parsing support for the &quot;source phase imports&quot; proposal (<a
href="https://github.com/nicolo-ribaudo"><code>@​nicolo-ribaudo</code></a>)</li>
</ul>
</li>
<li><code>babel-generator</code>,
<code>babel-helper-module-transforms</code>, <code>babel-parser</code>,
<code>babel-plugin-transform-dynamic-import</code>,
<code>babel-plugin-transform-modules-amd</code>,
<code>babel-plugin-transform-modules-commonjs</code>,
<code>babel-plugin-transform-modules-systemjs</code>,
<code>babel-traverse</code>, <code>babel-types</code>
<ul>
<li><a
href="https://redirect.github.com/babel/babel/pull/15682">#15682</a> Add
<code>createImportExpressions</code> parser option (<a
href="https://github.com/JLHwung"><code>@​JLHwung</code></a>)</li>
</ul>
</li>
<li><code>babel-standalone</code>
<ul>
<li><a
href="https://redirect.github.com/babel/babel/pull/15671">#15671</a>
Pass through nonce to the transformed script element (<a
href="https://github.com/JLHwung"><code>@​JLHwung</code></a>)</li>
</ul>
</li>
<li><code>babel-helper-function-name</code>,
<code>babel-helper-member-expression-to-functions</code>,
<code>babel-helpers</code>, <code>babel-parser</code>,
<code>babel-plugin-proposal-destructuring-private</code>,
<code>babel-plugin-proposal-optional-chaining-assign</code>,
<code>babel-plugin-syntax-optional-chaining-assign</code>,
<code>babel-plugin-transform-destructuring</code>,
<code>babel-plugin-transform-optional-chaining</code>,
<code>babel-runtime-corejs2</code>, <code>babel-runtime-corejs3</code>,
<code>babel-runtime</code>, <code>babel-standalone</code>,
<code>babel-types</code>
<ul>
<li><a
href="https://redirect.github.com/babel/babel/pull/15751">#15751</a> Add
support for optional chain in assignments (<a
href="https://github.com/nicolo-ribaudo"><code>@​nicolo-ribaudo</code></a>)</li>
</ul>
</li>
<li><code>babel-helpers</code>,
<code>babel-plugin-proposal-decorators</code>
<ul>
<li><a
href="https://redirect.github.com/babel/babel/pull/15895">#15895</a>
Implement the &quot;decorator metadata&quot; proposal (<a
href="https://github.com/nicolo-ribaudo"><code>@​nicolo-ribaudo</code></a>)</li>
</ul>
</li>
<li><code>babel-traverse</code>, <code>babel-types</code>
<ul>
<li><a
href="https://redirect.github.com/babel/babel/pull/15893">#15893</a> Add
<code>t.buildUndefinedNode</code> (<a
href="https://github.com/liuxingbaoyu"><code>@​liuxingbaoyu</code></a>)</li>
</ul>
</li>
<li><code>babel-preset-typescript</code></li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/babel/babel/blob/main/CHANGELOG.md"><code>@​babel/traverse</code>'s
changelog</a>.</em></p>
<blockquote>
<h2>v7.23.2 (2023-10-11)</h2>
<h4>🐛 Bug Fix</h4>
<ul>
<li><code>babel-traverse</code>
<ul>
<li><a
href="https://redirect.github.com/babel/babel/pull/16033">#16033</a>
Only evaluate own String/Number/Math methods (<a
href="https://github.com/nicolo-ribaudo"><code>@​nicolo-ribaudo</code></a>)</li>
</ul>
</li>
<li><code>babel-preset-typescript</code>
<ul>
<li><a
href="https://redirect.github.com/babel/babel/pull/16022">#16022</a>
Rewrite <code>.tsx</code> extension when using
<code>rewriteImportExtensions</code> (<a
href="https://github.com/jimmydief"><code>@​jimmydief</code></a>)</li>
</ul>
</li>
<li><code>babel-helpers</code>
<ul>
<li><a
href="https://redirect.github.com/babel/babel/pull/16017">#16017</a>
Fix: fallback to typeof when toString is applied to incompatible object
(<a href="https://github.com/JLHwung"><code>@​JLHwung</code></a>)</li>
</ul>
</li>
<li><code>babel-helpers</code>,
<code>babel-plugin-transform-modules-commonjs</code>,
<code>babel-runtime-corejs2</code>, <code>babel-runtime-corejs3</code>,
<code>babel-runtime</code>
<ul>
<li><a
href="https://redirect.github.com/babel/babel/pull/16025">#16025</a>
Avoid override mistake in namespace imports (<a
href="https://github.com/nicolo-ribaudo"><code>@​nicolo-ribaudo</code></a>)</li>
</ul>
</li>
</ul>
<h2>v7.23.0 (2023-09-25)</h2>
<h4>🚀 New Feature</h4>
<ul>
<li><code>babel-plugin-proposal-import-wasm-source</code>,
<code>babel-plugin-syntax-import-source</code>,
<code>babel-plugin-transform-dynamic-import</code>
<ul>
<li><a
href="https://redirect.github.com/babel/babel/pull/15870">#15870</a>
Support transforming <code>import source</code> for wasm (<a
href="https://github.com/nicolo-ribaudo"><code>@​nicolo-ribaudo</code></a>)</li>
</ul>
</li>
<li><code>babel-helper-module-transforms</code>,
<code>babel-helpers</code>,
<code>babel-plugin-proposal-import-defer</code>,
<code>babel-plugin-syntax-import-defer</code>,
<code>babel-plugin-transform-modules-commonjs</code>,
<code>babel-runtime-corejs2</code>, <code>babel-runtime-corejs3</code>,
<code>babel-runtime</code>, <code>babel-standalone</code>
<ul>
<li><a
href="https://redirect.github.com/babel/babel/pull/15878">#15878</a>
Implement <code>import defer</code> proposal transform support (<a
href="https://github.com/nicolo-ribaudo"><code>@​nicolo-ribaudo</code></a>)</li>
</ul>
</li>
<li><code>babel-generator</code>, <code>babel-parser</code>,
<code>babel-types</code>
<ul>
<li><a
href="https://redirect.github.com/babel/babel/pull/15845">#15845</a>
Implement <code>import defer</code> parsing support (<a
href="https://github.com/nicolo-ribaudo"><code>@​nicolo-ribaudo</code></a>)</li>
<li><a
href="https://redirect.github.com/babel/babel/pull/15829">#15829</a> Add
parsing support for the &quot;source phase imports&quot; proposal (<a
href="https://github.com/nicolo-ribaudo"><code>@​nicolo-ribaudo</code></a>)</li>
</ul>
</li>
<li><code>babel-generator</code>,
<code>babel-helper-module-transforms</code>, <code>babel-parser</code>,
<code>babel-plugin-transform-dynamic-import</code>,
<code>babel-plugin-transform-modules-amd</code>,
<code>babel-plugin-transform-modules-commonjs</code>,
<code>babel-plugin-transform-modules-systemjs</code>,
<code>babel-traverse</code>, <code>babel-types</code>
<ul>
<li><a
href="https://redirect.github.com/babel/babel/pull/15682">#15682</a> Add
<code>createImportExpressions</code> parser option (<a
href="https://github.com/JLHwung"><code>@​JLHwung</code></a>)</li>
</ul>
</li>
<li><code>babel-standalone</code>
<ul>
<li><a
href="https://redirect.github.com/babel/babel/pull/15671">#15671</a>
Pass through nonce to the transformed script element (<a
href="https://github.com/JLHwung"><code>@​JLHwung</code></a>)</li>
</ul>
</li>
<li><code>babel-helper-function-name</code>,
<code>babel-helper-member-expression-to-functions</code>,
<code>babel-helpers</code>, <code>babel-parser</code>,
<code>babel-plugin-proposal-destructuring-private</code>,
<code>babel-plugin-proposal-optional-chaining-assign</code>,
<code>babel-plugin-syntax-optional-chaining-assign</code>,
<code>babel-plugin-transform-destructuring</code>,
<code>babel-plugin-transform-optional-chaining</code>,
<code>babel-runtime-corejs2</code>, <code>babel-runtime-corejs3</code>,
<code>babel-runtime</code>, <code>babel-standalone</code>,
<code>babel-types</code>
<ul>
<li><a
href="https://redirect.github.com/babel/babel/pull/15751">#15751</a> Add
support for optional chain in assignments (<a
href="https://github.com/nicolo-ribaudo"><code>@​nicolo-ribaudo</code></a>)</li>
</ul>
</li>
<li><code>babel-helpers</code>,
<code>babel-plugin-proposal-decorators</code>
<ul>
<li><a
href="https://redirect.github.com/babel/babel/pull/15895">#15895</a>
Implement the &quot;decorator metadata&quot; proposal (<a
href="https://github.com/nicolo-ribaudo"><code>@​nicolo-ribaudo</code></a>)</li>
</ul>
</li>
<li><code>babel-traverse</code>, <code>babel-types</code>
<ul>
<li><a
href="https://redirect.github.com/babel/babel/pull/15893">#15893</a> Add
<code>t.buildUndefinedNode</code> (<a
href="https://github.com/liuxingbaoyu"><code>@​liuxingbaoyu</code></a>)</li>
</ul>
</li>
<li><code>babel-preset-typescript</code>
<ul>
<li><a
href="https://redirect.github.com/babel/babel/pull/15913">#15913</a> Add
<code>rewriteImportExtensions</code> option to TS preset (<a
href="https://github.com/nicolo-ribaudo"><code>@​nicolo-ribaudo</code></a>)</li>
</ul>
</li>
<li><code>babel-parser</code>
<ul>
<li><a
href="https://redirect.github.com/babel/babel/pull/15896">#15896</a>
Allow TS tuples to have both labeled and unlabeled elements (<a
href="https://github.com/yukukotani"><code>@​yukukotani</code></a>)</li>
</ul>
</li>
</ul>
<h4>🐛 Bug Fix</h4>
<ul>
<li><code>babel-plugin-transform-block-scoping</code>
<ul>
<li><a
href="https://redirect.github.com/babel/babel/pull/15962">#15962</a>
fix: <code>transform-block-scoping</code> captures the variables of the
method in the loop (<a
href="https://github.com/liuxingbaoyu"><code>@​liuxingbaoyu</code></a>)</li>
</ul>
</li>
</ul>
<h4>💅 Polish</h4>
<ul>
<li><code>babel-traverse</code>
<ul>
<li><a
href="https://redirect.github.com/babel/babel/pull/15797">#15797</a>
Expand evaluation of global built-ins in <code>@babel/traverse</code>
(<a
href="https://github.com/lorenzoferre"><code>@​lorenzoferre</code></a>)</li>
</ul>
</li>
<li><code>babel-plugin-proposal-explicit-resource-management</code>
<ul>
<li><a
href="https://redirect.github.com/babel/babel/pull/15985">#15985</a>
Improve source maps for blocks with <code>using</code> declarations (<a
href="https://github.com/nicolo-ribaudo"><code>@​nicolo-ribaudo</code></a>)</li>
</ul>
</li>
</ul>
<h4>🔬 Output optimization</h4>
<ul>
<li><code>babel-core</code>,
<code>babel-helper-module-transforms</code>,
<code>babel-plugin-transform-async-to-generator</code>,
<code>babel-plugin-transform-classes</code>,
<code>babel-plugin-transform-dynamic-import</code>,
<code>babel-plugin-transform-function-name</code>,
<code>babel-plugin-transform-modules-amd</code>,
<code>babel-plugin-transform-modules-commonjs</code>,
<code>babel-plugin-transform-modules-umd</code>,
<code>babel-plugin-transform-parameters</code>,
<code>babel-plugin-transform-react-constant-elements</code>,
<code>babel-plugin-transform-react-inline-elements</code>,
<code>babel-plugin-transform-runtime</code>,
<code>babel-plugin-transform-typescript</code>,
<code>babel-preset-env</code>
<ul>
<li><a
href="https://redirect.github.com/babel/babel/pull/15984">#15984</a>
Inline <code>exports.XXX =</code> update in simple variable declarations
(<a
href="https://github.com/nicolo-ribaudo"><code>@​nicolo-ribaudo</code></a>)</li>
</ul>
</li>
</ul>
<h2>v7.22.20 (2023-09-16)</h2>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="b4b9942a6c"><code>b4b9942</code></a>
v7.23.2</li>
<li><a
href="b13376b346"><code>b13376b</code></a>
Only evaluate own String/Number/Math methods (<a
href="https://github.com/babel/babel/tree/HEAD/packages/babel-traverse/issues/16033">#16033</a>)</li>
<li><a
href="ca58ec15cb"><code>ca58ec1</code></a>
v7.23.0</li>
<li><a
href="0f333dafcf"><code>0f333da</code></a>
Add <code>createImportExpressions</code> parser option (<a
href="https://github.com/babel/babel/tree/HEAD/packages/babel-traverse/issues/15682">#15682</a>)</li>
<li><a
href="3744545649"><code>3744545</code></a>
Fix linting</li>
<li><a
href="c7e6806e21"><code>c7e6806</code></a>
Add <code>t.buildUndefinedNode</code> (<a
href="https://github.com/babel/babel/tree/HEAD/packages/babel-traverse/issues/15893">#15893</a>)</li>
<li><a
href="38ee8b4dd6"><code>38ee8b4</code></a>
Expand evaluation of global built-ins in <code>@babel/traverse</code>
(<a
href="https://github.com/babel/babel/tree/HEAD/packages/babel-traverse/issues/15797">#15797</a>)</li>
<li><a
href="9f3dfd9021"><code>9f3dfd9</code></a>
v7.22.20</li>
<li><a
href="3ed28b29c1"><code>3ed28b2</code></a>
Fully support <code>||</code> and <code>&amp;&amp;</code> in
<code>pluginToggleBooleanFlag</code> (<a
href="https://github.com/babel/babel/tree/HEAD/packages/babel-traverse/issues/15961">#15961</a>)</li>
<li><a
href="77b0d73599"><code>77b0d73</code></a>
v7.22.19</li>
<li>Additional commits viewable in <a
href="https://github.com/babel/babel/commits/v7.23.2/packages/babel-traverse">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=@babel/traverse&package-manager=npm_and_yarn&previous-version=7.19.6&new-version=7.23.2)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)
You can disable automated security fix PRs for this repo from the
[Security Alerts page](https://github.com/extism/extism/network/alerts).

</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-10-17 14:55:31 -05:00
dependabot[bot]
c5fce439d1 chore(deps-dev): Bump @types/node from 20.6.5 to 20.8.6 in /node (#515)
Bumps
[@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node)
from 20.6.5 to 20.8.6.
<details>
<summary>Commits</summary>
<ul>
<li>See full diff in <a
href="https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=@types/node&package-manager=npm_and_yarn&previous-version=20.6.5&new-version=20.8.6)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-10-17 14:55:21 -05:00
dependabot[bot]
f0f2d59d8f chore(deps-dev): Bump ex_doc from 0.30.6 to 0.30.7 in /elixir (#513)
Bumps [ex_doc](https://github.com/elixir-lang/ex_doc) from 0.30.6 to
0.30.7.
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/elixir-lang/ex_doc/blob/main/CHANGELOG.md">ex_doc's
changelog</a>.</em></p>
<blockquote>
<h2>v0.30.7 (2023-10-15)</h2>
<ul>
<li>
<p>Bug fixes</p>
<ul>
<li>Do not crash on EDoc type annotations</li>
<li>Do not crash on functions without name</li>
<li>Handle remote types in records</li>
<li>Fix scrolling to top on iOS</li>
<li>Fix invalid output markup for “hover link” headings</li>
</ul>
</li>
<li>
<p>Enhancements</p>
<ul>
<li>Support any String.Chars as the extra page name</li>
<li>Improve screen reader accessibility</li>
<li>Add <code>:skip_code_autolink_to</code> option</li>
</ul>
</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="a27002e833"><code>a27002e</code></a>
Release v0.30.7</li>
<li><a
href="194a25ba8a"><code>194a25b</code></a>
Change text decoration color on cheatsheet headers</li>
<li><a
href="aca43d0e9e"><code>aca43d0</code></a>
Partially fix abstract Erlang types (<code>{@type ...}</code>) (<a
href="https://redirect.github.com/elixir-lang/ex_doc/issues/1787">#1787</a>)</li>
<li><a
href="51d8387c7f"><code>51d8387</code></a>
Use pattern matching on underscored functions, closes <a
href="https://redirect.github.com/elixir-lang/ex_doc/issues/1784">#1784</a></li>
<li><a
href="16a8f536d1"><code>16a8f53</code></a>
Autolink support for handling remote types in records (<a
href="https://redirect.github.com/elixir-lang/ex_doc/issues/1763">#1763</a>)</li>
<li><a
href="3d854672da"><code>3d85467</code></a>
Use backticks consistently in <code>mix docs</code> docs (<a
href="https://redirect.github.com/elixir-lang/ex_doc/issues/1783">#1783</a>)</li>
<li><a
href="7a53ce9da2"><code>7a53ce9</code></a>
Support any String.Chars.t on extras</li>
<li><a
href="d23503faf8"><code>d23503f</code></a>
Fix errors on search page</li>
<li><a
href="aee35dc70c"><code>aee35dc</code></a>
Reuse .build instead of adding a new file</li>
<li><a
href="032f625bdb"><code>032f625</code></a>
Update assets</li>
<li>Additional commits viewable in <a
href="https://github.com/elixir-lang/ex_doc/compare/v0.30.6...v0.30.7">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=ex_doc&package-manager=hex&previous-version=0.30.6&new-version=0.30.7)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-10-17 14:55:05 -05:00
dependabot[bot]
8cd8135414 chore(deps-dev): Bump typedoc from 0.25.1 to 0.25.2 in /node (#502)
Bumps [typedoc](https://github.com/TypeStrong/TypeDoc) from 0.25.1 to
0.25.2.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/TypeStrong/TypeDoc/releases">typedoc's
releases</a>.</em></p>
<blockquote>
<h2>v0.25.2</h2>
<h3>Features</h3>
<ul>
<li>Added <code>navigationLeaves</code> option to remove branches from
the navigation tree, <a
href="https://redirect.github.com/TypeStrong/TypeDoc/issues/2382">#2382</a>.</li>
<li>Added <code>sortEntryPoints</code> option (defaults to true) to
allow disabling entry point sorting, <a
href="https://redirect.github.com/TypeStrong/TypeDoc/issues/2393">#2393</a>.</li>
<li>Improved support for multi-word searches, <a
href="https://redirect.github.com/TypeStrong/TypeDoc/issues/2400">#2400</a>.</li>
</ul>
<h3>Bug Fixes</h3>
<ul>
<li>Fixed conversion of <code>@template</code> constraints on JSDoc
defined type parameters, <a
href="https://redirect.github.com/TypeStrong/TypeDoc/issues/2389">#2389</a>.</li>
<li>Invalid link validation is now correctly suppressed before all
projects have been converted in packages mode, <a
href="https://redirect.github.com/TypeStrong/TypeDoc/issues/2403">#2403</a>.</li>
<li>Fixed tsconfig handling for projects using a solution-style
tsconfig, <a
href="https://redirect.github.com/TypeStrong/TypeDoc/issues/2406">#2406</a>.</li>
<li>Fixed broken settings icons caused by icon caching introduced in
0.25.1, <a
href="https://redirect.github.com/TypeStrong/TypeDoc/issues/2408">#2408</a>.</li>
<li>Corrected module comment handling on declaration files containing a
single <code>declare module &quot;foo&quot;</code>, <a
href="https://redirect.github.com/TypeStrong/TypeDoc/issues/2401">#2401</a>.</li>
</ul>
<h3>Thanks!</h3>
<ul>
<li><a href="https://github.com/schiem"><code>@​schiem</code></a></li>
</ul>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/TypeStrong/typedoc/blob/master/CHANGELOG.md">typedoc's
changelog</a>.</em></p>
<blockquote>
<h2>v0.25.2 (2023-10-08)</h2>
<h3>Features</h3>
<ul>
<li>Added <code>navigationLeaves</code> option to remove branches from
the navigation tree, <a
href="https://redirect.github.com/TypeStrong/TypeDoc/issues/2382">#2382</a>.</li>
<li>Added <code>sortEntryPoints</code> option (defaults to true) to
allow disabling entry point sorting, <a
href="https://redirect.github.com/TypeStrong/TypeDoc/issues/2393">#2393</a>.</li>
<li>Improved support for multi-word searches, <a
href="https://redirect.github.com/TypeStrong/TypeDoc/issues/2400">#2400</a>.</li>
</ul>
<h3>Bug Fixes</h3>
<ul>
<li>Fixed conversion of <code>@template</code> constraints on JSDoc
defined type parameters, <a
href="https://redirect.github.com/TypeStrong/TypeDoc/issues/2389">#2389</a>.</li>
<li>Invalid link validation is now correctly suppressed before all
projects have been converted in packages mode, <a
href="https://redirect.github.com/TypeStrong/TypeDoc/issues/2403">#2403</a>.</li>
<li>Fixed tsconfig handling for projects using a solution-style
tsconfig, <a
href="https://redirect.github.com/TypeStrong/TypeDoc/issues/2406">#2406</a>.</li>
<li>Fixed broken settings icons caused by icon caching introduced in
0.25.1, <a
href="https://redirect.github.com/TypeStrong/TypeDoc/issues/2408">#2408</a>.</li>
<li>Corrected module comment handling on declaration files containing a
single <code>declare module &quot;foo&quot;</code>, <a
href="https://redirect.github.com/TypeStrong/TypeDoc/issues/2401">#2401</a>.</li>
</ul>
<h3>Thanks!</h3>
<ul>
<li><a href="https://github.com/schiem"><code>@​schiem</code></a></li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="22fe25c1b2"><code>22fe25c</code></a>
Update changelog for release</li>
<li><a
href="73d7f3acd1"><code>73d7f3a</code></a>
Bump version to 0.25.2</li>
<li><a
href="4e16473a0c"><code>4e16473</code></a>
Bump dev dep versions</li>
<li><a
href="6cb49b279d"><code>6cb49b2</code></a>
Add sortEntryPoints option</li>
<li><a
href="130ba48023"><code>130ba48</code></a>
Handle <code>@template</code> constraints correctly</li>
<li><a
href="8e0aaf72ca"><code>8e0aaf7</code></a>
Handle <code>@module</code> on <code>declare module
&quot;foo&quot;</code></li>
<li><a
href="b12258da27"><code>b12258d</code></a>
Add navigationLeaves option</li>
<li><a
href="2cabd221a6"><code>2cabd22</code></a>
Fix invalid link handling in packages mode</li>
<li><a
href="608cf4806a"><code>608cf48</code></a>
Fix solution style tsconfigs</li>
<li><a
href="878e06affa"><code>878e06a</code></a>
Fix broken settings icons</li>
<li>Additional commits viewable in <a
href="https://github.com/TypeStrong/TypeDoc/compare/v0.25.1...v0.25.2">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=typedoc&package-manager=npm_and_yarn&previous-version=0.25.1&new-version=0.25.2)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-10-17 14:54:54 -05:00
dependabot[bot]
94f42413ab chore(deps): Bump @types/ref-array-di from 1.2.5 to 1.2.6 in /node (#491)
Bumps
[@types/ref-array-di](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/ref-array-di)
from 1.2.5 to 1.2.6.
<details>
<summary>Commits</summary>
<ul>
<li>See full diff in <a
href="https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/ref-array-di">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=@types/ref-array-di&package-manager=npm_and_yarn&previous-version=1.2.5&new-version=1.2.6)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-10-17 14:54:44 -05:00
dependabot[bot]
2ef701ae00 chore(deps-dev): Bump @babel/traverse from 7.20.13 to 7.23.2 in /browser (#518)
Bumps
[@babel/traverse](https://github.com/babel/babel/tree/HEAD/packages/babel-traverse)
from 7.20.13 to 7.23.2.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/babel/babel/releases"><code>@​babel/traverse</code>'s
releases</a>.</em></p>
<blockquote>
<h2>v7.23.2 (2023-10-11)</h2>
<p><strong>NOTE</strong>: This release also re-publishes
<code>@babel/core</code>, even if it does not appear in the linked
release commit.</p>
<p>Thanks <a
href="https://github.com/jimmydief"><code>@​jimmydief</code></a> for
your first PR!</p>
<h4>🐛 Bug Fix</h4>
<ul>
<li><code>babel-traverse</code>
<ul>
<li><a
href="https://redirect.github.com/babel/babel/pull/16033">#16033</a>
Only evaluate own String/Number/Math methods (<a
href="https://github.com/nicolo-ribaudo"><code>@​nicolo-ribaudo</code></a>)</li>
</ul>
</li>
<li><code>babel-preset-typescript</code>
<ul>
<li><a
href="https://redirect.github.com/babel/babel/pull/16022">#16022</a>
Rewrite <code>.tsx</code> extension when using
<code>rewriteImportExtensions</code> (<a
href="https://github.com/jimmydief"><code>@​jimmydief</code></a>)</li>
</ul>
</li>
<li><code>babel-helpers</code>
<ul>
<li><a
href="https://redirect.github.com/babel/babel/pull/16017">#16017</a>
Fix: fallback to typeof when toString is applied to incompatible object
(<a href="https://github.com/JLHwung"><code>@​JLHwung</code></a>)</li>
</ul>
</li>
<li><code>babel-helpers</code>,
<code>babel-plugin-transform-modules-commonjs</code>,
<code>babel-runtime-corejs2</code>, <code>babel-runtime-corejs3</code>,
<code>babel-runtime</code>
<ul>
<li><a
href="https://redirect.github.com/babel/babel/pull/16025">#16025</a>
Avoid override mistake in namespace imports (<a
href="https://github.com/nicolo-ribaudo"><code>@​nicolo-ribaudo</code></a>)</li>
</ul>
</li>
</ul>
<h4>Committers: 5</h4>
<ul>
<li>Babel Bot (<a
href="https://github.com/babel-bot"><code>@​babel-bot</code></a>)</li>
<li>Huáng Jùnliàng (<a
href="https://github.com/JLHwung"><code>@​JLHwung</code></a>)</li>
<li>James Diefenderfer (<a
href="https://github.com/jimmydief"><code>@​jimmydief</code></a>)</li>
<li>Nicolò Ribaudo (<a
href="https://github.com/nicolo-ribaudo"><code>@​nicolo-ribaudo</code></a>)</li>
<li><a
href="https://github.com/liuxingbaoyu"><code>@​liuxingbaoyu</code></a></li>
</ul>
<h2>v7.23.1 (2023-09-25)</h2>
<p>Re-publishing <code>@babel/helpers</code> due to a publishing error
in 7.23.0.</p>
<h2>v7.23.0 (2023-09-25)</h2>
<p>Thanks <a
href="https://github.com/lorenzoferre"><code>@​lorenzoferre</code></a>
and <a
href="https://github.com/RajShukla1"><code>@​RajShukla1</code></a> for
your first PRs!</p>
<h4>🚀 New Feature</h4>
<ul>
<li><code>babel-plugin-proposal-import-wasm-source</code>,
<code>babel-plugin-syntax-import-source</code>,
<code>babel-plugin-transform-dynamic-import</code>
<ul>
<li><a
href="https://redirect.github.com/babel/babel/pull/15870">#15870</a>
Support transforming <code>import source</code> for wasm (<a
href="https://github.com/nicolo-ribaudo"><code>@​nicolo-ribaudo</code></a>)</li>
</ul>
</li>
<li><code>babel-helper-module-transforms</code>,
<code>babel-helpers</code>,
<code>babel-plugin-proposal-import-defer</code>,
<code>babel-plugin-syntax-import-defer</code>,
<code>babel-plugin-transform-modules-commonjs</code>,
<code>babel-runtime-corejs2</code>, <code>babel-runtime-corejs3</code>,
<code>babel-runtime</code>, <code>babel-standalone</code>
<ul>
<li><a
href="https://redirect.github.com/babel/babel/pull/15878">#15878</a>
Implement <code>import defer</code> proposal transform support (<a
href="https://github.com/nicolo-ribaudo"><code>@​nicolo-ribaudo</code></a>)</li>
</ul>
</li>
<li><code>babel-generator</code>, <code>babel-parser</code>,
<code>babel-types</code>
<ul>
<li><a
href="https://redirect.github.com/babel/babel/pull/15845">#15845</a>
Implement <code>import defer</code> parsing support (<a
href="https://github.com/nicolo-ribaudo"><code>@​nicolo-ribaudo</code></a>)</li>
<li><a
href="https://redirect.github.com/babel/babel/pull/15829">#15829</a> Add
parsing support for the &quot;source phase imports&quot; proposal (<a
href="https://github.com/nicolo-ribaudo"><code>@​nicolo-ribaudo</code></a>)</li>
</ul>
</li>
<li><code>babel-generator</code>,
<code>babel-helper-module-transforms</code>, <code>babel-parser</code>,
<code>babel-plugin-transform-dynamic-import</code>,
<code>babel-plugin-transform-modules-amd</code>,
<code>babel-plugin-transform-modules-commonjs</code>,
<code>babel-plugin-transform-modules-systemjs</code>,
<code>babel-traverse</code>, <code>babel-types</code>
<ul>
<li><a
href="https://redirect.github.com/babel/babel/pull/15682">#15682</a> Add
<code>createImportExpressions</code> parser option (<a
href="https://github.com/JLHwung"><code>@​JLHwung</code></a>)</li>
</ul>
</li>
<li><code>babel-standalone</code>
<ul>
<li><a
href="https://redirect.github.com/babel/babel/pull/15671">#15671</a>
Pass through nonce to the transformed script element (<a
href="https://github.com/JLHwung"><code>@​JLHwung</code></a>)</li>
</ul>
</li>
<li><code>babel-helper-function-name</code>,
<code>babel-helper-member-expression-to-functions</code>,
<code>babel-helpers</code>, <code>babel-parser</code>,
<code>babel-plugin-proposal-destructuring-private</code>,
<code>babel-plugin-proposal-optional-chaining-assign</code>,
<code>babel-plugin-syntax-optional-chaining-assign</code>,
<code>babel-plugin-transform-destructuring</code>,
<code>babel-plugin-transform-optional-chaining</code>,
<code>babel-runtime-corejs2</code>, <code>babel-runtime-corejs3</code>,
<code>babel-runtime</code>, <code>babel-standalone</code>,
<code>babel-types</code>
<ul>
<li><a
href="https://redirect.github.com/babel/babel/pull/15751">#15751</a> Add
support for optional chain in assignments (<a
href="https://github.com/nicolo-ribaudo"><code>@​nicolo-ribaudo</code></a>)</li>
</ul>
</li>
<li><code>babel-helpers</code>,
<code>babel-plugin-proposal-decorators</code>
<ul>
<li><a
href="https://redirect.github.com/babel/babel/pull/15895">#15895</a>
Implement the &quot;decorator metadata&quot; proposal (<a
href="https://github.com/nicolo-ribaudo"><code>@​nicolo-ribaudo</code></a>)</li>
</ul>
</li>
<li><code>babel-traverse</code>, <code>babel-types</code>
<ul>
<li><a
href="https://redirect.github.com/babel/babel/pull/15893">#15893</a> Add
<code>t.buildUndefinedNode</code> (<a
href="https://github.com/liuxingbaoyu"><code>@​liuxingbaoyu</code></a>)</li>
</ul>
</li>
<li><code>babel-preset-typescript</code></li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/babel/babel/blob/main/CHANGELOG.md"><code>@​babel/traverse</code>'s
changelog</a>.</em></p>
<blockquote>
<h2>v7.23.2 (2023-10-11)</h2>
<h4>🐛 Bug Fix</h4>
<ul>
<li><code>babel-traverse</code>
<ul>
<li><a
href="https://redirect.github.com/babel/babel/pull/16033">#16033</a>
Only evaluate own String/Number/Math methods (<a
href="https://github.com/nicolo-ribaudo"><code>@​nicolo-ribaudo</code></a>)</li>
</ul>
</li>
<li><code>babel-preset-typescript</code>
<ul>
<li><a
href="https://redirect.github.com/babel/babel/pull/16022">#16022</a>
Rewrite <code>.tsx</code> extension when using
<code>rewriteImportExtensions</code> (<a
href="https://github.com/jimmydief"><code>@​jimmydief</code></a>)</li>
</ul>
</li>
<li><code>babel-helpers</code>
<ul>
<li><a
href="https://redirect.github.com/babel/babel/pull/16017">#16017</a>
Fix: fallback to typeof when toString is applied to incompatible object
(<a href="https://github.com/JLHwung"><code>@​JLHwung</code></a>)</li>
</ul>
</li>
<li><code>babel-helpers</code>,
<code>babel-plugin-transform-modules-commonjs</code>,
<code>babel-runtime-corejs2</code>, <code>babel-runtime-corejs3</code>,
<code>babel-runtime</code>
<ul>
<li><a
href="https://redirect.github.com/babel/babel/pull/16025">#16025</a>
Avoid override mistake in namespace imports (<a
href="https://github.com/nicolo-ribaudo"><code>@​nicolo-ribaudo</code></a>)</li>
</ul>
</li>
</ul>
<h2>v7.23.0 (2023-09-25)</h2>
<h4>🚀 New Feature</h4>
<ul>
<li><code>babel-plugin-proposal-import-wasm-source</code>,
<code>babel-plugin-syntax-import-source</code>,
<code>babel-plugin-transform-dynamic-import</code>
<ul>
<li><a
href="https://redirect.github.com/babel/babel/pull/15870">#15870</a>
Support transforming <code>import source</code> for wasm (<a
href="https://github.com/nicolo-ribaudo"><code>@​nicolo-ribaudo</code></a>)</li>
</ul>
</li>
<li><code>babel-helper-module-transforms</code>,
<code>babel-helpers</code>,
<code>babel-plugin-proposal-import-defer</code>,
<code>babel-plugin-syntax-import-defer</code>,
<code>babel-plugin-transform-modules-commonjs</code>,
<code>babel-runtime-corejs2</code>, <code>babel-runtime-corejs3</code>,
<code>babel-runtime</code>, <code>babel-standalone</code>
<ul>
<li><a
href="https://redirect.github.com/babel/babel/pull/15878">#15878</a>
Implement <code>import defer</code> proposal transform support (<a
href="https://github.com/nicolo-ribaudo"><code>@​nicolo-ribaudo</code></a>)</li>
</ul>
</li>
<li><code>babel-generator</code>, <code>babel-parser</code>,
<code>babel-types</code>
<ul>
<li><a
href="https://redirect.github.com/babel/babel/pull/15845">#15845</a>
Implement <code>import defer</code> parsing support (<a
href="https://github.com/nicolo-ribaudo"><code>@​nicolo-ribaudo</code></a>)</li>
<li><a
href="https://redirect.github.com/babel/babel/pull/15829">#15829</a> Add
parsing support for the &quot;source phase imports&quot; proposal (<a
href="https://github.com/nicolo-ribaudo"><code>@​nicolo-ribaudo</code></a>)</li>
</ul>
</li>
<li><code>babel-generator</code>,
<code>babel-helper-module-transforms</code>, <code>babel-parser</code>,
<code>babel-plugin-transform-dynamic-import</code>,
<code>babel-plugin-transform-modules-amd</code>,
<code>babel-plugin-transform-modules-commonjs</code>,
<code>babel-plugin-transform-modules-systemjs</code>,
<code>babel-traverse</code>, <code>babel-types</code>
<ul>
<li><a
href="https://redirect.github.com/babel/babel/pull/15682">#15682</a> Add
<code>createImportExpressions</code> parser option (<a
href="https://github.com/JLHwung"><code>@​JLHwung</code></a>)</li>
</ul>
</li>
<li><code>babel-standalone</code>
<ul>
<li><a
href="https://redirect.github.com/babel/babel/pull/15671">#15671</a>
Pass through nonce to the transformed script element (<a
href="https://github.com/JLHwung"><code>@​JLHwung</code></a>)</li>
</ul>
</li>
<li><code>babel-helper-function-name</code>,
<code>babel-helper-member-expression-to-functions</code>,
<code>babel-helpers</code>, <code>babel-parser</code>,
<code>babel-plugin-proposal-destructuring-private</code>,
<code>babel-plugin-proposal-optional-chaining-assign</code>,
<code>babel-plugin-syntax-optional-chaining-assign</code>,
<code>babel-plugin-transform-destructuring</code>,
<code>babel-plugin-transform-optional-chaining</code>,
<code>babel-runtime-corejs2</code>, <code>babel-runtime-corejs3</code>,
<code>babel-runtime</code>, <code>babel-standalone</code>,
<code>babel-types</code>
<ul>
<li><a
href="https://redirect.github.com/babel/babel/pull/15751">#15751</a> Add
support for optional chain in assignments (<a
href="https://github.com/nicolo-ribaudo"><code>@​nicolo-ribaudo</code></a>)</li>
</ul>
</li>
<li><code>babel-helpers</code>,
<code>babel-plugin-proposal-decorators</code>
<ul>
<li><a
href="https://redirect.github.com/babel/babel/pull/15895">#15895</a>
Implement the &quot;decorator metadata&quot; proposal (<a
href="https://github.com/nicolo-ribaudo"><code>@​nicolo-ribaudo</code></a>)</li>
</ul>
</li>
<li><code>babel-traverse</code>, <code>babel-types</code>
<ul>
<li><a
href="https://redirect.github.com/babel/babel/pull/15893">#15893</a> Add
<code>t.buildUndefinedNode</code> (<a
href="https://github.com/liuxingbaoyu"><code>@​liuxingbaoyu</code></a>)</li>
</ul>
</li>
<li><code>babel-preset-typescript</code>
<ul>
<li><a
href="https://redirect.github.com/babel/babel/pull/15913">#15913</a> Add
<code>rewriteImportExtensions</code> option to TS preset (<a
href="https://github.com/nicolo-ribaudo"><code>@​nicolo-ribaudo</code></a>)</li>
</ul>
</li>
<li><code>babel-parser</code>
<ul>
<li><a
href="https://redirect.github.com/babel/babel/pull/15896">#15896</a>
Allow TS tuples to have both labeled and unlabeled elements (<a
href="https://github.com/yukukotani"><code>@​yukukotani</code></a>)</li>
</ul>
</li>
</ul>
<h4>🐛 Bug Fix</h4>
<ul>
<li><code>babel-plugin-transform-block-scoping</code>
<ul>
<li><a
href="https://redirect.github.com/babel/babel/pull/15962">#15962</a>
fix: <code>transform-block-scoping</code> captures the variables of the
method in the loop (<a
href="https://github.com/liuxingbaoyu"><code>@​liuxingbaoyu</code></a>)</li>
</ul>
</li>
</ul>
<h4>💅 Polish</h4>
<ul>
<li><code>babel-traverse</code>
<ul>
<li><a
href="https://redirect.github.com/babel/babel/pull/15797">#15797</a>
Expand evaluation of global built-ins in <code>@babel/traverse</code>
(<a
href="https://github.com/lorenzoferre"><code>@​lorenzoferre</code></a>)</li>
</ul>
</li>
<li><code>babel-plugin-proposal-explicit-resource-management</code>
<ul>
<li><a
href="https://redirect.github.com/babel/babel/pull/15985">#15985</a>
Improve source maps for blocks with <code>using</code> declarations (<a
href="https://github.com/nicolo-ribaudo"><code>@​nicolo-ribaudo</code></a>)</li>
</ul>
</li>
</ul>
<h4>🔬 Output optimization</h4>
<ul>
<li><code>babel-core</code>,
<code>babel-helper-module-transforms</code>,
<code>babel-plugin-transform-async-to-generator</code>,
<code>babel-plugin-transform-classes</code>,
<code>babel-plugin-transform-dynamic-import</code>,
<code>babel-plugin-transform-function-name</code>,
<code>babel-plugin-transform-modules-amd</code>,
<code>babel-plugin-transform-modules-commonjs</code>,
<code>babel-plugin-transform-modules-umd</code>,
<code>babel-plugin-transform-parameters</code>,
<code>babel-plugin-transform-react-constant-elements</code>,
<code>babel-plugin-transform-react-inline-elements</code>,
<code>babel-plugin-transform-runtime</code>,
<code>babel-plugin-transform-typescript</code>,
<code>babel-preset-env</code>
<ul>
<li><a
href="https://redirect.github.com/babel/babel/pull/15984">#15984</a>
Inline <code>exports.XXX =</code> update in simple variable declarations
(<a
href="https://github.com/nicolo-ribaudo"><code>@​nicolo-ribaudo</code></a>)</li>
</ul>
</li>
</ul>
<h2>v7.22.20 (2023-09-16)</h2>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="b4b9942a6c"><code>b4b9942</code></a>
v7.23.2</li>
<li><a
href="b13376b346"><code>b13376b</code></a>
Only evaluate own String/Number/Math methods (<a
href="https://github.com/babel/babel/tree/HEAD/packages/babel-traverse/issues/16033">#16033</a>)</li>
<li><a
href="ca58ec15cb"><code>ca58ec1</code></a>
v7.23.0</li>
<li><a
href="0f333dafcf"><code>0f333da</code></a>
Add <code>createImportExpressions</code> parser option (<a
href="https://github.com/babel/babel/tree/HEAD/packages/babel-traverse/issues/15682">#15682</a>)</li>
<li><a
href="3744545649"><code>3744545</code></a>
Fix linting</li>
<li><a
href="c7e6806e21"><code>c7e6806</code></a>
Add <code>t.buildUndefinedNode</code> (<a
href="https://github.com/babel/babel/tree/HEAD/packages/babel-traverse/issues/15893">#15893</a>)</li>
<li><a
href="38ee8b4dd6"><code>38ee8b4</code></a>
Expand evaluation of global built-ins in <code>@babel/traverse</code>
(<a
href="https://github.com/babel/babel/tree/HEAD/packages/babel-traverse/issues/15797">#15797</a>)</li>
<li><a
href="9f3dfd9021"><code>9f3dfd9</code></a>
v7.22.20</li>
<li><a
href="3ed28b29c1"><code>3ed28b2</code></a>
Fully support <code>||</code> and <code>&amp;&amp;</code> in
<code>pluginToggleBooleanFlag</code> (<a
href="https://github.com/babel/babel/tree/HEAD/packages/babel-traverse/issues/15961">#15961</a>)</li>
<li><a
href="77b0d73599"><code>77b0d73</code></a>
v7.22.19</li>
<li>Additional commits viewable in <a
href="https://github.com/babel/babel/commits/v7.23.2/packages/babel-traverse">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=@babel/traverse&package-manager=npm_and_yarn&previous-version=7.20.13&new-version=7.23.2)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)
You can disable automated security fix PRs for this repo from the
[Security Alerts page](https://github.com/extism/extism/network/alerts).

</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-10-17 14:54:35 -05:00
zach
18b01b5d16 fix: undo change to extism_memory_bytes left over from debugging (#519)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: zshipko <zshipko@users.noreply.github.com>
2023-10-16 17:48:44 -07:00
Chris Dickinson
6e0fd3baa1 fix(build): release-python: disable unused poetry caching
This workflow only _uploads_ existing artifacts, so keeping a poetry
cache around just, uh, breaks the workflow since there's no `Poetry.lock`
to cache.
2023-10-16 11:01:32 -07:00
Chris Dickinson
09961010f6 v1.0.0-rc0 2023-10-16 10:35:26 -07:00
zach
c893faede4 fix(kernel): update outdated implementation of MemoryBlock::next_ptr (#509)
`MemoryBlock::next_ptr` used to calculate the offset to the data of the
next block, but it should be returning the start of the `MemoryBlock`
structure in memory. Also updates the tests for this case.

This was discovered when trying to update the kernel in the go-sdk:
https://github.com/extism/go-sdk/pull/32

---------

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: zshipko <zshipko@users.noreply.github.com>
2023-10-12 17:57:50 -07:00
zach
6f4b43bedc feat: add benchmarking, optimize bounds checking in the kernel (#505)
- Adds benchmarking, run with `cargo bench` or `cargo criterion`
- Adds `MemoryRoot::pointer_in_bounds_fast` to do less precise bounds
checking in loads/stores

---------

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: zshipko <zshipko@users.noreply.github.com>
2023-10-12 13:24:34 -07:00
zach
a9835da614 fix(rust): return extism_error message from Plugin::call if it is set (#508) 2023-10-12 13:24:10 -07:00
zach
64fd246b73 feat: kernel hardening (#499)
- Kernel-specific tests
- Add bounds checking to the kernel, which can toggled using the
`bounds-checking` feature
- Next week I will do some benchmarking to determine the runtime
performance impact of bounds checking and can consider if it should be
relaxed for certain operations (mainly stores/loads)

---------

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: zshipko <zshipko@users.noreply.github.com>
2023-10-10 16:15:18 -07:00
Chris Dickinson
59e8335f17 feat(build): GHA release-python now releases extism_sys packages (#498)
This changes the workflow slightly: whenever we publish a draft release,
download our `*.whl` assets from that release and publish them to PyPI.
2023-10-05 16:32:34 -07:00
Chris Dickinson
703cacda91 v0.5.3 2023-10-05 15:53:13 -07:00
Benjamin Eckel
bc56d7303a docs: Add readme, bump convert crate (#495)
Co-authored-by: zach <zach@dylibso.com>
2023-10-04 16:33:54 -05:00
zach
e7ffc1dd6b ci: fix name 2023-10-04 12:37:29 -07:00
zach
d994f081f9 chore: prepare extism-convert to be released (#494) 2023-10-04 12:35:43 -07:00
dependabot[bot]
583befbaef chore(deps-dev): Bump @types/node from 20.6.2 to 20.6.5 in /node (#484)
Bumps
[@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node)
from 20.6.2 to 20.6.5.
<details>
<summary>Commits</summary>
<ul>
<li>See full diff in <a
href="https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=@types/node&package-manager=npm_and_yarn&previous-version=20.6.2&new-version=20.6.5)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-09-25 13:04:10 -05:00
dependabot[bot]
4c9dc6f6e4 chore(deps): Update ffi requirement from ~> 1.15.5 to ~> 1.16.1 in /ruby (#485)
Updates the requirements on [ffi](https://github.com/ffi/ffi) to permit
the latest version.
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/ffi/ffi/blob/master/CHANGELOG.md">ffi's
changelog</a>.</em></p>
<blockquote>
<h2>1.16.1 / 2023-09-24</h2>
<p>Fixed:</p>
<ul>
<li>Fix compiling the builtin libffi. <a
href="https://redirect.github.com/ffi/ffi/issues/1049">#1049</a></li>
</ul>
<h2>1.16.0 / 2023-09-23</h2>
<p>Fixed:</p>
<ul>
<li>Fix an issue with signed bitmasks when using flags on the most
significant bit. <a
href="https://redirect.github.com/ffi/ffi/issues/949">#949</a></li>
<li>Fix FFI::Pointer#initialize using NUM2LL instead of NUM2ULL.</li>
<li>Fix FFI::Type#inspect to properly display the constant name. <a
href="https://redirect.github.com/ffi/ffi/issues/1002">#1002</a></li>
<li>Use libffi closure allocations on hppa-Linux. <a
href="https://redirect.github.com/ffi/ffi/issues/1017">#1017</a>
Previously they would segfault.</li>
<li>Fix class name of Symbol#inspect.</li>
<li>Fix MSVC support of libtest. <a
href="https://redirect.github.com/ffi/ffi/issues/1028">#1028</a></li>
<li>Fix attach_function of functions ending in ? or ! <a
href="https://redirect.github.com/ffi/ffi/issues/971">#971</a></li>
</ul>
<p>Added:</p>
<ul>
<li>Convert all C-based classes to TypedData and use write barriers. <a
href="https://redirect.github.com/ffi/ffi/issues/994">#994</a>, <a
href="https://redirect.github.com/ffi/ffi/issues/995">#995</a>, <a
href="https://redirect.github.com/ffi/ffi/issues/996">#996</a>, <a
href="https://redirect.github.com/ffi/ffi/issues/997">#997</a>, <a
href="https://redirect.github.com/ffi/ffi/issues/998">#998</a>, <a
href="https://redirect.github.com/ffi/ffi/issues/999">#999</a>, <a
href="https://redirect.github.com/ffi/ffi/issues/1000">#1000</a>, <a
href="https://redirect.github.com/ffi/ffi/issues/1001">#1001</a>, <a
href="https://redirect.github.com/ffi/ffi/issues/1003">#1003</a>, <a
href="https://redirect.github.com/ffi/ffi/issues/1004">#1004</a>, <a
href="https://redirect.github.com/ffi/ffi/issues/1005">#1005</a>, <a
href="https://redirect.github.com/ffi/ffi/issues/1006">#1006</a>, <a
href="https://redirect.github.com/ffi/ffi/issues/1007">#1007</a>, <a
href="https://redirect.github.com/ffi/ffi/issues/1008">#1008</a>, <a
href="https://redirect.github.com/ffi/ffi/issues/1009">#1009</a>, <a
href="https://redirect.github.com/ffi/ffi/issues/1010">#1010</a>, <a
href="https://redirect.github.com/ffi/ffi/issues/1011">#1011</a>, <a
href="https://redirect.github.com/ffi/ffi/issues/1012">#1012</a>
This results in less pressure on the garbage collector, since the
objects can be promoted to the old generation, which means they only get
marked on major GC.</li>
<li>Implement <code>ObjectSpace.memsize_of()</code> of all C-based
classes.</li>
<li>Make FFI Ractor compatible. <a
href="https://redirect.github.com/ffi/ffi/issues/1023">#1023</a>
Modules extended per <code>extend FFI::Library</code> need to be frozen
in order to be used by non-main Ractors.
This can be done by calling <code>freeze</code> below of all C interface
definitions.
<ul>
<li>In a Ractor it's possible to:
<ul>
<li>load DLLs and call its functions, access its global variables</li>
<li>use builtin typedefs</li>
<li>use and modify ractor local typedefs</li>
<li>define callbacks</li>
<li>receive async callbacks from non-ruby threads</li>
<li>use frozen FFI::Library based modules with all attributes (enums,
structs, typedefs, functions, callbacks)</li>
<li>invoke frozen functions and callbacks defined in the main
Ractor</li>
<li>use FFI::Struct definitions from the main Ractor</li>
</ul>
</li>
<li>In a Ractor it's impossible to:
<ul>
<li>create new FFI::Library based modules</li>
<li>create new FFI::Struct definitions</li>
<li>use custom global typedefs</li>
<li>use non-frozen FFI::Library based modules</li>
</ul>
</li>
</ul>
</li>
<li>Allow type retrieval of attached functions+variables. <a
href="https://redirect.github.com/ffi/ffi/issues/1023">#1023</a></li>
<li>Make FFI classes <code>GC.compact</code> friendly. <a
href="https://redirect.github.com/ffi/ffi/issues/1021">#1021</a></li>
<li>Update libffi and disable custom trampoline when using libffi
closure allocation. <a
href="https://redirect.github.com/ffi/ffi/issues/1020">#1020</a>
This is because libffi changed the way how closures are allocated to
static trampolines.</li>
<li>Add types.conf for loongarch64-linux. <a
href="https://redirect.github.com/ffi/ffi/issues/943">#943</a></li>
<li>Add types.conf for sw_64-linux (Shen Wei 64-bit, based on Alpha). <a
href="https://redirect.github.com/ffi/ffi/issues/1018">#1018</a></li>
<li>Add support for aarch64-windows. <a
href="https://redirect.github.com/ffi/ffi/issues/1035">#1035</a></li>
<li>Windows: Update LoadLibrary error message to include error code. <a
href="https://redirect.github.com/ffi/ffi/issues/1026">#1026</a></li>
<li>Allow private release method for FFI::ManagedStruct and
FFI::AutoPointer. <a
href="https://redirect.github.com/ffi/ffi/issues/1029">#1029</a></li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="0e9a39b055"><code>0e9a39b</code></a>
Bump VERSION to 1.16.1</li>
<li><a
href="d0723fedbd"><code>d0723fe</code></a>
Add ffi-1.16.1 to CHANGELOG</li>
<li><a
href="ce6f419d17"><code>ce6f419</code></a>
Add another autoconf generated file</li>
<li><a
href="8e93ab242e"><code>8e93ab2</code></a>
Update release date for ffi-1.16.0</li>
<li><a
href="926c001bad"><code>926c001</code></a>
Bump VERSION to 1.16.0</li>
<li><a
href="688f2c8ff8"><code>688f2c8</code></a>
Update <code>rake clean</code> to remove mingw-ucrt directories as
well</li>
<li><a
href="10206eccdb"><code>10206ec</code></a>
Exclude ruby-2.4 from cross build</li>
<li><a
href="f2624639af"><code>f262463</code></a>
Add two more items to CHANGELOG</li>
<li><a
href="e942056150"><code>e942056</code></a>
Merge pull request <a
href="https://redirect.github.com/ffi/ffi/issues/1048">#1048</a> from
larskanis/enable-debug</li>
<li><a
href="c5c59aeba1"><code>c5c59ae</code></a>
Use debugflags from RbConfig instead of hardcoded gcc options</li>
<li>Additional commits viewable in <a
href="https://github.com/ffi/ffi/compare/v1.15.5...v1.16.1">compare
view</a></li>
</ul>
</details>
<br />


Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-09-25 13:04:00 -05:00
zach
08db39c153 chore: bump wasmtime lower bound to 13.0.0, remove wasi-nn support (#483)
- Updates to wasmtime 13.0.0 as the lowest supported version
- Removes `wasmtime-wasi-nn` support because it now takes parameters to
specify particular backends and registries during initialization. Since
I don't think anyone is using the `nn` feature I chose to remove it for
now, but we could also expand the manifest to add these options.
2023-09-23 09:12:54 -07:00
zach
75a8495772 cleanup(runtime): remove restrictions around memory.max_pages option, fix crash (#482)
- Removes restrictions around when `memory.max_pages` setting can be
used. Before we used `wasmtime::MemoryLimiter` it was hard to determine
how much was being allocated at runtime, so we used to calculate the
totals statically, which required every module to have a maximum memory
set at compile time. This PR allows `memory.max` to be used on any
module!
- Fixes a crash when the `memory.max_pages` field is set
- Adds a test that checks for failure when allocating more than
configured
2023-09-23 09:12:15 -07:00
Chris Dickinson
be646480b9 fix(build): remove windows gnu wheel builds (#481)
Maturin on Windows struggles with GNU headers. Since we have windows
MSVC wheel builds, this commit disables windows GNU wheel builds.

Also: fix a bug where the produced wheels did not include any extism
functions.
2023-09-22 12:34:47 -07:00
Chris Dickinson
8426e1a0a6 feat(build): add extism-maturin wheel builds (#480)
Build the python native library along with libextism since they change
at roughly the same rate; we can pull the resulting wheels into
python-sdk as needed.

Reduce the release job into a single matrix of `OS x RUST TARGET` – this
unifies the macos, windows, and linux builds into a single job.

---

**BREAKING CHANGE**: This changes the trigger for the release workflow.
Instead of being triggered by the creation of a release, it is triggered
by pushing new git tags. It will catch `v*` – `v0.5.0`, `v200.0.1-dev`
for example. The workflow creates a draft release.
2023-09-21 13:18:49 -07:00
Benjamin Eckel
00ccb5be9d docs: Add note about stable branch (#479) 2023-09-21 11:21:57 -05:00
zach
6e8c28b0e9 fix(main): improve the way the kernel calculates how many pages to allocate (#472)
Same as #471 for `main` branch

---------

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: zshipko <zshipko@users.noreply.github.com>
2023-09-20 16:25:48 -07:00
dependabot[bot]
98a4244915 chore(deps): Update toml requirement from 0.7 to 0.8 (#459)
Updates the requirements on [toml](https://github.com/toml-rs/toml) to
permit the latest version.
<details>
<summary>Commits</summary>
<ul>
<li><a
href="310f6ee9c5"><code>310f6ee</code></a>
chore: Release</li>
<li><a
href="90da8bc425"><code>90da8bc</code></a>
docs: Update changelog</li>
<li><a
href="f3e120f1a0"><code>f3e120f</code></a>
Merge pull request <a
href="https://redirect.github.com/toml-rs/toml/issues/608">#608</a> from
epage/enum</li>
<li><a
href="58a7101f68"><code>58a7101</code></a>
fix(serde): Support struct variants as table of a table</li>
<li><a
href="88a4dba312"><code>88a4dba</code></a>
fix(serde): Support tuple variants as table of an array</li>
<li><a
href="cf06b83424"><code>cf06b83</code></a>
test(serde): Verify both Table and Value serializers</li>
<li><a
href="4ffa44ec16"><code>4ffa44e</code></a>
test(serde): Make parameter order more consistent</li>
<li><a
href="2b7c34c900"><code>2b7c34c</code></a>
test(serde): Focus on string serialization first</li>
<li><a
href="e2a6a1cece"><code>e2a6a1c</code></a>
test(serde): Verify existing variant behavior</li>
<li><a
href="3f3e8329bb"><code>3f3e832</code></a>
chore: Release</li>
<li>Additional commits viewable in <a
href="https://github.com/toml-rs/toml/compare/toml-v0.7.0...toml-v0.8.0">compare
view</a></li>
</ul>
</details>
<br />


Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-09-20 17:27:31 -05:00
dependabot[bot]
326a4c86a8 chore(deps): Update cbindgen requirement from 0.25 to 0.26 (#460)
Updates the requirements on
[cbindgen](https://github.com/mozilla/cbindgen) to permit the latest
version.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/mozilla/cbindgen/releases">cbindgen's
releases</a>.</em></p>
<blockquote>
<h2>0.26.0</h2>
<ul>
<li>Fix swapping of <code>&gt;&gt;=</code> and <code>&lt;&lt;=</code> in
constants.</li>
<li>Add support for #[deprecated] (<a
href="https://redirect.github.com/mozilla/cbindgen/issues/860">#860</a>).</li>
<li>Built-in support for bitflags 2.0.</li>
<li>Support for &quot;C-unwind&quot; ABI.</li>
<li>Generate bindings for non-public extern items if they are
#[no_mangle].</li>
</ul>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/mozilla/cbindgen/blob/master/CHANGES">cbindgen's
changelog</a>.</em></p>
<blockquote>
<h1>0.26.0</h1>
<pre><code>  * Fix swapping of `&gt;&gt;=` and `&lt;&lt;=` in constants.
* Add support for #[deprecated]
([#860](https://github.com/mozilla/cbindgen/issues/860)).
  * Built-in support for bitflags 2.0.
  * Support for &quot;C-unwind&quot; ABI.
* Generate bindings for non-public extern items if they are
#[no_mangle].
</code></pre>
<h2>0.25.0</h2>
<pre><code>  * Re-release of yanked 0.24.6 as a major release
  * Update MSRV to 1.57
* Support variadic arguments (`...`)
([#805](https://github.com/mozilla/cbindgen/issues/805))
* Add --depfile option
([#820](https://github.com/mozilla/cbindgen/issues/820))
  * Breaking changes: The `Config` struct now has a private member.
</code></pre>
<h2>0.24.6 (YANKED: depfile option was breaking, see <a
href="https://redirect.github.com/mozilla/cbindgen/issues/841">#841</a>)</h2>
<pre><code>  * Update MSRV to 1.57
* Support variadic arguments (`...`)
([#805](https://github.com/mozilla/cbindgen/issues/805))
* Add --depfile option
([#820](https://github.com/mozilla/cbindgen/issues/820))
</code></pre>
<h2>0.24.5</h2>
<pre><code>  * Don't enforce tempfile version.
</code></pre>
<h2>0.24.4</h2>
<pre><code> * Move expand infinite recursion fix
([#799](https://github.com/mozilla/cbindgen/issues/799))
* Add with_cpp_compat to the builder
([#796](https://github.com/mozilla/cbindgen/issues/796))
* Handle never type in return position consistently
([#780](https://github.com/mozilla/cbindgen/issues/780))
* Fix warnings ([#816](https://github.com/mozilla/cbindgen/issues/816),
[#819](https://github.com/mozilla/cbindgen/issues/819))
* Updated documentation
([#788](https://github.com/mozilla/cbindgen/issues/788),
[#791](https://github.com/mozilla/cbindgen/issues/791),
[#792](https://github.com/mozilla/cbindgen/issues/792),
[#810](https://github.com/mozilla/cbindgen/issues/810),
[#823](https://github.com/mozilla/cbindgen/issues/823))
</code></pre>
<h2>0.24.3</h2>
<pre><code> * Make struct expressions correctly generated through
typedefs ([#768](https://github.com/mozilla/cbindgen/issues/768)).
</code></pre>
<h2>0.24.2</h2>
<pre><code>  * Make bitfield operators use explicit constructors.
</code></pre>
<h2>0.24.1</h2>
<pre><code> * Add support for unary negation
([#765](https://github.com/mozilla/cbindgen/issues/765)).
* Make more bitfield operators constexpr
([#765](https://github.com/mozilla/cbindgen/issues/765)).
</code></pre>
<h2>0.24.0</h2>
<pre><code> * Basic const generic support
([#759](https://github.com/mozilla/cbindgen/issues/759),
[#760](https://github.com/mozilla/cbindgen/issues/760)
[#762](https://github.com/mozilla/cbindgen/issues/762)).
</code></pre>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="703b53c06f"><code>703b53c</code></a>
v0.26.0</li>
<li><a
href="56f0febc9b"><code>56f0feb</code></a>
Update MSRV in Readme</li>
<li><a
href="9b4a14958e"><code>9b4a149</code></a>
Add support for out-of-line bitfields declarations</li>
<li><a
href="35f2e44ef2"><code>35f2e44</code></a>
Update URLs</li>
<li><a
href="85eb0f4436"><code>85eb0f4</code></a>
Bump clippy msrv to 1.64</li>
<li><a
href="43af1ebe6e"><code>43af1eb</code></a>
Handle bitflags bits method calls</li>
<li><a
href="f72e447156"><code>f72e447</code></a>
CHANGES: Note #[deprecated] support.</li>
<li><a
href="1473070230"><code>1473070</code></a>
utilities: annotation: Clean-up deprecated parsing and getter.</li>
<li><a
href="0fb5d07ae4"><code>0fb5d07</code></a>
Add support for #[deprecated].</li>
<li><a
href="d8355da466"><code>d8355da</code></a>
Support &quot;C-unwind&quot; ABI</li>
<li>Additional commits viewable in <a
href="https://github.com/mozilla/cbindgen/compare/v0.25.0...0.26.0">compare
view</a></li>
</ul>
</details>
<br />


Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-09-20 17:27:18 -05:00
dependabot[bot]
1ec4fda8fc chore(deps-dev): Bump @types/node from 20.6.0 to 20.6.2 in /node (#461)
[//]: # (dependabot-start)
⚠️  **Dependabot is rebasing this PR** ⚠️ 

Rebasing might not happen immediately, so don't worry if this takes some
time.

Note: if you make any changes to this PR yourself, they will take
precedence over the rebase.

---

[//]: # (dependabot-end)

Bumps
[@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node)
from 20.6.0 to 20.6.2.
<details>
<summary>Commits</summary>
<ul>
<li>See full diff in <a
href="https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=@types/node&package-manager=npm_and_yarn&previous-version=20.6.0&new-version=20.6.2)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-09-20 17:27:00 -05:00
dependabot[bot]
e7452a6f44 chore(deps-dev): Bump @types/ffi-napi from 4.0.7 to 4.0.8 in /node (#462)
Bumps
[@types/ffi-napi](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/ffi-napi)
from 4.0.7 to 4.0.8.
<details>
<summary>Commits</summary>
<ul>
<li>See full diff in <a
href="https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/ffi-napi">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=@types/ffi-napi&package-manager=npm_and_yarn&previous-version=4.0.7&new-version=4.0.8)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-09-20 17:26:34 -05:00
dependabot[bot]
d815b31352 chore(deps-dev): Bump jest and @types/jest in /node (#463)
Bumps [jest](https://github.com/jestjs/jest/tree/HEAD/packages/jest) and
[@types/jest](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/jest).
These dependencies needed to be updated together.
Updates `jest` from 29.6.4 to 29.7.0
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/jestjs/jest/releases">jest's
releases</a>.</em></p>
<blockquote>
<h2>v29.7.0</h2>
<h2>Features</h2>
<ul>
<li><code>[create-jest]</code> Add <code>npm init</code> / <code>yarn
create</code> initialiser for Jest projects (<a
href="https://redirect.github.com/jestjs/jest/pull/14453">#14465</a>)</li>
<li><code>[jest-validate]</code> Allow deprecation warnings for unknown
options (<a
href="https://redirect.github.com/jestjs/jest/pull/14499">#14499</a>)</li>
</ul>
<h2>Fixes</h2>
<ul>
<li><code>[jest-resolver]</code> Replace unmatched capture groups in
<code>moduleNameMapper</code> with empty string instead of
<code>undefined</code> (<a
href="https://redirect.github.com/jestjs/jest/pull/14507">#14507</a>)</li>
<li><code>[jest-snapshot]</code> Allow for strings as well as template
literals in inline snapshots (<a
href="https://redirect.github.com/jestjs/jest/pull/14465">#14465</a>)</li>
<li><code>[@jest/test-sequencer]</code> Calculate test runtime if
<code>perStats.duration</code> is missing (<a
href="https://redirect.github.com/jestjs/jest/pull/14473">#14473</a>)</li>
</ul>
<h2>Performance</h2>
<ul>
<li><code>[@jest/create-cache-key-function]</code> Cache access of
<code>NODE_ENV</code> and <code>BABEL_ENV</code> (<a
href="https://redirect.github.com/jestjs/jest/pull/14455">#14455</a>)</li>
</ul>
<h2>Chore &amp; Maintenance</h2>
<ul>
<li><code>[jest-cli]</code> Move internal config initialisation logic to
the <code>create-jest</code> package (<a
href="https://redirect.github.com/jestjs/jest/pull/14453">#14465</a>)</li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a href="https://github.com/bawjensen"><code>@​bawjensen</code></a>
made their first contribution in <a
href="https://redirect.github.com/jestjs/jest/pull/14465">jestjs/jest#14465</a></li>
<li><a
href="https://github.com/malaviya-parth"><code>@​malaviya-parth</code></a>
made their first contribution in <a
href="https://redirect.github.com/jestjs/jest/pull/14467">jestjs/jest#14467</a></li>
<li><a
href="https://github.com/niklasholm"><code>@​niklasholm</code></a> made
their first contribution in <a
href="https://redirect.github.com/jestjs/jest/pull/14507">jestjs/jest#14507</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/jestjs/jest/compare/v29.6.4...v29.7.0">https://github.com/jestjs/jest/compare/v29.6.4...v29.7.0</a></p>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/jestjs/jest/blob/main/CHANGELOG.md">jest's
changelog</a>.</em></p>
<blockquote>
<h2>29.7.0</h2>
<h3>Features</h3>
<ul>
<li><code>[create-jest]</code> Add <code>npm init</code> / <code>yarn
create</code> initialiser for Jest projects (<a
href="https://redirect.github.com/jestjs/jest/pull/14453">#14465</a>)</li>
<li><code>[jest-validate]</code> Allow deprecation warnings for unknown
options (<a
href="https://redirect.github.com/jestjs/jest/pull/14499">#14499</a>)</li>
</ul>
<h3>Fixes</h3>
<ul>
<li><code>[jest-resolver]</code> Replace unmatched capture groups in
<code>moduleNameMapper</code> with empty string instead of
<code>undefined</code> (<a
href="https://redirect.github.com/jestjs/jest/pull/14507">#14507</a>)</li>
<li><code>[jest-snapshot]</code> Allow for strings as well as template
literals in inline snapshots (<a
href="https://redirect.github.com/jestjs/jest/pull/14465">#14465</a>)</li>
<li><code>[@jest/test-sequencer]</code> Calculate test runtime if
<code>perStats.duration</code> is missing (<a
href="https://redirect.github.com/jestjs/jest/pull/14473">#14473</a>)</li>
</ul>
<h3>Performance</h3>
<ul>
<li><code>[@jest/create-cache-key-function]</code> Cache access of
<code>NODE_ENV</code> and <code>BABEL_ENV</code> (<a
href="https://redirect.github.com/jestjs/jest/pull/14455">#14455</a>)</li>
</ul>
<h3>Chore &amp; Maintenance</h3>
<ul>
<li><code>[jest-cli]</code> Move internal config initialisation logic to
the <code>create-jest</code> package (<a
href="https://redirect.github.com/jestjs/jest/pull/14453">#14465</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="4e56991693"><code>4e56991</code></a>
v29.7.0</li>
<li>See full diff in <a
href="https://github.com/jestjs/jest/commits/v29.7.0/packages/jest">compare
view</a></li>
</ul>
</details>
<br />

Updates `@types/jest` from 29.5.4 to 29.5.5
<details>
<summary>Commits</summary>
<ul>
<li>See full diff in <a
href="https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/jest">compare
view</a></li>
</ul>
</details>
<br />


Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-09-20 17:26:21 -05:00
zach
28074af2b9 ci: automate PRs to build canonical version of extism-runtime.wasm (#473)
Closes #469 

This PR adds a github workflow that is triggered by updates to the
`kernel/` directory or `runtime/src/extism-kernel.wasm` - it builds the
kernel, including using `wasm-strip` and makes a PR against any PR that
has a kernel module that doesn't match the expected output.

I had considered making this run when the PR is merged into main, but
this approach gives us a chance to run CI with the generated wasm file.
I think automatically adding a commit would be simpler, but this way
seems more transparent.

---------

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: zshipko <zshipko@users.noreply.github.com>
2023-09-20 15:21:42 -07:00
zach
016e9158ef fix(main): Fixes rounding issue in kernel num_pages (#468)
This is #466 for the `main` branch

Co-authored-by: Benjamin Eckel <bhelx@simst.im>
2023-09-18 17:38:38 -07:00
zach
d040c8b8a8 fix(kernel): avoid allocating 0-length blocks (#465)
Fixes an issue where the kernel was able to allocate empty blocks,
causing some weird memory issues.
2023-09-18 11:23:36 -07:00
Chris Dickinson
ab458ebd44 feat(build): Add "latest" snapshot builds (#457)
Add a "latest" snapshot that other libraries can use to test against the
latest version of Extism.

Add caching for builds triggered by pushes to `main`.
2023-09-15 10:03:04 -07:00
zach
cb55e52506 feat: Add extism-convert crate and use it for input/output to plugin calls (#443)
- Adds `extism-convert` crate with `ToBytes`, `FromBytes` and
`FromBytesOwned` traits
- This serves as a single interface for reading/writing rich types from
WebAssembly linear memory.
- Supports `Json` and `Msgpack` and `Protobuf` encodings out-of-the-box
- Updates `Plugin::call` to take `ToBytes` as the input argument and
return a `FromBytes` value
- Adds `host_fn!` macro to simplify host function creation
- Cleans up generated documentation a little
- PR for the Rust PDK: https://github.com/extism/rust-pdk/pull/31
- Adds a `typed_plugin!` macro to implement type-safe wrappers around
`Plugin`
- After this we should focus on adding similar type-conversion helpers
to the SDKs and other PDKs to make it easier to use across languages.
For example, a Python host running a Rust plugin using Msgpack encoded
types.

## Examples

### Calling a function

Instead of the untyped, bytes-only `call` function:

```rust
let output = plugin.call("func_name", "my data").unwrap();
let output: MyType = serde_json::from_slice(&output).unwrap();
```
We can now use richer types to encode/decode our values directly when
using `call`:

```rust
let Json(output) = plugin.call::<_, Json<MyType>>("func_name", "my data").unwrap();
```

### Allocating inside of a host function

The same interface works for host functions, so instead of:

```rust
fn hello_world(
    plugin: &mut CurrentPlugin,
    inputs: &[Val],
    outputs: &mut [Val],
    _user_data: UserData,
) -> Result<(), Error> {
    let handle = plugin.memory_handle_val(&inputs[0])?;
    let input = plugin.memory_read_str(handle)?;
    let output = plugin.memory_alloc_bytes(&input).unwrap();
    outputs[0] = output.into();
    Ok(())
}
```

Becomes:

```rust
fn hello_world(
    plugin: &mut CurrentPlugin,
    inputs: &[Val],
    outputs: &mut [Val],
    _user_data: UserData,
) -> Result<(), Error> {
    let my_value: String = plugin.memory_get_val(&inputs[0])?;
    let output = plugin.memory_new(&my_value)?;
    outputs[0] = plugin.memory_to_val(output);
    Ok(())
}
```

Although this isn't much of an improvement, using the `host_fn` macro,
we can really begin to see how the above function is really just an
identity function:
```rust
host_fn!(hello_world(a: String) -> String {
    a
});
```

### typed_plugin!

`typed_plugin!` is used to make a typed wrapper around a Plugin:

```rust
/// Create the typed plugin
typed_plugin!(Testing {
    count_vowels(&str) -> Json<Count>
});

/// Create the `Plugin` and convert it to `Testing` wrapper
let mut plugin: Testing = Plugin::new(WASM, [f], true).unwrap().into();

/// Call the `count_vowels` function:
let Json(output0): Json<Count> = plugin.count_vowels("abc123")?;
```

It could make sense to convert `host_fn` and/or `typed_plugin` to
proc-macros at some point, but for now they work and provide some
flexibility in experimenting with the interfaces. Another future update
could be to figure out a nice way to make it so input can be written in
multiple chunks, so the entire input doesn't have to get copied into
memory at once.
2023-09-14 12:32:38 -07:00
Rob
4377cbd7a0 chore(browser): bump package version (#454) 2023-09-13 17:20:13 -06:00
Rob
e1a5b01ede feat(browser): Allow Initialization of Plugin from WebAssembly.Module (#453)
Allows for initializing an extism plugin from a `WebAssembly.Module`
like:
```js
const ctx = new ExtismContext();
const p = await ctx.newPlugin(new WebAssembly.Module(wasm), []);
```
2023-09-13 16:22:13 -06:00
zach
de19168540 feat(ocaml): add missing flags to extism-call executable (#451)
`extism-call` is a test program using the OCaml SDK, this PR adds the
missing flags to make it a little more useful for general testing/
2023-09-11 20:12:34 -07:00
Benjamin Eckel
2bf5ac75c0 feat(ruby): Host functions and clean up FFI code (#442)
Adds support for host functions and cleans up some of the FFI code.


## API

To make a host function, you can pass a proc to `Function::new`:

```ruby
func = proc do |current_plugin, inputs, outputs, user_data|
  input = current_plugin.input_as_bytes(inputs.first)
  current_plugin.return_string(outputs.first, "#{input} #{user_data}")
end
f = Extism::Function.new('transform_string', [Extism::ValType::I64], [Extism::ValType::I64], func, 'My User Data')
plugin = Extism::Plugin.new(host_manifest, [f], true)
result = plugin.call('reflect_string', 'Hello, World!')
assert_equal result, 'Hello, World! My User Data'
```

If your function is in a module or a class, you can use
`method(name).to_proc`. Example:

```ruby
module Test
  def self.my_function(current_plugin, inputs, outputs, user_data)
    input = current_plugin.input_as_bytes(inputs.first)
    current_plugin.return_string(outputs.first, "#{input} #{user_data}")
  end
end

func = Test.method(:my_function).to_proc
f = Extism::Function.new('my_function', [Extism::ValType::I64], [Extism::ValType::I64], func, 'My User Data')
```


`current_plugin` is of the type CurrentPlugin which has some helpful
methods:

* `CurrentPlugin#memory_at_offset(int)` returns a `Memory` object given
a memory pointer
* `CurrentPlugin#free(Memory)` frees the memory
* `CurrentPlugin#alloc(int)` allocates new memory and returns a `Memory`
* `CurrentPlugin#input_as_bytes(Value)` returns the bytes for the given
input param
* `CurrentPlugin#return_bytes(Value, Array)` Sets the array of bytes to
the return for the given output value
* `CurrentPlugin#input_as_bytes(Value, String)` Sets the string to the
return for the given output value
2023-09-11 18:21:11 -05:00
dependabot[bot]
3e92b05db0 chore(deps-dev): Bump typedoc from 0.25.0 to 0.25.1 in /node (#448)
Bumps [typedoc](https://github.com/TypeStrong/TypeDoc) from 0.25.0 to
0.25.1.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/TypeStrong/TypeDoc/releases">typedoc's
releases</a>.</em></p>
<blockquote>
<h2>v0.25.1</h2>
<h3>Features</h3>
<ul>
<li>Added <code>stripYamlFrontmatter</code> config option to remove YAML
frontmatter from README.md, <a
href="https://redirect.github.com/TypeStrong/TypeDoc/issues/2381">#2381</a>.</li>
<li>Added <code>--excludeCategories</code> config option to remove
reflections present in any excluded category, <a
href="https://redirect.github.com/TypeStrong/TypeDoc/issues/1407">#1407</a>.</li>
<li>If no tsconfig.json file is present, TypeDoc will now attempt to
compile without setting any compiler options, <a
href="https://redirect.github.com/TypeStrong/TypeDoc/issues/2304">#2304</a>.</li>
<li>Navigation is now written to a JS file and built dynamically, which
significantly decreases document generation time
with large projects and also provides large space benefits. Themes may
now override <code>DefaultTheme.buildNavigation</code>
to customize the displayed navigation tree, <a
href="https://redirect.github.com/TypeStrong/TypeDoc/issues/2287">#2287</a>.
Note: This change renders <code>navigation.fullTree</code> obsolete. If
you set it, TypeDoc will warn that it is being ignored.
It will be removed in v0.26.</li>
<li>The search index is now compressed before writing, which reduces
most search index sizes by ~5-10x.</li>
<li>TypeDoc will now attempt to cache icons when
<code>DefaultThemeRenderContext.icons</code> is overwritten by a custom
theme.
Note: To perform this optimization, TypeDoc relies on
<code>DefaultThemeRenderContext.iconCache</code> being rendered within
each page. TypeDoc does it in the <code>defaultLayout</code>
template.</li>
<li>Cache URL derivation during generation, <a
href="https://redirect.github.com/TypeStrong/TypeDoc/issues/2386">#2386</a>.</li>
</ul>
<h3>Bug Fixes</h3>
<ul>
<li><code>@property</code> now works as expected if used to override a
method's documentation.</li>
<li>Deprecated functions/methods are now correctly rendered with a
struck-out name.</li>
<li><code>--watch</code> mode works again, <a
href="https://redirect.github.com/TypeStrong/TypeDoc/issues/2378">#2378</a>.</li>
<li>Improved support for optional names within JSDoc types, <a
href="https://redirect.github.com/TypeStrong/TypeDoc/issues/2384">#2384</a>.</li>
<li>Fixed duplicate rendering of reflection flags on signature
parameters, <a
href="https://redirect.github.com/TypeStrong/TypeDoc/issues/2385">#2385</a>.</li>
<li>TypeDoc now handles the <code>intrinsic</code> keyword if TS
intrinsic types are included in documentation.</li>
<li><code>--exclude</code> is now respected when expanding globs in
entry points, <a
href="https://redirect.github.com/TypeStrong/TypeDoc/issues/2376">#2376</a>.</li>
</ul>
<h3>Thanks!</h3>
<ul>
<li><a
href="https://github.com/ajesshope"><code>@​ajesshope</code></a></li>
<li><a
href="https://github.com/HemalPatil"><code>@​HemalPatil</code></a></li>
<li><a href="https://github.com/hrueger"><code>@​hrueger</code></a></li>
<li><a
href="https://github.com/typhonrt"><code>@​typhonrt</code></a></li>
</ul>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/TypeStrong/typedoc/blob/master/CHANGELOG.md">typedoc's
changelog</a>.</em></p>
<blockquote>
<h2>v0.25.1 (2023-09-04)</h2>
<h3>Features</h3>
<ul>
<li>Added <code>stripYamlFrontmatter</code> config option to remove YAML
frontmatter from README.md, <a
href="https://redirect.github.com/TypeStrong/TypeDoc/issues/2381">#2381</a>.</li>
<li>Added <code>--excludeCategories</code> config option to remove
reflections present in any excluded category, <a
href="https://redirect.github.com/TypeStrong/TypeDoc/issues/1407">#1407</a>.</li>
<li>If no tsconfig.json file is present, TypeDoc will now attempt to
compile without setting any compiler options, <a
href="https://redirect.github.com/TypeStrong/TypeDoc/issues/2304">#2304</a>.</li>
<li>Navigation is now written to a JS file and built dynamically, which
significantly decreases document generation time
with large projects and also provides large space benefits. Themes may
now override <code>DefaultTheme.buildNavigation</code>
to customize the displayed navigation tree, <a
href="https://redirect.github.com/TypeStrong/TypeDoc/issues/2287">#2287</a>.
Note: This change renders <code>navigation.fullTree</code> obsolete. If
you set it, TypeDoc will warn that it is being ignored.
It will be removed in v0.26.</li>
<li>The search index is now compressed before writing, which reduces
most search index sizes by ~5-10x.</li>
<li>TypeDoc will now attempt to cache icons when
<code>DefaultThemeRenderContext.icons</code> is overwritten by a custom
theme.
Note: To perform this optimization, TypeDoc relies on
<code>DefaultThemeRenderContext.iconCache</code> being rendered within
each page. TypeDoc does it in the <code>defaultLayout</code>
template.</li>
<li>Cache URL derivation during generation, <a
href="https://redirect.github.com/TypeStrong/TypeDoc/issues/2386">#2386</a>.</li>
</ul>
<h3>Bug Fixes</h3>
<ul>
<li><code>@property</code> now works as expected if used to override a
method's documentation.</li>
<li>Deprecated functions/methods are now correctly rendered with a
struck-out name.</li>
<li><code>--watch</code> mode works again, <a
href="https://redirect.github.com/TypeStrong/TypeDoc/issues/2378">#2378</a>.</li>
<li>Improved support for optional names within JSDoc types, <a
href="https://redirect.github.com/TypeStrong/TypeDoc/issues/2384">#2384</a>.</li>
<li>Fixed duplicate rendering of reflection flags on signature
parameters, <a
href="https://redirect.github.com/TypeStrong/TypeDoc/issues/2385">#2385</a>.</li>
<li>TypeDoc now handles the <code>intrinsic</code> keyword if TS
intrinsic types are included in documentation.</li>
<li><code>--exclude</code> is now respected when expanding globs in
entry points, <a
href="https://redirect.github.com/TypeStrong/TypeDoc/issues/2376">#2376</a>.</li>
</ul>
<h3>Thanks!</h3>
<ul>
<li><a
href="https://github.com/ajesshope"><code>@​ajesshope</code></a></li>
<li><a
href="https://github.com/HemalPatil"><code>@​HemalPatil</code></a></li>
<li><a href="https://github.com/hrueger"><code>@​hrueger</code></a></li>
<li><a
href="https://github.com/typhonrt"><code>@​typhonrt</code></a></li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="5e4c79dcf4"><code>5e4c79d</code></a>
Update changelog for release</li>
<li><a
href="265bf4963e"><code>265bf49</code></a>
Bump version to 0.25.1</li>
<li><a
href="0985616f55"><code>0985616</code></a>
Handle projects without tsconfig files</li>
<li><a
href="bcf3e04263"><code>bcf3e04</code></a>
Add excludeCategories option</li>
<li><a
href="653b2814f8"><code>653b281</code></a>
Respect --exclude when expanding globs in entry points</li>
<li><a
href="a6823cf288"><code>a6823cf</code></a>
Cache URL derivation during generation</li>
<li><a
href="1f88a1f87e"><code>1f88a1f</code></a>
Compress search index too</li>
<li><a
href="d68ca2ab5d"><code>d68ca2a</code></a>
Update changelog</li>
<li><a
href="dc4a16da15"><code>dc4a16d</code></a>
feat: <code>stripYamlFrontmatter</code> option (<a
href="https://redirect.github.com/TypeStrong/TypeDoc/issues/2387">#2387</a>)</li>
<li><a
href="67ee6acccf"><code>67ee6ac</code></a>
Dynamically load navigation</li>
<li>Additional commits viewable in <a
href="https://github.com/TypeStrong/TypeDoc/compare/v0.25.0...v0.25.1">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=typedoc&package-manager=npm_and_yarn&previous-version=0.25.0&new-version=0.25.1)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-09-11 13:35:29 -05:00
dependabot[bot]
4caee2de1a chore(deps-dev): Bump @types/node from 20.5.9 to 20.6.0 in /node (#449)
Bumps
[@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node)
from 20.5.9 to 20.6.0.
<details>
<summary>Commits</summary>
<ul>
<li>See full diff in <a
href="https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=@types/node&package-manager=npm_and_yarn&previous-version=20.5.9&new-version=20.6.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-09-11 13:35:18 -05:00
dependabot[bot]
5339f3ca1e chore(deps-dev): Update minitest requirement from ~> 5.19.0 to ~> 5.20.0 in /ruby (#450)
Updates the requirements on
[minitest](https://github.com/minitest/minitest) to permit the latest
version.
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/minitest/minitest/blob/master/History.rdoc">minitest's
changelog</a>.</em></p>
<blockquote>
<p>=== 5.20.0 / 2023-09-06</p>
<ul>
<li>
<p>1 minor enhancement:</p>
<ul>
<li>Optionally allow autorun exit hook to remain active in forked child.
(casperisfine)</li>
</ul>
</li>
</ul>
<p>=== 5.19.0 / 2023-07-26</p>
<ul>
<li>
<p>2 minor enhancements:</p>
<ul>
<li>Add metadata lazy accessor to Runnable / Result. (matteeyah)</li>
<li>Only load minitest/unit (aka ancient MiniTest compatibility layer)
if ENV[&quot;MT_COMPAT&quot;]</li>
</ul>
</li>
<li>
<p>1 bug fix:</p>
<ul>
<li>Minitest::TestTask enthusiastically added itself to default.
(ParadoxV5)</li>
</ul>
</li>
</ul>
<p>=== 5.18.1 / 2023-06-16</p>
<ul>
<li>
<p>3 bug fixes:</p>
<ul>
<li>Avoid extra string allocations when filtering tests.
(tenderlove)</li>
<li>Only mention deprecated ENV['N'] if it is an integer string.</li>
<li>Push up test_order to Minitest::Runnable to fix minitest/hell.
(koic)</li>
</ul>
</li>
</ul>
<p>=== 5.18.0 / 2023-03-04</p>
<ul>
<li>
<p>2 major enhancements:</p>
<ul>
<li>Added assert_pattern &amp; refute_pattern for pattern matching.
(flavorjones)</li>
<li>Added matching must_pattern_match &amp; wont_pattern_match to
minitest/spec.</li>
</ul>
</li>
<li>
<p>1 bug fix:</p>
<ul>
<li>Support the new message format of NameError in Ruby 3.3 (mame)</li>
</ul>
</li>
</ul>
<p>=== 5.17.0 / 2022-12-31</p>
<ul>
<li>
<p>1 minor enhancement:</p>
<ul>
<li>Refactor setup hooks into a SETUP_METHODS constant. (MSP-Greg)</li>
</ul>
</li>
<li>
<p>3 bug fixes:</p>
<ul>
<li>Fix kwargs for Mock calls to delegator. (blowmage)</li>
<li>Fix kwargs for expectations. (bobmazanec, blowmage)</li>
<li>Remove check for .b method. (tenderlove)</li>
</ul>
</li>
</ul>
<p>=== 5.16.3 / 2022-08-17</p>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="6719ad8d8d"><code>6719ad8</code></a>
prepped for release</li>
<li><a
href="780dc155b0"><code>780dc15</code></a>
+ Optionally allow autorun exit hook to remain active in forked child.
(caspe...</li>
<li><a
href="ed88d196bc"><code>ed88d19</code></a>
Fixed skip messages for non-forking systems. (casperisfine)</li>
<li>See full diff in <a
href="https://github.com/minitest/minitest/compare/v5.19.0...v5.20.0">compare
view</a></li>
</ul>
</details>
<br />


Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-09-11 13:35:06 -05:00
zach
26f70e3a30 feat: Add EXTISM_ENABLE_WASI_OUTPUT to inherit stdout/stderr (#446)
@mhmd-azeez pointed out that exposing an option like this can be very
useful for debugging if the program is expecting to run in a full WASI
environment.
2023-09-06 08:37:27 -07:00
Chris Dickinson
3ca661546d fix: toml manifests load the extism runtime (#447)
Just getting my feet wet with the codebase a little bit! I noticed that
TOML manifests weren't loading the extism runtime by default while doing
a walkthrough. This commit ensures the runtime is loaded and adds a
test.

Also, fix a tiny typo in a comment.
2023-09-05 16:36:16 -07:00
dependabot[bot]
d85bae6187 chore(deps-dev): Bump @types/node from 20.5.7 to 20.5.9 in /node (#444)
Bumps
[@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node)
from 20.5.7 to 20.5.9.
<details>
<summary>Commits</summary>
<ul>
<li>See full diff in <a
href="https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=@types/node&package-manager=npm_and_yarn&previous-version=20.5.7&new-version=20.5.9)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-09-04 18:08:02 -05:00
dependabot[bot]
8a19142524 chore(deps-dev): Bump prettier from 3.0.2 to 3.0.3 in /node (#445)
Bumps [prettier](https://github.com/prettier/prettier) from 3.0.2 to
3.0.3.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/prettier/prettier/releases">prettier's
releases</a>.</em></p>
<blockquote>
<h2>3.0.3</h2>
<p>🔗 <a
href="https://github.com/prettier/prettier/blob/main/CHANGELOG.md#303">Changelog</a></p>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/prettier/prettier/blob/main/CHANGELOG.md">prettier's
changelog</a>.</em></p>
<blockquote>
<h1>3.0.3</h1>
<p><a
href="https://github.com/prettier/prettier/compare/3.0.2...3.0.3">diff</a></p>
<h4>Add <code>preferUnplugged: true</code> to <code>package.json</code>
(<a
href="https://redirect.github.com/prettier/prettier/pull/15169">#15169</a>
by <a href="https://github.com/fisker"><code>@​fisker</code></a> and <a
href="https://github.com/so1ve"><code>@​so1ve</code></a>)</h4>
<p>Prettier v3 uses dynamic imports, user <a
href="https://redirect.github.com/yarnpkg/berry/pull/5411#issuecomment-1523502224">will
need to unplug Prettier</a> when Yarn's PnP mode is enabled, add <a
href="https://yarnpkg.com/configuration/manifest#preferUnplugged"><code>preferUnplugged:
true</code></a> to <code>package.json</code>, so Yarn will install
Prettier as unplug by default.</p>
<h4>Support shared config that forbids <code>require()</code> (<a
href="https://redirect.github.com/prettier/prettier/pull/15233">#15233</a>
by <a href="https://github.com/fisker"><code>@​fisker</code></a>)</h4>
<p>If an external shared config package is used, and the package
<code>exports</code> don't have <code>require</code> or
<code>default</code> export.</p>
<p>In Prettier 3.0.2 Prettier fails when attempt to
<code>require()</code> the package, and throws an error.</p>
<pre lang="text"><code>Error [ERR_PACKAGE_PATH_NOT_EXPORTED]: No
&quot;exports&quot; main defined in &lt;packageName&gt;/package.json
</code></pre>
<h4>Allow argument of <code>require()</code> to break (<a
href="https://redirect.github.com/prettier/prettier/pull/15256">#15256</a>
by <a href="https://github.com/fisker"><code>@​fisker</code></a>)</h4>
<!-- raw HTML omitted -->
<pre lang="jsx"><code>// Input
const plugin = require(
  global.STANDALONE
    ? path.join(__dirname, &quot;../standalone.js&quot;)
    : path.join(__dirname, &quot;..&quot;)
);
<p>// Prettier 3.0.2
const plugin = require(global.STANDALONE
? path.join(__dirname, &quot;../standalone.js&quot;)
: path.join(__dirname, &quot;..&quot;));</p>
<p>// Prettier 3.0.3
const plugin = require(
global.STANDALONE
? path.join(__dirname, &quot;../standalone.js&quot;)
: path.join(__dirname, &quot;..&quot;)
);
</code></pre></p>
<h4>Do not print trailing commas in arrow function type parameter lists
in <code>ts</code> code blocks (<a
href="https://redirect.github.com/prettier/prettier/pull/15286">#15286</a>
by <a
href="https://github.com/sosukesuzuki"><code>@​sosukesuzuki</code></a>)</h4>
<!-- raw HTML omitted -->
<pre lang="md"><code>&lt;!-- Input --&gt;
```ts
const foo = &lt;T&gt;() =&gt; {}
```
&lt;/tr&gt;&lt;/table&gt; 
</code></pre>
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="d5f31710b2"><code>d5f3171</code></a>
Release 3.0.3</li>
<li><a
href="a35008fb0a"><code>a35008f</code></a>
Support shared config that forbids <code>require()</code> (<a
href="https://redirect.github.com/prettier/prettier/issues/15233">#15233</a>)</li>
<li><a
href="1ce97d13a3"><code>1ce97d1</code></a>
Support TypeScript 5.2 <code>using</code> / <code>await using</code>
declaration (<a
href="https://redirect.github.com/prettier/prettier/issues/15321">#15321</a>)</li>
<li><a
href="a73cfa0ec4"><code>a73cfa0</code></a>
Fix build script <code>--report</code> option (<a
href="https://redirect.github.com/prettier/prettier/issues/15323">#15323</a>)</li>
<li><a
href="941c6b3a3c"><code>941c6b3</code></a>
Minor refactor to <code>getSupportedFilesGlob</code> (<a
href="https://redirect.github.com/prettier/prettier/issues/15319">#15319</a>)</li>
<li><a
href="f6c9e9b0b8"><code>f6c9e9b</code></a>
Assert uniqueness in language properties (<a
href="https://redirect.github.com/prettier/prettier/issues/15320">#15320</a>)</li>
<li><a
href="288ea7e911"><code>288ea7e</code></a>
chore(deps): update dependency webpack to v5.88.2 (<a
href="https://redirect.github.com/prettier/prettier/issues/15147">#15147</a>)</li>
<li><a
href="6654451d9e"><code>6654451</code></a>
chore(deps): update dependency webpack to v5.88.2 (<a
href="https://redirect.github.com/prettier/prettier/issues/15148">#15148</a>)</li>
<li><a
href="d05964460d"><code>d059644</code></a>
chore(deps): update dependency fast-glob to v3.3.1 (<a
href="https://redirect.github.com/prettier/prettier/issues/15001">#15001</a>)</li>
<li><a
href="423011dcab"><code>423011d</code></a>
Minor refactor to <code>expandPatterns</code> (<a
href="https://redirect.github.com/prettier/prettier/issues/15317">#15317</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/prettier/prettier/compare/3.0.2...3.0.3">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=prettier&package-manager=npm_and_yarn&previous-version=3.0.2&new-version=3.0.3)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-09-04 18:07:54 -05:00
zach
ddcbeec3de refactor!: Remove context, unify extism-runtime and extism crates (#421)
- Removes the `ExtismContext` type from runtime and all SDKs
- Removed SDK functions: `extism_context_new`, `extism_context_reset`,
`extism_context_free`
  - All SDKs have been updated, but there are still some TODOs below 
- Removes `extism_plugin_update`
- Plugins can no longer be updated - a new plugin should be created
instead
- Adds `extism_plugin_id` to uniquely identify plugins
- Merges the `extism-runtime` and `extism` crates (there is no longer an
`extism-runtime` crate)
- Makes `extism::Manifest` an alias for `extism_manifest::Manifest`
instead of a distinct type
- Adds `MemoryHandle` type to SDKs to refer to blocks of Extism memory
that can be accessed in host functions
- Improves thread-safety of Plugins, adds C++ test to call a single
plugin from multiple threads.
- Expands wasmtime bounds to include 12.0
2023-08-29 13:57:17 -07:00
dependabot[bot]
aa073b8acc chore(deps-dev): Bump jest and @types/jest in /node (#436)
Bumps [jest](https://github.com/jestjs/jest/tree/HEAD/packages/jest) and
[@types/jest](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/jest).
These dependencies needed to be updated together.
Updates `jest` from 29.6.2 to 29.6.4
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/jestjs/jest/releases">jest's
releases</a>.</em></p>
<blockquote>
<h2>v29.6.4</h2>
<h2>Fixes</h2>
<ul>
<li><code>[jest-core]</code> Fix typo in <code>scheduleAndRun</code>
performance marker (<a
href="https://redirect.github.com/jestjs/jest/pull/14434">#14434</a>)</li>
<li><code>[jest-environment-node]</code> Make sure <code>atob</code> and
<code>btoa</code> are writeable in Node 20 (<a
href="https://redirect.github.com/jestjs/jest/pull/14446">#14446</a>)</li>
<li><code>[jest-worker]</code> Additional error wrapper for
<code>parentPort.postMessage</code> to fix unhandled
<code>DataCloneError</code>. (<a
href="https://redirect.github.com/jestjs/jest/pull/14437">#14437</a>)</li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a
href="https://github.com/stanleyume"><code>@​stanleyume</code></a> made
their first contribution in <a
href="https://redirect.github.com/jestjs/jest/pull/14424">jestjs/jest#14424</a></li>
<li><a
href="https://github.com/dj-stormtrooper"><code>@​dj-stormtrooper</code></a>
made their first contribution in <a
href="https://redirect.github.com/jestjs/jest/pull/14437">jestjs/jest#14437</a></li>
<li><a href="https://github.com/thw0rted"><code>@​thw0rted</code></a>
made their first contribution in <a
href="https://redirect.github.com/jestjs/jest/pull/14444">jestjs/jest#14444</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/jestjs/jest/compare/v29.6.3...v29.6.4">https://github.com/jestjs/jest/compare/v29.6.3...v29.6.4</a></p>
<h2>v29.6.3</h2>
<h2>Fixes</h2>
<ul>
<li><code>[expect, @jest/expect-utils]</code>
<code>ObjectContaining</code> support <code>symbol</code> as key (<a
href="https://redirect.github.com/jestjs/jest/pull/14414">#14414</a>)</li>
<li><code>[expect]</code> Remove <code>@types/node</code> from
dependencies (<a
href="https://redirect.github.com/jestjs/jest/pull/14385">#14385</a>)</li>
<li><code>[jest-core]</code> Use workers in watch mode by default to
avoid crashes (<a
href="https://redirect.github.com/facebook/jest/pull/14059">#14059</a>
&amp; <a
href="https://redirect.github.com/facebook/jest/pull/14085">#14085</a>).</li>
<li><code>[jest-reporters]</code> Update
<code>istanbul-lib-instrument</code> dependency to v6. (<a
href="https://redirect.github.com/jestjs/jest/pull/14401">#14401</a>)</li>
<li><code>[jest-mock]</code> Revert <a
href="https://redirect.github.com/jestjs/jest/pull/13692">#13692</a> as
it was a breaking change (<a
href="https://redirect.github.com/jestjs/jest/pull/14429">#14429</a>)</li>
<li><code>[jest-mock]</code> Revert <a
href="https://redirect.github.com/jestjs/jest/pull/13866">#13866</a> as
it was a breaking change (<a
href="https://redirect.github.com/jestjs/jest/pull/14429">#14429</a>)</li>
<li><code>[jest-mock]</code> Revert <a
href="https://redirect.github.com/jestjs/jest/pull/13867">#13867</a> as
it was a breaking change (<a
href="https://redirect.github.com/jestjs/jest/pull/14429">#14429</a>)</li>
<li><code>[@jest/reporters]</code> Marks Reporter's hooks as optional
(<a
href="https://redirect.github.com/jestjs/jest/pull/14433">#14433</a>)</li>
<li><code>[jest-runtime]</code> Fix dynamic ESM import module bug when
loaded module through <code>jest.isolateModulesAsync</code> (<a
href="https://redirect.github.com/jestjs/jest/pull/14397">#14397</a>)</li>
</ul>
<h2>Chore &amp; Maintenance</h2>
<ul>
<li><code>[jest-changed-files, jest-circus, jest-console, @jest/core,
@jest/runtime, @jest/transform]</code> Use <code>invariant</code> and
<code>notEmpty</code> from <code>jest-util</code> rather than own
internal (<a
href="https://redirect.github.com/jestjs/jest/pull/14366">#14366</a>)</li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a
href="https://github.com/karlnorling"><code>@​karlnorling</code></a>
made their first contribution in <a
href="https://redirect.github.com/jestjs/jest/pull/14401">jestjs/jest#14401</a></li>
<li><a
href="https://github.com/vinicinbgs"><code>@​vinicinbgs</code></a> made
their first contribution in <a
href="https://redirect.github.com/jestjs/jest/pull/14388">jestjs/jest#14388</a></li>
<li><a
href="https://github.com/panteleevnikita"><code>@​panteleevnikita</code></a>
made their first contribution in <a
href="https://redirect.github.com/jestjs/jest/pull/14433">jestjs/jest#14433</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/jestjs/jest/compare/v29.6.2...v29.6.3">https://github.com/jestjs/jest/compare/v29.6.2...v29.6.3</a></p>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/jestjs/jest/blob/main/CHANGELOG.md">jest's
changelog</a>.</em></p>
<blockquote>
<h2>29.6.4</h2>
<h3>Fixes</h3>
<ul>
<li><code>[jest-core]</code> Fix typo in <code>scheduleAndRun</code>
performance marker (<a
href="https://redirect.github.com/jestjs/jest/pull/14434">#14434</a>)</li>
<li><code>[jest-environment-node]</code> Make sure <code>atob</code> and
<code>btoa</code> are writeable in Node 20 (<a
href="https://redirect.github.com/jestjs/jest/pull/14446">#14446</a>)</li>
<li><code>[jest-worker]</code> Additional error wrapper for
<code>parentPort.postMessage</code> to fix unhandled
<code>DataCloneError</code>. (<a
href="https://redirect.github.com/jestjs/jest/pull/14437">#14437</a>)</li>
</ul>
<h2>29.6.3</h2>
<h3>Fixes</h3>
<ul>
<li><code>[expect, @jest/expect-utils]</code>
<code>ObjectContaining</code> support <code>sumbol</code> as key (<a
href="https://redirect.github.com/jestjs/jest/pull/14414">#14414</a>)</li>
<li><code>[expect]</code> Remove <code>@types/node</code> from
dependencies (<a
href="https://redirect.github.com/jestjs/jest/pull/14385">#14385</a>)</li>
<li><code>[jest-core]</code> Use workers in watch mode by default to
avoid crashes (<a
href="https://redirect.github.com/facebook/jest/pull/14059">#14059</a>
&amp; <a
href="https://redirect.github.com/facebook/jest/pull/14085">#14085</a>).</li>
<li><code>[jest-reporters]</code> Update
<code>istanbul-lib-instrument</code> dependency to v6. (<a
href="https://redirect.github.com/jestjs/jest/pull/14401">#14401</a>)</li>
<li><code>[jest-mock]</code> Revert <a
href="https://redirect.github.com/jestjs/jest/pull/13692">#13692</a> as
it was a breaking change (<a
href="https://redirect.github.com/jestjs/jest/pull/14429">#14429</a>)</li>
<li><code>[jest-mock]</code> Revert <a
href="https://redirect.github.com/jestjs/jest/pull/13866">#13866</a> as
it was a breaking change (<a
href="https://redirect.github.com/jestjs/jest/pull/14429">#14429</a>)</li>
<li><code>[jest-mock]</code> Revert <a
href="https://redirect.github.com/jestjs/jest/pull/13867">#13867</a> as
it was a breaking change (<a
href="https://redirect.github.com/jestjs/jest/pull/14429">#14429</a>)</li>
<li><code>[@jest/reporters]</code> Marks Reporter's hooks as optional
(<a
href="https://redirect.github.com/jestjs/jest/pull/14433">#14433</a>)</li>
<li><code>[jest-runtime]</code> Fix dynamic ESM import module bug when
loaded module through <code>jest.isolateModulesAsync</code> (<a
href="https://redirect.github.com/jestjs/jest/pull/14397">#14397</a>)</li>
</ul>
<h3>Chore &amp; Maintenance</h3>
<ul>
<li><code>[jest-changed-files, jest-circus, jest-console, @jest/core,
@jest/runtime, @jest/transform]</code> Use <code>invariant</code> and
<code>notEmpty</code> from <code>jest-util</code> rather than own
internal (<a
href="https://redirect.github.com/jestjs/jest/pull/14366">#14366</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="55cd6a0aaf"><code>55cd6a0</code></a>
v29.6.4</li>
<li><a
href="fb7d95c8af"><code>fb7d95c</code></a>
v29.6.3</li>
<li><a
href="49bacb9620"><code>49bacb9</code></a>
chore: update jest repo organisation in urls (<a
href="https://github.com/jestjs/jest/tree/HEAD/packages/jest/issues/14413">#14413</a>)</li>
<li>See full diff in <a
href="https://github.com/jestjs/jest/commits/v29.6.4/packages/jest">compare
view</a></li>
</ul>
</details>
<br />

Updates `@types/jest` from 29.5.3 to 29.5.4
<details>
<summary>Commits</summary>
<ul>
<li>See full diff in <a
href="https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/jest">compare
view</a></li>
</ul>
</details>
<br />


Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-08-29 13:35:55 -07:00
dependabot[bot]
8c2125cdcd chore(deps-dev): Bump typescript from 5.1.6 to 5.2.2 in /node (#438)
Bumps [typescript](https://github.com/Microsoft/TypeScript) from 5.1.6
to 5.2.2.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/Microsoft/TypeScript/releases">typescript's
releases</a>.</em></p>
<blockquote>
<h2>TypeScript 5.2</h2>
<p>For release notes, check out the <a
href="https://devblogs.microsoft.com/typescript/announcing-typescript-5-2/">release
announcement</a>.</p>
<p>For the complete list of fixed issues, check out the</p>
<ul>
<li><a
href="https://github.com/Microsoft/TypeScript/issues?utf8=%E2%9C%93&amp;q=milestone%3A%22TypeScript+5.2.0%22+is%3Aclosed+">fixed
issues query for Typescript 5.2.0 (Beta)</a>.</li>
<li><a
href="https://github.com/Microsoft/TypeScript/issues?utf8=%E2%9C%93&amp;q=milestone%3A%22TypeScript+5.2.1%22+is%3Aclosed+">fixed
issues query for Typescript 5.2.1 (RC)</a>.</li>
<li><a
href="https://github.com/Microsoft/TypeScript/issues?utf8=%E2%9C%93&amp;q=milestone%3A%22TypeScript+5.2.2%22+is%3Aclosed+">fixed
issues query for Typescript 5.2.2 (Stable)</a>.</li>
</ul>
<p>Downloads are available on:</p>
<ul>
<li><a
href="https://www.nuget.org/packages/Microsoft.TypeScript.MSBuild">NuGet
package</a></li>
</ul>
<h2>TypeScript 5.2 RC</h2>
<p>For release notes, check out the <a
href="https://devblogs.microsoft.com/typescript/announcing-typescript-5-2-rc/">release
announcement</a>.</p>
<p>For the complete list of fixed issues, check out the</p>
<ul>
<li><a
href="https://github.com/Microsoft/TypeScript/issues?utf8=%E2%9C%93&amp;q=milestone%3A%22TypeScript+5.2.0%22+is%3Aclosed+">fixed
issues query for Typescript 5.2.0 (Beta)</a>.</li>
<li><a
href="https://github.com/Microsoft/TypeScript/issues?utf8=%E2%9C%93&amp;q=milestone%3A%22TypeScript+5.2.1%22+is%3Aclosed+">fixed
issues query for Typescript 5.2.1 (RC)</a>.</li>
</ul>
<p>Downloads are available on:</p>
<ul>
<li><a
href="https://www.nuget.org/packages/Microsoft.TypeScript.MSBuild">NuGet
package</a></li>
</ul>
<h2>TypeScript 5.2 Beta</h2>
<p>For release notes, check out the <a
href="https://devblogs.microsoft.com/typescript/announcing-typescript-5-2-beta/">release
announcement</a>.</p>
<p>For the complete list of fixed issues, check out the</p>
<ul>
<li><a
href="https://github.com/Microsoft/TypeScript/issues?utf8=%E2%9C%93&amp;q=milestone%3A%22TypeScript+5.2.0%22+is%3Aclosed+">fixed
issues query for Typescript v5.2.0 (Beta)</a>.</li>
</ul>
<p>Downloads are available on <a
href="https://www.npmjs.com/package/typescript">npm</a>.</p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="9684ba6b0d"><code>9684ba6</code></a>
Cherry-pick fix for cross-file inlay hints (<a
href="https://redirect.github.com/Microsoft/TypeScript/issues/55476">#55476</a>)
to <code>release-5.2</code> and LKG ...</li>
<li><a
href="555ef99d03"><code>555ef99</code></a>
Bump version to 5.2.2 and LKG</li>
<li><a
href="6074b9d12b"><code>6074b9d</code></a>
Update LKG for 5.2.1 RC.</li>
<li><a
href="b778ed1d8f"><code>b778ed1</code></a>
Merge commit 'e936eb13d2900f21d79553c32a704307c7ad03dd' into
release-5.2</li>
<li><a
href="10b9962915"><code>10b9962</code></a>
Bump version to 5.2.1-rc and LKG</li>
<li><a
href="e936eb13d2"><code>e936eb1</code></a>
Update package-lock.json</li>
<li><a
href="e36cd5768a"><code>e36cd57</code></a>
Update package-lock.json</li>
<li><a
href="581fba1f6f"><code>581fba1</code></a>
Update package-lock.json</li>
<li><a
href="8fc8c95830"><code>8fc8c95</code></a>
Decorators normative updates (<a
href="https://redirect.github.com/Microsoft/TypeScript/issues/55276">#55276</a>)</li>
<li><a
href="b1c4dc475c"><code>b1c4dc4</code></a>
Fix class name references (<a
href="https://redirect.github.com/Microsoft/TypeScript/issues/55262">#55262</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/Microsoft/TypeScript/compare/v5.1.6...v5.2.2">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=typescript&package-manager=npm_and_yarn&previous-version=5.1.6&new-version=5.2.2)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-08-29 13:15:55 -07:00
dependabot[bot]
3b89b51b62 chore(deps-dev): Bump typedoc from 0.24.8 to 0.25.0 in /node (#439)
Bumps [typedoc](https://github.com/TypeStrong/TypeDoc) from 0.24.8 to
0.25.0.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/TypeStrong/TypeDoc/releases">typedoc's
releases</a>.</em></p>
<blockquote>
<h2>v0.25.0</h2>
<h3>Breaking Changes</h3>
<ul>
<li>Bump minimum Node version to 16.</li>
<li>Removed <code>legacy-packages</code> option for
<code>--entryPointStrategy</code>.</li>
<li>Changed default value of <code>--categorizeByGroup</code> to
<code>false</code>.</li>
<li>Specifying a link as the <code>gitRemote</code> is no longer
supported.</li>
<li>An <code>Application</code> instance must now be retrieved via
<code>Application.bootstrap</code> or
<code>Application.bootstrapWithPlugins</code>, <a
href="https://redirect.github.com/TypeStrong/TypeDoc/issues/2268">#2268</a>.</li>
<li>Removed <code>ReflectionKind.ObjectLiteral</code> that was never
used by TypeDoc.</li>
<li>Removed deprecated members
<code>DefaultThemeRenderContext.comment</code> and
<code>DefaultThemeRenderContext.attemptExternalResolution</code>.</li>
</ul>
<h3>Features</h3>
<ul>
<li>Added support for TypeScript 5.2</li>
<li>TypeDoc config files now support options default-exported from an
ESM config file, <a
href="https://redirect.github.com/TypeStrong/TypeDoc/issues/2268">#2268</a>.</li>
<li>TypeDoc config files may now export a promise containing
configuration, <a
href="https://redirect.github.com/TypeStrong/TypeDoc/issues/2268">#2268</a>.</li>
<li>Added <code>--preserveLinkText</code> option (defaults to true)
which determines whether the reflection name or full link text is
included
in the output when no override is specified, <a
href="https://redirect.github.com/TypeStrong/TypeDoc/issues/2355">#2355</a>.</li>
<li>Added a no-results placeholder when no search results are available,
<a
href="https://redirect.github.com/TypeStrong/TypeDoc/issues/2347">#2347</a>.</li>
<li>Implemented several miscellaneous performance improvements to
generate docs faster, this took the time to generate TypeDoc's
site from ~5.6 seconds to ~5.4 seconds.</li>
<li>Added <code>--disableGit</code> option to prevent TypeDoc from using
Git to try to determine if sources can be linked, <a
href="https://redirect.github.com/TypeStrong/TypeDoc/issues/2326">#2326</a>.</li>
<li>Added support for tags <code>@showGroups</code>,
<code>@hideGroups</code>, <code>@showCategories</code>,
<code>@hideCategories</code> to configure the navigation pane on a
per-reflection basis, <a
href="https://redirect.github.com/TypeStrong/TypeDoc/issues/2329">#2329</a>.</li>
<li>With <code>--jsDocCompatibility.defaultTags</code> set,
<code>@defaultValue</code> is now implicitly a code block if the text
contains no code, <a
href="https://redirect.github.com/TypeStrong/TypeDoc/issues/2370">#2370</a>.</li>
</ul>
<h3>Bug Fixes</h3>
<ul>
<li>Fixed link discovery if nested (<code>Foo#bar</code>) links were
used and <code>--useTsLinkResolution</code> is enabled in some cases, <a
href="https://redirect.github.com/TypeStrong/TypeDoc/issues/2360">#2360</a>.</li>
<li>Links with invalid declaration references will no longer silently
link to the wrong page in some cases, <a
href="https://redirect.github.com/TypeStrong/TypeDoc/issues/2360">#2360</a>.</li>
<li>Fixed duplicate definitions in type hierarchy when using packages
mode, <a
href="https://redirect.github.com/TypeStrong/TypeDoc/issues/2327">#2327</a>.</li>
<li><code>@inheritDoc</code> was not properly resolved across packages
in packages mode, <a
href="https://redirect.github.com/TypeStrong/TypeDoc/issues/2331">#2331</a>.</li>
<li>Added warning for attempted <code>@interface</code> use on union
types, <a
href="https://redirect.github.com/TypeStrong/TypeDoc/issues/2352">#2352</a>.</li>
<li>Fixed misleading type annotation on <code>Theme.getUrls</code>, <a
href="https://redirect.github.com/TypeStrong/TypeDoc/issues/2318">#2318</a>.</li>
<li>Fixed duplicate namespace in documentation if
<code>@namespace</code> is used on a variable with an associated
namespace, <a
href="https://redirect.github.com/TypeStrong/TypeDoc/issues/2364">#2364</a>.</li>
<li>Fixed <code>@namespace</code> property discovery if merged with a
type and the type was declared first <a
href="https://redirect.github.com/TypeStrong/TypeDoc/issues/2364">#2364</a>.</li>
<li>Tables in markdown are now styled, <a
href="https://redirect.github.com/TypeStrong/TypeDoc/issues/2366">#2366</a>.</li>
<li>Sidebar links no longer open in a new tab, <a
href="https://redirect.github.com/TypeStrong/TypeDoc/issues/2353">#2353</a>.</li>
<li>Headers now include some padding before rendering text, <a
href="https://redirect.github.com/TypeStrong/TypeDoc/issues/2316">#2316</a>.</li>
<li>Symbol locations for signatures on <code>reflection.sources</code>
now considers the node's name like non-signature location discovery
does.</li>
</ul>
<h3>Thanks!</h3>
<ul>
<li><a href="https://github.com/camc314"><code>@​camc314</code></a></li>
<li><a
href="https://github.com/cprussin"><code>@​cprussin</code></a></li>
<li><a
href="https://github.com/roggervalf"><code>@​roggervalf</code></a></li>
<li><a
href="https://github.com/Th3S4mur41"><code>@​Th3S4mur41</code></a></li>
</ul>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/TypeStrong/typedoc/blob/master/CHANGELOG.md">typedoc's
changelog</a>.</em></p>
<blockquote>
<h1>v0.25.0 (2023-08-25)</h1>
<h3>Breaking Changes</h3>
<ul>
<li>Bump minimum Node version to 16.</li>
<li>Removed <code>legacy-packages</code> option for
<code>--entryPointStrategy</code>.</li>
<li>Changed default value of <code>--categorizeByGroup</code> to
<code>false</code>.</li>
<li>Specifying a link as the <code>gitRemote</code> is no longer
supported.</li>
<li>An <code>Application</code> instance must now be retrieved via
<code>Application.bootstrap</code> or
<code>Application.bootstrapWithPlugins</code>, <a
href="https://redirect.github.com/TypeStrong/TypeDoc/issues/2268">#2268</a>.</li>
<li>Removed <code>ReflectionKind.ObjectLiteral</code> that was never
used by TypeDoc.</li>
<li>Removed deprecated members
<code>DefaultThemeRenderContext.comment</code> and
<code>DefaultThemeRenderContext.attemptExternalResolution</code>.</li>
</ul>
<h3>Features</h3>
<ul>
<li>Added support for TypeScript 5.2, <a
href="https://redirect.github.com/TypeStrong/TypeDoc/issues/2373">#2373</a>.</li>
<li>TypeDoc config files now support options default-exported from an
ESM config file, <a
href="https://redirect.github.com/TypeStrong/TypeDoc/issues/2268">#2268</a>.</li>
<li>TypeDoc config files may now export a promise containing
configuration, <a
href="https://redirect.github.com/TypeStrong/TypeDoc/issues/2268">#2268</a>.</li>
<li>Added <code>--preserveLinkText</code> option (defaults to true)
which determines whether the reflection name or full link text is
included
in the output when no override is specified, <a
href="https://redirect.github.com/TypeStrong/TypeDoc/issues/2355">#2355</a>.</li>
<li>Added a no-results placeholder when no search results are available,
<a
href="https://redirect.github.com/TypeStrong/TypeDoc/issues/2347">#2347</a>.</li>
<li>Implemented several miscellaneous performance improvements to
generate docs faster, this took the time to generate TypeDoc's
site from ~5.6 seconds to ~5.4 seconds.</li>
<li>Added <code>--disableGit</code> option to prevent TypeDoc from using
Git to try to determine if sources can be linked, <a
href="https://redirect.github.com/TypeStrong/TypeDoc/issues/2326">#2326</a>.</li>
<li>Added support for tags <code>@showGroups</code>,
<code>@hideGroups</code>, <code>@showCategories</code>,
<code>@hideCategories</code> to configure the navigation pane on a
per-reflection basis, <a
href="https://redirect.github.com/TypeStrong/TypeDoc/issues/2329">#2329</a>.</li>
<li>With <code>--jsDocCompatibility.defaultTags</code> set,
<code>@defaultValue</code> is now implicitly a code block if the text
contains no code, <a
href="https://redirect.github.com/TypeStrong/TypeDoc/issues/2370">#2370</a>.</li>
</ul>
<h3>Bug Fixes</h3>
<ul>
<li>Fixed link discovery if nested (<code>Foo#bar</code>) links were
used and <code>--useTsLinkResolution</code> is enabled in some cases, <a
href="https://redirect.github.com/TypeStrong/TypeDoc/issues/2360">#2360</a>.</li>
<li>Links with invalid declaration references will no longer silently
link to the wrong page in some cases, <a
href="https://redirect.github.com/TypeStrong/TypeDoc/issues/2360">#2360</a>.</li>
<li>Fixed duplicate definitions in type hierarchy when using packages
mode, <a
href="https://redirect.github.com/TypeStrong/TypeDoc/issues/2327">#2327</a>.</li>
<li><code>@inheritDoc</code> was not properly resolved across packages
in packages mode, <a
href="https://redirect.github.com/TypeStrong/TypeDoc/issues/2331">#2331</a>.</li>
<li>Added warning for attempted <code>@interface</code> use on union
types, <a
href="https://redirect.github.com/TypeStrong/TypeDoc/issues/2352">#2352</a>.</li>
<li>Fixed misleading type annotation on <code>Theme.getUrls</code>, <a
href="https://redirect.github.com/TypeStrong/TypeDoc/issues/2318">#2318</a>.</li>
<li>Fixed duplicate namespace in documentation if
<code>@namespace</code> is used on a variable with an associated
namespace, <a
href="https://redirect.github.com/TypeStrong/TypeDoc/issues/2364">#2364</a>.</li>
<li>Fixed <code>@namespace</code> property discovery if merged with a
type and the type was declared first <a
href="https://redirect.github.com/TypeStrong/TypeDoc/issues/2364">#2364</a>.</li>
<li>Tables in markdown are now styled, <a
href="https://redirect.github.com/TypeStrong/TypeDoc/issues/2366">#2366</a>.</li>
<li>Sidebar links no longer open in a new tab, <a
href="https://redirect.github.com/TypeStrong/TypeDoc/issues/2353">#2353</a>.</li>
<li>Headers now include some padding before rendering text, <a
href="https://redirect.github.com/TypeStrong/TypeDoc/issues/2316">#2316</a>.</li>
<li>Symbol locations for signatures on <code>reflection.sources</code>
now considers the node's name like non-signature location discovery
does.</li>
</ul>
<h3>Thanks!</h3>
<ul>
<li><a href="https://github.com/camc314"><code>@​camc314</code></a></li>
<li><a
href="https://github.com/cprussin"><code>@​cprussin</code></a></li>
<li><a
href="https://github.com/roggervalf"><code>@​roggervalf</code></a></li>
<li><a
href="https://github.com/Th3S4mur41"><code>@​Th3S4mur41</code></a></li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="8d822e9ac8"><code>8d822e9</code></a>
Update changelog for release</li>
<li><a
href="fc6f64853c"><code>fc6f648</code></a>
Bump version to 0.25.0</li>
<li><a
href="d4db57192c"><code>d4db571</code></a>
Add preserveLinkText option</li>
<li><a
href="3d8ff29664"><code>3d8ff29</code></a>
defaultValue is implicitly code only with JSDoc compat</li>
<li><a
href="028a141058"><code>028a141</code></a>
feat(default-value): treat as code block for better styling (<a
href="https://redirect.github.com/TypeStrong/TypeDoc/issues/2370">#2370</a>)</li>
<li><a
href="c83f2c3f24"><code>c83f2c3</code></a>
Add support for TS 5.2</li>
<li><a
href="5c977aea2e"><code>5c977ae</code></a>
Support ESM config files</li>
<li><a
href="76c918c3c6"><code>76c918c</code></a>
Headers now include some padding before rendering text</li>
<li><a
href="0cc6e58d06"><code>0cc6e58</code></a>
Sidebar links no longer open in a new tab, closes <a
href="https://redirect.github.com/TypeStrong/TypeDoc/issues/2353">#2353</a>.</li>
<li><a
href="3207ae5686"><code>3207ae5</code></a>
Lint</li>
<li>Additional commits viewable in <a
href="https://github.com/TypeStrong/TypeDoc/compare/v0.24.8...v0.25.0">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=typedoc&package-manager=npm_and_yarn&previous-version=0.24.8&new-version=0.25.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-08-29 13:15:40 -07:00
dependabot[bot]
92a7eecf69 chore(deps-dev): Bump @types/node from 20.5.1 to 20.5.7 in /node (#437)
Bumps
[@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node)
from 20.5.1 to 20.5.7.
<details>
<summary>Commits</summary>
<ul>
<li>See full diff in <a
href="https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=@types/node&package-manager=npm_and_yarn&previous-version=20.5.1&new-version=20.5.7)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-08-29 13:15:27 -07:00
dependabot[bot]
65231cada5 chore(deps-dev): Bump ex_doc from 0.30.5 to 0.30.6 in /elixir (#440)
Bumps [ex_doc](https://github.com/elixir-lang/ex_doc) from 0.30.5 to
0.30.6.
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/elixir-lang/ex_doc/blob/main/CHANGELOG.md">ex_doc's
changelog</a>.</em></p>
<blockquote>
<h2>v0.30.6 (2023-08-25)</h2>
<ul>
<li>Enhancements
<ul>
<li>Extract title from Markdown file when preceeded with comments</li>
<li>Improve focus navigation in notebooks</li>
</ul>
</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="48949c5638"><code>48949c5</code></a>
Release v0.30.6</li>
<li><a
href="c47807cf27"><code>c47807c</code></a>
Extract title even with comments</li>
<li><a
href="46289000e3"><code>4628900</code></a>
Update assets</li>
<li><a
href="67af3bedec"><code>67af3be</code></a>
Make checked switch button focus state visible</li>
<li><a
href="32bb4ff4f4"><code>32bb4ff</code></a>
Show function header link when focused</li>
<li><a
href="f63316e3a9"><code>f63316e</code></a>
Update assets</li>
<li><a
href="1c85e72e67"><code>1c85e72</code></a>
Remove unecessary css</li>
<li><a
href="4928aa89d6"><code>4928aa8</code></a>
Fix view links on cheatsheets</li>
<li><a
href="c4aaf36869"><code>c4aaf36</code></a>
Update assets</li>
<li><a
href="f165492cf2"><code>f165492</code></a>
Add text decoration to admonition</li>
<li>Additional commits viewable in <a
href="https://github.com/elixir-lang/ex_doc/compare/v0.30.5...v0.30.6">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=ex_doc&package-manager=hex&previous-version=0.30.5&new-version=0.30.6)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-08-29 13:15:13 -07:00
dependabot[bot]
d13301a346 chore(deps): Update cbindgen requirement from 0.24 to 0.25 (#434)
Updates the requirements on
[cbindgen](https://github.com/eqrion/cbindgen) to permit the latest
version.
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/mozilla/cbindgen/blob/master/CHANGES">cbindgen's
changelog</a>.</em></p>
<blockquote>
<h2>0.25.0</h2>
<pre><code>  * Re-release of yanked 0.24.6 as a major release
  * Update MSRV to 1.57
* Support variadic arguments (`...`)
([#805](https://github.com/eqrion/cbindgen/issues/805))
* Add --depfile option
([#820](https://github.com/eqrion/cbindgen/issues/820))
  * Breaking changes: The `Config` struct now has a private member.
</code></pre>
<h2>0.24.6 (YANKED: depfile option was breaking, see <a
href="https://redirect.github.com/eqrion/cbindgen/issues/841">#841</a>)</h2>
<pre><code>  * Update MSRV to 1.57
* Support variadic arguments (`...`)
([#805](https://github.com/eqrion/cbindgen/issues/805))
* Add --depfile option
([#820](https://github.com/eqrion/cbindgen/issues/820))
</code></pre>
<h2>0.24.5</h2>
<pre><code>  * Don't enforce tempfile version.
</code></pre>
<h2>0.24.4</h2>
<pre><code> * Move expand infinite recursion fix
([#799](https://github.com/eqrion/cbindgen/issues/799))
* Add with_cpp_compat to the builder
([#796](https://github.com/eqrion/cbindgen/issues/796))
* Handle never type in return position consistently
([#780](https://github.com/eqrion/cbindgen/issues/780))
* Fix warnings ([#816](https://github.com/eqrion/cbindgen/issues/816),
[#819](https://github.com/eqrion/cbindgen/issues/819))
* Updated documentation
([#788](https://github.com/eqrion/cbindgen/issues/788),
[#791](https://github.com/eqrion/cbindgen/issues/791),
[#792](https://github.com/eqrion/cbindgen/issues/792),
[#810](https://github.com/eqrion/cbindgen/issues/810),
[#823](https://github.com/eqrion/cbindgen/issues/823))
</code></pre>
<h2>0.24.3</h2>
<pre><code> * Make struct expressions correctly generated through
typedefs ([#768](https://github.com/eqrion/cbindgen/issues/768)).
</code></pre>
<h2>0.24.2</h2>
<pre><code>  * Make bitfield operators use explicit constructors.
</code></pre>
<h2>0.24.1</h2>
<pre><code> * Add support for unary negation
([#765](https://github.com/eqrion/cbindgen/issues/765)).
* Make more bitfield operators constexpr
([#765](https://github.com/eqrion/cbindgen/issues/765)).
</code></pre>
<h2>0.24.0</h2>
<pre><code> * Basic const generic support
([#759](https://github.com/eqrion/cbindgen/issues/759),
[#760](https://github.com/eqrion/cbindgen/issues/760)
[#762](https://github.com/eqrion/cbindgen/issues/762)).
* Suffixes on integer literals are now honored to avoid narrowing
([#764](https://github.com/eqrion/cbindgen/issues/764)).
</code></pre>
<h2>0.23.0</h2>
<pre><code> * Better support for constexpr.
([#756](https://github.com/eqrion/cbindgen/issues/756))
* constexpr is now enabled by default in C++ mode. You can use
const.allow_constexpr=false to revert to previous behavior.
([#756](https://github.com/eqrion/cbindgen/issues/756))
* Minimum syn version no longer parses old rust code.
([#754](https://github.com/eqrion/cbindgen/issues/754))
</code></pre>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="dd9a550152"><code>dd9a550</code></a>
Fix minimal Rust version in CI</li>
<li><a
href="0529d215e7"><code>0529d21</code></a>
Revert &quot;Upgrade clap 3 to clap 4&quot;</li>
<li><a
href="289a31ba45"><code>289a31b</code></a>
Fix clippy warning</li>
<li><a
href="67fea1a1a2"><code>67fea1a</code></a>
Fix CI</li>
<li><a
href="80526e72f9"><code>80526e7</code></a>
Update changelog for v0.25.0</li>
<li><a
href="1e2ffd4414"><code>1e2ffd4</code></a>
CI: Replace forbidden actions with cli code</li>
<li><a
href="f61946b979"><code>f61946b</code></a>
CI: Add semver checks to CI deploy job</li>
<li><a
href="b61aa2c330"><code>b61aa2c</code></a>
msrv 1.64</li>
<li><a
href="b734008c71"><code>b734008</code></a>
Upgrade clap 3 to clap 4</li>
<li><a
href="667de09279"><code>667de09</code></a>
Add: Add rust-toolchain.toml</li>
<li>Additional commits viewable in <a
href="https://github.com/eqrion/cbindgen/compare/v0.24.0...v0.25.0">compare
view</a></li>
</ul>
</details>
<br />


Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-08-29 13:14:54 -07:00
Benjamin Eckel
745a03ece4 release: Bump elixir nif to rust 0.5 (#431) 2023-08-24 13:37:48 -05:00
Benjamin Eckel
67eb8c1571 release: Bump the rest of the SDKs (#430) 2023-08-24 12:41:31 -05:00
zach
6a15884963 fix: remove call to bash from build.rs (#429)
I think this will fix the issue with CI hanging - this fixes the issue
when building Elixir, which seems to be the same as the CI issue
2023-08-23 19:12:51 -05:00
zach
72f62c4035 chore: bump libextism version (#428) 2023-08-23 15:49:50 -05:00
Benjamin Eckel
e86398a612 release: Bump runtime to 0.5.0 (#427)
Co-authored-by: zach <zach@dylibso.com>
2023-08-23 13:58:33 -05:00
dependabot[bot]
461ac97529 chore(deps-dev): Bump prettier from 3.0.1 to 3.0.2 in /node (#422)
Bumps [prettier](https://github.com/prettier/prettier) from 3.0.1 to
3.0.2.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/prettier/prettier/releases">prettier's
releases</a>.</em></p>
<blockquote>
<h2>3.0.2</h2>
<p>🔗 <a
href="https://github.com/prettier/prettier/blob/main/CHANGELOG.md#302">Changelog</a></p>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/prettier/prettier/blob/main/CHANGELOG.md">prettier's
changelog</a>.</em></p>
<blockquote>
<h1>3.0.2</h1>
<p><a
href="https://github.com/prettier/prettier/compare/3.0.1...3.0.2">diff</a></p>
<h4>Break after <code>=</code> of assignment if RHS is poorly breakable
AwaitExpression or YieldExpression (<a
href="https://redirect.github.com/prettier/prettier/pull/15204">#15204</a>
by <a href="https://github.com/seiyab"><code>@​seiyab</code></a>)</h4>
<!-- raw HTML omitted -->
<pre lang="js"><code>// Input
const { section, rubric, authors, tags } = await
utils.upsertCommonData(mainData);
<p>// Prettier 3.0.1
const { section, rubric, authors, tags } = await utils.upsertCommonData(
mainData,
);</p>
<p>// Prettier 3.0.2
const { section, rubric, authors, tags } =
await utils.upsertCommonData(mainData);
</code></pre></p>
<h4>Do not add trailing comma for grouped scss comments (<a
href="https://redirect.github.com/prettier/prettier/pull/15217">#15217</a>
by <a href="https://github.com/auvred"><code>@​auvred</code></a>)</h4>
<!-- raw HTML omitted -->
<pre lang="scss"><code>/* Input */
$foo: (
	'property': (),
	// comment 1
	// comment 2
)
<p>/* Prettier 3.0.1 */
$foo: (
&quot;property&quot;: (),
// comment 1
// comment 2,
);</p>
<p>/* Prettier 3.0.2 */
$foo: (
&quot;property&quot;: (),
// comment 1
// comment 2
);
</code></pre></p>
<h4>Print <code>declare</code> and <code>export</code> keywords for
nested namespace (<a
href="https://redirect.github.com/prettier/prettier/pull/15249">#15249</a>
by <a
href="https://github.com/sosukesuzuki"><code>@​sosukesuzuki</code></a>)</h4>
<!-- raw HTML omitted -->
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="157e42accd"><code>157e42a</code></a>
Release 3.0.2</li>
<li><a
href="1b0c756bd6"><code>1b0c756</code></a>
Print <code>declare</code> and <code>export</code> keywords for nested
namespace (<a
href="https://redirect.github.com/prettier/prettier/issues/15249">#15249</a>)</li>
<li><a
href="b4082cb647"><code>b4082cb</code></a>
chore(deps): update babel to v7.22.10 (<a
href="https://redirect.github.com/prettier/prettier/issues/15236">#15236</a>)</li>
<li><a
href="91e850b2bd"><code>91e850b</code></a>
chore(deps): update dependency camelcase to v8 (<a
href="https://redirect.github.com/prettier/prettier/issues/15245">#15245</a>)</li>
<li><a
href="f24132eda3"><code>f24132e</code></a>
Make chalk/assert shim a Proxy (<a
href="https://redirect.github.com/prettier/prettier/issues/15234">#15234</a>)</li>
<li><a
href="e22a5516f5"><code>e22a551</code></a>
chore(deps): update dependency <code>@​babel/parser</code> to v7.22.10
(<a
href="https://redirect.github.com/prettier/prettier/issues/15237">#15237</a>)</li>
<li><a
href="fbe46aa74a"><code>fbe46aa</code></a>
chore(deps): update dependency <code>@​angular/compiler</code> to
v16.2.0 (<a
href="https://redirect.github.com/prettier/prettier/issues/15240">#15240</a>)</li>
<li><a
href="7ecdbf7bc4"><code>7ecdbf7</code></a>
chore(deps): update typescript-eslint to v6.3.0 (<a
href="https://redirect.github.com/prettier/prettier/issues/15244">#15244</a>)</li>
<li><a
href="fb55780393"><code>fb55780</code></a>
chore(deps): update dependency eslint to v8.47.0 (<a
href="https://redirect.github.com/prettier/prettier/issues/15242">#15242</a>)</li>
<li><a
href="fde937d7b4"><code>fde937d</code></a>
chore(deps): update dependency hermes-parser to v0.15.1 (<a
href="https://redirect.github.com/prettier/prettier/issues/15239">#15239</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/prettier/prettier/compare/3.0.1...3.0.2">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=prettier&package-manager=npm_and_yarn&previous-version=3.0.1&new-version=3.0.2)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-08-22 13:55:46 -05:00
dependabot[bot]
f312b0bcce chore(deps-dev): Bump @types/node from 20.5.0 to 20.5.1 in /node (#423)
Bumps
[@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node)
from 20.5.0 to 20.5.1.
<details>
<summary>Commits</summary>
<ul>
<li>See full diff in <a
href="https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=@types/node&package-manager=npm_and_yarn&previous-version=20.5.0&new-version=20.5.1)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-08-22 13:55:38 -05:00
Muhammad Azeez
6102a99d98 fix(dotnet): typo in HostFunction constructor that prevents setting Host Function namespace (#418)
The only interesting part is this:

ba1baef9fb/dotnet/src/Extism.Sdk/HostFunction.cs (L68)
2023-08-15 20:05:37 +03:00
zach
b6f2e845d9 fix(runtime): register all host function imports (#419)
Fixes #417
2023-08-15 10:02:30 -07:00
dependabot[bot]
d1137fa739 chore(deps-dev): Bump @types/node from 20.4.8 to 20.5.0 in /node (#415)
Bumps
[@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node)
from 20.4.8 to 20.5.0.
<details>
<summary>Commits</summary>
<ul>
<li>See full diff in <a
href="https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=@types/node&package-manager=npm_and_yarn&previous-version=20.4.8&new-version=20.5.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-08-15 09:01:50 -07:00
dependabot[bot]
40a42882ba chore(deps-dev): Bump ex_doc from 0.30.4 to 0.30.5 in /elixir (#416)
Bumps [ex_doc](https://github.com/elixir-lang/ex_doc) from 0.30.4 to
0.30.5.
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/elixir-lang/ex_doc/blob/main/CHANGELOG.md">ex_doc's
changelog</a>.</em></p>
<blockquote>
<h2>v0.30.5 (2023-08-12)</h2>
<ul>
<li>Bug fixes
<ul>
<li>Fix style for code in headers</li>
<li>Fix search data generation for Erlang/OTP</li>
</ul>
</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="7aa3fd9e8e"><code>7aa3fd9</code></a>
Release v0.30.5</li>
<li><a
href="feaf41c132"><code>feaf41c</code></a>
Do not style headers as links</li>
<li><a
href="4114bbfd1d"><code>4114bbf</code></a>
Fix generating search_data.json for undocumented Erlang functions</li>
<li>See full diff in <a
href="https://github.com/elixir-lang/ex_doc/compare/v0.30.4...v0.30.5">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=ex_doc&package-manager=hex&previous-version=0.30.4&new-version=0.30.5)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-08-15 09:01:39 -07:00
Doğu Us
889ec39e4d refactor(zig)!: Simplify JSON stringifying (#414)
Uses `std.json.ArrayHashMap` for stringifying.

# Breaking Changes
* Plugin.setConfig's `config` parameter's type changed to
`std.json.ArrayHashMap([]const u8)`
* WasmUrl's `header` field's type changed to
`std.json.ArrayHashMap([]const u8)`
* Manifest's `config` and `allowed_path` fields' types changed to
`std.json.ArrayHashMap([]const u8)`
2023-08-11 20:10:30 -07:00
zach
fa909fd53d fix(rust): ensure InternalExt is exported (#413)
Also adds a test that uses `InternalExt` in the host function
2023-08-10 18:31:02 -07:00
dependabot[bot]
8dd4992633 chore(deps-dev): Bump @types/node from 20.4.5 to 20.4.8 in /node (#408)
Bumps
[@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node)
from 20.4.5 to 20.4.8.
<details>
<summary>Commits</summary>
<ul>
<li>See full diff in <a
href="https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=@types/node&package-manager=npm_and_yarn&previous-version=20.4.5&new-version=20.4.8)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-08-08 21:54:36 -05:00
dependabot[bot]
cfc9fb06a4 chore(deps-dev): Bump prettier from 3.0.0 to 3.0.1 in /node (#409)
Bumps [prettier](https://github.com/prettier/prettier) from 3.0.0 to
3.0.1.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/prettier/prettier/releases">prettier's
releases</a>.</em></p>
<blockquote>
<h2>3.0.1</h2>
<p>🔗 <a
href="https://github.com/prettier/prettier/blob/main/CHANGELOG.md#301">Changelog</a></p>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/prettier/prettier/blob/main/CHANGELOG.md">prettier's
changelog</a>.</em></p>
<blockquote>
<h1>3.0.1</h1>
<p><a
href="https://github.com/prettier/prettier/compare/3.0.0...3.0.1">diff</a></p>
<h4>Fix cursor positioning for a special case (<a
href="https://redirect.github.com/prettier/prettier/pull/14812">#14812</a>
by <a href="https://github.com/fisker"><code>@​fisker</code></a>)</h4>
<!-- raw HTML omitted -->
<pre lang="js"><code>// &lt;|&gt; is the cursor position
<p>/* Input */
// All messages are represented in JSON.
// So, the prettier.py controls a subprocess which spawns &quot;node
{this_file}&quot;.
import {&lt;|&gt;  } from &quot;fs&quot;</p>
<p>/* Prettier 3.0.0 */
// All messages are represented in JSON.
// So, the prettier.py &lt;|&gt;controls a subprocess which spawns
&quot;node {this_file}&quot;.
import {} from &quot;fs&quot;</p>
<p>/* Prettier 3.0.1 */
// All messages are represented in JSON.
// So, the prettier.py controls a subprocess which spawns &quot;node
{this_file}&quot;.
import {&lt;|&gt;} from &quot;fs&quot;
</code></pre></p>
<h4>Fix plugins/estree.d.ts to make it a module (<a
href="https://redirect.github.com/prettier/prettier/pull/15018">#15018</a>
by <a
href="https://github.com/kingyue737"><code>@​kingyue737</code></a>)</h4>
<p>Add <code>export {}</code> in <code>plugins/estree.d.ts</code> to fix
the &quot;File is not a module&quot; error</p>
<h4>Add parenthesis around leading multiline comment in return statement
(<a
href="https://redirect.github.com/prettier/prettier/pull/15037">#15037</a>
by <a href="https://github.com/auvred"><code>@​auvred</code></a>)</h4>
<!-- raw HTML omitted -->
<pre lang="jsx"><code>// Input
function fn() {
  return (
    /**
     * @type {...}
     */ expresssion
  )
}
<p>// Prettier 3.0.0
function fn() {
return /**</p>
<ul>
<li><a href="https://github.com/type"><code>@​type</code></a> {...}
*/ expresssion;
}</li>
</ul>
<p>&lt;/tr&gt;&lt;/table&gt;
</code></pre></p>
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="afee0db664"><code>afee0db</code></a>
Release 3.0.1</li>
<li><a
href="c3d53dce7e"><code>c3d53dc</code></a>
Fix <code>runYarn</code> function in release script (<a
href="https://redirect.github.com/prettier/prettier/issues/15200">#15200</a>)</li>
<li><a
href="825425c57f"><code>825425c</code></a>
chore(deps): update dependency eslint-plugin-import to v2.28.0 (<a
href="https://redirect.github.com/prettier/prettier/issues/15184">#15184</a>)</li>
<li><a
href="448217df22"><code>448217d</code></a>
chore(deps): update dependency eslint to v8.46.0 (<a
href="https://redirect.github.com/prettier/prettier/issues/15182">#15182</a>)</li>
<li><a
href="f35e9e6bab"><code>f35e9e6</code></a>
chore(deps): update dependency <code>@​angular/compiler</code> to
v16.1.7 (<a
href="https://redirect.github.com/prettier/prettier/issues/15173">#15173</a>)</li>
<li><a
href="d14e893147"><code>d14e893</code></a>
chore(deps): update dependency c8 to v8.0.1 (<a
href="https://redirect.github.com/prettier/prettier/issues/15174">#15174</a>)</li>
<li><a
href="c44d4b761e"><code>c44d4b7</code></a>
chore(deps): update dependency eslint-plugin-react to v7.33.1 (<a
href="https://redirect.github.com/prettier/prettier/issues/15176">#15176</a>)</li>
<li><a
href="57e8c87506"><code>57e8c87</code></a>
chore(deps): update dependency esbuild to v0.18.17 (<a
href="https://redirect.github.com/prettier/prettier/issues/15175">#15175</a>)</li>
<li><a
href="36c3738aa9"><code>36c3738</code></a>
chore(deps): update dependency eslint-plugin-unicorn to v48.0.1 (<a
href="https://redirect.github.com/prettier/prettier/issues/15177">#15177</a>)</li>
<li><a
href="2d274dfcdd"><code>2d274df</code></a>
chore(deps): update dependency flow-parser to v0.213.1 (<a
href="https://redirect.github.com/prettier/prettier/issues/15178">#15178</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/prettier/prettier/compare/3.0.0...3.0.1">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=prettier&package-manager=npm_and_yarn&previous-version=3.0.0&new-version=3.0.1)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-08-08 21:54:22 -05:00
dependabot[bot]
0e1a8677c5 chore(deps-dev): Bump ex_doc from 0.30.3 to 0.30.4 in /elixir (#410)
Bumps [ex_doc](https://github.com/elixir-lang/ex_doc) from 0.30.3 to
0.30.4.
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/elixir-lang/ex_doc/blob/main/CHANGELOG.md">ex_doc's
changelog</a>.</em></p>
<blockquote>
<h2>v0.30.4 (2023-08-03)</h2>
<ul>
<li>Bug fixes
<ul>
<li>Fix style for anchors in headers</li>
</ul>
</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="a67fed176c"><code>a67fed1</code></a>
Release v0.30.4</li>
<li><a
href="eb6bbda3a2"><code>eb6bbda</code></a>
Bump word-wrap from 1.2.3 to 1.2.4 in /assets (<a
href="https://redirect.github.com/elixir-lang/ex_doc/issues/1742">#1742</a>)</li>
<li><a
href="2b5bbb3eb1"><code>2b5bbb3</code></a>
Update assets</li>
<li><a
href="be43c5a939"><code>be43c5a</code></a>
fix generation of livebook paths to handle omitted '.html' correctly (<a
href="https://redirect.github.com/elixir-lang/ex_doc/issues/1741">#1741</a>)</li>
<li><a
href="6c3afe5472"><code>6c3afe5</code></a>
Update assets</li>
<li>See full diff in <a
href="https://github.com/elixir-lang/ex_doc/compare/v0.30.3...v0.30.4">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=ex_doc&package-manager=hex&previous-version=0.30.3&new-version=0.30.4)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-08-08 21:54:12 -05:00
zach
d80584600b refactor: Simplify runtime handling (#411)
It seems like our runtime initialization process is a little too
aggressive, this PR scales it back to initialize the runtime once if it
exists and only reinitializes when `_start` is called. This prevents
globals from being wiped out between plugin calls.

- Removes Runtime::cleanup
- Only initializes runtime once, or if `_start` is called
- Improves Haskell reactor support

See https://github.com/extism/go-sdk/pull/11 for the go-sdk PR.
2023-08-08 14:12:09 -07:00
zach
07623ef2da fix: avoid timeout errors outside of extism_plugin_call (#407)
- Delays instantiation to right before a call by using `instantiate_pre`
instead. This fixes an issue with the assemblyscript PDK.
- Makes timeouts only apply to calls
- Also bumps the wasmtime lower-bounds to 10.0, because the return type
of the epoch callback has changed
2023-08-04 13:44:24 -07:00
zach
c7c7f9d024 chore: update wasmtime bounds to include 11.0 (#405) 2023-08-01 11:12:02 -07:00
zach
3420960d7f chore(zig): use LazyPath in build.zig (#406) 2023-08-01 10:28:53 -07:00
zach
baa060d062 feat: Haskell host functions (#400) 2023-07-31 16:52:01 -07:00
dependabot[bot]
3219d79a8f chore(deps-dev): Bump @types/node from 20.4.2 to 20.4.5 in /node (#404)
Bumps
[@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node)
from 20.4.2 to 20.4.5.
<details>
<summary>Commits</summary>
<ul>
<li>See full diff in <a
href="https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=@types/node&package-manager=npm_and_yarn&previous-version=20.4.2&new-version=20.4.5)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-07-31 14:59:52 -05:00
dependabot[bot]
a3053a9ecc chore(deps-dev): Bump jest from 29.6.1 to 29.6.2 in /node (#403)
Bumps [jest](https://github.com/facebook/jest/tree/HEAD/packages/jest)
from 29.6.1 to 29.6.2.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/facebook/jest/releases">jest's
releases</a>.</em></p>
<blockquote>
<h2>v29.6.2</h2>
<h2>Fixes</h2>
<ul>
<li><code>[jest-circus]</code> Fix snapshot matchers in concurrent tests
when nr of tests exceeds <code>maxConcurrency</code> (<a
href="https://redirect.github.com/jestjs/jest/pull/14335">#14335</a>)</li>
<li><code>[@jest/core]</code> When running global setup and teardown, do
not try to change the <code>message</code> property of the thrown error
object when the <code>message</code> property is unwritable (<a
href="https://redirect.github.com/jestjs/jest/pull/14113">#14113</a>)</li>
<li><code>[jest-snapshot]</code> Move <code>@types/prettier</code> from
<code>dependencies</code> to <code>devDependencies</code> (<a
href="https://redirect.github.com/jestjs/jest/pull/14328">#14328</a>)</li>
<li><code>[jest-snapshot]</code> Throw an explicit error if Prettier v3
is used (<a
href="https://redirect.github.com/jestjs/jest/pull/14367">#14367</a>)</li>
<li><code>[jest-reporters]</code> Add &quot;skipped&quot; and
&quot;todo&quot; symbols to Github Actions Reporter (<a
href="https://redirect.github.com/jestjs/jest/pull/14309">#14309</a>)</li>
</ul>
<h2>Chore &amp; Maintenance</h2>
<ul>
<li><code>[@jest/core]</code> Use <code>pluralize</code> from
<code>jest-util</code> rather than own internal (<a
href="https://redirect.github.com/jestjs/jest/pull/14322">#14322</a>)</li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a href="https://github.com/Kloen"><code>@​Kloen</code></a> made
their first contribution in <a
href="https://redirect.github.com/jestjs/jest/pull/14328">jestjs/jest#14328</a></li>
<li><a href="https://github.com/eryue0220"><code>@​eryue0220</code></a>
made their first contribution in <a
href="https://redirect.github.com/jestjs/jest/pull/14322">jestjs/jest#14322</a></li>
<li><a
href="https://github.com/david-szabo97"><code>@​david-szabo97</code></a>
made their first contribution in <a
href="https://redirect.github.com/jestjs/jest/pull/14113">jestjs/jest#14113</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/jestjs/jest/compare/v29.6.1...v29.6.2">https://github.com/jestjs/jest/compare/v29.6.1...v29.6.2</a></p>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/jestjs/jest/blob/main/CHANGELOG.md">jest's
changelog</a>.</em></p>
<blockquote>
<h2>29.6.2</h2>
<h3>Fixes</h3>
<ul>
<li><code>[jest-circus]</code> Fix snapshot matchers in concurrent tests
when nr of tests exceeds <code>maxConcurrency</code> (<a
href="https://redirect.github.com/jestjs/jest/pull/14335">#14335</a>)</li>
<li><code>[@jest/core]</code> When running global setup and teardown, do
not try to change the <code>message</code> property of the thrown error
object when the <code>message</code> property is unwritable (<a
href="https://redirect.github.com/jestjs/jest/pull/14113">#14113</a>)</li>
<li><code>[jest-snapshot]</code> Move <code>@types/prettier</code> from
<code>dependencies</code> to <code>devDependencies</code> (<a
href="https://redirect.github.com/jestjs/jest/pull/14328">#14328</a>)</li>
<li><code>[jest-snapshot]</code> Throw an explicit error if Prettier v3
is used (<a
href="https://redirect.github.com/jestjs/jest/pull/14367">#14367</a>)</li>
<li><code>[jest-reporters]</code> Add &quot;skipped&quot; and
&quot;todo&quot; symbols to Github Actions Reporter (<a
href="https://redirect.github.com/jestjs/jest/pull/14309">#14309</a>)</li>
</ul>
<h3>Chore &amp; Maintenance</h3>
<ul>
<li><code>[@jest/core]</code> Use <code>pluralize</code> from
<code>jest-util</code> rather than own internal (<a
href="https://redirect.github.com/jestjs/jest/pull/14322">#14322</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="0fd5b1c375"><code>0fd5b1c</code></a>
v29.6.2</li>
<li>See full diff in <a
href="https://github.com/facebook/jest/commits/v29.6.2/packages/jest">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=jest&package-manager=npm_and_yarn&previous-version=29.6.1&new-version=29.6.2)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-07-31 14:59:43 -05:00
dependabot[bot]
41450a03a9 chore(deps-dev): Update minitest requirement from ~> 5.18.0 to ~> 5.19.0 in /ruby (#402)
Updates the requirements on
[minitest](https://github.com/minitest/minitest) to permit the latest
version.
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/minitest/minitest/blob/master/History.rdoc">minitest's
changelog</a>.</em></p>
<blockquote>
<p>=== 5.19.0 / 2023-07-26</p>
<ul>
<li>
<p>2 minor enhancements:</p>
<ul>
<li>Add metadata lazy accessor to Runnable / Result. (matteeyah)</li>
<li>Only load minitest/unit (aka ancient MiniTest compatibility layer)
if ENV[&quot;MT_COMPAT&quot;]</li>
</ul>
</li>
<li>
<p>1 bug fix:</p>
<ul>
<li>Minitest::TestTask enthusiastically added itself to default.
(ParadoxV5)</li>
</ul>
</li>
</ul>
<p>=== 5.18.1 / 2023-06-16</p>
<ul>
<li>
<p>3 bug fixes:</p>
<ul>
<li>Avoid extra string allocations when filtering tests.
(tenderlove)</li>
<li>Only mention deprecated ENV['N'] if it is an integer string.</li>
<li>Push up test_order to Minitest::Runnable to fix minitest/hell.
(koic)</li>
</ul>
</li>
</ul>
<p>=== 5.18.0 / 2023-03-04</p>
<ul>
<li>
<p>2 major enhancements:</p>
<ul>
<li>Added assert_pattern &amp; refute_pattern for pattern matching.
(flavorjones)</li>
<li>Added matching must_pattern_match &amp; wont_pattern_match to
minitest/spec.</li>
</ul>
</li>
<li>
<p>1 bug fix:</p>
<ul>
<li>Support the new message format of NameError in Ruby 3.3 (mame)</li>
</ul>
</li>
</ul>
<p>=== 5.17.0 / 2022-12-31</p>
<ul>
<li>
<p>1 minor enhancement:</p>
<ul>
<li>Refactor setup hooks into a SETUP_METHODS constant. (MSP-Greg)</li>
</ul>
</li>
<li>
<p>3 bug fixes:</p>
<ul>
<li>Fix kwargs for Mock calls to delegator. (blowmage)</li>
<li>Fix kwargs for expectations. (bobmazanec, blowmage)</li>
<li>Remove check for .b method. (tenderlove)</li>
</ul>
</li>
</ul>
<p>=== 5.16.3 / 2022-08-17</p>
<ul>
<li>
<p>2 bug fixes:</p>
<ul>
<li>Fixed exception sanitization by removing TypeError restriction on
rescue.</li>
<li>Use A instead of deprecated TESTOPTS in rake test:slow.
(davidstosik)</li>
</ul>
</li>
</ul>
<p>=== 5.16.2 / 2022-07-03</p>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="96a9972916"><code>96a9972</code></a>
prepped for release</li>
<li><a
href="de802824b3"><code>de80282</code></a>
+ Add metadata lazy accessor to Runnable / Result. (matteeyah)</li>
<li><a
href="47959978df"><code>4795997</code></a>
- Minitest::TestTask enthusiastically added itself to default.
(ParadoxV5)</li>
<li><a
href="a2c6c18570"><code>a2c6c18</code></a>
+ Only load minitest/unit (aka ancient MiniTest compatibility layer) if
ENV[&quot;...</li>
<li><a
href="5f05692630"><code>5f05692</code></a>
Replace 'MiniTest' with 'Minitest' in example code. (sambostock)</li>
<li><a
href="31da3c6b8d"><code>31da3c6</code></a>
prepped for release</li>
<li><a
href="a90720a6c7"><code>a90720a</code></a>
Removed 2.6 from CI.</li>
<li><a
href="ca42951bbf"><code>ca42951</code></a>
- Avoid extra string allocations when filtering tests. (tenderlove)</li>
<li><a
href="e6f4a85e95"><code>e6f4a85</code></a>
- Only mention deprecated ENV['N'] if it is an integer string.</li>
<li><a
href="a9fa045044"><code>a9fa045</code></a>
- Push up test_order to Minitest::Runnable to fix minitest/hell.
(koic)</li>
<li>Additional commits viewable in <a
href="https://github.com/minitest/minitest/compare/v5.18.0...v5.19.0">compare
view</a></li>
</ul>
</details>
<br />


Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-07-31 14:59:19 -05:00
zach
26b34ed906 fix: Update more SDKs to store a reference to host functions in the Plugin type (#401)
Similar to https://github.com/extism/extism/pull/399
2023-07-31 11:25:47 -07:00
zach
ab4995dac2 fix(python): store reference to host functions on Plugin (#399)
This should fix the issue @neuronicnobody ran into with a segfault
depending on the scope of the host function definition
2023-07-28 15:08:10 -07:00
zach
3da526286e feat: Implement parts of the extism runtime in WebAssembly (#384)
This PR adds the `kernel` directory which contains a port of the Extism
memory allocator compiled to WebAssembly and removes
`runtime/src/memory.rs` completely.

Being able to re-use memory functions as a WASM module allows us to
begin to experiment with porting Extism to new runtimes!

This is in a draft state while I'm verifying some of these changes.
2023-07-27 11:31:23 -07:00
dependabot[bot]
618c132194 chore(deps-dev): Bump word-wrap from 1.2.3 to 1.2.4 in /browser (#394)
Bumps [word-wrap](https://github.com/jonschlinkert/word-wrap) from 1.2.3
to 1.2.4.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/jonschlinkert/word-wrap/releases">word-wrap's
releases</a>.</em></p>
<blockquote>
<h2>1.2.4</h2>
<h2>What's Changed</h2>
<ul>
<li>Remove default indent by <a
href="https://github.com/mohd-akram"><code>@​mohd-akram</code></a> in <a
href="https://redirect.github.com/jonschlinkert/word-wrap/pull/24">jonschlinkert/word-wrap#24</a></li>
<li>🔒fix: CVE 2023 26115 (2) by <a
href="https://github.com/OlafConijn"><code>@​OlafConijn</code></a> in <a
href="https://redirect.github.com/jonschlinkert/word-wrap/pull/41">jonschlinkert/word-wrap#41</a></li>
<li>🔒 fix: CVE-2023-26115 by <a
href="https://github.com/aashutoshrathi"><code>@​aashutoshrathi</code></a>
in <a
href="https://redirect.github.com/jonschlinkert/word-wrap/pull/33">jonschlinkert/word-wrap#33</a></li>
<li>chore: publish workflow by <a
href="https://github.com/OlafConijn"><code>@​OlafConijn</code></a> in <a
href="https://redirect.github.com/jonschlinkert/word-wrap/pull/42">jonschlinkert/word-wrap#42</a></li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a
href="https://github.com/mohd-akram"><code>@​mohd-akram</code></a> made
their first contribution in <a
href="https://redirect.github.com/jonschlinkert/word-wrap/pull/24">jonschlinkert/word-wrap#24</a></li>
<li><a
href="https://github.com/OlafConijn"><code>@​OlafConijn</code></a> made
their first contribution in <a
href="https://redirect.github.com/jonschlinkert/word-wrap/pull/41">jonschlinkert/word-wrap#41</a></li>
<li><a
href="https://github.com/aashutoshrathi"><code>@​aashutoshrathi</code></a>
made their first contribution in <a
href="https://redirect.github.com/jonschlinkert/word-wrap/pull/33">jonschlinkert/word-wrap#33</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/jonschlinkert/word-wrap/compare/1.2.3...1.2.4">https://github.com/jonschlinkert/word-wrap/compare/1.2.3...1.2.4</a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="f64b188c72"><code>f64b188</code></a>
run verb to generate README</li>
<li><a
href="03ea08256b"><code>03ea082</code></a>
Merge pull request <a
href="https://redirect.github.com/jonschlinkert/word-wrap/issues/42">#42</a>
from jonschlinkert/chore/publish-workflow</li>
<li><a
href="420dce9a24"><code>420dce9</code></a>
Merge pull request <a
href="https://redirect.github.com/jonschlinkert/word-wrap/issues/41">#41</a>
from jonschlinkert/fix/CVE-2023-26115-2</li>
<li><a
href="bfa694edf5"><code>bfa694e</code></a>
Update .github/workflows/publish.yml</li>
<li><a
href="ace0b3c78f"><code>ace0b3c</code></a>
chore: bump version to 1.2.4</li>
<li><a
href="6fd7275946"><code>6fd7275</code></a>
chore: add publish workflow</li>
<li><a
href="30d6daf60f"><code>30d6daf</code></a>
chore: fix test</li>
<li><a
href="655929cabe"><code>655929c</code></a>
chore: remove package-lock</li>
<li><a
href="49e08bbc32"><code>49e08bb</code></a>
chore: added an additional testcase</li>
<li><a
href="9f626935f3"><code>9f62693</code></a>
fix: cve 2023-26115</li>
<li>Additional commits viewable in <a
href="https://github.com/jonschlinkert/word-wrap/compare/1.2.3...1.2.4">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=word-wrap&package-manager=npm_and_yarn&previous-version=1.2.3&new-version=1.2.4)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)
You can disable automated security fix PRs for this repo from the
[Security Alerts page](https://github.com/extism/extism/network/alerts).

</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-07-20 08:30:36 -05:00
dependabot[bot]
f4aa139ece chore(deps-dev): Bump ex_doc from 0.30.1 to 0.30.3 in /elixir (#390)
Bumps [ex_doc](https://github.com/elixir-lang/ex_doc) from 0.30.1 to
0.30.3.
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/elixir-lang/ex_doc/blob/main/CHANGELOG.md">ex_doc's
changelog</a>.</em></p>
<blockquote>
<h2>v0.30.3 (2023-07-15)</h2>
<ul>
<li>
<p>Enhancements</p>
<ul>
<li>Compress search index before storing in local storage</li>
</ul>
</li>
<li>
<p>Bug fixes</p>
<ul>
<li>Fix styling for headers on cheatsheets and small screens</li>
</ul>
</li>
</ul>
<h2>v0.30.2 (2023-07-11)</h2>
<ul>
<li>Bug fixes
<ul>
<li>Fix escaping in <code>search_data.json</code></li>
<li>Skip vega-lite code blocks in <code>search_data.json</code></li>
</ul>
</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li>See full diff in <a
href="https://github.com/elixir-lang/ex_doc/commits">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=ex_doc&package-manager=hex&previous-version=0.30.1&new-version=0.30.3)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-07-17 11:06:03 -05:00
dependabot[bot]
4548480c0b chore(deps-dev): Bump @types/node from 20.4.1 to 20.4.2 in /node (#391)
Bumps
[@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node)
from 20.4.1 to 20.4.2.
<details>
<summary>Commits</summary>
<ul>
<li>See full diff in <a
href="https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=@types/node&package-manager=npm_and_yarn&previous-version=20.4.1&new-version=20.4.2)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-07-17 11:05:53 -05:00
dependabot[bot]
7db38fd10e chore(deps-dev): Bump @types/jest from 29.5.2 to 29.5.3 in /node (#392)
Bumps
[@types/jest](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/jest)
from 29.5.2 to 29.5.3.
<details>
<summary>Commits</summary>
<ul>
<li>See full diff in <a
href="https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/jest">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=@types/jest&package-manager=npm_and_yarn&previous-version=29.5.2&new-version=29.5.3)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-07-17 11:05:44 -05:00
dependabot[bot]
58f7d5fa95 chore(deps): Bump tough-cookie from 4.1.2 to 4.1.3 in /browser (#389)
Bumps [tough-cookie](https://github.com/salesforce/tough-cookie) from
4.1.2 to 4.1.3.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/salesforce/tough-cookie/releases">tough-cookie's
releases</a>.</em></p>
<blockquote>
<h2>4.1.3</h2>
<p>Security fix for Prototype Pollution discovery in <a
href="https://redirect.github.com/salesforce/tough-cookie/issues/282">#282</a>.
This is a minor release, although output from the <code>inspect</code>
utility is affected by this change, we felt this change was important
enough to be pushed into the next patch.</p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="4ff4d29f6c"><code>4ff4d29</code></a>
4.1.3 release preparation, update the package and lib/version to 4.1.3.
(<a
href="https://redirect.github.com/salesforce/tough-cookie/issues/284">#284</a>)</li>
<li><a
href="12d474791b"><code>12d4747</code></a>
Prevent prototype pollution in cookie memstore (<a
href="https://redirect.github.com/salesforce/tough-cookie/issues/283">#283</a>)</li>
<li><a
href="f06b72d1d4"><code>f06b72d</code></a>
Fix documentation for store.findCookies, missing allowSpecialUseDomain
proper...</li>
<li>See full diff in <a
href="https://github.com/salesforce/tough-cookie/compare/v4.1.2...v4.1.3">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=tough-cookie&package-manager=npm_and_yarn&previous-version=4.1.2&new-version=4.1.3)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)
You can disable automated security fix PRs for this repo from the
[Security Alerts page](https://github.com/extism/extism/network/alerts).

</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-07-10 10:57:38 -05:00
dependabot[bot]
f10539a431 chore(deps-dev): Bump ex_doc from 0.29.4 to 0.30.1 in /elixir (#388)
Bumps [ex_doc](https://github.com/elixir-lang/ex_doc) from 0.29.4 to
0.30.1.
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/elixir-lang/ex_doc/blob/main/CHANGELOG.md">ex_doc's
changelog</a>.</em></p>
<blockquote>
<h2>v0.30.1 (2023-07-07)</h2>
<ul>
<li>Bug fixes
<ul>
<li>Fix styling for headers on cheatsheets and small screens</li>
</ul>
</li>
</ul>
<h2>v0.30.0 (2023-07-07)</h2>
<ul>
<li>
<p>Enhancements</p>
<ul>
<li>Support tabsets (see the README for more information)</li>
<li>Improve search results and indexing by storing more data and
metadata</li>
<li>Warn on invalid references in links</li>
<li>Strike-through deprecated items on autocompletion</li>
<li>Add source URL link to API reference page</li>
<li>Allow multiple extra files with the same name by generating unique
names in case of conflicts</li>
</ul>
</li>
<li>
<p>Bug fixes</p>
<ul>
<li>Fix rendering of large code blocks in admonition texts</li>
<li>Do not log errors on module mismatch in case-insensitive file
systems</li>
</ul>
</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="0d2f4dc62d"><code>0d2f4dc</code></a>
Release v0.30.1</li>
<li><a
href="0e9349ef73"><code>0e9349e</code></a>
Update assets</li>
<li><a
href="11dda904d2"><code>11dda90</code></a>
Fix bugs in headers</li>
<li><a
href="2ffaa811b0"><code>2ffaa81</code></a>
Release v0.30.0</li>
<li><a
href="964a22658c"><code>964a226</code></a>
Update assets</li>
<li><a
href="091fb70432"><code>091fb70</code></a>
Revert &quot;Make dummy assets change&quot;</li>
<li><a
href="948825d73f"><code>948825d</code></a>
Update assets</li>
<li><a
href="7e661dc589"><code>7e661dc</code></a>
Make dummy assets change</li>
<li><a
href="7d3d195acb"><code>7d3d195</code></a>
Update assets on CI (<a
href="https://redirect.github.com/elixir-lang/ex_doc/issues/1731">#1731</a>)</li>
<li><a
href="c54c5e63d9"><code>c54c5e6</code></a>
Remove padding on anchor</li>
<li>Additional commits viewable in <a
href="https://github.com/elixir-lang/ex_doc/compare/v0.29.4...v0.30.1">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=ex_doc&package-manager=hex&previous-version=0.29.4&new-version=0.30.1)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-07-10 10:57:25 -05:00
dependabot[bot]
e26e6d2da1 chore(deps-dev): Bump @types/node from 20.3.3 to 20.4.1 in /node (#387)
Bumps
[@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node)
from 20.3.3 to 20.4.1.
<details>
<summary>Commits</summary>
<ul>
<li>See full diff in <a
href="https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=@types/node&package-manager=npm_and_yarn&previous-version=20.3.3&new-version=20.4.1)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-07-10 10:57:17 -05:00
dependabot[bot]
70a9a3da66 chore(deps-dev): Bump prettier from 2.8.8 to 3.0.0 in /node (#386)
Bumps [prettier](https://github.com/prettier/prettier) from 2.8.8 to
3.0.0.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/prettier/prettier/releases">prettier's
releases</a>.</em></p>
<blockquote>
<h2>3.0.0</h2>
<p><a
href="https://github.com/prettier/prettier/compare/3.0.0-alpha.6...3.0.0">diff</a></p>
<p>🔗 <a href="https://prettier.io/blog/2023/07/05/3.0.0.html">Release
note</a></p>
<h2>3.0.0-alpha.6</h2>
<h2>What's Changed</h2>
<ul>
<li>Update <code>.d.ts</code> files of plugins to use <code>export
default ...</code> by <a
href="https://github.com/fisker"><code>@​fisker</code></a> in <a
href="https://redirect.github.com/prettier/prettier/pull/14435">prettier/prettier#14435</a></li>
</ul>
<p>Other changes since v2, see <a
href="https://github.com/prettier/prettier/releases/tag/3.0.0-alpha.1"><code>3.0.0-alpha.1</code>
release notes</a></p>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/prettier/prettier/compare/3.0.0-alpha.5...3.0.0-alpha.6">https://github.com/prettier/prettier/compare/3.0.0-alpha.5...3.0.0-alpha.6</a></p>
<h2>3.0.0-alpha.5</h2>
<h2>What's Changed</h2>
<ul>
<li>Add <code>.d.ts</code> files by <a
href="https://github.com/sosukesuzuki"><code>@​sosukesuzuki</code></a>
in <a
href="https://redirect.github.com/prettier/prettier/pull/14212">prettier/prettier#14212</a></li>
<li>Support TypeScript 5 via <code>babel-ts</code> parser by <a
href="https://github.com/fisker"><code>@​fisker</code></a> in <a
href="https://redirect.github.com/prettier/prettier/pull/14391">prettier/prettier#14391</a></li>
</ul>
<p>Other changes since v2, see <a
href="https://github.com/prettier/prettier/releases/tag/3.0.0-alpha.1"><code>3.0.0-alpha.1</code>
release notes</a></p>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/prettier/prettier/compare/3.0.0-alpha.4...3.0.0-alpha.5">https://github.com/prettier/prettier/compare/3.0.0-alpha.4...3.0.0-alpha.5</a></p>
<h2>3.0.0-alpha.4</h2>
<h2>What's Changed</h2>
<ul>
<li>Remove support for Flow comment types by <a
href="https://github.com/thorn0"><code>@​thorn0</code></a> in <a
href="https://redirect.github.com/prettier/prettier/pull/13687">prettier/prettier#13687</a></li>
<li>Make <code>resolveParser</code> work like v2 by <a
href="https://github.com/fisker"><code>@​fisker</code></a> in <a
href="https://redirect.github.com/prettier/prettier/pull/13732">prettier/prettier#13732</a></li>
<li>Add <code>__debug</code> apis to cjs version by <a
href="https://github.com/fisker"><code>@​fisker</code></a> in <a
href="https://redirect.github.com/prettier/prettier/pull/13731">prettier/prettier#13731</a></li>
</ul>
<p>Other changes since v2, see <a
href="https://github.com/prettier/prettier/releases/tag/3.0.0-alpha.1"><code>3.0.0-alpha.1</code>
release notes</a></p>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/prettier/prettier/compare/3.0.0-alpha.3...3.0.0-alpha.4">https://github.com/prettier/prettier/compare/3.0.0-alpha.3...3.0.0-alpha.4</a></p>
<h2>3.0.0-alpha.3</h2>
<ul>
<li>Fix <code>exports</code> field in <code>package.json</code>
file</li>
</ul>
<p>Other changes since v2, see <a
href="https://github.com/prettier/prettier/releases/tag/3.0.0-alpha.1"><code>3.0.0-alpha.1</code>
release notes</a></p>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/prettier/prettier/compare/3.0.0-alpha.2...3.0.0-alpha.3">https://github.com/prettier/prettier/compare/3.0.0-alpha.2...3.0.0-alpha.3</a></p>
<h2>3.0.0-alpha.2</h2>
<ul>
<li>Fix bundled <code>index.cjs</code> file</li>
</ul>
<p>Other changes since v2, see <a
href="https://github.com/prettier/prettier/releases/tag/3.0.0-alpha.1"><code>3.0.0-alpha.1</code>
release notes</a></p>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/prettier/prettier/compare/3.0.0-alpha.1...3.0.0-alpha.2">https://github.com/prettier/prettier/compare/3.0.0-alpha.1...3.0.0-alpha.2</a></p>
<h2>3.0.0-alpha.1</h2>
<p><strong>If you are a plugin developer, please try this version and
send us feedback! Feel free to ping <a
href="https://github.com/fisker"><code>@​fisker</code></a> if you have
any questions about v3 migration.</strong></p>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/prettier/prettier/blob/main/CHANGELOG.md">prettier's
changelog</a>.</em></p>
<blockquote>
<h1>3.0.0</h1>
<p><a
href="https://github.com/prettier/prettier/compare/3.0.0-alpha.6...3.0.0">diff</a></p>
<p>🔗 <a href="https://prettier.io/blog/2023/07/05/3.0.0.html">Release
Notes</a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="186e0966b0"><code>186e096</code></a>
Release 3.0.0</li>
<li><a
href="44979b0a37"><code>44979b0</code></a>
Remove test step from release script (<a
href="https://redirect.github.com/prettier/prettier/issues/15011">#15011</a>)</li>
<li><a
href="e12afe89f3"><code>e12afe8</code></a>
Regenerate yarn.lock file (<a
href="https://redirect.github.com/prettier/prettier/issues/15010">#15010</a>)</li>
<li><a
href="db31fd602e"><code>db31fd6</code></a>
Regenerate yarn.lock file for website (<a
href="https://redirect.github.com/prettier/prettier/issues/15009">#15009</a>)</li>
<li><a
href="1a0d9ed800"><code>1a0d9ed</code></a>
chore(deps): update dependency cosmiconfig to v8.2.0 (<a
href="https://redirect.github.com/prettier/prettier/issues/14901">#14901</a>)</li>
<li><a
href="25fa483e35"><code>25fa483</code></a>
chore(deps): update dependency typescript to v5.1.5 (<a
href="https://redirect.github.com/prettier/prettier/issues/14896">#14896</a>)</li>
<li><a
href="d0759650b8"><code>d075965</code></a>
chore(deps): update dependency webpack to v5.88.1 (<a
href="https://redirect.github.com/prettier/prettier/issues/14994">#14994</a>)</li>
<li><a
href="d97f78db99"><code>d97f78d</code></a>
chore(deps): update dependency webpack to v5.88.1 (<a
href="https://redirect.github.com/prettier/prettier/issues/14995">#14995</a>)</li>
<li><a
href="f1ef433e98"><code>f1ef433</code></a>
chore(deps): update dependency flow-parser to v0.211.0 (<a
href="https://redirect.github.com/prettier/prettier/issues/15002">#15002</a>)</li>
<li><a
href="61804e2516"><code>61804e2</code></a>
chore(deps): update dependency espree to v9.6.0 (<a
href="https://redirect.github.com/prettier/prettier/issues/15000">#15000</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/prettier/prettier/compare/2.8.8...3.0.0">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=prettier&package-manager=npm_and_yarn&previous-version=2.8.8&new-version=3.0.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-07-10 10:57:09 -05:00
dependabot[bot]
b86f6267f6 chore(deps-dev): Bump jest from 29.5.0 to 29.6.1 in /node (#385)
Bumps [jest](https://github.com/facebook/jest/tree/HEAD/packages/jest)
from 29.5.0 to 29.6.1.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/facebook/jest/releases">jest's
releases</a>.</em></p>
<blockquote>
<h2>v29.6.1</h2>
<h2>Fixes</h2>
<ul>
<li><code>[jest-circus]</code> Revert <a
href="https://redirect.github.com/jestjs/jest/pull/14110">#14110</a> as
it was a breaking change (<a
href="https://redirect.github.com/jestjs/jest/pull/14304">#14304</a>)</li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/jestjs/jest/compare/v29.6.0...v29.6.1">https://github.com/jestjs/jest/compare/v29.6.0...v29.6.1</a></p>
<h2>v29.6.0</h2>
<h2>Features</h2>
<ul>
<li><code>[jest-circus, jest-snapshot]</code> Add support for snapshot
matchers in concurrent tests (<a
href="https://redirect.github.com/jestjs/jest/pull/14139">#14139</a>)</li>
<li><code>[jest-cli]</code> Include type definitions to generated config
files (<a
href="https://redirect.github.com/facebook/jest/pull/14078">#14078</a>)</li>
<li><code>[jest-snapshot]</code> Support arrays as property matchers (<a
href="https://redirect.github.com/facebook/jest/pull/14025">#14025</a>)</li>
<li><code>[jest-core, jest-circus, jest-reporter, jest-runner]</code>
Added support for reporting about start individual test cases using
jest-circus (<a
href="https://redirect.github.com/jestjs/jest/pull/14174">#14174</a>)</li>
</ul>
<h2>Fixes</h2>
<ul>
<li><code>[jest-circus]</code> Prevent false test failures caused by
promise rejections handled asynchronously (<a
href="https://redirect.github.com/jestjs/jest/pull/14110">#14110</a>)</li>
<li><code>[jest-config]</code> Handle frozen config object (<a
href="https://redirect.github.com/facebook/jest/pull/14054">#14054</a>)</li>
<li><code>[jest-config]</code> Allow <code>coverageDirectory</code> and
<code>collectCoverageFrom</code> in project config (<a
href="https://redirect.github.com/jestjs/jest/pull/14180">#14180</a>)</li>
<li><code>[jest-core]</code> Always use workers in watch mode to avoid
crashes (<a
href="https://redirect.github.com/facebook/jest/pull/14059">#14059</a>).</li>
<li><code>[jest-environment-jsdom, jest-environment-node]</code> Fix
assignment of <code>customExportConditions</code> via
<code>testEnvironmentOptions</code> when custom env subclass defines a
default value (<a
href="https://redirect.github.com/facebook/jest/pull/13989">#13989</a>)</li>
<li><code>[jest-matcher-utils]</code> Fix copying value of inherited
getters (<a
href="https://redirect.github.com/facebook/jest/pull/14007">#14007</a>)</li>
<li><code>[jest-mock]</code> Tweak typings to allow
<code>jest.replaceProperty()</code> replace methods (<a
href="https://redirect.github.com/facebook/jest/pull/14008">#14008</a>)</li>
<li><code>[jest-mock]</code> Improve user input validation and error
messages of <code>spyOn</code> and <code>replaceProperty</code> methods
(<a
href="https://redirect.github.com/facebook/jest/pull/14087">#14087</a>)</li>
<li><code>[jest-runtime]</code> Bind
<code>jest.isolateModulesAsync</code> to <code>this</code> (<a
href="https://redirect.github.com/facebook/jest/pull/14083">#14083</a>)</li>
<li><code>[jest-runtime]</code> Forward <code>wrapperLength</code> to
the <code>Script</code> constructor as <code>columnOffset</code> for
accurate debugging (<a
href="https://redirect.github.com/facebook/jest/pull/14148">#14148</a>)</li>
<li><code>[jest-runtime]</code> Guard <code>_isMockFunction</code>
access with <code>in</code> (<a
href="https://redirect.github.com/facebook/jest/pull/14188">#14188</a>)</li>
<li><code>[jest-snapshot]</code> Fix a potential bug when not using
prettier and improve performance (<a
href="https://redirect.github.com/facebook/jest/pull/14036">#14036</a>)</li>
<li><code>[@jest/transform]</code> Do not instrument <code>.json</code>
modules (<a
href="https://redirect.github.com/facebook/jest/pull/14048">#14048</a>)</li>
<li><code>[jest-worker]</code> Restart a shut down worker before sending
it a task (<a
href="https://redirect.github.com/facebook/jest/pull/14015">#14015</a>)</li>
</ul>
<h2>Chore &amp; Maintenance</h2>
<ul>
<li><code>[*]</code> Update <code>semver</code> dependency to get
vulnerability fix (<a
href="https://redirect.github.com/jestjs/jest/pull/14262">#14262</a>)</li>
<li><code>[docs]</code> Updated documentation for the
<code>--runTestsByPath</code> CLI command (<a
href="https://redirect.github.com/facebook/jest/pull/14004">#14004</a>)</li>
<li><code>[docs]</code> Updated documentation regarding the synchronous
fallback when asynchronous code transforms are unavailable (<a
href="https://redirect.github.com/facebook/jest/pull/14056">#14056</a>)</li>
<li><code>[docs]</code> Update jest statistics of use and downloads in
website Index.</li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a href="https://github.com/huntie"><code>@​huntie</code></a> made
their first contribution in <a
href="https://redirect.github.com/jestjs/jest/pull/13989">jestjs/jest#13989</a></li>
<li><a href="https://github.com/liammulh"><code>@​liammulh</code></a>
made their first contribution in <a
href="https://redirect.github.com/jestjs/jest/pull/14001">jestjs/jest#14001</a></li>
<li><a
href="https://github.com/BenceSzalai"><code>@​BenceSzalai</code></a>
made their first contribution in <a
href="https://redirect.github.com/jestjs/jest/pull/14007">jestjs/jest#14007</a></li>
<li><a href="https://github.com/Mike-Dax"><code>@​Mike-Dax</code></a>
made their first contribution in <a
href="https://redirect.github.com/jestjs/jest/pull/14056">jestjs/jest#14056</a></li>
<li><a
href="https://github.com/bakasmarius"><code>@​bakasmarius</code></a>
made their first contribution in <a
href="https://redirect.github.com/jestjs/jest/pull/14025">jestjs/jest#14025</a></li>
<li><a
href="https://github.com/PeteTheHeat"><code>@​PeteTheHeat</code></a>
made their first contribution in <a
href="https://redirect.github.com/jestjs/jest/pull/14015">jestjs/jest#14015</a></li>
<li><a
href="https://github.com/tjenkinson"><code>@​tjenkinson</code></a> made
their first contribution in <a
href="https://redirect.github.com/jestjs/jest/pull/14083">jestjs/jest#14083</a></li>
<li><a
href="https://github.com/soyjuanmacias"><code>@​soyjuanmacias</code></a>
made their first contribution in <a
href="https://redirect.github.com/jestjs/jest/pull/14101">jestjs/jest#14101</a></li>
<li><a
href="https://github.com/bharathkalyans"><code>@​bharathkalyans</code></a>
made their first contribution in <a
href="https://redirect.github.com/jestjs/jest/pull/14154">jestjs/jest#14154</a></li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/jestjs/jest/blob/main/CHANGELOG.md">jest's
changelog</a>.</em></p>
<blockquote>
<h2>29.6.1</h2>
<h3>Fixes</h3>
<ul>
<li><code>[jest-circus]</code> Revert <a
href="https://redirect.github.com/jestjs/jest/pull/14110">#14110</a> as
it was a breaking change (<a
href="https://redirect.github.com/jestjs/jest/pull/14304">#14304</a>)</li>
</ul>
<h2>29.6.0</h2>
<h3>Features</h3>
<ul>
<li><code>[jest-circus, jest-snapshot]</code> Add support for snapshot
matchers in concurrent tests (<a
href="https://redirect.github.com/jestjs/jest/pull/14139">#14139</a>)</li>
<li><code>[jest-cli]</code> Include type definitions to generated config
files (<a
href="https://redirect.github.com/facebook/jest/pull/14078">#14078</a>)</li>
<li><code>[jest-snapshot]</code> Support arrays as property matchers (<a
href="https://redirect.github.com/facebook/jest/pull/14025">#14025</a>)</li>
<li><code>[jest-core, jest-circus, jest-reporter, jest-runner]</code>
Added support for reporting about start individual test cases using
jest-circus (<a
href="https://redirect.github.com/jestjs/jest/pull/14174">#14174</a>)</li>
</ul>
<h3>Fixes</h3>
<ul>
<li><code>[jest-circus]</code> Prevent false test failures caused by
promise rejections handled asynchronously (<a
href="https://redirect.github.com/jestjs/jest/pull/14110">#14110</a>)</li>
<li><code>[jest-config]</code> Handle frozen config object (<a
href="https://redirect.github.com/facebook/jest/pull/14054">#14054</a>)</li>
<li><code>[jest-config]</code> Allow <code>coverageDirectory</code> and
<code>collectCoverageFrom</code> in project config (<a
href="https://redirect.github.com/jestjs/jest/pull/14180">#14180</a>)</li>
<li><code>[jest-core]</code> Always use workers in watch mode to avoid
crashes (<a
href="https://redirect.github.com/facebook/jest/pull/14059">#14059</a>).</li>
<li><code>[jest-environment-jsdom, jest-environment-node]</code> Fix
assignment of <code>customExportConditions</code> via
<code>testEnvironmentOptions</code> when custom env subclass defines a
default value (<a
href="https://redirect.github.com/facebook/jest/pull/13989">#13989</a>)</li>
<li><code>[jest-matcher-utils]</code> Fix copying value of inherited
getters (<a
href="https://redirect.github.com/facebook/jest/pull/14007">#14007</a>)</li>
<li><code>[jest-mock]</code> Tweak typings to allow
<code>jest.replaceProperty()</code> replace methods (<a
href="https://redirect.github.com/facebook/jest/pull/14008">#14008</a>)</li>
<li><code>[jest-mock]</code> Improve user input validation and error
messages of <code>spyOn</code> and <code>replaceProperty</code> methods
(<a
href="https://redirect.github.com/facebook/jest/pull/14087">#14087</a>)</li>
<li><code>[jest-runtime]</code> Bind
<code>jest.isolateModulesAsync</code> to <code>this</code> (<a
href="https://redirect.github.com/facebook/jest/pull/14083">#14083</a>)</li>
<li><code>[jest-runtime]</code> Forward <code>wrapperLength</code> to
the <code>Script</code> constructor as <code>columnOffset</code> for
accurate debugging (<a
href="https://redirect.github.com/facebook/jest/pull/14148">#14148</a>)</li>
<li><code>[jest-runtime]</code> Guard <code>_isMockFunction</code>
access with <code>in</code> (<a
href="https://redirect.github.com/facebook/jest/pull/14188">#14188</a>)</li>
<li><code>[jest-snapshot]</code> Fix a potential bug when not using
prettier and improve performance (<a
href="https://redirect.github.com/facebook/jest/pull/14036">#14036</a>)</li>
<li><code>[@jest/transform]</code> Do not instrument <code>.json</code>
modules (<a
href="https://redirect.github.com/facebook/jest/pull/14048">#14048</a>)</li>
<li><code>[jest-worker]</code> Restart a shut down worker before sending
it a task (<a
href="https://redirect.github.com/facebook/jest/pull/14015">#14015</a>)</li>
</ul>
<h3>Chore &amp; Maintenance</h3>
<ul>
<li><code>[*]</code> Update <code>semver</code> dependency to get
vulnerability fix (<a
href="https://redirect.github.com/jestjs/jest/pull/14262">#14262</a>)</li>
<li><code>[docs]</code> Updated documentation for the
<code>--runTestsByPath</code> CLI command (<a
href="https://redirect.github.com/facebook/jest/pull/14004">#14004</a>)</li>
<li><code>[docs]</code> Updated documentation regarding the synchronous
fallback when asynchronous code transforms are unavailable (<a
href="https://redirect.github.com/facebook/jest/pull/14056">#14056</a>)</li>
<li><code>[docs]</code> Update jest statistics of use and downloads in
website Index.</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="1f019afdcd"><code>1f019af</code></a>
v29.6.1</li>
<li><a
href="c1e5b8a38e"><code>c1e5b8a</code></a>
v29.6.0</li>
<li><a
href="6ffa48d1cd"><code>6ffa48d</code></a>
chore: upgrade TypeScript to v5 (<a
href="https://github.com/facebook/jest/tree/HEAD/packages/jest/issues/14155">#14155</a>)</li>
<li><a
href="a95eeb6c2c"><code>a95eeb6</code></a>
chore: update tsd runner (<a
href="https://github.com/facebook/jest/tree/HEAD/packages/jest/issues/14020">#14020</a>)</li>
<li>See full diff in <a
href="https://github.com/facebook/jest/commits/v29.6.1/packages/jest">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=jest&package-manager=npm_and_yarn&previous-version=29.5.0&new-version=29.6.1)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-07-10 10:57:00 -05:00
dependabot[bot]
6a49a6ee7c chore(deps-dev): Bump typescript from 5.1.3 to 5.1.6 in /node (#380)
Bumps [typescript](https://github.com/Microsoft/TypeScript) from 5.1.3
to 5.1.6.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/Microsoft/TypeScript/releases">typescript's
releases</a>.</em></p>
<blockquote>
<h2>TypeScript 5.1.5</h2>
<p>For release notes, check out the <a
href="https://devblogs.microsoft.com/typescript/announcing-typescript-5-1/">release
announcement</a>.</p>
<p>For the complete list of fixed issues, check out the</p>
<ul>
<li><a
href="https://github.com/Microsoft/TypeScript/issues?utf8=%E2%9C%93&amp;q=milestone%3A%22TypeScript+5.1.0%22+is%3Aclosed+">fixed
issues query for Typescript v5.1.0 (Beta)</a>.</li>
<li><a
href="https://github.com/Microsoft/TypeScript/issues?utf8=%E2%9C%93&amp;q=milestone%3A%22TypeScript+5.1.1%22+is%3Aclosed+">fixed
issues query for Typescript v5.1.1 (RC)</a>.</li>
<li><a
href="https://github.com/Microsoft/TypeScript/issues?utf8=%E2%9C%93&amp;q=milestone%3A%22TypeScript+5.1.2%22+is%3Aclosed+">fixed
issues query for Typescript v5.1.2 (Stable)</a>.</li>
<li><a
href="https://github.com/Microsoft/TypeScript/issues?utf8=%E2%9C%93&amp;q=milestone%3A%22TypeScript+5.1.3%22+is%3Aclosed+">fixed
issues query for Typescript v5.1.3 (Stable)</a>.</li>
<li>(5.1.4 <a
href="https://redirect.github.com/microsoft/TypeScript/issues/53031#issuecomment-1610038922">intentionally
skipped</a>)</li>
<li><a
href="https://github.com/Microsoft/TypeScript/issues?utf8=%E2%9C%93&amp;q=milestone%3A%22TypeScript+5.1.5%22+is%3Aclosed+">fixed
issues query for Typescript v5.1.5 (Stable)</a>.</li>
</ul>
<p>Downloads are available on:</p>
<ul>
<li><a href="https://www.npmjs.com/package/typescript">npm</a></li>
<li><a
href="https://www.nuget.org/packages/Microsoft.TypeScript.MSBuild">NuGet
package</a></li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li>See full diff in <a
href="https://github.com/Microsoft/TypeScript/commits">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=typescript&package-manager=npm_and_yarn&previous-version=5.1.3&new-version=5.1.6)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-07-06 16:57:01 -05:00
dependabot[bot]
3b5fea71d7 chore(deps-dev): Bump @types/node from 20.3.1 to 20.3.3 in /node (#381)
Bumps
[@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node)
from 20.3.1 to 20.3.3.
<details>
<summary>Commits</summary>
<ul>
<li>See full diff in <a
href="https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=@types/node&package-manager=npm_and_yarn&previous-version=20.3.1&new-version=20.3.3)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-07-06 16:56:54 -05:00
dependabot[bot]
c0ccf7558c chore(deps-dev): Bump ts-jest from 29.1.0 to 29.1.1 in /node (#382)
Bumps [ts-jest](https://github.com/kulshekhar/ts-jest) from 29.1.0 to
29.1.1.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/kulshekhar/ts-jest/releases">ts-jest's
releases</a>.</em></p>
<blockquote>
<h2>v29.1.1</h2>
<p>Please refer to <a
href="https://github.com/kulshekhar/ts-jest/blob/main/CHANGELOG.md">CHANGELOG.md</a>
for details.</p>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/kulshekhar/ts-jest/blob/main/CHANGELOG.md">ts-jest's
changelog</a>.</em></p>
<blockquote>
<h2><a
href="https://github.com/kulshekhar/ts-jest/compare/v29.1.0...v29.1.1">29.1.1</a>
(2023-06-23)</h2>
<h3>Security Fixes</h3>
<ul>
<li>bump <code>semver</code> to <code>7.5.3</code></li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="9670787b08"><code>9670787</code></a>
chore(release): 29.1.1 (<a
href="https://redirect.github.com/kulshekhar/ts-jest/issues/4173">#4173</a>)</li>
<li><a
href="8c51d3252c"><code>8c51d32</code></a>
build(deps): Update actions/checkout digest to c85c95e (<a
href="https://redirect.github.com/kulshekhar/ts-jest/issues/4172">#4172</a>)</li>
<li><a
href="0f82024897"><code>0f82024</code></a>
build(deps): bump semver from 7.3.7 to 7.5.2 in /examples/react-app (<a
href="https://redirect.github.com/kulshekhar/ts-jest/issues/4170">#4170</a>)</li>
<li><a
href="431dca69cd"><code>431dca6</code></a>
build(deps): bump semver from 7.5.1 to 7.5.2 (<a
href="https://redirect.github.com/kulshekhar/ts-jest/issues/4169">#4169</a>)</li>
<li><a
href="f4f7daeafd"><code>f4f7dae</code></a>
build(deps): Update <a
href="https://github.com/types"><code>@​types</code></a> packages (<a
href="https://redirect.github.com/kulshekhar/ts-jest/issues/4164">#4164</a>)</li>
<li><a
href="5e551acf30"><code>5e551ac</code></a>
build(deps): Update dependency <code>@​formatjs/ts-transformer</code> to
^3.13.3 (<a
href="https://redirect.github.com/kulshekhar/ts-jest/issues/4165">#4165</a>)</li>
<li><a
href="2925d0e0ab"><code>2925d0e</code></a>
build(deps): Update dependency <code>@​formatjs/ts-transformer</code> to
^3.13.2 (<a
href="https://redirect.github.com/kulshekhar/ts-jest/issues/4160">#4160</a>)</li>
<li><a
href="71c7786128"><code>71c7786</code></a>
build(deps): Update <a
href="https://github.com/types"><code>@​types</code></a> packages to
^5.59.9 (<a
href="https://redirect.github.com/kulshekhar/ts-jest/issues/4159">#4159</a>)</li>
<li><a
href="099102e4a6"><code>099102e</code></a>
build(deps): Update dependency typescript to ~5.1.3 (<a
href="https://redirect.github.com/kulshekhar/ts-jest/issues/4157">#4157</a>)</li>
<li><a
href="6e5a29414e"><code>6e5a294</code></a>
build(deps): Update dependency eslint to ^8.42.0 (<a
href="https://redirect.github.com/kulshekhar/ts-jest/issues/4158">#4158</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/kulshekhar/ts-jest/compare/v29.1.0...v29.1.1">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=ts-jest&package-manager=npm_and_yarn&previous-version=29.1.0&new-version=29.1.1)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-07-06 16:56:46 -05:00
dependabot[bot]
35a6887e9f chore(deps): Bump rustler from 0.28.0 to 0.29.1 in /elixir (#383)
Bumps [rustler](https://github.com/rusterlium/rustler) from 0.28.0 to
0.29.1.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/rusterlium/rustler/releases">rustler's
releases</a>.</em></p>
<blockquote>
<h2>rustler-0.29.1</h2>
<h2>What's Changed</h2>
<ul>
<li>Fix NifTaggedEnum derived Encoder impl for named-field variants by
<a href="https://github.com/dylanburati"><code>@​dylanburati</code></a>
in <a
href="https://redirect.github.com/rusterlium/rustler/pull/547">rusterlium/rustler#547</a></li>
<li>Exclude directories from external resources to be compatible with
Elixir 1.15 by <a
href="https://github.com/adrienmo"><code>@​adrienmo</code></a> in <a
href="https://redirect.github.com/rusterlium/rustler/pull/548">rusterlium/rustler#548</a></li>
<li>Remove cfg! directives in build.rs causing cross-compilation to fail
by <a
href="https://github.com/fabriziosestito"><code>@​fabriziosestito</code></a>
in <a
href="https://redirect.github.com/rusterlium/rustler/pull/555">rusterlium/rustler#555</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/rusterlium/rustler/compare/rustler-0.28.0...rustler-0.29.0">https://github.com/rusterlium/rustler/compare/rustler-0.28.0...rustler-0.29.0</a></p>
<h2>rustler-0.29.0</h2>
<h2>What's Changed</h2>
<ul>
<li>Make rustler_sys forward compatible by <a
href="https://github.com/filmor"><code>@​filmor</code></a> in <a
href="https://redirect.github.com/rusterlium/rustler/pull/536">rusterlium/rustler#536</a></li>
<li>Add OTP26 to CI and bump rustler_sys by <a
href="https://github.com/filmor"><code>@​filmor</code></a> in <a
href="https://redirect.github.com/rusterlium/rustler/pull/539">rusterlium/rustler#539</a></li>
<li>Introduce CI cache by <a
href="https://github.com/filmor"><code>@​filmor</code></a> in <a
href="https://redirect.github.com/rusterlium/rustler/pull/541">rusterlium/rustler#541</a></li>
<li>Drop OTP23 entirely from CI and use -latest for all OS versions by
<a href="https://github.com/filmor"><code>@​filmor</code></a> in <a
href="https://redirect.github.com/rusterlium/rustler/pull/542">rusterlium/rustler#542</a></li>
<li>Use features for minimal NIF version by <a
href="https://github.com/filmor"><code>@​filmor</code></a> in <a
href="https://redirect.github.com/rusterlium/rustler/pull/537">rusterlium/rustler#537</a></li>
<li>Apply current NIF version for tests and raise default by <a
href="https://github.com/filmor"><code>@​filmor</code></a> in <a
href="https://redirect.github.com/rusterlium/rustler/pull/543">rusterlium/rustler#543</a></li>
<li>rustler: add a Rust type <code>ErlOption&lt;T&gt;</code> by <a
href="https://github.com/tatsuya6502"><code>@​tatsuya6502</code></a> in
<a
href="https://redirect.github.com/rusterlium/rustler/pull/507">rusterlium/rustler#507</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/rusterlium/rustler/compare/rustler-0.28.0...rustler-0.29.0">https://github.com/rusterlium/rustler/compare/rustler-0.28.0...rustler-0.29.0</a></p>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/rusterlium/rustler/blob/master/CHANGELOG.md">rustler's
changelog</a>.</em></p>
<blockquote>
<h2>[0.29.1] - 2023-06-30</h2>
<h3>Fixed</h3>
<ul>
<li>Exclude directories from external resources for compatibility with
Elixir 1.15
(<a
href="https://redirect.github.com/rusterlium/rustler/issues/548">#548</a>,
thanks <a
href="https://github.com/adrienmo"><code>@​adrienmo</code></a>)</li>
<li>Fix <code>NifTaggedEnum</code> derived <code>Encoder</code> impl for
named-field variants (<a
href="https://redirect.github.com/rusterlium/rustler/issues/547">#547</a>,
thanks <a
href="https://github.com/dylanburati"><code>@​dylanburati</code></a>)</li>
<li>Remove <code>cfg!</code> directives in build.rs causing
cross-compilation to fail (<a
href="https://redirect.github.com/rusterlium/rustler/issues/555">#555</a>,
thanks <a
href="https://github.com/fabriziosestito"><code>@​fabriziosestito</code></a>)</li>
</ul>
<h2>[0.29.0] - 2023-06-22</h2>
<h3>Added</h3>
<ul>
<li><code>ErlOption&lt;T&gt;</code> to provide an ergonomic option type
for Erlang (<a
href="https://redirect.github.com/rusterlium/rustler/issues/507">#507</a>,
thanks <a
href="https://github.com/tatsuya6502"><code>@​tatsuya6502</code></a>)</li>
</ul>
<h3>Changed</h3>
<ul>
<li>Use Cargo features to define the NIF version level (<a
href="https://redirect.github.com/rusterlium/rustler/issues/537">#537</a>),
deprecating
<code>RUSTLER_NIF_VERSION</code></li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="b817a6829a"><code>b817a68</code></a>
(release) 0.29.1</li>
<li><a
href="2e2e9248f0"><code>2e2e924</code></a>
Update changelog</li>
<li><a
href="9cfdcfc47a"><code>9cfdcfc</code></a>
use env variables instead of cfg! (<a
href="https://redirect.github.com/rusterlium/rustler/issues/555">#555</a>)</li>
<li><a
href="ea132ea08a"><code>ea132ea</code></a>
Fix NifTaggedEnum derived Encoder impl for named-field variants (<a
href="https://redirect.github.com/rusterlium/rustler/issues/547">#547</a>)</li>
<li><a
href="2cbc53ac3a"><code>2cbc53a</code></a>
Exclude directories from external resources (<a
href="https://redirect.github.com/rusterlium/rustler/issues/548">#548</a>)</li>
<li><a
href="78f7477705"><code>78f7477</code></a>
Roll changelog over</li>
<li><a
href="016e35bf8f"><code>016e35b</code></a>
Bump rustler_sys for feature-based NIF level selection</li>
<li><a
href="95d6961b29"><code>95d6961</code></a>
Make rustler depend on rustler_sys with features</li>
<li><a
href="680126bd61"><code>680126b</code></a>
(release) 0.29.0</li>
<li><a
href="d8aa66d976"><code>d8aa66d</code></a>
Merge pull request <a
href="https://redirect.github.com/rusterlium/rustler/issues/507">#507</a>
from tatsuya6502/erl-option</li>
<li>Additional commits viewable in <a
href="https://github.com/rusterlium/rustler/compare/rustler-0.28.0...rustler-0.29.1">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=rustler&package-manager=hex&previous-version=0.28.0&new-version=0.29.1)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-07-06 16:56:37 -05:00
Doğu Us
81e51fb059 fix: update for latest Zig (#379) 2023-07-01 10:37:00 -07:00
zach
f606ab619f chore: use a range for wasmtime dependency version (#375)
Currently wasmtime `8.0.0` - `10.0.0` are compatible with
`extism-runtime`, in the interest of remaining compatible with as many
applications as possible, this PR updates the wasmtime version
requirement from a single version to a range of acceptable versions.
2023-06-20 15:34:01 -07:00
dependabot[bot]
c78104a846 chore(deps-dev): Bump @types/node from 20.3.0 to 20.3.1 in /node (#371)
Bumps
[@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node)
from 20.3.0 to 20.3.1.
<details>
<summary>Commits</summary>
<ul>
<li>See full diff in <a
href="https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=@types/node&package-manager=npm_and_yarn&previous-version=20.3.0&new-version=20.3.1)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-06-20 17:29:32 -05:00
dependabot[bot]
59101d80a6 chore(deps-dev): Bump @types/node from 20.2.5 to 20.3.0 in /node (#370)
Bumps
[@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node)
from 20.2.5 to 20.3.0.
<details>
<summary>Commits</summary>
<ul>
<li>See full diff in <a
href="https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=@types/node&package-manager=npm_and_yarn&previous-version=20.2.5&new-version=20.3.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-06-11 21:05:07 -05:00
dependabot[bot]
b3b5e67abb chore(deps-dev): Bump typescript from 5.0.4 to 5.1.3 in /node (#365)
[//]: # (dependabot-start)
⚠️  **Dependabot is rebasing this PR** ⚠️ 

Rebasing might not happen immediately, so don't worry if this takes some
time.

Note: if you make any changes to this PR yourself, they will take
precedence over the rebase.

---

[//]: # (dependabot-end)

Bumps [typescript](https://github.com/Microsoft/TypeScript) from 5.0.4
to 5.1.3.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/Microsoft/TypeScript/releases">typescript's
releases</a>.</em></p>
<blockquote>
<h2>TypeScript 5.1.3</h2>
<p>For release notes, check out the <a
href="https://devblogs.microsoft.com/typescript/announcing-typescript-5-1/">release
announcement</a>.</p>
<p>For the complete list of fixed issues, check out the</p>
<ul>
<li><a
href="https://github.com/Microsoft/TypeScript/issues?utf8=%E2%9C%93&amp;q=milestone%3A%22TypeScript+5.1.0%22+is%3Aclosed+">fixed
issues query for Typescript 5.1.0 (Beta)</a>.</li>
<li><a
href="https://github.com/Microsoft/TypeScript/issues?utf8=%E2%9C%93&amp;q=milestone%3A%22TypeScript+5.1.1%22+is%3Aclosed+">fixed
issues query for Typescript 5.1.1 (RC)</a>.</li>
<li><a
href="https://github.com/Microsoft/TypeScript/issues?utf8=%E2%9C%93&amp;q=milestone%3A%22TypeScript+5.1.3%22+is%3Aclosed+">fixed
issues query for Typescript 5.1.3 (Stable)</a>.</li>
</ul>
<p>Downloads are available on:</p>
<ul>
<li><a
href="https://www.nuget.org/packages/Microsoft.TypeScript.MSBuild">NuGet
package</a></li>
</ul>
<h2>TypeScript 5.1 RC</h2>
<p>For release notes, check out the <a
href="https://devblogs.microsoft.com/typescript/announcing-typescript-5-1-rc/">release
announcement</a>.</p>
<p>For the complete list of fixed issues, check out the</p>
<ul>
<li><a
href="https://github.com/Microsoft/TypeScript/issues?utf8=%E2%9C%93&amp;q=milestone%3A%22TypeScript+5.1.0%22+is%3Aclosed+">fixed
issues query for Typescript 5.1.0 (Beta)</a>.</li>
<li><a
href="https://github.com/Microsoft/TypeScript/issues?utf8=%E2%9C%93&amp;q=milestone%3A%22TypeScript+5.1.1%22+is%3Aclosed+">fixed
issues query for Typescript 5.1.1 (RC)</a>.</li>
</ul>
<p>Downloads are available on:</p>
<ul>
<li><a
href="https://www.nuget.org/packages/Microsoft.TypeScript.MSBuild">NuGet
package</a></li>
</ul>
<h2>TypeScript 5.1 Beta</h2>
<p>For release notes, check out the <a
href="https://devblogs.microsoft.com/typescript/announcing-typescript-5-1-beta/">release
announcement</a>.</p>
<p>For the complete list of fixed issues, check out the</p>
<ul>
<li><a
href="https://github.com/Microsoft/TypeScript/issues?utf8=%E2%9C%93&amp;q=is%3Aissue+milestone%3A%22TypeScript+5.1.0%22+is%3Aclosed+">fixed
issues query for Typescript 5.1.0 (Beta)</a>.</li>
</ul>
<p>Downloads are available on:</p>
<ul>
<li><a
href="https://www.nuget.org/packages/Microsoft.TypeScript.MSBuild">NuGet
package</a></li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="7275ded359"><code>7275ded</code></a>
Bump version to 5.1.3 and update LKG.</li>
<li><a
href="1143a21f03"><code>1143a21</code></a>
🤖 Pick PR <a
href="https://redirect.github.com/Microsoft/TypeScript/issues/54454">#54454</a>
(Use <code>replaceAll</code> instead of an inco...) into release-5.1
(#...</li>
<li><a
href="b7d523ecbb"><code>b7d523e</code></a>
🤖 Pick PR <a
href="https://redirect.github.com/Microsoft/TypeScript/issues/54450">#54450</a>
(Resolve tslib re-exports before che...) into release-5.1 (#...</li>
<li><a
href="a360d9fb3a"><code>a360d9f</code></a>
🤖 Pick PR <a
href="https://redirect.github.com/Microsoft/TypeScript/issues/54315">#54315</a>
(add baseline for linked editing) into release-5.1 (<a
href="https://redirect.github.com/Microsoft/TypeScript/issues/54419">#54419</a>)</li>
<li><a
href="c8da9d59fe"><code>c8da9d5</code></a>
🤖 Pick PR <a
href="https://redirect.github.com/Microsoft/TypeScript/issues/54358">#54358</a>
(Don't use text change's `createNewF...) into release-5.1 (#...</li>
<li><a
href="cede745ab3"><code>cede745</code></a>
Cherry-picks 544d432 into release-5.1.</li>
<li><a
href="a38e4f5749"><code>a38e4f5</code></a>
🤖 Pick PR <a
href="https://redirect.github.com/Microsoft/TypeScript/issues/54169">#54169</a>
(Fix creation of composite union typ...) into release-5.1 (#...</li>
<li><a
href="898edb5381"><code>898edb5</code></a>
🤖 Pick PR <a
href="https://redirect.github.com/Microsoft/TypeScript/issues/54208">#54208</a>
(Properly handle <code>typeof this.xxx</code> i...) into release-5.1
(#...</li>
<li><a
href="42e783930e"><code>42e7839</code></a>
🤖 Pick PR <a
href="https://redirect.github.com/Microsoft/TypeScript/issues/54317">#54317</a>
(Resolve re-exports when looking for...) into release-5.1 (#...</li>
<li><a
href="ed924d0585"><code>ed924d0</code></a>
🤖 Pick PR <a
href="https://redirect.github.com/Microsoft/TypeScript/issues/54112">#54112</a>
(Fix <code>isGenericReducibleType</code> to all...) into release-5.1
(#...</li>
<li>Additional commits viewable in <a
href="https://github.com/Microsoft/TypeScript/compare/v5.0.4...v5.1.3">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=typescript&package-manager=npm_and_yarn&previous-version=5.0.4&new-version=5.1.3)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-06-11 21:04:26 -05:00
dependabot[bot]
128b3173a8 chore(deps-dev): Bump typedoc from 0.24.7 to 0.24.8 in /node (#364)
Bumps [typedoc](https://github.com/TypeStrong/TypeDoc) from 0.24.7 to
0.24.8.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/TypeStrong/TypeDoc/releases">typedoc's
releases</a>.</em></p>
<blockquote>
<h2>v0.24.8</h2>
<h3>Features</h3>
<ul>
<li>Added support for TypeScript 5.1, <a
href="https://redirect.github.com/TypeStrong/TypeDoc/issues/2296">#2296</a>.</li>
<li>Added <code>navigation.fullTree</code> to control rendering the full
navigation tree on each page, <a
href="https://redirect.github.com/TypeStrong/TypeDoc/issues/2287">#2287</a>.
This option will likely be replaced in 0.25 with dynamic loading of the
full tree.</li>
<li>TypeDoc's <code>--pretty</code> option now also controls whether
generated HTML contains line breaks, <a
href="https://redirect.github.com/TypeStrong/TypeDoc/issues/2287">#2287</a>.</li>
<li>Optimized icon caching to reduce file size in generated HTML
documentation, <a
href="https://redirect.github.com/TypeStrong/TypeDoc/issues/2287">#2287</a>.</li>
<li>Render property description of &quot;roughly top level&quot; object
types, <a
href="https://redirect.github.com/TypeStrong/TypeDoc/issues/2276">#2276</a>.</li>
<li>Added <code>MarkdownEvent.INCLUDE</code> for plugins, <a
href="https://redirect.github.com/TypeStrong/TypeDoc/issues/2284">#2284</a>.</li>
</ul>
<h3>Bug Fixes</h3>
<ul>
<li>When rendering functions/methods, TypeDoc will now render the
comment summary above the parameters/return type,
and any other block tags in the order they are defined in the comment,
<a
href="https://redirect.github.com/TypeStrong/TypeDoc/issues/2285">#2285</a>.</li>
<li>Comments are no longer removed from classes/interfaces containing
call signatures, <a
href="https://redirect.github.com/TypeStrong/TypeDoc/issues/2290">#2290</a>.</li>
</ul>
<h3>Thanks!</h3>
<ul>
<li><a
href="https://github.com/krisztianb"><code>@​krisztianb</code></a></li>
<li><a href="https://github.com/WikiRik"><code>@​WikiRik</code></a></li>
</ul>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/TypeStrong/typedoc/blob/master/CHANGELOG.md">typedoc's
changelog</a>.</em></p>
<blockquote>
<h2>v0.24.8 (2023-06-04)</h2>
<h3>Features</h3>
<ul>
<li>Added support for TypeScript 5.1, <a
href="https://redirect.github.com/TypeStrong/TypeDoc/issues/2296">#2296</a>.</li>
<li>Added <code>navigation.fullTree</code> to control rendering the full
navigation tree on each page, <a
href="https://redirect.github.com/TypeStrong/TypeDoc/issues/2287">#2287</a>.
This option will likely be replaced in 0.25 with dynamic loading of the
full tree.</li>
<li>TypeDoc's <code>--pretty</code> option now also controls whether
generated HTML contains line breaks, <a
href="https://redirect.github.com/TypeStrong/TypeDoc/issues/2287">#2287</a>.</li>
<li>Optimized icon caching to reduce file size in generated HTML
documentation, <a
href="https://redirect.github.com/TypeStrong/TypeDoc/issues/2287">#2287</a>.</li>
<li>Render property description of &quot;roughly top level&quot; object
types, <a
href="https://redirect.github.com/TypeStrong/TypeDoc/issues/2276">#2276</a>.</li>
<li>Added <code>MarkdownEvent.INCLUDE</code> for plugins, <a
href="https://redirect.github.com/TypeStrong/TypeDoc/issues/2284">#2284</a>.</li>
</ul>
<h3>Bug Fixes</h3>
<ul>
<li>When rendering functions/methods, TypeDoc will now render the
comment summary above the parameters/return type,
and any other block tags in the order they are defined in the comment,
<a
href="https://redirect.github.com/TypeStrong/TypeDoc/issues/2285">#2285</a>.</li>
<li>Comments are no longer removed from classes/interfaces containing
call signatures, <a
href="https://redirect.github.com/TypeStrong/TypeDoc/issues/2290">#2290</a>.</li>
</ul>
<h3>Thanks!</h3>
<ul>
<li><a
href="https://github.com/krisztianb"><code>@​krisztianb</code></a></li>
<li><a href="https://github.com/WikiRik"><code>@​WikiRik</code></a></li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="c1c87c6fda"><code>c1c87c6</code></a>
Update changelog for release</li>
<li><a
href="0b2a8ea78a"><code>0b2a8ea</code></a>
Bump version to 0.24.8</li>
<li><a
href="60c4d533e5"><code>60c4d53</code></a>
Add navigation.fullTree option</li>
<li><a
href="82016b82b5"><code>82016b8</code></a>
Update changelog</li>
<li><a
href="4ad6a31776"><code>4ad6a31</code></a>
Add test for unrelated getter/setter types</li>
<li><a
href="d05a49b088"><code>d05a49b</code></a>
Added support for TypeScript 5.1 (<a
href="https://redirect.github.com/TypeStrong/TypeDoc/issues/2300">#2300</a>)</li>
<li><a
href="6d92e84b8a"><code>6d92e84</code></a>
Render objects one level deep</li>
<li><a
href="c9dee384b0"><code>c9dee38</code></a>
Update comment rendering for functions</li>
<li><a
href="2624c288fa"><code>2624c28</code></a>
Fix call signature handling on classes/interfaces</li>
<li><a
href="5b9ead63d3"><code>5b9ead6</code></a>
Update changelog</li>
<li>Additional commits viewable in <a
href="https://github.com/TypeStrong/TypeDoc/compare/v0.24.7...v0.24.8">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=typedoc&package-manager=npm_and_yarn&previous-version=0.24.7&new-version=0.24.8)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-06-11 21:04:07 -05:00
dependabot[bot]
ef0b6b46ac chore(deps-dev): Bump @types/jest from 29.5.1 to 29.5.2 in /node (#363)
Bumps
[@types/jest](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/jest)
from 29.5.1 to 29.5.2.
<details>
<summary>Commits</summary>
<ul>
<li>See full diff in <a
href="https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/jest">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=@types/jest&package-manager=npm_and_yarn&previous-version=29.5.1&new-version=29.5.2)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-06-11 21:03:47 -05:00
zach
2e5f5ef716 fix(rust): fix lifetime of data returned from Plugin::call (#369) 2023-06-09 12:07:14 -07:00
zach
360df45e1a fix: require modules to have exported, bounded memory when manifest memory.max_pages field is set (#356)
- Requires modules compiled to run with manifests that set `max_memory`
to have an exported memory with lower and upper bounds
- Includes the size of memory exported from modules when calculating
available memory for plugins

## How to compile a module with bounded memory 

You will need to pass `--max-memory=$NUM_BYTES` to wasm-ld. `$NUM_BYTES`
must be a multiple of the page size. Here are some examples for
supported PDK languages:

**C** 
Pass `-Wl,--max-memory=65536` to your C compiler

**Rust**: 
In a `.cargo/config` file:
```toml
[target.wasm32-unknown-unknown]
rustflags = ["-Clink-args=--max-memory=65536"]
 ```
**Haskell**
Add the following to the cabal file entry for your `cabal.project` file:

```
package myproject
  ghc-options:
    -optl -Wl,--max-memory=65536
```
**AssemblyScript**
Pass `--maximumMemory 65536` to the assemblyscropt compiler

**TinyGo**:
Create a `target.json` file:
```json
{
    "inherits": [ "wasm" ],
    "ldflags": [
        "--max-memory=65536",
    ]
}
```
and build using `tinygo -target ./target.json`
2023-06-01 09:37:42 -07:00
dependabot[bot]
3bdf4ef0d0 chore(deps-dev): Bump @types/node from 20.2.3 to 20.2.5 in /node (#358)
Bumps
[@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node)
from 20.2.3 to 20.2.5.
<details>
<summary>Commits</summary>
<ul>
<li>See full diff in <a
href="https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=@types/node&package-manager=npm_and_yarn&previous-version=20.2.3&new-version=20.2.5)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-05-31 11:59:31 -05:00
dependabot[bot]
0517aca413 chore(deps-dev): Bump @types/node from 20.1.4 to 20.2.3 in /node (#353)
Bumps
[@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node)
from 20.1.4 to 20.2.3.
<details>
<summary>Commits</summary>
<ul>
<li>See full diff in <a
href="https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=@types/node&package-manager=npm_and_yarn&previous-version=20.1.4&new-version=20.2.3)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-05-23 21:34:11 -05:00
zach
a6807a44c9 fix(ocaml): update dune-project file (#355)
See
https://github.com/ocaml/opam-repository/pull/23806#discussion_r1201772532
2023-05-23 09:35:32 -07:00
zach
dc6f99d924 cleanup(ocaml): add bounds on extism-manifest dependency (#354) 2023-05-23 09:31:16 -07:00
Benjamin Eckel
62267e874a chore(java): release Java SDK (#352) 2023-05-19 16:29:12 -05:00
Benjamin Eckel
ab0a7c1650 chore(elixir): Bump to 0.4.0 (#350) 2023-05-19 16:01:16 -05:00
Benjamin Eckel
12820aecff fix: ignore already published manifest (#351) 2023-05-19 15:35:35 -05:00
Benjamin Eckel
1db4528490 chore: Bump SDK versions for 0.4.0 release (#349)
Co-authored-by: zach <zach@dylibso.com>
2023-05-19 15:22:58 -05:00
Benjamin Eckel
d0f77dd886 release: Bump runtime to 0.4.0 (#340)
## Breaking Changes

* https://github.com/extism/extism/pull/315

HTTP calls will be disallowed by default now. If you want to enable HTTP
you need to specify the hosts that the plug-in is allowed to communicate
with. If you want to allow all hosts you can set it to `{allowed_hosts:
["*"]}` in the manifest. However, this isn't recommended unless you have
some trust in the plug-in or are controlling the networking by some
other means.

* https://github.com/extism/extism/pull/335

In this PR we are creating an implicit context so people don't need to
know about it if they don't care. In some languages function signatures
have changed to make context an optional argument when creating a
plug-in.
2023-05-19 13:34:35 -05:00
Benjamin Eckel
4016b86135 fix(ruby): fix implicit context (#348) 2023-05-18 15:59:50 -05:00
Benjamin Eckel
6a73b23076 feat(php): Implicit context (#347) 2023-05-18 15:59:17 -05:00
zach
0c70be285d feat: add EXTISM_PROFILE environment variable to configure profiling (#326)
This could also be extended to support other wasmtime-based profiling
methods, for now just `perf` is supported.

Co-authored-by: zach <zach@dylib.so>
2023-05-18 10:39:23 -05:00
zach
c1c84379d7 fix: use UserData::make_copy instead of UserData::new_pointer to preserve is_any field (#346)
Co-authored-by: zach <zach@dylib.so>
2023-05-17 11:41:29 -07:00
zach
0f8954c203 feat!: add ability to create plugins without an existing Context (#335)
EIP: https://github.com/extism/proposals/pull/8

This PR makes minor breaking changes to several SDKs, but not to runtime
C API. The threadsafety updates in the Rust SDK are kind of specific to
Rust, I'm not sure if it makes sense to add the locks to all the other
SDKs at this point. For the most part the `Context` and `Plugin` types
in the SDKs should be safe to use protected by a mutex but they aren't
inherently threadsafe. That kind of locking should probably be done by
the user.

- Runtime 
  - improve thread safety
  - reinstantiates less
- fixes a potential resource exhaustion bug from re-instantiating using
the same store too many times
- Rust SDK
  - adds `Send` and `Sync` implementations for `Context`
  - adds test sharing a context between threads
- adds `Plugin::call_map` to call a plugin and handle the output with
the lock held
  - adds testing sharing an `Arc<Mutex<Plugin>>` between threads
- adds `Plugin::create` and `Plugin::create_from_manifest` to create a
plugin without a `Context`
- Python
  - BREAKING
- changes `Plugin` constructor to take `context` as an optional named
argument, to update use `Plugin(data, context=context)` instead
 - Ruby
   - BREAKING
- changes `Plugin` constructor to take `context` as an optional named
argument, to update use `Plugin.new(data, context=context)` instead
 - Go
   - adds `NewPlugin` and `NewPluginFromManifest` functions
 - Node
   - BREAKING
- changes `Plugin` constructor to take `context` as an optional named
argument, to update use `new Plugin(data, wasi, config, host, context)`
instead of `new Plugin(context, data, wasi, functions, config)` (most
people are probably using `context.plugin` instead of the Plugin
constructor anyway)
 - OCaml
   - BREAKING
- changes `Plugin.create` and `Plugin.of_manifest` to take `context` as
an optional named argument, to update `Plugin.create ~context data` and
`Plugin.of_manifest ~context data` instead
- Haskell
  - adds `createPlugin` and `createPluginFromManifest` functions
 - Elixir
- adds `Plugin.new` to make a plugin without going through
`Context.new_plugin`
 - Java
   - adds new `Plugin` constructors without a `Context` argument
- C++
  - BREAKING
- Updates `Plugin` constructor to take an optional context as the last
argument, instead of requiring it to be the first argument
- Use `Plugin(wasm, wasi, functions, ctx)` instead of `Plugin(ctx, wasm,
wasi, functions)`
 - Zig
- Adds `Plugin.create` and `Plugin.createWithManifest` to create plugins
in their own context.

---------

Co-authored-by: zach <zach@dylib.so>
Co-authored-by: Benjamin Eckel <bhelx@simst.im>
2023-05-17 11:35:16 -07:00
Benjamin Eckel
deb717b0e8 fix(elixir): Fix nif package build and release as 0.3.2 (#345)
Published this fix as 0.3.2: https://github.com/extism/extism/issues/343

going to disconnect this rust project for the time being. If we want to
publish a new elixir client with the new runtime then we must wait until
the runtime hit's crates.io
2023-05-16 16:33:38 -05:00
Benjamin Eckel
bb3902e318 fix(php): $err is not implicitly cast to string (#344)
Co-authored-by: Steve Manuel <steve@dylib.so>
2023-05-15 15:54:01 -05:00
dependabot[bot]
86326117cc chore(deps-dev): Bump @types/node from 20.1.0 to 20.1.4 in /node (#342)
Bumps
[@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node)
from 20.1.0 to 20.1.4.
<details>
<summary>Commits</summary>
<ul>
<li>See full diff in <a
href="https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=@types/node&package-manager=npm_and_yarn&previous-version=20.1.0&new-version=20.1.4)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-05-15 08:39:43 -05:00
zach
a0ec6a3083 fix(rust): use CString for strings passed to to set_log_file (#341) 2023-05-12 09:23:31 -07:00
dependabot[bot]
3e5785e50c chore(deps-dev): Bump @types/node from 18.16.3 to 20.1.0 in /node (#337)
Bumps
[@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node)
from 18.16.3 to 20.1.0.
<details>
<summary>Commits</summary>
<ul>
<li>See full diff in <a
href="https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=@types/node&package-manager=npm_and_yarn&previous-version=18.16.3&new-version=20.1.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-05-08 09:56:58 -05:00
dependabot[bot]
67aa3627fc chore(deps-dev): Bump typedoc from 0.24.6 to 0.24.7 in /node (#338)
Bumps [typedoc](https://github.com/TypeStrong/TypeDoc) from 0.24.6 to
0.24.7.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/TypeStrong/TypeDoc/releases">typedoc's
releases</a>.</em></p>
<blockquote>
<h2>v0.24.7</h2>
<h3>Features</h3>
<ul>
<li>TypeDoc will now allow conversion without any entry points to
support &quot;readme only&quot; packages, <a
href="https://redirect.github.com/TypeStrong/TypeDoc/issues/2264">#2264</a>.</li>
</ul>
<h3>Bug Fixes</h3>
<ul>
<li>Category children are now sorted according to the <code>sort</code>
option, <a
href="https://redirect.github.com/TypeStrong/TypeDoc/issues/2272">#2272</a>.</li>
<li>Inline tags no longer require a space after the tag name to be
parsed as a tag, <a
href="https://redirect.github.com/TypeStrong/TypeDoc/issues/2273">#2273</a>.</li>
<li>Fixed module/namespace links in navigation when viewed in Safari, <a
href="https://redirect.github.com/TypeStrong/TypeDoc/issues/2275">#2275</a>.</li>
</ul>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/TypeStrong/typedoc/blob/master/CHANGELOG.md">typedoc's
changelog</a>.</em></p>
<blockquote>
<h2>v0.24.7 (2023-05-08)</h2>
<h3>Features</h3>
<ul>
<li>TypeDoc will now allow conversion without any entry points to
support &quot;readme only&quot; packages, <a
href="https://redirect.github.com/TypeStrong/TypeDoc/issues/2264">#2264</a>.</li>
</ul>
<h3>Bug Fixes</h3>
<ul>
<li>Category children are now sorted according to the <code>sort</code>
option, <a
href="https://redirect.github.com/TypeStrong/TypeDoc/issues/2272">#2272</a>.</li>
<li>Inline tags no longer require a space after the tag name to be
parsed as a tag, <a
href="https://redirect.github.com/TypeStrong/TypeDoc/issues/2273">#2273</a>.</li>
<li>Fixed module/namespace links in navigation when viewed in Safari, <a
href="https://redirect.github.com/TypeStrong/TypeDoc/issues/2275">#2275</a>.</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="c5d1ec5c7c"><code>c5d1ec5</code></a>
Update changelog for release</li>
<li><a
href="0756981818"><code>0756981</code></a>
Bump version to 0.24.7</li>
<li><a
href="a4028d72ff"><code>a4028d7</code></a>
Update changelog</li>
<li><a
href="56abed5b92"><code>56abed5</code></a>
Fix navigation on Safari, hopefully fixes <a
href="https://redirect.github.com/TypeStrong/TypeDoc/issues/2275">#2275</a></li>
<li><a
href="515e8b7636"><code>515e8b7</code></a>
Fix inline tag parsing</li>
<li><a
href="26df2accb3"><code>26df2ac</code></a>
Support readme only packages</li>
<li><a
href="eb181508c2"><code>eb18150</code></a>
Fix <a
href="https://redirect.github.com/TypeStrong/TypeDoc/issues/2272">#2272</a>
category sort order</li>
<li><a
href="5d38df12de"><code>5d38df1</code></a>
Add a test for <a
href="https://redirect.github.com/TypeStrong/TypeDoc/issues/2270">#2270</a></li>
<li>See full diff in <a
href="https://github.com/TypeStrong/TypeDoc/compare/v0.24.6...v0.24.7">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=typedoc&package-manager=npm_and_yarn&previous-version=0.24.6&new-version=0.24.7)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-05-08 09:56:50 -05:00
Benjamin Eckel
15a74e07fb chore: fix warnings coming from dotnet compiler (#336) 2023-05-05 16:46:41 -05:00
dependabot[bot]
16950cbdda chore(deps-dev): Bump @types/node from 18.16.0 to 18.16.3 in /node (#329)
Bumps
[@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node)
from 18.16.0 to 18.16.3.
<details>
<summary>Commits</summary>
<ul>
<li>See full diff in <a
href="https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=@types/node&package-manager=npm_and_yarn&previous-version=18.16.0&new-version=18.16.3)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-05-01 11:29:54 -05:00
dependabot[bot]
ba7098b52a chore(deps): Update rustler requirement from 0.27.0 to 0.28.0 (#330)
Updates the requirements on
[rustler](https://github.com/rusterlium/rustler) to permit the latest
version.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/rusterlium/rustler/releases">rustler's
releases</a>.</em></p>
<blockquote>
<h2>rustler-0.28.0</h2>
<h3>Added</h3>
<ul>
<li>Support OTP 26 (<a
href="https://redirect.github.com/rusterlium/rustler/issues/526">#526</a>,
thanks <a
href="https://github.com/philss"><code>@​philss</code></a>)</li>
<li>Support tuples in NIF macro (<a
href="https://redirect.github.com/rusterlium/rustler/issues/520">#520</a>,
<a
href="https://redirect.github.com/rusterlium/rustler/issues/527">#527</a>,
thanks <a
href="https://github.com/denumerate"><code>@​denumerate</code></a> and
<a href="https://github.com/philss"><code>@​philss</code></a>)</li>
<li>Supportfor <code>load_data_fun</code> to compute
<code>load_data</code> at runtime (<a
href="https://redirect.github.com/rusterlium/rustler/issues/413">#413</a>,
thanks <a
href="https://github.com/kaaboaye"><code>@​kaaboaye</code></a>)</li>
</ul>
<h3>Changed</h3>
<ul>
<li>Enhanced NIF macro error messages for invalid attributes (<a
href="https://redirect.github.com/rusterlium/rustler/issues/525">#525</a>,
thanks <a
href="https://github.com/philss"><code>@​philss</code></a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/rusterlium/rustler/blob/master/CHANGELOG.md">rustler's
changelog</a>.</em></p>
<blockquote>
<h2>[0.28.0] - 2023-04-24</h2>
<h3>Added</h3>
<ul>
<li>Support OTP 26 (<a
href="https://redirect.github.com/rusterlium/rustler/issues/526">#526</a>,
thanks <a
href="https://github.com/philss"><code>@​philss</code></a>)</li>
<li>Support tuples in NIF macro (<a
href="https://redirect.github.com/rusterlium/rustler/issues/520">#520</a>,
<a
href="https://redirect.github.com/rusterlium/rustler/issues/527">#527</a>,
thanks <a
href="https://github.com/denumerate"><code>@​denumerate</code></a> and
<a href="https://github.com/philss"><code>@​philss</code></a>)</li>
<li>Supportfor <code>load_data_fun</code> to compute
<code>load_data</code> at runtime (<a
href="https://redirect.github.com/rusterlium/rustler/issues/413">#413</a>,
thanks <a
href="https://github.com/kaaboaye"><code>@​kaaboaye</code></a>)</li>
</ul>
<h3>Changed</h3>
<ul>
<li>Enhanced NIF macro error messages for invalid attributes (<a
href="https://redirect.github.com/rusterlium/rustler/issues/525">#525</a>,
thanks <a
href="https://github.com/philss"><code>@​philss</code></a>)</li>
</ul>
<h2>[0.27.0] - 2023-01-17</h2>
<h3>BREAKING</h3>
<ul>
<li><code>MIX_ENV</code> is no longer considered for determining the
build profile. Now, the
profile defaults to <code>:release</code>. Use the <code>:mode</code>
option to pick another
profile explicitly. (<a
href="https://redirect.github.com/rusterlium/rustler/issues/496">#496</a>)</li>
</ul>
<h3>Added</h3>
<ul>
<li><code>ResourceArc::make_binary</code> for safe use of
<code>enif_make_resource_binary</code> (<a
href="https://redirect.github.com/rusterlium/rustler/issues/487">#487</a>)</li>
<li><code>OwnedBinary</code> is now <code>Sync</code> (<a
href="https://redirect.github.com/rusterlium/rustler/issues/493">#493</a>)</li>
<li>Specified MSRV to be 1.56.1.</li>
</ul>
<h3>Fixed</h3>
<ul>
<li>Documentation for <code>load</code> (<a
href="https://redirect.github.com/rusterlium/rustler/issues/501">#501</a>,
thanks <a
href="https://github.com/ishitatsuyuki"><code>@​ishitatsuyuki</code></a>)</li>
</ul>
<h3>Changed</h3>
<ul>
<li>Edition 2021 for the rustler mix template (<a
href="https://redirect.github.com/rusterlium/rustler/issues/512">#512</a>,
thanks <a
href="https://github.com/ayrat555"><code>@​ayrat555</code></a>)</li>
</ul>
<h2>[0.26.0] - 2022-09-02</h2>
<h3>Highlight</h3>
<h4>TaggedEnum</h4>
<p>We added <code>TaggedEnum</code>, which is a generalized enum type
(<a
href="https://redirect.github.com/rusterlium/rustler/issues/440">#440</a>,
thanks to <a
href="https://github.com/SeokminHong"><code>@​SeokminHong</code></a>!).
Example:</p>
<pre lang="rust"><code>#[derive(NifTaggedEnum)]
pub enum TaggedEnum1 {
    Named { x: i32, y: i32 },
    String1(String),
    String2(String),
    Untagged,
}
&lt;/tr&gt;&lt;/table&gt; 
</code></pre>
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="d4e0a7bd2b"><code>d4e0a7b</code></a>
(release) 0.28.0</li>
<li><a
href="7eb6728fd0"><code>7eb6728</code></a>
Merge pull request <a
href="https://redirect.github.com/rusterlium/rustler/issues/532">#532</a>
from evnu/prepare-v0.28.0</li>
<li><a
href="6492af3bc2"><code>6492af3</code></a>
Prepare release 0.28.0</li>
<li><a
href="6420093e63"><code>6420093</code></a>
Merge pull request <a
href="https://redirect.github.com/rusterlium/rustler/issues/531">#531</a>
from evnu/ensure-msrv-1.56.1</li>
<li><a
href="517878953e"><code>5178789</code></a>
Use non-captured identifier in format string</li>
<li><a
href="cb8c1e71e9"><code>cb8c1e7</code></a>
Merge pull request <a
href="https://redirect.github.com/rusterlium/rustler/issues/413">#413</a>
from surferlocal/dynamic-load_data</li>
<li><a
href="f40cfec453"><code>f40cfec</code></a>
Merge branch 'master' into dynamic-load_data</li>
<li><a
href="f1aaa3b6d8"><code>f1aaa3b</code></a>
Fix clippy issues for Rust &gt;= 1.42 (<a
href="https://redirect.github.com/rusterlium/rustler/issues/528">#528</a>)</li>
<li><a
href="51bf30ef2f"><code>51bf30e</code></a>
add windows support</li>
<li><a
href="a101c937ff"><code>a101c93</code></a>
(release) 0.27.0</li>
<li>Additional commits viewable in <a
href="https://github.com/rusterlium/rustler/compare/rustler-0.27.0...rustler-0.28.0">compare
view</a></li>
</ul>
</details>
<br />


Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-05-01 11:29:44 -05:00
dependabot[bot]
3718f21f4a chore(deps): Bump rustler from 0.27.0 to 0.28.0 in /elixir (#331)
Bumps [rustler](https://github.com/rusterlium/rustler) from 0.27.0 to
0.28.0.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/rusterlium/rustler/releases">rustler's
releases</a>.</em></p>
<blockquote>
<h2>rustler-0.28.0</h2>
<h3>Added</h3>
<ul>
<li>Support OTP 26 (<a
href="https://redirect.github.com/rusterlium/rustler/issues/526">#526</a>,
thanks <a
href="https://github.com/philss"><code>@​philss</code></a>)</li>
<li>Support tuples in NIF macro (<a
href="https://redirect.github.com/rusterlium/rustler/issues/520">#520</a>,
<a
href="https://redirect.github.com/rusterlium/rustler/issues/527">#527</a>,
thanks <a
href="https://github.com/denumerate"><code>@​denumerate</code></a> and
<a href="https://github.com/philss"><code>@​philss</code></a>)</li>
<li>Supportfor <code>load_data_fun</code> to compute
<code>load_data</code> at runtime (<a
href="https://redirect.github.com/rusterlium/rustler/issues/413">#413</a>,
thanks <a
href="https://github.com/kaaboaye"><code>@​kaaboaye</code></a>)</li>
</ul>
<h3>Changed</h3>
<ul>
<li>Enhanced NIF macro error messages for invalid attributes (<a
href="https://redirect.github.com/rusterlium/rustler/issues/525">#525</a>,
thanks <a
href="https://github.com/philss"><code>@​philss</code></a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/rusterlium/rustler/blob/master/CHANGELOG.md">rustler's
changelog</a>.</em></p>
<blockquote>
<h2>[0.28.0] - 2023-04-24</h2>
<h3>Added</h3>
<ul>
<li>Support OTP 26 (<a
href="https://redirect.github.com/rusterlium/rustler/issues/526">#526</a>,
thanks <a
href="https://github.com/philss"><code>@​philss</code></a>)</li>
<li>Support tuples in NIF macro (<a
href="https://redirect.github.com/rusterlium/rustler/issues/520">#520</a>,
<a
href="https://redirect.github.com/rusterlium/rustler/issues/527">#527</a>,
thanks <a
href="https://github.com/denumerate"><code>@​denumerate</code></a> and
<a href="https://github.com/philss"><code>@​philss</code></a>)</li>
<li>Supportfor <code>load_data_fun</code> to compute
<code>load_data</code> at runtime (<a
href="https://redirect.github.com/rusterlium/rustler/issues/413">#413</a>,
thanks <a
href="https://github.com/kaaboaye"><code>@​kaaboaye</code></a>)</li>
</ul>
<h3>Changed</h3>
<ul>
<li>Enhanced NIF macro error messages for invalid attributes (<a
href="https://redirect.github.com/rusterlium/rustler/issues/525">#525</a>,
thanks <a
href="https://github.com/philss"><code>@​philss</code></a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="d4e0a7bd2b"><code>d4e0a7b</code></a>
(release) 0.28.0</li>
<li><a
href="7eb6728fd0"><code>7eb6728</code></a>
Merge pull request <a
href="https://redirect.github.com/rusterlium/rustler/issues/532">#532</a>
from evnu/prepare-v0.28.0</li>
<li><a
href="6492af3bc2"><code>6492af3</code></a>
Prepare release 0.28.0</li>
<li><a
href="6420093e63"><code>6420093</code></a>
Merge pull request <a
href="https://redirect.github.com/rusterlium/rustler/issues/531">#531</a>
from evnu/ensure-msrv-1.56.1</li>
<li><a
href="517878953e"><code>5178789</code></a>
Use non-captured identifier in format string</li>
<li><a
href="cb8c1e71e9"><code>cb8c1e7</code></a>
Merge pull request <a
href="https://redirect.github.com/rusterlium/rustler/issues/413">#413</a>
from surferlocal/dynamic-load_data</li>
<li><a
href="f40cfec453"><code>f40cfec</code></a>
Merge branch 'master' into dynamic-load_data</li>
<li><a
href="f1aaa3b6d8"><code>f1aaa3b</code></a>
Fix clippy issues for Rust &gt;= 1.42 (<a
href="https://redirect.github.com/rusterlium/rustler/issues/528">#528</a>)</li>
<li><a
href="51bf30ef2f"><code>51bf30e</code></a>
add windows support</li>
<li><a
href="a101c937ff"><code>a101c93</code></a>
(release) 0.27.0</li>
<li>Additional commits viewable in <a
href="https://github.com/rusterlium/rustler/compare/rustler-0.27.0...rustler-0.28.0">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=rustler&package-manager=hex&previous-version=0.27.0&new-version=0.28.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-05-01 11:29:33 -05:00
Benjamin Eckel
4e5108bc69 chore: publish dotnet host 0.5.0 (#333) 2023-05-01 11:08:07 -05:00
Benjamin Eckel
9d758e7fd3 chore: publish browser host (#332)
Publishes the latest changes, including #306
2023-05-01 10:39:57 -05:00
zach
48699a0126 chore: update to wasmtime 8.0.0 (#323) 2023-04-27 11:42:14 -07:00
dependabot[bot]
32e5ab161c chore(deps-dev): Bump typedoc from 0.24.4 to 0.24.6 in /node (#324)
Bumps [typedoc](https://github.com/TypeStrong/TypeDoc) from 0.24.4 to
0.24.6.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/TypeStrong/TypeDoc/releases">typedoc's
releases</a>.</em></p>
<blockquote>
<h2>v0.24.6</h2>
<h3>Features</h3>
<ul>
<li>Improved error messaging if a provided entry point could not be
converted into a documented module reflection, <a
href="https://redirect.github.com/TypeStrong/TypeDoc/issues/2242">#2242</a>.</li>
<li>API: Added support for <code>g</code>, <code>circle</code>,
<code>ellipse</code>, <code>polygon</code>, and <code>polyline</code>
svg elements, <a
href="https://redirect.github.com/TypeStrong/TypeDoc/issues/2259">#2259</a>.</li>
<li>Extended <code>jsDocCompatibility</code> option with
<code>inheritDocTag</code> to ignore fully lowercase
<code>inheritDoc</code> tags and
<code>ignoreUnescapedBraces</code> to disable warnings about unescaped
<code>{</code> and <code>}</code> characters in comments.</li>
</ul>
<h3>Bug Fixes</h3>
<ul>
<li><code>--useTsLinkResolution</code> is no longer ignored within block
tags, <a
href="https://redirect.github.com/TypeStrong/TypeDoc/issues/2260">#2260</a>.</li>
<li>The current namespace will also be expanded in the navigation on
page load, <a
href="https://redirect.github.com/TypeStrong/TypeDoc/issues/2260">#2260</a>.</li>
<li>Fixed flicker of navigation pane when reloading a page caused by
updating expansion state after the page was loaded.</li>
<li>Fixed an infinite loop if more than one entry point was provided,
and all entry points were the same.</li>
</ul>
<h3>Thanks!</h3>
<ul>
<li><a
href="https://github.com/FlippieCoetser"><code>@​FlippieCoetser</code></a></li>
</ul>
<h2>v0.24.5</h2>
<h3>Features</h3>
<ul>
<li>Categories and groups can now be shown in the navigation, added
<code>--navigation.includeCategories</code>
and <code>--navigation.includeGroups</code> to control this behavior.
The <code>--categorizeByGroup</code> option also
effects this behavior. If <code>categorizeByGroup</code> is set (the
default) and <code>navigation.includeGroups</code> is
<em>not</em> set, the value of <code>navigation.includeCategories</code>
will be effectively ignored since categories
will be created only within groups, <a
href="https://redirect.github.com/TypeStrong/TypeDoc/issues/1532">#1532</a>.</li>
<li>Added support for discovering a &quot;module&quot; comment on global
files, <a
href="https://redirect.github.com/TypeStrong/TypeDoc/issues/2165">#2165</a>.</li>
<li>Added copy code to clipboard button, <a
href="https://redirect.github.com/TypeStrong/TypeDoc/issues/2153">#2153</a>.</li>
<li>Function <code>@returns</code> blocks will now be rendered with the
return type, <a
href="https://redirect.github.com/TypeStrong/TypeDoc/issues/2180">#2180</a>.</li>
<li>Added <code>--groupOrder</code> option to specify the sort order of
groups, <a
href="https://redirect.github.com/TypeStrong/TypeDoc/issues/2251">#2251</a>.</li>
</ul>
<h3>Bug Fixes</h3>
<ul>
<li>Type parameter constraints now respect the
<code>--hideParameterTypesInTitle</code> option, <a
href="https://redirect.github.com/TypeStrong/TypeDoc/issues/2226">#2226</a>.</li>
<li>Even more contrast fixes, <a
href="https://redirect.github.com/TypeStrong/TypeDoc/issues/2248">#2248</a>.</li>
<li>Fix semantic highlighting for predicate type's parameter references,
<a
href="https://redirect.github.com/TypeStrong/TypeDoc/issues/2249">#2249</a>.</li>
<li>Fixed broken links to heading titles.</li>
<li>Fixed inconsistent styling between type parameter lists and
parameter lists.</li>
<li>TypeDoc will now warn if more than one <code>@returns</code> block
is is present in a function, and ignore the duplicate blocks as
specified by TSDoc.</li>
</ul>
<h3>Thanks!</h3>
<ul>
<li><a
href="https://github.com/FlippieCoetser"><code>@​FlippieCoetser</code></a></li>
</ul>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/TypeStrong/typedoc/blob/master/CHANGELOG.md">typedoc's
changelog</a>.</em></p>
<blockquote>
<h2>v0.24.6 (2023-04-24)</h2>
<h3>Features</h3>
<ul>
<li>Improved error messaging if a provided entry point could not be
converted into a documented module reflection, <a
href="https://redirect.github.com/TypeStrong/TypeDoc/issues/2242">#2242</a>.</li>
<li>API: Added support for <code>g</code>, <code>circle</code>,
<code>ellipse</code>, <code>polygon</code>, and <code>polyline</code>
svg elements, <a
href="https://redirect.github.com/TypeStrong/TypeDoc/issues/2259">#2259</a>.</li>
<li>Extended <code>jsDocCompatibility</code> option with
<code>inheritDocTag</code> to ignore fully lowercase
<code>inheritDoc</code> tags and
<code>ignoreUnescapedBraces</code> to disable warnings about unescaped
<code>{</code> and <code>}</code> characters in comments.</li>
</ul>
<h3>Bug Fixes</h3>
<ul>
<li><code>--useTsLinkResolution</code> is no longer ignored within block
tags, <a
href="https://redirect.github.com/TypeStrong/TypeDoc/issues/2260">#2260</a>.</li>
<li>The current namespace will also be expanded in the navigation on
page load, <a
href="https://redirect.github.com/TypeStrong/TypeDoc/issues/2260">#2260</a>.</li>
<li>Fixed flicker of navigation pane when reloading a page caused by
updating expansion state after the page was loaded.</li>
<li>Fixed an infinite loop if more than one entry point was provided,
and all entry points were the same.</li>
</ul>
<h3>Thanks!</h3>
<ul>
<li><a
href="https://github.com/FlippieCoetser"><code>@​FlippieCoetser</code></a></li>
</ul>
<h2>v0.24.5 (2023-04-22)</h2>
<h3>Features</h3>
<ul>
<li>Categories and groups can now be shown in the navigation, added
<code>--navigation.includeCategories</code>
and <code>--navigation.includeGroups</code> to control this behavior.
The <code>--categorizeByGroup</code> option also
effects this behavior. If <code>categorizeByGroup</code> is set (the
default) and <code>navigation.includeGroups</code> is
<em>not</em> set, the value of <code>navigation.includeCategories</code>
will be effectively ignored since categories
will be created only within groups, <a
href="https://redirect.github.com/TypeStrong/TypeDoc/issues/1532">#1532</a>.</li>
<li>Added support for discovering a &quot;module&quot; comment on global
files, <a
href="https://redirect.github.com/TypeStrong/TypeDoc/issues/2165">#2165</a>.</li>
<li>Added copy code to clipboard button, <a
href="https://redirect.github.com/TypeStrong/TypeDoc/issues/2153">#2153</a>.</li>
<li>Function <code>@returns</code> blocks will now be rendered with the
return type, <a
href="https://redirect.github.com/TypeStrong/TypeDoc/issues/2180">#2180</a>.</li>
<li>Added <code>--groupOrder</code> option to specify the sort order of
groups, <a
href="https://redirect.github.com/TypeStrong/TypeDoc/issues/2251">#2251</a>.</li>
</ul>
<h3>Bug Fixes</h3>
<ul>
<li>Type parameter constraints now respect the
<code>--hideParameterTypesInTitle</code> option, <a
href="https://redirect.github.com/TypeStrong/TypeDoc/issues/2226">#2226</a>.</li>
<li>Even more contrast fixes, <a
href="https://redirect.github.com/TypeStrong/TypeDoc/issues/2248">#2248</a>.</li>
<li>Fix semantic highlighting for predicate type's parameter references,
<a
href="https://redirect.github.com/TypeStrong/TypeDoc/issues/2249">#2249</a>.</li>
<li>Fixed broken links to heading titles.</li>
<li>Fixed inconsistent styling between type parameter lists and
parameter lists.</li>
<li>TypeDoc will now warn if more than one <code>@returns</code> block
is is present in a function, and ignore the duplicate blocks as
specified by TSDoc.</li>
</ul>
<h3>Thanks!</h3>
<ul>
<li><a
href="https://github.com/FlippieCoetser"><code>@​FlippieCoetser</code></a></li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="af63d9e4e1"><code>af63d9e</code></a>
Update changelog for release</li>
<li><a
href="50f89680be"><code>50f8968</code></a>
Bump version to 0.24.6</li>
<li><a
href="776f7a700b"><code>776f7a7</code></a>
Fix useTsLinkResolution in block tags</li>
<li><a
href="08b8348541"><code>08b8348</code></a>
Didn't mean to commit that</li>
<li><a
href="e5a647745a"><code>e5a6477</code></a>
Fix tests</li>
<li><a
href="afb61faf07"><code>afb61fa</code></a>
Extend jsDocCompatibility with inheritDoc + brace opts</li>
<li><a
href="1e96a2db0e"><code>1e96a2d</code></a>
Improve error messaging for missing entry points</li>
<li><a
href="4970a4b23c"><code>4970a4b</code></a>
Suport g, circle, ellipse, polygon, polyline svg elements (<a
href="https://redirect.github.com/TypeStrong/TypeDoc/issues/2259">#2259</a>)</li>
<li><a
href="b49506c726"><code>b49506c</code></a>
Fix broken links in changelog</li>
<li><a
href="eeaaf0a5d0"><code>eeaaf0a</code></a>
Update changelog for release</li>
<li>Additional commits viewable in <a
href="https://github.com/TypeStrong/TypeDoc/compare/v0.24.4...v0.24.6">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=typedoc&package-manager=npm_and_yarn&previous-version=0.24.4&new-version=0.24.6)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-04-27 12:45:36 -05:00
dependabot[bot]
9e57369bbb chore(deps-dev): Bump @types/jest from 29.5.0 to 29.5.1 in /node (#317)
Bumps
[@types/jest](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/jest)
from 29.5.0 to 29.5.1.
<details>
<summary>Commits</summary>
<ul>
<li>See full diff in <a
href="https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/jest">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=@types/jest&package-manager=npm_and_yarn&previous-version=29.5.0&new-version=29.5.1)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-04-25 16:16:16 -05:00
dependabot[bot]
26424a1581 chore(deps-dev): Bump @types/node from 18.15.11 to 18.16.0 in /node (#318)
Bumps
[@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node)
from 18.15.11 to 18.16.0.
<details>
<summary>Commits</summary>
<ul>
<li>See full diff in <a
href="https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=@types/node&package-manager=npm_and_yarn&previous-version=18.15.11&new-version=18.16.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-04-25 16:16:06 -05:00
dependabot[bot]
039196b8ac chore(deps-dev): Bump prettier from 2.8.7 to 2.8.8 in /node (#319)
Bumps [prettier](https://github.com/prettier/prettier) from 2.8.7 to
2.8.8.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/prettier/prettier/releases">prettier's
releases</a>.</em></p>
<blockquote>
<h2>2.8.8</h2>
<p>This version is a republished version of v2.8.7.
A bad version was accidentally published and <a
href="https://redirect.github.com/npm/cli/issues/1686">it can't be
unpublished</a>, apologies for the churn.</p>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/prettier/prettier/blob/main/CHANGELOG.md">prettier's
changelog</a>.</em></p>
<blockquote>
<h1>2.8.8</h1>
<p>This version is a republished version of v2.8.7.
A bad version was accidentally published and <a
href="https://redirect.github.com/npm/cli/issues/1686">it can't be
unpublished</a>, apologies for the churn.</p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="1b7fad5255"><code>1b7fad5</code></a>
Release 2.8.8</li>
<li>See full diff in <a
href="https://github.com/prettier/prettier/compare/2.8.7...2.8.8">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=prettier&package-manager=npm_and_yarn&previous-version=2.8.7&new-version=2.8.8)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-04-25 16:15:56 -05:00
zach
6bec3f8d45 feat: add support for host functions to browser runtime (#306)
- Adds ability to define host functions when creating ExtismPlugins in
the browser runtime
- The API is a little simpler than the Rust runtime
- Functions don't handle userdata, userdata should be captured by the
function declaration
2023-04-25 08:42:50 -07:00
zach
b2e0884442 feat: automatically call __wasm_call_ctors when available and not calling _start (#311) 2023-04-24 14:27:28 -07:00
zach
c22e97a82b fix!: disallow http requests by default (#315)
- Makes it so requests to a host that isn't specified by `allowed_hosts`
will fail
- To allow requests to any URL you can set `{allowed_hosts: ["*"]}`
2023-04-24 10:40:38 -07:00
dependabot[bot]
0c51e26820 chore(deps-dev): Bump typedoc from 0.24.1 to 0.24.4 in /node (#314) 2023-04-17 19:13:11 -06:00
dependabot[bot]
83365e72b9 chore(deps-dev): Bump ts-jest from 29.0.5 to 29.1.0 in /node (#313) 2023-04-17 19:12:42 -06:00
Doğu Us
4c06ef14c0 fix(zig-sdk): Fix build (#310)
Fixes breaking build system changes introduced in ziglang/zig#15245
2023-04-14 16:05:03 -07:00
Muhammad Azeez
670f364184 feat: Add Host Functions support for .NET SDK (#239)
- [x] Write p/invoke wrappers for new types/functions
   - [x] ExtismValType
   - [x] ExtismFunction
   - [x] ExtismCurrentPlugin
   - [x] ExtismValUnion
   - [x] ExtismVal
   - [x] ExtismFunctionType
   - [x] extism_current_plugin_memory
   - [x] extism_current_plugin_memory_alloc
   - [x] extism_current_plugin_memory_length
   - [x] extism_current_plugin_memory_free
   - [x] extism_function_new
   - [x]  extism_function_free
- [x] Write higher level code that allows user to register a function
- [x] Expand the sample code and tests to use host functions
2023-04-11 13:20:07 -05:00
dependabot[bot]
a4093e229a chore(deps-dev): Bump typescript from 4.9.5 to 5.0.4 in /node (#307)
Bumps [typescript](https://github.com/Microsoft/TypeScript) from 4.9.5
to 5.0.4.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/Microsoft/TypeScript/releases">typescript's
releases</a>.</em></p>
<blockquote>
<h2>TypeScript 5.0.4</h2>
<p>For release notes, check out the <a
href="https://devblogs.microsoft.com/typescript/announcing-typescript-5-0/">release
announcement</a>.</p>
<p>For the complete list of fixed issues, check out the</p>
<ul>
<li><a
href="https://github.com/Microsoft/TypeScript/issues?utf8=%E2%9C%93&amp;q=milestone%3A%22TypeScript+5.0.0%22+is%3Aclosed+">fixed
issues query for Typescript v5.0.0 (Beta)</a>.</li>
<li><a
href="https://github.com/Microsoft/TypeScript/issues?utf8=%E2%9C%93&amp;q=milestone%3A%22TypeScript+5.0.1%22+is%3Aclosed+">fixed
issues query for Typescript v5.0.1 (RC)</a>.</li>
<li><a
href="https://github.com/Microsoft/TypeScript/issues?utf8=%E2%9C%93&amp;q=milestone%3A%22TypeScript+5.0.2%22+is%3Aclosed+">fixed
issues query for Typescript v5.0.2 (Stable)</a>.</li>
<li><a
href="https://github.com/Microsoft/TypeScript/issues?utf8=%E2%9C%93&amp;q=milestone%3A%22TypeScript+5.0.3%22+is%3Aclosed+">fixed
issues query for Typescript v5.0.3 (Stable)</a>.</li>
<li><a
href="https://github.com/Microsoft/TypeScript/issues?utf8=%E2%9C%93&amp;q=milestone%3A%22TypeScript+5.0.4%22+is%3Aclosed+">fixed
issues query for Typescript v5.0.4 (Stable)</a>.</li>
</ul>
<p>Downloads are available on:</p>
<ul>
<li><a href="https://www.npmjs.com/package/typescript">npm</a></li>
<li><a
href="https://www.nuget.org/packages/Microsoft.TypeScript.MSBuild">NuGet
package</a></li>
</ul>
<h2>TypeScript 5.0.3</h2>
<p>For release notes, check out the <a
href="https://devblogs.microsoft.com/typescript/announcing-typescript-5-0/">release
announcement</a>.</p>
<p>For the complete list of fixed issues, check out the</p>
<ul>
<li><a
href="https://github.com/Microsoft/TypeScript/issues?utf8=%E2%9C%93&amp;q=milestone%3A%22TypeScript+5.0.0%22+is%3Aclosed+">fixed
issues query for Typescript v5.0.0 (Beta)</a>.</li>
<li><a
href="https://github.com/Microsoft/TypeScript/issues?utf8=%E2%9C%93&amp;q=milestone%3A%22TypeScript+5.0.1%22+is%3Aclosed+">fixed
issues query for Typescript v5.0.1 (RC)</a>.</li>
<li><a
href="https://github.com/Microsoft/TypeScript/issues?utf8=%E2%9C%93&amp;q=milestone%3A%22TypeScript+5.0.2%22+is%3Aclosed+">fixed
issues query for Typescript v5.0.2 (Stable)</a>.</li>
<li><a
href="https://github.com/Microsoft/TypeScript/issues?utf8=%E2%9C%93&amp;q=milestone%3A%22TypeScript+5.0.3%22+is%3Aclosed+">fixed
issues query for Typescript v5.0.3 (Stable)</a>.</li>
</ul>
<p>Downloads are available on:</p>
<ul>
<li><a href="https://www.npmjs.com/package/typescript">npm</a></li>
<li><a
href="https://www.nuget.org/packages/Microsoft.TypeScript.MSBuild">NuGet
package</a></li>
</ul>
<h2>TypeScript 5.0</h2>
<p>For release notes, check out the <a
href="https://devblogs.microsoft.com/typescript/announcing-typescript-5-0/">release
announcement</a>.</p>
<p>For the complete list of fixed issues, check out the</p>
<ul>
<li><a
href="https://github.com/Microsoft/TypeScript/issues?utf8=%E2%9C%93&amp;q=is%3Aissue+milestone%3A%22TypeScript+5.0.0%22+is%3Aclosed+">fixed
issues query for Typescript v5.0.0 (Beta)</a>.</li>
<li><a
href="https://github.com/Microsoft/TypeScript/issues?utf8=%E2%9C%93&amp;q=is%3Aissue+milestone%3A%22TypeScript+5.0.1%22+is%3Aclosed+">fixed
issues query for Typescript v5.0.1 (RC)</a>.</li>
<li><a
href="https://github.com/Microsoft/TypeScript/issues?utf8=%E2%9C%93&amp;q=is%3Aissue+milestone%3A%22TypeScript+5.0.2%22+is%3Aclosed+">fixed
issues query for Typescript v5.0.2 (Stable)</a>.</li>
</ul>
<p>Downloads are available on:</p>
<ul>
<li><a href="https://www.npmjs.com/package/typescript">npm</a></li>
<li><a
href="https://www.nuget.org/packages/Microsoft.TypeScript.MSBuild">NuGet
package</a></li>
</ul>
<h2>TypeScript 5.0 RC</h2>
<p>For release notes, check out the <a
href="https://devblogs.microsoft.com/typescript/announcing-typescript-5-0-rc/">release
announcement</a>.</p>
<h2>TypeScript 5.0 Beta</h2>
<p>For release notes, check out the <a
href="https://devblogs.microsoft.com/typescript/announcing-typescript-5-0-beta/">release
announcement</a>.</p>
<p>For the complete list of fixed issues, check out the</p>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="3b45f4db12"><code>3b45f4d</code></a>
Bump version to 5.0.4 and LKG</li>
<li><a
href="dc7e5a738a"><code>dc7e5a7</code></a>
🤖 Pick PR <a
href="https://redirect.github.com/Microsoft/TypeScript/issues/53599">#53599</a>
(Ignore <code>allowImportingTsExtensions</code>...) into release-5.0
(#...</li>
<li><a
href="233b4b0540"><code>233b4b0</code></a>
🤖 Pick PR <a
href="https://redirect.github.com/Microsoft/TypeScript/issues/53611">#53611</a>
(Remove error on redundant isolatedM...) into release-5.0 (#...</li>
<li><a
href="365cb5815a"><code>365cb58</code></a>
🤖 Pick PR <a
href="https://redirect.github.com/Microsoft/TypeScript/issues/53613">#53613</a>
(Fix Go To Source Definition in `--m...) into release-5.0 (#...</li>
<li><a
href="97dac8a261"><code>97dac8a</code></a>
🤖 Pick PR <a
href="https://redirect.github.com/Microsoft/TypeScript/issues/53665">#53665</a>
(Fix crash when private id in array ...) into release-5.0 (#...</li>
<li><a
href="b2d5d9b13f"><code>b2d5d9b</code></a>
🤖 Pick PR <a
href="https://redirect.github.com/Microsoft/TypeScript/issues/53666">#53666</a>
(Disable JSX recovery hack when in u...) into release-5.0 (#...</li>
<li><a
href="0e198c2c1d"><code>0e198c2</code></a>
Bump version to 5.0.3 and LKG</li>
<li><a
href="111df34f41"><code>111df34</code></a>
🤖 Pick PR <a
href="https://redirect.github.com/Microsoft/TypeScript/issues/53207">#53207</a>
(Fixed symbol declarations for gener...) into release-5.0 (#...</li>
<li><a
href="1e70bb8dc4"><code>1e70bb8</code></a>
🤖 Pick PR <a
href="https://redirect.github.com/Microsoft/TypeScript/issues/53481">#53481</a>
(Retry string completions from the i...) into release-5.0 (#...</li>
<li><a
href="7e093f072b"><code>7e093f0</code></a>
🤖 Pick PR <a
href="https://redirect.github.com/Microsoft/TypeScript/issues/53351">#53351</a>
(Fix subtype reduction involving typ...) into release-5.0 (#...</li>
<li>Additional commits viewable in <a
href="https://github.com/Microsoft/TypeScript/compare/v4.9.5...v5.0.4">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=typescript&package-manager=npm_and_yarn&previous-version=4.9.5&new-version=5.0.4)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-04-11 10:18:53 -05:00
dependabot[bot]
74ba0cdf0d chore(deps-dev): Bump @types/jest from 29.4.0 to 29.5.0 in /node (#288)
Bumps
[@types/jest](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/jest)
from 29.4.0 to 29.5.0.
<details>
<summary>Commits</summary>
<ul>
<li>See full diff in <a
href="https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/jest">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=@types/jest&package-manager=npm_and_yarn&previous-version=29.4.0&new-version=29.5.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-04-10 17:53:21 -05:00
dependabot[bot]
82fae7cf29 chore(deps-dev): Bump prettier from 2.8.4 to 2.8.7 in /node (#293)
Bumps [prettier](https://github.com/prettier/prettier) from 2.8.4 to
2.8.7.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/prettier/prettier/releases">prettier's
releases</a>.</em></p>
<blockquote>
<h2>2.8.7</h2>
<ul>
<li>Allow multiple decorators on same getter/setter</li>
</ul>
<p>🔗 <a
href="https://github.com/prettier/prettier/blob/main/CHANGELOG.md#287">Changelog</a></p>
<h2>2.8.6</h2>
<ul>
<li>Allow decorators on private members and class expressions</li>
</ul>
<p>🔗 <a
href="https://github.com/prettier/prettier/blob/main/CHANGELOG.md#286">Changelog</a></p>
<h2>2.8.5</h2>
<ul>
<li>Support TypeScript 5.0</li>
</ul>
<p>🔗 <a
href="https://github.com/prettier/prettier/blob/main/CHANGELOG.md#285">Changelog</a></p>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/prettier/prettier/blob/main/CHANGELOG.md">prettier's
changelog</a>.</em></p>
<blockquote>
<h1>2.8.7</h1>
<p><a
href="https://github.com/prettier/prettier/compare/2.8.6...2.8.7">diff</a></p>
<h4>Allow multiple decorators on same getter/setter (<a
href="https://redirect.github.com/prettier/prettier/pull/14584">#14584</a>
by <a href="https://github.com/fisker"><code>@​fisker</code></a>)</h4>
<!-- raw HTML omitted -->
<pre lang="ts"><code>// Input
class A {
  @decorator()
  get foo () {}
<p><a href="https://github.com/decorator"><code>@​decorator</code></a>()
set foo (value) {}
}</p>
<p>// Prettier 2.8.6
SyntaxError: Decorators cannot be applied to multiple get/set accessors
of the same name. (5:3)
3 |   get foo () {}
4 |<br />
&gt; 5 | <a
href="https://github.com/decorator"><code>@​decorator</code></a>()
|   ^^^^^^^^^^^^
6 |   set foo (value) {}
7 | }</p>
<p>// Prettier 2.8.7
class A {
<a href="https://github.com/decorator"><code>@​decorator</code></a>()
get foo() {}</p>
<p><a href="https://github.com/decorator"><code>@​decorator</code></a>()
set foo(value) {}
}
</code></pre></p>
<h1>2.8.6</h1>
<p><a
href="https://github.com/prettier/prettier/compare/2.8.5...2.8.6">diff</a></p>
<h4>Allow decorators on private members and class expressions (<a
href="https://redirect.github.com/prettier/prettier/pull/14548">#14548</a>
by <a href="https://github.com/fisker"><code>@​fisker</code></a>)</h4>
<!-- raw HTML omitted -->
<pre lang="ts"><code>// Input
class A {
  @decorator()
  #privateMethod () {}
}
<p>&lt;/tr&gt;&lt;/table&gt;
</code></pre></p>
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="543a9d71a7"><code>543a9d7</code></a>
Release 2.8.7</li>
<li><a
href="f9fae7f34c"><code>f9fae7f</code></a>
Allow multiple decorators on same getter/setter (<a
href="https://redirect.github.com/prettier/prettier/issues/14584">#14584</a>)</li>
<li><a
href="10fe1ed623"><code>10fe1ed</code></a>
Release 2.8.6</li>
<li><a
href="44aef0b1ba"><code>44aef0b</code></a>
Allow decorator on private members and class expressions (<a
href="https://redirect.github.com/prettier/prettier/issues/14548">#14548</a>)</li>
<li><a
href="ddf3b43c33"><code>ddf3b43</code></a>
Clean changelog</li>
<li><a
href="71ba29f22b"><code>71ba29f</code></a>
Git blame ignore 2.8.5</li>
<li><a
href="c1808e86a3"><code>c1808e8</code></a>
Bump Prettier dependency to 2.8.5</li>
<li><a
href="0a79535916"><code>0a79535</code></a>
Release 2.8.5</li>
<li><a
href="019ebe5207"><code>019ebe5</code></a>
Support TypeScript 5 (backport <a
href="https://redirect.github.com/prettier/prettier/issues/14391">#14391</a>
and <a
href="https://redirect.github.com/prettier/prettier/issues/13819">#13819</a>)
(<a
href="https://redirect.github.com/prettier/prettier/issues/14512">#14512</a>)</li>
<li><a
href="e7b383b570"><code>e7b383b</code></a>
Support <code>max_line_length=off</code> when parsing
<code>.editorconfig</code> (<a
href="https://redirect.github.com/prettier/prettier/issues/14516">#14516</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/prettier/prettier/compare/2.8.4...2.8.7">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=prettier&package-manager=npm_and_yarn&previous-version=2.8.4&new-version=2.8.7)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-04-10 17:53:13 -05:00
dependabot[bot]
1f9c469e31 chore(deps-dev): Bump @types/node from 18.15.0 to 18.15.11 in /node (#304)
Bumps
[@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node)
from 18.15.0 to 18.15.11.
<details>
<summary>Commits</summary>
<ul>
<li>See full diff in <a
href="https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=@types/node&package-manager=npm_and_yarn&previous-version=18.15.0&new-version=18.15.11)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-04-10 17:53:04 -05:00
dependabot[bot]
415f423147 chore(deps-dev): Bump ex_doc from 0.29.2 to 0.29.4 in /elixir (#302)
Bumps [ex_doc](https://github.com/elixir-lang/ex_doc) from 0.29.2 to
0.29.4.
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/elixir-lang/ex_doc/blob/main/CHANGELOG.md">ex_doc's
changelog</a>.</em></p>
<blockquote>
<h2>v0.29.4 (2023-03-29)</h2>
<ul>
<li>Bug fixes
<ul>
<li>Fix sidebar element with no children taking additional padding</li>
<li>Fix elements being rendered too thick on macOS</li>
<li>Fix rendering of HTML elements inside tooltips</li>
</ul>
</li>
</ul>
<h2>v0.29.3 (2023-03-17)</h2>
<ul>
<li>
<p>Enhancements</p>
<ul>
<li>Propagate <code>:since</code> metadata from modules</li>
<li>Add support for MFAs and maps in
<code>before_closing_body_tag</code> and
<code>before_closing_head_tag</code></li>
</ul>
</li>
<li>
<p>Bug fixes</p>
<ul>
<li>Improve font consistency across different OSes</li>
<li>Keep language class on livebook output code block</li>
<li>Ensure switches have higher precedence than config</li>
</ul>
</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="04568aa759"><code>04568aa</code></a>
Release v0.29.4</li>
<li><a
href="8e86d630ea"><code>8e86d63</code></a>
Layout on apple-os and sidebar</li>
<li><a
href="5ec6735d70"><code>5ec6735</code></a>
Display tooltip content as html (<a
href="https://redirect.github.com/elixir-lang/ex_doc/issues/1685">#1685</a>)</li>
<li><a
href="f71fbc2710"><code>f71fbc2</code></a>
Release v0.29.3</li>
<li><a
href="2bdc7efe63"><code>2bdc7ef</code></a>
Fix settings icon position (<a
href="https://redirect.github.com/elixir-lang/ex_doc/issues/1683">#1683</a>)</li>
<li><a
href="4b5c414439"><code>4b5c414</code></a>
Keep language class on livebook output code block (<a
href="https://redirect.github.com/elixir-lang/ex_doc/issues/1682">#1682</a>)</li>
<li><a
href="e63e957327"><code>e63e957</code></a>
Propagate :since metadata from modules (<a
href="https://redirect.github.com/elixir-lang/ex_doc/issues/1680">#1680</a>)</li>
<li><a
href="a55ffa2090"><code>a55ffa2</code></a>
Fix precedence of switches vs config (<a
href="https://redirect.github.com/elixir-lang/ex_doc/issues/1679">#1679</a>)</li>
<li><a
href="8d9cf7ceac"><code>8d9cf7c</code></a>
Improve consistency of type rendering weight across OSes (<a
href="https://redirect.github.com/elixir-lang/ex_doc/issues/1677">#1677</a>)</li>
<li><a
href="a07443e733"><code>a07443e</code></a>
feat: add before_closing_body_tag map support (<a
href="https://redirect.github.com/elixir-lang/ex_doc/issues/1676">#1676</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/elixir-lang/ex_doc/compare/v0.29.2...v0.29.4">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=ex_doc&package-manager=hex&previous-version=0.29.2&new-version=0.29.4)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-04-10 17:52:54 -05:00
dependabot[bot]
6bd1b665eb chore(deps-dev): Bump typedoc from 0.23.26 to 0.24.1 in /node (#308)
Bumps [typedoc](https://github.com/TypeStrong/TypeDoc) from 0.23.26 to
0.24.1.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/TypeStrong/TypeDoc/releases">typedoc's
releases</a>.</em></p>
<blockquote>
<h2>v0.24.1</h2>
<h3>Bug Fixes</h3>
<ul>
<li>Improve detection for legacy JSDoc <code>@example</code> tags, <a
href="https://redirect.github.com/TypeStrong/TypeDoc/issues/2222">#2222</a>.</li>
<li>The page footer will now appear at the bottom of the page even if
the page is short, <a
href="https://redirect.github.com/TypeStrong/TypeDoc/issues/2223">#2223</a>.</li>
</ul>
<h2>v0.24.0</h2>
<h3>Breaking Changes</h3>
<ul>
<li><code>@link</code>, <code>@linkcode</code> and
<code>@linkplain</code> tags will now be resolved with TypeScript's link
resolution by default. The <code>useTsLinkResolution</code> option
can be used to turn this behavior off, but be aware that doing so will
mean your links will be resolved differently by editor tooling and
TypeDoc.</li>
<li>TypeDoc will no longer automatically load plugins from
<code>node_modules</code>. Specify the <code>--plugin</code> option to
indicate which modules should be loaded.</li>
<li>The <code>packages</code> entry point strategy will now run TypeDoc
in each provided package directory and then merge the results together.
The previous <code>packages</code> strategy has been preserved under
<code>legacy-packages</code> and will be removed in 0.25. If the new
strategy does not work
for your use case, please open an issue.</li>
<li>Removed <code>--logger</code> option, to disable all logging, set
the <code>logLevel</code> option to <code>none</code>.</li>
<li>Dropped support for legacy <code>[[link]]</code>s, removed
deprecated <code>Reflection.findReflectionByName</code>.</li>
<li>Added <code>@overload</code> to default ignored tags.</li>
</ul>
<h3>API Breaking Changes</h3>
<ul>
<li>The <code>label</code> property on <code>Reflection</code> has moved
to <code>Comment</code>.</li>
<li>The default value of the <code>out</code> option has been changed
from <code>&quot;&quot;</code> to <code>&quot;./docs&quot;</code>, <a
href="https://redirect.github.com/TypeStrong/TypeDoc/issues/2195">#2195</a>.</li>
<li>Renamed <code>DeclarationReflection#version</code> to
<code>DeclarationReflection#projectVersion</code> to match property on
<code>ProjectReflection</code>.</li>
<li>Removed unused <code>Reflection#originalName</code>.</li>
<li>Removed <code>Reflection#kindString</code>, use
<code>ReflectionKind.singularString(reflection.kind)</code> or
<code>ReflectionKind.pluralString(reflection.kind)</code> instead.</li>
<li>The <code>named-tuple-member</code> and
<code>template-literal</code> type kind have been replaced with
<code>namedTupleMember</code> and <code>templateLiteral</code>, <a
href="https://redirect.github.com/TypeStrong/TypeDoc/issues/2100">#2100</a>.</li>
<li>Properties related to rendering are no longer stored on
<code>Reflection</code>, including <code>url</code>,
<code>anchor</code>, <code>hasOwnDocument</code>, and
<code>cssClasses</code>.</li>
<li><code>Application.bootstrap</code> will no longer load plugins. If
you want to load plugins, use
<code>Application.bootstrapWithPlugins</code> instead, <a
href="https://redirect.github.com/TypeStrong/TypeDoc/issues/1635">#1635</a>.</li>
<li>The options passed to <code>Application.bootstrap</code> will now be
applied both before <em>and</em> after reading options files, which may
cause a change in configuration
if using a custom script to run TypeDoc that includes some options, but
other options are set in config files.</li>
<li>Moved <code>sources</code> property previously declared on base
<code>Reflection</code> class to <code>DeclarationReflection</code> and
<code>SignatureReflection</code>.</li>
<li>Moved <code>relevanceBoost</code> from
<code>ContainerReflection</code> to <code>DeclarationReflection</code>
since setting it on the parent class has no effect.</li>
<li>Removed internal <code>ReferenceType.getSymbol</code>, reference
types no longer reference the <code>ts.Symbol</code> to enable
generation from serialized JSON.</li>
<li><code>OptionsReader.priority</code> has been renamed to
<code>OptionsReader.order</code> to more accurately reflect how it
works.</li>
<li><code>ReferenceType</code>s which point to type parameters will now
always be intentionally broken since they were never linked and should
not be warned about when validating exports.</li>
<li><code>ReferenceType</code>s now longer include an <code>id</code>
property for their target. They now instead include a
<code>target</code> property.</li>
<li>Removed <code>Renderer.addExternalSymbolResolver</code>, use
<code>Converter.addExternalSymbolResolver</code> instead.</li>
<li>Removed <code>CallbackLogger</code>.</li>
<li>Removed <code>SerializeEventData</code> from serialization
events.</li>
<li>A <code>PageEvent</code> is now required for
<code>getRenderContext</code>. If caching the context object,
<code>page</code> must be updated when <code>getRenderContext</code> is
called.</li>
<li><code>PageEvent</code> no longer includes the <code>template</code>
property. The <code>Theme.render</code> method is now expected to take
the template to render the page with as its second argument.</li>
<li>Removed <code>secondaryNavigation</code> member on
<code>DefaultThemeRenderContext</code>.</li>
<li>Renamed <code>navigation</code> to <code>sidebar</code> on
<code>DefaultThemeRenderContext</code> and
<code>navigation.begin</code>/<code>navigation.end</code> hooks to
<code>sidebar.begin</code>/<code>sidebar.end</code>.</li>
</ul>
<h3>Features</h3>
<ul>
<li>Added <code>--useTsLinkResolution</code> option (on by default)
which tells TypeDoc to use TypeScript's <code>@link</code>
resolution.</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/TypeStrong/typedoc/blob/master/CHANGELOG.md">typedoc's
changelog</a>.</em></p>
<blockquote>
<h2>v0.24.1 (2023-04-09)</h2>
<h3>Bug Fixes</h3>
<ul>
<li>Improve detection for legacy JSDoc <code>@example</code> tags, <a
href="https://redirect.github.com/TypeStrong/TypeDoc/issues/2222">#2222</a>.</li>
<li>The page footer will now appear at the bottom of the page even if
the page is short, <a
href="https://redirect.github.com/TypeStrong/TypeDoc/issues/2223">#2223</a>.</li>
</ul>
<h1>v0.24.0 (2023-04-08)</h1>
<h3>Breaking Changes</h3>
<ul>
<li><code>@link</code>, <code>@linkcode</code> and
<code>@linkplain</code> tags will now be resolved with TypeScript's link
resolution by default. The <code>useTsLinkResolution</code> option
can be used to turn this behavior off, but be aware that doing so will
mean your links will be resolved differently by editor tooling and
TypeDoc.</li>
<li>TypeDoc will no longer automatically load plugins from
<code>node_modules</code>. Specify the <code>--plugin</code> option to
indicate which modules should be loaded.</li>
<li>The <code>packages</code> entry point strategy will now run TypeDoc
in each provided package directory and then merge the results together.
The previous <code>packages</code> strategy has been preserved under
<code>legacy-packages</code> and will be removed in 0.25. If the new
strategy does not work
for your use case, please open an issue.</li>
<li>Removed <code>--logger</code> option, to disable all logging, set
the <code>logLevel</code> option to <code>none</code>.</li>
<li>Dropped support for legacy <code>[[link]]</code>s, removed
deprecated <code>Reflection.findReflectionByName</code>.</li>
<li>Added <code>@overload</code> to default ignored tags.</li>
</ul>
<h3>API Breaking Changes</h3>
<ul>
<li>The <code>label</code> property on <code>Reflection</code> has moved
to <code>Comment</code>.</li>
<li>The default value of the <code>out</code> option has been changed
from <code>&quot;&quot;</code> to <code>&quot;./docs&quot;</code>, <a
href="https://redirect.github.com/TypeStrong/TypeDoc/issues/2195">#2195</a>.</li>
<li>Renamed <code>DeclarationReflection#version</code> to
<code>DeclarationReflection#projectVersion</code> to match property on
<code>ProjectReflection</code>.</li>
<li>Removed unused <code>Reflection#originalName</code>.</li>
<li>Removed <code>Reflection#kindString</code>, use
<code>ReflectionKind.singularString(reflection.kind)</code> or
<code>ReflectionKind.pluralString(reflection.kind)</code> instead.</li>
<li>The <code>named-tuple-member</code> and
<code>template-literal</code> type kind have been replaced with
<code>namedTupleMember</code> and <code>templateLiteral</code>, <a
href="https://redirect.github.com/TypeStrong/TypeDoc/issues/2100">#2100</a>.</li>
<li>Properties related to rendering are no longer stored on
<code>Reflection</code>, including <code>url</code>,
<code>anchor</code>, <code>hasOwnDocument</code>, and
<code>cssClasses</code>.</li>
<li><code>Application.bootstrap</code> will no longer load plugins. If
you want to load plugins, use
<code>Application.bootstrapWithPlugins</code> instead, <a
href="https://redirect.github.com/TypeStrong/TypeDoc/issues/1635">#1635</a>.</li>
<li>The options passed to <code>Application.bootstrap</code> will now be
applied both before <em>and</em> after reading options files, which may
cause a change in configuration
if using a custom script to run TypeDoc that includes some options, but
other options are set in config files.</li>
<li>Moved <code>sources</code> property previously declared on base
<code>Reflection</code> class to <code>DeclarationReflection</code> and
<code>SignatureReflection</code>.</li>
<li>Moved <code>relevanceBoost</code> from
<code>ContainerReflection</code> to <code>DeclarationReflection</code>
since setting it on the parent class has no effect.</li>
<li>Removed internal <code>ReferenceType.getSymbol</code>, reference
types no longer reference the <code>ts.Symbol</code> to enable
generation from serialized JSON.</li>
<li><code>OptionsReader.priority</code> has been renamed to
<code>OptionsReader.order</code> to more accurately reflect how it
works.</li>
<li><code>ReferenceType</code>s which point to type parameters will now
always be intentionally broken since they were never linked and should
not be warned about when validating exports.</li>
<li><code>ReferenceType</code>s now longer include an <code>id</code>
property for their target. They now instead include a
<code>target</code> property.</li>
<li>Removed <code>Renderer.addExternalSymbolResolver</code>, use
<code>Converter.addExternalSymbolResolver</code> instead.</li>
<li>Removed <code>CallbackLogger</code>.</li>
<li>Removed <code>SerializeEventData</code> from serialization
events.</li>
<li>A <code>PageEvent</code> is now required for
<code>getRenderContext</code>. If caching the context object,
<code>page</code> must be updated when <code>getRenderContext</code> is
called.</li>
<li><code>PageEvent</code> no longer includes the <code>template</code>
property. The <code>Theme.render</code> method is now expected to take
the template to render the page with as its second argument.</li>
<li>Removed <code>secondaryNavigation</code> member on
<code>DefaultThemeRenderContext</code>.</li>
<li>Renamed <code>navigation</code> to <code>sidebar</code> on
<code>DefaultThemeRenderContext</code> and
<code>navigation.begin</code>/<code>navigation.end</code> hooks to
<code>sidebar.begin</code>/<code>sidebar.end</code>.</li>
</ul>
<h3>Features</h3>
<ul>
<li>Added <code>--useTsLinkResolution</code> option (on by default)
which tells TypeDoc to use TypeScript's <code>@link</code>
resolution.</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="16cc385ae4"><code>16cc385</code></a>
Update changelog for release</li>
<li><a
href="6b32dab03d"><code>6b32dab</code></a>
Bump version to 0.24.1</li>
<li><a
href="0e3a892db3"><code>0e3a892</code></a>
Some cleanup from 0.24.0</li>
<li><a
href="a6e6544759"><code>a6e6544</code></a>
Reorder option declarations to match docs</li>
<li><a
href="7a696ae1eb"><code>7a696ae</code></a>
Update changelog for release</li>
<li><a
href="4a762ace54"><code>4a762ac</code></a>
Bump version to 0.24.0</li>
<li><a
href="29069e0a02"><code>29069e0</code></a>
Merge pull request <a
href="https://redirect.github.com/TypeStrong/TypeDoc/issues/2210">#2210</a>
from TypeStrong/beta</li>
<li><a
href="27f550f3c8"><code>27f550f</code></a>
Fix broken links in example</li>
<li><a
href="0c105ec7a0"><code>0c105ec</code></a>
One last bugfix</li>
<li><a
href="864db5780a"><code>864db57</code></a>
Add jsDocCompatibility option</li>
<li>Additional commits viewable in <a
href="https://github.com/TypeStrong/TypeDoc/compare/v0.23.26...v0.24.1">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=typedoc&package-manager=npm_and_yarn&previous-version=0.23.26&new-version=0.24.1)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-04-10 17:52:38 -05:00
Benjamin Eckel
d4e364f883 fix(browser): Fix browser runtime, publish as 0.2.7 (#305)
This upgrades the wasi shim and publishes new version of our runtime.
Current published version is broken because it relies on a my git branch
which has since been merged into the wasi shim.
2023-04-04 09:37:25 -05:00
zach
0b7589a3eb fix: remove call to cleanup_timer at exit on windows (#301)
Fixes #299
2023-04-03 09:05:35 -07:00
zach
eda80134f0 fix: improve extism_http_request error handling (#290)
This PR prevents a panic on the host side when an HTTP request fails
2023-03-29 15:50:51 -07:00
Doğu Us
300d801d1a fix(zig-sdk): Fix build and improve tests (#291) 2023-03-28 12:13:08 -07:00
Steve Manuel
524f069a08 feat: add pycco python doc support (#284) 2023-03-17 13:00:47 -06:00
zach
8dd5c8a138 fix: separate ocaml SDK and extism versions when publishing to opam (#283) 2023-03-15 10:31:05 -07:00
Benjamin Eckel
c7f533f9c6 chore: update dotnet to 0.4.0 2023-03-15 10:39:13 -05:00
Benjamin Eckel
8d76cf0440 release: 0.3.0 (#281)
Co-authored-by: zach <zach@dylib.so>
2023-03-15 09:42:05 -05:00
zach
d950e9149b chore: update haskell base upper bound (#282) 2023-03-13 20:15:16 -07:00
dependabot[bot]
3e65e067e2 chore(deps-dev): Bump @types/node from 18.14.6 to 18.15.0 in /node (#279)
Bumps
[@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node)
from 18.14.6 to 18.15.0.
<details>
<summary>Commits</summary>
<ul>
<li>See full diff in <a
href="https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=@types/node&package-manager=npm_and_yarn&previous-version=18.14.6&new-version=18.15.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-03-13 11:23:22 -05:00
dependabot[bot]
88a612ab8c chore(deps-dev): Bump jest from 29.4.3 to 29.5.0 in /node (#280)
Bumps [jest](https://github.com/facebook/jest/tree/HEAD/packages/jest)
from 29.4.3 to 29.5.0.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/facebook/jest/releases">jest's
releases</a>.</em></p>
<blockquote>
<h2>v29.5.0</h2>
<h2>Features</h2>
<ul>
<li><code>[jest-changed-files]</code> Support Sapling (<a
href="https://redirect.github.com/facebook/jest/pull/13941">#13941</a>)</li>
<li><code>[jest-circus, @jest/cli, jest-config]</code> Add feature to
randomize order of tests via CLI flag or through the config file(<a
href="https://redirect.github.com/facebook/jest/pull/12922">#12922</a>)</li>
<li><code>[jest-cli, jest-config, @jest/core, jest-haste-map,
@jest/reporters, jest-runner, jest-runtime, @jest/types]</code> Add
<code>workerThreads</code> configuration option to allow using <a
href="https://nodejs.org/dist/latest/docs/api/worker_threads.html">worker
threads</a> for parallelization (<a
href="https://redirect.github.com/facebook/jest/pull/13939">#13939</a>)</li>
<li><code>[jest-cli]</code> Export <code>yargsOptions</code> (<a
href="https://redirect.github.com/facebook/jest/pull/13970">#13970</a>)</li>
<li><code>[jest-config]</code> Add <code>openHandlesTimeout</code>
option to configure possible open handles warning. (<a
href="https://redirect.github.com/facebook/jest/pull/13875">#13875</a>)</li>
<li><code>[@jest/create-cache-key-function]</code> Allow passing
<code>length</code> argument to <code>createCacheKey()</code> function
and set its default value to <code>16</code> on Windows (<a
href="https://redirect.github.com/facebook/jest/pull/13827">#13827</a>)</li>
<li><code>[jest-message-util]</code> Add support for <a
href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/AggregateError">AggregateError</a>
(<a
href="https://redirect.github.com/facebook/jest/pull/13946">#13946</a>
&amp; <a
href="https://redirect.github.com/facebook/jest/pull/13947">#13947</a>)</li>
<li><code>[jest-message-util]</code> Add support for <a
href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Error/cause">Error
causes</a> in <code>test</code> and <code>it</code> (<a
href="https://redirect.github.com/facebook/jest/pull/13935">#13935</a>
&amp; <a
href="https://redirect.github.com/facebook/jest/pull/13966">#13966</a>)</li>
<li><code>[jest-reporters]</code> Add <code>summaryThreshold</code>
option to summary reporter to allow overriding the internal threshold
that is used to print the summary of all failed tests when the number of
test suites surpasses it (<a
href="https://redirect.github.com/facebook/jest/pull/13895">#13895</a>)</li>
<li><code>[jest-runtime]</code> Expose <code>@sinonjs/fake-timers</code>
async APIs functions <code>advanceTimersByTimeAsync(msToRun)</code>
(<code>tickAsync(msToRun)</code>),
<code>advanceTimersToNextTimerAsync(steps)</code>
(<code>nextAsync</code>), <code>runAllTimersAsync</code>
(<code>runAllAsync</code>), and <code>runOnlyPendingTimersAsync</code>
(<code>runToLastAsync</code>) (<a
href="https://redirect.github.com/facebook/jest/pull/13981">#13981</a>)</li>
<li><code>[jest-runtime, @jest/transform]</code> Allow V8 coverage
provider to collect coverage from files which were not loaded explicitly
(<a
href="https://redirect.github.com/facebook/jest/pull/13974">#13974</a>)</li>
<li><code>[jest-snapshot]</code> Add support to <code>cts</code> and
<code>mts</code> TypeScript files to inline snapshots (<a
href="https://redirect.github.com/facebook/jest/pull/13975">#13975</a>)</li>
<li><code>[jest-worker]</code> Add <code>start</code> method to worker
farms (<a
href="https://redirect.github.com/facebook/jest/pull/13937">#13937</a>)</li>
<li><code>[jest-worker]</code> Support passing a URL as path to worker
(<a
href="https://redirect.github.com/facebook/jest/pull/13982">#13982</a>)</li>
</ul>
<h2>Fixes</h2>
<ul>
<li><code>[babel-plugin-jest-hoist]</code> Fix unwanted hoisting of
nested <code>jest</code> usages (<a
href="https://redirect.github.com/facebook/jest/pull/13952">#13952</a>)</li>
<li><code>[jest-circus]</code> Send test case results for
<code>todo</code> tests (<a
href="https://redirect.github.com/facebook/jest/pull/13915">#13915</a>)</li>
<li><code>[jest-circus]</code> Update message printed on test timeout
(<a
href="https://redirect.github.com/facebook/jest/pull/13830">#13830</a>)</li>
<li><code>[jest-circus]</code> Avoid creating the word
&quot;testfalse&quot; when <code>takesDoneCallback</code> is
<code>false</code> in the message printed on test timeout AND updated
timeouts test (<a
href="https://redirect.github.com/facebook/jest/pull/13954">#13954</a>)</li>
<li><code>[jest-environment-jsdom]</code> Stop setting
<code>document</code> to <code>null</code> on teardown (<a
href="https://redirect.github.com/facebook/jest/pull/13972">#13972</a>)</li>
<li><code>[@jest/expect-utils]</code> Update
<code>toStrictEqual()</code> to be able to check
<code>jest.fn().mock.calls</code> (<a
href="https://redirect.github.com/facebook/jest/pull/13960">#13960</a>)</li>
<li><code>[@jest/test-result]</code> Allow
<code>TestResultsProcessor</code> type to return a Promise (<a
href="https://redirect.github.com/facebook/jest/pull/13950">#13950</a>)</li>
</ul>
<h2>Chore &amp; Maintenance</h2>
<ul>
<li><code>[jest-snapshot]</code> Remove dependency on
<code>jest-haste-map</code> (<a
href="https://redirect.github.com/facebook/jest/pull/13977">#13977</a>)</li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a href="https://github.com/frosas"><code>@​frosas</code></a> made
their first contribution in <a
href="https://redirect.github.com/facebook/jest/pull/13932">facebook/jest#13932</a></li>
<li><a
href="https://github.com/akshitsinha"><code>@​akshitsinha</code></a>
made their first contribution in <a
href="https://redirect.github.com/facebook/jest/pull/13915">facebook/jest#13915</a></li>
<li><a href="https://github.com/trajano"><code>@​trajano</code></a> made
their first contribution in <a
href="https://redirect.github.com/facebook/jest/pull/13827">facebook/jest#13827</a></li>
<li><a
href="https://github.com/DercilioFontes"><code>@​DercilioFontes</code></a>
made their first contribution in <a
href="https://redirect.github.com/facebook/jest/pull/13954">facebook/jest#13954</a></li>
<li><a href="https://github.com/jsnajdr"><code>@​jsnajdr</code></a> made
their first contribution in <a
href="https://redirect.github.com/facebook/jest/pull/13952">facebook/jest#13952</a></li>
<li><a
href="https://github.com/SteveFlames"><code>@​SteveFlames</code></a>
made their first contribution in <a
href="https://redirect.github.com/facebook/jest/pull/13895">facebook/jest#13895</a></li>
<li><a href="https://github.com/willc001"><code>@​willc001</code></a>
made their first contribution in <a
href="https://redirect.github.com/facebook/jest/pull/13970">facebook/jest#13970</a></li>
<li><a
href="https://github.com/benjaminhobbs"><code>@​benjaminhobbs</code></a>
made their first contribution in <a
href="https://redirect.github.com/facebook/jest/pull/13901">facebook/jest#13901</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/facebook/jest/compare/v29.4.3...v29.5.0">https://github.com/facebook/jest/compare/v29.4.3...v29.5.0</a></p>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/facebook/jest/blob/main/CHANGELOG.md">jest's
changelog</a>.</em></p>
<blockquote>
<h2>29.5.0</h2>
<h3>Features</h3>
<ul>
<li><code>[jest-changed-files]</code> Support Sapling (<a
href="https://redirect.github.com/facebook/jest/pull/13941">#13941</a>)</li>
<li><code>[jest-circus, @jest/cli, jest-config]</code> Add feature to
randomize order of tests via CLI flag or through the config file(<a
href="https://redirect.github.com/facebook/jest/pull/12922">#12922</a>)</li>
<li><code>[jest-cli, jest-config, @jest/core, jest-haste-map,
@jest/reporters, jest-runner, jest-runtime, @jest/types]</code> Add
<code>workerThreads</code> configuration option to allow using <a
href="https://nodejs.org/dist/latest/docs/api/worker_threads.html">worker
threads</a> for parallelization (<a
href="https://redirect.github.com/facebook/jest/pull/13939">#13939</a>)</li>
<li><code>[jest-cli]</code> Export <code>yargsOptions</code> (<a
href="https://redirect.github.com/facebook/jest/pull/13970">#13970</a>)</li>
<li><code>[jest-config]</code> Add <code>openHandlesTimeout</code>
option to configure possible open handles warning. (<a
href="https://redirect.github.com/facebook/jest/pull/13875">#13875</a>)</li>
<li><code>[@jest/create-cache-key-function]</code> Allow passing
<code>length</code> argument to <code>createCacheKey()</code> function
and set its default value to <code>16</code> on Windows (<a
href="https://redirect.github.com/facebook/jest/pull/13827">#13827</a>)</li>
<li><code>[jest-message-util]</code> Add support for <a
href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/AggregateError">AggregateError</a>
(<a
href="https://redirect.github.com/facebook/jest/pull/13946">#13946</a>
&amp; <a
href="https://redirect.github.com/facebook/jest/pull/13947">#13947</a>)</li>
<li><code>[jest-message-util]</code> Add support for <a
href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Error/cause">Error
causes</a> in <code>test</code> and <code>it</code> (<a
href="https://redirect.github.com/facebook/jest/pull/13935">#13935</a>
&amp; <a
href="https://redirect.github.com/facebook/jest/pull/13966">#13966</a>)</li>
<li><code>[jest-reporters]</code> Add <code>summaryThreshold</code>
option to summary reporter to allow overriding the internal threshold
that is used to print the summary of all failed tests when the number of
test suites surpasses it (<a
href="https://redirect.github.com/facebook/jest/pull/13895">#13895</a>)</li>
<li><code>[jest-runtime]</code> Expose <code>@sinonjs/fake-timers</code>
async APIs functions <code>advanceTimersByTimeAsync(msToRun)</code>
(<code>tickAsync(msToRun)</code>),
<code>advanceTimersToNextTimerAsync(steps)</code>
(<code>nextAsync</code>), <code>runAllTimersAsync</code>
(<code>runAllAsync</code>), and <code>runOnlyPendingTimersAsync</code>
(<code>runToLastAsync</code>) (<a
href="https://redirect.github.com/facebook/jest/pull/13981">#13981</a>)</li>
<li><code>[jest-runtime, @jest/transform]</code> Allow V8 coverage
provider to collect coverage from files which were not loaded explicitly
(<a
href="https://redirect.github.com/facebook/jest/pull/13974">#13974</a>)</li>
<li><code>[jest-snapshot]</code> Add support to <code>cts</code> and
<code>mts</code> TypeScript files to inline snapshots (<a
href="https://redirect.github.com/facebook/jest/pull/13975">#13975</a>)</li>
<li><code>[jest-worker]</code> Add <code>start</code> method to worker
farms (<a
href="https://redirect.github.com/facebook/jest/pull/13937">#13937</a>)</li>
<li><code>[jest-worker]</code> Support passing a URL as path to worker
(<a
href="https://redirect.github.com/facebook/jest/pull/13982">#13982</a>)</li>
</ul>
<h3>Fixes</h3>
<ul>
<li><code>[babel-plugin-jest-hoist]</code> Fix unwanted hoisting of
nested <code>jest</code> usages (<a
href="https://redirect.github.com/facebook/jest/pull/13952">#13952</a>)</li>
<li><code>[jest-circus]</code> Send test case results for
<code>todo</code> tests (<a
href="https://redirect.github.com/facebook/jest/pull/13915">#13915</a>)</li>
<li><code>[jest-circus]</code> Update message printed on test timeout
(<a
href="https://redirect.github.com/facebook/jest/pull/13830">#13830</a>)</li>
<li><code>[jest-circus]</code> Avoid creating the word
&quot;testfalse&quot; when <code>takesDoneCallback</code> is
<code>false</code> in the message printed on test timeout AND updated
timeouts test (<a
href="https://redirect.github.com/facebook/jest/pull/13954">#13954</a>)</li>
<li><code>[jest-environment-jsdom]</code> Stop setting
<code>document</code> to <code>null</code> on teardown (<a
href="https://redirect.github.com/facebook/jest/pull/13972">#13972</a>)</li>
<li><code>[@jest/expect-utils]</code> Update
<code>toStrictEqual()</code> to be able to check
<code>jest.fn().mock.calls</code> (<a
href="https://redirect.github.com/facebook/jest/pull/13960">#13960</a>)</li>
<li><code>[@jest/test-result]</code> Allow
<code>TestResultsProcessor</code> type to return a Promise (<a
href="https://redirect.github.com/facebook/jest/pull/13950">#13950</a>)</li>
</ul>
<h3>Chore &amp; Maintenance</h3>
<ul>
<li><code>[jest-snapshot]</code> Remove dependency on
<code>jest-haste-map</code> (<a
href="https://redirect.github.com/facebook/jest/pull/13977">#13977</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="39f3beda6b"><code>39f3bed</code></a>
v29.5.0</li>
<li>See full diff in <a
href="https://github.com/facebook/jest/commits/v29.5.0/packages/jest">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=jest&package-manager=npm_and_yarn&previous-version=29.4.3&new-version=29.5.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-03-13 11:23:10 -05:00
Mathieu ANCELIN
3fc51ac373 feat: Support allowed_paths in the Java SDK (#277) 2023-03-11 11:30:26 -07:00
zach
12373ca34a chore: update to wasmtime 6.0.1 (#276) 2023-03-08 17:44:57 -08:00
zach
94d5bd98c8 feat: Add plugin cancellation (#270)
This PR adds the ability to cancel running plugins from another thread
in the host.

- All SDKs have been updated except  .NET
- Adds a new SDK type: `ExtismCancelHandle`
- Adds 2 new SDK functions: `extism_plugin_cancel_handle` and
`extism_plugin_cancel`
- `extism_plugin_cancel_handle` returns a pointer to
`ExtismCancelHandle`, which can be passed to `extism_plugin_cancel` to
stop plugin execution.
- One thing that's worth noting is when plugin is executing a host
function it cannot be cancelled until after the host function returns.

---------

Co-authored-by: Etienne ANNE <etienne.anne@icloud.com>
2023-03-08 17:44:40 -08:00
Etienne ANNE
2922f4aad3 feat: add ability to set host function namespace for Java SDK (#275) 2023-03-08 17:13:43 -08:00
dependabot[bot]
a39381f552 chore(deps-dev): Update minitest requirement from ~> 5.17.0 to ~> 5.18.0 in /ruby (#271)
Updates the requirements on
[minitest](https://github.com/seattlerb/minitest) to permit the latest
version.
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/minitest/minitest/blob/master/History.rdoc">minitest's
changelog</a>.</em></p>
<blockquote>
<p>=== 5.18.0 / 2023-03-04</p>
<ul>
<li>
<p>2 major enhancements:</p>
<ul>
<li>Added assert_pattern &amp; refute_pattern for pattern matching.
(flavorjones)</li>
<li>Added matching must_pattern_match &amp; wont_pattern_match to
minitest/spec.</li>
</ul>
</li>
<li>
<p>1 bug fix:</p>
<ul>
<li>Support the new message format of NameError in Ruby 3.3 (mame)</li>
</ul>
</li>
</ul>
<p>=== 5.17.0 / 2022-12-31</p>
<ul>
<li>
<p>1 minor enhancement:</p>
<ul>
<li>Refactor setup hooks into a SETUP_METHODS constant. (MSP-Greg)</li>
</ul>
</li>
<li>
<p>3 bug fixes:</p>
<ul>
<li>Fix kwargs for Mock calls to delegator. (blowmage)</li>
<li>Fix kwargs for expectations. (bobmazanec, blowmage)</li>
<li>Remove check for .b method. (tenderlove)</li>
</ul>
</li>
</ul>
<p>=== 5.16.3 / 2022-08-17</p>
<ul>
<li>
<p>2 bug fixes:</p>
<ul>
<li>Fixed exception sanitization by removing TypeError restriction on
rescue.</li>
<li>Use A instead of deprecated TESTOPTS in rake test:slow.
(davidstosik)</li>
</ul>
</li>
</ul>
<p>=== 5.16.2 / 2022-07-03</p>
<ul>
<li>
<p>4 bug fixes:</p>
<ul>
<li>Added MT_KWARGS_HACK kludge for stub to deal with ruby 2.7 kwargs
nastiness. (tsugimoto)</li>
<li>In #expect, pop Hash class from args if $MT_KWARGS_HACK.
(casperisfine)</li>
<li>In above scenario, set expected kwargs (as Objects) based on actual
kwargs.</li>
<li>Nuke ivars if exception fails to marshal twice (eg better_errors).
(irphilli)</li>
</ul>
</li>
</ul>
<p>=== 5.16.1 / 2022-06-20</p>
<ul>
<li>
<p>2 bug fixes:</p>
<ul>
<li>Apparently adding real kwarg support to mocks/stubs broke some code.
Fixed.
<ul>
<li>Use <code>MT_KWARGS_HACK=1</code> to activate the kludgy kwargs
support w/ caveats.</li>
</ul>
</li>
<li>Clarified some doco wrt the block on #stub.</li>
</ul>
</li>
</ul>
<p>=== 5.16.0 / 2022-06-14</p>
<ul>
<li>2 major enhancements:</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="506ce83b45"><code>506ce83</code></a>
prepped for release</li>
<li><a
href="0c44f4ea32"><code>0c44f4e</code></a>
! Added assert_pattern &amp; refute_pattern for pattern matching.
(flavorjones)</li>
<li><a
href="899b420aa0"><code>899b420</code></a>
Fixed typo in doco. (ahangarha)</li>
<li><a
href="ebd8a673a1"><code>ebd8a67</code></a>
- Support the new message format of NameError in Ruby 3.3 (mame)</li>
<li><a
href="0984e29995"><code>0984e29</code></a>
Add 2.6 to matrix... stays until some rails versions expire, sadly.</li>
<li><a
href="d5e68e6ef4"><code>d5e68e6</code></a>
Adds Ruby 3.2 to the CI matrix. Also updates checkout action version.
(peterg...</li>
<li><a
href="69bc4b0f5b"><code>69bc4b0</code></a>
Minor tweak to Rakefile to fix CI on older rubies</li>
<li>See full diff in <a
href="https://github.com/seattlerb/minitest/compare/v5.17.0...v5.18.0">compare
view</a></li>
</ul>
</details>
<br />


Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-03-05 22:33:24 -06:00
dependabot[bot]
71cbbb02bb chore(deps-dev): Bump @types/node from 18.14.2 to 18.14.6 in /node (#272)
Bumps
[@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node)
from 18.14.2 to 18.14.6.
<details>
<summary>Commits</summary>
<ul>
<li>See full diff in <a
href="https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=@types/node&package-manager=npm_and_yarn&previous-version=18.14.2&new-version=18.14.6)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-03-05 22:33:14 -06:00
dependabot[bot]
bb1a92d3f9 chore(deps-dev): Bump ex_doc from 0.29.1 to 0.29.2 in /elixir (#273)
Bumps [ex_doc](https://github.com/elixir-lang/ex_doc) from 0.29.1 to
0.29.2.
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/elixir-lang/ex_doc/blob/main/CHANGELOG.md">ex_doc's
changelog</a>.</em></p>
<blockquote>
<h2>v0.29.2 (2023-03-02)</h2>
<ul>
<li>
<p>Enhancements</p>
<ul>
<li>Improvements to cheatsheets spacing</li>
<li>Improvements to cheatsheets print</li>
<li>Include sections of modules and extras in search suggestions</li>
<li>Make sidebar links full-width and add hover states</li>
<li>Improve clickable area of sidebar tabs</li>
<li>Improve contrast on sidebar</li>
</ul>
</li>
<li>
<p>Bug fix</p>
<ul>
<li>Add media type for .license files for epub</li>
<li>Fix overscroll on the sidebar</li>
<li>Focus search input immediately after keyboard shortcut</li>
<li>Don't attempt parsing code blocks that don't look like modules</li>
<li>Fix visited link color in admonition blocks</li>
</ul>
</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="0e2d7686ee"><code>0e2d768</code></a>
Release v0.29.2</li>
<li><a
href="adcea58ca0"><code>adcea58</code></a>
Increase contrast on sidebar</li>
<li><a
href="fa5dff69e3"><code>fa5dff6</code></a>
Fix visited link color in admonition blocks (<a
href="https://github-redirect.dependabot.com/elixir-lang/ex_doc/issues/1666">#1666</a>)</li>
<li><a
href="1a11987ce6"><code>1a11987</code></a>
Update Cheatsheet print styles (<a
href="https://github-redirect.dependabot.com/elixir-lang/ex_doc/issues/1665">#1665</a>)</li>
<li><a
href="d00110fc45"><code>d00110f</code></a>
Don't attempt parsing code blocks that don't look like modules (<a
href="https://github-redirect.dependabot.com/elixir-lang/ex_doc/issues/1662">#1662</a>)</li>
<li><a
href="486dce49c4"><code>486dce4</code></a>
Do not use tests that modify app env concurrently</li>
<li><a
href="400f088d08"><code>400f088</code></a>
Remove superfluous import of common custom properties from Erlang CSS
(<a
href="https://github-redirect.dependabot.com/elixir-lang/ex_doc/issues/1660">#1660</a>)</li>
<li><a
href="5350bc5cdb"><code>5350bc5</code></a>
Fix extra spacing on pages with no sections</li>
<li><a
href="5331a4ba48"><code>5331a4b</code></a>
Tweak cheatsheet CSS (<a
href="https://github-redirect.dependabot.com/elixir-lang/ex_doc/issues/1658">#1658</a>)</li>
<li><a
href="2d14453b23"><code>2d14453</code></a>
Update print page break-related declarations (<a
href="https://github-redirect.dependabot.com/elixir-lang/ex_doc/issues/1657">#1657</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/elixir-lang/ex_doc/compare/v0.29.1...v0.29.2">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=ex_doc&package-manager=hex&previous-version=0.29.1&new-version=0.29.2)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-03-05 22:33:03 -06:00
dependabot[bot]
5d91870db6 chore(deps-dev): Bump typedoc from 0.23.25 to 0.23.26 in /node (#265)
Bumps [typedoc](https://github.com/TypeStrong/TypeDoc) from 0.23.25 to
0.23.26.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/TypeStrong/TypeDoc/releases">typedoc's
releases</a>.</em></p>
<blockquote>
<h2>v0.23.26</h2>
<h3>Features</h3>
<ul>
<li>Added <code>Application.EVENT_VALIDATE_PROJECT</code> event for
plugins which implement custom validation, <a
href="https://github-redirect.dependabot.com/TypeStrong/TypeDoc/issues/2183">#2183</a>.</li>
<li>Plugins may now return an object from external symbol resolvers, <a
href="https://github-redirect.dependabot.com/TypeStrong/TypeDoc/issues/2066">#2066</a>.</li>
<li>Expose <code>Comment.displayPartsToMarkdown</code> on for themes
overwriting the <code>comment</code> helper, <a
href="https://github-redirect.dependabot.com/TypeStrong/TypeDoc/issues/2115">#2115</a>.</li>
</ul>
<h3>Bug Fixes</h3>
<ul>
<li>Fix crash when converting <code>export default undefined</code>, <a
href="https://github-redirect.dependabot.com/TypeStrong/TypeDoc/issues/2175">#2175</a>.</li>
<li>Fix error in console when clicking on headings in the readme, <a
href="https://github-redirect.dependabot.com/TypeStrong/TypeDoc/issues/2170">#2170</a>.</li>
<li>TypeDoc will now ignore parameters of callback parameters when
validating that all parameters have documentation, <a
href="https://github-redirect.dependabot.com/TypeStrong/TypeDoc/issues/2154">#2154</a>.</li>
</ul>
<h3>Thanks!</h3>
<ul>
<li><a
href="https://github.com/captain-torch"><code>@​captain-torch</code></a></li>
<li><a
href="https://github.com/loopingz"><code>@​loopingz</code></a></li>
<li><a
href="https://github.com/RebeccaStevens"><code>@​RebeccaStevens</code></a></li>
</ul>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/TypeStrong/typedoc/blob/master/CHANGELOG.md">typedoc's
changelog</a>.</em></p>
<blockquote>
<h2>v0.23.26 (2023-02-26)</h2>
<h3>Features</h3>
<ul>
<li>Added <code>Application.EVENT_VALIDATE_PROJECT</code> event for
plugins which implement custom validation, <a
href="https://github-redirect.dependabot.com/TypeStrong/TypeDoc/issues/2183">#2183</a>.</li>
<li>Plugins may now return an object from external symbol resolvers, <a
href="https://github-redirect.dependabot.com/TypeStrong/TypeDoc/issues/2066">#2066</a>.</li>
<li>Expose <code>Comment.displayPartsToMarkdown</code> on for themes
overwriting the <code>comment</code> helper, <a
href="https://github-redirect.dependabot.com/TypeStrong/TypeDoc/issues/2115">#2115</a>.</li>
</ul>
<h3>Bug Fixes</h3>
<ul>
<li>Fix crash when converting <code>export default undefined</code>, <a
href="https://github-redirect.dependabot.com/TypeStrong/TypeDoc/issues/2175">#2175</a>.</li>
<li>Fix error in console when clicking on headings in the readme, <a
href="https://github-redirect.dependabot.com/TypeStrong/TypeDoc/issues/2170">#2170</a>.</li>
<li>TypeDoc will now ignore parameters of callback parameters when
validating that all parameters have documentation, <a
href="https://github-redirect.dependabot.com/TypeStrong/TypeDoc/issues/2154">#2154</a>.</li>
</ul>
<h3>Thanks!</h3>
<ul>
<li><a
href="https://github.com/captain-torch"><code>@​captain-torch</code></a></li>
<li><a
href="https://github.com/loopingz"><code>@​loopingz</code></a></li>
<li><a
href="https://github.com/RebeccaStevens"><code>@​RebeccaStevens</code></a></li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="c75f44f115"><code>c75f44f</code></a>
Update changelog for release</li>
<li><a
href="67355f273b"><code>67355f2</code></a>
Bump version to 0.23.26</li>
<li><a
href="86da0f3448"><code>86da0f3</code></a>
Fix lint</li>
<li><a
href="54c86d8fd9"><code>54c86d8</code></a>
Expose displayPartsToMarkdown</li>
<li><a
href="37fe88302e"><code>37fe883</code></a>
Ignore parameters of parameters</li>
<li><a
href="0a52e7452c"><code>0a52e74</code></a>
Fix <a
href="https://github-redirect.dependabot.com/TypeStrong/TypeDoc/issues/2170">#2170</a></li>
<li><a
href="7a48a172ff"><code>7a48a17</code></a>
Document additional changes</li>
<li><a
href="3343cc44d2"><code>3343cc4</code></a>
Fix crash when converting undefined default export</li>
<li><a
href="6ee136acbf"><code>6ee136a</code></a>
feat: add validator run event to allow plugins to perform custom
validation (...</li>
<li><a
href="1d4922ca0b"><code>1d4922c</code></a>
Update minimatch to avoid type hackery</li>
<li>Additional commits viewable in <a
href="https://github.com/TypeStrong/TypeDoc/compare/v0.23.25...v0.23.26">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=typedoc&package-manager=npm_and_yarn&previous-version=0.23.25&new-version=0.23.26)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-03-03 14:05:35 -06:00
dependabot[bot]
9d6e36b8cb chore(deps-dev): Bump @types/node from 18.14.0 to 18.14.2 in /node (#266)
Bumps
[@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node)
from 18.14.0 to 18.14.2.
<details>
<summary>Commits</summary>
<ul>
<li>See full diff in <a
href="https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=@types/node&package-manager=npm_and_yarn&previous-version=18.14.0&new-version=18.14.2)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-03-03 14:05:27 -06:00
zach
4b2f7d2bff fix(zig): use new for loop syntax (#269) 2023-03-03 11:15:36 -08:00
Etienne ANNE
3e69ceeede feat: Add Host Functions support for Java SDK (#248) 2023-03-02 15:46:13 -06:00
Steve Manuel
581e9cea99 chore: update wasmtime to 6.0, bump extism versions (#247)
Unsure if now is the best time to do the `extism` crate version bumps,
but I figured they'd need to happen at some point in the near future
anyways. Happy to revert if there is any opposition. Also, I added back
the local `path` property to the Elixir NIF crate manifest. I want to
see if this breaks again in CI, or if we can leave it.

---------

Co-authored-by: zach <zach@dylib.so>
2023-03-01 15:24:37 -08:00
zach
48979b9f6d fix(python): export CurrentPlugin (#263) 2023-02-22 14:46:56 -08:00
dependabot[bot]
6ead4d9cd2 chore(deps-dev): Bump jest from 29.4.2 to 29.4.3 in /node (#261)
Bumps [jest](https://github.com/facebook/jest/tree/HEAD/packages/jest)
from 29.4.2 to 29.4.3.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/facebook/jest/releases">jest's
releases</a>.</em></p>
<blockquote>
<h2>v29.4.3</h2>
<h2>Features</h2>
<ul>
<li><code>[expect]</code> Update <code>toThrow()</code> to be able to
use error <code>cause</code>s (<a
href="https://github-redirect.dependabot.com/facebook/jest/pull/13606">#13606</a>)</li>
<li><code>[jest-core]</code> allow to use
<code>workerIdleMemoryLimit</code> with only 1 worker or
<code>runInBand</code> option (<a
href="https://github-redirect.dependabot.com/facebook/jest/pull/13846">#13846</a>)</li>
<li><code>[jest-message-util]</code> Add support for <a
href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Error/cause">error
<code>cause</code>s</a> (<a
href="https://github-redirect.dependabot.com/facebook/jest/pull/13868">#13868</a>
&amp; <a
href="https://github-redirect.dependabot.com/facebook/jest/pull/13912">#13912</a>)</li>
<li><code>[jest-runtime]</code> Revert <code>import assertions</code>
for JSON modules as it's been relegated to Stage 2 (<a
href="https://github-redirect.dependabot.com/facebook/jest/pull/13911">#13911</a>)</li>
</ul>
<h2>Fixes</h2>
<ul>
<li><code>[@jest/expect-utils]</code> <code>subsetEquality</code> should
consider also an object's inherited string keys (<a
href="https://github-redirect.dependabot.com/facebook/jest/pull/13824">#13824</a>)</li>
<li><code>[jest-mock]</code> Clear mock state when
<code>jest.restoreAllMocks()</code> is called (<a
href="https://github-redirect.dependabot.com/facebook/jest/pull/13867">#13867</a>)</li>
<li><code>[jest-mock]</code> Prevent <code>mockImplementationOnce</code>
and <code>mockReturnValueOnce</code> bleeding into
<code>withImplementation</code> (<a
href="https://github-redirect.dependabot.com/facebook/jest/pull/13888">#13888</a>)</li>
<li><code>[jest-mock]</code> Do not restore mocks when
<code>jest.resetAllMocks()</code> is called (<a
href="https://github-redirect.dependabot.com/facebook/jest/pull/13866">#13866</a>)</li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a href="https://github.com/brodo"><code>@​brodo</code></a> made
their first contribution in <a
href="https://github-redirect.dependabot.com/facebook/jest/pull/13868">facebook/jest#13868</a></li>
<li><a
href="https://github.com/DannyNemer"><code>@​DannyNemer</code></a> made
their first contribution in <a
href="https://github-redirect.dependabot.com/facebook/jest/pull/13878">facebook/jest#13878</a></li>
<li><a href="https://github.com/ghusse"><code>@​ghusse</code></a> made
their first contribution in <a
href="https://github-redirect.dependabot.com/facebook/jest/pull/13846">facebook/jest#13846</a></li>
<li><a href="https://github.com/broofa"><code>@​broofa</code></a> made
their first contribution in <a
href="https://github-redirect.dependabot.com/facebook/jest/pull/13911">facebook/jest#13911</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/facebook/jest/compare/v29.4.2...v29.4.3">https://github.com/facebook/jest/compare/v29.4.2...v29.4.3</a></p>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/facebook/jest/blob/main/CHANGELOG.md">jest's
changelog</a>.</em></p>
<blockquote>
<h2>29.4.3</h2>
<h3>Features</h3>
<ul>
<li><code>[expect]</code> Update <code>toThrow()</code> to be able to
use error <code>cause</code>s (<a
href="https://github-redirect.dependabot.com/facebook/jest/pull/13606">#13606</a>)</li>
<li><code>[jest-core]</code> allow to use
<code>workerIdleMemoryLimit</code> with only 1 worker or
<code>runInBand</code> option (<a
href="https://github-redirect.dependabot.com/facebook/jest/pull/13846">#13846</a>)</li>
<li><code>[jest-message-util]</code> Add support for <a
href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Error/cause">error
<code>cause</code>s</a> (<a
href="https://github-redirect.dependabot.com/facebook/jest/pull/13868">#13868</a>
&amp; <a
href="https://github-redirect.dependabot.com/facebook/jest/pull/13912">#13912</a>)</li>
<li><code>[jest-runtime]</code> Revert <code>import assertions</code>
for JSON modules as it's been relegated to Stage 2 (<a
href="https://github-redirect.dependabot.com/facebook/jest/pull/13911">#13911</a>)</li>
</ul>
<h3>Fixes</h3>
<ul>
<li><code>[@jest/expect-utils]</code> <code>subsetEquality</code> should
consider also an object's inherited string keys (<a
href="https://github-redirect.dependabot.com/facebook/jest/pull/13824">#13824</a>)</li>
<li><code>[jest-mock]</code> Clear mock state when
<code>jest.restoreAllMocks()</code> is called (<a
href="https://github-redirect.dependabot.com/facebook/jest/pull/13867">#13867</a>)</li>
<li><code>[jest-mock]</code> Prevent <code>mockImplementationOnce</code>
and <code>mockReturnValueOnce</code> bleeding into
<code>withImplementation</code> (<a
href="https://github-redirect.dependabot.com/facebook/jest/pull/13888">#13888</a>)</li>
<li><code>[jest-mock]</code> Do not restore mocks when
<code>jest.resetAllMocks()</code> is called (<a
href="https://github-redirect.dependabot.com/facebook/jest/pull/13866">#13866</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="a49c88610e"><code>a49c886</code></a>
v29.4.3</li>
<li><a
href="6d2632adae"><code>6d2632a</code></a>
Update copyrights with Meta Platforms, restore original license in
Jasmine fo...</li>
<li>See full diff in <a
href="https://github.com/facebook/jest/commits/v29.4.3/packages/jest">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=jest&package-manager=npm_and_yarn&previous-version=29.4.2&new-version=29.4.3)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-02-22 15:11:02 -06:00
dependabot[bot]
08e708bac5 chore(deps-dev): Bump @types/node from 18.13.0 to 18.14.0 in /node (#262)
Bumps
[@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node)
from 18.13.0 to 18.14.0.
<details>
<summary>Commits</summary>
<ul>
<li>See full diff in <a
href="https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=@types/node&package-manager=npm_and_yarn&previous-version=18.13.0&new-version=18.14.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-02-22 15:10:53 -06:00
Doğu Us
602ca04f11 fix(zig-sdk): Fix Example And Test (#260) 2023-02-17 09:27:42 -07:00
dependabot[bot]
8135952842 chore(deps-dev): Bump prettier from 2.8.3 to 2.8.4 in /node (#259)
Bumps [prettier](https://github.com/prettier/prettier) from 2.8.3 to
2.8.4.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/prettier/prettier/releases">prettier's
releases</a>.</em></p>
<blockquote>
<h2>2.8.4</h2>
<p>🔗 <a
href="https://github.com/prettier/prettier/blob/main/CHANGELOG.md#284">Changelog</a></p>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/prettier/prettier/blob/main/CHANGELOG.md">prettier's
changelog</a>.</em></p>
<blockquote>
<h1>2.8.4</h1>
<p><a
href="https://github.com/prettier/prettier/compare/2.8.3...2.8.4">diff</a></p>
<h4>Fix leading comments in mapped types with <code>readonly</code> (<a
href="https://github-redirect.dependabot.com/prettier/prettier/pull/13427">#13427</a>
by <a href="https://github.com/thorn0"><code>@​thorn0</code></a>, <a
href="https://github.com/sosukesuzuki"><code>@​sosukesuzuki</code></a>)</h4>
<!-- raw HTML omitted -->
<pre lang="tsx"><code>// Input
type Type = {
  // comment
  readonly [key in Foo];
};
<p>// Prettier 2.8.3
type Type = {
readonly // comment
[key in Foo];
};</p>
<p>// Prettier 2.8.4
type Type = {
// comment
readonly [key in Foo];
};
</code></pre></p>
<h4>Group params in opening block statements (<a
href="https://github-redirect.dependabot.com/prettier/prettier/pull/14067">#14067</a>
by <a
href="https://github.com/jamescdavis"><code>@​jamescdavis</code></a>)</h4>
<p>This is a follow-up to <a
href="https://github-redirect.dependabot.com/prettier/prettier/issues/13930">#13930</a>
to establish wrapping consistency between opening block statements and
else blocks by
grouping params in opening blocks. This causes params to break to a new
line together and not be split across lines
unless the length of params exceeds the print width. This also updates
the else block wrapping to behave exactly the
same as opening blocks.</p>
<!-- raw HTML omitted -->
<pre lang="hbs"><code>{{! Input }}
{{#block param param param param param param param param param param as
|blockParam|}}
  Hello
{{else block param param param param param param param param param param
as |blockParam|}}
  There
{{/block}}
<p>{{! Prettier 2.8.3 }}
{{#block
param
param
param
param
param
&lt;/tr&gt;&lt;/table&gt;
</code></pre></p>
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="e681edb67c"><code>e681edb</code></a>
Release 2.8.4</li>
<li><a
href="6bb24b2c5a"><code>6bb24b2</code></a>
Fix leading comments in mapped types with <code>readonly</code>
(Cherry-pick <a
href="https://github-redirect.dependabot.com/prettier/prettier/issues/13427">#13427</a>)
(<a
href="https://github-redirect.dependabot.com/prettier/prettier/issues/1">#1</a>...</li>
<li><a
href="399f2fae40"><code>399f2fa</code></a>
Add changelog for <a
href="https://github-redirect.dependabot.com/prettier/prettier/issues/14206">#14206</a>
(<a
href="https://github-redirect.dependabot.com/prettier/prettier/issues/14311">#14311</a>)</li>
<li><a
href="9842b29ca3"><code>9842b29</code></a>
Recognize <code>@satisfies</code> in Closure-style type casts (<a
href="https://github-redirect.dependabot.com/prettier/prettier/issues/14262">#14262</a>)</li>
<li><a
href="bc18fa4397"><code>bc18fa4</code></a>
Fix incorrect removal of parentheses when using an <code>infer</code>
with a constraint ...</li>
<li><a
href="f602be5a47"><code>f602be5</code></a>
Update <code>embeddedLanguageFormatting</code> option documentation (<a
href="https://github-redirect.dependabot.com/prettier/prettier/issues/14048">#14048</a>)</li>
<li><a
href="37fb53acf3"><code>37fb53a</code></a>
[handlebars] group params in opening block statements (<a
href="https://github-redirect.dependabot.com/prettier/prettier/issues/14067">#14067</a>)</li>
<li><a
href="310a5b1ba5"><code>310a5b1</code></a>
Handlebars: Improve HTML void element check (<a
href="https://github-redirect.dependabot.com/prettier/prettier/issues/14110">#14110</a>)</li>
<li><a
href="62195dd1f2"><code>62195dd</code></a>
Add .sl to the list of silentlyIgnoredDirs (<a
href="https://github-redirect.dependabot.com/prettier/prettier/issues/14206">#14206</a>)</li>
<li><a
href="bf406f7728"><code>bf406f7</code></a>
Clean changelog</li>
<li>Additional commits viewable in <a
href="https://github.com/prettier/prettier/compare/2.8.3...2.8.4">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=prettier&package-manager=npm_and_yarn&previous-version=2.8.3&new-version=2.8.4)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-02-16 10:24:23 -06:00
dependabot[bot]
041e0c7b4f chore(deps-dev): Bump @types/node from 18.11.19 to 18.13.0 in /node (#258)
Bumps
[@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node)
from 18.11.19 to 18.13.0.
<details>
<summary>Commits</summary>
<ul>
<li>See full diff in <a
href="https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=@types/node&package-manager=npm_and_yarn&previous-version=18.11.19&new-version=18.13.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-02-16 10:24:14 -06:00
dependabot[bot]
a1ebfb7597 chore(deps-dev): Bump typedoc from 0.23.24 to 0.23.25 in /node (#257)
Bumps [typedoc](https://github.com/TypeStrong/TypeDoc) from 0.23.24 to
0.23.25.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/TypeStrong/TypeDoc/releases">typedoc's
releases</a>.</em></p>
<blockquote>
<h2>v0.23.25</h2>
<h3>Breaking Changes</h3>
<ul>
<li>Upgraded Shiki, if your highlight theme was set to
<code>material-&lt;theme&gt;</code>, the value will need to be changed
to
<code>material-theme-&lt;theme&gt;</code>, see the <a
href="https://github.com/shikijs/shiki/blob/main/CHANGELOG.md#0130--2023-01-27">Shiki
release notes</a>.</li>
</ul>
<h3>Features</h3>
<ul>
<li>Added new <code>excludeNotDocumentedKinds</code> variable to control
which reflection types can be removed
by the <code>excludeNotDocumented</code> option, <a
href="https://github-redirect.dependabot.com/TypeStrong/TypeDoc/issues/2162">#2162</a>.</li>
<li>Added <code>typedoc.jsonc</code>, <code>typedoc.config.js</code>,
<code>typedoc.config.cjs</code>, <code>typedoc.cjs</code> to the list of
files
which TypeDoc will automatically use as configuration files.</li>
</ul>
<h3>Bug Fixes</h3>
<ul>
<li>Entry points under <code>node_modules</code> will no longer be
ignored, <a
href="https://github-redirect.dependabot.com/TypeStrong/TypeDoc/issues/2151">#2151</a>.</li>
<li>Corrected behavior of <code>excludeNotDocumented</code> on arrow
function-variables, <a
href="https://github-redirect.dependabot.com/TypeStrong/TypeDoc/issues/2156">#2156</a>.</li>
<li>Added <code>package.json</code> to exports declaration.</li>
</ul>
<h3>Thanks!</h3>
<ul>
<li><a
href="https://github.com/boneskull"><code>@​boneskull</code></a></li>
<li><a
href="https://github.com/Mikkal24"><code>@​Mikkal24</code></a></li>
<li><a href="https://github.com/zamiell"><code>@​zamiell</code></a></li>
</ul>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/TypeStrong/typedoc/blob/master/CHANGELOG.md">typedoc's
changelog</a>.</em></p>
<blockquote>
<h2>v0.23.25 (2023-02-11)</h2>
<h3>Breaking Changes</h3>
<ul>
<li>Upgraded Shiki, if your highlight theme was set to
<code>material-&lt;theme&gt;</code>, the value will need to be changed
to
<code>material-theme-&lt;theme&gt;</code>, see the <a
href="https://github.com/shikijs/shiki/blob/main/CHANGELOG.md#0130--2023-01-27">Shiki
release notes</a>.</li>
</ul>
<h3>Features</h3>
<ul>
<li>Added new <code>excludeNotDocumentedKinds</code> variable to control
which reflection types can be removed
by the <code>excludeNotDocumented</code> option, <a
href="https://github-redirect.dependabot.com/TypeStrong/TypeDoc/issues/2162">#2162</a>.</li>
<li>Added <code>typedoc.jsonc</code>, <code>typedoc.config.js</code>,
<code>typedoc.config.cjs</code>, <code>typedoc.cjs</code> to the list of
files
which TypeDoc will automatically use as configuration files.</li>
</ul>
<h3>Bug Fixes</h3>
<ul>
<li>Entry points under <code>node_modules</code> will no longer be
ignored, <a
href="https://github-redirect.dependabot.com/TypeStrong/TypeDoc/issues/2151">#2151</a>.</li>
<li>Corrected behavior of <code>excludeNotDocumented</code> on arrow
function-variables, <a
href="https://github-redirect.dependabot.com/TypeStrong/TypeDoc/issues/2156">#2156</a>.</li>
<li>Added <code>package.json</code> to exports declaration.</li>
</ul>
<h3>Thanks!</h3>
<ul>
<li><a
href="https://github.com/boneskull"><code>@​boneskull</code></a></li>
<li><a
href="https://github.com/Mikkal24"><code>@​Mikkal24</code></a></li>
<li><a href="https://github.com/zamiell"><code>@​zamiell</code></a></li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="c565bc618e"><code>c565bc6</code></a>
Update changelog for release</li>
<li><a
href="c189157797"><code>c189157</code></a>
Bump version to 0.23.25</li>
<li><a
href="772fd7f1b9"><code>772fd7f</code></a>
Fix type error</li>
<li><a
href="ca5d5e655a"><code>ca5d5e6</code></a>
Fix excludeNotDocumented on arrow functions</li>
<li><a
href="f838e112bf"><code>f838e11</code></a>
Revert bad test change</li>
<li><a
href="f6ea91e275"><code>f6ea91e</code></a>
esbuild breaking changes</li>
<li><a
href="e021751e5f"><code>e021751</code></a>
Upgrade dependencies</li>
<li><a
href="138a52b678"><code>138a52b</code></a>
Add excludeNotDocumentedKinds option</li>
<li><a
href="d82c01b0a4"><code>d82c01b</code></a>
feat: better config file defaults (<a
href="https://github-redirect.dependabot.com/TypeStrong/TypeDoc/issues/2168">#2168</a>)</li>
<li><a
href="2953f9c521"><code>2953f9c</code></a>
Merge pull request <a
href="https://github-redirect.dependabot.com/TypeStrong/TypeDoc/issues/2164">#2164</a>
from boneskull/boneskull/issue2151</li>
<li>Additional commits viewable in <a
href="https://github.com/TypeStrong/TypeDoc/compare/v0.23.24...v0.23.25">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=typedoc&package-manager=npm_and_yarn&previous-version=0.23.24&new-version=0.23.25)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-02-16 10:24:04 -06:00
dependabot[bot]
1eaa7854d7 chore(deps-dev): Bump jest from 29.4.1 to 29.4.2 in /node (#256)
Bumps [jest](https://github.com/facebook/jest/tree/HEAD/packages/jest)
from 29.4.1 to 29.4.2.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/facebook/jest/releases">jest's
releases</a>.</em></p>
<blockquote>
<h2>v29.4.2</h2>
<h2>Features</h2>
<ul>
<li><code>[@jest/core]</code> Instrument significant lifecycle events
with <a
href="https://nodejs.org/docs/latest-v16.x/api/perf_hooks.html#performancemarkname-options"><code>performance.mark()</code></a>
(<a
href="https://github-redirect.dependabot.com/facebook/jest/pull/13859">#13859</a>)</li>
</ul>
<h2>Fixes</h2>
<ul>
<li><code>[expect, @jest/expect]</code> Provide type of
<code>actual</code> as a generic argument to <code>Matchers</code> to
allow better-typed extensions (<a
href="https://github-redirect.dependabot.com/facebook/jest/pull/13848">#13848</a>)</li>
<li><code>[jest-circus]</code> Added explicit mention of test failing
because <code>done()</code> is not being called in error message (<a
href="https://github-redirect.dependabot.com/facebook/jest/pull/13847">#13847</a>)</li>
<li><code>[jest-runtime]</code> Handle CJS re-exports of node core
modules from ESM (<a
href="https://github-redirect.dependabot.com/facebook/jest/pull/13856">#13856</a>)</li>
<li><code>[jest-transform]</code> Downgrade
<code>write-file-atomic</code> to v4 (<a
href="https://github-redirect.dependabot.com/facebook/jest/pull/13853">#13853</a>)</li>
<li><code>[jest-worker]</code> Ignore IPC messages not intended for Jest
(<a
href="https://github-redirect.dependabot.com/facebook/jest/pull/13543">#13543</a>)</li>
</ul>
<h2>Chore &amp; Maintenance</h2>
<ul>
<li><code>[*]</code> make sure to exclude <code>.eslintcache</code> from
published module (<a
href="https://github-redirect.dependabot.com/facebook/jest/pull/13832">#13832</a>)</li>
<li><code>[docs]</code> Cleanup incorrect links in CHANGELOG.md (<a
href="https://github-redirect.dependabot.com/facebook/jest/pull/13857">#13857</a>)</li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a
href="https://github.com/benjaminjkraft"><code>@​benjaminjkraft</code></a>
made their first contribution in <a
href="https://github-redirect.dependabot.com/facebook/jest/pull/13848">facebook/jest#13848</a></li>
<li><a href="https://github.com/LinusU"><code>@​LinusU</code></a> made
their first contribution in <a
href="https://github-redirect.dependabot.com/facebook/jest/pull/13543">facebook/jest#13543</a></li>
<li><a
href="https://github.com/SuperSodaSea"><code>@​SuperSodaSea</code></a>
made their first contribution in <a
href="https://github-redirect.dependabot.com/facebook/jest/pull/13857">facebook/jest#13857</a></li>
<li><a href="https://github.com/kowalski"><code>@​kowalski</code></a>
made their first contribution in <a
href="https://github-redirect.dependabot.com/facebook/jest/pull/13856">facebook/jest#13856</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/facebook/jest/compare/v29.4.1...v29.4.2">https://github.com/facebook/jest/compare/v29.4.1...v29.4.2</a></p>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/facebook/jest/blob/main/CHANGELOG.md">jest's
changelog</a>.</em></p>
<blockquote>
<h2>29.4.2</h2>
<h3>Features</h3>
<ul>
<li><code>[@jest/core]</code> Instrument significant lifecycle events
with <a
href="https://nodejs.org/docs/latest-v16.x/api/perf_hooks.html#performancemarkname-options"><code>performance.mark()</code></a>
(<a
href="https://github-redirect.dependabot.com/facebook/jest/pull/13859">#13859</a>)</li>
</ul>
<h3>Fixes</h3>
<ul>
<li><code>[expect, @jest/expect]</code> Provide type of
<code>actual</code> as a generic argument to <code>Matchers</code> to
allow better-typed extensions (<a
href="https://github-redirect.dependabot.com/facebook/jest/pull/13848">#13848</a>)</li>
<li><code>[jest-circus]</code> Added explicit mention of test failing
because <code>done()</code> is not being called in error message (<a
href="https://github-redirect.dependabot.com/facebook/jest/pull/13847">#13847</a>)</li>
<li><code>[jest-runtime]</code> Handle CJS re-exports of node core
modules from ESM (<a
href="https://github-redirect.dependabot.com/facebook/jest/pull/13856">#13856</a>)</li>
<li><code>[jest-transform]</code> Downgrade
<code>write-file-atomic</code> to v4 (<a
href="https://github-redirect.dependabot.com/facebook/jest/pull/13853">#13853</a>)</li>
<li><code>[jest-worker]</code> Ignore IPC messages not intended for Jest
(<a
href="https://github-redirect.dependabot.com/facebook/jest/pull/13543">#13543</a>)</li>
</ul>
<h3>Chore &amp; Maintenance</h3>
<ul>
<li><code>[*]</code> make sure to exclude <code>.eslintcache</code> from
published module (<a
href="https://github-redirect.dependabot.com/facebook/jest/pull/13832">#13832</a>)</li>
<li><code>[docs]</code> Cleanup incorrect links in CHANGELOG.md (<a
href="https://github-redirect.dependabot.com/facebook/jest/pull/13857">#13857</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="f0fc92e844"><code>f0fc92e</code></a>
v29.4.2</li>
<li><a
href="bc7b20c9d4"><code>bc7b20c</code></a>
chore: make sure to exclude .eslintcache from published module (<a
href="https://github.com/facebook/jest/tree/HEAD/packages/jest/issues/13832">#13832</a>)</li>
<li>See full diff in <a
href="https://github.com/facebook/jest/commits/v29.4.2/packages/jest">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=jest&package-manager=npm_and_yarn&previous-version=29.4.1&new-version=29.4.2)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-02-16 10:23:53 -06:00
zach
c706e4efec cleanup: use serde(deny_unknown_fields) in manifest (#254) 2023-02-14 11:40:42 -08:00
Doğu Us
f0f53c7827 feat(zig-sdk): Implement Host Functions (#249)
There are some breaking changes:

- Plugin.init now requires an allocator and functions slice
- Plugin.initFromManifest now requires a functions slice
- Plugin struct removed in favor of using the file as struct
- from @nilslice: https://zig.news/gowind/zig-files-are-structs-288j
(good reference!)

---------

Co-authored-by: Steve Manuel <steve@dylib.so>
2023-02-12 12:36:27 -07:00
dependabot[bot]
bc4baaf67d chore(deps-dev): Bump jest from 29.3.1 to 29.4.1 in /node (#243)
Bumps [jest](https://github.com/facebook/jest/tree/HEAD/packages/jest)
from 29.3.1 to 29.4.1.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/facebook/jest/releases">jest's
releases</a>.</em></p>
<blockquote>
<h2>v29.4.1</h2>
<h2>Features</h2>
<ul>
<li><code>[expect, jest-circus, @jest/types]</code> Implement
<code>numPassingAsserts</code> of testResults to track the number of
passing asserts in a test (<a
href="https://github-redirect.dependabot.com/facebook/jest/pull/13795">#13795</a>)</li>
<li><code>[jest-core]</code> Add newlines to JSON output (<a
href="https://github-redirect.dependabot.com/facebook/jest/pull/13817">#13817</a>)</li>
<li><code>[@jest/reporters]</code> Automatic log folding in GitHub
Actions Reporter (<a
href="https://github-redirect.dependabot.com/facebook/jest/pull/13626">#13626</a>)</li>
</ul>
<h2>Fixes</h2>
<ul>
<li><code>[@jest/expect-utils]</code> <code>toMatchObject</code> diffs
should include <code>Symbol</code> properties (<a
href="https://github-redirect.dependabot.com/facebook/jest/pull/13810">#13810</a>)</li>
<li><code>[jest-runtime]</code> Handle missing
<code>replaceProperty</code> (<a
href="https://github-redirect.dependabot.com/facebook/jest/pull/13823">#13823</a>)</li>
<li><code>[@jest/types]</code> Add partial support for <code>done</code>
callbacks in typings of <code>each</code> (<a
href="https://github-redirect.dependabot.com/facebook/jest/pull/13756">#13756</a>)</li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a
href="https://github.com/jessevanassen"><code>@​jessevanassen</code></a>
made their first contribution in <a
href="https://github-redirect.dependabot.com/facebook/jest/pull/13817">facebook/jest#13817</a></li>
<li><a href="https://github.com/ymqy"><code>@​ymqy</code></a> made their
first contribution in <a
href="https://github-redirect.dependabot.com/facebook/jest/pull/13795">facebook/jest#13795</a></li>
<li><a
href="https://github.com/MatteoH2O1999"><code>@​MatteoH2O1999</code></a>
made their first contribution in <a
href="https://github-redirect.dependabot.com/facebook/jest/pull/13626">facebook/jest#13626</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/facebook/jest/compare/v29.4.0...v29.4.1">https://github.com/facebook/jest/compare/v29.4.0...v29.4.1</a></p>
<h2>v29.4.0</h2>
<h2>Features</h2>
<ul>
<li><code>[expect, @jest/expect-utils]</code> Support custom equality
testers (<a
href="https://github-redirect.dependabot.com/facebook/jest/pull/13654">#13654</a>)</li>
<li><code>[jest-config, jest-worker]</code> Use
<code>os.availableParallelism</code> if available to calculate number of
workers to spawn (<a
href="https://github-redirect.dependabot.com/facebook/jest/pull/13738">#13738</a>)</li>
<li><code>[@jest/globals, jest-mock]</code> Add
<code>jest.replaceProperty()</code> that replaces property value (<a
href="https://github-redirect.dependabot.com/facebook/jest/pull/13496">#13496</a>)</li>
<li><code>[jest-haste-map]</code> ignore Sapling vcs directories
(<code>.sl/</code>) (<a
href="https://github-redirect.dependabot.com/facebook/jest/pull/13674">#13674</a>)</li>
<li><code>[jest-resolve]</code> Support subpath imports (<a
href="https://github-redirect.dependabot.com/facebook/jest/pull/13705">#13705</a>,
<a
href="https://github-redirect.dependabot.com/facebook/jest/pull/13723">#13723</a>,
<a
href="https://github-redirect.dependabot.com/facebook/jest/pull/13777">#13777</a>)</li>
<li><code>[jest-runtime]</code> Add
<code>jest.isolateModulesAsync</code> for scoped module initialization
of asynchronous functions (<a
href="https://github-redirect.dependabot.com/facebook/jest/pull/13680">#13680</a>)</li>
<li><code>[jest-runtime]</code> Add
<code>jest.isEnvironmentTornDown</code> function (<a
href="https://github-redirect.dependabot.com/facebook/jest/pull/13741">#13741</a>)</li>
<li><code>[jest-test-result]</code> Added <code>skipped</code> and
<code>focused</code> status to <code>FormattedTestResult</code> (<a
href="https://github-redirect.dependabot.com/facebook/jest/pull/13700">#13700</a>)</li>
<li><code>[jest-transform]</code> Support for asynchronous
<code>createTransformer</code> (<a
href="https://github-redirect.dependabot.com/facebook/jest/pull/13762">#13762</a>)</li>
</ul>
<h2>Fixes</h2>
<ul>
<li><code>[jest-environment-node]</code> Fix non-configurable globals
(<a
href="https://github-redirect.dependabot.com/facebook/jest/pull/13687">#13687</a>)</li>
<li><code>[@jest/expect-utils]</code> <code>toMatchObject</code> should
handle <code>Symbol</code> properties (<a
href="https://github-redirect.dependabot.com/facebook/jest/pull/13639">#13639</a>)</li>
<li><code>[jest-mock]</code> Fix <code>mockReset</code> and
<code>resetAllMocks</code> <code>undefined</code> return value(<a
href="https://github-redirect.dependabot.com/facebook/jest/pull/13692">#13692</a>)</li>
<li><code>[jest-resolve]</code> Add global paths to
<code>require.resolve.paths</code> (<a
href="https://github-redirect.dependabot.com/facebook/jest/pull/13633">#13633</a>)</li>
<li><code>[jest-resolve]</code> Correct node core module detection when
using <code>node:</code> specifiers (<a
href="https://github-redirect.dependabot.com/facebook/jest/pull/13806">#13806</a>)</li>
<li><code>[jest-runtime]</code> Support WASM files that import JS
resources (<a
href="https://github-redirect.dependabot.com/facebook/jest/pull/13608">#13608</a>)</li>
<li><code>[jest-runtime]</code> Use the <code>scriptTransformer</code>
cache in <code>jest-runner</code> (<a
href="https://github-redirect.dependabot.com/facebook/jest/pull/13735">#13735</a>)</li>
<li><code>[jest-runtime]</code> Enforce import assertions when importing
JSON in ESM (<a
href="https://github-redirect.dependabot.com/facebook/jest/pull/12755">#12755</a>
&amp; <a
href="https://github-redirect.dependabot.com/facebook/jest/pull/13805">#13805</a>)</li>
<li><code>[jest-snapshot]</code> Make sure to import <code>babel</code>
outside of the sandbox (<a
href="https://github-redirect.dependabot.com/facebook/jest/pull/13694">#13694</a>)</li>
<li><code>[jest-transform]</code> Ensure the correct configuration is
passed to preprocessors specified multiple times in the
<code>transform</code> option (<a
href="https://github-redirect.dependabot.com/facebook/jest/pull/13770">#13770</a>)</li>
</ul>
<h2>Chore &amp; Maintenance</h2>
<ul>
<li><code>[@jest/fake-timers]</code> Update
<code>@sinonjs/fake-timers</code> (<a
href="https://github-redirect.dependabot.com/facebook/jest/pull/13612">#13612</a>)</li>
<li><code>[docs]</code> Improve custom puppeteer example to prevent
worker warnings (<a
href="https://github-redirect.dependabot.com/facebook/jest/pull/13619">#13619</a>)</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/facebook/jest/blob/main/CHANGELOG.md">jest's
changelog</a>.</em></p>
<blockquote>
<h2>29.4.1</h2>
<h3>Features</h3>
<ul>
<li><code>[expect, jest-circus, @jest/types]</code> Implement
<code>numPassingAsserts</code> of testResults to track the number of
passing asserts in a test (<a
href="https://github-redirect.dependabot.com/facebook/jest/pull/13795">#13795</a>)</li>
<li><code>[jest-core]</code> Add newlines to JSON output (<a
href="https://github-redirect.dependabot.com/facebook/jest/pull/13817">#13817</a>)</li>
<li><code>[@jest/reporters]</code> Automatic log folding in GitHub
Actions Reporter (<a
href="https://github-redirect.dependabot.com/facebook/jest/pull/13626">#13626</a>)</li>
</ul>
<h3>Fixes</h3>
<ul>
<li><code>[@jest/expect-utils]</code> <code>toMatchObject</code> diffs
should include <code>Symbol</code> properties (<a
href="https://github-redirect.dependabot.com/facebook/jest/pull/13810">#13810</a>)</li>
<li><code>[jest-runtime]</code> Handle missing
<code>replaceProperty</code> (<a
href="https://github-redirect.dependabot.com/facebook/jest/pull/13823">#13823</a>)</li>
<li><code>[@jest/types]</code> Add partial support for <code>done</code>
callbacks in typings of <code>each</code> (<a
href="https://github-redirect.dependabot.com/facebook/jest/pull/13756">#13756</a>)</li>
</ul>
<h2>29.4.0</h2>
<h3>Features</h3>
<ul>
<li><code>[expect, @jest/expect-utils]</code> Support custom equality
testers (<a
href="https://github-redirect.dependabot.com/facebook/jest/pull/13654">#13654</a>)</li>
<li><code>[jest-config, jest-worker]</code> Use
<code>os.availableParallelism</code> if available to calculate number of
workers to spawn (<a
href="https://github-redirect.dependabot.com/facebook/jest/pull/13738">#13738</a>)</li>
<li><code>[@jest/globals, jest-mock]</code> Add
<code>jest.replaceProperty()</code> that replaces property value (<a
href="https://github-redirect.dependabot.com/facebook/jest/pull/13496">#13496</a>)</li>
<li><code>[jest-haste-map]</code> ignore Sapling vcs directories
(<code>.sl/</code>) (<a
href="https://github-redirect.dependabot.com/facebook/jest/pull/13674">#13674</a>)</li>
<li><code>[jest-resolve]</code> Support subpath imports (<a
href="https://github-redirect.dependabot.com/facebook/jest/pull/13705">#13705</a>,
<a
href="https://github-redirect.dependabot.com/facebook/jest/pull/13723">#13723</a>,
<a
href="https://github-redirect.dependabot.com/facebook/jest/pull/13777">#13777</a>)</li>
<li><code>[jest-runtime]</code> Add
<code>jest.isolateModulesAsync</code> for scoped module initialization
of asynchronous functions (<a
href="https://github-redirect.dependabot.com/facebook/jest/pull/13680">#13680</a>)</li>
<li><code>[jest-runtime]</code> Add
<code>jest.isEnvironmentTornDown</code> function (<a
href="https://github-redirect.dependabot.com/facebook/jest/pull/13741">#13741</a>)</li>
<li><code>[jest-test-result]</code> Added <code>skipped</code> and
<code>focused</code> status to <code>FormattedTestResult</code> (<a
href="https://github-redirect.dependabot.com/facebook/jest/pull/13700">#13700</a>)</li>
<li><code>[jest-transform]</code> Support for asynchronous
<code>createTransformer</code> (<a
href="https://github-redirect.dependabot.com/facebook/jest/pull/13762">#13762</a>)</li>
</ul>
<h3>Fixes</h3>
<ul>
<li><code>[jest-environment-node]</code> Fix non-configurable globals
(<a
href="https://github-redirect.dependabot.com/facebook/jest/pull/13687">#13687</a>)</li>
<li><code>[@jest/expect-utils]</code> <code>toMatchObject</code> should
handle <code>Symbol</code> properties (<a
href="https://github-redirect.dependabot.com/facebook/jest/pull/13639">#13639</a>)</li>
<li><code>[jest-mock]</code> Fix <code>mockReset</code> and
<code>resetAllMocks</code> <code>undefined</code> return value(<a
href="https://github-redirect.dependabot.com/facebook/jest/pull/13692">#13692</a>)</li>
<li><code>[jest-resolve]</code> Add global paths to
<code>require.resolve.paths</code> (<a
href="https://github-redirect.dependabot.com/facebook/jest/pull/13633">#13633</a>)</li>
<li><code>[jest-resolve]</code> Correct node core module detection when
using <code>node:</code> specifiers (<a
href="https://github-redirect.dependabot.com/facebook/jest/pull/13806">#13806</a>)</li>
<li><code>[jest-runtime]</code> Support WASM files that import JS
resources (<a
href="https://github-redirect.dependabot.com/facebook/jest/pull/13608">#13608</a>)</li>
<li><code>[jest-runtime]</code> Use the <code>scriptTransformer</code>
cache in <code>jest-runner</code> (<a
href="https://github-redirect.dependabot.com/facebook/jest/pull/13735">#13735</a>)</li>
<li><code>[jest-runtime]</code> Enforce import assertions when importing
JSON in ESM (<a
href="https://github-redirect.dependabot.com/facebook/jest/pull/12755">#12755</a>
&amp; <a
href="https://github-redirect.dependabot.com/facebook/jest/pull/13805">#13805</a>)</li>
<li><code>[jest-snapshot]</code> Make sure to import <code>babel</code>
outside of the sandbox (<a
href="https://github-redirect.dependabot.com/facebook/jest/pull/13694">#13694</a>)</li>
<li><code>[jest-transform]</code> Ensure the correct configuration is
passed to preprocessors specified multiple times in the
<code>transform</code> option (<a
href="https://github-redirect.dependabot.com/facebook/jest/pull/13770">#13770</a>)</li>
</ul>
<h3>Chore &amp; Maintenance</h3>
<ul>
<li><code>[@jest/fake-timers]</code> Update
<code>@sinonjs/fake-timers</code> (<a
href="https://github-redirect.dependabot.com/facebook/jest/pull/13612">#13612</a>)</li>
<li><code>[docs]</code> Improve custom puppeteer example to prevent
worker warnings (<a
href="https://github-redirect.dependabot.com/facebook/jest/pull/13619">#13619</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="bc84c8a156"><code>bc84c8a</code></a>
v29.4.1</li>
<li><a
href="4bc0e8acaf"><code>4bc0e8a</code></a>
v29.4.0</li>
<li><a
href="6e5b1d60a1"><code>6e5b1d6</code></a>
chore: update typescript (<a
href="https://github.com/facebook/jest/tree/HEAD/packages/jest/issues/13616">#13616</a>)</li>
<li>See full diff in <a
href="https://github.com/facebook/jest/commits/v29.4.1/packages/jest">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=jest&package-manager=npm_and_yarn&previous-version=29.3.1&new-version=29.4.1)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-02-12 11:04:28 -07:00
dependabot[bot]
e05169c3f1 chore(deps-dev): Update black requirement from ^22.10.0 to ^23.1.0 in /python (#250)
Updates the requirements on [black](https://github.com/psf/black) to
permit the latest version.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/psf/black/releases">black's
releases</a>.</em></p>
<blockquote>
<h2>23.1.0</h2>
<h3>Highlights</h3>
<p>This is the first release of 2023, and following our <a
href="https://black.readthedocs.io/en/stable/the_black_code_style/index.html#stability-policy">stability
policy</a>, it comes with a number of improvements to our stable style,
notably improvements to empty line handling and the removal of redundant
parentheses in several contexts.</p>
<p>There are also many changes to the preview style; try out <code>black
--preview</code> and give us feedback to help us set the stable style
for next year.</p>
<p>In addition to style changes, Black now automatically infers the
supported Python versions from your <code>pyproject.toml</code> file,
removing the need to set Black's target versions separately.</p>
<h3>Stable style</h3>
<!-- raw HTML omitted -->
<ul>
<li>Introduce the 2023 stable style, which incorporates most aspects of
last year's preview style (<a
href="https://github-redirect.dependabot.com/psf/black/issues/3418">#3418</a>).
Specific changes:
<ul>
<li>Enforce empty lines before classes and functions with sticky leading
comments (<a
href="https://github-redirect.dependabot.com/psf/black/issues/3302">#3302</a>)
(22.12.0)</li>
<li>Reformat empty and whitespace-only files as either an empty file (if
no newline is present) or as a single newline character (if a newline is
present) (<a
href="https://github-redirect.dependabot.com/psf/black/issues/3348">#3348</a>)
(22.12.0)</li>
<li>Correctly handle trailing commas that are inside a line's leading
non-nested parens (<a
href="https://github-redirect.dependabot.com/psf/black/issues/3370">#3370</a>)
(22.12.0)</li>
<li><code>--skip-string-normalization</code> / <code>-S</code> now
prevents docstring prefixes from being normalized as expected (<a
href="https://github-redirect.dependabot.com/psf/black/issues/3168">#3168</a>)
(since 22.8.0)</li>
<li>When using <code>--skip-magic-trailing-comma</code> or
<code>-C</code>, trailing commas are stripped from subscript expressions
with more than 1 element (<a
href="https://github-redirect.dependabot.com/psf/black/issues/3209">#3209</a>)
(22.8.0)</li>
<li>Fix a string merging/split issue when a comment is present in the
middle of implicitly concatenated strings on its own line (<a
href="https://github-redirect.dependabot.com/psf/black/issues/3227">#3227</a>)
(22.8.0)</li>
<li>Docstring quotes are no longer moved if it would violate the line
length limit (<a
href="https://github-redirect.dependabot.com/psf/black/issues/3044">#3044</a>,
<a
href="https://github-redirect.dependabot.com/psf/black/issues/3430">#3430</a>)
(22.6.0)</li>
<li>Parentheses around return annotations are now managed (<a
href="https://github-redirect.dependabot.com/psf/black/issues/2990">#2990</a>)
(22.6.0)</li>
<li>Remove unnecessary parentheses around awaited objects (<a
href="https://github-redirect.dependabot.com/psf/black/issues/2991">#2991</a>)
(22.6.0)</li>
<li>Remove unnecessary parentheses in <code>with</code> statements (<a
href="https://github-redirect.dependabot.com/psf/black/issues/2926">#2926</a>)
(22.6.0)</li>
<li>Remove trailing newlines after code block open (<a
href="https://github-redirect.dependabot.com/psf/black/issues/3035">#3035</a>)
(22.6.0)</li>
<li>Code cell separators <code>#%%</code> are now standardised to
<code># %%</code> (<a
href="https://github-redirect.dependabot.com/psf/black/issues/2919">#2919</a>)
(22.3.0)</li>
<li>Remove unnecessary parentheses from <code>except</code> statements
(<a
href="https://github-redirect.dependabot.com/psf/black/issues/2939">#2939</a>)
(22.3.0)</li>
<li>Remove unnecessary parentheses from tuple unpacking in
<code>for</code> loops (<a
href="https://github-redirect.dependabot.com/psf/black/issues/2945">#2945</a>)
(22.3.0)</li>
<li>Avoid magic-trailing-comma in single-element subscripts (<a
href="https://github-redirect.dependabot.com/psf/black/issues/2942">#2942</a>)
(22.3.0)</li>
</ul>
</li>
<li>Fix a crash when a colon line is marked between <code># fmt:
off</code> and <code># fmt: on</code> (<a
href="https://github-redirect.dependabot.com/psf/black/issues/3439">#3439</a>)</li>
</ul>
<h3>Preview style</h3>
<!-- raw HTML omitted -->
<ul>
<li>Format hex codes in unicode escape sequences in string literals (<a
href="https://github-redirect.dependabot.com/psf/black/issues/2916">#2916</a>)</li>
<li>Add parentheses around <code>if</code>-<code>else</code> expressions
(<a
href="https://github-redirect.dependabot.com/psf/black/issues/2278">#2278</a>)</li>
<li>Improve performance on large expressions that contain many strings
(<a
href="https://github-redirect.dependabot.com/psf/black/issues/3467">#3467</a>)</li>
<li>Fix a crash in preview style with assert + parenthesized string (<a
href="https://github-redirect.dependabot.com/psf/black/issues/3415">#3415</a>)</li>
<li>Fix crashes in preview style with walrus operators used in function
return annotations and except clauses (<a
href="https://github-redirect.dependabot.com/psf/black/issues/3423">#3423</a>)</li>
<li>Fix a crash in preview advanced string processing where mixed
implicitly concatenated regular and f-strings start with an empty span
(<a
href="https://github-redirect.dependabot.com/psf/black/issues/3463">#3463</a>)</li>
<li>Fix a crash in preview advanced string processing where a standalone
comment is placed before a dict's value (<a
href="https://github-redirect.dependabot.com/psf/black/issues/3469">#3469</a>)</li>
<li>Fix an issue where extra empty lines are added when a decorator has
<code># fmt: skip</code> applied or there is a standalone comment
between decorators (<a
href="https://github-redirect.dependabot.com/psf/black/issues/3470">#3470</a>)</li>
<li>Do not put the closing quotes in a docstring on a separate line,
even if the line is too long (<a
href="https://github-redirect.dependabot.com/psf/black/issues/3430">#3430</a>)</li>
<li>Long values in dict literals are now wrapped in parentheses;
correspondingly unnecessary parentheses around short values in dict
literals are now removed; long string lambda values are now wrapped in
parentheses (<a
href="https://github-redirect.dependabot.com/psf/black/issues/3440">#3440</a>)</li>
<li>Fix two crashes in preview style involving edge cases with
docstrings (<a
href="https://github-redirect.dependabot.com/psf/black/issues/3451">#3451</a>)</li>
<li>Exclude string type annotations from improved string processing; fix
crash when the return type annotation is stringified and spans across
multiple lines (<a
href="https://github-redirect.dependabot.com/psf/black/issues/3462">#3462</a>)</li>
<li>Wrap multiple context managers in parentheses when targeting Python
3.9+ (<a
href="https://github-redirect.dependabot.com/psf/black/issues/3489">#3489</a>)</li>
<li>Fix several crashes in preview style with walrus operators used in
<code>with</code> statements or tuples (<a
href="https://github-redirect.dependabot.com/psf/black/issues/3473">#3473</a>)</li>
<li>Fix an invalid quote escaping bug in f-string expressions where it
produced invalid code. Implicitly concatenated f-strings with different
quotes can now be merged or quote-normalized by changing the quotes used
in expressions. (<a
href="https://github-redirect.dependabot.com/psf/black/issues/3509">#3509</a>)</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/psf/black/blob/main/CHANGES.md">black's
changelog</a>.</em></p>
<blockquote>
<h2>23.1.0</h2>
<h3>Highlights</h3>
<p>This is the first release of 2023, and following our
<a
href="https://black.readthedocs.io/en/stable/the_black_code_style/index.html#stability-policy">stability
policy</a>,
it comes with a number of improvements to our stable style, including
improvements to
empty line handling, removal of redundant parentheses in several
contexts, and output
that highlights implicitly concatenated strings better.</p>
<p>There are also many changes to the preview style; try out <code>black
--preview</code> and give us
feedback to help us set the stable style for next year.</p>
<p>In addition to style changes, Black now automatically infers the
supported Python
versions from your <code>pyproject.toml</code> file, removing the need
to set Black's target
versions separately.</p>
<h3>Stable style</h3>
<!-- raw HTML omitted -->
<ul>
<li>Introduce the 2023 stable style, which incorporates most aspects of
last year's
preview style (<a
href="https://github-redirect.dependabot.com/psf/black/issues/3418">#3418</a>).
Specific changes:
<ul>
<li>Enforce empty lines before classes and functions with sticky leading
comments
(<a
href="https://github-redirect.dependabot.com/psf/black/issues/3302">#3302</a>)
(22.12.0)</li>
<li>Reformat empty and whitespace-only files as either an empty file (if
no newline is
present) or as a single newline character (if a newline is present) (<a
href="https://github-redirect.dependabot.com/psf/black/issues/3348">#3348</a>)
(22.12.0)</li>
<li>Implicitly concatenated strings used as function args are now
wrapped inside
parentheses (<a
href="https://github-redirect.dependabot.com/psf/black/issues/3307">#3307</a>)
(22.12.0)</li>
<li>Correctly handle trailing commas that are inside a line's leading
non-nested parens
(<a
href="https://github-redirect.dependabot.com/psf/black/issues/3370">#3370</a>)
(22.12.0)</li>
<li><code>--skip-string-normalization</code> / <code>-S</code> now
prevents docstring prefixes from being
normalized as expected (<a
href="https://github-redirect.dependabot.com/psf/black/issues/3168">#3168</a>)
(since 22.8.0)</li>
<li>When using <code>--skip-magic-trailing-comma</code> or
<code>-C</code>, trailing commas are stripped from
subscript expressions with more than 1 element (<a
href="https://github-redirect.dependabot.com/psf/black/issues/3209">#3209</a>)
(22.8.0)</li>
<li>Implicitly concatenated strings inside a list, set, or tuple are now
wrapped inside
parentheses (<a
href="https://github-redirect.dependabot.com/psf/black/issues/3162">#3162</a>)
(22.8.0)</li>
<li>Fix a string merging/split issue when a comment is present in the
middle of
implicitly concatenated strings on its own line (<a
href="https://github-redirect.dependabot.com/psf/black/issues/3227">#3227</a>)
(22.8.0)</li>
<li>Docstring quotes are no longer moved if it would violate the line
length limit
(<a
href="https://github-redirect.dependabot.com/psf/black/issues/3044">#3044</a>,
<a
href="https://github-redirect.dependabot.com/psf/black/issues/3430">#3430</a>)
(22.6.0)</li>
<li>Parentheses around return annotations are now managed (<a
href="https://github-redirect.dependabot.com/psf/black/issues/2990">#2990</a>)
(22.6.0)</li>
<li>Remove unnecessary parentheses around awaited objects (<a
href="https://github-redirect.dependabot.com/psf/black/issues/2991">#2991</a>)
(22.6.0)</li>
<li>Remove unnecessary parentheses in <code>with</code> statements (<a
href="https://github-redirect.dependabot.com/psf/black/issues/2926">#2926</a>)
(22.6.0)</li>
<li>Remove trailing newlines after code block open (<a
href="https://github-redirect.dependabot.com/psf/black/issues/3035">#3035</a>)
(22.6.0)</li>
<li>Code cell separators <code>#%%</code> are now standardised to
<code># %%</code> (<a
href="https://github-redirect.dependabot.com/psf/black/issues/2919">#2919</a>)
(22.3.0)</li>
<li>Remove unnecessary parentheses from <code>except</code> statements
(<a
href="https://github-redirect.dependabot.com/psf/black/issues/2939">#2939</a>)
(22.3.0)</li>
<li>Remove unnecessary parentheses from tuple unpacking in
<code>for</code> loops (<a
href="https://github-redirect.dependabot.com/psf/black/issues/2945">#2945</a>)
(22.3.0)</li>
<li>Avoid magic-trailing-comma in single-element subscripts (<a
href="https://github-redirect.dependabot.com/psf/black/issues/2942">#2942</a>)
(22.3.0)</li>
</ul>
</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="b0d1fba7ac"><code>b0d1fba</code></a>
Prepare release 23.1.0 (<a
href="https://github-redirect.dependabot.com/psf/black/issues/3536">#3536</a>)</li>
<li><a
href="69ca0a4c7a"><code>69ca0a4</code></a>
Infer target version based on project metadata (<a
href="https://github-redirect.dependabot.com/psf/black/issues/3219">#3219</a>)</li>
<li><a
href="c4bd2e31ce"><code>c4bd2e3</code></a>
Draft for Black 2023 stable style (<a
href="https://github-redirect.dependabot.com/psf/black/issues/3418">#3418</a>)</li>
<li><a
href="226cbf0226"><code>226cbf0</code></a>
Fix unsafe cast in linegen.py w/ await yield handling (<a
href="https://github-redirect.dependabot.com/psf/black/issues/3533">#3533</a>)</li>
<li><a
href="f4ebc68320"><code>f4ebc68</code></a>
Upgrade isort (<a
href="https://github-redirect.dependabot.com/psf/black/issues/3534">#3534</a>)</li>
<li><a
href="6407ebb870"><code>6407ebb</code></a>
Remove Python version in the_basics.md (<a
href="https://github-redirect.dependabot.com/psf/black/issues/3528">#3528</a>)</li>
<li><a
href="196b1f349e"><code>196b1f3</code></a>
Fix <code>black --help</code> output for
<code>--python-cell-magics</code> option to be reproducibl...</li>
<li><a
href="d950f15987"><code>d950f15</code></a>
Update document now that paren wrapping CMs on Python 3.9+ is
implemented (<a
href="https://github-redirect.dependabot.com/psf/black/issues/3">#3</a>...</li>
<li><a
href="a36878eb2f"><code>a36878e</code></a>
Fix an invalid quote escaping bug in f-string expressions (<a
href="https://github-redirect.dependabot.com/psf/black/issues/3509">#3509</a>)</li>
<li><a
href="eabff673b3"><code>eabff67</code></a>
Format hex code in unicode escape sequences in string literals (<a
href="https://github-redirect.dependabot.com/psf/black/issues/2916">#2916</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/psf/black/compare/22.10.0...23.1.0">compare
view</a></li>
</ul>
</details>
<br />


Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-02-12 11:04:01 -07:00
dependabot[bot]
9cad98683a chore(deps-dev): Bump @types/node from 18.11.18 to 18.11.19 in /node (#251)
Bumps
[@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node)
from 18.11.18 to 18.11.19.
<details>
<summary>Commits</summary>
<ul>
<li>See full diff in <a
href="https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=@types/node&package-manager=npm_and_yarn&previous-version=18.11.18&new-version=18.11.19)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-02-12 11:03:42 -07:00
dependabot[bot]
a7386b1939 chore(deps-dev): Bump typescript from 4.9.4 to 4.9.5 in /node (#252)
Bumps [typescript](https://github.com/Microsoft/TypeScript) from 4.9.4
to 4.9.5.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/Microsoft/TypeScript/releases">typescript's
releases</a>.</em></p>
<blockquote>
<h2>TypeScript 4.9.5</h2>
<p>For release notes, check out the <a
href="https://devblogs.microsoft.com/typescript/announcing-typescript-4-9/">release
announcement</a>.</p>
<p>Downloads are available on:</p>
<ul>
<li><a href="https://www.npmjs.com/package/typescript">npm</a></li>
<li><a
href="https://www.nuget.org/packages/Microsoft.TypeScript.MSBuild">NuGet
package</a></li>
</ul>
<h2>Changes:</h2>
<ul>
<li>69e88ef5513a81acf69ec78f4af1f927da0d0584 Port ignore deprecations to
4.9 (<a
href="https://github-redirect.dependabot.com/Microsoft/TypeScript/issues/52419">#52419</a>)</li>
<li>daf4e817a18def96b70ac34703b158ff0e6d58df Port timestamp fix to 4.9
(<a
href="https://github-redirect.dependabot.com/Microsoft/TypeScript/issues/52426">#52426</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="ccf3d3c5f9"><code>ccf3d3c</code></a>
Bump version to '4.9.5' and LKG.</li>
<li><a
href="69e88ef551"><code>69e88ef</code></a>
Port ignore deprecations to 4.9 (<a
href="https://github-redirect.dependabot.com/Microsoft/TypeScript/issues/52419">#52419</a>)</li>
<li><a
href="daf4e817a1"><code>daf4e81</code></a>
Port timestamp fix to 4.9 (<a
href="https://github-redirect.dependabot.com/Microsoft/TypeScript/issues/52426">#52426</a>)</li>
<li>See full diff in <a
href="https://github.com/Microsoft/TypeScript/compare/v4.9.4...v4.9.5">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=typescript&package-manager=npm_and_yarn&previous-version=4.9.4&new-version=4.9.5)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-02-12 11:03:22 -07:00
zach
a44124bdb0 feat: add ability to set host function namespace (#246)
- Adds `extism_function_set_namespace` to SDK
- Updates SDKs with host function support to allow setting the namespace
for a function
2023-02-01 11:04:15 -08:00
zach
226155b959 chore: update toml to 0.7 (#245) 2023-01-31 09:38:23 -08:00
Brett Cannon
1fad76148b Make the Python example more idiomatic (#242) 2023-01-30 09:49:42 -08:00
zach
bacb44bcc5 feat: add helper functions for working with input/output of host functions as bytes (#240) 2023-01-27 11:16:14 -08:00
zach
93c65bb4b4 fix(go): allow for host functions with no arguments or return values (#241) 2023-01-25 15:34:02 -08:00
Benjamin Eckel
beb83c697c test(browser): Comment out test so we stop failure (#238)
Can't quite figure out what is going on. Jest cannot resolves our code
fine but can't seem to resolve the NPM module:

```
 FAIL  src/index.test.ts
  ● Test suite failed to run

    Cannot find module '@bjorn3/browser_wasi_shim' from 'src/plugin.ts'

    Require stack:
      src/plugin.ts
      src/context.ts
      src/index.ts
      src/index.test.ts

      2 | import { PluginConfig } from './manifest';
      3 | //@ts-ignore TODO add types to this library
    > 4 | import { WASI, File } from "@bjorn3/browser_wasi_shim";
        | ^
      5 |
      6 | export default class ExtismPlugin {
      7 |   moduleData: ArrayBuffer;

      at Resolver._throwModNotFoundError (node_modules/jest-resolve/build/resolver.js:425:11)
      at Object.<anonymous> (src/plugin.ts:4:1)
      at Object.<anonymous> (src/context.ts:2:1)
      at Object.<anonymous> (src/index.ts:1:1)
      at Object.<anonymous> (src/index.test.ts:1:1)

Test Suites: 1 failed, 1 total
Tests:       0 total
Snapshots:   0 total
Time:        0.916 s
Ran all test suites.
```


For now let's comment it out since it's not providing value anyway.
2023-01-23 14:25:14 -06:00
zach
69d450e8a2 cleanup: fix opam files according to changes published to opam (#237)
A few changes to the opam files based on the review from
https://github.com/ocaml/opam-repository/pull/23018
2023-01-23 11:42:47 -08:00
Benjamin Eckel
8b81198486 chore: Make memory traces clearer (#236)
If you look at the memory traces it's not really clear what the values
are:

```
extism_runtime::memory TRACE 2023-01-23T10:05:16.918413-06:00 - store_u64: 656c626169726176 at offset 25
extism_runtime::memory TRACE 2023-01-23T10:05:16.918418-06:00 - store_u8: 20 at offset 33
extism_runtime::memory TRACE 2023-01-23T10:05:16.918423-06:00 - store_u8: 76 at offset 34
extism_runtime::memory TRACE 2023-01-23T10:05:16.918428-06:00 - store_u8: 61 at offset 35
extism_runtime::memory TRACE 2023-01-23T10:05:16.918433-06:00 - store_u8: 6c at offset 36
extism_runtime::memory TRACE 2023-01-23T10:05:16.918438-06:00 - store_u8: 75 at offset 37
extism_runtime::memory TRACE 2023-01-23T10:05:16.918443-06:00 - store_u8: 65 at offset 38
```

It's hard to tell that the value is hex and the offset is base10. This
changes u8 values to the form `0x00` where there is always 2 digits and
it will always use 16 digits for u64.
2023-01-23 11:10:47 -06:00
dependabot[bot]
c2830b03b5 chore(deps): Bump rustler from 0.26.0 to 0.27.0 in /elixir (#235)
Bumps [rustler](https://github.com/rusterlium/rustler) from 0.26.0 to
0.27.0.
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/rusterlium/rustler/blob/master/CHANGELOG.md">rustler's
changelog</a>.</em></p>
<blockquote>
<h2>[0.27.0] - 2023-01-17</h2>
<h3>BREAKING</h3>
<ul>
<li><code>MIX_ENV</code> is no longer considered for determining the
build profile. Now, the
profile defaults to <code>:release</code>. Use the <code>:mode</code>
option to pick another
profile explicitly. (<a
href="https://github-redirect.dependabot.com/rusterlium/rustler/issues/496">#496</a>)</li>
</ul>
<h3>Added</h3>
<ul>
<li><code>ResourceArc::make_binary</code> for safe use of
<code>enif_make_resource_binary</code> (<a
href="https://github-redirect.dependabot.com/rusterlium/rustler/issues/487">#487</a>)</li>
<li><code>OwnedBinary</code> is now <code>Sync</code> (<a
href="https://github-redirect.dependabot.com/rusterlium/rustler/issues/493">#493</a>)</li>
<li>Specified MSRV to be 1.56.1.</li>
</ul>
<h3>Fixed</h3>
<ul>
<li>Documentation for <code>load</code> (<a
href="https://github-redirect.dependabot.com/rusterlium/rustler/issues/501">#501</a>,
thanks <a
href="https://github.com/ishitatsuyuki"><code>@​ishitatsuyuki</code></a>)</li>
</ul>
<h3>Changed</h3>
<ul>
<li>Edition 2021 for the rustler mix template (<a
href="https://github-redirect.dependabot.com/rusterlium/rustler/issues/512">#512</a>,
thanks <a
href="https://github.com/ayrat555"><code>@​ayrat555</code></a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="80f6c4b926"><code>80f6c4b</code></a>
(release) 0.27.0</li>
<li><a
href="ca9a798ffe"><code>ca9a798</code></a>
Prepare release v0.27.0</li>
<li><a
href="1e03377cde"><code>1e03377</code></a>
Fix target for rustler_compile_test</li>
<li><a
href="baec31bfb0"><code>baec31b</code></a>
Merge pull request <a
href="https://github-redirect.dependabot.com/rusterlium/rustler/issues/512">#512</a>
from ayrat-forks/ayrat555/update-edition</li>
<li><a
href="57cc69e8c0"><code>57cc69e</code></a>
update rust edition</li>
<li><a
href="a34038fb11"><code>a34038f</code></a>
Merge pull request <a
href="https://github-redirect.dependabot.com/rusterlium/rustler/issues/510">#510</a>
from evnu/clippy-define-MSRV-and-fix-lints</li>
<li><a
href="7b728f1652"><code>7b728f1</code></a>
clippy: needless_borrow</li>
<li><a
href="aa045a7b28"><code>aa045a7</code></a>
clippy: unnecessary_cast</li>
<li><a
href="662d4a31bc"><code>662d4a3</code></a>
Define MSRV</li>
<li><a
href="3a7aa47af9"><code>3a7aa47</code></a>
Merge pull request <a
href="https://github-redirect.dependabot.com/rusterlium/rustler/issues/502">#502</a>
from evnu/fix-ci</li>
<li>Additional commits viewable in <a
href="https://github.com/rusterlium/rustler/compare/rustler-0.26.0...rustler-0.27.0">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=rustler&package-manager=hex&previous-version=0.26.0&new-version=0.27.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-01-23 10:47:14 -06:00
dependabot[bot]
43fcf4266a chore(deps): Update rustler requirement from 0.26.0 to 0.27.0 (#232)
Updates the requirements on
[rustler](https://github.com/rusterlium/rustler) to permit the latest
version.
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/rusterlium/rustler/blob/master/CHANGELOG.md">rustler's
changelog</a>.</em></p>
<blockquote>
<h2>[0.27.0] - 2023-01-17</h2>
<h3>BREAKING</h3>
<ul>
<li><code>MIX_ENV</code> is no longer considered for determining the
build profile. Now, the
profile defaults to <code>:release</code>. Use the <code>:mode</code>
option to pick another
profile explicitly. (<a
href="https://github-redirect.dependabot.com/rusterlium/rustler/issues/496">#496</a>)</li>
</ul>
<h3>Added</h3>
<ul>
<li><code>ResourceArc::make_binary</code> for safe use of
<code>enif_make_resource_binary</code> (<a
href="https://github-redirect.dependabot.com/rusterlium/rustler/issues/487">#487</a>)</li>
<li><code>OwnedBinary</code> is now <code>Sync</code> (<a
href="https://github-redirect.dependabot.com/rusterlium/rustler/issues/493">#493</a>)</li>
<li>Specified MSRV to be 1.56.1.</li>
</ul>
<h3>Fixed</h3>
<ul>
<li>Documentation for <code>load</code> (<a
href="https://github-redirect.dependabot.com/rusterlium/rustler/issues/501">#501</a>,
thanks <a
href="https://github.com/ishitatsuyuki"><code>@​ishitatsuyuki</code></a>)</li>
</ul>
<h3>Changed</h3>
<ul>
<li>Edition 2021 for the rustler mix template (<a
href="https://github-redirect.dependabot.com/rusterlium/rustler/issues/512">#512</a>,
thanks <a
href="https://github.com/ayrat555"><code>@​ayrat555</code></a>)</li>
</ul>
<h2>[0.26.0] - 2022-09-02</h2>
<h3>Highlight</h3>
<h4>TaggedEnum</h4>
<p>We added <code>TaggedEnum</code>, which is a generalized enum type
(<a
href="https://github-redirect.dependabot.com/rusterlium/rustler/issues/440">#440</a>,
thanks to <a
href="https://github.com/SeokminHong"><code>@​SeokminHong</code></a>!).
Example:</p>
<pre lang="rust"><code>#[derive(NifTaggedEnum)]
pub enum TaggedEnum1 {
    Named { x: i32, y: i32 },
    String1(String),
    String2(String),
    Untagged,
}
</code></pre>
<p>On the Elixir side, the variants are represented as two-tuples
<code>{tag::atom(), inner::term()} | atom()</code>, where the
<code>inner</code> term is</p>
<ul>
<li>a map for the variant <code>Named</code> in the example above</li>
<li>a binary for the <code>String1</code> and <code>String2</code>
variants</li>
</ul>
<p>The <code>Untagged</code> variant is represented as the atom
<code>:untagged</code> in Elixir.</p>
<h3>Added</h3>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="80f6c4b926"><code>80f6c4b</code></a>
(release) 0.27.0</li>
<li><a
href="ca9a798ffe"><code>ca9a798</code></a>
Prepare release v0.27.0</li>
<li><a
href="1e03377cde"><code>1e03377</code></a>
Fix target for rustler_compile_test</li>
<li><a
href="baec31bfb0"><code>baec31b</code></a>
Merge pull request <a
href="https://github-redirect.dependabot.com/rusterlium/rustler/issues/512">#512</a>
from ayrat-forks/ayrat555/update-edition</li>
<li><a
href="57cc69e8c0"><code>57cc69e</code></a>
update rust edition</li>
<li><a
href="a34038fb11"><code>a34038f</code></a>
Merge pull request <a
href="https://github-redirect.dependabot.com/rusterlium/rustler/issues/510">#510</a>
from evnu/clippy-define-MSRV-and-fix-lints</li>
<li><a
href="7b728f1652"><code>7b728f1</code></a>
clippy: needless_borrow</li>
<li><a
href="aa045a7b28"><code>aa045a7</code></a>
clippy: unnecessary_cast</li>
<li><a
href="662d4a31bc"><code>662d4a3</code></a>
Define MSRV</li>
<li><a
href="3a7aa47af9"><code>3a7aa47</code></a>
Merge pull request <a
href="https://github-redirect.dependabot.com/rusterlium/rustler/issues/502">#502</a>
from evnu/fix-ci</li>
<li>Additional commits viewable in <a
href="https://github.com/rusterlium/rustler/compare/rustler-0.26.0...rustler-0.27.0">compare
view</a></li>
</ul>
</details>
<br />


Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-01-23 10:47:00 -06:00
dependabot[bot]
0221d8e4a2 chore(deps-dev): Bump @types/jest from 29.2.5 to 29.2.6 in /node (#230)
Bumps
[@types/jest](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/jest)
from 29.2.5 to 29.2.6.
<details>
<summary>Commits</summary>
<ul>
<li>See full diff in <a
href="https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/jest">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=@types/jest&package-manager=npm_and_yarn&previous-version=29.2.5&new-version=29.2.6)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-01-23 10:46:51 -06:00
Benjamin Eckel
222401b3db docs(java-sdk): fix source code link (#228) 2023-01-22 09:33:41 -06:00
Benjamin Eckel
f6e55413d8 docs: Update README to reflect quality but instability (#226) 2023-01-20 10:05:16 -06:00
Benjamin Eckel
490dec4f14 fix(elixir-sdk): Release 0.2.0 is broken due to this local path dep (#224)
5c9aa4c90a

This should work but it doesn't. Error message when including extism
0.2.0 locally:

```
Compiling 4 files (.ex)
error: failed to get `extism` as a dependency of package `extism_nif v0.1.0 (/private/tmp/extism_test/deps/extism/native/extism_nif)`

Caused by:
  failed to load source for dependency `extism`

Caused by:
  Unable to update /private/tmp/extism_test/deps/rust

Caused by:
  failed to read `/private/tmp/extism_test/deps/rust/Cargo.toml`

Caused by:
  No such file or directory (os error 2)

== Compilation error in file lib/extism/native.ex ==
** (RuntimeError) calling `cargo metadata` failed.

    (rustler 0.26.0) lib/rustler/compiler/config.ex:87: Rustler.Compiler.Config.metadata!/1
    (rustler 0.26.0) lib/rustler/compiler/config.ex:69: Rustler.Compiler.Config.build/1
    (rustler 0.26.0) lib/rustler/compiler.ex:9: Rustler.Compiler.compile_crate/2
    lib/extism/native.ex:6: (module)
could not compile dependency :extism, "mix compile" failed. Errors may have been logged above. You can recompile this dependency with "mix deps.compile extism", update it with "mix deps.update extism" or clean it with "mix deps.clean extism"
```
2023-01-19 13:11:22 -06:00
zach
8fdc0beb31 chore(haskell): fix bounds for extism-manifest 2023-01-19 11:01:40 -08:00
zach
93ffec53d1 chore: bump version for haskell extism-manifest package (#223) 2023-01-19 10:55:05 -08:00
Benjamin Eckel
be3f324641 fix: Haskell release workflow had wrong display name 2023-01-19 12:45:42 -06:00
Benjamin Eckel
f5537e4bcb fix: ignore javadoc warnings in release for now 2023-01-19 12:08:07 -06:00
Benjamin Eckel
e1c04b42f9 release: missed the bump on dotnet SDK 2023-01-19 11:26:57 -06:00
303 changed files with 8113 additions and 27954 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 465 KiB

BIN
.github/assets/logo-horizontal.png vendored Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 465 KiB

View File

@@ -1,36 +0,0 @@
on:
pull_request:
paths:
- .github/actions/extism/**
- .github/workflows/ci-node.yml
- manifest/**
- runtime/**
- libextism/**
- browser/**
workflow_dispatch:
name: Browser CI
jobs:
node:
name: Browser
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-latest, macos-latest, windows-latest]
rust:
- stable
steps:
- name: Checkout sources
uses: actions/checkout@v3
- uses: ./.github/actions/extism
- name: Setup Node env
uses: actions/setup-node@v3
with:
node-version: 18
- name: Test Browser Runtime
run: |
cd browser
npm i
npm run test

View File

@@ -1,39 +0,0 @@
on:
pull_request:
paths:
- .github/actions/extism/**
- .github/workflows/ci-cpp.yml
- manifest/**
- runtime/**
- libextism/**
- cpp/**
workflow_dispatch:
name: C++ CI
jobs:
cpp:
name: C++
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-latest, macos-latest]
rust:
- stable
steps:
- name: Checkout sources
uses: actions/checkout@v3
- uses: ./.github/actions/extism
- name: Install C++ SDK deps
if: ${{ matrix.os == 'macos-latest' }}
run: |
brew install jsoncpp googletest pkg-config
- name: Install C++ SDK deps
if: ${{ matrix.os == 'ubuntu-latest' }}
run: |
sudo apt-get install g++ libjsoncpp-dev libgtest-dev pkg-config
- name: Run C++ tests
run: |
cd cpp
LD_LIBRARY_PATH=/usr/local/lib make example
LD_LIBRARY_PATH=/usr/local/lib make test

View File

@@ -1,34 +0,0 @@
on:
pull_request:
paths:
- .github/actions/extism/**
- .github/workflows/ci-dotnet.yml
- manifest/**
- runtime/**
- libextism/**
- dotnet/**
workflow_dispatch:
name: .NET CI
jobs:
dotnet:
name: .NET
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-latest, macos-latest]
rust:
- stable
steps:
- name: Checkout sources
uses: actions/checkout@v3
- uses: ./.github/actions/extism
- name: Setup .NET Core SDK
uses: actions/setup-dotnet@v3.0.3
with:
dotnet-version: 7.x
- name: Test .NET Sdk
run: |
cd dotnet
LD_LIBRARY_PATH=/usr/local/lib dotnet test ./Extism.sln

View File

@@ -1,41 +0,0 @@
on:
pull_request:
paths:
- .github/actions/extism/**
- .github/workflows/ci-elixir.yml
- manifest/**
- runtime/**
- rust/**
- elixir/**
workflow_dispatch:
name: Elixir CI
jobs:
elixir:
name: Elixir
runs-on: ${{ matrix.os }}
env:
MIX_ENV: test
strategy:
matrix:
os: [ubuntu-latest, macos-latest]
rust:
- stable
steps:
- name: Checkout sources
uses: actions/checkout@v3
- uses: ./.github/actions/extism
- name: Setup Elixir Host SDK
if: ${{ runner.os != 'macOS' }}
uses: erlef/setup-beam@v1
with:
experimental-otp: true
otp-version: '25.0.4'
elixir-version: '1.14.0'
- name: Test Elixir Host SDK
if: ${{ runner.os != 'macOS' }}
run: |
cd elixir
LD_LIBRARY_PATH=/usr/local/lib mix do deps.get, test

View File

@@ -1,39 +0,0 @@
on:
pull_request:
paths:
- .github/actions/extism/**
- .github/workflows/ci-go.yml
- manifest/**
- runtime/**
- libextism/**
- extism.go
- extism_test.go
- go.mod
- libextism.pc
- go/**
workflow_dispatch:
name: Go CI
jobs:
go:
name: Go
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-latest, macos-latest]
rust:
- stable
steps:
- name: Checkout sources
uses: actions/checkout@v3
- uses: ./.github/actions/extism
- name: Setup Go env
uses: actions/setup-go@v3
- name: Test Go Host SDK
run: |
go version
LD_LIBRARY_PATH=/usr/local/lib go test
cd go
LD_LIBRARY_PATH=/usr/local/lib go run main.go | grep "Hello from Go!"

View File

@@ -1,47 +0,0 @@
on:
pull_request:
paths:
- .github/actions/extism/**
- .github/workflows/ci-haskell.yml
- manifest/**
- runtime/**
- libextism/**
- haskell/**
workflow_dispatch:
name: Haskell CI
jobs:
haskell:
name: Haskell
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-latest, macos-latest]
rust:
- stable
steps:
- name: Checkout sources
uses: actions/checkout@v3
- uses: ./.github/actions/extism
- name: Setup Haskell env
uses: haskell/actions/setup@v2
with:
enable-stack: false
- name: Cache Haskell
id: cache-haskell
uses: actions/cache@v3
with:
path: ./haskell/dist-newstyle
key: ${{ runner.os }}-haskell-${{ hashFiles('haskell/**') }}
- name: Build Haskell Host SDK
if: steps.cache-haskell.outputs.cache-hit != 'true'
run: |
cd haskell
cabal update
LD_LIBRARY_PATH=/usr/local/lib cabal build
- name: Test Haskell SDK
run: |
cd haskell
cabal update
LD_LIBRARY_PATH=/usr/local/lib cabal test

View File

@@ -1,37 +0,0 @@
on:
pull_request:
paths:
- .github/actions/extism/**
- .github/workflows/ci-java.yml
- manifest/**
- runtime/**
- libextism/**
- java/**
workflow_dispatch:
name: Java CI
jobs:
java:
name: Java
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-latest]
version: [11, 17]
rust:
- stable
steps:
- name: Checkout sources
uses: actions/checkout@v3
- uses: ./.github/actions/extism
- name: Set up Java
uses: actions/setup-java@v3
with:
distribution: 'temurin'
java-version: '${{ matrix.version }}'
- name: Test Java
run: |
cd java
mvn --batch-mode -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn verify

View File

@@ -1,38 +0,0 @@
on:
pull_request:
paths:
- .github/actions/extism/**
- .github/workflows/ci-node.yml
- manifest/**
- runtime/**
- libextism/**
- node/**
workflow_dispatch:
name: Node CI
jobs:
node:
name: Node
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-latest, macos-latest]
rust:
- stable
steps:
- name: Checkout sources
uses: actions/checkout@v3
- uses: ./.github/actions/extism
- name: Setup Node env
uses: actions/setup-node@v3
with:
node-version: 18
- name: Test Node Host SDK
run: |
cd node
npm i
LD_LIBRARY_PATH=/usr/local/lib npm run build
LD_LIBRARY_PATH=/usr/local/lib npm run example
LD_LIBRARY_PATH=/usr/local/lib npm run test

View File

@@ -1,50 +0,0 @@
on:
pull_request:
paths:
- .github/actions/extism/**
- .github/workflows/ci-ocaml.yml
- manifest/**
- runtime/**
- libextism/**
- ocaml/**
- dune-project
- extism.opam
workflow_dispatch:
name: OCaml CI
jobs:
ocaml:
name: OCaml
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-latest, macos-latest]
rust:
- stable
steps:
- name: Checkout sources
uses: actions/checkout@v3
- uses: ./.github/actions/extism
- name: Setup OCaml env
uses: ocaml/setup-ocaml@v2
with:
ocaml-compiler: ocaml-base-compiler.5.0.0
- name: Cache OCaml
id: cache-ocaml
uses: actions/cache@v3
with:
path: _build
key: ${{ runner.os }}-ocaml-${{ hashFiles('ocaml/**.ml') }}-${{ hashFiles('dune-project') }}
- name: Build OCaml Host SDK
if: steps.cache-ocaml.outputs.cache-hit != 'true'
run: |
opam install -y --deps-only .
cd ocaml
LD_LIBRARY_PATH=/usr/local/lib opam exec -- dune build
- name: Test OCaml Host SDK
run: |
opam install -y --deps-only .
cd ocaml
LD_LIBRARY_PATH=/usr/local/lib opam exec -- dune exec ./bin/main.exe ../wasm/code.wasm count_vowels -- --input "qwertyuiop"
LD_LIBRARY_PATH=/usr/local/lib opam exec -- dune runtest

View File

@@ -1,42 +0,0 @@
on:
pull_request:
paths:
- .github/actions/extism/**
- .github/workflows/ci-php.yml
- manifest/**
- runtime/**
- libextism/**
- php/**
- composer.json
- composer.lock
workflow_dispatch:
name: PHP CI
jobs:
php:
name: PHP
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-latest, macos-latest]
rust:
- stable
steps:
- name: Checkout sources
uses: actions/checkout@v3
- uses: ./.github/actions/extism
- name: Setup PHP env
uses: shivammathur/setup-php@v2
with:
php-version: "8.1"
extensions: ffi
tools: composer
env:
fail-fast: true
- name: Test PHP SDK
run: |
cd php/example
composer install
php index.php

View File

@@ -1,40 +0,0 @@
on:
pull_request:
paths:
- .github/actions/extism/**
- .github/workflows/ci-python.yml
- manifest/**
- runtime/**
- libextism/**
- python/**
workflow_dispatch:
name: Python CI
jobs:
python:
name: Python
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-latest, macos-latest]
rust:
- stable
steps:
- name: Checkout sources
uses: actions/checkout@v3
- uses: ./.github/actions/extism
- name: Setup Python env
uses: actions/setup-python@v4
with:
python-version: "3.9"
check-latest: true
- name: Install Poetry
uses: snok/install-poetry@v1
- name: Test Python Host SDK
run: |
cd python
cp ../README.md .
poetry install --no-dev
poetry run python example.py
poetry run python -m unittest discover

View File

@@ -1,38 +0,0 @@
on:
pull_request:
paths:
- .github/actions/extism/**
- .github/workflows/ci-ruby.yml
- manifest/**
- runtime/**
- libextism/**
- ruby/**
workflow_dispatch:
name: Ruby CI
jobs:
ruby:
name: Ruby
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-latest, macos-latest]
rust:
- stable
steps:
- name: Checkout sources
uses: actions/checkout@v3
- uses: ./.github/actions/extism
- name: Setup Ruby env
uses: ruby/setup-ruby@v1
with:
ruby-version: "3.0"
- name: Test Ruby Host SDK
run: |
cd ruby
bundle install
ruby example.rb
rake test

View File

@@ -1,105 +0,0 @@
on:
pull_request:
paths:
- .github/actions/extism/**
- .github/workflows/ci-rust.yml
- manifest/**
- runtime/**
- rust/**
- libextism/**
workflow_dispatch:
name: Rust CI
env:
RUNTIME_CRATE: extism-runtime
LIBEXTISM_CRATE: libextism
RUST_SDK_CRATE: extism
jobs:
lib:
name: Extism runtime lib
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-latest, macos-latest]
rust:
- stable
steps:
- name: Checkout sources
uses: actions/checkout@v3
- name: Install Rust
uses: actions-rs/toolchain@v1
with:
toolchain: stable
override: true
- name: Cache Rust environment
uses: Swatinem/rust-cache@v1
- name: Cache libextism
id: cache-libextism
uses: actions/cache@v3
with:
path: target/release/libextism.*
key: ${{ runner.os }}-libextism-${{ hashFiles('runtime/**') }}-${{ hashFiles('manifest/**') }}
- name: Cache target
id: cache-target
uses: actions/cache@v3
with:
path: target/**
key: ${{ runner.os }}-target-${{ env.GITHUB_SHA }}
- name: Build
if: steps.cache-libextism.outputs.cache-hit != 'true'
shell: bash
run: cargo build --release -p ${{ env.LIBEXTISM_CRATE }}
- name: Upload artifact
uses: actions/upload-artifact@v3
with:
name: libextism-${{ matrix.os }}
path: |
target/release/libextism.*
lint_and_test:
name: Extism runtime lint and test
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-latest, macos-latest]
rust:
- stable
steps:
- name: Checkout sources
uses: actions/checkout@v3
- name: Install Rust
uses: actions-rs/toolchain@v1
with:
toolchain: stable
override: true
- name: Cache Rust environment
uses: Swatinem/rust-cache@v1
- name: Cache target
id: cache-target
uses: actions/cache@v3
with:
path: target/**
key: ${{ runner.os }}-target-${{ env.GITHUB_SHA }}
- name: Format
run: cargo fmt --check -p ${{ env.RUNTIME_CRATE }}
- name: Lint
run: cargo clippy --release --all-features --no-deps -p ${{ env.RUNTIME_CRATE }}
- name: Test
run: cargo test --all-features --release -p ${{ env.RUNTIME_CRATE }}
rust:
name: Rust
needs: lib
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-latest, macos-latest]
rust:
- stable
steps:
- name: Checkout sources
uses: actions/checkout@v3
- uses: ./.github/actions/extism
- name: Test Rust Host SDK
run: LD_LIBRARY_PATH=/usr/local/lib cargo test --release -p ${{ env.RUST_SDK_CRATE }}

View File

@@ -1,34 +0,0 @@
on:
pull_request:
paths:
- .github/actions/extism/**
- .github/workflows/ci-zig.yml
- manifest/**
- runtime/**
- libextism/**
- zig/**
workflow_dispatch:
name: Zig CI
jobs:
zig:
name: Zig
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-latest, macos-latest]
rust:
- stable
steps:
- name: Checkout sources
uses: actions/checkout@v3
- uses: ./.github/actions/extism
- name: Setup Zig env
uses: goto-bus-stop/setup-zig@v2
- name: Test Zig Host SDK
run: |
zig version
cd zig
LD_LIBRARY_PATH=/usr/local/lib zig build test

View File

@@ -1,25 +1,119 @@
on: [pull_request, workflow_dispatch]
on:
pull_request:
paths:
- .github/actions/extism/**
- .github/workflows/ci-rust.yml
- convert/**
- manifest/**
- runtime/**
- rust/**
- libextism/**
workflow_dispatch:
name: CI
name: Rust CI
env:
RUNTIME_CRATE: extism
LIBEXTISM_CRATE: libextism
jobs:
sdk_api_coverage:
name: SDK API Coverage Report
runs-on: ubuntu-latest
lib:
name: Extism runtime lib
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-latest, macos-latest]
rust:
- stable
steps:
- name: Checkout sources
uses: actions/checkout@v3
- name: Setup Python env
uses: actions/setup-python@v4
- name: Install Rust
uses: actions-rs/toolchain@v1
with:
python-version: "3.9"
check-latest: true
- name: Install dependencies
run: |
sudo apt-get install ripgrep
pip3 install pycparser
- name: Run coverage script
id: coverage
run: |
python scripts/sdk_coverage.py
toolchain: stable
override: true
- name: Cache Rust environment
uses: Swatinem/rust-cache@v1
- name: Cache libextism
id: cache-libextism
uses: actions/cache@v3
with:
path: target/release/libextism.*
key: ${{ runner.os }}-libextism-${{ hashFiles('runtime/**') }}-${{ hashFiles('manifest/**') }}-${{ hashFiles('convert/**') }}
- name: Cache target
id: cache-target
uses: actions/cache@v3
with:
path: target/**
key: ${{ runner.os }}-target-${{ github.sha }}
- name: Build
if: steps.cache-libextism.outputs.cache-hit != 'true'
shell: bash
run: cargo build --release -p ${{ env.LIBEXTISM_CRATE }}
- name: Upload artifact
uses: actions/upload-artifact@v3
with:
name: libextism-${{ matrix.os }}
path: |
target/release/libextism.*
lint_and_test:
name: Extism runtime lint and test
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-latest, macos-latest]
rust:
- stable
steps:
- name: Checkout sources
uses: actions/checkout@v3
- name: Install Rust
uses: actions-rs/toolchain@v1
with:
toolchain: stable
override: true
- name: Cache Rust environment
uses: Swatinem/rust-cache@v1
- name: Cache target
id: cache-target
uses: actions/cache@v3
with:
path: target/**
key: ${{ runner.os }}-target-${{ github.sha }}
- name: Format
run: cargo fmt --check
- name: Lint
run: cargo clippy --all --release --all-features --no-deps -- -D "clippy::all"
- name: Test
run: cargo test --release
- name: Test all features
run: cargo test --all-features --release
- name: Test no features
run: cargo test --no-default-features --release
bench:
name: Benchmarking
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-latest]
rust:
- stable
steps:
- name: Checkout sources
uses: actions/checkout@v3
- name: Install Rust
uses: actions-rs/toolchain@v1
with:
toolchain: stable
override: true
- name: Cache Rust environment
uses: Swatinem/rust-cache@v1
- name: Cache target
id: cache-target
uses: actions/cache@v3
with:
path: target/**
key: ${{ runner.os }}-target-${{ github.sha }}
- run: cargo install cargo-criterion
- run: cargo criterion

48
.github/workflows/kernel.yml vendored Normal file
View File

@@ -0,0 +1,48 @@
on:
workflow_dispatch:
pull_request:
paths:
- kernel/**
name: Kernel
jobs:
kernel:
name: Build extism-runtime.wasm
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Install Rust
uses: actions-rs/toolchain@v1
with:
toolchain: stable
profile: minimal
target: wasm32-unknown-unknown
- uses: Swatinem/rust-cache@v2
- name: Install deps
run: |
sudo apt install wabt --yes
- name: Build kernel
shell: bash
continue-on-error: true
run: |
cd kernel
sh build.sh
git diff --exit-code
export GIT_EXIT_CODE=$?
- uses: peter-evans/create-pull-request@v5
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
if: ${{ env.GIT_EXIT_CODE }} != 0
with:
author: "zshipko <zshipko@users.noreply.github.com>"
title: "update(kernel): extism-runtime.wasm in ${{ github.event.pull_request.head.ref }}"
body: "Automated PR to update `runtime/src/extism-runtime.wasm` in PR #${{ github.event.number }}"
base: "${{ github.event.pull_request.head.ref }}"
branch: "update-kernel--${{ github.event.pull_request.head.ref }}"
commit-message: "update(kernel): extism-runtime.wasm in ${{ github.event.pull_request.head.ref }}"
delete-branch: true

View File

@@ -10,6 +10,10 @@ jobs:
steps:
- name: Checkout
uses: actions/checkout@v3
with:
fetch-depth: 0
filter: tree:0
- name: Setup .NET Core SDK
uses: actions/setup-dotnet@v3.0.3
with:
@@ -19,11 +23,48 @@ jobs:
workflow: release.yml
name: release-artifacts
- name: Extract Archive
run: |
extract_archive() {
# Check if both pattern and destination are provided
if [ -z "$1" ] || [ -z "$2" ]; then
echo "Usage: $0 <filename_pattern> <destination_directory>"
return 1
fi
# Set the filename pattern and destination directory
filename_pattern="$1"
destination_directory="$2"
# Find the archive file with the specified pattern
archive_file=$(ls $filename_pattern 2>/dev/null)
# Check if an archive file is found
if [ -n "$archive_file" ]; then
echo "Found archive file: $archive_file"
# Create the destination directory if it doesn't exist
mkdir -p "$destination_directory"
# Extract the archive to the specified destination
tar -xzvf "$archive_file" -C "$destination_directory"
echo "Extraction complete. Contents placed in: $destination_directory"
else
echo "No matching archive file found with the pattern: $filename_pattern"
fi
}
extract_archive "libextism-x86_64-pc-windows-msvc-*.tar.gz" "nuget/runtimes/win-x64/native/"
extract_archive "libextism-aarch64-apple-darwin-*.tar.gz" "nuget/runtimes/osx-arm64/native/"
extract_archive "libextism-x86_64-apple-darwin-*.tar.gz" "nuget/runtimes/osx-x64/native/"
extract_archive "libextism-x86_64-unknown-linux-gnu-*.tar.gz" "nuget/runtimes/linux-x64/native/"
extract_archive "libextism-aarch64-unknown-linux-gnu-*.tar.gz" "nuget/runtimes/linux-arm64/native/"
extract_archive "libextism-aarch64-unknown-linux-musl-*.tar.gz" "nuget/runtimes/linux-musl-arm64/native/"
- name: Pack NuGet packages
run: |
tar -xvzf libextism-x86_64-pc-windows-msvc-v*.tar.gz --directory dotnet/nuget/runtimes
mv dotnet/nuget/runtimes/extism.dll dotnet/nuget/runtimes/win-x64.dll
- name: Publish win-x64
find ./nuget -type f -name "*.csproj" -exec dotnet pack {} -o release-artifacts \;
- name: Publish NuGet packages
run: |
cd dotnet/nuget
dotnet pack -o dist
dotnet nuget push --source https://api.nuget.org/v3/index.json ./dist/*.nupkg --api-key ${{ secrets.NUGET_API_KEY }}
dotnet nuget push --source https://api.nuget.org/v3/index.json ./release-artifacts/*.nupkg --api-key ${{ secrets.NUGET_API_KEY }}

View File

@@ -1,32 +0,0 @@
on:
workflow_dispatch:
name: Release .NET SDK
jobs:
release-sdks:
name: release-dotnet
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Install extism shared library
shell: bash
run: |
mkdir -p /home/runner/.local/bin/
export PATH="/home/runner/.local/bin/:$PATH"
curl https://raw.githubusercontent.com/extism/cli/main/install.sh | sh
extism --sudo --prefix /usr/local install
- name: Setup .NET Core SDK
uses: actions/setup-dotnet@v3.0.3
with:
dotnet-version: 7.x
- name: Test .NET Sdk
run: |
cd dotnet
LD_LIBRARY_PATH=/usr/local/lib dotnet test ./Extism.sln
- name: Publish .NET Sdk
run: |
cd dotnet/src/Extism.Sdk/
dotnet pack -c Release
dotnet nuget push --source https://api.nuget.org/v3/index.json ./bin/Release/*.nupkg --api-key ${{ secrets.NUGET_API_KEY }}

View File

@@ -1,34 +0,0 @@
on:
workflow_dispatch:
name: Release Elixir SDK
jobs:
release-sdks:
name: release-elixir
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Install extism shared library
shell: bash
run: |
mkdir -p /home/runner/.local/bin/
export PATH="/home/runner/.local/bin/:$PATH"
curl https://raw.githubusercontent.com/extism/cli/main/install.sh | sh
extism --sudo --prefix /usr/local install
- name: Setup Elixir Host SDK
uses: erlef/setup-beam@v1
with:
experimental-otp: true
otp-version: '25.0.4'
elixir-version: '1.14.0'
- name: Publish Elixir Host SDK to hex.pm
env:
HEX_API_KEY: ${{ secrets.HEX_PM_API_TOKEN }}
run: |
cd elixir
cp ../LICENSE .
make publish

View File

@@ -1,17 +0,0 @@
on:
workflow_dispatch:
name: Release Rust SDK
jobs:
release-sdks:
name: release-rust
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v3
- uses: cachix/haskell-release-action@v1
with:
- hackage-token: "${{ secrets.HACKAGE_TOKEN }}"
- work-dir: ./haskell

View File

@@ -1,22 +0,0 @@
name: Publish package to the Maven Central Repository
on:
workflow_dispatch:
jobs:
publish:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Set up Java
uses: actions/setup-java@v3
with:
java-version: '11'
distribution: 'adopt'
- name: Publish package
env:
JRELEASER_NEXUS2_USERNAME: ${{ secrets.JRELEASER_NEXUS2_USERNAME }}
JRELEASER_NEXUS2_PASSWORD: ${{ secrets.JRELEASER_NEXUS2_PASSWORD }}
JRELEASER_GPG_PASSPHRASE: ${{ secrets.JRELEASER_GPG_PASSPHRASE }}
JRELEASER_GPG_SECRET_KEY: ${{ secrets.JRELEASER_GPG_SECRET_KEY }}
JRELEASER_GPG_PUBLIC_KEY: ${{ secrets.JRELEASER_GPG_PUBLIC_KEY }}
JRELEASER_GITHUB_TOKEN: "dummy"
run: mvn -Prelease clean jreleaser:prepare deploy jreleaser:deploy -DaltDeploymentRepository=local::default::file:./target/staging-deploy

View File

@@ -1,30 +0,0 @@
on:
workflow_dispatch:
name: Release Node SDK
jobs:
release-sdks:
name: release-node
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Setup Node env
uses: actions/setup-node@v3
with:
node-version: 16
registry-url: "https://registry.npmjs.org"
env:
NODE_AUTH_TOKEN: ${{ secrets.NPM_API_TOKEN }}
CI: true
- name: Release Node Host SDK
env:
NODE_AUTH_TOKEN: ${{ secrets.NPM_API_TOKEN }}
CI: true
run: |
cd node
make publish

View File

@@ -1,8 +1,9 @@
on:
workflow_dispatch:
name: Release Python SDK
on:
release:
types: [published, edited]
jobs:
release-sdks:
name: release-python
@@ -11,26 +12,30 @@ jobs:
- name: Checkout
uses: actions/checkout@v3
- name: Setup Python env
uses: actions/setup-python@v4
with:
python-version: "3.9"
check-latest: true
- name: Run image
uses: abatilo/actions-poetry@v2
- name: Install poetry
run: pipx install poetry
- name: Build Python Host SDK
- uses: actions/setup-python@v4
with:
python-version: '3.10'
- name: install twine
run: |
cd python
cp ../LICENSE .
make clean
poetry install --no-dev
poetry build
pip install twine
- name: Release Python Host SDK
uses: pypa/gh-action-pypi-publish@release/v1
with:
user: ${{ secrets.PYPI_API_USER }}
password: ${{ secrets.PYPI_API_TOKEN }}
packages_dir: python/dist/
- name: download release
run: |
tag='${{ github.ref }}'
tag="${tag/refs\/tags\//}"
mkdir dist
cd dist
gh release download "$tag" -p 'extism_sys-*'
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: upload release
run: |
twine upload dist/*
env:
TWINE_USERNAME: ${{ secrets.PYPI_API_USER }}
TWINE_PASSWORD: ${{ secrets.PYPI_API_TOKEN }}

View File

@@ -1,25 +0,0 @@
on:
workflow_dispatch:
name: Release Ruby SDK
jobs:
release-sdks:
name: release-ruby
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Setup Ruby
uses: actions/setup-ruby@v1
with:
ruby-version: '3.1' # Version range or exact version of a Ruby version to use, using semvers version range syntax.
- name: Publish Ruby Gem
env:
RUBYGEMS_API_KEY: ${{ secrets.RUBYGEMS_API_TOKEN }}
run: |
cd ruby
make publish RUBYGEMS_API_KEY=$RUBYGEMS_API_KEY

View File

@@ -1,16 +1,33 @@
on:
release:
types: [published, edited]
workflow_dispatch:
name: Release Rust SDK
name: Release Runtime/Rust SDK
jobs:
release-sdks:
release-runtime:
name: release-rust
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v3
with:
ref: '${{ github.ref }}'
- name: Set version
shell: bash
run: |
version="${{ github.ref }}"
if [[ "$version" = "refs/heads/main" ]]; then
version="0.0.0-dev"
else
version="${version/refs\/tags\/v/}"
fi
sed -i -e "s/0.0.0+replaced-by-ci/${version}/g" Cargo.toml
pyproject="$(cat extism-maturin/pyproject.toml)"
<<<"$pyproject" >extism-maturin/pyproject.toml sed -e 's/^version = "0.0.0.replaced-by-ci"/version = "'"$version"'"/g'
- name: Setup Rust env
uses: actions-rs/toolchain@v1
with:
@@ -19,17 +36,50 @@ jobs:
override: true
target: ${{ matrix.target }}
- name: Release Rust Host SDK
- name: Release Rust convert-macros Crate
env:
CARGO_REGISTRY_TOKEN: ${{ secrets.CARGO_API_TOKEN }}
run: |
# order of crate publication matter: manifest, runtime, rust
version=$(cargo metadata --format-version=1 | jq -r '.packages[] | select(.name == "extism") | .version')
cargo publish --manifest-path manifest/Cargo.toml
# allow for crates.io to update so dependant crates can locate extism-manifest
sleep 5
if ! &>/dev/null curl -sLIf https://crates.io/api/v1/crates/extism-convert-macros/${version}/download; then
cargo publish --manifest-path convert-macros/Cargo.toml --allow-dirty
else
echo "already published ${version}"
fi
cargo publish --manifest-path runtime/Cargo.toml --no-verify
cargo publish --manifest-path rust/Cargo.toml
- name: Release Rust Convert Crate
env:
CARGO_REGISTRY_TOKEN: ${{ secrets.CARGO_API_TOKEN }}
run: |
version=$(cargo metadata --format-version=1 | jq -r '.packages[] | select(.name == "extism") | .version')
if ! &>/dev/null curl -sLIf https://crates.io/api/v1/crates/extism-convert/${version}/download; then
cargo publish --manifest-path convert/Cargo.toml --allow-dirty
else
echo "already published ${version}"
fi
- name: Release Rust Manifest Crate
env:
CARGO_REGISTRY_TOKEN: ${{ secrets.CARGO_API_TOKEN }}
run: |
version=$(cargo metadata --format-version=1 | jq -r '.packages[] | select(.name == "extism") | .version')
if ! &>/dev/null curl -sLIf https://crates.io/api/v1/crates/extism-manifest/${version}/download; then
cargo publish --manifest-path manifest/Cargo.toml --allow-dirty
else
echo "already published ${version}"
fi
- name: Release Runtime
env:
CARGO_REGISTRY_TOKEN: ${{ secrets.CARGO_API_TOKEN }}
run: |
version=$(cargo metadata --format-version=1 | jq -r '.packages[] | select(.name == "extism") | .version')
if ! &>/dev/null curl -sLIf https://crates.io/api/v1/crates/extism/${version}/download; then
cargo publish --manifest-path runtime/Cargo.toml --allow-dirty
else
echo "already published ${version}"
fi

View File

@@ -1,7 +1,9 @@
on:
release:
types: [created]
workflow_dispatch:
push:
branches: [ main, "v*" ]
tags:
- 'v*'
name: Release
@@ -11,87 +13,90 @@ env:
RUSTFLAGS: -C target-feature=-crt-static
ARTIFACT_DIR: release-artifacts
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
release-linux:
name: linux
runs-on: ubuntu-latest
release:
name: ${{ matrix.os }} ${{ matrix.target }}
runs-on: ${{ matrix.os }}-latest
strategy:
matrix:
target:
[
aarch64-unknown-linux-gnu,
aarch64-unknown-linux-musl,
x86_64-unknown-linux-gnu,
]
# i686-unknown-linux-gnu,
if: always()
include:
- os: 'macos'
target: 'x86_64-apple-darwin'
artifact: 'libextism.dylib'
static-artifact: 'libextism.a'
static-dll-artifact: ''
pc-in: 'extism.pc.in'
static-pc-in: 'extism-static.pc.in'
- os: 'macos'
target: 'aarch64-apple-darwin'
artifact: 'libextism.dylib'
static-artifact: 'libextism.a'
static-dll-artifact: ''
pc-in: 'extism.pc.in'
static-pc-in: 'extism-static.pc.in'
- os: 'ubuntu'
target: 'aarch64-unknown-linux-gnu'
artifact: 'libextism.so'
static-artifact: 'libextism.a'
static-dll-artifact: ''
pc-in: 'extism.pc.in'
static-pc-in: 'extism-static.pc.in'
- os: 'ubuntu'
target: 'aarch64-unknown-linux-musl'
artifact: 'libextism.so'
static-artifact: 'libextism.a'
static-dll-artifact: ''
pc-in: 'extism.pc.in'
static-pc-in: 'extism-static.pc.in'
- os: 'ubuntu'
target: 'x86_64-unknown-linux-gnu'
artifact: 'libextism.so'
static-artifact: 'libextism.a'
static-dll-artifact: ''
pc-in: 'extism.pc.in'
static-pc-in: 'extism-static.pc.in'
- os: 'ubuntu'
target: 'x86_64-unknown-linux-musl'
artifact: ''
static-artifact: 'libextism.a'
static-dll-artifact: ''
pc-in: ''
static-pc-in: 'extism-static.pc.in'
- os: 'windows'
target: 'x86_64-pc-windows-gnu'
artifact: 'extism.dll'
static-artifact: 'libextism.a'
static-dll-artifact: 'libextism.dll.a'
pc-in: 'extism.pc.in'
static-pc-in: 'extism-static.pc.in'
- os: 'windows'
target: 'x86_64-pc-windows-msvc'
artifact: 'extism.dll'
static-artifact: 'extism.lib'
static-dll-artifact: 'extism.dll.lib'
pc-in: ''
static-pc-in: ''
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Install Rust
uses: actions-rs/toolchain@v1
with:
toolchain: stable
profile: minimal
override: true
target: ${{ matrix.target }}
- name: Build Target (${{ matrix.target }})
uses: actions-rs/cargo@v1
with:
use-cross: true
command: build
args: --release --target ${{ matrix.target }} -p ${{ env.RUNTIME_CRATE }}
- name: Prepare Artifact
- name: Set version
shell: bash
run: |
EXT=so
SRC_DIR=target/${{ matrix.target }}/release
DEST_DIR=${{ env.ARTIFACT_DIR }}
RELEASE_NAME=libextism-${{ matrix.target }}-${{ github.ref_name }}
ARCHIVE=${RELEASE_NAME}.tar.gz
CHECKSUM=${RELEASE_NAME}.checksum.txt
# compress the shared library & create checksum
cp runtime/extism.h ${SRC_DIR}
cp LICENSE ${SRC_DIR}
tar -C ${SRC_DIR} -czvf ${ARCHIVE} libextism.${EXT} extism.h
ls -ll ${ARCHIVE}
shasum -a 256 ${ARCHIVE} > ${CHECKSUM}
# copy archive and checksum into release artifact directory
mkdir -p ${DEST_DIR}
cp ${ARCHIVE} ${DEST_DIR}
cp ${CHECKSUM} ${DEST_DIR}
ls ${DEST_DIR}
- name: Upload Artifact to Summary
uses: actions/upload-artifact@v3
with:
name: ${{ env.ARTIFACT_DIR }}
path: |
*.tar.gz
*.txt
- name: Upload Artifact to Release
uses: softprops/action-gh-release@v1
with:
files: |
*.tar.gz
*.txt
release-macos:
name: macos
runs-on: macos-latest
strategy:
matrix:
target: [x86_64-apple-darwin, aarch64-apple-darwin]
if: always()
steps:
- name: Checkout
uses: actions/checkout@v3
version="${{ github.ref }}"
if [[ "$version" = "refs/heads/main" ]]; then
version="0.0.0-dev"
else
version="${version/refs\/tags\/v/}"
fi
sed -i -e "s/0.0.0+replaced-by-ci/${version}/g" Cargo.toml
pyproject="$(cat extism-maturin/pyproject.toml)"
<<<"$pyproject" >extism-maturin/pyproject.toml sed -e 's/^version = "0.0.0.replaced-by-ci"/version = "'"$version"'"/g'
- name: Install Rust
uses: actions-rs/toolchain@v1
@@ -101,84 +106,55 @@ jobs:
override: true
target: ${{ matrix.target }}
- name: Build Target (${{ matrix.target }})
- uses: Swatinem/rust-cache@v2
with:
prefix-key: "${{matrix.os}}-${{matrix.target}}"
save-if: ${{ github.ref == 'refs/heads/main' }}
cache-on-failure: "true"
- name: Build Target (${{ matrix.os }} ${{ matrix.target }})
uses: actions-rs/cargo@v1
with:
use-cross: true
use-cross: ${{ matrix.os != 'windows' }}
command: build
args: --release --target ${{ matrix.target }} -p ${{ env.RUNTIME_CRATE }}
- name: Prepare Artifact
- uses: actions/setup-python@v4
with:
python-version: '3.10'
- name: Build wheels
uses: PyO3/maturin-action@v1
# maturin's cffi integration struggles with gnu headers on windows.
# there's partial work towards fixing this in `extism-maturin/build.rs`, but it's
# not sufficient to get it to work. omit it for now!
if: ${{ matrix.target != 'x86_64-pc-windows-gnu' && matrix.target != 'aarch64-unknown-linux-gnu' }}
with:
target: ${{ matrix.target }}
args: --release --out dist --find-interpreter -m extism-maturin/Cargo.toml
sccache: 'true'
manylinux: auto
- name: Build GNU Linux wheels
uses: PyO3/maturin-action@v1
# One of our deps, "ring", needs a newer sysroot than what "manylinux: auto" provides.
if: ${{ matrix.target == 'aarch64-unknown-linux-gnu' }}
with:
target: ${{ matrix.target }}
args: --release --out dist --find-interpreter -m extism-maturin/Cargo.toml
sccache: 'true'
manylinux: 2_28
- name: Add pkg-config files except on MSVC
if: ${{ matrix.target != 'x86_64-pc-windows-msvc' }}
shell: bash
run: |
EXT=dylib
SRC_DIR=target/${{ matrix.target }}/release
DEST_DIR=${{ env.ARTIFACT_DIR }}
RELEASE_NAME=libextism-${{ matrix.target }}-${{ github.ref_name }}
ARCHIVE=${RELEASE_NAME}.tar.gz
CHECKSUM=${RELEASE_NAME}.checksum.txt
# compress the shared library & create checksum
cp runtime/extism.h ${SRC_DIR}
cp LICENSE ${SRC_DIR}
tar -C ${SRC_DIR} -czvf ${ARCHIVE} libextism.${EXT} extism.h
ls -ll ${ARCHIVE}
shasum -a 256 ${ARCHIVE} > ${CHECKSUM}
# copy archive and checksum into release artifact directory
mkdir -p ${DEST_DIR}
cp ${ARCHIVE} ${DEST_DIR}
cp ${CHECKSUM} ${DEST_DIR}
ls ${DEST_DIR}
- name: Upload Artifact to Summary
uses: actions/upload-artifact@v3
with:
name: ${{ env.ARTIFACT_DIR }}
path: |
*.tar.gz
*.txt
- name: Upload Artifact to Release
uses: softprops/action-gh-release@v1
with:
files: |
*.tar.gz
*.txt
release-windows:
name: windows
runs-on: windows-latest
strategy:
matrix:
target:
[x86_64-pc-windows-gnu, x86_64-pc-windows-msvc]
# i686-pc-windows-gnu,
# i686-pc-windows-msvc,
# aarch64-pc-windows-msvc
if: always()
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Install Rust
uses: actions-rs/toolchain@v1
with:
toolchain: stable
profile: minimal
override: true
target: ${{ matrix.target }}
- name: Build Target (${{ matrix.target }})
uses: actions-rs/cargo@v1
with:
command: build
args: --release --target ${{ matrix.target }} -p ${{ env.RUNTIME_CRATE }}
cp libextism/extism*.pc.in ${SRC_DIR}
- name: Prepare Artifact
shell: bash
run: |
EXT=dll
SRC_DIR=target/${{ matrix.target }}/release
DEST_DIR=${{ env.ARTIFACT_DIR }}
RELEASE_NAME=libextism-${{ matrix.target }}-${{ github.ref_name }}
@@ -188,29 +164,63 @@ jobs:
# compress the shared library & create checksum
cp runtime/extism.h ${SRC_DIR}
cp LICENSE ${SRC_DIR}
tar -C ${SRC_DIR} -czvf ${ARCHIVE} extism.${EXT} extism.h
tar -C ${SRC_DIR} -czvf ${ARCHIVE} extism.h \
${{ matrix.artifact }} ${{ matrix.static-artifact }} \
${{ matrix.pc-in }} ${{ matrix.static-pc-in }} \
${{ matrix.static-dll-artifact }}
ls -ll ${ARCHIVE}
certutil -hashfile ${ARCHIVE} SHA256 >${CHECKSUM}
if &>/dev/null which shasum; then
shasum -a 256 ${ARCHIVE} > ${CHECKSUM}
else
# windows doesn't have shasum available, so we use certutil instead.
certutil -hashfile ${ARCHIVE} SHA256 >${CHECKSUM}
fi
# copy archive and checksum into release artifact directory
mkdir -p ${DEST_DIR}
cp ${ARCHIVE} ${DEST_DIR}
cp ${CHECKSUM} ${DEST_DIR}
ls ${DEST_DIR}
# copy any built wheels.
if [ -e dist/*.whl ]; then
cp dist/*.whl ${DEST_DIR}
fi
ls -ll ${DEST_DIR}
- name: Upload Artifact to Summary
uses: actions/upload-artifact@v3
with:
name: ${{ env.ARTIFACT_DIR }}
path: |
*.tar.gz
*.txt
path: ${{ env.ARTIFACT_DIR }}
- name: Upload Artifact to Release
- name: Upload Artifact to Draft Release
uses: softprops/action-gh-release@v1
with:
draft: true
files: |
${{ env.ARTIFACT_DIR }}/*
if: startsWith(github.ref, 'refs/tags/')
release-latest:
name: create latest release
runs-on: ubuntu-latest
needs: [release]
if: github.ref == 'refs/heads/main'
steps:
- uses: actions/download-artifact@v3
with:
name: ${{ env.ARTIFACT_DIR }}
- uses: "marvinpinto/action-automatic-releases@latest"
with:
repo_token: "${{ secrets.GITHUB_TOKEN }}"
automatic_release_tag: "latest"
prerelease: true
title: "Development Build"
files: |
*.tar.gz
*.txt
*.whl
if: github.ref == 'refs/heads/main'

13
.gitignore vendored
View File

@@ -15,6 +15,8 @@ python/poetry.lock
c/main
cpp/test/test
cpp/example
.dub
dub.selections.json
go/main
ruby/.bundle/
ruby/.yardoc
@@ -30,9 +32,20 @@ rust/test.log
duniverse
_build
php/Extism.php
python/docs
dist-newstyle
.stack-work
vendor
zig/zig-*
zig/example-out/
zig/*.log
java/*.iml
java/*.log
java/.idea
java/.DS_Store
extism-maturin/src/extism.h
runtime/*.log
libextism/example
libextism/extism*.pc
*.cwasm
test-cache

View File

@@ -1 +0,0 @@
version = 0.24.1

View File

@@ -1,8 +1,18 @@
[workspace]
members = [
"manifest",
"runtime",
"rust",
"libextism",
"elixir/native/extism_nif"
]
resolver = "2"
members = ["extism-maturin", "manifest", "runtime", "libextism", "convert", "convert-macros"]
exclude = ["kernel"]
[workspace.package]
edition = "2021"
authors = ["The Extism Authors", "oss@extism.org"]
license = "BSD-3-Clause"
homepage = "https://extism.org"
repository = "https://github.com/extism/extism"
version = "0.0.0+replaced-by-ci"
[workspace.dependencies]
extism = { path = "./runtime", version = "0.0.0+replaced-by-ci" }
extism-convert = { path = "./convert", version = "0.0.0+replaced-by-ci" }
extism-convert-macros = { path = "./convert-macros", version = "0.0.0+replaced-by-ci" }
extism-manifest = { path = "./manifest", version = "0.0.0+replaced-by-ci" }

117
DEVELOPING.md Normal file
View File

@@ -0,0 +1,117 @@
# HACKING
## cutting releases
### goals
Cutting a release should be a boring, rote process with as little excitement as
possible. Following the processes in this document, we should be able to cut a
release at any time without worrying about producing bad artifacts. Our process
should let us resolve build issues without affecting library users.
### branching
1. The `main` branch represents the next major version of the library.
2. Previous major versions should be tracked using `v0.x`, `v1.x`, `v2.x`, used
for backporting changes as necessary.
3. Libraries should generate a `latest` release using, e.g.,
`marvinpinto/action-automatic-releases` on changes to the `main` branch.
### tag and release process
1. Pick a target semver value. Prepend the semver value with `v`: `v1.2.3`.
Increment the minor version for additive changes and patch for bugfixes.
- For trickier changes, consider using release candidates: `rc0`, `rc1`, etc.
2. Create an empty git commit for the tag to point at: `git commit -m 'v1.2.3-rc1' --allow-empty`.
3. Create a new tag against that commit: `v1.2.3-rc1`.
4. Push the changes to the library: `git push origin main v1.2.3-rc1`.
- You can separate these steps: `git push origin main` followed by `git push origin v1.2.3-rc1`,
if you want to make absolutely sure the commit you're pushing builds correctly before tagging it.
5. Wait for the tag `build` workflow to complete.
- The `build` workflow should create a _draft_ release (using `softprops/action-gh-release` with `draft`
set to `true`) and upload built artifacts to the release.
6. Once the workflow is complete, do whatever testing is necessary using the artifacts.
- TODO: We can add automation to this step so that we test on downstream deps automatically: e.g., if we
build a new kernel, we _should_ be able to trigger tests in the `python-sdk` _using_ that new kernel.
7. Once we're confident the release is good, go to the releases page for the library and edit the draft release.
- If the release is a release candidate (`rc0..N`), make sure to mark the release as a "prerelease".
- Publish the draft release.
- This kicks off the publication workflow: taking the artifacts built during the `build` workflow and publishing
them to any necessary registry or repository.
- In extism, this publishes `extism-maturin` to PyPI as `extism-sys` and the dotnet packages to nuget.
- In `python-sdk`, this publishes `extism` to PyPI.
- In `js-sdk`, this publishes `@extism/extism` (and `extism`) to NPM.
> **Note**
> If you're at all worried about a release, use a private fork of the target library repo to test the release first (e.g., `extism/dev-extism`.)
#### CLI flow
For official releases:
```
$ git commit -m 'v9.9.9' --allow-empty
$ git tag v9.9.9
$ git push origin main v9.9.9
$ gh run watch
$ gh release edit v9.9.9 --tag v9.9.9 --title 'v9.9.9' --draft=false
$ gh run watch
```
For prereleases:
```
$ git commit -m 'v9.9.9' --allow-empty
$ git tag v9.9.9
$ git push origin main v9.9.9
$ gh run watch
$ gh release edit v9.9.9 --tag v9.9.9 --title 'v9.9.9' --draft=false --prerelease
$ gh run watch
```
### implementation
Libraries should:
- Provide a `ci` workflow, triggered on PR and `workflow_dispatch`.
- This workflow should exercise the tests, linting, and documentation generation of the library.
- Provide a `build` workflow, triggered on `v*` tags and merges to `main`
- This workflow should produce artifacts and attach them to a draft release (if operating on a tag) or a `latest` release (if operating on `main`.)
- Artifacts include: source tarballs, checksums, shared objects, and documentation.
- Provide a `release` workflow, triggered on github releases:
- This workflow should expect artifacts from the draft release to be available.
- Artifacts from the release should be published to their final destination as part of this workflow: tarballs to NPM, documentation to Cloudflare R2/Amazon S3/$yourFavoriteBucket.
### A rough list of libraries and downstreams
```mermaid
flowchart TD;
A["runtime"] --> B["libextism"];
B --> C["extism-maturin"];
B --> X["nuget-extism"];
C --> D["python-sdk"];
B --> E["ruby-sdk"];
A --> F["go-sdk"];
G["plugins"] --> B;
G --> D;
G --> E;
G --> F;
G --> H["js-sdk"];
F --> I["cli"];
G --> J["dotnet-sdk"];
X --> J;
G --> K["cpp-sdk"];
G --> L["zig-sdk"];
B --> L;
G --> M["haskell-sdk"];
B --> M;
G --> N["php-sdk"];
B --> N;
G --> O["elixir-sdk"];
B --> O;
G --> P["d-sdk"];
B --> P;
G --> Q["ocaml-sdk"];
B --> Q;
```

View File

@@ -1,7 +1,9 @@
DEST?=/usr/local
SOEXT=so
AEXT=a
FEATURES?=default
DEFAULT_FEATURES?=yes
RUST_TARGET?=
UNAME := $(shell uname -s)
ifeq ($(UNAME),Darwin)
@@ -18,21 +20,43 @@ else
FEATURE_FLAGS=--features $(FEATURES)
endif
ifeq ($(RUST_TARGET),)
TARGET_FLAGS=
else
TARGET_FLAGS=--target $(RUST_TARGET)
endif
build:
cargo build --release $(FEATURE_FLAGS) --manifest-path libextism/Cargo.toml
cargo build --release $(FEATURE_FLAGS) --manifest-path libextism/Cargo.toml $(TARGET_FLAGS)
sed -e "s%@CMAKE_INSTALL_PREFIX@%$(DEST)%" libextism/extism.pc.in > libextism/extism.pc
sed -e "s%@CMAKE_INSTALL_PREFIX@%$(DEST)%" libextism/extism-static.pc.in > libextism/extism-static.pc
bench:
@(cargo criterion $(TARGET_FLAGS) || echo 'For nicer output use cargo-criterion: `cargo install cargo-criterion` - using `cargo bench`') && cargo bench $(TARGET_FLAGS)
.PHONY: kernel
kernel:
cd kernel && bash build.sh
lint:
cargo clippy --release --no-deps --manifest-path runtime/Cargo.toml
cargo clippy --release --no-deps --manifest-path runtime/Cargo.toml $(TARGET_FLAGS)
debug:
RUSTFLAGS=-g $(MAKE) build
RUSTFLAGS=-g RUST_TARGET=$(RUST_TARGET) $(MAKE) build
install:
mkdir -p $(DEST)/lib $(DEST)/include
echo $(RUST_TARGET)
mkdir -p $(DEST)/lib $(DEST)/include $(DEST)/lib/pkgconfig
install runtime/extism.h $(DEST)/include/extism.h
install target/release/libextism.$(SOEXT) $(DEST)/lib/libextism.$(SOEXT)
if [ -f target/$(RUST_TARGET)/release/libextism.$(SOEXT) ]; then \
install target/$(RUST_TARGET)/release/libextism.$(SOEXT) $(DEST)/lib/libextism.$(SOEXT); \
fi
install target/$(RUST_TARGET)/release/libextism.$(AEXT) $(DEST)/lib/libextism.$(AEXT)
install libextism/extism.pc $(DEST)/lib/pkgconfig/extism.pc
install libextism/extism-static.pc $(DEST)/lib/pkgconfig/extism-static.pc
uninstall:
rm -f $(DEST)/include/extism.h $(DEST)/lib/libextism.$(SOEXT)
rm -f $(DEST)/include/extism.h $(DEST)/lib/libextism.$(SOEXT) $(DEST)/lib/libextism.$(AEXT) \
$(DEST)/lib/pkgconfig/extism*.pc

123
README.md
View File

@@ -1,55 +1,111 @@
### _Welcome!_
<div align="center">
<a href="https://extism.org">
<picture>
<source media="(prefers-color-scheme: dark)" srcset=".github/assets/logo-horizontal-darkmode.png">
<img alt="Extism - the WebAssembly framework" width="75%" style="max-width: 600px" src=".github/assets/logo-horizontal.png">
</picture>
</a>
**Please note:** this project still under active development. It's usable, but expect some rough edges while work is underway. If you're interested in working on or building with Extism, please join our [Discord](https://discord.gg/cx3usBCWnc) and let us know - we are happy to help get you started.
[![Discord](https://img.shields.io/discord/1011124058408112148?color=%23404eed&label=Community%20Chat&logo=Discord&logoColor=%23404eed)](https://extism.org/discord)
![GitHub Org's stars](https://img.shields.io/github/stars/extism)
![Downloads](https://img.shields.io/crates/d/extism)
![GitHub License](https://img.shields.io/github/license/extism/extism)
![GitHub release (with filter)](https://img.shields.io/github/v/release/extism/extism)
[![Discord](https://img.shields.io/discord/1011124058408112148?color=%23404eed&label=Community%20Chat&logo=Discord&logoColor=%23404eed)](https://discord.gg/cx3usBCWnc)
</div>
# [Extism](https://extism.org)
# Overview
The universal plug-in system. Run WebAssembly extensions inside your app. Use idiomatic Host SDKs for [Go](https://extism.org/docs/integrate-into-your-codebase/go-host-sdk),
[Ruby](https://extism.org/docs/integrate-into-your-codebase/ruby-host-sdk), [Python](https://extism.org/docs/integrate-into-your-codebase/python-host-sdk),
[Node](https://extism.org/docs/integrate-into-your-codebase/node-host-sdk), [Rust](https://extism.org/docs/integrate-into-your-codebase/rust-host-sdk),
[C](https://extism.org/docs/integrate-into-your-codebase/c-host-sdk), [C++](https://extism.org/docs/integrate-into-your-codebase/cpp-host-sdk),
[OCaml](https://extism.org/docs/integrate-into-your-codebase/ocaml-host-sdk),
[Haskell](https://extism.org/docs/integrate-into-your-codebase/haskell-host-sdk),
[PHP](https://extism.org/docs/integrate-into-your-codebase/php-host-sdk),
[Elixir/Erlang](https://extism.org/docs/integrate-into-your-codebase/elixir-or-erlang-host-sdk),
[.NET](https://extism.org/docs/integrate-into-your-codebase/dotnet-host-sdk),
[Java](https://extism.org/docs/integrate-into-your-codebase/java-host-sdk),
[Zig](https://extism.org/docs/integrate-into-your-codebase/zig-host-sdk) &amp; more (others coming soon).
Extism is a lightweight framework for building with WebAssembly (Wasm). It
supports running Wasm code on servers, the edge, CLIs, IoT, browsers and
everything in between. Extism is designed to be "universal" in that it supports
a common interface, no matter where it runs.
Plug-in development kits (PDK) for plug-in authors supported in [Rust](https://github.com/extism/rust-pdk), [AssemblyScript](https://github.com/extism/assemblyscript-pdk), [Go](https://github.com/extism/go-pdk), [C/C++](https://github.com/extism/c-pdk), [Haskell](https://github.com/extism/haskell-pdk), and [Zig](https://github.com/extism/zig-pdk).
> **Note:** One of the primary use cases for Extism is **building extensible
> software & plugins**. You want to be able to execute arbitrary, untrusted code
> from your users? Extism makes this safe and practical to do.
<p align="center">
<img style="width: 70%;" src="https://user-images.githubusercontent.com/7517515/210286900-39b144fd-1b26-4dd0-b7a9-2b5755bc174d.png" alt="Extism embedded SDK language support"/>
</p>
Additionally, Extism adds some extra utilities on top of standard Wasm runtimes.
For example, we support persistent memory/module-scope variables, secure &
host-controlled HTTP without WASI, runtime limiters & timers, simpler host
function linking, and more. Extism users build:
- plug-in systems
- FaaS platforms
- code generators
- web applications
- & much more...
Add a flexible, secure, and _bLaZiNg FaSt_ plug-in system to your project. Server, desktop, mobile, web, database -- you name it. Enable users to write and execute safe extensions to your software in **3 easy steps:**
# Run WebAssembly In Your App
### 1. Import
Pick a SDK to import into your program, and refer to the documentation to get
started:
Import an Extism Host SDK into your code as a library dependency.
| Type | Language | Source Code | Package |
| ----------- | ---------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------- | ----------------------------------------------------------------------- |
| Rust SDK | <img alt="Rust SDK" src="https://extism.org/img/sdk-languages/rust.svg" width="50px"/> | https://github.com/extism/extism/tree/main/runtime | [Crates.io](https://crates.io/crates/extism) |
| JS SDK | <img alt="JS SDK" src="https://extism.org/img/sdk-languages/js.svg" width="50px"/> | https://github.com/extism/js-sdk <br/>(supports Web, Node, Deno & Bun!) | [NPM](https://www.npmjs.com/package/@extism/extism) |
| Elixir SDK | <img alt="Elixir SDK" src="https://extism.org/img/sdk-languages/elixir.svg" width="50px"/> | https://github.com/extism/elixir-sdk | [Hex](https://hex.pm/packages/extism) |
| Go SDK | <img alt="Go SDK" src="https://extism.org/img/sdk-languages/go.svg" width="50px"/> | https://github.com/extism/go-sdk | [Go mod](https://pkg.go.dev/github.com/extism/go-sdk) |
| Haskell SDK | <img alt="Haskell SDK" src="https://extism.org/img/sdk-languages/haskell.svg" width="50px"/> | https://github.com/extism/haskell-sdk | [Hackage](https://hackage.haskell.org/package/extism) |
| Java SDK | <img alt="Java SDK" src="https://extism.org/img/sdk-languages/java-android.svg" width="50px"/> | https://github.com/extism/java-sdk | [Sonatype](https://central.sonatype.com/artifact/org.extism.sdk/extism) |
| .NET SDK | <img alt=".NET SDK" src="https://extism.org/img/sdk-languages/dotnet.svg" width="50px"/> | https://github.com/extism/dotnet-sdk <br/>(supports C# & F#!) | [Nuget](https://www.nuget.org/packages/Extism.Sdk) |
| OCaml SDK | <img alt="OCaml SDK" src="https://extism.org/img/sdk-languages/ocaml.svg" width="50px"/> | https://github.com/extism/ocaml-sdk | [opam](https://opam.ocaml.org/packages/extism/) |
| PHP SDK | <img alt="PHP SDK" src="https://extism.org/img/sdk-languages/php.svg" width="50px"/> | https://github.com/extism/php-sdk | [Packagist](https://packagist.org/packages/extism/extism) |
| Python SDK | <img alt="Python SDK" src="https://extism.org/img/sdk-languages/python.svg" width="50px"/> | https://github.com/extism/python-sdk | [PyPi](https://pypi.org/project/extism/) |
| Ruby SDK | <img alt="Ruby SDK" src="https://extism.org/img/sdk-languages/ruby.svg" width="50px"/> | https://github.com/extism/ruby-sdk | [RubyGems](https://rubygems.org/gems/extism) |
| Zig SDK | <img alt="Zig SDK" src="https://extism.org/img/sdk-languages/zig.svg" width="50px"/> | https://github.com/extism/zig-sdk | N/A |
| C SDK | <img alt="C SDK" src="https://extism.org/img/sdk-languages/c.svg" width="50px"/> | https://github.com/extism/extism/tree/main/libextism | N/A |
| C++ SDK | <img alt="C++ SDK" src="https://extism.org/img/sdk-languages/cpp.svg" width="50px"/> | https://github.com/extism/cpp-sdk | N/A |
### 2. Integrate
# Compile WebAssembly to run in Extism Hosts
Identify the place(s) in your code where some arbitrary logic should run (the plug-in!), returning your code some results.
Extism Hosts (running the SDK) must execute WebAssembly code that has a PDK
library compiled in to the `.wasm` binary. PDKs make it easy for plug-in /
extension code authors to read input from the host and return data back, read
provided configuration, set/get variables, make outbound HTTP calls if allowed,
and more.
### 3. Execute
Pick a PDK to import into your Wasm program, and refer to the documentation to
get started:
Load WebAssembly modules at any time in your app's lifetime and Extism will execute them in a secure sandbox, fully isolated from your program's memory.
| Type | Language | Source Code | Package |
| ------------------ | ---------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------- | --------------------------------------------------------- |
| Rust PDK | <img alt="Rust PDK" src="https://extism.org/img/sdk-languages/rust.svg" width="50px"/> | https://github.com/extism/rust-pdk | [Crates.io](https://crates.io/crates/extism-pdk) |
| JS PDK | <img alt="JS PDK" src="https://extism.org/img/sdk-languages/js.svg" width="50px"/> | https://github.com/extism/js-pdk | N/A |
| Go PDK | <img alt="Go PDK" src="https://extism.org/img/sdk-languages/go.svg" width="50px"/> | https://github.com/extism/go-pdk | [Go mod](https://pkg.go.dev/github.com/extism/go-pdk) |
| Haskell PDK | <img alt="Haskell PDK" src="https://extism.org/img/sdk-languages/haskell.svg" width="50px"/> | https://github.com/extism/haskell-pdk | [Hackage](https://hackage.haskell.org/package/extism-pdk) |
| AssemblyScript PDK | <img alt="AssemblyScript PDK" src="https://extism.org/img/sdk-languages/assemblyscript.svg" width="50px"/> | https://github.com/extism/assemblyscript-pdk | [NPM](https://www.npmjs.com/package/@extism/as-pdk) |
| .NET PDK | <img alt=".NET PDK" src="https://extism.org/img/sdk-languages/dotnet.svg" width="50px"/> | https://github.com/extism/dotnet-pdk <br/>(supports C# & F#!) | https://www.nuget.org/packages/Extism.Pdk |
| C PDK | <img alt="C PDK" src="https://extism.org/img/sdk-languages/c.svg" width="50px"/> | https://github.com/extism/c-pdk | N/A |
| Zig PDK | <img alt="Zig PDK" src="https://extism.org/img/sdk-languages/zig.svg" width="50px"/> | https://github.com/extism/zig-pdk | N/A |
---
# Support
## Discord
If you experience any problems or have any questions, please join our
[Discord](https://extism.org/discord) and let us know. Our community is very
responsive and happy to help get you started.
## Usage
Head to the [project website](https://extism.org) for more information and docs. Also, consider reading an [overview](https://extism.org/docs/overview) of Extism and its goals & approach.
Head to the [project website](https://extism.org) for more information and docs.
Also, consider reading an [overview](https://extism.org/docs/overview) of Extism
and its goals & approach.
## Contribution
Thank you for considering a contribution to Extism, we are happy to help you make a PR or find something to work on!
Thank you for considering a contribution to Extism, we are happy to help you
make a PR or find something to work on!
The easiest way to start would be to join the [Discord](https://discord.gg/cx3usBCWnc) or open an issue on the [`extism/proposals`](https://github.com/extism/proposals) issue tracker, which can eventually become an Extism Improvement Proposal (EIP).
The easiest way to start would be to join the
[Discord](https://extism.org/discord) or open an issue on the
[`extism/proposals`](https://github.com/extism/proposals) issue tracker, which
can eventually become an Extism Improvement Proposal (EIP).
For more information, please read the
[Contributing](https://extism.org/docs/concepts/contributing) guide.
---
@@ -58,9 +114,8 @@ The easiest way to start would be to join the [Discord](https://discord.gg/cx3us
Extism is an open-source product from the team at:
<p align="left">
<a href="https://dylib.so" _target="blanks"><img width="200px" src="https://user-images.githubusercontent.com/7517515/198204119-5afdebb9-a5d8-4322-bd2a-46179c8d7b24.svg"/></a>
<a href="https://dylibso.com" _target="blanks"><img width="200px" src="https://user-images.githubusercontent.com/7517515/198204119-5afdebb9-a5d8-4322-bd2a-46179c8d7b24.svg"/></a>
</p>
_Reach out and tell us what you're building! We'd love to help._
_Reach out and tell us what you're building! We'd love to help:_
<a href="mailto:hello@dylibso.com">hello@dylibso.com</a>

130
browser/.gitignore vendored
View File

@@ -1,130 +0,0 @@
# Logs
logs
*.log
npm-debug.log*
yarn-debug.log*
yarn-error.log*
lerna-debug.log*
.pnpm-debug.log*
# Diagnostic reports (https://nodejs.org/api/report.html)
report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json
# Runtime data
pids
*.pid
*.seed
*.pid.lock
# Directory for instrumented libs generated by jscoverage/JSCover
lib-cov
# Coverage directory used by tools like istanbul
coverage
*.lcov
# nyc test coverage
.nyc_output
# Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files)
.grunt
# Bower dependency directory (https://bower.io/)
bower_components
# node-waf configuration
.lock-wscript
# Compiled binary addons (https://nodejs.org/api/addons.html)
build/Release
# Dependency directories
node_modules/
jspm_packages/
# Snowpack dependency directory (https://snowpack.dev/)
web_modules/
# TypeScript cache
*.tsbuildinfo
# Optional npm cache directory
.npm
# Optional eslint cache
.eslintcache
# Optional stylelint cache
.stylelintcache
# Microbundle cache
.rpt2_cache/
.rts2_cache_cjs/
.rts2_cache_es/
.rts2_cache_umd/
# Optional REPL history
.node_repl_history
# Output of 'npm pack'
*.tgz
# Yarn Integrity file
.yarn-integrity
# dotenv environment variable files
.env
.env.development.local
.env.test.local
.env.production.local
.env.local
# parcel-bundler cache (https://parceljs.org/)
.cache
.parcel-cache
# Next.js build output
.next
out
# Nuxt.js build / generate output
.nuxt
dist
# Gatsby files
.cache/
# Comment in the public line in if your project uses Gatsby and not Next.js
# https://nextjs.org/blog/next-9-1#public-directory-support
# public
# vuepress build output
.vuepress/dist
# vuepress v2.x temp and cache directory
.temp
.cache
# Docusaurus cache and generated files
.docusaurus
# Serverless directories
.serverless/
# FuseBox cache
.fusebox/
# DynamoDB Local files
.dynamodb/
# TernJS port file
.tern-port
# Stores VSCode versions used for testing VSCode extensions
.vscode-test
# yarn v2
.yarn/cache
.yarn/unplugged
.yarn/build-state.yml
.yarn/install-state.gz
.pnp.*

View File

@@ -1,5 +0,0 @@
{
"printWidth": 120,
"trailingComma": "all",
"singleQuote": true
}

View File

@@ -1,28 +0,0 @@
.PHONY: test
prepare:
npm install
build:
npm run build
test: prepare
npm run test
clean:
echo "No clean implemented"
publish: clean prepare build
npm publish
format:
npx prettier --write src
lint:
npx prettier --check src
docs:
npx typedoc --out doc src
show-docs: docs
open doc/index.html

View File

@@ -1,23 +0,0 @@
const { build } = require("esbuild");
const { peerDependencies } = require('./package.json')
const sharedConfig = {
entryPoints: ["src/index.ts"],
bundle: true,
minify: false,
drop: [], // preseve debugger statements
external: Object.keys(peerDependencies || {}),
};
build({
...sharedConfig,
platform: 'node', // for CJS
outfile: "dist/index.js",
});
build({
...sharedConfig,
outfile: "dist/index.esm.js",
platform: 'neutral', // for ESM
format: "esm",
});

Binary file not shown.

View File

@@ -1,238 +0,0 @@
<html>
<head>
<script src="https://unpkg.com/babel-standalone@6/babel.min.js"></script>
<script src="https://unpkg.com/react@18/umd/react.development.js" crossorigin></script>
<script src="https://unpkg.com/react-dom@18/umd/react-dom.development.js" crossorigin></script>
<style>
#main {
width: 100%;
}
.manifest {
display: flex; /* or inline-flex */
flex-direction: row;
flex-wrap: nowrap;
width: 100%;
}
.urlInput {
width: 600px;
}
.funcName {
width: 150px;
}
.textAreas {
display: flex; /* or inline-flex */
flex-direction: row;
flex-wrap: nowrap;
width: 100%;
height: 300px;
}
.inputBox {
width: 100%;
height: 100%;
}
.inputBox > textarea {
width: 100%;
height: 100%;
}
.outputBox {
width: 100%;
height: 100%;
}
.outputBox > textarea {
width: 100%;
height: 100%;
}
.space {
height: 80px;
}
.dragAreas {
display: flex; /* or inline-flex */
flex-direction: row;
flex-wrap: nowrap;
width: 100%;
height: 200px;
}
.dragInput {
width: 100%;
height: 100%;
border-style: dotted;
border-color: #000;
}
.dragOutput {
width: 100%;
height: 100%;
}
.dropZone {
width: 100%;
height: 100%;
}
.outputImage {
width: 100%;
height: 100%;
}
</style>
<script type="text/babel">
function getBase64(file, cb) {
var reader = new FileReader();
reader.readAsDataURL(file);
reader.onload = function () {
cb(reader.result)
};
reader.onerror = function (error) {
console.log("error")
};
}
function arrayTob64(buffer) {
var binary = '';
var bytes = [].slice.call(buffer);
bytes.forEach((b) => binary += String.fromCharCode(b));
return window.btoa(binary);
}
class App extends React.Component {
state = {
url: "https://raw.githubusercontent.com/extism/extism/main/wasm/code.wasm",
input: new Uint8Array(),
output: new Uint8Array(),
func_name: "count_vowels",
functions: []
}
async loadFunctions(url) {
let plugin = await this.extismContext.newPlugin({ "wasm": [ { "path": url } ] })
let functions = Object.keys(await plugin.getExports())
console.log("funcs ", functions)
this.setState({functions})
}
componentDidMount() {
this.loadFunctions(this.state.url)
}
constructor(props) {
super(props)
this.extismContext = props.extismContext
}
handleInputChange(e) {
e.preventDefault();
this.setState({ [e.target.name]: e.target.value })
if (e.target.name === "url") {
this.loadFunctions(e.target.value)
}
}
onInputKeyPress(e) {
if (e.keyCode == 13 && e.shiftKey == true) {
e.preventDefault()
this.handleOnRun()
}
}
async handleOnRun(e) {
e && e.preventDefault && e.preventDefault();
let plugin = await this.extismContext.newPlugin({ "wasm": [ { "path": this.state.url } ] })
let result = await plugin.call(this.state.func_name, this.state.input)
let output = result
this.setState({output})
}
nop = (e) => {
e.preventDefault();
e.stopPropagation();
};
handleDrop = e => {
e.preventDefault();
e.stopPropagation();
let files = [...e.dataTransfer.files];
if (files && files.length == 1) {
let file = files[0]
console.log(file)
file.arrayBuffer().then(b => {
this.setState({input: new Uint8Array(b)})
this.handleOnRun()
})
} else {
throw Error("Only one file please")
}
};
render() {
const funcOptions = this.state.functions.map(f => <option value={f}>{f}</option>)
let image = null
if (this.state.output) {
image = <img src={`data:image/png;base64,${arrayTob64(this.state.output)}`}/>
}
return <div className="app">
<div className="manifest">
<div>
<label>WASM Url: </label>
<input type="text" name="url" className="urlInput" value={this.state.url} onChange={this.handleInputChange.bind(this)} />
</div>
<div>
<label>Function: </label>
<select type="text" name="func_name" className="funcName" value={this.state.func_name} onChange={this.handleInputChange.bind(this)}>
{funcOptions}
</select>
</div>
<div>
<button onClick={this.handleOnRun.bind(this)}>Run</button>
</div>
</div>
<div className="textAreas">
<div className="inputBox">
<h3>Text Input</h3>
<textarea name="input" value={this.state.input} onChange={this.handleInputChange.bind(this)} onKeyDown={this.onInputKeyPress.bind(this)}></textarea>
</div>
<div className="outputBox">
<h3>Text Output</h3>
<textarea name="output" value={new TextDecoder().decode(this.state.output)} ></textarea>
</div>
</div>
<div className="space" />
<div className="dragAreas">
<div className="dragInput">
<h3>Image Input</h3>
<div className="dropZone"
onDrop={this.handleDrop.bind(this)}
onDragOver={this.nop.bind(this)}
onDragEnter={this.nop.bind(this)}
onDragLeave={this.nop.bind(this)}
>
</div>
</div>
<div className="dragOutput">
<h3>Image Output</h3>
<div className="outputImage">
{image}
</div>
</div>
</div>
</div>
}
}
window.App = App
</script>
<script type="module">
import {ExtismContext} from './dist/index.esm.js'
const e = React.createElement;
window.onload = () => {
const domContainer = document.getElementById('main');
console.log(domContainer)
const root = ReactDOM.createRoot(domContainer);
const extismContext = new ExtismContext()
root.render(e(App, {extismContext}));
}
</script>
</head>
<body>
<div id="main"></div>
</body>
</html>

View File

@@ -1,5 +0,0 @@
/** @type {import('ts-jest/dist/types').InitialOptionsTsJest} */
module.exports = {
preset: 'ts-jest',
testEnvironment: 'node',
};

9567
browser/package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@@ -1,37 +0,0 @@
{
"name": "@extism/runtime-browser",
"version": "0.2.2",
"description": "Extism runtime in the browser",
"scripts": {
"build": "node build.js && tsc --emitDeclarationOnly --outDir dist",
"format": "prettier --write \"src/**/*.ts\"",
"lint": "tslint -p tsconfig.json",
"test": "jest --config jest.config.js"
},
"private": false,
"publishConfig": {
"access": "public"
},
"files": [
"dist/*"
],
"module": "dist/index.esm.js",
"main": "dist/index.js",
"typings": "dist/src/index.d.ts",
"author": "The Extism Authors <oss@extism.org>",
"license": "BSD-3-Clause",
"devDependencies": {
"@types/jest": "^29.2.2",
"esbuild": "^0.15.13",
"jest": "^29.2.2",
"prettier": "^2.7.1",
"ts-jest": "^29.0.3",
"tslint": "^6.1.3",
"tslint-config-prettier": "^1.18.0",
"typedoc": "^0.23.20",
"typescript": "^4.8.4"
},
"dependencies": {
"@bjorn3/browser_wasi_shim": "^0.2.1"
}
}

View File

@@ -1,104 +0,0 @@
type MemoryBlock = { offset: bigint; length: bigint };
export default class Allocator {
currentIndex: bigint;
active: Record<number, MemoryBlock>;
freed: MemoryBlock[];
memory: Uint8Array;
constructor(n: number) {
this.currentIndex = BigInt(1);
this.active = {};
this.freed = [];
this.memory = new Uint8Array(n);
}
reset() {
this.currentIndex = BigInt(1);
this.active = {};
this.freed = [];
}
alloc(length: bigint): bigint {
for (var i = 0; i < this.freed.length; i++) {
let block = this.freed[i];
if (block.length === length) {
this.active[Number(block.offset)] = block;
this.freed.splice(i, 1);
return block.offset;
} else if (block.length > length + BigInt(64)) {
const newBlock = { offset: block.offset, length };
block.offset += length;
block.length -= length;
return newBlock.offset;
}
}
// Resize memory if needed
// TODO: put a limit on the memory size
if (BigInt(this.memory.length) < this.currentIndex + length) {
const tmp = new Uint8Array(Number(this.currentIndex + length + BigInt(64)));
tmp.set(this.memory);
this.memory = tmp;
}
const offset = this.currentIndex;
this.currentIndex += length;
this.active[Number(offset)] = { offset, length };
return offset;
}
getBytes(offset: bigint): Uint8Array | null {
const block = this.active[Number(offset)];
if (!block) {
return null;
}
return new Uint8Array(this.memory.buffer, Number(offset), Number(block.length));
}
getString(offset: bigint): string | null {
const bytes = this.getBytes(offset);
if (bytes === null) {
return null;
}
return new TextDecoder().decode(bytes);
}
allocBytes(data: Uint8Array): bigint {
const offs = this.alloc(BigInt(data.length));
const bytes = this.getBytes(offs);
if (bytes === null) {
this.free(offs);
return BigInt(0);
}
bytes.set(data);
return offs;
}
allocString(data: string): bigint {
const bytes = new TextEncoder().encode(data);
return this.allocBytes(bytes);
}
getLength(offset: bigint): bigint {
const block = this.active[Number(offset)];
if (!block) {
return BigInt(0);
}
return block.length;
}
free(offset: bigint) {
const block = this.active[Number(offset)];
if (!block) {
return;
}
delete this.active[Number(offset)];
this.freed.push(block);
}
}

View File

@@ -1,45 +0,0 @@
import { Manifest, PluginConfig, ManifestWasmFile, ManifestWasmData } from './manifest';
import ExtismPlugin from './plugin';
/**
* Can be a {@link Manifest} or just the raw bytes of the WASM module as an ArrayBuffer.
* We recommend using {@link Manifest}
*/
type ManifestData = Manifest | ArrayBuffer;
/**
* A Context is needed to create plugins. The Context
* is where your plugins live. Freeing the context
* frees all of the plugins in its scope.
*/
export default class ExtismContext {
/**
* Create a plugin managed by this context
*
* @param manifest - The {@link ManifestData} describing the plugin code and config
* @param config - Config details for the plugin
* @returns A new Plugin scoped to this Context
*/
async newPlugin(manifest: ManifestData, config?: PluginConfig) {
let moduleData: ArrayBuffer | null = null;
if (manifest instanceof ArrayBuffer) {
moduleData = manifest;
} else if ((manifest as Manifest).wasm) {
const wasmData = (manifest as Manifest).wasm;
if (wasmData.length > 1) throw Error('This runtime only supports one module in Manifest.wasm');
const wasm = wasmData[0];
if ((wasm as ManifestWasmData).data) {
moduleData = (wasm as ManifestWasmData).data;
} else if ((wasm as ManifestWasmFile).path) {
const response = await fetch((wasm as ManifestWasmFile).path);
moduleData = await response.arrayBuffer();
console.dir(moduleData);
}
}
if (!moduleData) {
throw Error(`Unsure how to interpret manifest ${manifest}`);
}
return new ExtismPlugin(moduleData, config);
}
}

View File

@@ -1,23 +0,0 @@
import { ExtismContext } from './';
import fs from 'fs';
import path from 'path';
function parse(bytes: Uint8Array): any {
return JSON.parse(new TextDecoder().decode(bytes));
}
describe('', () => {
it('can load and call a plugin', async () => {
const data = fs.readFileSync(path.join(__dirname, '..', 'data', 'code.wasm'));
const ctx = new ExtismContext();
const plugin = await ctx.newPlugin({ wasm: [{ data: data }] });
const functions = await plugin.getExports();
expect(Object.keys(functions).filter((x) => !x.startsWith('__') && x !== 'memory')).toEqual(['count_vowels']);
let output = await plugin.call('count_vowels', 'this is a test');
expect(parse(output)).toEqual({ count: 4 });
output = await plugin.call('count_vowels', 'this is a test again');
expect(parse(output)).toEqual({ count: 7 });
output = await plugin.call('count_vowels', 'this is a test thrice');
expect(parse(output)).toEqual({ count: 6 });
});
});

View File

@@ -1,3 +0,0 @@
import ExtismContext from './context';
export { ExtismContext };

View File

@@ -1,40 +0,0 @@
/**
* Represents a path or url to a WASM module
*/
export type ManifestWasmFile = {
path: string;
name?: string;
hash?: string;
};
/**
* Represents the raw bytes of a WASM file loaded into memory
*/
export type ManifestWasmData = {
data: Uint8Array;
name?: string;
hash?: string;
};
/**
* {@link ExtismPlugin} Config
*/
export type PluginConfig = Map<string, string>;
/**
* The WASM to load as bytes or a path
*/
export type ManifestWasm = ManifestWasmFile | ManifestWasmData;
/**
* The manifest which describes the {@link ExtismPlugin} code and
* runtime constraints.
*
* @see [Extism > Concepts > Manifest](https://extism.org/docs/concepts/manifest)
*/
export type Manifest = {
wasm: Array<ManifestWasm>;
//memory?: ManifestMemory;
config?: PluginConfig;
allowed_hosts?: Array<string>;
};

View File

@@ -1,187 +0,0 @@
import Allocator from './allocator';
import { PluginConfig } from './manifest';
//@ts-ignore TODO add types to this library
import { WASI, File } from "@bjorn3/browser_wasi_shim";
export default class ExtismPlugin {
moduleData: ArrayBuffer;
allocator: Allocator;
config?: PluginConfig;
vars: Record<string, Uint8Array>;
input: Uint8Array;
output: Uint8Array;
module?: WebAssembly.WebAssemblyInstantiatedSource;
constructor(moduleData: ArrayBuffer, config?: PluginConfig) {
this.moduleData = moduleData;
this.allocator = new Allocator(1024 * 1024);
this.config = config;
this.vars = {};
this.input = new Uint8Array();
this.output = new Uint8Array();
}
async getExports(): Promise<WebAssembly.Exports> {
const module = await this._instantiateModule();
return module.instance.exports;
}
async getImports(): Promise<WebAssembly.ModuleImportDescriptor[]> {
const module = await this._instantiateModule();
return WebAssembly.Module.imports(module.module);
}
async getInstance(): Promise<WebAssembly.Instance> {
const module = await this._instantiateModule();
return module.instance;
}
async call(func_name: string, input: Uint8Array | string): Promise<Uint8Array> {
const module = await this._instantiateModule();
if (typeof input === 'string') {
this.input = new TextEncoder().encode(input);
} else if (input instanceof Uint8Array) {
this.input = input;
} else {
throw new Error('input should be string or Uint8Array');
}
this.allocator.reset();
let func = module.instance.exports[func_name];
if (!func) {
throw Error(`function does not exist ${func_name}`);
}
//@ts-ignore
func();
return this.output;
}
async _instantiateModule(): Promise<WebAssembly.WebAssemblyInstantiatedSource> {
if (this.module) {
return this.module;
}
const environment = this.makeEnv();
const args: Array<string> = [];
const envVars: Array<string> = [];
let fds = [
new File([]), // stdin
new File([]), // stdout
new File([]), // stderr
];
let wasi = new WASI(args, envVars, fds);
let env = {
wasi_snapshot_preview1: wasi.wasiImport,
env: environment
};
this.module = await WebAssembly.instantiate(this.moduleData, env);
if (this.module.instance.exports._start) {
wasi.start(this.module.instance);
}
return this.module;
}
makeEnv(): any {
const plugin = this;
return {
extism_alloc(n: bigint): bigint {
return plugin.allocator.alloc(n);
},
extism_free(n: bigint) {
plugin.allocator.free(n);
},
extism_load_u8(n: bigint): number {
return plugin.allocator.memory[Number(n)];
},
extism_load_u64(n: bigint): bigint {
let cast = new DataView(plugin.allocator.memory.buffer, Number(n));
return cast.getBigUint64(0, true);
},
extism_store_u8(offset: bigint, n: number) {
plugin.allocator.memory[Number(offset)] = Number(n);
},
extism_store_u64(offset: bigint, n: bigint) {
const tmp = new DataView(plugin.allocator.memory.buffer, Number(offset));
tmp.setBigUint64(0, n, true);
},
extism_input_length(): bigint {
return BigInt(plugin.input.length);
},
extism_input_load_u8(i: bigint): number {
return plugin.input[Number(i)];
},
extism_input_load_u64(idx: bigint): bigint {
let cast = new DataView(plugin.input.buffer, Number(idx));
return cast.getBigUint64(0, true);
},
extism_output_set(offset: bigint, length: bigint) {
const offs = Number(offset);
const len = Number(length);
plugin.output = plugin.allocator.memory.slice(offs, offs + len);
},
extism_error_set(i: bigint) {
throw plugin.allocator.getString(i);
},
extism_config_get(i: bigint): bigint {
if (typeof plugin.config === 'undefined') {
return BigInt(0);
}
const key = plugin.allocator.getString(i);
if (key === null) {
return BigInt(0);
}
const value = plugin.config.get(key);
if (typeof value === 'undefined') {
return BigInt(0);
}
return plugin.allocator.allocString(value);
},
extism_var_get(i: bigint): bigint {
const key = plugin.allocator.getString(i);
if (key === null) {
return BigInt(0);
}
const value = plugin.vars[key];
if (typeof value === 'undefined') {
return BigInt(0);
}
return plugin.allocator.allocBytes(value);
},
extism_var_set(n: bigint, i: bigint) {
const key = plugin.allocator.getString(n);
if (key === null) {
return;
}
const value = plugin.allocator.getBytes(i);
if (value === null) {
return;
}
plugin.vars[key] = value;
},
extism_http_request(n: bigint, i: bigint): number {
debugger;
return 0;
},
extism_length(i: bigint): bigint {
return plugin.allocator.getLength(i);
},
extism_log_warn(i: bigint) {
const s = plugin.allocator.getString(i);
console.warn(s);
},
extism_log_info(i: bigint) {
const s = plugin.allocator.getString(i);
console.log(s);
},
extism_log_debug(i: bigint) {
const s = plugin.allocator.getString(i);
console.debug(s);
},
extism_log_error(i: bigint) {
const s = plugin.allocator.getString(i);
console.error(s);
},
};
}
}

View File

@@ -1,13 +0,0 @@
{
"compilerOptions": {
"target": "es2016",
"module": "commonjs",
"esModuleInterop": true,
"forceConsistentCasingInFileNames": true,
"declaration": true,
"strict": true,
"skipLibCheck": true,
"allowJs": true
},
"exclude": ["node_modules", "dist", "**/*.test.ts"]
}

View File

@@ -1,6 +0,0 @@
{
"extends": [
"tslint:recommended",
"tslint-config-prettier"
]
}

View File

@@ -1,2 +0,0 @@
build:
clang -g -o main main.c -lextism -L .

View File

@@ -1,49 +0,0 @@
{
"name": "extism/extism",
"description": "Make your software programmable. Run WebAssembly extensions in your app using the first off-the-shelf, universal plug-in system.",
"license": "BSD-3-Clause",
"type": "library",
"keywords": [
"WebAssembly",
"plugin-system",
"runtime",
"plug-in"
],
"authors": [
{
"name": "The Extism Authors",
"email": "oss@extism.org",
"homepage": "https://extism.org"
},
{
"name": "Dylibso, Inc.",
"email": "oss@dylib.so",
"homepage": "https://dylib.so"
}
],
"require": {
"php": "^7.4 || ^8",
"ircmaxell/ffime": "dev-master"
},
"suggest": {},
"minimum-stability": "dev",
"prefer-stable": true,
"autoload": {
"psr-4": {
"Extism\\": "php/src/"
},
"files": [
"php/src/Context.php",
"php/src/Plugin.php"
]
},
"autoload-dev": {
"psr-4": {}
},
"config": {
"sort-packages": true
},
"extra": {},
"scripts": {},
"scripts-descriptions": {}
}

163
composer.lock generated
View File

@@ -1,163 +0,0 @@
{
"_readme": [
"This file locks the dependencies of your project to a known state",
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
"This file is @generated automatically"
],
"content-hash": "0e0352cd3a96e03fd9c964888deedb29",
"packages": [
{
"name": "ircmaxell/ffime",
"version": "dev-master",
"source": {
"type": "git",
"url": "https://github.com/ircmaxell/FFIMe.git",
"reference": "5f648f95ecf23262a2e58f4e4c9001bd1b5f9c98"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/ircmaxell/FFIMe/zipball/5f648f95ecf23262a2e58f4e4c9001bd1b5f9c98",
"reference": "5f648f95ecf23262a2e58f4e4c9001bd1b5f9c98",
"shasum": ""
},
"require": {
"ircmaxell/php-c-parser": "dev-master",
"ircmaxell/php-object-symbolresolver": "dev-master",
"php": ">=8.0"
},
"require-dev": {
"phpunit/phpunit": "^8.0"
},
"default-branch": true,
"type": "library",
"autoload": {
"psr-4": {
"FFIMe\\": "lib/"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Anthony Ferrara",
"email": "ircmaxell@gmail.com"
}
],
"description": "Make life easy when working with 7.4's FFI",
"support": {
"issues": "https://github.com/ircmaxell/FFIMe/issues",
"source": "https://github.com/ircmaxell/FFIMe/tree/master"
},
"time": "2022-09-01T18:56:19+00:00"
},
{
"name": "ircmaxell/php-c-parser",
"version": "dev-master",
"source": {
"type": "git",
"url": "https://github.com/ircmaxell/php-c-parser.git",
"reference": "55e0a4fdf88d6e955d928860e1e107a68492c1cf"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/ircmaxell/php-c-parser/zipball/55e0a4fdf88d6e955d928860e1e107a68492c1cf",
"reference": "55e0a4fdf88d6e955d928860e1e107a68492c1cf",
"shasum": ""
},
"require": {
"php": ">=7.4"
},
"require-dev": {
"ircmaxell/php-yacc": "dev-master",
"phpunit/phpunit": "^8.0"
},
"default-branch": true,
"type": "library",
"autoload": {
"psr-4": {
"PHPCParser\\": "lib/"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Anthony Ferrara",
"email": "ircmaxell@gmail.com"
},
{
"name": "Bob Weinand",
"email": "bobwei9@hotmail.com"
}
],
"description": "Parse C when using PHP",
"support": {
"issues": "https://github.com/ircmaxell/php-c-parser/issues",
"source": "https://github.com/ircmaxell/php-c-parser/tree/master"
},
"time": "2022-08-27T17:37:14+00:00"
},
{
"name": "ircmaxell/php-object-symbolresolver",
"version": "dev-master",
"source": {
"type": "git",
"url": "https://github.com/ircmaxell/php-object-symbolresolver.git",
"reference": "3734df2b22d7c8273ee6f6f2155fddde6056d057"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/ircmaxell/php-object-symbolresolver/zipball/3734df2b22d7c8273ee6f6f2155fddde6056d057",
"reference": "3734df2b22d7c8273ee6f6f2155fddde6056d057",
"shasum": ""
},
"require": {
"php": ">=7.4"
},
"default-branch": true,
"type": "library",
"autoload": {
"psr-4": {
"PHPObjectSymbolResolver\\": "lib/"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Anthony Ferrara",
"email": "ircmaxell@gmail.com"
},
{
"name": "Bob Weinand",
"email": "bobwei9@hotmail.com"
}
],
"description": "An object file (ELF, Mach-O) parser",
"support": {
"issues": "https://github.com/ircmaxell/php-object-symbolresolver/issues",
"source": "https://github.com/ircmaxell/php-object-symbolresolver/tree/master"
},
"time": "2022-08-14T19:30:20+00:00"
}
],
"packages-dev": [],
"aliases": [],
"minimum-stability": "dev",
"stability-flags": {
"ircmaxell/ffime": 20
},
"prefer-stable": true,
"prefer-lowest": false,
"platform": {
"php": "^7.4 || ^8"
},
"platform-dev": [],
"plugin-api-version": "2.3.0"
}

26
convert-macros/Cargo.toml Normal file
View File

@@ -0,0 +1,26 @@
[package]
name = "extism-convert-macros"
edition.workspace = true
authors.workspace = true
license.workspace = true
homepage.workspace = true
repository.workspace = true
version.workspace = true
description = "Macros to remove boilerplate with Extism"
[lib]
proc-macro = true
[features]
extism-path = []
extism-pdk-path = []
[dependencies]
manyhow.version = "0.11.0"
proc-macro-crate = "3.1.0"
proc-macro2 = "1.0.78"
quote = "1.0.35"
syn = { version = "2.0.48", features = ["derive"] }
[dev-dependencies]
trybuild = "1.0.89"

108
convert-macros/src/lib.rs Normal file
View File

@@ -0,0 +1,108 @@
use std::iter;
use manyhow::{ensure, error_message, manyhow, Result};
use proc_macro_crate::{crate_name, FoundCrate};
use quote::{format_ident, quote, ToTokens};
use syn::{parse_quote, Attribute, DeriveInput, Path};
/// Tries to resolve the path to `extism_convert` dynamically, falling back to feature flags when unsuccessful.
fn convert_path() -> Path {
match (
crate_name("extism"),
crate_name("extism-convert"),
crate_name("extism-pdk"),
) {
(Ok(FoundCrate::Name(name)), ..) => {
let ident = format_ident!("{name}");
parse_quote!(::#ident::convert)
}
(_, Ok(FoundCrate::Name(name)), ..) | (.., Ok(FoundCrate::Name(name))) => {
let ident = format_ident!("{name}");
parse_quote!(::#ident)
}
(Ok(FoundCrate::Itself), ..) => parse_quote!(::extism::convert),
(_, Ok(FoundCrate::Itself), ..) => parse_quote!(::extism_convert),
(.., Ok(FoundCrate::Itself)) => parse_quote!(::extism_pdk),
_ if cfg!(feature = "extism-path") => parse_quote!(::extism::convert),
_ if cfg!(feature = "extism-pdk-path") => parse_quote!(::extism_pdk),
_ => parse_quote!(::extism_convert),
}
}
fn extract_encoding(attrs: &[Attribute]) -> Result<Path> {
let encodings: Vec<_> = attrs
.iter()
.filter(|attr| attr.path().is_ident("encoding"))
.collect();
ensure!(!encodings.is_empty(), "encoding needs to be specified"; try = "`#[encoding(ToJson)]`");
ensure!(encodings.len() < 2, encodings[1], "only one encoding can be specified"; try = "remove `{}`", encodings[1].to_token_stream());
Ok(encodings[0].parse_args().map_err(
|e| error_message!(e.span(), "{e}"; note= "expects a path"; try = "`#[encoding(ToJson)]`"),
)?)
}
#[manyhow]
#[proc_macro_derive(ToBytes, attributes(encoding))]
pub fn to_bytes(
DeriveInput {
attrs,
ident,
generics,
..
}: DeriveInput,
) -> Result {
let encoding = extract_encoding(&attrs)?;
let convert = convert_path();
let (_, type_generics, _) = generics.split_for_impl();
let mut generics = generics.clone();
generics.make_where_clause().predicates.push(
parse_quote!(for<'__to_bytes_b> #encoding<&'__to_bytes_b Self>: #convert::ToBytes<'__to_bytes_b>)
);
generics.params = iter::once(parse_quote!('__to_bytes_a))
.chain(generics.params)
.collect();
let (impl_generics, _, where_clause) = generics.split_for_impl();
Ok(quote! {
impl #impl_generics #convert::ToBytes<'__to_bytes_a> for #ident #type_generics #where_clause
{
type Bytes = ::std::vec::Vec<u8>;
fn to_bytes(&self) -> Result<Self::Bytes, #convert::Error> {
#convert::ToBytes::to_bytes(&#encoding(self)).map(|__bytes| __bytes.as_ref().to_vec())
}
}
})
}
#[manyhow]
#[proc_macro_derive(FromBytes, attributes(encoding))]
pub fn from_bytes(
DeriveInput {
attrs,
ident,
mut generics,
..
}: DeriveInput,
) -> Result {
let encoding = extract_encoding(&attrs)?;
let convert = convert_path();
generics
.make_where_clause()
.predicates
.push(parse_quote!(#encoding<Self>: #convert::FromBytesOwned));
let (impl_generics, type_generics, where_clause) = generics.split_for_impl();
Ok(quote! {
impl #impl_generics #convert::FromBytesOwned for #ident #type_generics #where_clause
{
fn from_bytes_owned(__data: &[u8]) -> Result<Self, #convert::Error> {
<#encoding<Self> as #convert::FromBytesOwned>::from_bytes_owned(__data).map(|__encoding| __encoding.0)
}
}
})
}

View File

@@ -0,0 +1,5 @@
#[test]
fn ui() {
let t = trybuild::TestCases::new();
t.compile_fail("tests/ui/*.rs");
}

View File

@@ -0,0 +1,23 @@
use extism_convert_macros::ToBytes;
#[derive(ToBytes)]
struct MissingEncoding;
#[derive(ToBytes)]
#[encoding]
struct EmptyAttr;
#[derive(ToBytes)]
#[encoding = "string"]
struct EqNoParen;
#[derive(ToBytes)]
#[encoding(something, else)]
struct NotAPath;
#[derive(ToBytes)]
#[encoding(Multiple)]
#[encoding(Encodings)]
struct MultipleEncodings;
fn main() {}

View File

@@ -0,0 +1,44 @@
error: encoding needs to be specified
= try: `#[encoding(ToJson)]`
--> tests/ui/invalid-encoding.rs:3:10
|
3 | #[derive(ToBytes)]
| ^^^^^^^
|
= note: this error originates in the derive macro `ToBytes` (in Nightly builds, run with -Z macro-backtrace for more info)
error: expected attribute arguments in parentheses: #[encoding(...)]
= note: expects a path
= try: `#[encoding(ToJson)]`
--> tests/ui/invalid-encoding.rs:7:3
|
7 | #[encoding]
| ^^^^^^^^
error: expected parentheses: #[encoding(...)]
= note: expects a path
= try: `#[encoding(ToJson)]`
--> tests/ui/invalid-encoding.rs:11:12
|
11 | #[encoding = "string"]
| ^
error: unexpected token
= note: expects a path
= try: `#[encoding(ToJson)]`
--> tests/ui/invalid-encoding.rs:15:21
|
15 | #[encoding(something, else)]
| ^
error: only one encoding can be specified
= try: remove `#[encoding(Encodings)]`
--> tests/ui/invalid-encoding.rs:20:1
|
20 | #[encoding(Encodings)]
| ^^^^^^^^^^^^^^^^^^^^^^

31
convert/Cargo.toml Normal file
View File

@@ -0,0 +1,31 @@
[package]
name = "extism-convert"
readme = "./README.md"
edition.workspace = true
authors.workspace = true
license.workspace = true
homepage.workspace = true
repository.workspace = true
version.workspace = true
description = "Traits to make Rust types usable with Extism"
[dependencies]
anyhow = "1.0.75"
base64 = "~0.22"
bytemuck = {version = "1.14.0", optional = true }
prost = { version = "0.12.0", optional = true }
protobuf = { version = "3.2.0", optional = true }
rmp-serde = { version = "1.1.2", optional = true }
serde = "1.0.186"
serde_json = "1.0.105"
extism-convert-macros.workspace = true
[dev-dependencies]
serde = { version = "1.0.186", features = ["derive"] }
[features]
default = ["msgpack", "prost", "raw"]
msgpack = ["rmp-serde"]
raw = ["bytemuck"]
extism-path = ["extism-convert-macros/extism-path"]
extism-pdk-path = ["extism-convert-macros/extism-pdk-path"]

12
convert/README.md Normal file
View File

@@ -0,0 +1,12 @@
# extism-convert
The [extism-convert](https://crates.io/crates/extism-convert) crate is used by the [Rust SDK](https://crates.io/crates/extism) and [Rust PDK](https://crates.io/crates/extism-pdk) to provide a shared interface for
encoding and decoding values that can be passed to Extism function calls.
A set of types (Json, Msgpack, Protobuf) that can be used to specify a serde encoding are also provided. These are
similar to [axum extractors](https://docs.rs/axum/latest/axum/extract/index.html#intro) - they are
implemented as a tuple struct with a single field that is meant to be extracted using pattern matching.
## Documentation
See [extism-convert on docs.rs](https://docs.rs/extism-convert/latest/extism_convert/) for in-depth documentation.

187
convert/src/encoding.rs Normal file
View File

@@ -0,0 +1,187 @@
use crate::*;
use base64::Engine;
/// The `encoding` macro can be used to create newtypes that implement a particular encoding for the
/// inner value.
///
/// For example, the following line creates a new JSON encoding using serde_json:
///
/// ```
/// extism_convert::encoding!(MyJson, serde_json::to_vec, serde_json::from_slice);
/// ```
///
/// This will create a struct `struct MyJson<T>(pub T)` and implement [`ToBytes`] using [`serde_json::to_vec`]
/// and [`FromBytesOwned`] using [`serde_json::from_slice`]
#[macro_export]
macro_rules! encoding {
($pub:vis $name:ident, $to_vec:expr, $from_slice:expr) => {
#[doc = concat!(stringify!($name), " encoding")]
#[derive(Debug)]
$pub struct $name<T>(pub T);
impl<T> $name<T> {
pub fn into_inner(self) -> T {
self.0
}
}
impl<T> From<T> for $name<T> {
fn from(data: T) -> Self {
Self(data)
}
}
impl<T: serde::de::DeserializeOwned> $crate::FromBytesOwned for $name<T> {
fn from_bytes_owned(data: &[u8]) -> std::result::Result<Self, $crate::Error> {
let x = $from_slice(data)?;
std::result::Result::Ok($name(x))
}
}
impl<'a, T: serde::Serialize> $crate::ToBytes<'a> for $name<T> {
type Bytes = Vec<u8>;
fn to_bytes(&self) -> std::result::Result<Self::Bytes, $crate::Error> {
let enc = $to_vec(&self.0)?;
std::result::Result::Ok(enc)
}
}
};
}
encoding!(pub Json, serde_json::to_vec, serde_json::from_slice);
#[cfg(feature = "msgpack")]
encoding!(pub Msgpack, rmp_serde::to_vec, rmp_serde::from_slice);
impl<'a> ToBytes<'a> for serde_json::Value {
type Bytes = Vec<u8>;
fn to_bytes(&self) -> Result<Self::Bytes, Error> {
Ok(serde_json::to_vec(self)?)
}
}
impl FromBytesOwned for serde_json::Value {
fn from_bytes_owned(data: &[u8]) -> Result<Self, Error> {
Ok(serde_json::from_slice(data)?)
}
}
/// Base64 conversion
///
/// When using `Base64` with `ToBytes` any type that implement `AsRef<[T]>` may be used as the inner value,
/// but only `Base64<String>` and `Base64<Vec>` may be used with `FromBytes`
///
/// A value wrapped in `Base64` will automatically be encoded/decoded using base64, the inner value should not
/// already be base64 encoded.
#[derive(Debug)]
pub struct Base64<T: AsRef<[u8]>>(pub T);
impl<T: AsRef<[u8]>> From<T> for Base64<T> {
fn from(data: T) -> Self {
Self(data)
}
}
impl<'a, T: AsRef<[u8]>> ToBytes<'a> for Base64<T> {
type Bytes = String;
fn to_bytes(&self) -> Result<Self::Bytes, Error> {
Ok(base64::engine::general_purpose::STANDARD.encode(&self.0))
}
}
impl FromBytesOwned for Base64<Vec<u8>> {
fn from_bytes_owned(data: &[u8]) -> Result<Self, Error> {
Ok(Base64(
base64::engine::general_purpose::STANDARD.decode(data)?,
))
}
}
impl FromBytesOwned for Base64<String> {
fn from_bytes_owned(data: &[u8]) -> Result<Self, Error> {
Ok(Base64(String::from_utf8(
base64::engine::general_purpose::STANDARD.decode(data)?,
)?))
}
}
/// Protobuf encoding
///
/// Allows for `prost` Protobuf messages to be used as arguments to Extism plugin calls
#[cfg(feature = "prost")]
#[derive(Debug)]
pub struct Prost<T: prost::Message>(pub T);
#[cfg(feature = "prost")]
impl<T: prost::Message> From<T> for Prost<T> {
fn from(data: T) -> Self {
Self(data)
}
}
#[cfg(feature = "prost")]
impl<'a, T: prost::Message> ToBytes<'a> for Prost<T> {
type Bytes = Vec<u8>;
fn to_bytes(&self) -> Result<Self::Bytes, Error> {
Ok(self.0.encode_to_vec())
}
}
#[cfg(feature = "prost")]
impl<T: Default + prost::Message> FromBytesOwned for Prost<T> {
fn from_bytes_owned(data: &[u8]) -> Result<Self, Error> {
Ok(Prost(T::decode(data)?))
}
}
/// Protobuf encoding
///
/// Allows for `rust-protobuf` Protobuf messages to be used as arguments to Extism plugin calls
#[cfg(feature = "protobuf")]
pub struct Protobuf<T: protobuf::Message>(pub T);
#[cfg(feature = "protobuf")]
impl<'a, T: protobuf::Message> ToBytes<'a> for Protobuf<T> {
type Bytes = Vec<u8>;
fn to_bytes(&self) -> Result<Self::Bytes, Error> {
Ok(self.0.write_to_bytes()?)
}
}
#[cfg(feature = "protobuf")]
impl<T: Default + protobuf::Message> FromBytesOwned for Protobuf<T> {
fn from_bytes_owned(data: &[u8]) -> Result<Self, Error> {
Ok(Protobuf(T::parse_from_bytes(data)?))
}
}
/// Raw does no conversion, it just copies the memory directly.
/// Note: This will only work for types that implement [bytemuck::Pod](https://docs.rs/bytemuck/latest/bytemuck/trait.Pod.html)
#[cfg(all(feature = "raw", target_endian = "little"))]
pub struct Raw<'a, T: bytemuck::Pod>(pub &'a T);
#[cfg(all(feature = "raw", target_endian = "little"))]
impl<'a, T: bytemuck::Pod> ToBytes<'a> for Raw<'a, T> {
type Bytes = &'a [u8];
fn to_bytes(&self) -> Result<Self::Bytes, Error> {
Ok(bytemuck::bytes_of(self.0))
}
}
#[cfg(all(feature = "raw", target_endian = "little"))]
impl<'a, T: bytemuck::Pod> FromBytes<'a> for Raw<'a, T> {
fn from_bytes(data: &'a [u8]) -> Result<Self, Error> {
let x = bytemuck::try_from_bytes(data).map_err(|x| Error::msg(x.to_string()))?;
Ok(Raw(x))
}
}
#[cfg(all(feature = "raw", target_endian = "big"))]
compile_error!("The raw feature is only supported on little endian targets");

164
convert/src/from_bytes.rs Normal file
View File

@@ -0,0 +1,164 @@
use crate::*;
pub use extism_convert_macros::FromBytes;
/// `FromBytes` is used to define how a type should be decoded when working with
/// Extism memory. It is used for plugin output and host function input.
///
/// `FromBytes` can be derived by delegating encoding to generic type implementing
/// `FromBytes`, e.g., [`Json`], [`Msgpack`].
///
/// ```
/// use extism_convert::{Json, FromBytes};
/// use serde::Deserialize;
///
/// #[derive(FromBytes, Deserialize, PartialEq, Debug)]
/// #[encoding(Json)]
/// struct Struct {
/// hello: String,
/// }
///
/// assert_eq!(Struct::from_bytes(br#"{"hello":"hi"}"#)?, Struct { hello: "hi".into() });
/// # Ok::<(), extism_convert::Error>(())
/// ```
///
/// Custom encodings can also be used, through new-types with a single generic
/// argument, i.e., `Type<T>(T)`, that implement `FromBytesOwned` for the struct.
///
/// ```
/// use std::str::{self, FromStr};
/// use std::convert::Infallible;
/// use extism_convert::{Error, FromBytes, FromBytesOwned};
///
/// // Custom serialization using `FromStr`
/// struct StringEnc<T>(T);
/// impl<T: FromStr> FromBytesOwned for StringEnc<T> where Error: From<<T as FromStr>::Err> {
/// fn from_bytes_owned(data: &[u8]) -> Result<Self, Error> {
/// Ok(Self(str::from_utf8(data)?.parse()?))
/// }
/// }
///
/// #[derive(FromBytes, PartialEq, Debug)]
/// #[encoding(StringEnc)]
/// struct Struct {
/// hello: String,
/// }
///
/// impl FromStr for Struct {
/// type Err = Infallible;
/// fn from_str(s: &str) -> Result<Self, Infallible> {
/// Ok(Self { hello: s.to_owned() })
/// }
/// }
///
/// assert_eq!(Struct::from_bytes(b"hi")?, Struct { hello: "hi".into() });
/// # Ok::<(), extism_convert::Error>(())
/// ```
pub trait FromBytes<'a>: Sized {
/// Decode a value from a slice of bytes
fn from_bytes(data: &'a [u8]) -> Result<Self, Error>;
}
/// `FromBytesOwned` is similar to [`FromBytes`] but it doesn't borrow from the input slice.
/// [`FromBytes`] is automatically implemented for all types that implement `FromBytesOwned`.
///
/// `FromBytesOwned` can be derived through [`#[derive(FromBytes)]`](FromBytes).
pub trait FromBytesOwned: Sized {
/// Decode a value from a slice of bytes, the resulting value should not borrow the input
/// data.
fn from_bytes_owned(data: &[u8]) -> Result<Self, Error>;
}
impl<'a> FromBytes<'a> for &'a [u8] {
fn from_bytes(data: &'a [u8]) -> Result<Self, Error> {
Ok(data)
}
}
impl<'a> FromBytes<'a> for &'a str {
fn from_bytes(data: &'a [u8]) -> Result<Self, Error> {
Ok(std::str::from_utf8(data)?)
}
}
impl<'a, T: FromBytesOwned> FromBytes<'a> for T {
fn from_bytes(data: &'a [u8]) -> Result<Self, Error> {
T::from_bytes_owned(data)
}
}
impl FromBytesOwned for Box<[u8]> {
fn from_bytes_owned(data: &[u8]) -> Result<Self, Error> {
Ok(data.to_vec().into_boxed_slice())
}
}
impl FromBytesOwned for Vec<u8> {
fn from_bytes_owned(data: &[u8]) -> Result<Self, Error> {
Ok(data.to_vec())
}
}
impl FromBytesOwned for String {
fn from_bytes_owned(data: &[u8]) -> Result<Self, Error> {
Ok(std::str::from_utf8(data)?.to_string())
}
}
impl FromBytesOwned for f64 {
fn from_bytes_owned(data: &[u8]) -> Result<Self, Error> {
Ok(Self::from_le_bytes(data.try_into()?))
}
}
impl FromBytesOwned for f32 {
fn from_bytes_owned(data: &[u8]) -> Result<Self, Error> {
Ok(Self::from_le_bytes(data.try_into()?))
}
}
impl FromBytesOwned for i64 {
fn from_bytes_owned(data: &[u8]) -> Result<Self, Error> {
Ok(Self::from_le_bytes(data.try_into()?))
}
}
impl FromBytesOwned for i32 {
fn from_bytes_owned(data: &[u8]) -> Result<Self, Error> {
Ok(Self::from_le_bytes(data.try_into()?))
}
}
impl FromBytesOwned for u64 {
fn from_bytes_owned(data: &[u8]) -> Result<Self, Error> {
Ok(Self::from_le_bytes(data.try_into()?))
}
}
impl FromBytesOwned for u32 {
fn from_bytes_owned(data: &[u8]) -> Result<Self, Error> {
Ok(Self::from_le_bytes(data.try_into()?))
}
}
impl FromBytesOwned for () {
fn from_bytes_owned(_: &[u8]) -> Result<Self, Error> {
Ok(())
}
}
impl<'a, T: FromBytes<'a>> FromBytes<'a> for std::io::Cursor<T> {
fn from_bytes(data: &'a [u8]) -> Result<Self, Error> {
Ok(std::io::Cursor::new(T::from_bytes(data)?))
}
}
impl<'a, T: FromBytes<'a>> FromBytes<'a> for Option<T> {
fn from_bytes(data: &'a [u8]) -> Result<Self, Error> {
if data.is_empty() {
return Ok(None);
}
T::from_bytes(data).map(Some)
}
}

38
convert/src/lib.rs Normal file
View File

@@ -0,0 +1,38 @@
//! The [extism-convert](https://crates.io/crates/extism-convert) crate is used by the [Rust SDK](https://crates.io/crates/extism) and [Rust PDK](https://crates.io/crates/extism-pdk) to provide a shared interface for
//! encoding and decoding values that can be passed to Extism function calls.
//!
//! A set of types (Json, Msgpack) that can be used to specify a serde encoding are also provided. These are
//! similar to [axum extractors](https://docs.rs/axum/latest/axum/extract/index.html#intro) - they are
//! implemented as a tuple struct with a single field that is meant to be extracted using pattern matching.
// Makes proc-macros able to resolve `::extism_convert` correctly
extern crate self as extism_convert;
pub use anyhow::Error;
mod encoding;
mod from_bytes;
mod memory_handle;
mod to_bytes;
pub use encoding::{Base64, Json};
#[cfg(feature = "msgpack")]
pub use encoding::Msgpack;
#[cfg(feature = "prost")]
pub use encoding::Prost;
#[cfg(feature = "protobuf")]
pub use encoding::Protobuf;
#[cfg(all(feature = "raw", target_endian = "little"))]
pub use encoding::Raw;
pub use from_bytes::{FromBytes, FromBytesOwned};
pub use memory_handle::MemoryHandle;
pub use to_bytes::ToBytes;
#[cfg(test)]
mod tests;

View File

@@ -0,0 +1,42 @@
/// `MemoryHandle` describes where in memory a block of data is stored
#[derive(Debug, Clone, Copy, PartialEq, PartialOrd, Eq, Ord)]
pub struct MemoryHandle {
/// The offset of the region in Extism linear memory
pub offset: u64,
/// The length of the memory region
pub length: u64,
}
impl MemoryHandle {
/// Create a new `MemoryHandle` from an offset in memory and length
///
/// # Safety
/// This function is unsafe because the specified memory region may not be valid.
pub unsafe fn new(offset: u64, length: u64) -> MemoryHandle {
MemoryHandle { offset, length }
}
/// `NULL` equivalent
pub fn null() -> MemoryHandle {
MemoryHandle {
offset: 0,
length: 0,
}
}
/// Get the offset of a memory handle
pub fn offset(&self) -> u64 {
self.offset
}
/// Get the length of the memory region
pub fn len(&self) -> usize {
self.length as usize
}
/// Returns `true` when the length is 0
pub fn is_empty(&self) -> bool {
self.length == 0
}
}

90
convert/src/tests.rs Normal file
View File

@@ -0,0 +1,90 @@
use crate::*;
#[derive(serde::Serialize, serde::Deserialize, Debug, PartialEq)]
struct Testing {
a: String,
b: i64,
c: f32,
}
#[test]
fn roundtrip_json() {
let x = Testing {
a: "foobar".to_string(),
b: 123,
c: 456.7,
};
let bytes = Json(&x).to_bytes().unwrap();
let Json(y): Json<Testing> = FromBytes::from_bytes(&bytes).unwrap();
assert_eq!(x, y);
}
#[test]
#[cfg(feature = "msgpack")]
fn roundtrip_msgpack() {
let x = Testing {
a: "foobar".to_string(),
b: 123,
c: 456.7,
};
let bytes = Msgpack(&x).to_bytes().unwrap();
let Msgpack(y): Msgpack<Testing> = FromBytes::from_bytes(&bytes).unwrap();
assert_eq!(x, y);
}
#[test]
fn roundtrip_base64() {
let bytes = Base64("this is a test").to_bytes().unwrap();
let Base64(s): Base64<String> = FromBytes::from_bytes(bytes.as_bytes()).unwrap();
assert_eq!(s, "this is a test");
}
#[test]
fn rountrip_option() {
// `None` case
let e0: Option<Json<Testing>> = FromBytes::from_bytes(&[]).unwrap();
let b = e0.to_bytes().unwrap();
let e1: Option<Json<Testing>> = FromBytes::from_bytes(&b).unwrap();
assert!(e0.is_none());
assert_eq!(e0.is_none(), e1.is_none());
// `Some` case
let x = Testing {
a: "foobar".to_string(),
b: 123,
c: 456.7,
};
let bytes = Json(&x).to_bytes().unwrap();
let y: Option<Json<Testing>> = FromBytes::from_bytes(&bytes).unwrap();
let b = ToBytes::to_bytes(&y).unwrap();
let z: Option<Json<Testing>> = FromBytes::from_bytes(&b).unwrap();
assert_eq!(y.unwrap().0, z.unwrap().0);
}
#[cfg(all(feature = "raw", target_endian = "little"))]
mod tests {
use crate::*;
#[test]
fn test_raw() {
#[derive(Debug, Clone, Copy, PartialEq)]
struct TestRaw {
a: i32,
b: f64,
c: bool,
}
unsafe impl bytemuck::Pod for TestRaw {}
unsafe impl bytemuck::Zeroable for TestRaw {}
let x = TestRaw {
a: 123,
b: 45678.91011,
c: true,
};
let raw = Raw(&x).to_bytes().unwrap();
let y = Raw::from_bytes(&raw).unwrap();
assert_eq!(&x, y.0);
let y: Result<Raw<[u8; std::mem::size_of::<TestRaw>()]>, Error> = Raw::from_bytes(&raw);
assert!(y.is_ok());
}
}

176
convert/src/to_bytes.rs Normal file
View File

@@ -0,0 +1,176 @@
use crate::*;
pub use extism_convert_macros::ToBytes;
/// `ToBytes` is used to define how a type should be encoded when working with
/// Extism memory. It is used for plugin input and host function output.
///
/// `ToBytes` can be derived by delegating encoding to generic type implementing
/// `ToBytes`, e.g., [`Json`], [`Msgpack`].
///
/// ```
/// use extism_convert::{Json, ToBytes};
/// use serde::Serialize;
///
/// #[derive(ToBytes, Serialize)]
/// #[encoding(Json)]
/// struct Struct {
/// hello: String,
/// }
///
/// assert_eq!(Struct { hello: "hi".into() }.to_bytes()?, br#"{"hello":"hi"}"#);
/// # Ok::<(), extism_convert::Error>(())
/// ```
///
/// But custom types can also be used, as long as they are new-types with a single
/// generic argument, i.e., `Type<T>(T)`, that implement `ToBytes` for the struct.
///
/// ```
/// use extism_convert::{Error, ToBytes};
///
/// // Custom serialization using `ToString`
/// struct StringEnc<T>(T);
/// impl<T: ToString> ToBytes<'_> for StringEnc<&T> {
/// type Bytes = String;
///
/// fn to_bytes(&self) -> Result<String, Error> {
/// Ok(self.0.to_string())
/// }
/// }
///
/// #[derive(ToBytes)]
/// #[encoding(StringEnc)]
/// struct Struct {
/// hello: String,
/// }
///
/// impl ToString for Struct {
/// fn to_string(&self) -> String {
/// self.hello.clone()
/// }
/// }
///
/// assert_eq!(Struct { hello: "hi".into() }.to_bytes()?, b"hi");
/// # Ok::<(), Error>(())
/// ```
pub trait ToBytes<'a> {
/// A configurable byte slice representation, allows any type that implements `AsRef<[u8]>`
type Bytes: AsRef<[u8]>;
/// `to_bytes` converts a value into `Self::Bytes`
fn to_bytes(&self) -> Result<Self::Bytes, Error>;
}
impl<'a> ToBytes<'a> for () {
type Bytes = [u8; 0];
fn to_bytes(&self) -> Result<Self::Bytes, Error> {
Ok([])
}
}
impl<'a> ToBytes<'a> for Vec<u8> {
type Bytes = Vec<u8>;
fn to_bytes(&self) -> Result<Self::Bytes, Error> {
Ok(self.clone())
}
}
impl<'a> ToBytes<'a> for String {
type Bytes = String;
fn to_bytes(&self) -> Result<Self::Bytes, Error> {
Ok(self.clone())
}
}
impl<'a> ToBytes<'a> for &'a [u8] {
type Bytes = &'a [u8];
fn to_bytes(&self) -> Result<Self::Bytes, Error> {
Ok(self)
}
}
impl<'a> ToBytes<'a> for &'a str {
type Bytes = &'a str;
fn to_bytes(&self) -> Result<Self::Bytes, Error> {
Ok(self)
}
}
impl<'a> ToBytes<'a> for f64 {
type Bytes = [u8; 8];
fn to_bytes(&self) -> Result<Self::Bytes, Error> {
Ok(self.to_le_bytes())
}
}
impl<'a> ToBytes<'a> for f32 {
type Bytes = [u8; 4];
fn to_bytes(&self) -> Result<Self::Bytes, Error> {
Ok(self.to_le_bytes())
}
}
impl<'a> ToBytes<'a> for i64 {
type Bytes = [u8; 8];
fn to_bytes(&self) -> Result<Self::Bytes, Error> {
Ok(self.to_le_bytes())
}
}
impl<'a> ToBytes<'a> for i32 {
type Bytes = [u8; 4];
fn to_bytes(&self) -> Result<Self::Bytes, Error> {
Ok(self.to_le_bytes())
}
}
impl<'a> ToBytes<'a> for u64 {
type Bytes = [u8; 8];
fn to_bytes(&self) -> Result<Self::Bytes, Error> {
Ok(self.to_le_bytes())
}
}
impl<'a> ToBytes<'a> for u32 {
type Bytes = [u8; 4];
fn to_bytes(&self) -> Result<Self::Bytes, Error> {
Ok(self.to_le_bytes())
}
}
impl<'a, T: ToBytes<'a>> ToBytes<'a> for &'a T {
type Bytes = T::Bytes;
fn to_bytes(&self) -> Result<Self::Bytes, Error> {
<T as ToBytes>::to_bytes(self)
}
}
impl<'a, T: ToBytes<'a>> ToBytes<'a> for Option<T> {
type Bytes = Vec<u8>;
fn to_bytes(&self) -> Result<Self::Bytes, Error> {
match self {
Some(x) => x.to_bytes().map(|x| x.as_ref().to_vec()),
None => Ok(vec![]),
}
}
}
#[test]
fn test() {
use extism_convert::{Json, ToBytes};
use serde::Serialize;
#[derive(ToBytes, Serialize)]
#[encoding(Json)]
struct Struct {
hello: String,
}
}

View File

@@ -1,16 +0,0 @@
FLAGS=`pkg-config --cflags --libs jsoncpp gtest` -lextism -lpthread
build-example:
$(CXX) -std=c++14 -o example -I. example.cpp $(FLAGS)
.PHONY: example
example: build-example
./example
build-test:
$(CXX) -std=c++14 -o test/test -I. test/test.cpp $(FLAGS)
.PHONY: test
test: build-test
cd test && ./test

View File

@@ -1,45 +0,0 @@
#define EXTISM_NO_JSON
#include "extism.hpp"
#include <cstring>
#include <fstream>
#include <iostream>
using namespace extism;
std::vector<uint8_t> read(const char *filename) {
std::ifstream file(filename, std::ios::binary);
return std::vector<uint8_t>((std::istreambuf_iterator<char>(file)),
std::istreambuf_iterator<char>());
}
int main(int argc, char *argv[]) {
auto wasm = read("../wasm/code-functions.wasm");
Context context = Context();
std::string tmp = "Testing";
// A lambda can be used as a host function
auto hello_world = [&tmp](CurrentPlugin plugin,
const std::vector<Val> &inputs,
std::vector<Val> &outputs, void *user_data) {
std::cout << "Hello from C++" << std::endl;
std::cout << (const char *)user_data << std::endl;
std::cout << tmp << std::endl;
outputs[0].v = inputs[0].v;
};
std::vector<Function> functions = {
Function("hello_world", {ValType::I64}, {ValType::I64}, hello_world,
(void *)"Hello again!",
[](void *x) { std::cout << "Free user data" << std::endl; }),
};
Plugin plugin = context.plugin(wasm, true, functions);
const char *input = argc > 1 ? argv[1] : "this is a test";
ExtismSize length = strlen(input);
extism::Buffer output = plugin.call("count_vowels", (uint8_t *)input, length);
std::cout << (char *)output.data << std::endl;
return 0;
}

View File

@@ -1,501 +0,0 @@
#pragma once
#include <functional>
#include <map>
#include <memory>
#include <stdexcept>
#include <string>
#include <vector>
#ifndef EXTISM_NO_JSON
#if __has_include(<jsoncpp/json/json.h>)
#include <jsoncpp/json/json.h>
#else
#include <json/json.h>
#endif
#endif // EXTISM_NO_JSON
extern "C" {
#include <extism.h>
}
namespace extism {
typedef std::map<std::string, std::string> Config;
template <typename T> class ManifestKey {
bool is_set = false;
public:
T value;
ManifestKey(T x, bool is_set = false) : is_set(is_set) { value = x; }
void set(T x) {
value = x;
is_set = true;
}
bool empty() const { return is_set == false; }
};
class Wasm {
std::string _path;
std::string _url;
// TODO: add base64 encoded raw data
ManifestKey<std::string> _hash =
ManifestKey<std::string>(std::string(), false);
public:
// Create Wasm pointing to a path
static Wasm path(std::string s, std::string hash = std::string()) {
Wasm w;
w._path = s;
if (!hash.empty()) {
w._hash.set(hash);
}
return w;
}
// Create Wasm pointing to a URL
static Wasm url(std::string s, std::string hash = std::string()) {
Wasm w;
w._url = s;
if (!hash.empty()) {
w._hash.set(hash);
}
return w;
}
#ifndef EXTISM_NO_JSON
Json::Value json() const {
Json::Value doc;
if (!this->_path.empty()) {
doc["path"] = this->_path;
} else if (!this->_url.empty()) {
doc["url"] = this->_url;
}
if (!this->_hash.empty()) {
doc["hash"] = this->_hash.value;
}
return doc;
}
#endif
};
class Manifest {
public:
Config config;
std::vector<Wasm> wasm;
ManifestKey<std::vector<std::string>> allowed_hosts;
ManifestKey<std::map<std::string, std::string>> allowed_paths;
ManifestKey<uint64_t> timeout_ms;
// Empty manifest
Manifest()
: timeout_ms(0, false), allowed_hosts(std::vector<std::string>(), false),
allowed_paths(std::map<std::string, std::string>(), false) {}
// Create manifest with a single Wasm from a path
static Manifest path(std::string s, std::string hash = std::string()) {
Manifest m;
m.add_wasm_path(s, hash);
return m;
}
// Create manifest with a single Wasm from a URL
static Manifest url(std::string s, std::string hash = std::string()) {
Manifest m;
m.add_wasm_url(s, hash);
return m;
}
#ifndef EXTISM_NO_JSON
std::string json() const {
Json::Value doc;
Json::Value wasm;
for (auto w : this->wasm) {
wasm.append(w.json());
}
doc["wasm"] = wasm;
if (!this->config.empty()) {
Json::Value conf;
for (auto k : this->config) {
conf[k.first] = k.second;
}
doc["config"] = conf;
}
if (!this->allowed_hosts.empty()) {
Json::Value h;
for (auto s : this->allowed_hosts.value) {
h.append(s);
}
doc["allowed_hosts"] = h;
}
if (!this->allowed_paths.empty()) {
Json::Value h;
for (auto k : this->allowed_paths.value) {
h[k.first] = k.second;
}
doc["allowed_paths"] = h;
}
if (!this->timeout_ms.empty()) {
doc["timeout_ms"] = Json::Value(this->timeout_ms.value);
}
Json::FastWriter writer;
return writer.write(doc);
}
#endif
// Add Wasm from path
void add_wasm_path(std::string s, std::string hash = std::string()) {
Wasm w = Wasm::path(s, hash);
this->wasm.push_back(w);
}
// Add Wasm from URL
void add_wasm_url(std::string u, std::string hash = std::string()) {
Wasm w = Wasm::url(u, hash);
this->wasm.push_back(w);
}
// Add host to allowed hosts
void allow_host(std::string host) {
if (this->allowed_hosts.empty()) {
this->allowed_hosts.set(std::vector<std::string>{});
}
this->allowed_hosts.value.push_back(host);
}
// Add path to allowed paths
void allow_path(std::string src, std::string dest = std::string()) {
if (this->allowed_paths.empty()) {
this->allowed_paths.set(std::map<std::string, std::string>{});
}
if (dest.empty()) {
dest = src;
}
this->allowed_paths.value[src] = dest;
}
// Set timeout
void set_timeout_ms(uint64_t ms) { this->timeout_ms = ms; }
// Set config key/value
void set_config(std::string k, std::string v) { this->config[k] = v; }
};
class Error : public std::runtime_error {
public:
Error(std::string msg) : std::runtime_error(msg) {}
};
class Buffer {
public:
Buffer(const uint8_t *ptr, ExtismSize len) : data(ptr), length(len) {}
const uint8_t *data;
ExtismSize length;
std::string string() { return (std::string)(*this); }
std::vector<uint8_t> vector() { return (std::vector<uint8_t>)(*this); }
operator std::string() { return std::string((const char *)data, length); }
operator std::vector<uint8_t>() {
return std::vector<uint8_t>(data, data + length);
}
};
typedef ExtismValType ValType;
typedef ExtismValUnion ValUnion;
typedef ExtismVal Val;
class CurrentPlugin {
ExtismCurrentPlugin *pointer;
public:
CurrentPlugin(ExtismCurrentPlugin *p) : pointer(p) {}
uint8_t *memory() { return extism_current_plugin_memory(this->pointer); }
ExtismSize memory_length(uint64_t offs) {
return extism_current_plugin_memory_length(this->pointer, offs);
}
uint64_t alloc(ExtismSize size) {
return extism_current_plugin_memory_alloc(this->pointer, size);
}
void free(uint64_t offs) {
extism_current_plugin_memory_free(this->pointer, offs);
}
};
typedef std::function<void(CurrentPlugin, const std::vector<Val> &,
std::vector<Val> &, void *user_data)>
FunctionType;
struct UserData {
FunctionType func;
void *user_data = NULL;
std::function<void(void *)> free_user_data;
};
static void function_callback(ExtismCurrentPlugin *plugin,
const ExtismVal *inputs, ExtismSize n_inputs,
ExtismVal *outputs, ExtismSize n_outputs,
void *user_data) {
UserData *data = (UserData *)user_data;
const std::vector<Val> inp(inputs, inputs + n_inputs);
std::vector<Val> outp(outputs, outputs + n_outputs);
data->func(CurrentPlugin(plugin), inp, outp, data->user_data);
for (ExtismSize i = 0; i < n_outputs; i++) {
outputs[i] = outp[i];
}
}
static void free_user_data(void *user_data) {
UserData *data = (UserData *)user_data;
if (data->user_data != NULL && data->free_user_data != NULL) {
data->free_user_data(data->user_data);
}
}
class Function {
std::shared_ptr<ExtismFunction> func;
std::string name;
UserData user_data;
public:
Function(std::string name, const std::vector<ValType> inputs,
const std::vector<ValType> outputs, FunctionType f,
void *user_data = NULL, std::function<void(void *)> free = nullptr)
: name(name) {
this->user_data.func = f;
this->user_data.user_data = user_data;
this->user_data.free_user_data = free;
auto ptr = extism_function_new(
this->name.c_str(), inputs.data(), inputs.size(), outputs.data(),
outputs.size(), function_callback, &this->user_data, free_user_data);
this->func = std::shared_ptr<ExtismFunction>(ptr, extism_function_free);
}
Function(const Function &f) { this->func = f.func; }
ExtismFunction *get() { return this->func.get(); }
};
class Plugin {
std::shared_ptr<ExtismContext> context;
ExtismPlugin plugin;
std::vector<Function> functions;
public:
// Create a new plugin
Plugin(std::shared_ptr<ExtismContext> ctx, const uint8_t *wasm,
ExtismSize length, bool with_wasi = false,
std::vector<Function> functions = std::vector<Function>())
: functions(functions) {
std::vector<const ExtismFunction *> ptrs;
for (auto i : this->functions) {
ptrs.push_back(i.get());
}
this->plugin = extism_plugin_new(ctx.get(), wasm, length, ptrs.data(),
ptrs.size(), with_wasi);
if (this->plugin < 0) {
const char *err = extism_error(ctx.get(), -1);
throw Error(err == nullptr ? "Unable to load plugin" : err);
}
this->context = ctx;
}
#ifndef EXTISM_NO_JSON
// Create a new plugin from Manifest
Plugin(std::shared_ptr<ExtismContext> ctx, const Manifest &manifest,
bool with_wasi = false, std::vector<Function> functions = {}) {
std::vector<const ExtismFunction *> ptrs;
for (auto i : this->functions) {
ptrs.push_back(i.get());
}
auto buffer = manifest.json();
this->plugin =
extism_plugin_new(ctx.get(), (const uint8_t *)buffer.c_str(),
buffer.size(), ptrs.data(), ptrs.size(), with_wasi);
if (this->plugin < 0) {
const char *err = extism_error(ctx.get(), -1);
throw Error(err == nullptr ? "Unable to load plugin from manifest" : err);
}
this->context = ctx;
}
#endif
~Plugin() {
extism_plugin_free(this->context.get(), this->plugin);
this->plugin = -1;
}
ExtismPlugin id() const { return this->plugin; }
ExtismContext *get_context() const { return this->context.get(); }
void update(const uint8_t *wasm, size_t length, bool with_wasi = false,
std::vector<Function> functions = {}) {
this->functions = functions;
std::vector<const ExtismFunction *> ptrs;
for (auto i : this->functions) {
ptrs.push_back(i.get());
}
bool b = extism_plugin_update(this->context.get(), this->plugin, wasm,
length, ptrs.data(), ptrs.size(), with_wasi);
if (!b) {
const char *err = extism_error(this->context.get(), -1);
throw Error(err == nullptr ? "Unable to update plugin" : err);
}
}
#ifndef EXTISM_NO_JSON
void update(const Manifest &manifest, bool with_wasi = false,
std::vector<Function> functions = {}) {
this->functions = functions;
std::vector<const ExtismFunction *> ptrs;
for (auto i : this->functions) {
ptrs.push_back(i.get());
}
auto buffer = manifest.json();
bool b = extism_plugin_update(
this->context.get(), this->plugin, (const uint8_t *)buffer.c_str(),
buffer.size(), ptrs.data(), ptrs.size(), with_wasi);
if (!b) {
const char *err = extism_error(this->context.get(), -1);
throw Error(err == nullptr ? "Unable to update plugin" : err);
}
}
void config(const Config &data) {
Json::Value conf;
for (auto k : data) {
conf[k.first] = k.second;
}
Json::FastWriter writer;
auto s = writer.write(conf);
this->config(s);
}
#endif
void config(const char *json, size_t length) {
bool b = extism_plugin_config(this->context.get(), this->plugin,
(const uint8_t *)json, length);
if (!b) {
const char *err = extism_error(this->context.get(), this->plugin);
throw Error(err == nullptr ? "Unable to update plugin config" : err);
}
}
void config(const std::string &json) {
this->config(json.c_str(), json.size());
}
// Call a plugin
Buffer call(const std::string &func, const uint8_t *input,
ExtismSize input_length) const {
int32_t rc = extism_plugin_call(this->context.get(), this->plugin,
func.c_str(), input, input_length);
if (rc != 0) {
const char *error = extism_error(this->context.get(), this->plugin);
if (error == nullptr) {
throw Error("extism_call failed");
}
throw Error(error);
}
ExtismSize length =
extism_plugin_output_length(this->context.get(), this->plugin);
const uint8_t *ptr =
extism_plugin_output_data(this->context.get(), this->plugin);
return Buffer(ptr, length);
}
// Call a plugin function with std::vector<uint8_t> input
Buffer call(const std::string &func,
const std::vector<uint8_t> &input) const {
return this->call(func, input.data(), input.size());
}
// Call a plugin function with string input
Buffer call(const std::string &func,
const std::string &input = std::string()) const {
return this->call(func, (const uint8_t *)input.c_str(), input.size());
}
// Returns true if the specified function exists
bool function_exists(const std::string &func) const {
return extism_plugin_function_exists(this->context.get(), this->plugin,
func.c_str());
}
};
class Context {
public:
std::shared_ptr<ExtismContext> pointer;
// Create a new context;
Context() {
this->pointer = std::shared_ptr<ExtismContext>(extism_context_new(),
extism_context_free);
}
// Create plugin from uint8_t*
Plugin plugin(const uint8_t *wasm, size_t length, bool with_wasi = false,
std::vector<Function> functions = {}) const {
return Plugin(this->pointer, wasm, length, with_wasi, functions);
}
// Create plugin from std::string
Plugin plugin(const std::string &str, bool with_wasi = false,
std::vector<Function> functions = {}) const {
return Plugin(this->pointer, (const uint8_t *)str.c_str(), str.size(),
with_wasi, functions);
}
// Create plugin from uint8_t vector
Plugin plugin(const std::vector<uint8_t> &data, bool with_wasi = false,
std::vector<Function> functions = {}) const {
return Plugin(this->pointer, data.data(), data.size(), with_wasi,
functions);
}
#ifndef EXTISM_NO_JSON
// Create plugin from Manifest
Plugin plugin(const Manifest &manifest, bool with_wasi = false,
std::vector<Function> functions = {}) const {
return Plugin(this->pointer, manifest, with_wasi, functions);
}
#endif
// Remove all plugins
void reset() { extism_context_reset(this->pointer.get()); }
};
// Set global log file for plugins
inline bool set_log_file(const char *filename, const char *level) {
return extism_log_file(filename, level);
}
// Get libextism version
inline std::string version() { return std::string(extism_version()); }
} // namespace extism

View File

@@ -1,96 +0,0 @@
#include "../extism.hpp"
#include <fstream>
#include <gtest/gtest.h>
std::vector<uint8_t> read(const char *filename) {
std::ifstream file(filename, std::ios::binary);
return std::vector<uint8_t>((std::istreambuf_iterator<char>(file)),
std::istreambuf_iterator<char>());
}
const std::string code = "../../wasm/code.wasm";
namespace {
using namespace extism;
TEST(Context, Basic) {
Context context;
ASSERT_NE(context.pointer, nullptr);
}
TEST(Plugin, Manifest) {
Context context;
Manifest manifest = Manifest::path(code);
manifest.set_config("a", "1");
ASSERT_NO_THROW(Plugin plugin = context.plugin(manifest));
Plugin plugin = context.plugin(manifest);
Buffer buf = plugin.call("count_vowels", "this is a test");
ASSERT_EQ((std::string)buf, "{\"count\": 4}");
}
TEST(Plugin, BadManifest) {
Context context;
Manifest manifest;
ASSERT_THROW(Plugin plugin = context.plugin(manifest), Error);
}
TEST(Plugin, Bytes) {
Context context;
auto wasm = read(code.c_str());
ASSERT_NO_THROW(Plugin plugin = context.plugin(wasm));
Plugin plugin = context.plugin(wasm);
Buffer buf = plugin.call("count_vowels", "this is another test");
ASSERT_EQ(buf.string(), "{\"count\": 6}");
}
TEST(Plugin, UpdateConfig) {
Context context;
auto wasm = read(code.c_str());
Plugin plugin = context.plugin(wasm);
Config config;
config["abc"] = "123";
ASSERT_NO_THROW(plugin.config(config));
}
TEST(Plugin, FunctionExists) {
Context context;
auto wasm = read(code.c_str());
Plugin plugin = context.plugin(wasm);
ASSERT_FALSE(plugin.function_exists("bad_function"));
ASSERT_TRUE(plugin.function_exists("count_vowels"));
}
TEST(Plugin, HostFunction) {
Context context;
auto wasm = read("../../wasm/code-functions.wasm");
auto t = std::vector<ValType>{ValType::I64};
Function hello_world =
Function("hello_world", t, t,
[](CurrentPlugin plugin, const std::vector<Val> &params,
std::vector<Val> &results, void *user_data) {
auto offs = plugin.alloc(4);
memcpy(plugin.memory() + offs, "test", 4);
results[0].v.i64 = (int64_t)offs;
});
auto functions = std::vector<Function>{
hello_world,
};
Plugin plugin = context.plugin(wasm, true, functions);
auto buf = plugin.call("count_vowels", "aaa");
ASSERT_EQ(buf.length, 4);
ASSERT_EQ((std::string)buf, "test");
}
}; // namespace
int main(int argc, char **argv) {
testing::InitGoogleTest(&argc, argv);
return RUN_ALL_TESTS();
}

View File

@@ -1,37 +0,0 @@
Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio Version 17
VisualStudioVersion = 17.4.33110.190
MinimumVisualStudioVersion = 10.0.40219.1
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Extism.Sdk", "src\Extism.Sdk\Extism.Sdk.csproj", "{1FAA7B6E-249C-4E4C-AE7A-A493A9D24475}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Extism.Sdk.Tests", "test\Extism.Sdk\Extism.Sdk.Tests.csproj", "{DB440D61-C781-4C59-9223-9A79CC9FB4E7}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Extism.Sdk.Sample", "samples\Extism.Sdk.Sample\Extism.Sdk.Sample.csproj", "{2232E572-E8BA-46A1-AF31-E4168960DB75}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Release|Any CPU = Release|Any CPU
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{1FAA7B6E-249C-4E4C-AE7A-A493A9D24475}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{1FAA7B6E-249C-4E4C-AE7A-A493A9D24475}.Debug|Any CPU.Build.0 = Debug|Any CPU
{1FAA7B6E-249C-4E4C-AE7A-A493A9D24475}.Release|Any CPU.ActiveCfg = Release|Any CPU
{1FAA7B6E-249C-4E4C-AE7A-A493A9D24475}.Release|Any CPU.Build.0 = Release|Any CPU
{DB440D61-C781-4C59-9223-9A79CC9FB4E7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{DB440D61-C781-4C59-9223-9A79CC9FB4E7}.Debug|Any CPU.Build.0 = Debug|Any CPU
{DB440D61-C781-4C59-9223-9A79CC9FB4E7}.Release|Any CPU.ActiveCfg = Release|Any CPU
{DB440D61-C781-4C59-9223-9A79CC9FB4E7}.Release|Any CPU.Build.0 = Release|Any CPU
{2232E572-E8BA-46A1-AF31-E4168960DB75}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{2232E572-E8BA-46A1-AF31-E4168960DB75}.Debug|Any CPU.Build.0 = Debug|Any CPU
{2232E572-E8BA-46A1-AF31-E4168960DB75}.Release|Any CPU.ActiveCfg = Release|Any CPU
{2232E572-E8BA-46A1-AF31-E4168960DB75}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {2B6BF267-F2A5-4CB5-8DFD-F11CC8787E6B}
EndGlobalSection
EndGlobal

View File

@@ -1,24 +0,0 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFrameworks>netstandard2.0;netstandard2.1</TargetFrameworks>
<NoBuild>true</NoBuild>
<IncludeBuildOutput>false</IncludeBuildOutput>
</PropertyGroup>
<PropertyGroup>
<PackageId>Extism.runtime.win-x64</PackageId>
<Version>0.3.0</Version>
<Authors>Extism Contributors</Authors>
<Description>Internal implementation package for Extism to work on Windows x64</Description>
<Tags>extism, wasm, plugin</Tags>
<PackageLicenseExpression>BSD-3-Clause</PackageLicenseExpression>
</PropertyGroup>
<ItemGroup>
<Content Include="runtimes/win-x64.dll"
CopyToOutputDirectory="Always"
Pack="true"
PackagePath="runtimes\win-x64\native\extism.dll" />
</ItemGroup>
</Project>

View File

@@ -1 +0,0 @@
win-x64.dll

View File

@@ -1,21 +0,0 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>net7.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
</PropertyGroup>
<ItemGroup>
<None Include="..\..\..\wasm\code.wasm" Link="code.wasm">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\..\src\Extism.Sdk\Extism.Sdk.csproj" />
</ItemGroup>
</Project>

View File

@@ -1,11 +0,0 @@
using Extism.Sdk.Native;
using System.Text;
var context = new Context();
var wasm = await File.ReadAllBytesAsync("./code.wasm");
using var plugin = context.CreatePlugin(wasm, withWasi: true);
var output = Encoding.UTF8.GetString(
plugin.CallFunction("count_vowels", Encoding.UTF8.GetBytes("Hello World!"))
);
Console.WriteLine(output); // prints {"count": 3}

View File

@@ -1,5 +0,0 @@
## Example 1
This example shows how you can use the library in the most basic way.
It loads up the sample wasm plugin and lets you to pass inputs to it and show the ouput.
**Please note that on Windows you have to manually copy the `extism.dll` file to the ouput directory.**

View File

@@ -1,24 +0,0 @@
<!-- Recommended practices for publishing nuget packages from: https://devblogs.microsoft.com/dotnet/producing-packages-with-source-link/ -->
<Project>
<PropertyGroup>
<!-- Publish the repository URL in the built .nupkg (in the NuSpec <Repository> element) -->
<PublishRepositoryUrl>true</PublishRepositoryUrl>
<!-- Embed source files that are not tracked by the source control manager in the PDB -->
<EmbedUntrackedSources>true</EmbedUntrackedSources>
<!-- Recommended: Embed symbols containing Source Link in the main file (exe/dll) -->
<DebugType>embedded</DebugType>
<GenerateDocumentationFile>true</GenerateDocumentationFile>
</PropertyGroup>
<PropertyGroup Condition="'$(GITHUB_ACTIONS)' == 'true'">
<ContinuousIntegrationBuild>true</ContinuousIntegrationBuild>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Microsoft.SourceLink.GitHub" Version="1.0.0" PrivateAssets="All" />
</ItemGroup>
</Project>

View File

@@ -1,184 +0,0 @@
using System.Diagnostics.CodeAnalysis;
using System.Runtime.InteropServices;
namespace Extism.Sdk.Native;
/// <summary>
/// Represents an Extism context through which you can load <see cref="Plugin"/>s.
/// </summary>
public class Context : IDisposable
{
private const int DisposedMarker = 1;
private int _disposed;
/// <summary>
/// Initialize a new Extism Context.
/// </summary>
public Context()
{
NativeHandle = LibExtism.extism_context_new();
}
/// <summary>
/// Native pointer to the Extism Context.
/// </summary>
internal IntPtr NativeHandle { get; }
/// <summary>
/// Loads an Extism <see cref="Plugin"/>.
/// </summary>
/// <param name="wasm">A WASM module (wat or wasm) or a JSON encoded manifest.</param>
/// <param name="withWasi">Enable/Disable WASI.</param>
public Plugin CreatePlugin(ReadOnlySpan<byte> wasm, bool withWasi)
{
CheckNotDisposed();
unsafe
{
fixed (byte* wasmPtr = wasm)
{
var plugin = LibExtism.extism_plugin_new(NativeHandle, wasmPtr, wasm.Length, null, 0, withWasi);
return new Plugin(this, plugin);
}
}
}
/// <summary>
/// Remove all plugins from this <see cref="Context"/>'s registry.
/// </summary>
public void Reset()
{
CheckNotDisposed();
LibExtism.extism_context_reset(NativeHandle);
}
/// <summary>
/// Get this this <see cref="Context"/>'s last error.
/// </summary>
/// <returns></returns>
internal string? GetError()
{
CheckNotDisposed();
var result = LibExtism.extism_error(NativeHandle, -1);
return Marshal.PtrToStringUTF8(result);
}
/// <summary>
/// Frees all resources held by this Context.
/// </summary>
public void Dispose()
{
if (Interlocked.Exchange(ref _disposed, DisposedMarker) == DisposedMarker)
{
// Already disposed.
return;
}
Dispose(true);
GC.SuppressFinalize(this);
}
/// <summary>
/// Throw an appropriate exception if the plugin has been disposed.
/// </summary>
/// <exception cref="ObjectDisposedException"></exception>
protected void CheckNotDisposed()
{
Interlocked.MemoryBarrier();
if (_disposed == DisposedMarker)
{
ThrowDisposedException();
}
}
[DoesNotReturn]
private static void ThrowDisposedException()
{
throw new ObjectDisposedException(nameof(Context));
}
/// <summary>
/// Frees all resources held by this Context.
/// </summary>
protected virtual void Dispose(bool disposing)
{
if (disposing)
{
// Free up any managed resources here
}
// Free up unmanaged resources
LibExtism.extism_context_free(NativeHandle);
}
/// <summary>
/// Destructs the current Context and frees all resources used by it.
/// </summary>
~Context()
{
Dispose(false);
}
/// <summary>
/// Get the Extism version string.
/// </summary>
public static string GetExtismVersion()
{
var pointer = LibExtism.extism_version();
return Marshal.PtrToStringUTF8(pointer);
}
/// <summary>
/// Set Extism's log file and level. This is applied for all <see cref="Context"/>s.
/// </summary>
/// <param name="logPath">Log file; can be 'stdout' or 'stderr' to write logs to the console.</param>
/// <param name="level">The log level to write at.</param>
public static bool SetExtismLogFile(string logPath, LogLevel level)
{
var logLevel = level switch
{
LogLevel.Error => LibExtism.LogLevels.Error,
LogLevel.Warning => LibExtism.LogLevels.Warn,
LogLevel.Info => LibExtism.LogLevels.Info,
LogLevel.Debug => LibExtism.LogLevels.Debug,
LogLevel.Trace => LibExtism.LogLevels.Trace,
_ => throw new NotImplementedException(),
};
return LibExtism.extism_log_file(logPath, logLevel);
}
}
/// <summary>
/// Extism Log Levels
/// </summary>
public enum LogLevel
{
/// <summary>
/// Designates very serious errors.
/// </summary>
Error,
/// <summary>
/// Designates hazardous situations.
/// </summary>
Warning,
/// <summary>
/// Designates useful information.
/// </summary>
Info,
/// <summary>
/// Designates lower priority information.
/// </summary>
Debug,
/// <summary>
/// Designates very low priority, often extremely verbose, information.
/// </summary>
Trace
}

View File

@@ -1,40 +0,0 @@
namespace Extism.Sdk.Native;
using System;
/// <summary>
/// Represents errors that occur during calling Extism functions.
/// </summary>
public class ExtismException : Exception
{
/// <summary>
/// Initializes a new instance of the <see cref="ExtismException"/> class.
/// </summary>
public ExtismException()
{
}
/// <summary>
/// Initializes a new instance of the <see cref="ExtismException"/> class with a specified error message.
/// </summary>
/// <param name="message">The message that describes the error .</param>
public ExtismException(string message)
: base(message)
{
}
/// <summary>
/// Initializes a new instance of the <see cref="ExtismException"/> class
/// with a specified error message and a reference to the inner exception
/// that is the cause of this exception.
/// </summary>
/// <param name="message">The message that describes the error .</param>
/// <param name="innerException">
/// The exception that is the cause of the current exception, or a null reference
/// (Nothing in Visual Basic) if no inner exception is specified.
/// </param>
public ExtismException(string message, Exception innerException)
: base(message, innerException)
{
}
}

View File

@@ -1,28 +0,0 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>netstandard2.1</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
<AllowUnsafeBlocks>True</AllowUnsafeBlocks>
<LangVersion>10</LangVersion>
</PropertyGroup>
<PropertyGroup>
<PackageId>Extism.Sdk</PackageId>
<Version>0.2.0</Version>
<Authors>Extism Contributors</Authors>
<Description>Extism SDK that allows hosting Extism plugins in .NET apps.</Description>
<Tags>extism, wasm, plugin</Tags>
<PackageLicenseExpression>BSD-3-Clause</PackageLicenseExpression>
<PackageReadmeFile>README.md</PackageReadmeFile>
</PropertyGroup>
<ItemGroup>
<None Include="README.md" Pack="true" PackagePath="\"/>
</ItemGroup>
<ItemGroup>
<PackageReference Include="System.Runtime.CompilerServices.Unsafe" Version="6.0.0" />
</ItemGroup>
</Project>

View File

@@ -1,174 +0,0 @@
using System.Runtime.InteropServices;
namespace Extism.Sdk.Native;
/// <summary>
/// Functions exposed by the native Extism library.
/// </summary>
internal static class LibExtism
{
/// <summary>
/// Create a new context.
/// </summary>
/// <returns>A pointer to the newly created context.</returns>
[DllImport("extism")]
public static extern IntPtr extism_context_new();
/// <summary>
/// Remove a context from the registry and free associated memory.
/// </summary>
/// <param name="context"></param>
[DllImport("extism")]
public static extern void extism_context_free(IntPtr context);
/// <summary>
/// Load a WASM plugin.
/// </summary>
/// <param name="context">Pointer to the context the plugin will be associated with.</param>
/// <param name="wasm">A WASM module (wat or wasm) or a JSON encoded manifest.</param>
/// <param name="wasmSize">The length of the `wasm` parameter.</param>
/// <param name="functions">Array of host function pointers.</param>
/// <param name="nFunctions">Number of host functions.</param>
/// <param name="withWasi">Enables/disables WASI.</param>
/// <returns></returns>
[DllImport("extism")]
unsafe public static extern IntPtr extism_plugin_new(IntPtr context, byte* wasm, int wasmSize, IntPtr *functions, int nFunctions, bool withWasi);
/// <summary>
/// Update a plugin, keeping the existing ID.
/// Similar to <see cref="extism_plugin_new"/> but takes an `plugin` argument to specify which plugin to update.
/// Memory for this plugin will be reset upon update.
/// </summary>
/// <param name="context">Pointer to the context the plugin is associated with.</param>
/// <param name="plugin">Pointer to the plugin you want to update.</param>
/// <param name="wasm">A WASM module (wat or wasm) or a JSON encoded manifest.</param>
/// <param name="wasmLength">The length of the `wasm` parameter.</param>
/// <param name="functions">Array of host function pointers.</param>
/// <param name="nFunctions">Number of host functions.</param>
/// <param name="withWasi">Enables/disables WASI.</param>
/// <returns></returns>
[DllImport("extism")]
unsafe public static extern bool extism_plugin_update(IntPtr context, IntPtr plugin, byte* wasm, int wasmLength, IntPtr *functions, int nFunctions, bool withWasi);
/// <summary>
/// Remove a plugin from the registry and free associated memory.
/// </summary>
/// <param name="context">Pointer to the context the plugin is associated with.</param>
/// <param name="plugin">Pointer to the plugin you want to free.</param>
[DllImport("extism")]
public static extern void extism_plugin_free(IntPtr context, IntPtr plugin);
/// <summary>
/// Remove all plugins from the registry.
/// </summary>
/// <param name="context"></param>
[DllImport("extism")]
public static extern void extism_context_reset(IntPtr context);
/// <summary>
/// Update plugin config values, this will merge with the existing values.
/// </summary>
/// <param name="context">Pointer to the context the plugin is associated with.</param>
/// <param name="plugin">Pointer to the plugin you want to update the configurations for.</param>
/// <param name="json">The configuration JSON encoded in UTF8.</param>
/// <param name="jsonLength">The length of the `json` parameter.</param>
/// <returns></returns>
[DllImport("extism")]
unsafe public static extern bool extism_plugin_config(IntPtr context, IntPtr plugin, byte* json, int jsonLength);
/// <summary>
/// Returns true if funcName exists.
/// </summary>
/// <param name="context"></param>
/// <param name="plugin"></param>
/// <param name="funcName"></param>
/// <returns></returns>
[DllImport("extism")]
public static extern bool extism_plugin_function_exists(IntPtr context, IntPtr plugin, string funcName);
/// <summary>
/// Call a function.
/// </summary>
/// <param name="context"></param>
/// <param name="plugin"></param>
/// <param name="funcName">The function to call.</param>
/// <param name="data">Input data.</param>
/// <param name="dataLen">The length of the `data` parameter.</param>
/// <returns></returns>
[DllImport("extism")]
unsafe public static extern int extism_plugin_call(IntPtr context, IntPtr plugin, string funcName, byte* data, int dataLen);
/// <summary>
/// Get the error associated with a Context or Plugin, if plugin is -1 then the context error will be returned.
/// </summary>
/// <param name="context"></param>
/// <param name="plugin">A plugin pointer, or -1 for the context error.</param>
/// <returns></returns>
[DllImport("extism")]
public static extern IntPtr extism_error(IntPtr context, nint plugin);
/// <summary>
/// Get the length of a plugin's output data.
/// </summary>
/// <param name="context"></param>
/// <param name="plugin"></param>
/// <returns></returns>
[DllImport("extism")]
public static extern long extism_plugin_output_length(IntPtr context, IntPtr plugin);
/// <summary>
/// Get the plugin's output data.
/// </summary>
/// <param name="context"></param>
/// <param name="plugin"></param>
/// <returns></returns>
[DllImport("extism")]
public static extern IntPtr extism_plugin_output_data(IntPtr context, IntPtr plugin);
/// <summary>
/// Set log file and level.
/// </summary>
/// <param name="filename"></param>
/// <param name="logLevel"></param>
/// <returns></returns>
[DllImport("extism")]
public static extern bool extism_log_file(string filename, string logLevel);
/// <summary>
/// Get the Extism version string.
/// </summary>
/// <returns></returns>
[DllImport("extism", EntryPoint = "extism_version")]
public static extern IntPtr extism_version();
/// <summary>
/// Extism Log Levels
/// </summary>
public static class LogLevels
{
/// <summary>
/// Designates very serious errors.
/// </summary>
public const string Error = "Error";
/// <summary>
/// Designates hazardous situations.
/// </summary>
public const string Warn = "Warn";
/// <summary>
/// Designates useful information.
/// </summary>
public const string Info = "Info";
/// <summary>
/// Designates lower priority information.
/// </summary>
public const string Debug = "Debug";
/// <summary>
/// Designates very low priority, often extremely verbose, information.
/// </summary>
public const string Trace = "Trace";
}
}

View File

@@ -1,189 +0,0 @@
using System.Diagnostics.CodeAnalysis;
using System.Runtime.InteropServices;
namespace Extism.Sdk.Native;
/// <summary>
/// Represents a WASM Extism plugin.
/// </summary>
public class Plugin : IDisposable
{
private const int DisposedMarker = 1;
private readonly Context _context;
private int _disposed;
internal Plugin(Context context, IntPtr handle)
{
_context = context;
NativeHandle = handle;
}
/// <summary>
/// A pointer to the native Plugin struct.
/// </summary>
internal IntPtr NativeHandle { get; }
/// <summary>
/// Update a plugin, keeping the existing ID.
/// </summary>
/// <param name="wasm">The plugin WASM bytes.</param>
/// <param name="withWasi">Enable/Disable WASI.</param>
unsafe public bool Update(ReadOnlySpan<byte> wasm, bool withWasi)
{
CheckNotDisposed();
fixed (byte* wasmPtr = wasm)
{
return LibExtism.extism_plugin_update(_context.NativeHandle, NativeHandle, wasmPtr, wasm.Length, null, 0, withWasi);
}
}
/// <summary>
/// Update plugin config values, this will merge with the existing values.
/// </summary>
/// <param name="json">The configuration JSON encoded in UTF8.</param>
unsafe public bool SetConfig(ReadOnlySpan<byte> json)
{
CheckNotDisposed();
fixed (byte* jsonPtr = json)
{
return LibExtism.extism_plugin_config(_context.NativeHandle, NativeHandle, jsonPtr, json.Length);
}
}
/// <summary>
/// Checks if a specific function exists in the current plugin.
/// </summary>
public bool FunctionExists(string name)
{
CheckNotDisposed();
return LibExtism.extism_plugin_function_exists(_context.NativeHandle, NativeHandle, name);
}
/// <summary>
/// Calls a function in the current plugin and returns a status.
/// If the status represents an error, call <see cref="GetError"/> to get the error.
/// Othewise, call <see cref="OutputData"/> to get the function's output data.
/// </summary>
/// <param name="functionName">Name of the function in the plugin to invoke.</param>
/// <param name="data">A buffer to provide as input to the function.</param>
/// <returns>The exit code of the function.</returns>
/// <exception cref="ExtismException"></exception>
unsafe public ReadOnlySpan<byte> CallFunction(string functionName, ReadOnlySpan<byte> data)
{
CheckNotDisposed();
fixed (byte* dataPtr = data)
{
int response = LibExtism.extism_plugin_call(_context.NativeHandle, NativeHandle, functionName, dataPtr, data.Length);
if (response == 0) {
return OutputData();
} else {
var errorMsg = GetError();
if (errorMsg != null) {
throw new ExtismException(errorMsg);
} else {
throw new ExtismException("Call to Extism failed");
}
}
}
}
/// <summary>
/// Get the length of a plugin's output data.
/// </summary>
/// <returns></returns>
internal int OutputLength()
{
CheckNotDisposed();
return (int)LibExtism.extism_plugin_output_length(_context.NativeHandle, NativeHandle);
}
/// <summary>
/// Get the plugin's output data.
/// </summary>
internal ReadOnlySpan<byte> OutputData()
{
CheckNotDisposed();
var length = OutputLength();
unsafe
{
var ptr = LibExtism.extism_plugin_output_data(_context.NativeHandle, NativeHandle).ToPointer();
return new Span<byte>(ptr, length);
}
}
/// <summary>
/// Get the error associated with the current plugin.
/// </summary>
/// <returns></returns>
internal string? GetError()
{
CheckNotDisposed();
var result = LibExtism.extism_error(_context.NativeHandle, NativeHandle);
return Marshal.PtrToStringUTF8(result);
}
/// <summary>
/// Frees all resources held by this Plugin.
/// </summary>
public void Dispose()
{
if (Interlocked.Exchange(ref _disposed, DisposedMarker) == DisposedMarker)
{
// Already disposed.
return;
}
Dispose(true);
GC.SuppressFinalize(this);
}
/// <summary>
/// Throw an appropriate exception if the plugin has been disposed.
/// </summary>
/// <exception cref="ObjectDisposedException"></exception>
protected void CheckNotDisposed()
{
Interlocked.MemoryBarrier();
if (_disposed == DisposedMarker)
{
ThrowDisposedException();
}
}
[DoesNotReturn]
private static void ThrowDisposedException()
{
throw new ObjectDisposedException(nameof(Plugin));
}
/// <summary>
/// Frees all resources held by this Plugin.
/// </summary>
protected virtual void Dispose(bool disposing)
{
if (disposing)
{
// Free up any managed resources here
}
// Free up unmanaged resources
LibExtism.extism_plugin_free(_context.NativeHandle, NativeHandle);
}
/// <summary>
/// Destructs the current Plugin and frees all resources used by it.
/// </summary>
~Plugin()
{
Dispose(false);
}
}

View File

@@ -1,2 +0,0 @@
## Extism.Sdk
Extism SDK that allows hosting Extism plugins in .NET apps.

View File

@@ -1,24 +0,0 @@
using Extism.Sdk.Native;
using System.Reflection;
using System.Text;
using Xunit;
namespace Extism.Sdk.Tests;
public class BasicTests
{
[Fact]
public void CountHelloWorldVowels()
{
using var context = new Context();
var binDirectory = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location)!;
var wasm = File.ReadAllBytes(Path.Combine(binDirectory, "code.wasm"));
using var plugin = context.CreatePlugin(wasm, withWasi: true);
var response = plugin.CallFunction("count_vowels", Encoding.UTF8.GetBytes("Hello World"));
Assert.Equal("{\"count\": 3}", Encoding.UTF8.GetString(response));
}
}

View File

@@ -1,35 +0,0 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net7.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
<IsPackable>false</IsPackable>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.3.2" />
<PackageReference Include="xunit" Version="2.4.2" />
<PackageReference Include="xunit.runner.visualstudio" Version="2.4.5">
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
<PrivateAssets>all</PrivateAssets>
</PackageReference>
<PackageReference Include="coverlet.collector" Version="3.1.2">
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
<PrivateAssets>all</PrivateAssets>
</PackageReference>
</ItemGroup>
<ItemGroup>
<None Include="..\..\..\wasm\code.wasm" Link="code.wasm">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\..\src\Extism.Sdk\Extism.Sdk.csproj" />
</ItemGroup>
</Project>

1
dune
View File

@@ -1 +0,0 @@
(dirs ocaml)

View File

@@ -1,47 +0,0 @@
(lang dune 3.2)
(name extism)
(generate_opam_files true)
(source
(github extism/extism))
(authors "Extism Authors <oss@extism.org>")
(maintainers "Extism Authors <oss@extism.org>")
(license BSD-3-Clause)
(documentation https://github.com/extism/extism)
(package
(name extism)
(synopsis "Extism bindings")
(description "Bindings to Extism, the universal plugin system")
(depends
(ocaml (>= 4.14.1))
(dune (>= 3.2))
(ctypes-foreign (>= 0.18.0))
(bigstringaf (>= 0.9.0))
(ppx_yojson_conv (>= 0.15.0))
extism-manifest
(ppx_inline_test (>= 0.15.0))
(cmdliner (>= 1.1.1))
)
(tags
(topics wasm plugin)))
(package
(name extism-manifest)
(synopsis "Extism manifest bindings")
(description "Bindings to the Extism manifest format")
(depends
(ocaml (>= 4.14.1))
(dune (>= 3.2))
(ppx_yojson_conv (>= 0.15.0))
(ppx_inline_test (>= 0.15.0))
(base64 (>= 3.5.0))
)
(tags
(topics wasm plugin)))

View File

@@ -1,4 +0,0 @@
# Used by "mix format"
[
inputs: ["{mix,.formatter}.exs", "{config,lib,test}/**/*.{ex,exs}"]
]

28
elixir/.gitignore vendored
View File

@@ -1,28 +0,0 @@
# The directory Mix will write compiled artifacts to.
/_build/
# If you run "mix test --cover", coverage assets end up here.
/cover/
# The directory Mix downloads your dependencies sources to.
/deps/
# Where third-party dependencies like ExDoc output generated docs.
/doc/
# Ignore .fetch files in case you like to edit your project deps locally.
/.fetch
# If the VM crashes, it generates a dump, let's ignore it too.
erl_crash.dump
# Also ignore archive artifacts (built via "mix archive.build").
*.ez
# Ignore package tarball (built via "mix hex.build").
extism-*.tar
# Temporary files, for example, from tests.
/tmp/
/priv/

View File

@@ -1,27 +0,0 @@
.PHONY: test
prepare:
mix deps.get
mix compile
test: prepare
mix test
clean:
mix clean
publish: clean prepare
mix hex.build
mix hex.publish --yes
format:
mix format
lint:
mix format --check-formatted
docs:
mix docs
show-docs: docs
open doc/index.html

View File

@@ -1,73 +0,0 @@
# Extism
Extism Host SDK for Elixir and Erlang
## Docs
Read the [docs on hexdocs.pm](https://hexdocs.pm/extism/).
## Installation
You can find this package on [hex.pm](https://hex.pm/packages/extism).
```elixir
def deps do
[
{:extism, "~> 0.1.0"}
]
end
```
## Getting Started
### Example
```elixir
# Create a context for which plugins can be allocated and cleaned
ctx = Extism.Context.new()
# point to some wasm code, this is the count_vowels example that ships with extism
manifest = %{ wasm: [ %{ path: "/Users/ben/code/extism/wasm/code.wasm" } ]}
{:ok, plugin} = Extism.Context.new_plugin(ctx, manifest, false)
# {:ok,
# %Extism.Plugin{
# resource: 0,
# reference: #Reference<0.520418104.1263009793.80956>
# }}
{:ok, output} = Extism.Plugin.call(plugin, "count_vowels", "this is a test")
# {:ok, "{\"count\": 4}"}
{:ok, result} = JSON.decode(output)
# {:ok, %{"count" => 4}}
# free up the context and any plugins we allocated
Extism.Context.free(ctx)
```
### Modules
The two primary modules you should learn are:
* [Extism.Context](Extism.Context.html)
* [Extism.Plugin](Extism.Plugin.html)
#### Context
The [Context](Extism.Context.html) can be thought of as a session. You need a context to interact with the Extism runtime. The context holds your plugins and when you free the context, it frees your plugins. It's important to free up your context and plugins when you are done with them.
```elixir
ctx = Extism.Context.new()
# frees all the plugins
Extism.Context.reset(ctx)
# frees the context and all its plugins
Extism.Context.free(ctx)
```
#### Plugin
The [Plugin](Extism.Plugin.html) represents an instance of your WASM program from the given manifest.
The key method to know here is [Extism.Plugin#call](Extism.Plugin.html#call/3) which takes a function name to invoke and some input data, and returns the results from the plugin.
```elixir
{:ok, plugin} = Extism.Context.new_plugin(ctx, manifest, false)
{:ok, output} = Extism.Plugin.call(plugin, "count_vowels", "this is a test")
```

View File

@@ -1,5 +0,0 @@
defmodule Extism do
def set_log_file(filepath, level) do
Extism.Native.set_log_file(filepath, level)
end
end

View File

@@ -1,64 +0,0 @@
defmodule Extism.Context do
@moduledoc """
A Context is needed to create plugins. The Context is where your plugins
live. Freeing the context frees all of the plugins in its scope.
"""
defstruct [
# The actual NIF Resource. A pointer in this case
ptr: nil
]
def wrap_resource(ptr) do
%__MODULE__{
ptr: ptr
}
end
@doc """
Creates a new context.
"""
def new() do
ptr = Extism.Native.context_new()
Extism.Context.wrap_resource(ptr)
end
@doc """
Resets the context. This has the effect of freeing all the plugins created so far.
"""
def reset(ctx) do
Extism.Native.context_reset(ctx.ptr)
end
@doc """
Frees the context from memory and all of its plugins.
"""
def free(ctx) do
Extism.Native.context_free(ctx.ptr)
end
@doc """
Create a new plugin from a WASM module or manifest
## Examples:
iex> ctx = Extism.Context.new()
iex> manifest = %{ wasm: [ %{ path: "/Users/ben/code/extism/wasm/code.wasm" } ]}
iex> {:ok, plugin} = Extism.Context.new_plugin(ctx, manifest, false)
## Parameters
- ctx: The Context to manage this plugin
- manifest: The String or Map of the WASM module or [manifest](https://extism.org/docs/concepts/manifest)
- wasi: A bool you set to true if you want WASI support
"""
def new_plugin(ctx, manifest, wasi \\ false) do
{:ok, manifest_payload} = JSON.encode(manifest)
case Extism.Native.plugin_new_with_manifest(ctx.ptr, manifest_payload, wasi) do
{:error, err} -> {:error, err}
res -> {:ok, Extism.Plugin.wrap_resource(ctx, res)}
end
end
end

View File

@@ -1,21 +0,0 @@
defmodule Extism.Native do
@moduledoc """
This module represents the Native Extism runtime API and is for internal use.
Do not use or rely on this this module.
"""
use Rustler,
otp_app: :extism,
crate: :extism_nif
def context_new(), do: error()
def context_reset(_ctx), do: error()
def context_free(_ctx), do: error()
def plugin_new_with_manifest(_ctx, _manifest, _wasi), do: error()
def plugin_call(_ctx, _plugin_id, _name, _input), do: error()
def plugin_update_manifest(_ctx, _plugin_id, _manifest, _wasi), do: error()
def plugin_has_function(_ctx, _plugin_id, _function_name), do: error()
def plugin_free(_ctx, _plugin_id), do: error()
def set_log_file(_filename, _level), do: error()
defp error, do: :erlang.nif_error(:nif_not_loaded)
end

View File

@@ -1,91 +0,0 @@
defmodule Extism.Plugin do
@moduledoc """
A Plugin represents an instance of your WASM program from the given manifest.
"""
defstruct [
# The actual NIF Resource. PluginIndex and the context
plugin_id: nil,
ctx: nil
]
def wrap_resource(ctx, plugin_id) do
%__MODULE__{
ctx: ctx,
plugin_id: plugin_id
}
end
@doc """
Call a plugin's function by name
## Examples
iex> {:ok, plugin} = Extism.Context.new_plugin(ctx, manifest, false)
iex> {:ok, output} = Extism.Plugin.call(plugin, "count_vowels", "this is a test")
# {:ok, "{\"count\": 4}"}
## Parameters
- plugin: The plugin
- name: The name of the function as a string
- input: The input data as a string
## Returns
A string representation of the functions output
"""
def call(plugin, name, input) do
case Extism.Native.plugin_call(plugin.ctx.ptr, plugin.plugin_id, name, input) do
{:error, err} -> {:error, err}
res -> {:ok, res}
end
end
@doc """
Updates the manifest of the given plugin
## Parameters
- ctx: The Context to manage this plugin
- manifest: The String or Map of the WASM module or [manifest](https://extism.org/docs/concepts/manifest)
- wasi: A bool you set to true if you want WASI support
"""
def update(plugin, manifest, wasi) when is_map(manifest) do
{:ok, manifest_payload} = JSON.encode(manifest)
case Extism.Native.plugin_update_manifest(
plugin.ctx.ptr,
plugin.plugin_id,
manifest_payload,
wasi
) do
{:error, err} -> {:error, err}
_ -> :ok
end
end
@doc """
Frees the plugin
"""
def free(plugin) do
Extism.Native.plugin_free(plugin.ctx.ptr, plugin.plugin_id)
end
@doc """
Returns true if the given plugin responds to the given function name
"""
def has_function(plugin, function_name) do
Extism.Native.plugin_has_function(plugin.ctx.ptr, plugin.plugin_id, function_name)
end
end
defimpl Inspect, for: Extim.Plugin do
import Inspect.Algebra
def inspect(dict, opts) do
concat(["#Extism.Plugin<", to_doc(dict.plugin_id, opts), ">"])
end
end

Binary file not shown.

Before

Width:  |  Height:  |  Size: 11 KiB

View File

@@ -1,59 +0,0 @@
defmodule Extism.MixProject do
use Mix.Project
def project do
[
app: :extism,
version: "0.2.0",
elixir: "~> 1.12",
start_permanent: Mix.env() == :prod,
deps: deps(),
package: package(),
aliases: aliases(),
docs: docs()
]
end
# Run "mix help compile.app" to learn about applications.
def application do
[
extra_applications: [:logger]
]
end
defp deps do
[
{:rustler, "~> 0.26.0"},
{:json, "~> 1.4"},
{:ex_doc, "~> 0.21", only: :dev, runtime: false}
]
end
defp aliases do
[
fmt: [
"format",
"cmd cargo fmt --manifest-path native/io/Cargo.toml"
]
]
end
defp package do
[
licenses: ["BSD-3-Clause"],
description: "Extism Host SDK for Elixir and Erlang",
name: "extism",
files: ~w(lib native .formatter.exs mix.exs README.md LICENSE),
links: %{"GitHub" => "https://github.com/extism/extism"}
]
end
defp docs do
[
main: "Extism",
logo: "./logo.png",
main: "readme",
extras: ["README.md"]
]
end
end

View File

@@ -1,12 +0,0 @@
%{
"earmark_parser": {:hex, :earmark_parser, "1.4.29", "149d50dcb3a93d9f3d6f3ecf18c918fb5a2d3c001b5d3305c926cddfbd33355b", [:mix], [], "hexpm", "4902af1b3eb139016aed210888748db8070b8125c2342ce3dcae4f38dcc63503"},
"ex_doc": {:hex, :ex_doc, "0.29.1", "b1c652fa5f92ee9cf15c75271168027f92039b3877094290a75abcaac82a9f77", [:mix], [{:earmark_parser, "~> 1.4.19", [hex: :earmark_parser, repo: "hexpm", optional: false]}, {:makeup_elixir, "~> 0.14", [hex: :makeup_elixir, repo: "hexpm", optional: false]}, {:makeup_erlang, "~> 0.1", [hex: :makeup_erlang, repo: "hexpm", optional: false]}], "hexpm", "b7745fa6374a36daf484e2a2012274950e084815b936b1319aeebcf7809574f6"},
"jason": {:hex, :jason, "1.4.0", "e855647bc964a44e2f67df589ccf49105ae039d4179db7f6271dfd3843dc27e6", [:mix], [{:decimal, "~> 1.0 or ~> 2.0", [hex: :decimal, repo: "hexpm", optional: true]}], "hexpm", "79a3791085b2a0f743ca04cec0f7be26443738779d09302e01318f97bdb82121"},
"json": {:hex, :json, "1.4.1", "8648f04a9439765ad449bc56a3ff7d8b11dd44ff08ffcdefc4329f7c93843dfa", [:mix], [], "hexpm", "9abf218dbe4ea4fcb875e087d5f904ef263d012ee5ed21d46e9dbca63f053d16"},
"makeup": {:hex, :makeup, "1.1.0", "6b67c8bc2882a6b6a445859952a602afc1a41c2e08379ca057c0f525366fc3ca", [:mix], [{:nimble_parsec, "~> 1.2.2 or ~> 1.3", [hex: :nimble_parsec, repo: "hexpm", optional: false]}], "hexpm", "0a45ed501f4a8897f580eabf99a2e5234ea3e75a4373c8a52824f6e873be57a6"},
"makeup_elixir": {:hex, :makeup_elixir, "0.16.0", "f8c570a0d33f8039513fbccaf7108c5d750f47d8defd44088371191b76492b0b", [:mix], [{:makeup, "~> 1.0", [hex: :makeup, repo: "hexpm", optional: false]}, {:nimble_parsec, "~> 1.2.3", [hex: :nimble_parsec, repo: "hexpm", optional: false]}], "hexpm", "28b2cbdc13960a46ae9a8858c4bebdec3c9a6d7b4b9e7f4ed1502f8159f338e7"},
"makeup_erlang": {:hex, :makeup_erlang, "0.1.1", "3fcb7f09eb9d98dc4d208f49cc955a34218fc41ff6b84df7c75b3e6e533cc65f", [:mix], [{:makeup, "~> 1.0", [hex: :makeup, repo: "hexpm", optional: false]}], "hexpm", "174d0809e98a4ef0b3309256cbf97101c6ec01c4ab0b23e926a9e17df2077cbb"},
"nimble_parsec": {:hex, :nimble_parsec, "1.2.3", "244836e6e3f1200c7f30cb56733fd808744eca61fd182f731eac4af635cc6d0b", [:mix], [], "hexpm", "c8d789e39b9131acf7b99291e93dae60ab48ef14a7ee9d58c6964f59efb570b0"},
"rustler": {:hex, :rustler, "0.26.0", "06a2773d453ee3e9109efda643cf2ae633dedea709e2455ac42b83637c9249bf", [:mix], [{:jason, "~> 1.0", [hex: :jason, repo: "hexpm", optional: false]}, {:toml, "~> 0.6", [hex: :toml, repo: "hexpm", optional: false]}], "hexpm", "42961e9d2083d004d5a53e111ad1f0c347efd9a05cb2eb2ffa1d037cdc74db91"},
"toml": {:hex, :toml, "0.6.2", "38f445df384a17e5d382befe30e3489112a48d3ba4c459e543f748c2f25dd4d1", [:mix], [], "hexpm", "d013e45126d74c0c26a38d31f5e8e9b83ea19fc752470feb9a86071ca5a672fa"},
}

View File

@@ -1,15 +0,0 @@
[target.'cfg(target_os = "macos")']
rustflags = [
"-C", "link-arg=-undefined",
"-C", "link-arg=dynamic_lookup",
]
# See https://github.com/rust-lang/rust/issues/59302
[target.x86_64-unknown-linux-musl]
rustflags = [
"-C", "target-feature=-crt-static"
]
# Provides a small build size, but takes more time to build.
[profile.release]
lto = true

Some files were not shown because too many files have changed in this diff Show More