Compare commits

..

292 Commits

Author SHA1 Message Date
Benjamin Eckel
f4c61e8c44 feat: add default cache config (#615)
Co-authored-by: zach <zach@dylibso.com>
2023-11-29 14:32:01 -06:00
Benjamin Eckel
452bb2f498 chore: Bump 0.5.4 (#549) 2023-10-25 15:46:30 -05:00
zach
c043decd95 chore: backport latest kernel changes (#547)
- Updates to fix a possible issue with a value on stack being stored at
a very high offset in extism kernel memory
2023-10-25 11:37:37 -07:00
Benjamin Eckel
ec70b0e7b8 Release: 0.5.3 stable release (#538)
Cuts a new 0.5.3 release from stable.
2023-10-24 12:29:39 -05:00
zach
1452b9fb42 chore: backport latest kernel changes to stable (#528) 2023-10-20 10:16:33 -07:00
Benjamin Eckel
9f69a68df4 chore: fix elixir release action (#497)
This is 404ing for some reason. But Elixir doesn't need the shared
library so i'm removing it.

https://github.com/extism/extism/actions/runs/6425026823/job/17446865267
2023-10-05 17:32:20 -05:00
Benjamin Eckel
dbf9f34dc6 chore: Release elixir v0.5.1 (#496) 2023-10-05 17:14:54 -05:00
Benjamin Eckel
c8a9478da1 chore: also bump rust SDK to 0.5.2 2023-09-21 10:22:39 -05:00
Benjamin Eckel
e89ddd5a2a chore: Bump to 0.5.2 2023-09-21 09:41:27 -05:00
zach
93392e0884 fix(stable): improve the way the kernel calculates how many pages to allocate (#471)
Fixes a bug in the kernel memory allocator where the space used by the
`MemoryRoot` wasn't being considered

---------

Co-authored-by: Benjamin Eckel <bhelx@users.noreply.github.com>
2023-09-20 16:02:42 -07:00
Benjamin Eckel
4ebd0eb372 chore: always run the publish of SDK 2023-09-18 19:17:47 -05:00
zach
8feee0c693 cleanup(stable): use wasm-strip on extism-runtime.wasm (#467) 2023-09-18 19:08:27 -05:00
Benjamin Eckel
773ab32a45 chore: Bump to 0.5.1 2023-09-18 18:55:46 -05:00
Benjamin Eckel
6a041d0c39 fix: Fixes rounding issue in kernel num_pages (#466)
There were some scenarios where the kernel was not allocating enough
pages to get data back into the plugin. So some host functions were
failing when the output was right on this boundary.

Related https://github.com/moonrepo/proto/issues/208

We will come back with tests and cherry pick this over to main. For now
we want to get out a 0.5.1 fix
2023-09-18 18:53:30 -05: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
Benjamin Eckel
c94c221854 release: v0.2.0 (#209)
Let's get the last changes in this week for a release. Will hold this PR
until all changes we want are in.

Release checklist:
- [x] test: updates across CI to test for Host Function output /
integration (#219)
- this should probably look something like a grep for some kind of
output proving guest/host interop?
- [x] Fix for userData pointer issue in Go host functions (#220) 
- [x] docs: Host Functions in SDKs
  - [ ] sdk: C 
  - [ ] sdk: C++ 
  - [ ] sdk: Python
  - [ ] sdk: Node
  - [ ] sdk: Go
  - [ ] sdk: Rust 
- [x] docs: Manifest property names (http `headers` & memory
`max_pages`)
- [ ] blog: announcing v0.2.0, including host functions, Zig SDK/PDK,
Java SDK, .NET SDK, + ...
2023-01-19 10:56:00 -06:00
zach
aa04fd3e5c test: add more host function tests, cleanup tests to use wasm/code.wasm when possible (#219) 2023-01-19 10:09:16 -06:00
Benjamin Eckel
d73468a3ac ci(java-sdk): Test on multiple JREs (#221) 2023-01-18 10:43:59 -06:00
Etienne ANNE
ac7e1aeba3 Support jdk11 (#208)
Hi,

We want to use Extism on our project
[Otoroshi](https://github.com/MAIF/otoroshi) but we need to run it on
jdk11

This pull request makes everything run smoothly on jdk11

If you have any suggestion about this pull request, i'm open to it

Thanks for your time
2023-01-18 09:48:36 -06:00
zach
668ef5c3c0 fix: use cgo.Handle to protect Go pointers being passed to C callbacks (#220)
See
https://discord.com/channels/1011124058408112148/1050087851443888138/1064977577837592739
2023-01-17 15:38:16 -08:00
dependabot[bot]
0170e79f90 chore(deps-dev): Bump ts-jest from 29.0.3 to 29.0.5 in /node (#215)
Bumps [ts-jest](https://github.com/kulshekhar/ts-jest) from 29.0.3 to
29.0.5.
<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.0.5</h2>
<p>Please refer to <a
href="https://github.com/kulshekhar/ts-jest/blob/main/CHANGELOG.md">CHANGELOG.md</a>
for details.</p>
<h2>v29.0.4</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.0.4...v29.0.5">29.0.5</a>
(2023-01-13)</h2>
<h3>Reverts</h3>
<ul>
<li>Revert &quot;fix(transformer): don't use cache when
<code>tsJestConfig</code> is different (<a
href="https://github-redirect.dependabot.com/kulshekhar/ts-jest/issues/3966">#3966</a>)&quot;
(<a
href="185eb189d7">185eb18</a>),
closes <a
href="https://github-redirect.dependabot.com/kulshekhar/ts-jest/issues/3966">#3966</a></li>
</ul>
<h2><a
href="https://github.com/kulshekhar/ts-jest/compare/v29.0.3...v29.0.4">29.0.4</a>
(2023-01-10)</h2>
<h3>Bug Fixes</h3>
<ul>
<li><strong>transformer:</strong> don't use cache when
<code>tsJestConfig</code> is different (<a
href="https://github-redirect.dependabot.com/kulshekhar/ts-jest/issues/3966">#3966</a>)
(<a
href="a445638ca6">a445638</a>)</li>
<li>bump <code>json5</code> to <code>2.2.3</code> (<a
href="https://github-redirect.dependabot.com/kulshekhar/ts-jest/pull/3976">#3976</a>)(<a
href="b9f7809948">b9f7809</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="22b890e890"><code>22b890e</code></a>
chore(release): 29.0.5 (<a
href="https://github-redirect.dependabot.com/kulshekhar/ts-jest/issues/3985">#3985</a>)</li>
<li><a
href="4e0623ba71"><code>4e0623b</code></a>
Merge pull request <a
href="https://github-redirect.dependabot.com/kulshekhar/ts-jest/issues/3981">#3981</a>
from ahnpnl/fix/revert-3966</li>
<li><a
href="3e49bd7563"><code>3e49bd7</code></a>
build(deps): Update dependency <code>@​commitlint/config-angular</code>
to ^17.4.2 (<a
href="https://github-redirect.dependabot.com/kulshekhar/ts-jest/issues/3982">#3982</a>)</li>
<li><a
href="32e384f87e"><code>32e384f</code></a>
build(deps): Update dependency esbuild to ~0.16.17 (<a
href="https://github-redirect.dependabot.com/kulshekhar/ts-jest/issues/3978">#3978</a>)</li>
<li><a
href="185eb189d7"><code>185eb18</code></a>
Revert &quot;fix(transformer): don't use cache when
<code>tsJestConfig</code> is different (#...</li>
<li><a
href="13cccbec02"><code>13cccbe</code></a>
chore(release): 29.0.4 (<a
href="https://github-redirect.dependabot.com/kulshekhar/ts-jest/issues/3977">#3977</a>)</li>
<li><a
href="d30d389f74"><code>d30d389</code></a>
Merge remote-tracking branch 'upstream/main'</li>
<li><a
href="b9f7809948"><code>b9f7809</code></a>
build(deps): updated json5 dependency (<a
href="https://github-redirect.dependabot.com/kulshekhar/ts-jest/issues/3976">#3976</a>)</li>
<li><a
href="5d5730e1a6"><code>5d5730e</code></a>
Merge remote-tracking branch 'upstream/main'</li>
<li><a
href="7fbee99ee8"><code>7fbee99</code></a>
build(deps): Update <a
href="https://github.com/types"><code>@​types</code></a> packages to
^5.48.1 (<a
href="https://github-redirect.dependabot.com/kulshekhar/ts-jest/issues/3973">#3973</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/kulshekhar/ts-jest/compare/v29.0.3...v29.0.5">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.0.3&new-version=29.0.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-01-16 09:52:40 -06:00
dependabot[bot]
a550c1b4fe chore(deps-dev): Bump typedoc from 0.23.22 to 0.23.24 in /node (#216)
Bumps [typedoc](https://github.com/TypeStrong/TypeDoc) from 0.23.22 to
0.23.24.
<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.24</h2>
<h3>Bug Fixes</h3>
<ul>
<li>Fixed an issue where signature comments were preferred over property
comments for indirectly created function-properties, <a
href="https://github-redirect.dependabot.com/TypeStrong/TypeDoc/issues/2135">#2135</a>.</li>
<li>Fixed symlink handling when expanding entry points, <a
href="https://github-redirect.dependabot.com/TypeStrong/TypeDoc/issues/2130">#2130</a>.</li>
</ul>
<h3>Thanks!</h3>
<ul>
<li><a
href="https://github.com/boneskull"><code>@​boneskull</code></a></li>
</ul>
<h2>v0.23.23</h2>
<h3>Features</h3>
<ul>
<li>Added <code>ts.Signature</code> to emitted
<code>EVENT_CREATE_SIGNATURE</code> event, <a
href="https://github-redirect.dependabot.com/TypeStrong/TypeDoc/issues/2002">#2002</a>.</li>
</ul>
<h3>Bug Fixes</h3>
<ul>
<li>Links to members hidden by filter settings now temporarily override
the filter, <a
href="https://github-redirect.dependabot.com/TypeStrong/TypeDoc/issues/2092">#2092</a>.</li>
<li>If <code>src/</code> and <code>src/x</code> are specified as entry
points, <code>src/</code> will no longer be ignored, <a
href="https://github-redirect.dependabot.com/TypeStrong/TypeDoc/issues/2121">#2121</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.24 (2023-01-07)</h2>
<h3>Bug Fixes</h3>
<ul>
<li>Fixed an issue where signature comments were preferred over property
comments for indirectly created function-properties, <a
href="https://github-redirect.dependabot.com/TypeStrong/TypeDoc/issues/2135">#2135</a>.</li>
<li>Fixed symlink handling when expanding entry points, <a
href="https://github-redirect.dependabot.com/TypeStrong/TypeDoc/issues/2130">#2130</a>.</li>
</ul>
<h3>Thanks!</h3>
<ul>
<li><a
href="https://github.com/boneskull"><code>@​boneskull</code></a></li>
</ul>
<h2>v0.23.23 (2022-12-18)</h2>
<h3>Features</h3>
<ul>
<li>Added <code>ts.Signature</code> to emitted
<code>EVENT_CREATE_SIGNATURE</code> event, <a
href="https://github-redirect.dependabot.com/TypeStrong/TypeDoc/issues/2002">#2002</a>.</li>
</ul>
<h3>Bug Fixes</h3>
<ul>
<li>Links to members hidden by filter settings now temporarily override
the filter, <a
href="https://github-redirect.dependabot.com/TypeStrong/TypeDoc/issues/2092">#2092</a>.</li>
<li>If <code>src/</code> and <code>src/x</code> are specified as entry
points, <code>src/</code> will no longer be ignored, <a
href="https://github-redirect.dependabot.com/TypeStrong/TypeDoc/issues/2121">#2121</a>.</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="0340ef4553"><code>0340ef4</code></a>
Update changelog for release</li>
<li><a
href="05e65f2bfe"><code>05e65f2</code></a>
Bump version to 0.23.24</li>
<li><a
href="0cb16a8b8c"><code>0cb16a8</code></a>
Shiki :/</li>
<li><a
href="7cf8b3cfd9"><code>7cf8b3c</code></a>
Upgrade deps</li>
<li><a
href="cc93e0996d"><code>cc93e09</code></a>
Update changelog</li>
<li><a
href="26480e7c19"><code>26480e7</code></a>
Merge pull request <a
href="https://github-redirect.dependabot.com/TypeStrong/TypeDoc/issues/2134">#2134</a>
from boneskull/boneskull/issue2130</li>
<li><a
href="6c1b4ac811"><code>6c1b4ac</code></a>
fix(test): glob root match test matches against platform-normalized
path</li>
<li><a
href="fd7a896be5"><code>fd7a896</code></a>
fix: allow traversal of symlinks in glob</li>
<li><a
href="81ccecfa4f"><code>81ccecf</code></a>
Fix <a
href="https://github-redirect.dependabot.com/TypeStrong/TypeDoc/issues/2135">#2135</a></li>
<li><a
href="2d60647225"><code>2d60647</code></a>
Merge pull request <a
href="https://github-redirect.dependabot.com/TypeStrong/TypeDoc/issues/2133">#2133</a>
from boneskull/boneskull/tooltweak</li>
<li>Additional commits viewable in <a
href="https://github.com/TypeStrong/TypeDoc/compare/v0.23.22...v0.23.24">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.22&new-version=0.23.24)](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-16 09:52:31 -06:00
dependabot[bot]
c502e62510 chore(deps-dev): Bump prettier from 2.8.2 to 2.8.3 in /node (#217)
Bumps [prettier](https://github.com/prettier/prettier) from 2.8.2 to
2.8.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>2.8.3</h2>
<p>Support Angular 15.1</p>
<p>🔗 <a
href="https://github.com/prettier/prettier/blob/main/CHANGELOG.md#283">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.3</h1>
<p><a
href="https://github.com/prettier/prettier/compare/2.8.2...2.8.3">diff</a></p>
<h4>Allow self-closing tags on custom elements (<a
href="https://github-redirect.dependabot.com/prettier/prettier/pull/14170">#14170</a>
by <a href="https://github.com/fisker"><code>@​fisker</code></a>)</h4>
<p>See <a
href="https://github.com/angular/angular/releases/tag/15.1.0">Angular
v15.1.0 release note</a> for details.</p>
<!-- raw HTML omitted -->
<pre lang="html"><code>// Input
&lt;app-test/&gt;
<p>// Prettier 2.8.2
SyntaxError: Only void and foreign elements can be self closed
&quot;app-test&quot; (1:1)
&gt; 1 | &lt;app-test/&gt;
| ^^^^^^^^^
2 |</p>
<p>// Prettier 2.8.3
&lt;app-test /&gt;
</code></pre></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="c990e522ce"><code>c990e52</code></a>
Release 2.8.3</li>
<li><a
href="4ad9160891"><code>4ad9160</code></a>
Angular: allow self-closing tags on custom elements (<a
href="https://github-redirect.dependabot.com/prettier/prettier/issues/14170">#14170</a>)</li>
<li><a
href="06ea1ac0d0"><code>06ea1ac</code></a>
Stricter node type check (<a
href="https://github-redirect.dependabot.com/prettier/prettier/issues/14165">#14165</a>)</li>
<li><a
href="c1b976572c"><code>c1b9765</code></a>
feat: add copy to clipboard in code blocks (<a
href="https://github-redirect.dependabot.com/prettier/prettier/issues/14153">#14153</a>)</li>
<li><a
href="3ef82ae06b"><code>3ef82ae</code></a>
Remove and ignore <code>.node-version</code> file (<a
href="https://github-redirect.dependabot.com/prettier/prettier/issues/14143">#14143</a>)</li>
<li><a
href="a37ce0b8f6"><code>a37ce0b</code></a>
Clean <code>changelog_unreleased</code> (<a
href="https://github-redirect.dependabot.com/prettier/prettier/issues/14144">#14144</a>)</li>
<li><a
href="4cf4c2c563"><code>4cf4c2c</code></a>
Fix typo in CHANGELOG (<a
href="https://github-redirect.dependabot.com/prettier/prettier/issues/14137">#14137</a>)</li>
<li><a
href="26b45e361f"><code>26b45e3</code></a>
Git blame ignore 2.8.2</li>
<li><a
href="b9c3cd4c70"><code>b9c3cd4</code></a>
Bump Prettier dependency to 2.8.2</li>
<li><a
href="dc187f1936"><code>dc187f1</code></a>
Update dependents count</li>
<li>See full diff in <a
href="https://github.com/prettier/prettier/compare/2.8.2...2.8.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=2.8.2&new-version=2.8.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-01-16 09:52:22 -06:00
zach
6774b30de0 fix: remove quotes from makefile (#218) 2023-01-15 19:56:57 -08:00
zach
834d551990 cleanup: remove unused info macro 2023-01-15 19:47:51 -08:00
zach
a1f36c58d2 cleanup: use debug logging instead of info in runtime, fix C example (#214) 2023-01-15 17:16:29 -08:00
zach
081c825cd8 cleanup: minor OCaml/Haskell API updates (#213) 2023-01-13 12:05:12 -08:00
zach
dc3d54e260 feat: Add C API for host functions + support for C++, Python, Go, Node, OCaml (#195)
- New types:
  - `ExtismValType` - Enum of WebAssembly types
  - `ExtismValUnion` - A union of the possible WebAssembly types
  - `ExtismVal` - A struct with `ExtismValType` and `ExtismValUnion`
  - `ExtismFunction` - The host function wrapper type
  - `ExtismFunctionType` - The type of the host function callback
- `ExtismCurrentPlugin` - Provides access to the currently running
plugin from inside a host function

- New functions:
  - `extism_function_new` - Create a new `ExtismFunction`
  - `extism_function_free` - Free an `ExtismFunction`
- `extism_current_plugin_memory`, `extism_current_plugin_memory_alloc`,
`extism_current_plugin_memory_free`,
`extism_current_plugin_memory_length` - Manage plugin memory from inside
a host functions

- Updated functions
- `extism_plugin_new` and `extsim_plugin_update` - now accept two extra
parameters for `ExtismFunction*` array and length of that array

## Notes

- Host functions take a user-data argument, which is owned by the
resulting `ExtismFunction` and will be cleaned up when
`extism_function_free` is called (if a cleanup function was passed in
with the user data)
- Host functions in every SDK require working with `ExtismVal` arguments
directly, this is pretty low-level for what is kind of a high-level
feature. We could work on adding some types to the SDKs that make
working with pointers to plugin data more accessible, maybe something
similar to how the Rust PDK handes input/output data.
- In each language the host functions more-or-less share a signature:
`(CurrentPlugin plugin, Val inputs[], Val outputs[], userData)`
- C, C++, OCaml and Go take a single userData argument but Python and
Node take a "rest" argument which allows passing any number of user-data
values
- Go requires the host function to be exported:
f9eb5ed839/go/main.go (L13-L26)
- Zig and Ruby should be relatively simple to add host functions to next
but I haven't really looked into Elixir, .NET or Java yet.
- Also closes #20
2023-01-10 12:04:40 -08:00
zach
cfb1317261 chore: use new base64 API, cleanup clippy warnings (#211)
Closes #210
2023-01-10 09:38:58 -08:00
dependabot[bot]
9f0e2413e3 chore(deps): Update base64 requirement from 0.20.0-alpha to 0.21.0 (#204)
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.21.0</h1>
<p>(not yet released)</p>
<h2>Migration</h2>
<h3>Functions</h3>
<table>
<thead>
<tr>
<th>&lt; 0.20 function</th>
<th>0.21 equivalent</th>
</tr>
</thead>
<tbody>
<tr>
<td><code>encode()</code></td>
<td><code>engine::general_purpose::STANDARD.encode()</code> or
<code>prelude::BASE64_STANDARD.encode()</code></td>
</tr>
<tr>
<td><code>encode_config()</code></td>
<td><code>engine.encode()</code></td>
</tr>
<tr>
<td><code>encode_config_buf()</code></td>
<td><code>engine.encode_string()</code></td>
</tr>
<tr>
<td><code>encode_config_slice()</code></td>
<td><code>engine.encode_slice()</code></td>
</tr>
<tr>
<td><code>decode()</code></td>
<td><code>engine::general_purpose::STANDARD.decode()</code> or
<code>prelude::BASE64_STANDARD.decode()</code></td>
</tr>
<tr>
<td><code>decode_config()</code></td>
<td><code>engine.decode()</code></td>
</tr>
<tr>
<td><code>decode_config_buf()</code></td>
<td><code>engine.decode_vec()</code></td>
</tr>
<tr>
<td><code>decode_config_slice()</code></td>
<td><code>engine.decode_slice()</code></td>
</tr>
</tbody>
</table>
<p>The short-lived 0.20 functions were the 0.13 functions with
<code>config</code> replaced with <code>engine</code>.</p>
<h3>Padding</h3>
<p>If applicable, use the preset engines <code>engine::STANDARD</code>,
<code>engine::STANDARD_NO_PAD</code>, <code>engine::URL_SAFE</code>,
or <code>engine::URL_SAFE_NO_PAD</code>.
The <code>NO_PAD</code> ones require that padding is absent when
decoding, and the others require that
canonical padding is present .</p>
<p>If you need the &lt; 0.20 behavior that did not care about padding,
or want to recreate &lt; 0.20.0's predefined <code>Config</code>s
precisely, see the following table.</p>
<table>
<thead>
<tr>
<th>0.13.1 Config</th>
<th>0.20.0+ alphabet</th>
<th><code>encode_padding</code></th>
<th><code>decode_padding_mode</code></th>
</tr>
</thead>
<tbody>
<tr>
<td>STANDARD</td>
<td>STANDARD</td>
<td>true</td>
<td>Indifferent</td>
</tr>
<tr>
<td>STANDARD_NO_PAD</td>
<td>STANDARD</td>
<td>false</td>
<td>Indifferent</td>
</tr>
<tr>
<td>URL_SAFE</td>
<td>URL_SAFE</td>
<td>true</td>
<td>Indifferent</td>
</tr>
<tr>
<td>URL_SAFE_NO_PAD</td>
<td>URL_SAFE</td>
<td>false</td>
<td>Indifferent</td>
</tr>
</tbody>
</table>
<h1>0.21.0-rc.1</h1>
<ul>
<li>Restore the ability to decode into a slice of precisely the correct
length with <code>Engine.decode_slice_unchecked</code>.</li>
<li>Add <code>Engine</code> as a <code>pub use</code> in
<code>prelude</code>.</li>
</ul>
<h1>0.21.0-beta.2</h1>
<h2>Breaking changes</h2>
<ul>
<li>Re-exports of preconfigured engines in <code>engine</code> are
removed in favor of <code>base64::prelude::...</code> that are better
suited to those who wish to <code>use</code> the entire path to a
name.</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="d7fb31c4ad"><code>d7fb31c</code></a>
v0.21.0</li>
<li><a
href="83503761e9"><code>8350376</code></a>
Merge pull request <a
href="https://github-redirect.dependabot.com/marshallpierce/rust-base64/issues/207">#207</a>
from marshallpierce/mp/api-rework</li>
<li><a
href="726f7841b7"><code>726f784</code></a>
v0.21.0-rc.1</li>
<li><a
href="b29ab0196d"><code>b29ab01</code></a>
Add <code>Engine</code> in <code>prelude</code></li>
<li><a
href="64bbcc02df"><code>64bbcc0</code></a>
Remove no longer needed test helpers</li>
<li><a
href="0f981bd04f"><code>0f981bd</code></a>
Add decode_slice_unchecked to restore ability to decode into a precisely
size...</li>
<li><a
href="a51e822ae9"><code>a51e822</code></a>
v0.21.0-beta.2</li>
<li><a
href="936569a658"><code>936569a</code></a>
Move re-exports from <code>engine</code> to <code>prelude</code></li>
<li><a
href="53e1091e1b"><code>53e1091</code></a>
Fix release notes typo</li>
<li><a
href="b03eb5a84d"><code>b03eb5a</code></a>
v0.21.0-beta.1</li>
<li>Additional commits viewable in <a
href="https://github.com/marshallpierce/rust-base64/compare/v0.20.0-alpha.1...v0.21.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-09 08:59:38 -06:00
dependabot[bot]
5b9e1c1ff6 chore(deps-dev): Bump prettier from 2.8.1 to 2.8.2 in /node (#205)
Bumps [prettier](https://github.com/prettier/prettier) from 2.8.1 to
2.8.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>2.8.2</h2>
<p>🔗 <a
href="https://github.com/prettier/prettier/blob/main/CHANGELOG.md#282">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.2</h1>
<p><a
href="https://github.com/prettier/prettier/compare/2.8.1...2.8.2">diff</a></p>
<h4>Don't lowercase link references (<a
href="https://github-redirect.dependabot.com/prettier/prettier/pull/13155">#13155</a>
by <a
href="https://github.com/DerekNonGeneric"><code>@​DerekNonGeneric</code></a>
&amp; <a
href="https://github.com/fisker"><code>@​fisker</code></a>)</h4>
<!-- raw HTML omitted -->
<pre lang="markdown"><code>&lt;!-- Input --&gt;
We now don't strictly follow the release notes format suggested by [Keep
a Changelog].
<p>&lt;!-- Prettier 2.8.1 --&gt;
We now don't strictly follow the release notes format suggested by <a
href="https://example.com/">Keep a Changelog</a>.</p>
<p>&lt;!--
^^^^^^^^^^^^^^^^^^ lowercased
--&gt;</p>
<p>&lt;!-- Prettier 2.8.2 --&gt;
&lt;Same as input&gt;
</code></pre></p>
<h4>Preserve self-closing tags (<a
href="https://github-redirect.dependabot.com/prettier/prettier/pull/13691">#13691</a>
by <a
href="https://github.com/dcyriller"><code>@​dcyriller</code></a>)</h4>
<!-- raw HTML omitted -->
<pre lang="hbs"><code>{{! Input }}
&lt;div /&gt;
&lt;div&gt;&lt;/div&gt;
&lt;custom-component /&gt;
&lt;custom-component&gt;&lt;/custom-component&gt;
&lt;i /&gt;
&lt;i&gt;&lt;/i&gt;
&lt;Component /&gt;
&lt;Component&gt;&lt;/Component&gt;
<p>{{! Prettier 2.8.1 }}
&lt;div&gt;&lt;/div&gt;
&lt;div&gt;&lt;/div&gt;
&lt;custom-component&gt;&lt;/custom-component&gt;
&lt;custom-component&gt;&lt;/custom-component&gt;
&lt;i&gt;&lt;/i&gt;
&lt;i&gt;&lt;/i&gt;
&lt;Component /&gt;
&lt;Component /&gt;</p>
<p>{{! Prettier 2.8.2 }}
&lt;/tr&gt;&lt;/table&gt;
</code></pre></p>
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="ac88438d65"><code>ac88438</code></a>
Release 2.8.2</li>
<li><a
href="aaf919014f"><code>aaf9190</code></a>
Fix comments after directive (<a
href="https://github-redirect.dependabot.com/prettier/prettier/issues/14081">#14081</a>)</li>
<li><a
href="9e09a78cf5"><code>9e09a78</code></a>
Stop inserting space in LESS property access (<a
href="https://github-redirect.dependabot.com/prettier/prettier/issues/14103">#14103</a>)</li>
<li><a
href="0c5d4f3458"><code>0c5d4f3</code></a>
Fix removing commas from function arguments in maps (<a
href="https://github-redirect.dependabot.com/prettier/prettier/issues/14089">#14089</a>)</li>
<li><a
href="b77d912c0c"><code>b77d912</code></a>
ember / glimmer: Preserve self-closing tags (<a
href="https://github-redirect.dependabot.com/prettier/prettier/issues/13691">#13691</a>)</li>
<li><a
href="cf36209a27"><code>cf36209</code></a>
Handlebars: Add tests for <code>{{! prettier-ignore}}</code> (<a
href="https://github-redirect.dependabot.com/prettier/prettier/issues/13693">#13693</a>)</li>
<li><a
href="f8e1ad806c"><code>f8e1ad8</code></a>
Add parens to head of <code>ExpressionStatement</code> instead of whole
statement (<a
href="https://github-redirect.dependabot.com/prettier/prettier/issues/14077">#14077</a>)</li>
<li><a
href="8034bada96"><code>8034bad</code></a>
Build(deps): Bump json5 from 2.2.0 to 2.2.3 in /scripts/release (<a
href="https://github-redirect.dependabot.com/prettier/prettier/issues/14104">#14104</a>)</li>
<li><a
href="31d40104f4"><code>31d4010</code></a>
Build(deps): Bump json5 from 2.2.1 to 2.2.3 in /website (<a
href="https://github-redirect.dependabot.com/prettier/prettier/issues/14101">#14101</a>)</li>
<li><a
href="41cee0636e"><code>41cee06</code></a>
Do not change case of property name if inside a variable declaration in
LESS ...</li>
<li>Additional commits viewable in <a
href="https://github.com/prettier/prettier/compare/2.8.1...2.8.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=2.8.1&new-version=2.8.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-01-09 08:59:17 -06:00
dependabot[bot]
ef8004b38d chore(deps-dev): Bump typedoc from 0.23.22 to 0.23.24 in /node (#206)
Bumps [typedoc](https://github.com/TypeStrong/TypeDoc) from 0.23.22 to
0.23.24.
<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.24</h2>
<h3>Bug Fixes</h3>
<ul>
<li>Fixed an issue where signature comments were preferred over property
comments for indirectly created function-properties, <a
href="https://github-redirect.dependabot.com/TypeStrong/TypeDoc/issues/2135">#2135</a>.</li>
<li>Fixed symlink handling when expanding entry points, <a
href="https://github-redirect.dependabot.com/TypeStrong/TypeDoc/issues/2130">#2130</a>.</li>
</ul>
<h3>Thanks!</h3>
<ul>
<li><a
href="https://github.com/boneskull"><code>@​boneskull</code></a></li>
</ul>
<h2>v0.23.23</h2>
<h3>Features</h3>
<ul>
<li>Added <code>ts.Signature</code> to emitted
<code>EVENT_CREATE_SIGNATURE</code> event, <a
href="https://github-redirect.dependabot.com/TypeStrong/TypeDoc/issues/2002">#2002</a>.</li>
</ul>
<h3>Bug Fixes</h3>
<ul>
<li>Links to members hidden by filter settings now temporarily override
the filter, <a
href="https://github-redirect.dependabot.com/TypeStrong/TypeDoc/issues/2092">#2092</a>.</li>
<li>If <code>src/</code> and <code>src/x</code> are specified as entry
points, <code>src/</code> will no longer be ignored, <a
href="https://github-redirect.dependabot.com/TypeStrong/TypeDoc/issues/2121">#2121</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.24 (2023-01-07)</h2>
<h3>Bug Fixes</h3>
<ul>
<li>Fixed an issue where signature comments were preferred over property
comments for indirectly created function-properties, <a
href="https://github-redirect.dependabot.com/TypeStrong/TypeDoc/issues/2135">#2135</a>.</li>
<li>Fixed symlink handling when expanding entry points, <a
href="https://github-redirect.dependabot.com/TypeStrong/TypeDoc/issues/2130">#2130</a>.</li>
</ul>
<h3>Thanks!</h3>
<ul>
<li><a
href="https://github.com/boneskull"><code>@​boneskull</code></a></li>
</ul>
<h2>v0.23.23 (2022-12-18)</h2>
<h3>Features</h3>
<ul>
<li>Added <code>ts.Signature</code> to emitted
<code>EVENT_CREATE_SIGNATURE</code> event, <a
href="https://github-redirect.dependabot.com/TypeStrong/TypeDoc/issues/2002">#2002</a>.</li>
</ul>
<h3>Bug Fixes</h3>
<ul>
<li>Links to members hidden by filter settings now temporarily override
the filter, <a
href="https://github-redirect.dependabot.com/TypeStrong/TypeDoc/issues/2092">#2092</a>.</li>
<li>If <code>src/</code> and <code>src/x</code> are specified as entry
points, <code>src/</code> will no longer be ignored, <a
href="https://github-redirect.dependabot.com/TypeStrong/TypeDoc/issues/2121">#2121</a>.</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="0340ef4553"><code>0340ef4</code></a>
Update changelog for release</li>
<li><a
href="05e65f2bfe"><code>05e65f2</code></a>
Bump version to 0.23.24</li>
<li><a
href="0cb16a8b8c"><code>0cb16a8</code></a>
Shiki :/</li>
<li><a
href="7cf8b3cfd9"><code>7cf8b3c</code></a>
Upgrade deps</li>
<li><a
href="cc93e0996d"><code>cc93e09</code></a>
Update changelog</li>
<li><a
href="26480e7c19"><code>26480e7</code></a>
Merge pull request <a
href="https://github-redirect.dependabot.com/TypeStrong/TypeDoc/issues/2134">#2134</a>
from boneskull/boneskull/issue2130</li>
<li><a
href="6c1b4ac811"><code>6c1b4ac</code></a>
fix(test): glob root match test matches against platform-normalized
path</li>
<li><a
href="fd7a896be5"><code>fd7a896</code></a>
fix: allow traversal of symlinks in glob</li>
<li><a
href="81ccecfa4f"><code>81ccecf</code></a>
Fix <a
href="https://github-redirect.dependabot.com/TypeStrong/TypeDoc/issues/2135">#2135</a></li>
<li><a
href="2d60647225"><code>2d60647</code></a>
Merge pull request <a
href="https://github-redirect.dependabot.com/TypeStrong/TypeDoc/issues/2133">#2133</a>
from boneskull/boneskull/tooltweak</li>
<li>Additional commits viewable in <a
href="https://github.com/TypeStrong/TypeDoc/compare/v0.23.22...v0.23.24">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.22&new-version=0.23.24)](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-09 08:59:07 -06:00
zach
9a6b4997dc feat: add EXTISM_DEBUG env variable to enable debug info (#201) 2023-01-06 14:06:11 -08:00
Benjamin Eckel
87a403b7f3 Fix: Fixes Runtime problem with ESM module (#199)
Takes new version of the wasi shim and ensures that both CJS and ESM
distributions can be built.


Already published as 0.2.2

Co-authored-by: Steve Manuel <steve@dylib.so>
2023-01-04 18:01:48 -06:00
Benjamin Eckel
908edf2918 feat: WASI support for browser runtime (#196)
closes #160

Goal is not to expose all the WASI functionality, but to just write
minimum code to allow PDK targets that require WASI (e.g. tinygo
compiled plugins) to work in the browser. We can follow up with allowing
the user more control over the WASI environment.
2023-01-04 14:42:18 -06:00
zach
7d34595dd7 feat(zig): import extism.h directly instead of hand-written bindings (#197) 2023-01-04 10:57:08 -08:00
dependabot[bot]
e3a427b0cc chore(deps-dev): Update minitest requirement from ~> 5.16.3 to ~> 5.17.0 in /ruby (#190)
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.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>
<p>2 major enhancements:</p>
<ul>
<li>Added Minitest::TestTask.</li>
<li>Dropping ruby 2.2 - 2.5. 2.6 is DTM soon too.</li>
</ul>
</li>
<li>
<p>11 minor enhancements:</p>
<ul>
<li>Added --show-skips option to show skips at end of run but not
require --verbose. (MSP-Greg)</li>
<li>Added Minitest.seed, the random seed used by the run.</li>
<li>Calling <code>srand Minitest.seed</code> before all shuffles to
ensure determinism.</li>
<li>Extended #stub to handle kwargs for both block and call args.
(SampsonCrowley)</li>
<li>Extended Mock#__call to display kwargs.</li>
</ul>
</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="abdde9d03b"><code>abdde9d</code></a>
prepped for release</li>
<li><a
href="c0be030603"><code>c0be030</code></a>
- Fix kwargs for Mock calls to delegator. (blowmage)</li>
<li><a
href="87604fca4d"><code>87604fc</code></a>
- Fix kwargs for expectations. (bobmazanec, blowmage)</li>
<li><a
href="0b816d303b"><code>0b816d3</code></a>
Add EOL date to rails matrix</li>
<li><a
href="2f7ed237f1"><code>2f7ed23</code></a>
cleaned up rails version</li>
<li><a
href="ae54abfb23"><code>ae54abf</code></a>
Updated README for rails/ruby compatibilty matrix</li>
<li><a
href="4f31487068"><code>4f31487</code></a>
Fixed race condition causing flaky tests. (XrXr)</li>
<li><a
href="dcdd882fbe"><code>dcdd882</code></a>
get rake dcov back to 100%</li>
<li><a
href="3a77687e8b"><code>3a77687</code></a>
+ Refactor setup hooks into a SETUP_METHODS constant. (MSP-Greg)</li>
<li><a
href="b5565c0c7a"><code>b5565c0</code></a>
- Remove check for .b method. (tenderlove)</li>
<li>See full diff in <a
href="https://github.com/seattlerb/minitest/compare/v5.16.3...v5.17.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-03 13:52:02 -06:00
dependabot[bot]
0782d79278 chore(deps-dev): Bump @types/node from 18.11.17 to 18.11.18 in /node (#191)
Bumps
[@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node)
from 18.11.17 to 18.11.18.
<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.17&new-version=18.11.18)](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-03 13:51:49 -06:00
dependabot[bot]
472ad42048 chore(deps-dev): Bump @types/jest from 29.2.4 to 29.2.5 in /node (#192)
Bumps
[@types/jest](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/jest)
from 29.2.4 to 29.2.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 compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=@types/jest&package-manager=npm_and_yarn&previous-version=29.2.4&new-version=29.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-01-03 13:51:38 -06:00
Steve Manuel
ed6110e6ec chore: add zig to graphic and readme support 2023-01-02 17:25:48 -07:00
dependabot[bot]
527bcdfbcf chore(deps): Bump json5 from 2.2.1 to 2.2.3 in /node (#194)
Bumps [json5](https://github.com/json5/json5) from 2.2.1 to 2.2.3.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/json5/json5/releases">json5's
releases</a>.</em></p>
<blockquote>
<h2>v2.2.3</h2>
<ul>
<li>Fix: json5@2.2.3 is now the 'latest' release according to npm
instead of v1.0.2. (<a
href="https://github-redirect.dependabot.com/json5/json5/issues/299">#299</a>)</li>
</ul>
<h2>v2.2.2</h2>
<ul>
<li>Fix: Properties with the name <code>__proto__</code> are added to
objects and arrays.
(<a
href="https://github-redirect.dependabot.com/json5/json5/issues/199">#199</a>)
This also fixes a prototype pollution vulnerability reported by
Jonathan Gregson! (<a
href="https://github-redirect.dependabot.com/json5/json5/issues/295">#295</a>).</li>
</ul>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/json5/json5/blob/main/CHANGELOG.md">json5's
changelog</a>.</em></p>
<blockquote>
<h3>v2.2.3 [<a
href="https://github.com/json5/json5/tree/v2.2.3">code</a>, <a
href="https://github.com/json5/json5/compare/v2.2.2...v2.2.3">diff</a>]</h3>
<ul>
<li>Fix: json5@2.2.3 is now the 'latest' release according to npm
instead of
v1.0.2. (<a
href="https://github-redirect.dependabot.com/json5/json5/issues/299">#299</a>)</li>
</ul>
<h3>v2.2.2 [<a
href="https://github.com/json5/json5/tree/v2.2.2">code</a>, <a
href="https://github.com/json5/json5/compare/v2.2.1...v2.2.2">diff</a>]</h3>
<ul>
<li>Fix: Properties with the name <code>__proto__</code> are added to
objects and arrays.
(<a
href="https://github-redirect.dependabot.com/json5/json5/issues/199">#199</a>)
This also fixes a prototype pollution vulnerability reported by
Jonathan Gregson! (<a
href="https://github-redirect.dependabot.com/json5/json5/issues/295">#295</a>).</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="c3a7524277"><code>c3a7524</code></a>
2.2.3</li>
<li><a
href="94fd06d82e"><code>94fd06d</code></a>
docs: update CHANGELOG for v2.2.3</li>
<li><a
href="3b8cebf0c4"><code>3b8cebf</code></a>
docs(security): use GitHub security advisories</li>
<li><a
href="f0fd9e194d"><code>f0fd9e1</code></a>
docs: publish a security policy</li>
<li><a
href="6a91a05fff"><code>6a91a05</code></a>
docs(template): bug -&gt; bug report</li>
<li><a
href="14f8cb186e"><code>14f8cb1</code></a>
2.2.2</li>
<li><a
href="10cc7ca916"><code>10cc7ca</code></a>
docs: update CHANGELOG for v2.2.2</li>
<li><a
href="7774c10979"><code>7774c10</code></a>
fix: add <strong>proto</strong> to objects and arrays</li>
<li><a
href="edde30abd8"><code>edde30a</code></a>
Readme: slight tweak to intro</li>
<li><a
href="97286f8bd5"><code>97286f8</code></a>
Improve example in readme</li>
<li>Additional commits viewable in <a
href="https://github.com/json5/json5/compare/v2.2.1...v2.2.3">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=json5&package-manager=npm_and_yarn&previous-version=2.2.1&new-version=2.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)
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-01-02 14:49:07 -08:00
dependabot[bot]
765a1c55d5 chore(deps): Bump json5 from 2.2.1 to 2.2.3 in /browser (#193)
Bumps [json5](https://github.com/json5/json5) from 2.2.1 to 2.2.3.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/json5/json5/releases">json5's
releases</a>.</em></p>
<blockquote>
<h2>v2.2.3</h2>
<ul>
<li>Fix: json5@2.2.3 is now the 'latest' release according to npm
instead of v1.0.2. (<a
href="https://github-redirect.dependabot.com/json5/json5/issues/299">#299</a>)</li>
</ul>
<h2>v2.2.2</h2>
<ul>
<li>Fix: Properties with the name <code>__proto__</code> are added to
objects and arrays.
(<a
href="https://github-redirect.dependabot.com/json5/json5/issues/199">#199</a>)
This also fixes a prototype pollution vulnerability reported by
Jonathan Gregson! (<a
href="https://github-redirect.dependabot.com/json5/json5/issues/295">#295</a>).</li>
</ul>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/json5/json5/blob/main/CHANGELOG.md">json5's
changelog</a>.</em></p>
<blockquote>
<h3>v2.2.3 [<a
href="https://github.com/json5/json5/tree/v2.2.3">code</a>, <a
href="https://github.com/json5/json5/compare/v2.2.2...v2.2.3">diff</a>]</h3>
<ul>
<li>Fix: json5@2.2.3 is now the 'latest' release according to npm
instead of
v1.0.2. (<a
href="https://github-redirect.dependabot.com/json5/json5/issues/299">#299</a>)</li>
</ul>
<h3>v2.2.2 [<a
href="https://github.com/json5/json5/tree/v2.2.2">code</a>, <a
href="https://github.com/json5/json5/compare/v2.2.1...v2.2.2">diff</a>]</h3>
<ul>
<li>Fix: Properties with the name <code>__proto__</code> are added to
objects and arrays.
(<a
href="https://github-redirect.dependabot.com/json5/json5/issues/199">#199</a>)
This also fixes a prototype pollution vulnerability reported by
Jonathan Gregson! (<a
href="https://github-redirect.dependabot.com/json5/json5/issues/295">#295</a>).</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="c3a7524277"><code>c3a7524</code></a>
2.2.3</li>
<li><a
href="94fd06d82e"><code>94fd06d</code></a>
docs: update CHANGELOG for v2.2.3</li>
<li><a
href="3b8cebf0c4"><code>3b8cebf</code></a>
docs(security): use GitHub security advisories</li>
<li><a
href="f0fd9e194d"><code>f0fd9e1</code></a>
docs: publish a security policy</li>
<li><a
href="6a91a05fff"><code>6a91a05</code></a>
docs(template): bug -&gt; bug report</li>
<li><a
href="14f8cb186e"><code>14f8cb1</code></a>
2.2.2</li>
<li><a
href="10cc7ca916"><code>10cc7ca</code></a>
docs: update CHANGELOG for v2.2.2</li>
<li><a
href="7774c10979"><code>7774c10</code></a>
fix: add <strong>proto</strong> to objects and arrays</li>
<li><a
href="edde30abd8"><code>edde30a</code></a>
Readme: slight tweak to intro</li>
<li><a
href="97286f8bd5"><code>97286f8</code></a>
Improve example in readme</li>
<li>Additional commits viewable in <a
href="https://github.com/json5/json5/compare/v2.2.1...v2.2.3">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=json5&package-manager=npm_and_yarn&previous-version=2.2.1&new-version=2.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)
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-01-02 14:48:52 -08:00
Doğu Us
6f534336f3 feat(zig-sdk): Create Zig Host Sdk (#186) 2023-01-02 15:30:34 -07:00
zach
5c9aa4c90a fix(elixir): use local Rust extism package from extism_nif for local development (#180) 2022-12-28 11:40:17 -06:00
dependabot[bot]
a98b39a10f chore(deps-dev): Bump @types/node from 18.11.13 to 18.11.17 in /node (#174)
Bumps
[@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node)
from 18.11.13 to 18.11.17.
<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.13&new-version=18.11.17)](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>
2022-12-24 23:07:01 -06:00
zach
8c2255eafa chore: update to wasmtime 4.0.0 (#181) 2022-12-22 10:43:49 -08:00
zach
094f51ba2b refactor(ocaml): Cleanup code, split out extism-manifest package, prepare to release with next runtime release (#182) 2022-12-22 10:43:24 -08:00
Steve Manuel
c2b1b78cc1 Update README.md 2022-12-20 14:35:53 -07:00
Thomas Darimont
322812ede2 refactor(java-sdk): Revise API usage (#177)
(cherry picked from commit 766090a1aa8340598c643ca01dded16b15c26ba5)
2022-12-19 17:48:45 -06:00
zach
9ccef562a9 ci: use glob for paths (#178) 2022-12-19 15:09:57 -08:00
Benjamin Eckel
bc2b044770 fix(java-sdk): Bad xml 2022-12-19 15:55:28 -06:00
Benjamin Eckel
374191f420 release(java-sdk): Bump version to 0.1.0 2022-12-19 15:39:12 -06:00
zach
ba69d9fcc8 chore: move each language to separate workflow (#176)
- Moves each language into a separate workflow
- Only runs CI for languages when they're changed (or when the runtime
is changed)
2022-12-19 12:38:50 -08:00
Benjamin Eckel
6cbde1acfc docs(java-sdk): Update readme (#175) 2022-12-19 11:42:08 -06:00
Benjamin Eckel
f34fa8bed2 feat(java-sdk): Create Java Host SDK (#122)
Closes #117

Signed-off-by: Thomas Darimont <thomas.darimont@googlemail.com>
Co-authored-by: Thomas Darimont <thomas.darimont@googlemail.com>
2022-12-19 10:55:40 -06:00
zach
dd0c5757da chore: update OCaml version to latest release (#171) 2022-12-16 11:19:19 -08:00
zach
34feb4b942 fix(haskell): update encoding of Extism.Manifest.HTTPRequest (#170) 2022-12-15 17:44:22 -08:00
zach
34b5942dd5 fix: use timeouts for language-specific runtime initialization/finalization calls (#169)
After adding the timer code plugins written in Haskell fail with a
timeout when trying to call `hs_init` - this PR fixes the runtime
initialization and updates those functions to respect the configured
timeout.
2022-12-15 16:43:19 -08:00
Benjamin Eckel
d681dcd9f1 chore(dotnet-sdk): Update Sample file, use the one from the docs (#164) 2022-12-15 14:52:53 -08:00
zach
4622f32a69 feat: add timeout_ms field to SDKs (#165) 2022-12-14 17:48:05 -08:00
zach
0c4b985ed7 feat: Add option to set timeout for plugin (#163)
- Adds `Manifest::timeout_ms` field to specify the plugin timeout in
milliseconds
- Sets a 30 second default timeout

Co-authored-by: Steve Manuel <steve@dylib.so>
2022-12-13 15:58:52 -08:00
Steve Manuel
5dfe7162b4 chore: include .net in readme list of sdk support 2022-12-13 12:35:28 -05:00
Steve Manuel
e0f8e54504 chore: update readme language support graphic 2022-12-13 12:33:21 -05:00
Benjamin Eckel
a236e59d3c docs: Add link to Haskell PDK instructions (#162) 2022-12-13 10:28:11 -06:00
dependabot[bot]
77c1d55791 chore(deps-dev): Bump @types/jest from 29.2.3 to 29.2.4 in /node (#155)
Bumps
[@types/jest](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/jest)
from 29.2.3 to 29.2.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 compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=@types/jest&package-manager=npm_and_yarn&previous-version=29.2.3&new-version=29.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)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-12-13 11:15:54 -05:00
Benjamin Eckel
ab36decbe7 fix(dotnet-sdk): Missed native version bump 2022-12-12 16:47:10 -06:00
Benjamin Eckel
0343bbbefe chore(dotnet-sdk): Release 0.2.0 (#161) 2022-12-12 16:42:53 -06:00
Benjamin Eckel
95ccafb02b ci(dotnet-sdk): Package dotnet lib with native dll (#152)
Fix release for native windows nuget package
2022-12-12 11:08:10 -06:00
Benjamin Eckel
c8308c3cdf docs(dotnet-sdk): RC-2 version to test 2022-12-12 11:06:54 -06:00
dependabot[bot]
aedb5b9c24 chore(deps-dev): Bump typedoc from 0.23.21 to 0.23.22 in /node (#156)
[//]: # (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 [typedoc](https://github.com/TypeStrong/TypeDoc) from 0.23.21 to
0.23.22.
<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.22</h2>
<h3>Features</h3>
<ul>
<li>Add support for defining the kind sort order, <a
href="https://github-redirect.dependabot.com/TypeStrong/TypeDoc/issues/2109">#2109</a>.</li>
</ul>
<h3>Bug Fixes</h3>
<ul>
<li>Normalize all file paths on Windows, <a
href="https://github-redirect.dependabot.com/TypeStrong/TypeDoc/issues/2113">#2113</a>.</li>
<li>Fix <code>@link</code> tags within lists, <a
href="https://github-redirect.dependabot.com/TypeStrong/TypeDoc/issues/2103">#2103</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.22 (2022-12-11)</h2>
<h3>Features</h3>
<ul>
<li>Add support for defining the kind sort order, <a
href="https://github-redirect.dependabot.com/TypeStrong/TypeDoc/issues/2109">#2109</a>.</li>
</ul>
<h3>Bug Fixes</h3>
<ul>
<li>Normalize all file paths on Windows, <a
href="https://github-redirect.dependabot.com/TypeStrong/TypeDoc/issues/2113">#2113</a>.</li>
<li>Fix <code>@link</code> tags within lists, <a
href="https://github-redirect.dependabot.com/TypeStrong/TypeDoc/issues/2103">#2103</a>.</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="ff5cb55a08"><code>ff5cb55</code></a>
Update changelog for release</li>
<li><a
href="678bf5e4dd"><code>678bf5e</code></a>
Bump version to 0.23.22</li>
<li><a
href="84c26e65d8"><code>84c26e6</code></a>
Fix <code>@link</code> tags within lists</li>
<li><a
href="5edf2290e7"><code>5edf229</code></a>
Add support for defining the kind sort order</li>
<li><a
href="36c95c0432"><code>36c95c0</code></a>
Normalize all paths on Windows</li>
<li>See full diff in <a
href="https://github.com/TypeStrong/TypeDoc/compare/v0.23.21...v0.23.22">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.21&new-version=0.23.22)](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>
2022-12-12 10:38:07 -06:00
dependabot[bot]
f34cc8f6ca chore(deps-dev): Bump typescript from 4.9.3 to 4.9.4 in /node (#157)
Bumps [typescript](https://github.com/Microsoft/TypeScript) from 4.9.3
to 4.9.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 4.9.4</h2>
<p>For release notes, check out the <a
href="https://devblogs.microsoft.com/typescript/announcing-typescript-4-9">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+4.9.4%22+is%3Aclosed+">fixed
issues query for Typescript v4.9.4</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>Changes:</h2>
<ul>
<li>e2868216f637e875a74c675845625eb15dcfe9a2 Bump version to 4.9.4 and
LKG.</li>
<li>eb5419fc8d980859b98553586dfb5f40d811a745 Cherry-pick <a
href="https://github-redirect.dependabot.com/Microsoft/TypeScript/issues/51704">#51704</a>
to release 4.9 (<a
href="https://github-redirect.dependabot.com/Microsoft/TypeScript/issues/51712">#51712</a>)</li>
<li>b4d382b9b12460adf2da4cc0d1429cf19f8dc8be Cherry-pick changes for
narrowing to tagged literal types.</li>
<li>e7a02f43fce47e1a39259ada5460bcc33c8e98b5 Port of <a
href="https://github-redirect.dependabot.com/Microsoft/TypeScript/issues/51626">#51626</a>
and <a
href="https://github-redirect.dependabot.com/Microsoft/TypeScript/issues/51689">#51689</a>
to release-4.9 (<a
href="https://github-redirect.dependabot.com/Microsoft/TypeScript/issues/51627">#51627</a>)</li>
<li>1727912f0437a7f367d90040fc4b0b4f3efd017a Cherry-pick fix around
<code>visitEachChild</code> to release-4.9. (<a
href="https://github-redirect.dependabot.com/Microsoft/TypeScript/issues/51544">#51544</a>)</li>
</ul>
<p>This list of changes was <a
href="https://typescript.visualstudio.com/cf7ac146-d525-443c-b23c-0d58337efebc/_release?releaseId=117&amp;_a=release-summary">auto
generated</a>.</p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="e2868216f6"><code>e286821</code></a>
Bump version to 4.9.4 and LKG.</li>
<li><a
href="eb5419fc8d"><code>eb5419f</code></a>
Cherry-pick <a
href="https://github-redirect.dependabot.com/Microsoft/TypeScript/issues/51704">#51704</a>
to release 4.9 (<a
href="https://github-redirect.dependabot.com/Microsoft/TypeScript/issues/51712">#51712</a>)</li>
<li><a
href="b4d382b9b1"><code>b4d382b</code></a>
Cherry-pick changes for narrowing to tagged literal types.</li>
<li><a
href="e7a02f43fc"><code>e7a02f4</code></a>
Port of <a
href="https://github-redirect.dependabot.com/Microsoft/TypeScript/issues/51626">#51626</a>
and <a
href="https://github-redirect.dependabot.com/Microsoft/TypeScript/issues/51689">#51689</a>
to release-4.9 (<a
href="https://github-redirect.dependabot.com/Microsoft/TypeScript/issues/51627">#51627</a>)</li>
<li><a
href="1727912f04"><code>1727912</code></a>
Cherry-pick fix around <code>visitEachChild</code> to release-4.9. (<a
href="https://github-redirect.dependabot.com/Microsoft/TypeScript/issues/51544">#51544</a>)</li>
<li>See full diff in <a
href="https://github.com/Microsoft/TypeScript/compare/v4.9.3...v4.9.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.3&new-version=4.9.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>
2022-12-12 10:37:45 -06:00
dependabot[bot]
dc2d015573 chore(deps-dev): Bump @types/node from 18.11.10 to 18.11.13 in /node (#158)
[//]: # (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 18.11.10 to 18.11.13.
<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.10&new-version=18.11.13)](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>
2022-12-12 10:37:26 -06:00
dependabot[bot]
6a7b595c08 chore(deps-dev): Bump prettier from 2.8.0 to 2.8.1 in /node (#159)
Bumps [prettier](https://github.com/prettier/prettier) from 2.8.0 to
2.8.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>2.8.1</h2>
<p>🔗 <a
href="https://github.com/prettier/prettier/blob/main/CHANGELOG.md#281">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.1</h1>
<p><a
href="https://github.com/prettier/prettier/compare/2.8.0...2.8.1">diff</a></p>
<h4>Fix SCSS map in arguments (<a
href="https://github-redirect.dependabot.com/prettier/prettier/pull/9184">#9184</a>
by <a
href="https://github.com/agamkrbit"><code>@​agamkrbit</code></a>)</h4>
<!-- raw HTML omitted -->
<pre lang="scss"><code>// Input
$display-breakpoints: map-deep-merge(
  (
    &quot;print-only&quot;: &quot;only print&quot;,
    &quot;screen-only&quot;: &quot;only screen&quot;,
&quot;xs-only&quot;: &quot;only screen and (max-width:
#{map-get($grid-breakpoints, &quot;sm&quot;)-1})&quot;,
  ),
  $display-breakpoints
);
<p>// Prettier 2.8.0
$display-breakpoints: map-deep-merge(
(
&quot;print-only&quot;: &quot;only print&quot;,
&quot;screen-only&quot;: &quot;only screen&quot;,
&quot;xs-only&quot;: &quot;only screen and (max-width:
#{map-get($grid-breakpoints, &quot; sm
&quot;)-1})&quot;,
),
$display-breakpoints
);</p>
<p>// Prettier 2.8.1
$display-breakpoints: map-deep-merge(
(
&quot;print-only&quot;: &quot;only print&quot;,
&quot;screen-only&quot;: &quot;only screen&quot;,
&quot;xs-only&quot;: &quot;only screen and (max-width:
#{map-get($grid-breakpoints, &quot;sm&quot;)-1})&quot;,
),
$display-breakpoints
);
</code></pre></p>
<h4>Support auto accessors syntax (<a
href="https://github-redirect.dependabot.com/prettier/prettier/pull/13919">#13919</a>
by <a
href="https://github.com/sosukesuzuki"><code>@​sosukesuzuki</code></a>)</h4>
<p>Support for <a
href="https://devblogs.microsoft.com/typescript/announcing-typescript-4-9/#auto-accessors-in-classes">Auto
Accessors Syntax</a> landed in TypeScript 4.9.</p>
<p>(Doesn't work well with <code>babel-ts</code> parser)</p>
<!-- raw HTML omitted -->
<pre lang="tsx"><code>class Foo {
  accessor foo: number = 3;
&lt;/tr&gt;&lt;/table&gt; 
</code></pre>
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="cd1df1a184"><code>cd1df1a</code></a>
Release 2.8.1</li>
<li><a
href="5541a63d76"><code>5541a63</code></a>
Remove version validation</li>
<li><a
href="1cf760a184"><code>1cf760a</code></a>
Support decorator auto accessors syntax (<a
href="https://github-redirect.dependabot.com/prettier/prettier/issues/13919">#13919</a>)</li>
<li><a
href="aa34209820"><code>aa34209</code></a>
test: format instantiation expr in logical expr (<a
href="https://github-redirect.dependabot.com/prettier/prettier/issues/13897">#13897</a>)</li>
<li><a
href="957b4f20e8"><code>957b4f2</code></a>
Build(deps): Bump decode-uri-component from 0.2.0 to 0.2.2 in /website
(<a
href="https://github-redirect.dependabot.com/prettier/prettier/issues/13933">#13933</a>)</li>
<li><a
href="e4240aeaf0"><code>e4240ae</code></a>
Add tests for keyword class property (<a
href="https://github-redirect.dependabot.com/prettier/prettier/issues/13927">#13927</a>)</li>
<li><a
href="655a161d0f"><code>655a161</code></a>
Add tests for multiple comments (<a
href="https://github-redirect.dependabot.com/prettier/prettier/issues/13890">#13890</a>)</li>
<li><a
href="4a1e32a9de"><code>4a1e32a</code></a>
Fixed scss function arguments on different lines in maps <a
href="https://github-redirect.dependabot.com/prettier/prettier/issues/9128">#9128</a>
(<a
href="https://github-redirect.dependabot.com/prettier/prettier/issues/9184">#9184</a>)</li>
<li><a
href="38806fe666"><code>38806fe</code></a>
Migrate from probot/no-response to lee-dohm/no-response (<a
href="https://github-redirect.dependabot.com/prettier/prettier/issues/13891">#13891</a>)</li>
<li><a
href="a60bee2e2d"><code>a60bee2</code></a>
Add '--single-attribute-per-line' option to Playground (<a
href="https://github-redirect.dependabot.com/prettier/prettier/issues/13587">#13587</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/prettier/prettier/compare/2.8.0...2.8.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=2.8.0&new-version=2.8.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>
2022-12-12 10:37:04 -06:00
zach
a68823e71c fix: remove old/duplicate Haskell runtime initialization code (#154) 2022-12-10 20:10:34 -08:00
zach
9a1d99a6e7 fix: order of arguments to Func::new 2022-12-09 19:39:15 -08:00
zach
f2a9851867 fix: order of arguments to Function::new 2022-12-09 19:35:15 -08:00
zach
124787127c feat: Add ability to register host functions with the runtime from the Rust SDK (#148)
- Adds the ability to initialize plugins with additional functions
created by the host (only supported by the Rust SDK right now)
- Adds `PluginBuilder` to the Rust SDK to make it easier to configure all the options

## Hello, world

The following example uses `println` from the host to print to stdout
from inside the plugin.

Host:
```rust
use extism::*;

fn main() -> Result<(), Error> {
    let context = Context::new();
    let manifest = Manifest::new([std::path::PathBuf::from("code.wasm")]);
    let say_hello = Function::new("say_hello", [ValType::I64], [], |caller, input, _out| {
        let internal = caller.data();
        let r = internal.memory().get_str(input[0].unwrap_i64() as usize)?;
        println!("Hello, {r}!");
        Ok(())
    });
    let mut plugin = PluginBuilder::new(manifest)
        .with_function(say_hello)
        .with_wasi(true)
        .build(&context)?;
    plugin.call("test", b"world").unwrap();
    Ok(())
}
```

Plugin:
```rust
use extism_pdk::*;

extern "C" {
    fn say_hello(offs: u64);
}

#[plugin_fn]
pub fn test(input: String) -> FnResult<()> {
    let memory = Memory::from_bytes(&input);
    unsafe {
        say_hello(memory.offset);
    }
    Ok(())
}

```
2022-12-09 16:08:50 -08:00
Muhammad Azeez
c3ffb25891 feat: Implement .NET Host SDK (#119)
I am working on a .NET host for extism. My plan is to do the following:
 - [x] Implement a proof of concept to make sure things are possible
- [x] Write docs for the C# API so that the users get a nice IDE
experience
 - [x] Create a github action to publish the NuGet packages
    - [x] Edit `ci.yml` to include .NET Sdk
- [x] Create `release-dotnet.yml` to release `Extism.Sdk` nuget package
- [x] Maybe Create `release-dotnet-native.yml` to release
`Extism.runtime.win` nuget package
 - [x] Test on Linux (Help needed)
 - [x] Test on Mac (Help needed)
 - [x] Expose all of the Extism functions
 - [x] Write automated tests
- [x] ~Edit README show that the there is a .NET SDK~. Probably we
should not do this until we have a docs page.
 - [x] ~Use the `Extism.runtime.win-x64` package in the sample project~

Out of scope for this PR:
 - Json Serialization/Desererialization support

Co-authored-by: Alistair Evans <alistairjevans@gmail.com>
Co-authored-by: Benjamin Eckel <bhelx@simst.im>
Co-authored-by: Benjamin Eckel <bhelx@users.noreply.github.com>
2022-12-08 12:42:27 -06:00
zach
e473d2cb7e refactor(haskell): cleanup haskell SDK to prepare for release (#138)
- Switches from `stack` to `cabal`
- Cleanup SDK code
- Adds release action (still waiting on Hackage upload approval)

Co-authored-by: Steve Manuel <steve@dylib.so>
2022-12-08 10:07:56 -08:00
zach
5a5b538855 fix(ci): don’t install Python dev dependencies on CI (#149) 2022-12-07 18:45:50 -08:00
zach
acb06b9898 feat: Add support for allowed_paths manifest key in SDKs (#144)
The Haskell SDK is updated here:
https://github.com/extism/extism/pull/138
2022-12-07 07:52:23 -08:00
zach
1973024816 fix: disallow all hosts if allowed_hosts is empty (#143) 2022-12-06 08:29:08 -08:00
zach
d4febd7228 fix: use Dir::open_ambient_dir instead of Dir::from_std_file (#140)
`Dir::from_std_file` works on Linux, but does not work as expected on
Windows
2022-12-06 08:28:51 -08:00
zach
bb2697193a feat: add allowed_paths to specify preopened directories in WASI (#137)
Adds ability to make local files available to plugins. Using the Rust
SDK:

```rust
let wasm = include_bytes!("code.wasm");
let mut context = Context::new();
let manifest = Manifest::new(vec![Wasm::data(wasm)]).with_allowed_path("/path/on/disk", "/plugin/path");
let plugin = Plugin::new_with_manifest(&mut context, &manifest, false)?;
...
```
2022-12-05 18:01:25 -08:00
zach
fee7348cee fix: Reinstantiate after call to _start (#135)
After a closer reading of:
https://github.com/WebAssembly/WASI/blob/main/legacy/application-abi.md
it looks likes `_start` is expected to be called at most once. This PR
automatically reinstantiates a plugin after a call to `_start` so it can
be used again.

CI caught a bug with the `extism_version` output which is fixed here:
https://github.com/extism/extism/pull/139
2022-12-05 16:18:30 -08:00
zach
9cf54d5f1f feat: Improve usability of manifest types (#124)
- Adds some helper functions for creating a manifest, mostly helpful for
the Rust SDK
- Renames `ManifestWasm` to `Wasm`
- Renames `ManifestMemory` to `MemoryOptions`
- `ManifestWasm` and `ManifestMemory` have been marked as deprecated
- Adds an alias from `MemoryOptions::max_pages` to `MemoryOptions::max`
in serde specification

Co-authored-by: Steve Manuel <steve@dylib.so>
2022-12-05 15:09:50 -08:00
zach
a3c6b9ee6a fix: add null byte to end of version string (#139) 2022-12-05 14:38:11 -08:00
dependabot[bot]
732b886fd5 chore(deps-dev): Bump @types/node from 18.11.9 to 18.11.10 in /node (#130)
Bumps
[@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node)
from 18.11.9 to 18.11.10.
<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.9&new-version=18.11.10)](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>
2022-12-04 19:53:46 -06:00
dependabot[bot]
bd8ca71275 chore(deps-dev): Bump @types/ffi-napi from 4.0.6 to 4.0.7 in /node (#131)
Bumps
[@types/ffi-napi](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/ffi-napi)
from 4.0.6 to 4.0.7.
<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.6&new-version=4.0.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>
2022-12-04 19:53:36 -06:00
zach
37ee7d67b6 fix: update crate name to extism_runtime in logging registration function (#123)
This bug exists because we didn't change the crate name in the logging
registration function, so all of our logs from `extism_runtime` were
being filtered out.
2022-12-02 14:04:54 -08:00
Steve Manuel
6b5f7999b7 fix: removes the stdout print of extism.h in php sdk (#112) 2022-11-30 16:30:06 -08:00
Benjamin Eckel
de24fffc7c fix(elixir-sdk): remove compiled nif from package, update readme (#111) 2022-11-30 16:38:51 -06:00
Benjamin Eckel
37b8e5bd12 release: v0.1.0 (#110) 2022-11-30 14:52:46 -06:00
Benjamin Eckel
c6b8429c67 chore: Add Makefile for browser runtime (#103)
I accidentally published without building. this should help make sure
releases are valid
2022-11-30 13:20:23 -06:00
Benjamin Eckel
ad114f44d2 fix(ruby-sdk): Add FFI gem as dependency (#106) 2022-11-30 13:19:54 -06:00
Benjamin Eckel
45180ad473 docs(node-sdk): Fix example to use CJS imports (#107) 2022-11-30 13:19:45 -06:00
Benjamin Eckel
9546dac689 docs(elixir-sdk): Reduce elixir min version (#108)
I've tested it in at least as low as 1.12. It just prints out a warning
so should be fine if someone wants to use it on an older version.
2022-11-30 13:19:28 -06:00
zach
197e934258 Fix elixir bindings (#109) 2022-11-30 10:42:43 -08:00
Benjamin Eckel
339556597b chore(python-sdk): Put placeholder readme in python dir (#104) 2022-11-29 12:39:01 -06:00
Benjamin Eckel
64927d9bcd fix(rust-sdk): Fix dep versions (#102) 2022-11-29 12:17:49 -06:00
Benjamin Eckel
86f1117ad5 chore: Fix bad publish, bump to 0.0.2 2022-11-29 11:52:55 -06:00
Benjamin Eckel
34be80a7ad chore: Fix elixir release workflow (#77) 2022-11-29 11:47:30 -06:00
Benjamin Eckel
3e6a0071e9 fix: Fix the release action (#101) 2022-11-29 10:33:26 -06:00
Benjamin Eckel
d17b693c4b release: Bump to 0.0.1 (#97) 2022-11-29 09:48:40 -06:00
zach
18fceec8f8 Cleanup Haskell SDK, split out manifest sublibrary (#99) 2022-11-28 21:03:13 -08:00
Benjamin Eckel
f5cf4f184e chore: fix ruby release publish (#78) 2022-11-28 19:31:26 -06:00
Steve Manuel
821661d391 fix: resolve php sdk issues (#95) 2022-11-28 18:04:27 -07:00
zach
f28e01125e Updates for wasmtime/wasmtime-wasi/wasmtime-wasi-nn, basic support for calling _start functions (#94)
- Updates codebase to use the latest version of wasmtime, wasmtime-wasi
and wasmtime-wasi-nn
- Allows functions with no return values to be called, this provides
basic support for `_start` functions
- For now `_start` functions called by extism still need to use the
extism input/output functions instead of the command line arguments
2022-11-28 14:08:52 -08:00
dependabot[bot]
c0faa53df5 chore(deps-dev): bump prettier from 2.7.1 to 2.8.0 in /node (#90)
Bumps [prettier](https://github.com/prettier/prettier) from 2.7.1 to
2.8.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>2.8.0</h2>
<p><a
href="https://github.com/prettier/prettier/compare/2.7.1...2.8.0">diff</a></p>
<p>🔗 <a href="https://prettier.io/blog/2022/11/23/2.8.0.html">Release
note</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.0</h1>
<p><a
href="https://github.com/prettier/prettier/compare/2.7.1...2.8.0">diff</a></p>
<p>🔗 <a href="https://prettier.io/blog/2022/11/23/2.8.0.html">Release
Notes</a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="dcc0623911"><code>dcc0623</code></a>
Release 2.8.0</li>
<li><a
href="7f7498109b"><code>7f74981</code></a>
Remove version validattion temp</li>
<li><a
href="876c297589"><code>876c297</code></a>
Update changelog for <code>satisfies</code> (<a
href="https://github-redirect.dependabot.com/prettier/prettier/issues/13879">#13879</a>)</li>
<li><a
href="fd376000e9"><code>fd37600</code></a>
Update <code>@typescript-eslint/typescript-estree</code> to support
<code>satisfies</code> (<a
href="https://github-redirect.dependabot.com/prettier/prettier/issues/13872">#13872</a>)</li>
<li><a
href="fac87619a4"><code>fac8761</code></a>
Build(deps): Bump minimatch from 3.0.4 to 3.1.2 in /scripts/release (<a
href="https://github-redirect.dependabot.com/prettier/prettier/issues/13854">#13854</a>)</li>
<li><a
href="68ea881498"><code>68ea881</code></a>
Update typescript to v4.9 (<a
href="https://github-redirect.dependabot.com/prettier/prettier/issues/13852">#13852</a>)</li>
<li><a
href="5e0b88329e"><code>5e0b883</code></a>
Fix generate truncate comment (backport <a
href="https://github-redirect.dependabot.com/prettier/prettier/issues/13437">#13437</a>)
(<a
href="https://github-redirect.dependabot.com/prettier/prettier/issues/13814">#13814</a>)</li>
<li><a
href="a980caa7db"><code>a980caa</code></a>
Add missing changelog for <a
href="https://github-redirect.dependabot.com/prettier/prettier/issues/13016">#13016</a>
(<a
href="https://github-redirect.dependabot.com/prettier/prettier/issues/13812">#13812</a>)</li>
<li><a
href="520dbcd36e"><code>520dbcd</code></a>
Add changelog for <a
href="https://github-redirect.dependabot.com/prettier/prettier/issues/13783">#13783</a>
(<a
href="https://github-redirect.dependabot.com/prettier/prettier/issues/13811">#13811</a>)</li>
<li><a
href="ae4d85ab3c"><code>ae4d85a</code></a>
Update description of <code>vueIndentScriptAndStyle</code> option (<a
href="https://github-redirect.dependabot.com/prettier/prettier/issues/13781">#13781</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/prettier/prettier/compare/2.7.1...2.8.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.7.1&new-version=2.8.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>
2022-11-27 19:46:47 -06:00
dependabot[bot]
be7961bbf6 chore(deps-dev): bump ex_doc from 0.29.0 to 0.29.1 in /elixir (#89)
Bumps [ex_doc](https://github.com/elixir-lang/ex_doc) from 0.29.0 to
0.29.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.29.1 (2022-11-21)</h2>
<ul>
<li>
<p>Enhancements</p>
<ul>
<li>Add optional function annotations</li>
<li>Support media print on stylesheets</li>
<li>Add download ePub link to footer</li>
<li>Support extras for Erlang</li>
<li>Add tooltip to functions on sidebar</li>
<li>Disable spellcheck and autocorrect on search input</li>
</ul>
</li>
<li>
<p>Bug fix</p>
<ul>
<li>Special handle functions called <code>record/*</code> in Erlang</li>
</ul>
</li>
<li>
<p>Deprecations</p>
<ul>
<li>Rename <code>:groups_for_functions</code> to
<code>:groups_for_docs</code></li>
</ul>
</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="1439375934"><code>1439375</code></a>
Release v0.29.1</li>
<li><a
href="e4ae7ce037"><code>e4ae7ce</code></a>
Rename groups_for_functions as groups_for_docs</li>
<li><a
href="b17fcd278a"><code>b17fcd2</code></a>
Add optional function annotations (<a
href="https://github-redirect.dependabot.com/elixir-lang/ex_doc/issues/1627">#1627</a>)</li>
<li><a
href="69a74c029c"><code>69a74c0</code></a>
Firefox H2 print rendering fix (<a
href="https://github-redirect.dependabot.com/elixir-lang/ex_doc/issues/1630">#1630</a>)</li>
<li><a
href="623ac03fea"><code>623ac03</code></a>
mix format</li>
<li><a
href="a9284d50e3"><code>a9284d5</code></a>
Consistenly use <strong>doc</strong> for metadata</li>
<li><a
href="a4ea93cf26"><code>a4ea93c</code></a>
Rename internal nodes for consistency</li>
<li><a
href="5a0aa08550"><code>5a0aa08</code></a>
Simplify handling of empty nodes in module summary</li>
<li><a
href="148ad54a6d"><code>148ad54</code></a>
Use v1.13 formatting rules</li>
<li><a
href="4b05286003"><code>4b05286</code></a>
mix format</li>
<li>Additional commits viewable in <a
href="https://github.com/elixir-lang/ex_doc/compare/v0.29.0...v0.29.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.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>
2022-11-27 19:46:38 -06:00
Benjamin Eckel
4af4f7c41a fix(php-sdk): fix the composer file (#88)
Need to include new Context file
2022-11-22 16:51:19 -06:00
Benjamin Eckel
0003246ff7 chore: release browser version rc.13 2022-11-21 16:04:21 -06:00
Benjamin Eckel
886e01b959 Merge branch 'main' of github.com:extism/extism 2022-11-21 16:03:05 -06:00
Benjamin Eckel
b30bcc3601 chore: release browser version rc.11 2022-11-21 16:02:25 -06:00
zach
b57d54e63e feat: add var/config functions, merge ExtismPlugin and ExtismPluginCall (#87)
This also only instantiates the module once and combines `ExtismPlugin`
with `ExtismPluginCall`, I can pull out just the new function
implementations if that's an issue.
2022-11-21 13:34:27 -08:00
dependabot[bot]
ba2516650d chore(deps-dev): bump typedoc from 0.23.20 to 0.23.21 in /node (#86)
Bumps [typedoc](https://github.com/TypeStrong/TypeDoc) from 0.23.20 to
0.23.21.
<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.21</h2>
<h3>Features</h3>
<ul>
<li>Added support for a catch-all wildcard in
<code>externalSymbolLinkMappings</code>, <a
href="https://github-redirect.dependabot.com/TypeStrong/TypeDoc/issues/2102">#2102</a>.</li>
<li>Added support for TypeScript 4.9.</li>
</ul>
<h3>Thanks!</h3>
<ul>
<li><a
href="https://github.com/mistic100"><code>@​mistic100</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.21 (2022-11-14)</h2>
<h3>Features</h3>
<ul>
<li>Added support for a catch-all wildcard in
<code>externalSymbolLinkMappings</code>, <a
href="https://github-redirect.dependabot.com/TypeStrong/TypeDoc/issues/2102">#2102</a>.</li>
<li>Added support for TypeScript 4.9.</li>
</ul>
<h3>Thanks!</h3>
<ul>
<li><a
href="https://github.com/mistic100"><code>@​mistic100</code></a></li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="8a3e195d38"><code>8a3e195</code></a>
Update changelog for release</li>
<li><a
href="530eab35be"><code>530eab3</code></a>
Bump version to 0.23.21</li>
<li><a
href="893c86c6a8"><code>893c86c</code></a>
Fix lint</li>
<li><a
href="38fe129856"><code>38fe129</code></a>
CI fix?</li>
<li><a
href="9b62e0ce6e"><code>9b62e0c</code></a>
Add support for TS 4.9</li>
<li><a
href="8e190487b1"><code>8e19048</code></a>
Tweak changelog notes</li>
<li><a
href="0ba5af5204"><code>0ba5af5</code></a>
Merge pull request <a
href="https://github-redirect.dependabot.com/TypeStrong/TypeDoc/issues/2102">#2102</a>
from mistic100/external-wildcard</li>
<li><a
href="4b0a9b0a90"><code>4b0a9b0</code></a>
Fix <a
href="https://github-redirect.dependabot.com/TypeStrong/TypeDoc/issues/2101">#2101</a>
support externalSymbolLinkMappings wildcard</li>
<li><a
href="1ab233b1cf"><code>1ab233b</code></a>
reg-suit begone! -300 dev dependencies</li>
<li><a
href="ab51894154"><code>ab51894</code></a>
Clean up some unnecessary any</li>
<li>Additional commits viewable in <a
href="https://github.com/TypeStrong/TypeDoc/compare/v0.23.20...v0.23.21">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.20&new-version=0.23.21)](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>
2022-11-21 10:01:14 -06:00
dependabot[bot]
97b4582aa4 chore(deps-dev): bump typescript from 4.8.4 to 4.9.3 in /node (#85)
Bumps [typescript](https://github.com/Microsoft/TypeScript) from 4.8.4
to 4.9.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 4.9</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>93bd577458d55cd720b2677705feab5c91eb12ce Bump version to 4.9.3 and
LKG.</li>
<li>107f832b80df2dc97748021cb00af2b6813db75b Update LKG.</li>
<li>31bee5682df130a14ffdd5742f994dbe7313dd0e Cherry-pick PR <a
href="https://github-redirect.dependabot.com/Microsoft/TypeScript/issues/50977">#50977</a>
into release-4.9 (<a
href="https://github-redirect.dependabot.com/Microsoft/TypeScript/issues/51363">#51363</a>)
[ <a
href="https://github-redirect.dependabot.com/Microsoft/TypeScript/issues/50872">#50872</a>
]</li>
<li>1e2fa7ae15f8530910fef8b916ec8a4ed0b59c45 Update version to 4.9.2-rc
and LKG.</li>
<li>7ab89e5c6e401d161f31f28a6c555a3ba530910e Merge remote-tracking
branch 'origin/main' into release-4.9</li>
<li>e5cd686defb1a4cbdb36bd012357ba5bed28f371 Update
package-lock.json</li>
<li>8d40dc15d1b9945837e7860320fdccfe27c40cad Update
package-lock.json</li>
<li>5cfb3a2fe344a5350734305193e6cc99516285ca Only call return() for an
abrupt completion in user code (<a
href="https://github-redirect.dependabot.com/Microsoft/TypeScript/issues/51297">#51297</a>)</li>
<li>a7a9d158e817fcb0e94dc1c24e0a401b21be0cc9 Fix for broken baseline in
yieldInForInInDownlevelGenerator (<a
href="https://github-redirect.dependabot.com/Microsoft/TypeScript/issues/51345">#51345</a>)</li>
<li>7f8426f4df0d0a7dd8b72079dafc3e60164a23b1 fix for-in enumeration
containing yield in generator (<a
href="https://github-redirect.dependabot.com/Microsoft/TypeScript/issues/51295">#51295</a>)</li>
</ul>
<!-- raw HTML omitted -->
<ul>
<li>3d2b4017eb6b9a2b94bc673291e56ae95e8beddd Fix assertion functions
accessed via wildcard imports (<a
href="https://github-redirect.dependabot.com/Microsoft/TypeScript/issues/51324">#51324</a>)</li>
<li>64d0d5ae140b7b26a09e75114517b418d6bcaa9f fix(51301): Fixing an
unused import at the end of a line removes the newline (<a
href="https://github-redirect.dependabot.com/Microsoft/TypeScript/issues/51320">#51320</a>)</li>
<li>754eeb2986bde30d5926e0fa99c87dda9266d01b Update CodeQL workflow and
configuration, fix found bugs (<a
href="https://github-redirect.dependabot.com/Microsoft/TypeScript/issues/51263">#51263</a>)</li>
<li>d8aad262006ad2d2c91aa7a0e4449b4b83c57f7b Update
package-lock.json</li>
<li>d4f26c840b1db76c0b25a405c8e73830a2b45cbc fix(51245): Class with
parameter decorator in arrow function causes &quot;convert to default
export&quot; refactoring failure (<a
href="https://github-redirect.dependabot.com/Microsoft/TypeScript/issues/51256">#51256</a>)</li>
<li>16faf45682173ea437a50330feb4785578923d7f Update
package-lock.json</li>
<li>8b1ecdb701e2a2e19e9f8bcdd6b2beac087eabee fix(50654): &quot;Move to a
new file&quot; breaks the declaration of referenced variable (<a
href="https://github-redirect.dependabot.com/Microsoft/TypeScript/issues/50681">#50681</a>)</li>
<li>170a17fad57eae619c5ef2b7bdb3ac00d6c32c47 Dom update 2022-10-25 (<a
href="https://github-redirect.dependabot.com/Microsoft/TypeScript/issues/51300">#51300</a>)</li>
<li>9c4e14d75174432f6a4dc5967a09712a6784ab88 Remove &quot;No type
information for this code&quot; from baseline (<a
href="https://github-redirect.dependabot.com/Microsoft/TypeScript/issues/51311">#51311</a>)</li>
<li>88d25b4f232929df59729156dfda6b65277affec fix(50068): Refactors
trigger debug failure when JSX text has a ' and a tag on the same line.
(<a
href="https://github-redirect.dependabot.com/Microsoft/TypeScript/issues/51299">#51299</a>)</li>
<li>8bee69acf410d4986cb0cc102b949e2d133d5380 Update
package-lock.json</li>
<li>702de1eeaaef88a189e4d06e5a2aae287853790a Fix early call to
return/throw on generator (<a
href="https://github-redirect.dependabot.com/Microsoft/TypeScript/issues/51294">#51294</a>)</li>
<li>2c12b1499908ad7718e65d20e264561207c22375 Add a GH Action to file a
new issue if we go a week without seeing a typescript-error-deltas issue
(<a
href="https://github-redirect.dependabot.com/Microsoft/TypeScript/issues/51271">#51271</a>)</li>
<li>6af270dee09d62516f6dc02ec102a745ffebc037 Update
package-lock.json</li>
<li>2cc4c16a26672a7ba6c97ba16309fcf334db7cae Update
package-lock.json</li>
<li>60934915d9ccc4ca9c0fb2cd060d7ec81601942b Fix apparent typo in
getStringMappingType (<a
href="https://github-redirect.dependabot.com/Microsoft/TypeScript/issues/51248">#51248</a>)</li>
<li>61c26096e3373719ece686b84c698423890e9a5f Update
package-lock.json</li>
<li>ef69116c41cb6805f89e6592eacb0ccb7f02207d Generate shortest
<code>rootDirs</code> module specifier instead of first possible (<a
href="https://github-redirect.dependabot.com/Microsoft/TypeScript/issues/51244">#51244</a>)</li>
<li>bbb42f453dc684e03d977c5b70391124d57543a9 Fix typo in
canWatchDirectoryOrFile found by CodeQL (<a
href="https://github-redirect.dependabot.com/Microsoft/TypeScript/issues/51262">#51262</a>)</li>
<li>a56b254ad3c52b598bc5d44f83f3d0a1cf806068 Include 'this' type
parameter in isRelatedTo fast path (<a
href="https://github-redirect.dependabot.com/Microsoft/TypeScript/issues/51230">#51230</a>)</li>
<li>3abd351c0eea55758f27ee5558a4a1525b77f45b Fix super property
transform in async arrow in method (<a
href="https://github-redirect.dependabot.com/Microsoft/TypeScript/issues/51240">#51240</a>)</li>
<li>eed05112180e0d94f78aa02d676d49468f15dc31 Update
package-lock.json</li>
<li>2625c1feae25aede35465ca835440fc57bf13d52 Make the init config
category order predictable (<a
href="https://github-redirect.dependabot.com/Microsoft/TypeScript/issues/51247">#51247</a>)</li>
<li>1ca99b34029dafad2c18af7bdc0711f4abf7e522 fix(50551): Destructuring
assignment with var bypasses &quot;variable is used before being
assigned&quot; check (2454) (<a
href="https://github-redirect.dependabot.com/Microsoft/TypeScript/issues/50560">#50560</a>)</li>
<li>3f28fa12dfecb8dfd66ce4684bf26f64e1f092f1 Update
package-lock.json</li>
<li>906ebe49334a3a9c2dbd73cd3c902898bc712b66 Revert
structuredTypeRelatedTo change and fix isUnitLikeType (<a
href="https://github-redirect.dependabot.com/Microsoft/TypeScript/issues/51076">#51076</a>)</li>
<li>8ac465239f52de1da3ada8cdc4c3f107f4d62e45 change type (<a
href="https://github-redirect.dependabot.com/Microsoft/TypeScript/issues/51231">#51231</a>)</li>
<li>245a02cbed7ad50a21289730159abc8d19a66f40 fix(51222):
Go-to-definition on return statements should jump to the containing
function declaration (<a
href="https://github-redirect.dependabot.com/Microsoft/TypeScript/issues/51227">#51227</a>)</li>
<li>2dff34e8c4a91c0005ca9ccfb7e045e225b6f2e4 markAliasReferenced should
include ExportValue as well (<a
href="https://github-redirect.dependabot.com/Microsoft/TypeScript/issues/51219">#51219</a>)</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="93bd577458"><code>93bd577</code></a>
Bump version to 4.9.3 and LKG.</li>
<li><a
href="107f832b80"><code>107f832</code></a>
Update LKG.</li>
<li><a
href="31bee5682d"><code>31bee56</code></a>
Cherry-pick PR <a
href="https://github-redirect.dependabot.com/Microsoft/TypeScript/issues/50977">#50977</a>
into release-4.9 (<a
href="https://github-redirect.dependabot.com/Microsoft/TypeScript/issues/51363">#51363</a>)</li>
<li><a
href="1e2fa7ae15"><code>1e2fa7a</code></a>
Update version to 4.9.2-rc and LKG.</li>
<li><a
href="7ab89e5c6e"><code>7ab89e5</code></a>
Merge remote-tracking branch 'origin/main' into release-4.9</li>
<li><a
href="e5cd686def"><code>e5cd686</code></a>
Update package-lock.json</li>
<li><a
href="8d40dc15d1"><code>8d40dc1</code></a>
Update package-lock.json</li>
<li><a
href="5cfb3a2fe3"><code>5cfb3a2</code></a>
Only call return() for an abrupt completion in user code (<a
href="https://github-redirect.dependabot.com/Microsoft/TypeScript/issues/51297">#51297</a>)</li>
<li><a
href="a7a9d158e8"><code>a7a9d15</code></a>
Fix for broken baseline in yieldInForInInDownlevelGenerator (<a
href="https://github-redirect.dependabot.com/Microsoft/TypeScript/issues/51345">#51345</a>)</li>
<li><a
href="7f8426f4df"><code>7f8426f</code></a>
fix for-in enumeration containing yield in generator (<a
href="https://github-redirect.dependabot.com/Microsoft/TypeScript/issues/51295">#51295</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/Microsoft/TypeScript/compare/v4.8.4...v4.9.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=4.8.4&new-version=4.9.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>
2022-11-21 10:01:03 -06:00
dependabot[bot]
762feb1056 chore(deps-dev): bump jest from 29.2.2 to 29.3.1 in /node (#84)
Bumps [jest](https://github.com/facebook/jest/tree/HEAD/packages/jest)
from 29.2.2 to 29.3.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.3.1</h2>
<h2>Fixes</h2>
<ul>
<li><code>[jest-config]</code> Do not warn about <code>preset</code> in
<code>ProjectConfig</code> <a
href="https://github-redirect.dependabot.com/facebook/jest/pull/13583">#13583</a></li>
</ul>
<h2>Performance</h2>
<ul>
<li><code>[jest-transform]</code> Defer creation of cache directory <a
href="https://github-redirect.dependabot.com/facebook/jest/pull/13420">#13420</a></li>
</ul>
<h2>v29.3.0</h2>
<h2>Features</h2>
<ul>
<li><code>[jest-runtime]</code> Support WebAssembly (Wasm) imports in
ESM modules (<a
href="https://github-redirect.dependabot.com/facebook/jest/pull/13505">#13505</a>)</li>
</ul>
<h2>Fixes</h2>
<ul>
<li><code>[jest-config]</code> Add config validation for
<code>projects</code> option (<a
href="https://github-redirect.dependabot.com/facebook/jest/pull/13565">#13565</a>)</li>
<li><code>[jest-mock]</code> Treat cjs modules as objects so they can be
mocked (<a
href="https://github-redirect.dependabot.com/facebook/jest/pull/13513">#13513</a>)</li>
<li><code>[jest-worker]</code> Throw an error instead of hanging when
jest workers terminate unexpectedly (<a
href="https://github-redirect.dependabot.com/facebook/jest/pull/13566">#13566</a>)</li>
</ul>
<h2>Chore &amp; Maintenance</h2>
<ul>
<li><code>[@jest/transform]</code> Update
<code>convert-source-map</code> (<a
href="https://github-redirect.dependabot.com/facebook/jest/pull/13509">#13509</a>)</li>
<li><code>[docs]</code> Mention <code>toStrictEqual</code> in
UsingMatchers docs. (<a
href="https://github-redirect.dependabot.com/facebook/jest/pull/13560">#13560</a>)</li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a href="https://github.com/Tofandel"><code>@​Tofandel</code></a>
made their first contribution in <a
href="https://github-redirect.dependabot.com/facebook/jest/pull/13513">facebook/jest#13513</a></li>
<li><a
href="https://github.com/RyWilliams"><code>@​RyWilliams</code></a> made
their first contribution in <a
href="https://github-redirect.dependabot.com/facebook/jest/pull/13520">facebook/jest#13520</a></li>
<li><a href="https://github.com/waikoo"><code>@​waikoo</code></a> made
their first contribution in <a
href="https://github-redirect.dependabot.com/facebook/jest/pull/13447">facebook/jest#13447</a></li>
<li><a href="https://github.com/kachkaev"><code>@​kachkaev</code></a>
made their first contribution in <a
href="https://github-redirect.dependabot.com/facebook/jest/pull/13505">facebook/jest#13505</a></li>
<li><a href="https://github.com/ibuibu"><code>@​ibuibu</code></a> made
their first contribution in <a
href="https://github-redirect.dependabot.com/facebook/jest/pull/13565">facebook/jest#13565</a></li>
<li><a
href="https://github.com/necipallef"><code>@​necipallef</code></a> made
their first contribution in <a
href="https://github-redirect.dependabot.com/facebook/jest/pull/13560">facebook/jest#13560</a></li>
<li><a
href="https://github.com/ravshansbox"><code>@​ravshansbox</code></a>
made their first contribution in <a
href="https://github-redirect.dependabot.com/facebook/jest/pull/13533">facebook/jest#13533</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/facebook/jest/compare/v29.2.2...v29.3.0">https://github.com/facebook/jest/compare/v29.2.2...v29.3.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.3.1</h2>
<h3>Fixes</h3>
<ul>
<li><code>[jest-config]</code> Do not warn about <code>preset</code> in
<code>ProjectConfig</code> (<a
href="https://github-redirect.dependabot.com/facebook/jest/pull/13583">#13583</a>)</li>
</ul>
<h3>Performance</h3>
<ul>
<li><code>[jest-transform]</code> Defer creation of cache directory (<a
href="https://github-redirect.dependabot.com/facebook/jest/pull/13420">#13420</a>)</li>
</ul>
<h2>29.3.0</h2>
<h3>Features</h3>
<ul>
<li><code>[jest-runtime]</code> Support WebAssembly (Wasm) imports in
ESM modules (<a
href="https://github-redirect.dependabot.com/facebook/jest/pull/13505">#13505</a>)</li>
</ul>
<h3>Fixes</h3>
<ul>
<li><code>[jest-config]</code> Add config validation for
<code>projects</code> option (<a
href="https://github-redirect.dependabot.com/facebook/jest/pull/13565">#13565</a>)</li>
<li><code>[jest-mock]</code> Treat cjs modules as objects so they can be
mocked (<a
href="https://github-redirect.dependabot.com/facebook/jest/pull/13513">#13513</a>)</li>
<li><code>[jest-worker]</code> Throw an error instead of hanging when
jest workers terminate unexpectedly (<a
href="https://github-redirect.dependabot.com/facebook/jest/pull/13566">#13566</a>)</li>
</ul>
<h3>Chore &amp; Maintenance</h3>
<ul>
<li><code>[@jest/transform]</code> Update
<code>convert-source-map</code> (<a
href="https://github-redirect.dependabot.com/facebook/jest/pull/13509">#13509</a>)</li>
<li><code>[docs]</code> Mention <code>toStrictEqual</code> in
UsingMatchers docs. (<a
href="https://github-redirect.dependabot.com/facebook/jest/pull/13560">#13560</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="05deb8393c"><code>05deb83</code></a>
v29.3.1</li>
<li><a
href="84b8de987b"><code>84b8de9</code></a>
v29.3.0</li>
<li>See full diff in <a
href="https://github.com/facebook/jest/commits/v29.3.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.2.2&new-version=29.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>
2022-11-21 10:00:53 -06:00
Benjamin Eckel
6267682266 fix(node-sdk): Properly calculate length of utf-8 inputs (#82)
Properly calculate the length of utf-8 inputs. I'll work on getting
unicode chars into our other tests as well and see if we need to fix any
other SDKs
2022-11-20 13:23:01 -06:00
Benjamin Eckel
b1ca2f398d test: Make sure we have unicode in the SDK tests (#83)
Related to https://github.com/extism/extism/pull/82

Ensures we have unicode inputs in our SDK tests. We should probably get
unicode in the output as well
2022-11-20 13:22:48 -06:00
zach
58ad4ce6e2 feat: add extism_http_status_code to get the status code of the last HTTP request + fixes for clippy (#81)
This is kind of hacky but until we have an established way of encoding
complex types in memory it seems good enough
2022-11-18 11:15:17 -08:00
zach
d0296de9a7 fix: python README path (#80) 2022-11-18 09:02:17 -08:00
zach
4db1303273 cleanup: remove extism_load_u32 and extism_store_u32 (#79) 2022-11-16 10:56:20 -08:00
Benjamin Eckel
28d16f2fa8 fix: Fix the python release workflow (#76) 2022-11-14 16:27:01 -06:00
Benjamin Eckel
e3dd34e59f feat(elixir): use result of set_log_file (#39)
We can merge this after we release `rc.6`
2022-11-14 13:58:29 -06:00
Benjamin Eckel
bb6026976c fix: fix test import syntax in browser runtime (#75) 2022-11-10 16:28:01 -06:00
Benjamin Eckel
33c0f8a4c8 chore: bump browser runtime to rc.10 and refactor (#74) 2022-11-10 15:57:38 -06:00
Benjamin Eckel
b57acde149 test(browser-runtime): Add a simple test and runner (#73) 2022-11-09 12:11:59 -06:00
Benjamin Eckel
7e8031fcdc feat: [Experimental] Extism browser runtime (#70)
Experimental browser runtime. Will allow you to load and run simple
Extism plugins in the browser.

Still a work-in-progress. I've currently implemented just enough to run
the `count_vowels` plugin. To try it out:

```
cd browser
npm install
npm run build
python3 -m http.server
```

Open http://localhost:8000

There is a small playground style app. Set the url, and the function
name. Paste in some input. Hit `Run`. The result of the plugin call
should appear on the right.

<img width="964" alt="Screen Shot 2022-11-05 at 2 01 24 PM"
src="https://user-images.githubusercontent.com/185919/200136657-80e90a77-0b79-4f9d-a5dc-f5e1f340d143.png">

Co-authored-by: zach <zachshipko@gmail.com>
2022-11-09 11:02:27 -06:00
zach
e6499cab72 Make Rust SDK depend directly on extism-runtime (#65) 2022-11-07 12:45:56 -08:00
dependabot[bot]
e44800f7f6 chore(deps-dev): bump typedoc from 0.23.19 to 0.23.20 in /node (#71)
Bumps [typedoc](https://github.com/TypeStrong/TypeDoc) from 0.23.19 to
0.23.20.
<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.20</h2>
<h3>Bug Fixes</h3>
<ul>
<li>Fixed comment discovery for <code>@inheritDoc</code> if inheriting
from a function type alias, <a
href="https://github-redirect.dependabot.com/TypeStrong/TypeDoc/issues/2087">#2087</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.20 (2022-11-03)</h2>
<h3>Bug Fixes</h3>
<ul>
<li>Fixed comment discovery for <code>@inheritDoc</code> if inheriting
from a function type alias, <a
href="https://github-redirect.dependabot.com/TypeStrong/TypeDoc/issues/2087">#2087</a>.</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="bfa9dbdf51"><code>bfa9dbd</code></a>
Update changelog for release</li>
<li><a
href="ea185d119a"><code>ea185d1</code></a>
Bump version to 0.23.20</li>
<li><a
href="b0012e577d"><code>b0012e5</code></a>
Doc comment</li>
<li><a
href="30555f1776"><code>30555f1</code></a>
Fix comment discovery for <code>@inheritDoc</code></li>
<li>See full diff in <a
href="https://github.com/TypeStrong/TypeDoc/compare/v0.23.19...v0.23.20">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.19&new-version=0.23.20)](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>
2022-11-07 10:35:17 -06:00
dependabot[bot]
d6b403e112 chore(deps-dev): bump @types/jest from 29.2.1 to 29.2.2 in /node (#72)
Bumps
[@types/jest](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/jest)
from 29.2.1 to 29.2.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.2.1&new-version=29.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 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>
2022-11-07 10:34:55 -06:00
Benjamin Eckel
b45c04c13e ci: Workflow per SDK (#69) 2022-11-04 16:24:48 -05:00
Benjamin Eckel
33dbcafdb9 fix: Fix release workflow to use make (#68) 2022-11-04 15:46:25 -05:00
dependabot[bot]
c441ac703e chore(deps-dev): bump @types/node from 18.11.4 to 18.11.9 in /node (#62)
Bumps
[@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node)
from 18.11.4 to 18.11.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=18.11.4&new-version=18.11.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 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>
2022-11-04 14:41:43 -06:00
dependabot[bot]
3e3c97499c chore(deps-dev): bump @types/jest from 29.2.0 to 29.2.1 in /node (#63)
Bumps
[@types/jest](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/jest)
from 29.2.0 to 29.2.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.2.0&new-version=29.2.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>
2022-11-04 14:41:37 -06:00
dependabot[bot]
d131a344a3 chore(deps-dev): bump typedoc from 0.23.18 to 0.23.19 in /node (#64)
Bumps [typedoc](https://github.com/TypeStrong/TypeDoc) from 0.23.18 to
0.23.19.
<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.19</h2>
<h3>Bug Fixes</h3>
<ul>
<li>Fixed title link if <code>titleLink</code> option was not specified,
<a
href="https://github-redirect.dependabot.com/TypeStrong/TypeDoc/issues/2085">#2085</a>.</li>
</ul>
<h3>Thanks!</h3>
<ul>
<li><a
href="https://github.com/krisztianb"><code>@​krisztianb</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.19 (2022-10-28)</h2>
<h3>Bug Fixes</h3>
<ul>
<li>Fixed title link if <code>titleLink</code> option was not specified,
<a
href="https://github-redirect.dependabot.com/TypeStrong/TypeDoc/issues/2085">#2085</a>.</li>
</ul>
<h3>Thanks!</h3>
<ul>
<li><a
href="https://github.com/krisztianb"><code>@​krisztianb</code></a></li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="ef598e7427"><code>ef598e7</code></a>
Update changelog for release</li>
<li><a
href="9240b9262f"><code>9240b92</code></a>
Bump version</li>
<li><a
href="15e200b2c9"><code>15e200b</code></a>
Update changelog</li>
<li><a
href="a3cc365b40"><code>a3cc365</code></a>
Merge pull request <a
href="https://github-redirect.dependabot.com/TypeStrong/TypeDoc/issues/2086">#2086</a>
from krisztianb/bugfix/2085-invalid-title-link</li>
<li><a
href="ff8526c2c2"><code>ff8526c</code></a>
Fix wrong handling of missing/empty titleLink option value</li>
<li>See full diff in <a
href="https://github.com/TypeStrong/TypeDoc/compare/v0.23.18...v0.23.19">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.18&new-version=0.23.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>
2022-11-04 14:41:29 -06:00
Benjamin Eckel
71110117e4 feat: Add workflow_dispatch to the release workflow (#33) 2022-11-04 15:18:58 -05:00
Benjamin Eckel
5cfa2a0a5e Bump to version 0.0.1-rc.6 (#67)
Co-authored-by: zach <zach@dylib.so>
2022-11-04 14:48:19 -05:00
Benjamin Eckel
cb87a30fb3 docs: Link to the manifest concept doc (#66)
Co-authored-by: Steve Manuel <steve@dylib.so>
2022-11-04 14:04:10 -05:00
Steve Manuel
b85ee0f24c Update README.md 2022-11-04 11:53:06 -06:00
zach
ffc1a1af41 chore: update deps, add dependabot.yml (#61) 2022-11-02 10:51:42 -07:00
zach
a42a7eac5e organize: rename runtime/src/export.rs -> runtime/src/pdk.rs (#60)
This PR just renames `runtime/src/export.rs` to `runtime/src/pdk.rs` to
match `runtime/src/sdk.rs`
2022-11-01 10:21:26 -07:00
zach
08f5b84cd3 ci: fix ocaml build (#59) 2022-10-28 15:18:44 -07:00
234 changed files with 28942 additions and 6569 deletions

View File

@@ -7,12 +7,24 @@ runs:
steps:
- name: Checkout sources
uses: actions/checkout@v3
- name: Download libextism
uses: actions/download-artifact@v3
- name: Install Rust
uses: actions-rs/toolchain@v1
with:
name: libextism-${{ matrix.os }}
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/**
key: ${{ runner.os }}-libextism-${{ hashFiles('runtime/**') }}-${{ hashFiles('manifest/**') }}-${{ hashFiles('libextism/**') }}
- name: Build
if: steps.cache-libextism.outputs.cache-hit != 'true'
shell: bash
run: cargo build --release -p libextism
- name: Install extism shared library
shell: bash
run: |
sudo cp libextism.* /usr/local/lib
sudo cp runtime/extism.h /usr/local/include
sudo make install

41
.github/dependabot.yml vendored Normal file
View File

@@ -0,0 +1,41 @@
# To get started with Dependabot version updates, you'll need to specify which
# package ecosystems to update and where the package manifests are located.
# Please see the documentation for all configuration options:
# https://docs.github.com/github/administering-a-repository/configuration-options-for-dependency-updates
version: 2
updates:
- package-ecosystem: "cargo" # See documentation for possible values
directory: "/" # Location of package manifests
schedule:
interval: "weekly"
- package-ecosystem: "pip"
directory: "python"
schedule:
interval: "weekly"
- package-ecosystem: "mix"
directory: "elixir"
schedule:
interval: "weekly"
- package-ecosystem: "npm"
directory: "node"
schedule:
interval: "weekly"
- package-ecosystem: "composer"
directory: "/"
schedule:
interval: "weekly"
- package-ecosystem: "bundler"
directory: "ruby"
schedule:
interval: "weekly"
- package-ecosystem: "gomod"
directory: "/"
schedule:
interval: "weekly"

36
.github/workflows/browser-ci.yml vendored Normal file
View File

@@ -0,0 +1,36 @@
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]
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

39
.github/workflows/ci-cpp.yml vendored Normal file
View File

@@ -0,0 +1,39 @@
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

34
.github/workflows/ci-dotnet.yml vendored Normal file
View File

@@ -0,0 +1,34 @@
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

41
.github/workflows/ci-elixir.yml vendored Normal file
View File

@@ -0,0 +1,41 @@
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

39
.github/workflows/ci-go.yml vendored Normal file
View File

@@ -0,0 +1,39 @@
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!"

47
.github/workflows/ci-haskell.yml vendored Normal file
View File

@@ -0,0 +1,47 @@
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

37
.github/workflows/ci-java.yml vendored Normal file
View File

@@ -0,0 +1,37 @@
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

38
.github/workflows/ci-node.yml vendored Normal file
View File

@@ -0,0 +1,38 @@
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

50
.github/workflows/ci-ocaml.yml vendored Normal file
View File

@@ -0,0 +1,50 @@
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

42
.github/workflows/ci-php.yml vendored Normal file
View File

@@ -0,0 +1,42 @@
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

40
.github/workflows/ci-python.yml vendored Normal file
View File

@@ -0,0 +1,40 @@
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

38
.github/workflows/ci-ruby.yml vendored Normal file
View File

@@ -0,0 +1,38 @@
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

105
.github/workflows/ci-rust.yml vendored Normal file
View File

@@ -0,0 +1,105 @@
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 }}

37
.github/workflows/ci-zig.yml vendored Normal file
View File

@@ -0,0 +1,37 @@
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]
zig_version: ["master"] # eventually use multiple versions once stable
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
with:
version: ${{ matrix.zig_version }}
- name: Test Zig Host SDK
run: |
zig version
cd zig
LD_LIBRARY_PATH=/usr/local/lib zig build test

View File

@@ -2,353 +2,7 @@ on: [pull_request, workflow_dispatch]
name: CI
env:
RUNTIME_MANIFEST: runtime/Cargo.toml
RUNTIME_CRATE: extism-runtime
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.RUNTIME_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 }}
elixir:
name: Elixir
needs: lib
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
go:
name: Go
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: Setup Go env
uses: actions/setup-go@v3
- name: Test Go Host SDK
run: |
go version
cd go
LD_LIBRARY_PATH=/usr/local/lib go run main.go
LD_LIBRARY_PATH=/usr/local/lib go test
python:
name: Python
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: 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
poetry install
poetry run python example.py
poetry run python -m unittest discover
ruby:
name: Ruby
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: 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
node:
name: Node
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: 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
ocaml:
name: OCaml
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: Setup OCaml env
uses: ocaml/setup-ocaml@v2
with:
ocaml-compiler: ocaml-base-compiler.5.0.0~beta1
- name: Cache OCaml
id: cache-ocaml
uses: actions/cache@v3
with:
path: _build
key: ${{ runner.os }}-ocaml-${{ hashFiles('ocaml/**') }}-${{ hashFiles('dune-project') }}
- name: Build OCaml Host SDK
if: steps.cache-ocaml.outputs.cache-hit != 'true'
run: |
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
LD_LIBRARY_PATH=/usr/local/lib opam exec -- dune runtest
haskell:
name: Haskell
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: Setup Haskell env
uses: haskell/actions/setup@v2
with:
enable-stack: true
stack-version: "latest"
- name: Cache Haskell
id: cache-haskell
uses: actions/cache@v3
with:
path: .stack-work
key: ${{ runner.os }}-haskell-${{ hashFiles('haskell/**') }}
- name: Build Haskell Host SDK
if: steps.cache-haskell.outputs.cache-hit != 'true'
run: |
cd haskell
LD_LIBRARY_PATH=/usr/local/lib stack build
- name: Test Haskell SDK
run: |
cd haskell
LD_LIBRARY_PATH=/usr/local/lib stack test
php:
name: PHP
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: 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
cpp:
name: C++
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: 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
sdk_api_coverage:
name: SDK API Coverage Report
runs-on: ubuntu-latest
@@ -368,3 +22,4 @@ jobs:
id: coverage
run: |
python scripts/sdk_coverage.py

View File

@@ -1,34 +0,0 @@
name: Docs
# Controls when the workflow will run
on:
# Triggers the workflow on push or pull request events but only for the "main" branch
push:
branches: [ "main" ]
# Allows you to run this workflow manually from the Actions tab
workflow_dispatch:
# A workflow run is made up of one or more jobs that can run sequentially or in parallel
jobs:
# This workflow contains a single job called "build"
build:
# The type of runner that the job will run on
runs-on: ubuntu-latest
# Steps represent a sequence of tasks that will be executed as part of the job
steps:
# Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
- uses: actions/checkout@v3
- name: Setup Python env
uses: actions/setup-python@v4
with:
python-version: "3.9"
check-latest: true
- name: Build Python Docs
run: |
cd python
make prepare
make docs

View File

@@ -0,0 +1,29 @@
on:
workflow_dispatch:
name: Release .NET Native NuGet Packages
jobs:
release-runtimes:
name: release-dotnet-native
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Setup .NET Core SDK
uses: actions/setup-dotnet@v3.0.3
with:
dotnet-version: 7.x
- uses: dawidd6/action-download-artifact@v2
with:
workflow: release.yml
name: release-artifacts
- name: Extract Archive
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
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 }}

32
.github/workflows/release-dotnet.yaml vendored Normal file
View File

@@ -0,0 +1,32 @@
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 }}

27
.github/workflows/release-elixir.yaml vendored Normal file
View File

@@ -0,0 +1,27 @@
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: 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

16
.github/workflows/release-haskell.yaml vendored Normal file
View File

@@ -0,0 +1,16 @@
on:
workflow_dispatch:
name: Release Haskell 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

22
.github/workflows/release-java.yml vendored Normal file
View File

@@ -0,0 +1,22 @@
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

30
.github/workflows/release-node.yaml vendored Normal file
View File

@@ -0,0 +1,30 @@
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

36
.github/workflows/release-python.yaml vendored Normal file
View File

@@ -0,0 +1,36 @@
on:
workflow_dispatch:
name: Release Python SDK
jobs:
release-sdks:
name: release-python
runs-on: ubuntu-latest
steps:
- 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: Build Python Host SDK
run: |
cd python
cp ../LICENSE .
make clean
poetry install --no-dev
poetry build
- 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/

25
.github/workflows/release-ruby.yaml vendored Normal file
View File

@@ -0,0 +1,25 @@
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

41
.github/workflows/release-rust.yaml vendored Normal file
View File

@@ -0,0 +1,41 @@
on:
workflow_dispatch:
name: Release Rust SDK
jobs:
release-sdks:
name: release-rust
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Setup Rust env
uses: actions-rs/toolchain@v1
with:
toolchain: stable
profile: minimal
override: true
target: ${{ matrix.target }}
- name: Release Rust Manifest Crate
if: always()
env:
CARGO_REGISTRY_TOKEN: ${{ secrets.CARGO_API_TOKEN }}
run: |
# order of crate publication matter: manifest, runtime, rust
cargo publish --manifest-path manifest/Cargo.toml
# allow for crates.io to update so dependant crates can locate extism-manifest
sleep 5
- name: Release Rust Host SDK
if: always()
env:
CARGO_REGISTRY_TOKEN: ${{ secrets.CARGO_API_TOKEN }}
run: |
cargo publish --manifest-path runtime/Cargo.toml --no-verify
cargo publish --manifest-path rust/Cargo.toml

View File

@@ -1,12 +1,13 @@
on:
release:
types: [created]
workflow_dispatch:
name: Release
env:
RUNTIME_MANIFEST: runtime/Cargo.toml
RUNTIME_CRATE: extism-runtime
RUNTIME_CRATE: libextism
RUSTFLAGS: -C target-feature=-crt-static
ARTIFACT_DIR: release-artifacts
@@ -213,112 +214,3 @@ jobs:
files: |
*.tar.gz
*.txt
release-sdks:
needs: [release-linux, release-macos] # release-windows
name: publish-sdks
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
npm publish
- name: Setup Rust env
uses: actions-rs/toolchain@v1
with:
toolchain: stable
profile: minimal
override: true
target: ${{ matrix.target }}
- name: Release Rust Host SDK
env:
CARGO_REGISTRY_TOKEN: ${{ secrets.CARGO_API_TOKEN }}
run: |
# order of crate publication matter: manifest, runtime, rust
cargo publish --manifest-path manifest/Cargo.toml
# allow for crates.io to update so dependant crates can locate extism-manifest
sleep 5
cargo publish --manifest-path runtime/Cargo.toml --no-verify
cargo publish --manifest-path rust/Cargo.toml
- 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 .
mix do deps.get, deps.compile
mix hex.build
mix hex.publish --yes
- 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
gem build extism.gemspec
gem push extism*.gem -k $RUBYGEMS_API_KEY
- name: Publish Elixir Host SDK to hex.pm
env:
HEX_API_KEY: ${{ secrets.HEX_PM_API_TOKEN }}
run: |
cd elixir
mix do deps.get, deps.compile
mix hex.build
mix hex.publish --yes
- name: Setup Python env
uses: actions/setup-python@v4
with:
python-version: "3.9"
check-latest: true
- name: Build Python Host SDK
run: |
pushd python
python3 -m pip install --upgrade build
cp ../LICENSE .
cp ../README.md .
python3 -m poetry build
popd
- name: Release Python Host SDK
uses: pypa/gh-action-pypi-publish@release/v1
env:
INPUT_VERIFY_METADATA: false
with:
user: ${{ secrets.PYPI_API_USER }}
password: ${{ secrets.PYPI_API_TOKEN }}
packages_dir: python/dist/

15
.gitignore vendored
View File

@@ -27,9 +27,18 @@ ruby/tmp/
ruby/Gemfile.lock
rust/target
rust/test.log
ocaml/duniverse
ocaml/_build
duniverse
_build
php/Extism.php
python/docs
dist-newstyle
.stack-work
vendor
vendor
zig/zig-*
zig/example-out/
zig/*.log
java/*.iml
java/*.log
java/.idea
java/.DS_Store

1
.ocamlformat Normal file
View File

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

View File

@@ -3,8 +3,6 @@ members = [
"manifest",
"runtime",
"rust",
"libextism",
]
exclude = [
"elixir/native/extism_nif"
]
exclude = ["kernel"]

View File

@@ -18,18 +18,23 @@ else
FEATURE_FLAGS=--features $(FEATURES)
endif
build:
cargo build --release $(FEATURE_FLAGS) --manifest-path libextism/Cargo.toml
.PHONY: build
.PHONY: kernel
kernel:
cd kernel && bash build.sh
lint:
cargo clippy --release --no-deps --manifest-path runtime/Cargo.toml
build:
cargo build --release $(FEATURE_FLAGS) --manifest-path runtime/Cargo.toml
debug:
RUSTFLAGS=-g $(MAKE) build
install:
install runtime/extism.h $(DEST)/include
install target/release/libextism.$(SOEXT) $(DEST)/lib
mkdir -p $(DEST)/lib $(DEST)/include
install runtime/extism.h $(DEST)/include/extism.h
install target/release/libextism.$(SOEXT) $(DEST)/lib/libextism.$(SOEXT)
uninstall:
rm -f $(DEST)/include/extism.h $(DEST)/lib/libextism.$(SOEXT)

View File

@@ -1,6 +1,8 @@
### _Welcome!_
**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.
**Please note:** This project still under active development and APIs may change until we hit v1.0.
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://discord.gg/cx3usBCWnc)
@@ -10,14 +12,21 @@ The universal plug-in system. Run WebAssembly extensions inside your app. Use id
[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) &amp; more (others coming soon).
[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).
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).
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).
<p align="center">
<img style="width: 70%;" src="https://user-images.githubusercontent.com/7517515/198499438-f3de06e5-71b4-439d-ab31-a3672acc6ede.png"/>
<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>
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:**
### 1. Import
@@ -55,5 +64,4 @@ Extism is an open-source product from the team at:
</p>
_Reach out and tell us what you're building! We'd love to help._

130
browser/.gitignore vendored Normal file
View File

@@ -0,0 +1,130 @@
# 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.*

5
browser/.prettierrc Normal file
View File

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

28
browser/Makefile Normal file
View File

@@ -0,0 +1,28 @@
.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

23
browser/build.js Normal file
View File

@@ -0,0 +1,23 @@
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",
});

248
browser/index.html Normal file
View File

@@ -0,0 +1,248 @@
<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 helloWorld = function(index){
console.log("Hello, " + this.allocator.getString(index));
return index;
};
let plugin = await this.extismContext.newPlugin({ "wasm": [ { "path": url } ] }, {"hello_world": helloWorld});
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 helloWorld = function(index){
console.log("Hello, " + this.allocator.getString(index));
return index;
};
let plugin = await this.extismContext.newPlugin({ "wasm": [ { "path": this.state.url } ] }, {
"hello_world": helloWorld
});
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>

5
browser/jest.config.js Normal file
View File

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

14454
browser/package-lock.json generated Normal file

File diff suppressed because it is too large Load Diff

39
browser/package.json Normal file
View File

@@ -0,0 +1,39 @@
{
"name": "@extism/runtime-browser",
"version": "0.3.0",
"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",
"esbuild-jest": "^0.5.0",
"jest": "^29.2.2",
"jest-environment-jsdom": "^29.3.1",
"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.7"
}
}

104
browser/src/allocator.ts Normal file
View File

@@ -0,0 +1,104 @@
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);
}
}

45
browser/src/context.ts Normal file
View File

@@ -0,0 +1,45 @@
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, functions: Record<string, any> = {}, 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, functions, config);
}
}

24
browser/src/index.test.ts Normal file
View File

@@ -0,0 +1,24 @@
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 });
expect(true).toEqual(true);
});
});

4
browser/src/index.ts Normal file
View File

@@ -0,0 +1,4 @@
import ExtismContext from './context';
import { ExtismFunction, ExtismPlugin } from './plugin';
export { ExtismContext, ExtismFunction, ExtismPlugin };

40
browser/src/manifest.ts Normal file
View File

@@ -0,0 +1,40 @@
/**
* 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>;
};

203
browser/src/plugin.ts Normal file
View File

@@ -0,0 +1,203 @@
import Allocator from './allocator';
import { PluginConfig } from './manifest';
import { WASI, Fd } from '@bjorn3/browser_wasi_shim';
export type ExtismFunction = any;
export class ExtismPlugin {
moduleData: ArrayBuffer;
allocator: Allocator;
config?: PluginConfig;
vars: Record<string, Uint8Array>;
input: Uint8Array;
output: Uint8Array;
module?: WebAssembly.WebAssemblyInstantiatedSource;
functions: Record<string, ExtismFunction>;
constructor(moduleData: ArrayBuffer, functions: Record<string, ExtismFunction> = {}, config?: PluginConfig) {
this.moduleData = moduleData;
this.allocator = new Allocator(1024 * 1024);
this.config = config;
this.vars = {};
this.input = new Uint8Array();
this.output = new Uint8Array();
this.functions = functions;
}
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: Fd[] = [
// new XtermStdio(term), // stdin
// new XtermStdio(term), // stdout
// new XtermStdio(term), // 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);
// normally we would call wasi.start here but it doesn't respect when there is
// no _start function
//@ts-ignore
wasi.inst = this.module.instance;
if (this.module.instance.exports._start) {
//@ts-ignore
this.module.instance.exports._start();
}
return this.module;
}
makeEnv(): any {
const plugin = this;
var env: any = {
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);
},
};
for (const [name, func] of Object.entries(this.functions)) {
env[name] = function () {
return func.apply(plugin, arguments);
};
}
return env;
}
}

13
browser/tsconfig.json Normal file
View File

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

6
browser/tslint.json Normal file
View File

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

View File

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

View File

@@ -9,6 +9,21 @@
#include <sys/stat.h>
#include <unistd.h>
void hello_world(ExtismCurrentPlugin *plugin, const ExtismVal *inputs,
uint64_t n_inputs, ExtismVal *outputs, uint64_t n_outputs,
void *data) {
puts("Hello from C!");
puts(data);
ExtismSize ptr_offs = inputs[0].v.i64;
uint8_t *buf = extism_current_plugin_memory(plugin) + ptr_offs;
uint64_t length = extism_current_plugin_memory_length(plugin, ptr_offs);
fwrite(buf, length, 1, stdout);
fputc('\n', stdout);
outputs[0].v.i64 = inputs[0].v.i64;
}
uint8_t *read_file(const char *filename, size_t *len) {
FILE *fp = fopen(filename, "rb");
@@ -21,6 +36,7 @@ uint8_t *read_file(const char *filename, size_t *len) {
uint8_t *data = malloc(length);
if (data == NULL) {
fclose(fp);
return NULL;
}
@@ -40,13 +56,18 @@ int main(int argc, char *argv[]) {
ExtismContext *ctx = extism_context_new();
size_t len = 0;
uint8_t *data = read_file("../wasm/code.wasm", &len);
ExtismPlugin plugin = extism_plugin_new(ctx, data, len, false);
uint8_t *data = read_file("../wasm/code-functions.wasm", &len);
ExtismValType inputs[] = {I64};
ExtismValType outputs[] = {I64};
ExtismFunction *f = extism_function_new("hello_world", inputs, 1, outputs, 1,
hello_world, "Hello, again!", NULL);
ExtismPlugin plugin =
extism_plugin_new(ctx, data, len, (const ExtismFunction **)&f, 1, true);
free(data);
if (plugin < 0) {
puts(extism_error(ctx, -1));
exit(1);
}
assert(extism_plugin_call(ctx, plugin, "count_vowels", (uint8_t *)argv[1],
strlen(argv[1])) == 0);
ExtismSize out_len = extism_plugin_output_length(ctx, plugin);
@@ -55,6 +76,7 @@ int main(int argc, char *argv[]) {
write(STDOUT_FILENO, "\n", 1);
extism_plugin_free(ctx, plugin);
extism_function_free(f);
extism_context_free(ctx);
return 0;
}

View File

@@ -1,50 +1,49 @@
{
"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"
"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"
},
"suggest": {},
"minimum-stability": "dev",
"prefer-stable": true,
"autoload": {
"psr-4": {
"Extism\\": "php/src/"
},
"files": [
"php/src/Plugin.php",
"php/src/generate.php",
"php/src/extism.h"
]
{
"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/"
},
"autoload-dev": {
"psr-4": {}
},
"config": {
"sort-packages": true
},
"extra": {},
"scripts": {},
"scripts-descriptions": {}
"files": [
"php/src/Context.php",
"php/src/Plugin.php"
]
},
"autoload-dev": {
"psr-4": {}
},
"config": {
"sort-packages": true
},
"extra": {},
"scripts": {},
"scripts-descriptions": {}
}

View File

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

View File

@@ -14,10 +14,26 @@ std::vector<uint8_t> read(const char *filename) {
}
int main(int argc, char *argv[]) {
auto wasm = read("../wasm/code.wasm");
Context context = Context();
auto wasm = read("../wasm/code-functions.wasm");
std::string tmp = "Testing";
Plugin plugin = context.plugin(wasm);
// 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(wasm, true, functions);
const char *input = argc > 1 ? argv[1] : "this is a test";
ExtismSize length = strlen(input);

View File

@@ -1,7 +1,10 @@
#pragma once
#include <cstring>
#include <functional>
#include <map>
#include <memory>
#include <stdexcept>
#include <string>
#include <vector>
@@ -20,27 +23,62 @@ extern "C" {
namespace extism {
typedef std::map<std::string, std::string> Config;
class Wasm {
template <typename T> class ManifestKey {
bool is_set = false;
public:
std::string path;
std::string url;
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
std::string hash;
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;
if (!this->_path.empty()) {
doc["path"] = this->_path;
} else if (!this->_url.empty()) {
doc["url"] = this->_url;
}
if (!this->url.empty()) {
doc["url"] = this->url;
}
if (!this->hash.empty()) {
doc["hash"] = this->hash;
if (!this->_hash.empty()) {
doc["hash"] = this->_hash.value;
}
return doc;
@@ -52,14 +90,23 @@ class Manifest {
public:
Config config;
std::vector<Wasm> wasm;
std::vector<std::string> allowed_hosts;
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);
@@ -88,43 +135,71 @@ public:
if (!this->allowed_hosts.empty()) {
Json::Value h;
for (auto s : this->allowed_hosts) {
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;
w.path = s;
w.hash = hash;
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;
w.url = u;
w.hash = hash;
Wasm w = Wasm::url(u, hash);
this->wasm.push_back(w);
}
void allow_host(std::string host) { this->allowed_hosts.push_back(host); }
// 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::exception {
private:
std::string message;
class Error : public std::runtime_error {
public:
Error(std::string msg) : message(msg) {}
const char *what() { return message.c_str(); }
Error(std::string msg) : std::runtime_error(msg) {}
};
class Buffer {
@@ -143,14 +218,141 @@ public:
}
};
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);
}
void returnString(Val &output, const std::string &s) {
this->returnBytes(output, (const uint8_t *)s.c_str(), s.size());
}
void returnBytes(Val &output, const uint8_t *bytes, size_t len) {
auto offs = this->alloc(len);
memcpy(this->memory() + offs, bytes, len);
output.v.i64 = offs;
}
uint8_t *inputBytes(Val &inp, size_t *length = nullptr) {
if (inp.t != ValType::I64) {
return nullptr;
}
if (length != nullptr) {
*length = this->memory_length(inp.v.i64);
}
return this->memory() + inp.v.i64;
}
std::string inputString(Val &inp) {
size_t length = 0;
char *buf = (char *)this->inputBytes(inp, &length);
return std::string(buf, length);
}
};
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);
}
void set_namespace(std::string s) {
extism_function_set_namespace(this->func.get(), s.c_str());
}
Function(const Function &f) { this->func = f.func; }
ExtismFunction *get() { return this->func.get(); }
};
class CancelHandle {
const ExtismCancelHandle *handle;
public:
CancelHandle(const ExtismCancelHandle *x) : handle(x){};
bool cancel() { return extism_plugin_cancel(this->handle); }
};
class Plugin {
std::shared_ptr<ExtismContext> context;
ExtismPlugin plugin;
std::vector<Function> functions;
public:
Plugin(std::shared_ptr<ExtismContext> ctx, const uint8_t *wasm,
ExtismSize length, bool with_wasi = false) {
this->plugin = extism_plugin_new(ctx.get(), wasm, length, with_wasi);
// Create a new plugin
Plugin(const uint8_t *wasm, ExtismSize length, bool with_wasi = false,
std::vector<Function> functions = std::vector<Function>(),
std::shared_ptr<ExtismContext> ctx = std::shared_ptr<ExtismContext>(
extism_context_new(), extism_context_free))
: 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);
@@ -158,12 +360,39 @@ public:
this->context = ctx;
}
Plugin(const std::string &str, bool with_wasi = false,
std::vector<Function> functions = {},
std::shared_ptr<ExtismContext> ctx = std::shared_ptr<ExtismContext>(
extism_context_new(), extism_context_free))
: Plugin((const uint8_t *)str.c_str(), str.size(), with_wasi, functions,
ctx) {}
Plugin(const std::vector<uint8_t> &data, bool with_wasi = false,
std::vector<Function> functions = {},
std::shared_ptr<ExtismContext> ctx = std::shared_ptr<ExtismContext>(
extism_context_new(), extism_context_free))
: Plugin(data.data(), data.size(), with_wasi, functions, ctx) {}
CancelHandle cancel_handle() {
return CancelHandle(
extism_plugin_cancel_handle(this->context.get(), this->id()));
}
#ifndef EXTISM_NO_JSON
Plugin(std::shared_ptr<ExtismContext> ctx, const Manifest &manifest,
bool with_wasi = false) {
// Create a new plugin from Manifest
Plugin(const Manifest &manifest, bool with_wasi = false,
std::vector<Function> functions = {},
std::shared_ptr<ExtismContext> ctx = std::shared_ptr<ExtismContext>(
extism_context_new(), extism_context_free)) {
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(), with_wasi);
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);
@@ -181,9 +410,15 @@ public:
ExtismContext *get_context() const { return this->context.get(); }
void update(const uint8_t *wasm, size_t length, bool with_wasi = false) {
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, with_wasi);
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);
@@ -191,11 +426,17 @@ public:
}
#ifndef EXTISM_NO_JSON
void update(const Manifest &manifest, bool with_wasi = false) {
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(), with_wasi);
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);
@@ -228,6 +469,7 @@ public:
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,
@@ -248,15 +490,19 @@ public:
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());
}
Buffer call(const std::string &func, const std::string &input) const {
// 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());
@@ -266,38 +512,50 @@ public:
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);
}
Plugin plugin(const uint8_t *wasm, size_t length,
bool with_wasi = false) const {
return Plugin(this->pointer, wasm, length, with_wasi);
// 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(wasm, length, with_wasi, functions, this->pointer);
}
Plugin plugin(const std::string &str, bool with_wasi = false) const {
return Plugin(this->pointer, (const uint8_t *)str.c_str(), str.size(),
with_wasi);
// Create plugin from std::string
Plugin plugin(const std::string &str, bool with_wasi = false,
std::vector<Function> functions = {}) const {
return Plugin((const uint8_t *)str.c_str(), str.size(), with_wasi,
functions, this->pointer);
}
Plugin plugin(const std::vector<uint8_t> &data,
bool with_wasi = false) const {
return Plugin(this->pointer, data.data(), data.size(), with_wasi);
// 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(data.data(), data.size(), with_wasi, functions,
this->pointer);
}
#ifndef EXTISM_NO_JSON
Plugin plugin(const Manifest &manifest, bool with_wasi = false) const {
return Plugin(this->pointer, manifest, with_wasi);
// Create plugin from Manifest
Plugin plugin(const Manifest &manifest, bool with_wasi = false,
std::vector<Function> functions = {}) const {
return Plugin(manifest, with_wasi, functions, this->pointer);
}
#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

@@ -10,6 +10,8 @@ std::vector<uint8_t> read(const char *filename) {
std::istreambuf_iterator<char>());
}
const std::string code = "../../wasm/code.wasm";
namespace {
using namespace extism;
@@ -19,26 +21,24 @@ TEST(Context, Basic) {
}
TEST(Plugin, Manifest) {
Context context;
Manifest manifest = Manifest::path("code.wasm");
Manifest manifest = Manifest::path(code);
manifest.set_config("a", "1");
ASSERT_NO_THROW(Plugin plugin = context.plugin(manifest));
Plugin plugin = context.plugin(manifest);
ASSERT_NO_THROW(Plugin plugin(manifest));
Plugin 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);
ASSERT_THROW(Plugin plugin(manifest), Error);
}
TEST(Plugin, Bytes) {
Context context;
auto wasm = read("code.wasm");
auto wasm = read(code.c_str());
ASSERT_NO_THROW(Plugin plugin = context.plugin(wasm));
Plugin plugin = context.plugin(wasm);
@@ -48,7 +48,7 @@ TEST(Plugin, Bytes) {
TEST(Plugin, UpdateConfig) {
Context context;
auto wasm = read("code.wasm");
auto wasm = read(code.c_str());
Plugin plugin = context.plugin(wasm);
Config config;
@@ -58,13 +58,33 @@ TEST(Plugin, UpdateConfig) {
TEST(Plugin, FunctionExists) {
Context context;
auto wasm = read("code.wasm");
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) {
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(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) {

479
dotnet/.gitignore vendored Normal file
View File

@@ -0,0 +1,479 @@
## Ignore Visual Studio temporary files, build results, and
## files generated by popular Visual Studio add-ons.
##
## Get latest from https://github.com/github/gitignore/blob/main/VisualStudio.gitignore
# User-specific files
*.rsuser
*.suo
*.user
*.userosscache
*.sln.docstates
# User-specific files (MonoDevelop/Xamarin Studio)
*.userprefs
# Mono auto generated files
mono_crash.*
# Build results
[Dd]ebug/
[Dd]ebugPublic/
[Rr]elease/
[Rr]eleases/
x64/
x86/
[Ww][Ii][Nn]32/
[Aa][Rr][Mm]/
[Aa][Rr][Mm]64/
bld/
[Bb]in/
[Oo]bj/
[Ll]og/
[Ll]ogs/
# Visual Studio 2015/2017 cache/options directory
.vs/
# Uncomment if you have tasks that create the project's static files in wwwroot
#wwwroot/
# Visual Studio 2017 auto generated files
Generated\ Files/
# MSTest test Results
[Tt]est[Rr]esult*/
[Bb]uild[Ll]og.*
# NUnit
*.VisualState.xml
TestResult.xml
nunit-*.xml
# Build Results of an ATL Project
[Dd]ebugPS/
[Rr]eleasePS/
dlldata.c
# Benchmark Results
BenchmarkDotNet.Artifacts/
# .NET
project.lock.json
project.fragment.lock.json
artifacts/
# Tye
.tye/
# ASP.NET Scaffolding
ScaffoldingReadMe.txt
# StyleCop
StyleCopReport.xml
# Files built by Visual Studio
*_i.c
*_p.c
*_h.h
*.ilk
*.meta
*.obj
*.iobj
*.pch
*.pdb
*.ipdb
*.pgc
*.pgd
*.rsp
*.sbr
*.tlb
*.tli
*.tlh
*.tmp
*.tmp_proj
*_wpftmp.csproj
*.log
*.tlog
*.vspscc
*.vssscc
.builds
*.pidb
*.svclog
*.scc
# Chutzpah Test files
_Chutzpah*
# Visual C++ cache files
ipch/
*.aps
*.ncb
*.opendb
*.opensdf
*.sdf
*.cachefile
*.VC.db
*.VC.VC.opendb
# Visual Studio profiler
*.psess
*.vsp
*.vspx
*.sap
# Visual Studio Trace Files
*.e2e
# TFS 2012 Local Workspace
$tf/
# Guidance Automation Toolkit
*.gpState
# ReSharper is a .NET coding add-in
_ReSharper*/
*.[Rr]e[Ss]harper
*.DotSettings.user
# TeamCity is a build add-in
_TeamCity*
# DotCover is a Code Coverage Tool
*.dotCover
# AxoCover is a Code Coverage Tool
.axoCover/*
!.axoCover/settings.json
# Coverlet is a free, cross platform Code Coverage Tool
coverage*.json
coverage*.xml
coverage*.info
# Visual Studio code coverage results
*.coverage
*.coveragexml
# NCrunch
_NCrunch_*
.*crunch*.local.xml
nCrunchTemp_*
# MightyMoose
*.mm.*
AutoTest.Net/
# Web workbench (sass)
.sass-cache/
# Installshield output folder
[Ee]xpress/
# DocProject is a documentation generator add-in
DocProject/buildhelp/
DocProject/Help/*.HxT
DocProject/Help/*.HxC
DocProject/Help/*.hhc
DocProject/Help/*.hhk
DocProject/Help/*.hhp
DocProject/Help/Html2
DocProject/Help/html
# Click-Once directory
publish/
# Publish Web Output
*.[Pp]ublish.xml
*.azurePubxml
# Note: Comment the next line if you want to checkin your web deploy settings,
# but database connection strings (with potential passwords) will be unencrypted
*.pubxml
*.publishproj
# Microsoft Azure Web App publish settings. Comment the next line if you want to
# checkin your Azure Web App publish settings, but sensitive information contained
# in these scripts will be unencrypted
PublishScripts/
# NuGet Packages
*.nupkg
# NuGet Symbol Packages
*.snupkg
# The packages folder can be ignored because of Package Restore
**/[Pp]ackages/*
# except build/, which is used as an MSBuild target.
!**/[Pp]ackages/build/
# Uncomment if necessary however generally it will be regenerated when needed
#!**/[Pp]ackages/repositories.config
# NuGet v3's project.json files produces more ignorable files
*.nuget.props
*.nuget.targets
# Microsoft Azure Build Output
csx/
*.build.csdef
# Microsoft Azure Emulator
ecf/
rcf/
# Windows Store app package directories and files
AppPackages/
BundleArtifacts/
Package.StoreAssociation.xml
_pkginfo.txt
*.appx
*.appxbundle
*.appxupload
# Visual Studio cache files
# files ending in .cache can be ignored
*.[Cc]ache
# but keep track of directories ending in .cache
!?*.[Cc]ache/
# Others
ClientBin/
~$*
*~
*.dbmdl
*.dbproj.schemaview
*.jfm
*.pfx
*.publishsettings
orleans.codegen.cs
# Including strong name files can present a security risk
# (https://github.com/github/gitignore/pull/2483#issue-259490424)
#*.snk
# Since there are multiple workflows, uncomment next line to ignore bower_components
# (https://github.com/github/gitignore/pull/1529#issuecomment-104372622)
#bower_components/
# RIA/Silverlight projects
Generated_Code/
# Backup & report files from converting an old project file
# to a newer Visual Studio version. Backup files are not needed,
# because we have git ;-)
_UpgradeReport_Files/
Backup*/
UpgradeLog*.XML
UpgradeLog*.htm
ServiceFabricBackup/
*.rptproj.bak
# SQL Server files
*.mdf
*.ldf
*.ndf
# Business Intelligence projects
*.rdl.data
*.bim.layout
*.bim_*.settings
*.rptproj.rsuser
*- [Bb]ackup.rdl
*- [Bb]ackup ([0-9]).rdl
*- [Bb]ackup ([0-9][0-9]).rdl
# Microsoft Fakes
FakesAssemblies/
# GhostDoc plugin setting file
*.GhostDoc.xml
# Node.js Tools for Visual Studio
.ntvs_analysis.dat
node_modules/
# Visual Studio 6 build log
*.plg
# Visual Studio 6 workspace options file
*.opt
# Visual Studio 6 auto-generated workspace file (contains which files were open etc.)
*.vbw
# Visual Studio 6 auto-generated project file (contains which files were open etc.)
*.vbp
# Visual Studio 6 workspace and project file (working project files containing files to include in project)
*.dsw
*.dsp
# Visual Studio 6 technical files
*.ncb
*.aps
# Visual Studio LightSwitch build output
**/*.HTMLClient/GeneratedArtifacts
**/*.DesktopClient/GeneratedArtifacts
**/*.DesktopClient/ModelManifest.xml
**/*.Server/GeneratedArtifacts
**/*.Server/ModelManifest.xml
_Pvt_Extensions
# Paket dependency manager
.paket/paket.exe
paket-files/
# FAKE - F# Make
.fake/
# CodeRush personal settings
.cr/personal
# Python Tools for Visual Studio (PTVS)
__pycache__/
*.pyc
# Cake - Uncomment if you are using it
# tools/**
# !tools/packages.config
# Tabs Studio
*.tss
# Telerik's JustMock configuration file
*.jmconfig
# BizTalk build output
*.btp.cs
*.btm.cs
*.odx.cs
*.xsd.cs
# OpenCover UI analysis results
OpenCover/
# Azure Stream Analytics local run output
ASALocalRun/
# MSBuild Binary and Structured Log
*.binlog
# NVidia Nsight GPU debugger configuration file
*.nvuser
# MFractors (Xamarin productivity tool) working folder
.mfractor/
# Local History for Visual Studio
.localhistory/
# Visual Studio History (VSHistory) files
.vshistory/
# BeatPulse healthcheck temp database
healthchecksdb
# Backup folder for Package Reference Convert tool in Visual Studio 2017
MigrationBackup/
# Ionide (cross platform F# VS Code tools) working folder
.ionide/
# Fody - auto-generated XML schema
FodyWeavers.xsd
# VS Code files for those working on multiple tools
.vscode/*
!.vscode/settings.json
!.vscode/tasks.json
!.vscode/launch.json
!.vscode/extensions.json
*.code-workspace
# Local History for Visual Studio Code
.history/
# Windows Installer files from build outputs
*.cab
*.msi
*.msix
*.msm
*.msp
# JetBrains Rider
*.sln.iml
##
## Visual studio for Mac
##
# globs
Makefile.in
*.userprefs
*.usertasks
config.make
config.status
aclocal.m4
install-sh
autom4te.cache/
*.tar.gz
tarballs/
test-results/
# Mac bundle stuff
*.dmg
*.app
# content below from: https://github.com/github/gitignore/blob/master/Global/macOS.gitignore
# General
.DS_Store
.AppleDouble
.LSOverride
# Icon must end with two \r
Icon
# Thumbnails
._*
# Files that might appear in the root of a volume
.DocumentRevisions-V100
.fseventsd
.Spotlight-V100
.TemporaryItems
.Trashes
.VolumeIcon.icns
.com.apple.timemachine.donotpresent
# Directories potentially created on remote AFP share
.AppleDB
.AppleDesktop
Network Trash Folder
Temporary Items
.apdisk
# content below from: https://github.com/github/gitignore/blob/master/Global/Windows.gitignore
# Windows thumbnail cache files
Thumbs.db
ehthumbs.db
ehthumbs_vista.db
# Dump file
*.stackdump
# Folder config file
[Dd]esktop.ini
# Recycle Bin used on file shares
$RECYCLE.BIN/
# Windows Installer files
*.cab
*.msi
*.msix
*.msm
*.msp
# Windows shortcuts
*.lnk
nuget/runtimes/win-x64.dll

37
dotnet/Extism.sln Normal file
View File

@@ -0,0 +1,37 @@
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

@@ -0,0 +1,24 @@
<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.7.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

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

View File

@@ -0,0 +1,29 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>net7.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
</PropertyGroup>
<ItemGroup>
<None Include="..\..\..\wasm\code.wasm" Link="code.wasm">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="..\..\..\wasm\code-functions.wasm" Link="code-functions.wasm">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
</ItemGroup>
<ItemGroup>
<PackageReference Include="Extism.runtime.win-x64" Version="0.4.0" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\..\src\Extism.Sdk\Extism.Sdk.csproj" />
</ItemGroup>
</Project>

View File

@@ -0,0 +1,40 @@
using Extism.Sdk;
using Extism.Sdk.Native;
using System.Runtime.InteropServices;
using System.Text;
var context = new Context();
var userData = Marshal.StringToHGlobalAnsi("Hello again!");
using var helloWorld = new HostFunction(
"hello_world",
"env",
new[] { ExtismValType.I64 },
new[] { ExtismValType.I64 },
userData,
HelloWorld);
void HelloWorld(CurrentPlugin plugin, Span<ExtismVal> inputs, Span<ExtismVal> outputs, nint data)
{
Console.WriteLine("Hello from .NET!");
var text = Marshal.PtrToStringAnsi(data);
Console.WriteLine(text);
var input = plugin.ReadString(new nint(inputs[0].v.i64));
Console.WriteLine($"Input: {input}");
outputs[0].v.i64 = plugin.WriteString(input);
}
var wasm = File.ReadAllBytes("./code-functions.wasm");
using var plugin = context.CreatePlugin(wasm, new[] { helloWorld }, withWasi: true);
var output = Encoding.UTF8.GetString(
plugin.CallFunction("count_vowels", Encoding.UTF8.GetBytes("Hello World!"))
);
Console.WriteLine($"Output: {output}");

View File

@@ -0,0 +1,5 @@
## 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

@@ -0,0 +1,24 @@
<!-- 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

@@ -0,0 +1,191 @@
using System.Collections.Concurrent;
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 unsafe class Context : IDisposable
{
private readonly ConcurrentDictionary<int, Plugin> _plugins = new ConcurrentDictionary<int, Plugin>();
private const int DisposedMarker = 1;
private int _disposed;
/// <summary>
/// Initialize a new Extism Context.
/// </summary>
public Context()
{
unsafe
{
NativeHandle = LibExtism.extism_context_new();
}
}
/// <summary>
/// Native pointer to the Extism Context.
/// </summary>
internal LibExtism.ExtismContext* 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="functions">List of host functions expected by the plugin.</param>
/// <param name="withWasi">Enable/Disable WASI.</param>
public Plugin CreatePlugin(ReadOnlySpan<byte> wasm, HostFunction[] functions, bool withWasi)
{
CheckNotDisposed();
var functionHandles = functions.Select(f => f.NativeHandle).ToArray();
unsafe
{
fixed (byte* wasmPtr = wasm)
fixed (IntPtr* functionsPtr = functionHandles)
{
var index = LibExtism.extism_plugin_new(NativeHandle, wasmPtr, wasm.Length, functionsPtr, functions.Length, withWasi);
if (index == -1)
{
var errorMsg = GetError();
if (errorMsg != null)
{
throw new ExtismException(errorMsg);
}
else
{
throw new ExtismException("Failed to create plugin.");
}
}
return _plugins[index] = new Plugin(this, functions, index);
}
}
}
/// <summary>
/// Get a plugin by index.
/// </summary>
/// <param name="index">Index of plugin.</param>
/// <returns></returns>
public Plugin GetPlugin(int index)
{
return _plugins[index];
}
/// <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
}
foreach (var plugin in _plugins.Values)
{
plugin.Dispose();
}
// 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);
}
}

View File

@@ -0,0 +1,138 @@
using Extism.Sdk.Native;
using System.Text;
namespace Extism.Sdk
{
/// <summary>
/// Represents the current plugin. Can only be used within <see cref="HostFunction"/>s.
/// </summary>
public class CurrentPlugin
{
internal CurrentPlugin(nint nativeHandle)
{
NativeHandle = nativeHandle;
}
internal nint NativeHandle { get; }
/// <summary>
/// Returns a pointer to the memory of the currently running plugin.
/// NOTE: this should only be called from host functions.
/// </summary>
/// <returns></returns>
public nint GetMemory()
{
return LibExtism.extism_current_plugin_memory(NativeHandle);
}
/// <summary>
/// Reads a string from a memory block using UTF8.
/// </summary>
/// <param name="pointer"></param>
/// <returns></returns>
public string ReadString(nint pointer)
{
return ReadString(pointer, Encoding.UTF8);
}
/// <summary>
/// Reads a string form a memory block.
/// </summary>
/// <param name="pointer"></param>
/// <param name="encoding"></param>
/// <returns></returns>
public string ReadString(nint pointer, Encoding encoding)
{
var buffer = ReadBytes(pointer);
return encoding.GetString(buffer);
}
/// <summary>
/// Returns a span of bytes for a given block.
/// </summary>
/// <param name="pointer"></param>
/// <returns></returns>
public unsafe Span<byte> ReadBytes(nint pointer)
{
var mem = GetMemory();
var length = (int)BlockLength(pointer);
var ptr = (byte*)mem + pointer;
return new Span<byte>(ptr, length);
}
/// <summary>
/// Writes a string into the current plugin memory using UTF-8 encoding and returns the pointer of the block.
/// </summary>
/// <param name="value"></param>
public nint WriteString(string value)
=> WriteString(value, Encoding.UTF8);
/// <summary>
/// Writes a string into the current plugin memory and returns the pointer of the block.
/// </summary>
/// <param name="value"></param>
/// <param name="encoding"></param>
public nint WriteString(string value, Encoding encoding)
{
var bytes = encoding.GetBytes(value);
var pointer = AllocateBlock(bytes.Length);
WriteBytes(pointer, bytes);
return pointer;
}
/// <summary>
/// Writes a byte array into a block of memory.
/// </summary>
/// <param name="pointer"></param>
/// <param name="bytes"></param>
public unsafe void WriteBytes(nint pointer, Span<byte> bytes)
{
var length = BlockLength(pointer);
if (length < bytes.Length)
{
throw new InvalidOperationException("Destination block length is less than source block length.");
}
var mem = GetMemory();
var ptr = (void*)(mem + pointer);
var destination = new Span<byte>(ptr, bytes.Length);
bytes.CopyTo(destination);
}
/// <summary>
/// Frees a block of memory belonging to the current plugin.
/// </summary>
/// <param name="pointer"></param>
public void FreeBlock(nint pointer)
{
LibExtism.extism_current_plugin_memory_free(NativeHandle, pointer);
}
/// <summary>
/// Allocate a memory block in the currently running plugin.
///
/// </summary>
/// <param name="length"></param>
/// <returns></returns>
public nint AllocateBlock(long length)
{
return LibExtism.extism_current_plugin_memory_alloc(NativeHandle, length);
}
/// <summary>
/// Get the length of an allocated block.
/// NOTE: this should only be called from host functions.
/// </summary>
/// <param name="pointer"></param>
/// <returns></returns>
public long BlockLength(nint pointer)
{
return LibExtism.extism_current_plugin_memory_length(NativeHandle, pointer);
}
}
}

View File

@@ -0,0 +1,28 @@
<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.7.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

@@ -0,0 +1,40 @@
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

@@ -0,0 +1,146 @@
using Extism.Sdk.Native;
using System.Diagnostics.CodeAnalysis;
namespace Extism.Sdk
{
/// <summary>
/// A host function signature.
/// </summary>
/// <param name="plugin">Plugin Index</param>
/// <param name="inputs">Input parameters</param>
/// <param name="outputs">Output parameters, the host function can change this.</param>
/// <param name="userData">A data passed in during Host Function creation.</param>
public delegate void ExtismFunction(CurrentPlugin plugin, Span<ExtismVal> inputs, Span<ExtismVal> outputs, IntPtr userData);
/// <summary>
/// A function provided by the host that plugins can call.
/// </summary>
public class HostFunction : IDisposable
{
private const int DisposedMarker = 1;
private int _disposed;
/// <summary>
/// Registers a Host Function.
/// </summary>
/// <param name="functionName">The literal name of the function, how it would be called from a <see cref="Plugin"/>.</param>
/// <param name="inputTypes">The types of the input arguments/parameters the <see cref="Plugin"/> caller will provide.</param>
/// <param name="outputTypes">The types of the output returned from the host function to the <see cref="Plugin"/>.</param>
/// <param name="userData">An opaque pointer to an object from the host, accessible to the <see cref="Plugin"/>.
/// NOTE: it is the shared responsibility of the host and <see cref="Plugin"/> to cast/dereference this value properly.</param>
/// <param name="hostFunction"></param>
public HostFunction(
string functionName,
Span<ExtismValType> inputTypes,
Span<ExtismValType> outputTypes,
IntPtr userData,
ExtismFunction hostFunction) :
this(functionName, "", inputTypes, outputTypes, userData, hostFunction)
{
}
/// <summary>
/// Registers a Host Function.
/// </summary>
/// <param name="functionName">The literal name of the function, how it would be called from a <see cref="Plugin"/>.</param>
/// <param name="namespace">Function namespace.</param>
/// <param name="inputTypes">The types of the input arguments/parameters the <see cref="Plugin"/> caller will provide.</param>
/// <param name="outputTypes">The types of the output returned from the host function to the <see cref="Plugin"/>.</param>
/// <param name="userData">An opaque pointer to an object from the host, accessible to the <see cref="Plugin"/>.
/// NOTE: it is the shared responsibility of the host and <see cref="Plugin"/> to cast/dereference this value properly.</param>
/// <param name="hostFunction"></param>
unsafe public HostFunction(
string functionName,
string @namespace,
Span<ExtismValType> inputTypes,
Span<ExtismValType> outputTypes,
IntPtr userData,
ExtismFunction hostFunction)
{
fixed (ExtismValType* inputs = inputTypes)
fixed (ExtismValType* outputs = outputTypes)
{
NativeHandle = LibExtism.extism_function_new(functionName, inputs, inputTypes.Length, outputs, outputTypes.Length, CallbackImpl, userData, IntPtr.Zero);
}
if (!string.IsNullOrEmpty(@namespace))
{
LibExtism.extism_function_set_namespace(NativeHandle, @namespace);
}
void CallbackImpl(
nint plugin,
ExtismVal* inputsPtr,
uint n_inputs,
ExtismVal* outputsPtr,
uint n_outputs,
IntPtr data)
{
var outputs = new Span<ExtismVal>(outputsPtr, (int)n_outputs);
var inputs = new Span<ExtismVal>(inputsPtr, (int)n_inputs);
hostFunction(new CurrentPlugin(plugin), inputs, outputs, data);
}
}
internal IntPtr NativeHandle { get; }
/// <summary>
/// Frees all resources held by this Host Function.
/// </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 Host Function 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(HostFunction));
}
/// <summary>
/// Frees all resources held by this Host Function.
/// </summary>
unsafe protected virtual void Dispose(bool disposing)
{
if (disposing)
{
// Free up any managed resources here
}
// Free up unmanaged resources
LibExtism.extism_function_free(NativeHandle);
}
/// <summary>
/// Destructs the current Host Function and frees all resources used by it.
/// </summary>
~HostFunction()
{
Dispose(false);
}
}
}

View File

@@ -0,0 +1,347 @@
using System.Runtime.InteropServices;
namespace Extism.Sdk.Native;
/// <summary>
/// A union type for host function argument/return values.
/// </summary>
[StructLayout(LayoutKind.Explicit)]
public struct ExtismValUnion
{
/// <summary>
/// Set this for 32 bit integers
/// </summary>
[FieldOffset(0)]
public int i32;
/// <summary>
/// Set this for 64 bit integers
/// </summary>
[FieldOffset(0)]
public long i64;
/// <summary>
/// Set this for 32 bit floats
/// </summary>
[FieldOffset(0)]
public float f32;
/// <summary>
/// Set this for 64 bit floats
/// </summary>
[FieldOffset(0)]
public double f64;
}
/// <summary>
/// Represents Wasm data types that Extism can understand
/// </summary>
public enum ExtismValType : byte
{
/// <summary>
/// Signed 32 bit integer. Equivalent of <see cref="int"/> or <see cref="uint"/>
/// </summary>
I32,
/// <summary>
/// Signed 64 bit integer. Equivalent of <see cref="long"/> or <see cref="ulong"/>
/// </summary>
I64,
/// <summary>
/// Floating point 32 bit integer. Equivalent of <see cref="float"/>
/// </summary>
F32,
/// <summary>
/// Floating point 64 bit integer. Equivalent of <see cref="double"/>
/// </summary>
F64,
/// <summary>
/// A 128 bit number.
/// </summary>
V128,
/// <summary>
/// A reference to opaque data in the Wasm instance.
/// </summary>
FuncRef,
/// <summary>
/// A reference to opaque data in the Wasm instance.
/// </summary>
ExternRef
}
/// <summary>
/// `ExtismVal` holds the type and value of a function argument/return
/// </summary>
[StructLayout(LayoutKind.Sequential)]
public struct ExtismVal
{
/// <summary>
/// The type for the argument
/// </summary>
public ExtismValType t;
/// <summary>
/// The value for the argument
/// </summary>
public ExtismValUnion v;
}
/// <summary>
/// Functions exposed by the native Extism library.
/// </summary>
internal static class LibExtism
{
/// <summary>
/// A `Context` is used to store and manage plugins.
/// </summary>
[StructLayout(LayoutKind.Sequential)]
internal struct ExtismContext { }
/// <summary>
/// Host function signature
/// </summary>
/// <param name="plugin"></param>
/// <param name="inputs"></param>
/// <param name="n_inputs"></param>
/// <param name="outputs"></param>
/// <param name="n_outputs"></param>
/// <param name="data"></param>
unsafe internal delegate void InternalExtismFunction(nint plugin, ExtismVal* inputs, uint n_inputs, ExtismVal* outputs, uint n_outputs, IntPtr data);
/// <summary>
/// Returns a pointer to the memory of the currently running plugin.
/// NOTE: this should only be called from host functions.
/// </summary>
/// <param name="plugin"></param>
/// <returns></returns>
[DllImport("extism", EntryPoint = "extism_current_plugin_memory")]
internal static extern IntPtr extism_current_plugin_memory(nint plugin);
/// <summary>
/// Allocate a memory block in the currently running plugin
/// </summary>
/// <param name="plugin"></param>
/// <param name="n"></param>
/// <returns></returns>
[DllImport("extism", EntryPoint = "extism_current_plugin_memory_alloc")]
internal static extern IntPtr extism_current_plugin_memory_alloc(nint plugin, long n);
/// <summary>
/// Get the length of an allocated block.
/// NOTE: this should only be called from host functions.
/// </summary>
/// <param name="plugin"></param>
/// <param name="n"></param>
/// <returns></returns>
[DllImport("extism", EntryPoint = "extism_current_plugin_memory_length")]
internal static extern long extism_current_plugin_memory_length(nint plugin, long n);
/// <summary>
/// Get the length of an allocated block.
/// NOTE: this should only be called from host functions.
/// </summary>
/// <param name="plugin"></param>
/// <param name="ptr"></param>
[DllImport("extism", EntryPoint = "extism_current_plugin_memory_free")]
internal static extern void extism_current_plugin_memory_free(nint plugin, IntPtr ptr);
/// <summary>
/// Create a new host function.
/// </summary>
/// <param name="name">function name, this should be valid UTF-8</param>
/// <param name="inputs">argument types</param>
/// <param name="nInputs">number of argument types</param>
/// <param name="outputs">return types</param>
/// <param name="nOutputs">number of return types</param>
/// <param name="func">the function to call</param>
/// <param name="userData">a pointer that will be passed to the function when it's called this value should live as long as the function exists</param>
/// <param name="freeUserData">a callback to release the `user_data` value when the resulting `ExtismFunction` is freed.</param>
/// <returns></returns>
[DllImport("extism", EntryPoint = "extism_function_new")]
unsafe internal static extern IntPtr extism_function_new(string name, ExtismValType* inputs, long nInputs, ExtismValType* outputs, long nOutputs, InternalExtismFunction func, IntPtr userData, IntPtr freeUserData);
/// <summary>
/// Set the namespace of an <see cref="ExtismFunction"/>
/// </summary>
/// <param name="ptr"></param>
/// <param name="namespace"></param>
[DllImport("extism", EntryPoint = "extism_function_set_namespace")]
internal static extern void extism_function_set_namespace(IntPtr ptr, string @namespace);
/// <summary>
/// Free an <see cref="ExtismFunction"/>
/// </summary>
/// <param name="ptr"></param>
[DllImport("extism", EntryPoint = "extism_function_free")]
internal static extern void extism_function_free(IntPtr ptr);
/// <summary>
/// Create a new context.
/// </summary>
/// <returns>A pointer to the newly created context.</returns>
[DllImport("extism")]
unsafe internal static extern ExtismContext* extism_context_new();
/// <summary>
/// Remove a context from the registry and free associated memory.
/// </summary>
/// <param name="context"></param>
[DllImport("extism")]
unsafe internal static extern void extism_context_free(ExtismContext* 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 internal static extern int extism_plugin_new(ExtismContext* 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="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 internal static extern bool extism_plugin_update(ExtismContext* context, int plugin, byte* wasm, long wasmSize, Span<IntPtr> functions, long 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")]
unsafe internal static extern void extism_plugin_free(ExtismContext* context, int plugin);
/// <summary>
/// Remove all plugins from the registry.
/// </summary>
/// <param name="context"></param>
[DllImport("extism")]
unsafe internal static extern void extism_context_reset(ExtismContext* 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 internal static extern bool extism_plugin_config(ExtismContext* context, int 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")]
unsafe internal static extern bool extism_plugin_function_exists(ExtismContext* context, int 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 internal static extern int extism_plugin_call(ExtismContext* context, int 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")]
unsafe internal static extern IntPtr extism_error(ExtismContext* 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")]
unsafe internal static extern long extism_plugin_output_length(ExtismContext* context, int plugin);
/// <summary>
/// Get the plugin's output data.
/// </summary>
/// <param name="context"></param>
/// <param name="plugin"></param>
/// <returns></returns>
[DllImport("extism")]
unsafe internal static extern IntPtr extism_plugin_output_data(ExtismContext* context, int plugin);
/// <summary>
/// Set log file and level.
/// </summary>
/// <param name="filename"></param>
/// <param name="logLevel"></param>
/// <returns></returns>
[DllImport("extism")]
internal static extern bool extism_log_file(string filename, string logLevel);
/// <summary>
/// Get the Extism version string.
/// </summary>
/// <returns></returns>
[DllImport("extism", EntryPoint = "extism_version")]
internal static extern IntPtr extism_version();
/// <summary>
/// Extism Log Levels
/// </summary>
internal static class LogLevels
{
/// <summary>
/// Designates very serious errors.
/// </summary>
internal const string Error = "Error";
/// <summary>
/// Designates hazardous situations.
/// </summary>
internal const string Warn = "Warn";
/// <summary>
/// Designates useful information.
/// </summary>
internal const string Info = "Info";
/// <summary>
/// Designates lower priority information.
/// </summary>
internal const string Debug = "Debug";
/// <summary>
/// Designates very low priority, often extremely verbose, information.
/// </summary>
internal const string Trace = "Trace";
}
}

View File

@@ -0,0 +1,32 @@
namespace Extism.Sdk.Native;
/// <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

@@ -0,0 +1,210 @@
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 readonly HostFunction[] _functions;
private int _disposed;
/// <summary>
/// Create a and load a plug-in
/// Using this constructor will give the plug-in it's own internal Context
/// </summary>
/// <param name="wasm">A WASM module (wat or wasm) or a JSON encoded manifest.</param>
/// <param name="functions">List of host functions expected by the plugin.</param>
/// <param name="withWasi">Enable/Disable WASI.</param>
public static Plugin Create(ReadOnlySpan<byte> wasm, HostFunction[] functions, bool withWasi) {
var context = new Context();
return context.CreatePlugin(wasm, functions, withWasi);
}
internal Plugin(Context context, HostFunction[] functions, int index)
{
_context = context;
_functions = functions;
Index = index;
}
/// <summary>
/// A pointer to the native Plugin struct.
/// </summary>
internal int Index { 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();
var functions = _functions.Select(f => f.NativeHandle).ToArray();
fixed (byte* wasmPtr = wasm)
{
return LibExtism.extism_plugin_update(_context.NativeHandle, Index, wasmPtr, wasm.Length, functions, 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, Index, jsonPtr, json.Length);
}
}
/// <summary>
/// Checks if a specific function exists in the current plugin.
/// </summary>
unsafe public bool FunctionExists(string name)
{
CheckNotDisposed();
return LibExtism.extism_plugin_function_exists(_context.NativeHandle, Index, 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, Index, 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>
unsafe internal int OutputLength()
{
CheckNotDisposed();
return (int)LibExtism.extism_plugin_output_length(_context.NativeHandle, Index);
}
/// <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, Index).ToPointer();
return new Span<byte>(ptr, length);
}
}
/// <summary>
/// Get the error associated with the current plugin.
/// </summary>
/// <returns></returns>
unsafe internal string? GetError()
{
CheckNotDisposed();
var result = LibExtism.extism_error(_context.NativeHandle, Index);
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>
unsafe protected virtual void Dispose(bool disposing)
{
if (disposing)
{
// Free up any managed resources here
}
// Free up unmanaged resources
LibExtism.extism_plugin_free(_context.NativeHandle, Index);
}
/// <summary>
/// Destructs the current Plugin and frees all resources used by it.
/// </summary>
~Plugin()
{
Dispose(false);
}
}

View File

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

View File

@@ -0,0 +1,73 @@
using Extism.Sdk.Native;
using System.Reflection;
using System.Runtime.InteropServices;
using System.Text;
using Xunit;
namespace Extism.Sdk.Tests;
public class BasicTests
{
[Fact]
public void CountHelloWorldVowelsWithoutContext()
{
var binDirectory = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location)!;
var wasm = File.ReadAllBytes(Path.Combine(binDirectory, "code.wasm"));
using var plugin = Plugin.Create(wasm, Array.Empty<HostFunction>(), withWasi: true);
var response = plugin.CallFunction("count_vowels", Encoding.UTF8.GetBytes("Hello World"));
Assert.Equal("{\"count\": 3}", Encoding.UTF8.GetString(response));
}
[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, Array.Empty<HostFunction>(), withWasi: true);
var response = plugin.CallFunction("count_vowels", Encoding.UTF8.GetBytes("Hello World"));
Assert.Equal("{\"count\": 3}", Encoding.UTF8.GetString(response));
}
[Fact]
public void CountVowelsHostFunctions()
{
using var context = new Context();
var userData = Marshal.StringToHGlobalAnsi("Hello again!");
using var helloWorld = new HostFunction(
"hello_world",
"env",
new[] { ExtismValType.I64 },
new[] { ExtismValType.I64 },
userData,
HelloWorld);
var binDirectory = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location)!;
var wasm = File.ReadAllBytes(Path.Combine(binDirectory, "code-functions.wasm"));
using var plugin = context.CreatePlugin(wasm, new[] { helloWorld }, withWasi: true);
var response = plugin.CallFunction("count_vowels", Encoding.UTF8.GetBytes("Hello World"));
Assert.Equal("{\"count\": 3}", Encoding.UTF8.GetString(response));
void HelloWorld(CurrentPlugin plugin, Span<ExtismVal> inputs, Span<ExtismVal> outputs, nint data)
{
Console.WriteLine("Hello from .NET!");
var text = Marshal.PtrToStringAnsi(data);
Console.WriteLine(text);
var input = plugin.ReadString(new nint(inputs[0].v.i64));
Console.WriteLine($"Input: {input}");
var output = new string(input); // clone the string
outputs[0].v.i64 = plugin.WriteString(output);
}
}
}

View File

@@ -0,0 +1,42 @@
<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>
<None Include="..\..\..\wasm\code-functions.wasm" Link="code-functions.wasm">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\..\src\Extism.Sdk\Extism.Sdk.csproj" />
</ItemGroup>
<ItemGroup>
<PackageReference Include="Extism.runtime.win-x64" Version="0.4.0" />
</ItemGroup>
</Project>

View File

@@ -19,6 +19,30 @@
(name extism)
(synopsis "Extism bindings")
(description "Bindings to Extism, the universal plugin system")
(depends ocaml dune ctypes-foreign bigstringaf ppx_yojson_conv base64 ppx_inline_test)
(depends
(ocaml (>= 4.14.1))
dune
(ctypes (>= 0.18.0))
(ctypes-foreign (>= 0.18.0))
(bigstringaf (>= 0.9.0))
(ppx_yojson_conv (>= v0.15.0))
(extism-manifest (= :version))
(ppx_inline_test (>= v0.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
(ppx_yojson_conv (>= v0.15.0))
(ppx_inline_test (>= v0.15.0))
(base64 (>= 3.5.0))
)
(tags
(topics wasm plugin)))

View File

@@ -13,7 +13,7 @@ You can find this package on [hex.pm](https://hex.pm/packages/extism).
```elixir
def deps do
[
{:extism, "~> 0.0.1-rc.5"}
{:extism, "~> 0.1.0"}
]
end
```
@@ -70,4 +70,4 @@ The key method to know here is [Extism.Plugin#call](Extism.Plugin.html#call/3) w
```elixir
{:ok, plugin} = Extism.Context.new_plugin(ctx, manifest, false)
{:ok, output} = Extism.Plugin.call(plugin, "count_vowels", "this is a test")
```
```

View File

@@ -0,0 +1,31 @@
defmodule Extism.CancelHandle do
@moduledoc """
A CancelHandle is a handle generated by a plugin that allows it to be cancelled from another
thread while running.
"""
defstruct [
# The actual NIF Resource. PluginIndex and the context
handle: nil
]
def wrap_resource(handle) do
%__MODULE__{
handle: handle
}
end
@doc """
Cancel plugin execution
"""
def cancel(handle) do
Extism.Native.plugin_cancel(handle.handle)
end
end
defimpl Inspect, for: Extim.CancelHandle do
import Inspect.Algebra
def inspect(dict, opts) do
concat(["#Extism.CancelHandle<", to_doc(dict.handle, opts), ">"])
end
end

View File

@@ -49,7 +49,7 @@ defmodule Extism.Context do
## Parameters
- ctx: The Context to manage this plugin
- manifest: The String or Map of the WASM module or manifest
- 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
"""

View File

@@ -16,6 +16,8 @@ defmodule Extism.Native do
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()
def plugin_cancel_handle(_ctx, _plugin_id), do: error()
def plugin_cancel(_handle), do: error()
defp error, do: :erlang.nif_error(:nif_not_loaded)
end

View File

@@ -15,12 +15,25 @@ defmodule Extism.Plugin do
}
end
@doc """
Creates a new plugin
"""
def new(manifest, wasi \\ false, context \\ nil) do
ctx = context || Extism.Context.new()
{: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
@doc """
Call a plugin's function by name
## Examples
iex> {:ok, plugin} = Extism.Context.new_plugin(ctx, manifest, false)
iex> {:ok, plugin} = Extism.Plugin.new(manifest, false)
iex> {:ok, output} = Extism.Plugin.call(plugin, "count_vowels", "this is a test")
# {:ok, "{\"count\": 4}"}
@@ -44,6 +57,14 @@ defmodule Extism.Plugin do
@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)

View File

@@ -4,8 +4,8 @@ defmodule Extism.MixProject do
def project do
[
app: :extism,
version: "0.0.1-rc.5",
elixir: "~> 1.14",
version: "0.5.1",
elixir: "~> 1.12",
start_permanent: Mix.env() == :prod,
deps: deps(),
package: package(),
@@ -23,7 +23,7 @@ defmodule Extism.MixProject do
defp deps do
[
{:rustler, "~> 0.26.0"},
{:rustler, "~> 0.29.1"},
{:json, "~> 1.4"},
{:ex_doc, "~> 0.21", only: :dev, runtime: false}
]
@@ -43,7 +43,7 @@ defmodule Extism.MixProject do
licenses: ["BSD-3-Clause"],
description: "Extism Host SDK for Elixir and Erlang",
name: "extism",
files: ~w(lib native priv .formatter.exs mix.exs README.md LICENSE),
files: ~w(lib native .formatter.exs mix.exs README.md LICENSE),
links: %{"GitHub" => "https://github.com/extism/extism"}
]
end

View File

@@ -1,12 +1,12 @@
%{
"earmark_parser": {:hex, :earmark_parser, "1.4.29", "149d50dcb3a93d9f3d6f3ecf18c918fb5a2d3c001b5d3305c926cddfbd33355b", [:mix], [], "hexpm", "4902af1b3eb139016aed210888748db8070b8125c2342ce3dcae4f38dcc63503"},
"ex_doc": {:hex, :ex_doc, "0.29.0", "4a1cb903ce746aceef9c1f9ae8a6c12b742a5461e6959b9d3b24d813ffbea146", [: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", "f096adb8bbca677d35d278223361c7792d496b3fc0d0224c9d4bc2f651af5db1"},
"earmark_parser": {:hex, :earmark_parser, "1.4.33", "3c3fd9673bb5dcc9edc28dd90f50c87ce506d1f71b70e3de69aa8154bc695d44", [:mix], [], "hexpm", "2d526833729b59b9fdb85785078697c72ac5e5066350663e5be6a1182da61b8f"},
"ex_doc": {:hex, :ex_doc, "0.30.5", "aa6da96a5c23389d7dc7c381eba862710e108cee9cfdc629b7ec021313900e9e", [:mix], [{:earmark_parser, "~> 1.4.31", [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", "88a1e115dcb91cefeef7e22df4a6ebbe4634fbf98b38adcbc25c9607d6d9d8e6"},
"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"},
"makeup_elixir": {:hex, :makeup_elixir, "0.16.1", "cc9e3ca312f1cfeccc572b37a09980287e243648108384b97ff2b76e505c3555", [:mix], [{:makeup, "~> 1.0", [hex: :makeup, repo: "hexpm", optional: false]}, {:nimble_parsec, "~> 1.2.3 or ~> 1.3", [hex: :nimble_parsec, repo: "hexpm", optional: false]}], "hexpm", "e127a341ad1b209bd80f7bd1620a15693a9908ed780c3b763bccf7d200c767c6"},
"makeup_erlang": {:hex, :makeup_erlang, "0.1.2", "ad87296a092a46e03b7e9b0be7631ddcf64c790fa68a9ef5323b6cbb36affc72", [:mix], [{:makeup, "~> 1.0", [hex: :makeup, repo: "hexpm", optional: false]}], "hexpm", "f3f5a1ca93ce6e092d92b6d9c049bcda58a3b617a8d888f8e7231c85630e8108"},
"nimble_parsec": {:hex, :nimble_parsec, "1.3.1", "2c54013ecf170e249e9291ed0a62e5832f70a476c61da16f6aac6dca0189f2af", [:mix], [], "hexpm", "2682e3c0b2eb58d90c6375fc0cc30bc7be06f365bf72608804fb9cffa5e1b167"},
"rustler": {:hex, :rustler, "0.29.1", "880f20ae3027bd7945def6cea767f5257bc926f33ff50c0d5d5a5315883c084d", [:mix], [{:jason, "~> 1.0", [hex: :jason, repo: "hexpm", optional: false]}, {:toml, "~> 0.6", [hex: :toml, repo: "hexpm", optional: false]}], "hexpm", "109497d701861bfcd26eb8f5801fe327a8eef304f56a5b63ef61151ff44ac9b6"},
"toml": {:hex, :toml, "0.7.0", "fbcd773caa937d0c7a02c301a1feea25612720ac3fa1ccb8bfd9d30d822911de", [:mix], [], "hexpm", "0690246a2478c1defd100b0c9b89b4ea280a22be9a7b313a8a058a2408a2fa70"},
}

View File

@@ -1,6 +1,6 @@
[package]
name = "extism_nif"
version = "0.0.1-rc.5"
version = "0.3.0"
edition = "2021"
authors = ["Benjamin Eckel <bhelx@simst.im>"]
@@ -9,7 +9,10 @@ name = "extism_nif"
path = "src/lib.rs"
crate-type = ["cdylib"]
# need this to be here and be empty
[workspace]
[dependencies]
rustler = "0.26.0"
extism = { version = "0.0.1-rc.5" }
rustler = "0.29.1"
extism = "0.5.2"
log = "0.4"

View File

@@ -1,10 +1,10 @@
use rustler::{Atom, Env, Term, ResourceArc};
use extism::{Plugin, Context};
use std::str;
use extism::{Context, Plugin};
use rustler::{Atom, Env, ResourceArc, Term};
use std::mem;
use std::path::Path;
use std::str;
use std::str::FromStr;
use std::sync::RwLock;
use std::mem;
mod atoms {
rustler::atoms! {
@@ -15,27 +15,33 @@ mod atoms {
}
struct ExtismContext {
ctx: RwLock<Context>
ctx: RwLock<Context>,
}
unsafe impl Sync for ExtismContext {}
unsafe impl Send for ExtismContext {}
struct ExtismCancelHandle {
handle: RwLock<extism::CancelHandle>,
}
unsafe impl Sync for ExtismCancelHandle {}
unsafe impl Send for ExtismCancelHandle {}
fn load(env: Env, _: Term) -> bool {
rustler::resource!(ExtismContext, env);
rustler::resource!(ExtismCancelHandle, env);
true
}
fn to_rustler_error(extism_error: extism::Error) -> rustler::Error {
match extism_error {
extism::Error::UnableToLoadPlugin(msg) => rustler::Error::Term(Box::new(msg)),
extism::Error::Message(msg) => rustler::Error::Term(Box::new(msg)),
extism::Error::Json(json_err) => rustler::Error::Term(Box::new(json_err.to_string()))
}
rustler::Error::Term(Box::new(extism_error.to_string()))
}
#[rustler::nif]
fn context_new() -> ResourceArc<ExtismContext> {
ResourceArc::new(
ExtismContext { ctx: RwLock::new(Context::new()) }
)
ResourceArc::new(ExtismContext {
ctx: RwLock::new(Context::new()),
})
}
#[rustler::nif]
@@ -46,14 +52,18 @@ fn context_reset(ctx: ResourceArc<ExtismContext>) {
#[rustler::nif]
fn context_free(ctx: ResourceArc<ExtismContext>) {
let context = &ctx.ctx.read().unwrap();
let context = ctx.ctx.read().unwrap();
std::mem::drop(context)
}
#[rustler::nif]
fn plugin_new_with_manifest(ctx: ResourceArc<ExtismContext>, manifest_payload: String, wasi: bool) -> Result<i32, rustler::Error> {
let context = &ctx.ctx.write().unwrap();
let result = match Plugin::new(context, manifest_payload, wasi) {
fn plugin_new_with_manifest(
ctx: ResourceArc<ExtismContext>,
manifest_payload: String,
wasi: bool,
) -> Result<i32, rustler::Error> {
let context = ctx.ctx.write().unwrap();
let result = match Plugin::new(&context, manifest_payload, [], wasi) {
Err(e) => Err(to_rustler_error(e)),
Ok(plugin) => {
let plugin_id = plugin.as_i32();
@@ -67,17 +77,22 @@ fn plugin_new_with_manifest(ctx: ResourceArc<ExtismContext>, manifest_payload: S
}
#[rustler::nif]
fn plugin_call(ctx: ResourceArc<ExtismContext>, plugin_id: i32, name: String, input: String) -> Result<String, rustler::Error> {
fn plugin_call(
ctx: ResourceArc<ExtismContext>,
plugin_id: i32,
name: String,
input: String,
) -> Result<String, rustler::Error> {
let context = &ctx.ctx.read().unwrap();
let plugin = unsafe { Plugin::from_id(plugin_id, context) };
let mut plugin = unsafe { Plugin::from_id(plugin_id, context) };
let result = match plugin.call(name, input) {
Err(e) => Err(to_rustler_error(e)),
Ok(result) => {
match str::from_utf8(&result) {
Ok(output) => Ok(output.to_string()),
Err(_e) => Err(rustler::Error::Term(Box::new("Could not read output from plugin")))
}
}
Ok(result) => match str::from_utf8(result) {
Ok(output) => Ok(output.to_string()),
Err(_e) => Err(rustler::Error::Term(Box::new(
"Could not read output from plugin",
))),
},
};
// this forget should be safe because the context will clean up
// all it's plugins when it is dropped
@@ -86,14 +101,17 @@ fn plugin_call(ctx: ResourceArc<ExtismContext>, plugin_id: i32, name: String, in
}
#[rustler::nif]
fn plugin_update_manifest(ctx: ResourceArc<ExtismContext>, plugin_id: i32, manifest_payload: String, wasi: bool) -> Result<(), rustler::Error> {
fn plugin_update_manifest(
ctx: ResourceArc<ExtismContext>,
plugin_id: i32,
manifest_payload: String,
wasi: bool,
) -> Result<(), rustler::Error> {
let context = &ctx.ctx.read().unwrap();
let mut plugin = unsafe { Plugin::from_id(plugin_id, context) };
let result = match plugin.update(manifest_payload, wasi) {
Ok(()) => {
Ok(())
},
Err(e) => Err(to_rustler_error(e))
let result = match plugin.update(manifest_payload, [], wasi) {
Ok(()) => Ok(()),
Err(e) => Err(to_rustler_error(e)),
};
// this forget should be safe because the context will clean up
// all it's plugins when it is dropped
@@ -101,6 +119,24 @@ fn plugin_update_manifest(ctx: ResourceArc<ExtismContext>, plugin_id: i32, manif
result
}
#[rustler::nif]
fn plugin_cancel_handle(
ctx: ResourceArc<ExtismContext>,
plugin_id: i32,
) -> Result<ResourceArc<ExtismCancelHandle>, rustler::Error> {
let context = &ctx.ctx.read().unwrap();
let plugin = unsafe { Plugin::from_id(plugin_id, context) };
let handle = plugin.cancel_handle();
Ok(ResourceArc::new(ExtismCancelHandle {
handle: RwLock::new(handle),
}))
}
#[rustler::nif]
fn plugin_cancel(handle: ResourceArc<ExtismCancelHandle>) -> bool {
handle.handle.read().unwrap().cancel()
}
#[rustler::nif]
fn plugin_free(ctx: ResourceArc<ExtismContext>, plugin_id: i32) -> Result<(), rustler::Error> {
let context = &ctx.ctx.read().unwrap();
@@ -113,16 +149,28 @@ fn plugin_free(ctx: ResourceArc<ExtismContext>, plugin_id: i32) -> Result<(), ru
fn set_log_file(filename: String, log_level: String) -> Result<Atom, rustler::Error> {
let path = Path::new(&filename);
match log::Level::from_str(&log_level) {
Err(_e) => Err(rustler::Error::Term(Box::new(format!("{} not a valid log level", log_level)))),
Err(_e) => Err(rustler::Error::Term(Box::new(format!(
"{} not a valid log level",
log_level
)))),
Ok(level) => {
extism::set_log_file(path, Some(level));
Ok(atoms::ok())
if extism::set_log_file(path, Some(level)) {
Ok(atoms::ok())
} else {
Err(rustler::Error::Term(Box::new(
"Did not set log file, received false from the API.",
)))
}
}
}
}
#[rustler::nif]
fn plugin_has_function(ctx: ResourceArc<ExtismContext>, plugin_id: i32, function_name: String) -> Result<bool, rustler::Error> {
fn plugin_has_function(
ctx: ResourceArc<ExtismContext>,
plugin_id: i32,
function_name: String,
) -> Result<bool, rustler::Error> {
let context = &ctx.ctx.read().unwrap();
let plugin = unsafe { Plugin::from_id(plugin_id, context) };
let has_function = plugin.has_function(function_name);
@@ -142,6 +190,8 @@ rustler::init!(
plugin_call,
plugin_update_manifest,
plugin_has_function,
plugin_cancel_handle,
plugin_cancel,
plugin_free,
set_log_file,
],

View File

@@ -35,6 +35,8 @@ defmodule ExtismTest do
assert JSON.decode(output) == {:ok, %{"count" => 7}}
{:ok, output} = Extism.Plugin.call(plugin, "count_vowels", "this is a test thrice")
assert JSON.decode(output) == {:ok, %{"count" => 6}}
{:ok, output} = Extism.Plugin.call(plugin, "count_vowels", "🌎hello🌎world🌎")
assert JSON.decode(output) == {:ok, %{"count" => 3}}
Extism.Context.free(ctx)
end

34
extism-manifest.opam Normal file
View File

@@ -0,0 +1,34 @@
# This file is generated by dune, edit dune-project instead
opam-version: "2.0"
synopsis: "Extism manifest bindings"
description: "Bindings to the Extism manifest format"
maintainer: ["Extism Authors <oss@extism.org>"]
authors: ["Extism Authors <oss@extism.org>"]
license: "BSD-3-Clause"
tags: ["topics" "wasm" "plugin"]
homepage: "https://github.com/extism/extism"
doc: "https://github.com/extism/extism"
bug-reports: "https://github.com/extism/extism/issues"
depends: [
"ocaml" {>= "4.14.1"}
"dune" {>= "3.2"}
"ppx_yojson_conv" {>= "v0.15.0"}
"ppx_inline_test" {>= "v0.15.0"}
"base64" {>= "3.5.0"}
"odoc" {with-doc}
]
build: [
["dune" "subst"] {dev}
[
"dune"
"build"
"-p"
name
"-j"
jobs
"@install"
"@runtest" {with-test}
"@doc" {with-doc}
]
]
dev-repo: "git+https://github.com/extism/extism.git"

350
extism.go
View File

@@ -5,13 +5,50 @@ import (
"errors"
"fmt"
"io"
"runtime/cgo"
"unsafe"
)
/*
#cgo pkg-config: libextism.pc
#cgo CFLAGS: -I/usr/local/include
#cgo LDFLAGS: -L/usr/local/lib -lextism
#include <extism.h>
#include <stdlib.h>
int64_t extism_val_i64(ExtismValUnion* x){
return x->i64;
}
int32_t extism_val_i32(ExtismValUnion* x){
return x->i32;
}
float extism_val_f32(ExtismValUnion* x){
return x->f32;
}
double extism_val_f64(ExtismValUnion* x){
return x->f64;
}
void extism_val_set_i64(ExtismValUnion* x, int64_t i){
x->i64 = i;
}
void extism_val_set_i32(ExtismValUnion* x, int32_t i){
x->i32 = i;
}
void extism_val_set_f32(ExtismValUnion* x, float f){
x->f32 = f;
}
void extism_val_set_f64(ExtismValUnion* x, double f){
x->f64 = f;
}
*/
import "C"
@@ -20,6 +57,106 @@ type Context struct {
pointer *C.ExtismContext
}
type ValType = C.ExtismValType
type Val = C.ExtismVal
type Size = C.ExtismSize
var (
I32 ValType = C.I32
I64 ValType = C.I64
F32 ValType = C.F32
F64 ValType = C.F64
V128 ValType = C.V128
FuncRef ValType = C.FuncRef
ExternRef ValType = C.ExternRef
)
// Function is used to define host functions
type Function struct {
pointer *C.ExtismFunction
userData cgo.Handle
}
// Free a function
func (f *Function) Free() {
C.extism_function_free(f.pointer)
f.pointer = nil
f.userData.Delete()
}
// NewFunction creates a new host function with the given name, input/outputs and optional user data, which can be an
// arbitrary `interface{}`
func NewFunction(name string, inputs []ValType, outputs []ValType, f unsafe.Pointer, userData interface{}) Function {
var function Function
function.userData = cgo.NewHandle(userData)
cname := C.CString(name)
ptr := unsafe.Pointer(function.userData)
var inputsPtr *C.ExtismValType = nil
if len(inputs) > 0 {
inputsPtr = (*C.ExtismValType)(&inputs[0])
}
var outputsPtr *C.ExtismValType = nil
if len(outputs) > 0 {
outputsPtr = (*C.ExtismValType)(&outputs[0])
}
function.pointer = C.extism_function_new(
cname,
inputsPtr,
C.uint64_t(len(inputs)),
outputsPtr,
C.uint64_t(len(outputs)),
(*[0]byte)(f),
ptr,
nil,
)
C.free(unsafe.Pointer(cname))
return function
}
func (f *Function) SetNamespace(s string) {
cstr := C.CString(s)
defer C.free(unsafe.Pointer(cstr))
C.extism_function_set_namespace(f.pointer, cstr)
}
func (f Function) WithNamespace(s string) Function {
f.SetNamespace(s)
return f
}
type CurrentPlugin struct {
pointer *C.ExtismCurrentPlugin
}
func GetCurrentPlugin(ptr unsafe.Pointer) CurrentPlugin {
return CurrentPlugin{
pointer: (*C.ExtismCurrentPlugin)(ptr),
}
}
func (p *CurrentPlugin) Memory(offs uint) []byte {
length := C.extism_current_plugin_memory_length(p.pointer, C.uint64_t(offs))
data := unsafe.Pointer(C.extism_current_plugin_memory(p.pointer))
return unsafe.Slice((*byte)(unsafe.Add(data, offs)), C.int(length))
}
// Alloc a new memory block of the given length, returning its offset
func (p *CurrentPlugin) Alloc(n uint) uint {
return uint(C.extism_current_plugin_memory_alloc(p.pointer, C.uint64_t(n)))
}
// Free the memory block specified by the given offset
func (p *CurrentPlugin) Free(offs uint) {
C.extism_current_plugin_memory_free(p.pointer, C.uint64_t(offs))
}
// Length returns the number of bytes allocated at the specified offset
func (p *CurrentPlugin) Length(offs uint) uint {
return uint(C.extism_current_plugin_memory_length(p.pointer, C.uint64_t(offs)))
}
// NewContext creates a new context, it should be freed using the `Free` method
func NewContext() Context {
p := C.extism_context_new()
@@ -36,8 +173,9 @@ func (ctx *Context) Free() {
// Plugin is used to call WASM functions
type Plugin struct {
ctx *Context
id int32
ctx *Context
id int32
functions []Function
}
type WasmData struct {
@@ -53,11 +191,11 @@ type WasmFile struct {
}
type WasmUrl struct {
Url string `json:"url"`
Hash string `json:"hash,omitempty"`
Header map[string]string `json:"header,omitempty"`
Name string `json:"name,omitempty"`
Method string `json:"method,omitempty"`
Url string `json:"url"`
Hash string `json:"hash,omitempty"`
Headers map[string]string `json:"headers,omitempty"`
Name string `json:"name,omitempty"`
Method string `json:"method,omitempty"`
}
type Wasm interface{}
@@ -65,10 +203,12 @@ type Wasm interface{}
type Manifest struct {
Wasm []Wasm `json:"wasm"`
Memory struct {
Max uint32 `json:"max,omitempty"`
MaxPages uint32 `json:"max_pages,omitempty"`
} `json:"memory,omitempty"`
Config map[string]string `json:"config,omitempty"`
AllowedHosts []string `json:"allowed_hosts,omitempty"`
AllowedPaths map[string]string `json:"allowed_paths,omitempty"`
Timeout uint `json:"timeout_ms,omitempty"`
}
func makePointer(data []byte) unsafe.Pointer {
@@ -94,14 +234,32 @@ func ExtismVersion() string {
return C.GoString(C.extism_version())
}
func register(ctx *Context, data []byte, wasi bool) (Plugin, error) {
func register(ctx *Context, data []byte, functions []Function, wasi bool) (Plugin, error) {
ptr := makePointer(data)
plugin := C.extism_plugin_new(
ctx.pointer,
(*C.uchar)(ptr),
C.uint64_t(len(data)),
C._Bool(wasi),
)
functionPointers := []*C.ExtismFunction{}
for _, f := range functions {
functionPointers = append(functionPointers, f.pointer)
}
plugin := C.int32_t(-1)
if len(functions) == 0 {
plugin = C.extism_plugin_new(
ctx.pointer,
(*C.uchar)(ptr),
C.uint64_t(len(data)),
nil,
0,
C._Bool(wasi))
} else {
plugin = C.extism_plugin_new(
ctx.pointer,
(*C.uchar)(ptr),
C.uint64_t(len(data)),
&functionPointers[0],
C.uint64_t(len(functions)),
C._Bool(wasi),
)
}
if plugin < 0 {
err := C.extism_error(ctx.pointer, C.int32_t(-1))
@@ -115,21 +273,44 @@ func register(ctx *Context, data []byte, wasi bool) (Plugin, error) {
)
}
return Plugin{id: int32(plugin), ctx: ctx}, nil
return Plugin{id: int32(plugin), ctx: ctx, functions: functions}, nil
}
func update(ctx *Context, plugin int32, data []byte, wasi bool) error {
func update(ctx *Context, plugin int32, data []byte, functions []Function, wasi bool) error {
ptr := makePointer(data)
b := bool(C.extism_plugin_update(
ctx.pointer,
C.int32_t(plugin),
(*C.uchar)(ptr),
C.uint64_t(len(data)),
C._Bool(wasi),
))
functionPointers := []*C.ExtismFunction{}
for _, f := range functions {
functionPointers = append(functionPointers, f.pointer)
}
if b {
return nil
if len(functions) == 0 {
b := bool(C.extism_plugin_update(
ctx.pointer,
C.int32_t(plugin),
(*C.uchar)(ptr),
C.uint64_t(len(data)),
nil,
0,
C._Bool(wasi),
))
if b {
return nil
}
} else {
b := bool(C.extism_plugin_update(
ctx.pointer,
C.int32_t(plugin),
(*C.uchar)(ptr),
C.uint64_t(len(data)),
&functionPointers[0],
C.uint64_t(len(functions)),
C._Bool(wasi),
))
if b {
return nil
}
}
err := C.extism_error(ctx.pointer, C.int32_t(-1))
@@ -143,44 +324,57 @@ func update(ctx *Context, plugin int32, data []byte, wasi bool) error {
)
}
// NewPlugin creates a plugin in its own context
func NewPlugin(module io.Reader, functions []Function, wasi bool) (Plugin, error) {
ctx := NewContext()
return ctx.Plugin(module, functions, wasi)
}
// NewPlugin creates a plugin in its own context from a manifest
func NewPluginFromManifest(manifest Manifest, functions []Function, wasi bool) (Plugin, error) {
ctx := NewContext()
return ctx.PluginFromManifest(manifest, functions, wasi)
}
// PluginFromManifest creates a plugin from a `Manifest`
func (ctx *Context) PluginFromManifest(manifest Manifest, wasi bool) (Plugin, error) {
func (ctx *Context) PluginFromManifest(manifest Manifest, functions []Function, wasi bool) (Plugin, error) {
data, err := json.Marshal(manifest)
if err != nil {
return Plugin{id: -1}, err
}
return register(ctx, data, wasi)
return register(ctx, data, functions, wasi)
}
// Plugin creates a plugin from a WASM module
func (ctx *Context) Plugin(module io.Reader, wasi bool) (Plugin, error) {
func (ctx *Context) Plugin(module io.Reader, functions []Function, wasi bool) (Plugin, error) {
wasm, err := io.ReadAll(module)
if err != nil {
return Plugin{id: -1}, err
}
return register(ctx, wasm, wasi)
return register(ctx, wasm, functions, wasi)
}
// Update a plugin with a new WASM module
func (p *Plugin) Update(module io.Reader, wasi bool) error {
func (p *Plugin) Update(module io.Reader, functions []Function, wasi bool) error {
wasm, err := io.ReadAll(module)
if err != nil {
return err
}
return update(p.ctx, p.id, wasm, wasi)
p.functions = functions
return update(p.ctx, p.id, wasm, functions, wasi)
}
// Update a plugin with a new Manifest
func (p *Plugin) UpdateManifest(manifest Manifest, wasi bool) error {
func (p *Plugin) UpdateManifest(manifest Manifest, functions []Function, wasi bool) error {
data, err := json.Marshal(manifest)
if err != nil {
return err
}
return update(p.ctx, p.id, data, wasi)
p.functions = functions
return update(p.ctx, p.id, data, functions, wasi)
}
// Set configuration values
@@ -194,7 +388,7 @@ func (plugin Plugin) SetConfig(data map[string][]byte) error {
return nil
}
/// FunctionExists returns true when the name function is present in the plugin
// FunctionExists returns true when the named function is present in the plugin
func (plugin Plugin) FunctionExists(functionName string) bool {
name := C.CString(functionName)
b := C.extism_plugin_function_exists(plugin.ctx.pointer, C.int(plugin.id), name)
@@ -202,7 +396,7 @@ func (plugin Plugin) FunctionExists(functionName string) bool {
return bool(b)
}
/// Call a function by name with the given input, returning the output
// Call a function by name with the given input, returning the output
func (plugin Plugin) Call(functionName string, input []byte) ([]byte, error) {
ptr := makePointer(input)
name := C.CString(functionName)
@@ -231,8 +425,7 @@ func (plugin Plugin) Call(functionName string, input []byte) ([]byte, error) {
if length > 0 {
x := C.extism_plugin_output_data(plugin.ctx.pointer, C.int32_t(plugin.id))
y := (*[]byte)(unsafe.Pointer(&x))
return []byte((*y)[0:length]), nil
return unsafe.Slice((*byte)(x), C.int(length)), nil
}
return []byte{}, nil
@@ -251,3 +444,80 @@ func (plugin *Plugin) Free() {
func (ctx Context) Reset() {
C.extism_context_reset(ctx.pointer)
}
// ValGetI64 returns an I64 from an ExtismVal, it accepts a pointer to a C.ExtismVal
func ValGetI64(v unsafe.Pointer) int64 {
return int64(C.extism_val_i64(&(*Val)(v).v))
}
// ValGetUInt returns a uint from an ExtismVal, it accepts a pointer to a C.ExtismVal
func ValGetUInt(v unsafe.Pointer) uint {
return uint(C.extism_val_i64(&(*Val)(v).v))
}
// ValGetI32 returns an int32 from an ExtismVal, it accepts a pointer to a C.ExtismVal
func ValGetI32(v unsafe.Pointer) int32 {
return int32(C.extism_val_i32(&(*Val)(v).v))
}
// ValGetF32 returns a float32 from an ExtismVal, it accepts a pointer to a C.ExtismVal
func ValGetF32(v unsafe.Pointer) float32 {
return float32(C.extism_val_f32(&(*Val)(v).v))
}
// ValGetF32 returns a float64 from an ExtismVal, it accepts a pointer to a C.ExtismVal
func ValGetF64(v unsafe.Pointer) float64 {
return float64(C.extism_val_i64(&(*Val)(v).v))
}
// ValSetI64 stores an int64 in an ExtismVal, it accepts a pointer to a C.ExtismVal and the new value
func ValSetI64(v unsafe.Pointer, i int64) {
C.extism_val_set_i64(&(*Val)(v).v, C.int64_t(i))
}
// ValSetI32 stores an int32 in an ExtismVal, it accepts a pointer to a C.ExtismVal and the new value
func ValSetI32(v unsafe.Pointer, i int32) {
C.extism_val_set_i32(&(*Val)(v).v, C.int32_t(i))
}
// ValSetF32 stores a float32 in an ExtismVal, it accepts a pointer to a C.ExtismVal and the new value
func ValSetF32(v unsafe.Pointer, i float32) {
C.extism_val_set_f32(&(*Val)(v).v, C.float(i))
}
// ValSetF64 stores a float64 in an ExtismVal, it accepts a pointer to a C.ExtismVal and the new value
func ValSetF64(v unsafe.Pointer, f float64) {
C.extism_val_set_f64(&(*Val)(v).v, C.double(f))
}
func (p *CurrentPlugin) ReturnBytes(v unsafe.Pointer, b []byte) {
mem := p.Alloc(uint(len(b)))
ptr := p.Memory(mem)
copy(ptr, b)
ValSetI64(v, int64(mem))
}
func (p *CurrentPlugin) ReturnString(v unsafe.Pointer, s string) {
p.ReturnBytes(v, []byte(s))
}
func (p *CurrentPlugin) InputBytes(v unsafe.Pointer) []byte {
return p.Memory(ValGetUInt(v))
}
func (p *CurrentPlugin) InputString(v unsafe.Pointer) string {
return string(p.InputBytes(v))
}
type CancelHandle struct {
pointer *C.ExtismCancelHandle
}
func (p *Plugin) CancelHandle() CancelHandle {
pointer := C.extism_plugin_cancel_handle(p.ctx.pointer, C.int(p.id))
return CancelHandle{pointer}
}
func (c *CancelHandle) Cancel() bool {
return bool(C.extism_plugin_cancel(c.pointer))
}

View File

@@ -10,13 +10,15 @@ homepage: "https://github.com/extism/extism"
doc: "https://github.com/extism/extism"
bug-reports: "https://github.com/extism/extism/issues"
depends: [
"ocaml"
"ocaml" {>= "4.14.1"}
"dune" {>= "3.2"}
"ctypes-foreign"
"bigstringaf"
"ppx_yojson_conv"
"base64"
"ppx_inline_test"
"ctypes" {>= "0.18.0"}
"ctypes-foreign" {>= "0.18.0"}
"bigstringaf" {>= "0.9.0"}
"ppx_yojson_conv" {>= "v0.15.0"}
"extism-manifest" {= version}
"ppx_inline_test" {>= "v0.15.0"}
"cmdliner" {>= "1.1.1"}
"odoc" {with-doc}
]
build: [
@@ -34,3 +36,5 @@ build: [
]
]
dev-repo: "git+https://github.com/extism/extism.git"
build-env: [EXTISM_TEST_NO_LIB = ""]
post-messages: ["See https://extism.org/docs/install/ for information about installing libextism"]

2
extism.opam.template Normal file
View File

@@ -0,0 +1,2 @@
build-env: [EXTISM_TEST_NO_LIB = ""]
post-messages: ["See https://extism.org/docs/install/ for information about installing libextism"]

View File

@@ -4,13 +4,19 @@ import (
"encoding/json"
"fmt"
"testing"
"time"
)
func manifest() Manifest {
func manifest(functions bool) Manifest {
path := "./wasm/code.wasm"
if functions {
path = "./wasm/code-functions.wasm"
}
return Manifest{
Wasm: []Wasm{
WasmFile{
Path: "./wasm/code.wasm",
Path: path,
},
},
}
@@ -38,7 +44,7 @@ func TestCallPlugin(t *testing.T) {
ctx := NewContext()
defer ctx.Free()
plugin, err := ctx.PluginFromManifest(manifest(), false)
plugin, err := ctx.PluginFromManifest(manifest(false), []Function{}, false)
if err != nil {
t.Error(err)
}
@@ -58,7 +64,7 @@ func TestFreePlugin(t *testing.T) {
ctx := NewContext()
defer ctx.Free()
plugin, err := ctx.PluginFromManifest(manifest(), false)
plugin, err := ctx.PluginFromManifest(manifest(false), []Function{}, false)
if err != nil {
t.Error(err)
}
@@ -78,7 +84,7 @@ func TestContextReset(t *testing.T) {
ctx := NewContext()
defer ctx.Free()
plugin, err := ctx.PluginFromManifest(manifest(), false)
plugin, err := ctx.PluginFromManifest(manifest(false), []Function{}, false)
if err != nil {
t.Error(err)
}
@@ -98,7 +104,7 @@ func TestCanUpdateAManifest(t *testing.T) {
ctx := NewContext()
defer ctx.Free()
plugin, err := ctx.PluginFromManifest(manifest(), false)
plugin, err := ctx.PluginFromManifest(manifest(false), []Function{}, false)
if err != nil {
t.Error(err)
}
@@ -107,7 +113,7 @@ func TestCanUpdateAManifest(t *testing.T) {
t.Error(err)
}
plugin.UpdateManifest(manifest(), false)
plugin.UpdateManifest(manifest(false), []Function{}, false)
// can still call the plugin
if err := expectVowelCount(plugin, "this is a test", 4); err != nil {
@@ -119,7 +125,7 @@ func TestFunctionExists(t *testing.T) {
ctx := NewContext()
defer ctx.Free()
plugin, err := ctx.PluginFromManifest(manifest(), false)
plugin, err := ctx.PluginFromManifest(manifest(false), []Function{}, false)
if err != nil {
t.Error(err)
}
@@ -136,7 +142,7 @@ func TestErrorsOnUnknownFunction(t *testing.T) {
ctx := NewContext()
defer ctx.Free()
plugin, err := ctx.PluginFromManifest(manifest(), false)
plugin, err := ctx.PluginFromManifest(manifest(false), []Function{}, false)
if err != nil {
t.Error(err)
}
@@ -146,3 +152,33 @@ func TestErrorsOnUnknownFunction(t *testing.T) {
t.Fatal("Was expecting call to unknown function to fail")
}
}
func TestCancel(t *testing.T) {
manifest := Manifest{
Wasm: []Wasm{
WasmFile{
Path: "./wasm/loop.wasm",
},
},
}
ctx := NewContext()
defer ctx.Free()
plugin, err := ctx.PluginFromManifest(manifest, []Function{}, false)
if err != nil {
t.Error(err)
}
cancelHandle := plugin.CancelHandle()
go func(handle CancelHandle) {
time.Sleep(time.Second * 1)
handle.Cancel()
}(cancelHandle)
_, err = plugin.Call("infinite_loop", []byte(""))
if err == nil {
t.Fail()
}
}

View File

@@ -4,17 +4,38 @@ import (
"encoding/json"
"fmt"
"os"
"runtime/cgo"
"unsafe"
"github.com/extism/extism"
)
/*
#include <extism.h>
EXTISM_GO_FUNCTION(hello_world);
*/
import "C"
//export hello_world
func hello_world(plugin unsafe.Pointer, inputs *C.ExtismVal, nInputs C.ExtismSize, outputs *C.ExtismVal, nOutputs C.ExtismSize, userData uintptr) {
fmt.Println("Hello from Go!")
s := cgo.Handle(userData)
fmt.Println(s.Value().(string))
inputSlice := unsafe.Slice(inputs, nInputs)
outputSlice := unsafe.Slice(outputs, nOutputs)
// Get memory pointed to by first element of input slice
p := extism.GetCurrentPlugin(plugin)
str := p.InputString(unsafe.Pointer(&inputSlice[0]))
fmt.Println(str)
outputSlice[0] = inputSlice[0]
}
func main() {
version := extism.ExtismVersion()
fmt.Println("Extism Version: ", version)
ctx := extism.NewContext()
defer ctx.Free() // this will free the context and all associated plugins
// set some input data to provide to the plugin module
var data []byte
if len(os.Args) > 1 {
@@ -22,9 +43,10 @@ func main() {
} else {
data = []byte("testing from go -> wasm shared memory...")
}
manifest := extism.Manifest{Wasm: []extism.Wasm{extism.WasmFile{Path: "../wasm/code.wasm"}}}
plugin, err := ctx.PluginFromManifest(manifest, false)
manifest := extism.Manifest{Wasm: []extism.Wasm{extism.WasmFile{Path: "../wasm/code-functions.wasm"}}}
f := extism.NewFunction("hello_world", []extism.ValType{extism.I64}, []extism.ValType{extism.I64}, C.hello_world, "Hello again!")
defer f.Free()
plugin, err := extism.NewPluginFromManifest(manifest, []extism.Function{f}, true)
if err != nil {
fmt.Println(err)
os.Exit(1)

View File

@@ -1,5 +1,5 @@
# Revision history for extism
## 0.1.0.0 -- YYYY-mm-dd
## 0.2.0.0 -- 2023-01-16
* First version. Released on an unsuspecting world.

View File

@@ -1,23 +1,24 @@
module Main where
import System.Exit (exitFailure, exitSuccess)
import qualified Data.ByteString as B
import Extism
import Extism.Manifest
import Extism.CurrentPlugin
import Extism.Manifest(manifest, wasmFile)
try f (Right x) = f x
try f (Left (ErrorMessage msg)) = do
_ <- putStrLn msg
exitFailure
unwrap (Right x) = x
unwrap (Left (ExtismError msg)) = do
error msg
handlePlugin plugin = do
res <- Extism.call plugin "count_vowels" (Extism.toByteString "this is a test")
try (\bs -> do
_ <- putStrLn (Extism.fromByteString bs)
_ <- Extism.free plugin
exitSuccess) res
hello plugin params msg = do
putStrLn "Hello from Haskell!"
putStrLn msg
offs <- allocBytes plugin (toByteString "{\"count\": 999}")
return [toI64 offs]
main = do
context <- Extism.newContext ()
plugin <- Extism.pluginFromManifest context (manifest [wasmFile "../wasm/code.wasm"]) False
try handlePlugin plugin
setLogFile "stdout" Error
let m = manifest [wasmFile "../wasm/code-functions.wasm"]
f <- hostFunction "hello_world" [I64] [I64] hello "Hello, again"
plugin <- unwrap <$> createPluginFromManifest m [f] True
res <- unwrap <$> call plugin "count_vowels" (toByteString "this is a test")
putStrLn (fromByteString res)
free plugin

33
haskell/Makefile Normal file
View File

@@ -0,0 +1,33 @@
.PHONY: test
prepare:
cabal update
build: prepare
cabal build
test: prepare
cabal test
clean:
cabal clean
publish: clean prepare
cabal v2-haddock --haddock-for-hackage ./manifest/extism-manifest.cabal
cabal v2-haddock --haddock-for-hackage
cabal sdist ./manifest/extism-manifest.cabal
cabal sdist
# TODO: upload
format:
# TODO
lint:
cabal check
hlint src manifest
docs:
# TODO
show-docs: docs
# TODO

1
haskell/cabal.project Normal file
View File

@@ -0,0 +1 @@
packages: extism.cabal manifest/extism-manifest.cabal

View File

@@ -1,54 +1,45 @@
cabal-version: 2.4
cabal-version: 3.0
name: extism
version: 0.0.1.0
-- A short (one-line) description of the package.
synopsis: Extism bindings
-- A longer description of the package.
description: Bindings to Extism, the universal plugin system
-- A URL where users can report bugs.
bug-reports: https://github.com/extism/extism
-- The license under which the package is released.
license: BSD-3-Clause
author: Extism authors
version: 0.5.0
license: BSD-3-Clause
maintainer: oss@extism.org
-- A copyright notice.
-- copyright:
category: Plugins, WebAssembly
extra-source-files: CHANGELOG.md
author: Extism authors
bug-reports: https://github.com/extism/extism
synopsis: Extism bindings
description: Bindings to Extism, the universal plugin system
category: Plugins, WebAssembly
extra-doc-files: CHANGELOG.md
library
exposed-modules: Extism Extism.Manifest
exposed-modules: Extism Extism.CurrentPlugin
reexported-modules: Extism.Manifest
hs-source-dirs: src
other-modules: Extism.Bindings
default-language: Haskell2010
extra-libraries: extism
extra-lib-dirs: /usr/local/lib
build-depends:
base >= 4.16.1 && < 5,
bytestring >= 0.11.3 && <= 0.12,
json >= 0.10 && <= 0.11,
extism-manifest >= 0.0.0 && < 0.4.0
-- Modules included in this library but not exported.
other-modules:
test-suite extism-example
type: exitcode-stdio-1.0
main-is: Example.hs
default-language: Haskell2010
build-depends:
base,
extism,
bytestring
-- LANGUAGE extensions used by modules in this package.
-- other-extensions:
build-depends:
base ^>=4.16.1.0
, bytestring
, base64-bytestring
, json
hs-source-dirs: src
default-language: Haskell2010
extra-libraries: extism
extra-lib-dirs: /usr/local/lib
Test-Suite extism-example
type: exitcode-stdio-1.0
main-is: Example.hs
build-depends: base, extism, bytestring
default-language: Haskell2010
Test-Suite extism-test
type: exitcode-stdio-1.0
main-is: Test.hs
test-suite extism-test
type: exitcode-stdio-1.0
main-is: Test.hs
hs-source-dirs: test
build-depends: base, extism, bytestring, HUnit
default-language: Haskell2010
build-depends:
base,
extism,
bytestring,
HUnit

View File

@@ -0,0 +1,5 @@
# Revision history for extism-manifest
## 0.1.0.0 -- YYYY-mm-dd
* First version. Released on an unsuspecting world.

View File

@@ -0,0 +1,60 @@
module Extism.JSON (
module Extism.JSON,
module Text.JSON
) where
import Text.JSON
import qualified Data.ByteString as B
import Data.ByteString.Internal (c2w, w2c)
import qualified Data.ByteString.Base64 as B64
import qualified Data.ByteString.Char8 as BS (unpack)
data Nullable a = Null | NotNull a
makeArray x = JSArray [showJSON a | a <- x]
isNull JSNull = True
isNull _ = False
filterNulls obj = [(a, b) | (a, b) <- obj, not (isNull b)]
object x = makeObj $ filterNulls x
objectWithNulls = makeObj
nonNull = NotNull
null' = Null
(.=) a b = (a, showJSON b)
toNullable (Just x) = NotNull x
toNullable Nothing = Null
fromNullable (NotNull x) = Just x
fromNullable Null = Nothing
fromNotNull (NotNull x) = x
fromNotNull Null = error "Value is Null"
mapNullable f Null = Null
mapNullable f (NotNull x) = NotNull (f x)
(.?) (JSObject a) k =
case valFromObj k a of
Ok x -> NotNull x
Error _ -> Null
(.?) _ _ = Null
(.??) a k = toNullable $ lookup k a
find :: JSON a => String -> JSValue -> Nullable a
find k obj = obj .? k
update :: JSON a => String -> a -> JSValue -> JSValue
update k v (JSObject obj) = object $ fromJSObject obj ++ [k .= v]
instance JSON a => JSON (Nullable a) where
showJSON (NotNull x) = showJSON x
showJSON Null = JSNull
readJSON JSNull = Ok Null
readJSON x = readJSON x
newtype Base64 = Base64 B.ByteString
instance JSON Base64 where
showJSON (Base64 bs) = showJSON (BS.unpack $ B64.encode bs)
readJSON (JSString s) =
let toByteString x = B.pack (Prelude.map c2w x) in
case B64.decode (toByteString (fromJSString s)) of
Left msg -> Error msg
Right d -> Ok (Base64 d)

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