@drawmotive/textgraph 0.2.2-alpha.1 → 0.2.2-alpha.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +18 -5
- package/docs/api-v1.md +21 -4
- package/docs/releases.md +8 -8
- package/generated/wasm/DrawMotive.TextGraph.Bridge.wasm +0 -0
- package/generated/wasm/ExCSS.wasm +0 -0
- package/generated/wasm/Graphics.Core.wasm +0 -0
- package/generated/wasm/Grpc.Core.Api.wasm +0 -0
- package/generated/wasm/HarfBuzzSharp.wasm +0 -0
- package/generated/wasm/MagicOnion.Abstractions.wasm +0 -0
- package/generated/wasm/MagicOnion.Serialization.MessagePack.wasm +0 -0
- package/generated/wasm/MagicOnion.Shared.wasm +0 -0
- package/generated/wasm/Markdig.wasm +0 -0
- package/generated/wasm/Math.Core.wasm +0 -0
- package/generated/wasm/MessagePack.Annotations.wasm +0 -0
- package/generated/wasm/MessagePack.wasm +0 -0
- package/generated/wasm/Polly.Core.wasm +0 -0
- package/generated/wasm/Polly.wasm +0 -0
- package/generated/wasm/RBush.wasm +0 -0
- package/generated/wasm/SkiaSharp.HarfBuzz.wasm +0 -0
- package/generated/wasm/SkiaSharp.wasm +0 -0
- package/generated/wasm/System.Collections.NonGeneric.wasm +0 -0
- package/generated/wasm/System.ComponentModel.TypeConverter.wasm +0 -0
- package/generated/wasm/System.Console.wasm +0 -0
- package/generated/wasm/System.Net.Http.wasm +0 -0
- package/generated/wasm/System.Net.Primitives.wasm +0 -0
- package/generated/wasm/System.ObjectModel.wasm +0 -0
- package/generated/wasm/System.Private.CoreLib.wasm +0 -0
- package/generated/wasm/System.Private.Uri.wasm +0 -0
- package/generated/wasm/System.Private.Xml.Linq.wasm +0 -0
- package/generated/wasm/System.Private.Xml.wasm +0 -0
- package/generated/wasm/System.Xml.Linq.wasm +0 -0
- package/generated/wasm/System.Xml.XDocument.wasm +0 -0
- package/generated/wasm/dotnet.boot.js +47 -27
- package/generated/wasm/dotnet.native.js +18 -2
- package/generated/wasm/dotnet.native.wasm +0 -0
- package/generated/wasm-manifest.js +67 -42
- package/generated/wasm-manifest.json +67 -42
- package/package.json +1 -1
- package/schemas/render-svg.schema.json +65 -0
- package/schemas/wasm-manifest.schema.json +1 -1
- package/src/index.d.ts +15 -0
- package/src/index.js +24 -17
- package/src/runtime/dotnet.js +6 -4
- package/src/runtime/manifest.js +7 -1
- package/src/runtime/rendering.js +49 -7
package/README.md
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
**Turn text into diagrams in your application.**
|
|
4
4
|
|
|
5
|
-
Render flowcharts and directed graphs as PNGs in Node.js, browsers, React, and Web
|
|
5
|
+
Render flowcharts and directed graphs as PNGs or SVGs in Node.js, browsers, React, and Web
|
|
6
6
|
Workers. TextGraph handles automatic layout and provides source validation and
|
|
7
7
|
rendering diagnostics. The renderer runs where your code runs; no hosted rendering
|
|
8
8
|
API or API key is required.
|
|
@@ -35,7 +35,7 @@ TextGraph uses a small, structured language; it does not interpret unrestricted
|
|
|
35
35
|
|
|
36
36
|
| What you want to do | Use | Working example |
|
|
37
37
|
| --- | --- | --- |
|
|
38
|
-
| Generate diagrams for documentation, reports, or build jobs | Node.js: write PNG bytes to a file | [Node sample](https://github.com/drawmotive/textgraph/tree/main/samples/node) |
|
|
38
|
+
| Generate diagrams for documentation, reports, or build jobs | Node.js: write PNG bytes or SVG text to a file | [Node sample](https://github.com/drawmotive/textgraph/tree/main/samples/node) |
|
|
39
39
|
| Embed live diagrams in dashboards or internal tools | React component and shared provider | [React + Vite sample](https://github.com/drawmotive/textgraph/tree/main/samples/react-vite) |
|
|
40
40
|
| Add editable source and previews to a web app | Browser SDK | [Plain JavaScript sample](https://github.com/drawmotive/textgraph/tree/main/samples/browser) |
|
|
41
41
|
| Keep the UI responsive while rendering larger diagrams | SDK in a module Web Worker | [Worker sample](https://github.com/drawmotive/textgraph/tree/main/samples/worker) |
|
|
@@ -48,7 +48,7 @@ For existing documentation, use the
|
|
|
48
48
|
## Install
|
|
49
49
|
|
|
50
50
|
```bash
|
|
51
|
-
npm install @drawmotive/textgraph@0.2.2-alpha.
|
|
51
|
+
npm install @drawmotive/textgraph@0.2.2-alpha.3
|
|
52
52
|
```
|
|
53
53
|
|
|
54
54
|
Requires **Node.js 22+** or a modern browser with WebAssembly and Web Crypto.
|
|
@@ -84,6 +84,19 @@ multiple diagrams, then dispose it when the job is finished.
|
|
|
84
84
|
|
|
85
85
|
[Complete file-to-PNG sample →](https://github.com/drawmotive/textgraph/tree/main/samples/node)
|
|
86
86
|
|
|
87
|
+
For vector output, use the same initialized instance:
|
|
88
|
+
|
|
89
|
+
```javascript
|
|
90
|
+
const vector = await textgraph.renderSvg("browser -> api -> database", { padding: 10 });
|
|
91
|
+
if (vector.success) {
|
|
92
|
+
await writeFile("diagram.svg", vector.svg, "utf8");
|
|
93
|
+
}
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
SVG returns logical `displayWidth` and `displayHeight`. It accepts `padding`,
|
|
97
|
+
`language`, and `signal`; raster settings such as `scale` apply only to PNG.
|
|
98
|
+
React components continue to use PNG; browser and Worker SDK instances also expose `renderSvg()`.
|
|
99
|
+
|
|
87
100
|
## Add a diagram to React
|
|
88
101
|
|
|
89
102
|
For browser, React, and Worker applications, copy the runtime assets before
|
|
@@ -216,9 +229,9 @@ publish anything. Samples are not included in the npm package.
|
|
|
216
229
|
|
|
217
230
|
## Current scope
|
|
218
231
|
|
|
219
|
-
- **Available:** flowcharts and directed graphs, automatic layout, PNG rendering,
|
|
232
|
+
- **Available:** flowcharts and directed graphs, automatic layout, PNG and SVG rendering,
|
|
220
233
|
and source validation.
|
|
221
|
-
- **Not available yet:** mind maps, sequence diagrams,
|
|
234
|
+
- **Not available yet:** mind maps, sequence diagrams, and slides.
|
|
222
235
|
- **Fonts:** Noto Sans and Fuzzy Bubbles are included. Custom font descriptors are
|
|
223
236
|
supported; the optional `@drawmotive/textgraph-fonts` package is not published.
|
|
224
237
|
See [font configuration](https://github.com/drawmotive/textgraph/blob/main/docs/api-v1.md#fonts-and-language-packs).
|
package/docs/api-v1.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# TextGraph API, protocol 1
|
|
2
2
|
|
|
3
|
-
This contract covers validation and PNG rendering. Validation checks parsing and semantic reference resolution; it does not certify layout feasibility or renderability. Empty source is valid. Public AST, editable layout and file APIs remain separate milestones.
|
|
3
|
+
This contract covers validation and PNG/SVG rendering. Validation checks parsing and semantic reference resolution; it does not certify layout feasibility or renderability. Empty source is valid. Public AST, editable layout and file APIs remain separate milestones.
|
|
4
4
|
|
|
5
5
|
```javascript
|
|
6
6
|
import { initializeTextGraph } from '@drawmotive/textgraph';
|
|
@@ -38,6 +38,21 @@ For web display, use scale `2` and the returned display dimensions as image dime
|
|
|
38
38
|
|
|
39
39
|
After applying `maxWidth`, output is limited to 16,384 pixels per side and 16,777,216 pixels in total. Larger images return the `TG_RENDER_SIZE_LIMIT` diagnostic. PNG dimensions and signature are checked against the response metadata; malformed responses reject with `INVALID_RESPONSE`.
|
|
40
40
|
|
|
41
|
+
## SVG rendering
|
|
42
|
+
|
|
43
|
+
`renderSvg(source, { padding, language, signal }?)` returns `{ success: true, svg, displayWidth, displayHeight, diagnostics }` or `{ success: false, diagnostics }`. The SVG is a complete vector document, and both display dimensions are positive logical diagram units matching its padded viewBox. Results and diagnostics are frozen. Diagram failures contain no image data or dimensions.
|
|
44
|
+
|
|
45
|
+
```javascript
|
|
46
|
+
const image = await runtime.renderSvg("browser -> api -> database", { padding: 24 });
|
|
47
|
+
if (image.success) {
|
|
48
|
+
await writeFile("diagram.svg", image.svg, "utf8");
|
|
49
|
+
}
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
Padding defaults to `10` and has the same finite float32 constraints as PNG. The optional language hint selects fonts in the same way as PNG. SVG rejects PNG-only `encoding`, `scale`, and `maxWidth` settings and all unknown option keys with `INVALID_ARGUMENT`. Cancellation and resource preparation share the instance queue with PNG and validation.
|
|
53
|
+
|
|
54
|
+
SVG requires the additive `textgraph-render-svg-v1` capability; older runtimes reject with `UNSUPPORTED_CAPABILITY` before preparing resources or calling the bridge. The wrapper checks the document root and SVG namespace, positive display dimensions, and consistency between success and error diagnostics. Malformed responses reject with `INVALID_RESPONSE`; the document check is not a general XML parser or sanitizer.
|
|
55
|
+
|
|
41
56
|
## Fonts and language packs
|
|
42
57
|
|
|
43
58
|
Runtimes advertising `textgraph-fonts-v1` prepare actual visible labels before measurement.
|
|
@@ -65,7 +80,7 @@ browser/server-owned; there is no new IndexedDB or Service Worker. Offline opera
|
|
|
65
80
|
requires the complete runtime and font package on a local filesystem or local server;
|
|
66
81
|
an online page cannot fetch an uncached font after losing network access.
|
|
67
82
|
|
|
68
|
-
`renderPng(source, { language: "ja" })` can disambiguate Han-only labels. Without a hint,
|
|
83
|
+
`renderPng(source, { language: "ja" })` and `renderSvg(source, { language: "ja" })` can disambiguate Han-only labels. Without a hint,
|
|
69
84
|
kana selects Japanese for that label and Han-only labels use Chinese. Grapheme-aware
|
|
70
85
|
emoji selection includes flags, ZWJ sequences, modifiers and keycaps. Font selection
|
|
71
86
|
does not depend on which languages were rendered previously. Unsupported glyphs still
|
|
@@ -123,12 +138,14 @@ fonts with language metadata; `cancel-prepare` releases interrupted preparation.
|
|
|
123
138
|
Render commands accept the same language hint. Existing configuration/disposal
|
|
124
139
|
envelopes remain unchanged. The wrapper checks this capability before using a catalog.
|
|
125
140
|
|
|
126
|
-
ABI 1.0.0 retains GetAbiVersion/GetPackageKind/CountParseDiagnostics and adds GetRuntimeInfo(), Validate(source) and Execute(requestJson) on DrawMotive.TextGraph.Bridge.Program. Info returns JSON `{ abiVersion, packageKind, protocolVersion: 1, capabilities }`; Validate returns `{ protocolVersion: 1, valid, diagnostics }`. Wrappers require `textgraph-validate-v1`; PNG rendering additionally requires `textgraph-render-v1
|
|
141
|
+
ABI 1.0.0 retains GetAbiVersion/GetPackageKind/CountParseDiagnostics and adds GetRuntimeInfo(), Validate(source) and Execute(requestJson) on DrawMotive.TextGraph.Bridge.Program. Info returns JSON `{ abiVersion, packageKind, protocolVersion: 1, capabilities }`; Validate returns `{ protocolVersion: 1, valid, diagnostics }`. Wrappers require `textgraph-validate-v1`; PNG rendering additionally requires `textgraph-render-v1`, and SVG requires `textgraph-render-svg-v1`. Both require the manifest `bridge.execute` export and rendering resources. Legacy validation exports remain supported. This is a managed export/JSON protocol, not a raw WASM pointer ABI.
|
|
127
142
|
|
|
128
|
-
`generated/wasm-manifest.json` is authoritative; its ESM projection avoids JSON-module browser assumptions. Shipped schemas describe the manifest, validation response and rendering
|
|
143
|
+
`generated/wasm-manifest.json` is authoritative; its ESM projection avoids JSON-module browser assumptions. Shipped schemas describe the manifest, validation response and separate PNG/SVG rendering responses. Manifest schema, ABI, protocol and npm versions are separate. Additive exports use capabilities; incompatible wire changes require a new supported version. npm versions and bundled assets are released together. DSL/file-format versions are not frozen by this milestone.
|
|
129
144
|
|
|
130
145
|
Assets have relative path, media type, byte count and SHA-256. Packaging checks reject missing/extra assets, debug files, hash/projection/version drift. Runtime data assets are hash-checked before native startup. Bundled fonts and themes are loaded and hash-checked lazily before the first render; license files require no runtime I/O. These checks establish distribution consistency, not authenticated runtime signatures. `privateSource.commit` identifies committed private C# and bridge inputs. Toolchain changes may change bytes; cross-toolchain byte-for-byte reproducibility is not promised.
|
|
131
146
|
|
|
132
147
|
The rendering wire uses one `Execute(requestJson)` export. Configuration is performed once before the first render with `{ protocolVersion: 1, operation: "configure", theme, fonts: [{ family, data }], fallbackFamilies }`, where `data` is base64 font data. Its response is `{ protocolVersion: 1, success, diagnostics }`. A render request is `{ protocolVersion: 1, operation: "render", source, export: { format: "png", scale, padding, maxWidth? } }`. Native success returns base64 `png`, `width`, `height`, and diagnostics, plus an additive optional `displayWidth`/`displayHeight` pair; failures contain only `success: false` and diagnostics beside the protocol version. The JavaScript wrapper validates the display dimensions when present and converts image data to the requested encoding.
|
|
133
148
|
|
|
134
149
|
For rendering-capable bridges, disposal sends `{ protocolVersion: 1, operation: "dispose" }` and validates the same success/diagnostics envelope as configuration. This request releases native resources without loading fonts or shutting down the host runtime. Legacy validation-only bridges release wrapper references directly.
|
|
150
|
+
|
|
151
|
+
SVG uses the same `Execute` export with `{ protocolVersion: 1, operation: "render", source, language?, export: { format: "svg", padding } }`. Native success returns `{ protocolVersion: 1, success: true, svg, displayWidth, displayHeight, diagnostics }`; failures omit `svg` and dimensions. `schemas/render-svg.schema.json` describes this separate additive response.
|
package/docs/releases.md
CHANGED
|
@@ -7,7 +7,7 @@ Releases are selected deliberately and published by `.github/workflows/release.y
|
|
|
7
7
|
| Version | npm dist-tag | Install |
|
|
8
8
|
| --- | --- | --- |
|
|
9
9
|
| `0.2.1` (stable) | `latest` | `npm install @drawmotive/textgraph@0.2.1` |
|
|
10
|
-
| `0.2.2-alpha.
|
|
10
|
+
| `0.2.2-alpha.2` (preview) | `alpha` | `npm install @drawmotive/textgraph@0.2.2-alpha.2` |
|
|
11
11
|
|
|
12
12
|
Alpha releases update `alpha` and preserve an existing `latest`. npm may assign `latest` on a package’s first publication even when `alpha` is specified.
|
|
13
13
|
|
|
@@ -33,10 +33,10 @@ Trusted publishing requires npm 11.5.1+ and Node.js 22.14.0+. Publication from a
|
|
|
33
33
|
Native builds belong to the private DrawMotive repository. Commit native source, resource, and bridge changes first, then run there:
|
|
34
34
|
|
|
35
35
|
```bash
|
|
36
|
-
npm run release:textgraph -- 0.2.2-alpha.
|
|
36
|
+
npm run release:textgraph -- 0.2.2-alpha.2
|
|
37
37
|
```
|
|
38
38
|
|
|
39
|
-
This updates the package and lock versions, builds Release assets from the recorded private source commit, generates matching JSON/ESM manifests, updates the root workspace lock, and verifies asset hashes. It does not commit, push, tag, or publish. The `just release-textgraph 0.2.2-alpha.
|
|
39
|
+
This updates the package and lock versions, builds Release assets from the recorded private source commit, generates matching JSON/ESM manifests, updates the root workspace lock, and verifies asset hashes. It does not commit, push, tag, or publish. The `just release-textgraph 0.2.2-alpha.2` alias runs the same command.
|
|
40
40
|
|
|
41
41
|
For a JavaScript-only release reusing already verified native bytes, run in this package:
|
|
42
42
|
|
|
@@ -80,8 +80,8 @@ If npm requires a one-time code, run with `NPM_CONFIG_OTP` set in the local term
|
|
|
80
80
|
After preparation, tests, and review, create the tag on the verified package commit:
|
|
81
81
|
|
|
82
82
|
```bash
|
|
83
|
-
git tag -a textgraph-v0.2.2-alpha.
|
|
84
|
-
git push origin textgraph-v0.2.2-alpha.
|
|
83
|
+
git tag -a textgraph-v0.2.2-alpha.2 -m "Release 0.2.2-alpha.2"
|
|
84
|
+
git push origin textgraph-v0.2.2-alpha.2
|
|
85
85
|
```
|
|
86
86
|
|
|
87
87
|
The release workflow resolves the tag to a commit, runs Node.js and three-browser tests on Ubuntu, packs the tested checkout, and passes the artifact to the `npm` environment for publication. All CI and release jobs use `ubuntu-latest`; the browser suite covers Chromium, Firefox, and WebKit. Alpha releases select `alpha`; stable releases select `latest`. Never pass a custom dist-tag to bypass the release policy.
|
|
@@ -90,14 +90,14 @@ The release workflow resolves the tag to a commit, runs Node.js and three-browse
|
|
|
90
90
|
|
|
91
91
|
```bash
|
|
92
92
|
npm view @drawmotive/textgraph dist-tags --json
|
|
93
|
-
npm view @drawmotive/textgraph@0.2.2-alpha.
|
|
94
|
-
npm install @drawmotive/textgraph@0.2.2-alpha.
|
|
93
|
+
npm view @drawmotive/textgraph@0.2.2-alpha.2 dist.integrity
|
|
94
|
+
npm install @drawmotive/textgraph@0.2.2-alpha.2
|
|
95
95
|
```
|
|
96
96
|
|
|
97
97
|
If a workflow fails before publishing, fix the configuration and rerun the same tag. For a manual dispatch, select the release tag as the workflow ref and supply the same tag as input; dispatching from `main` is rejected so OIDC and provenance identify the correct commit. For example:
|
|
98
98
|
|
|
99
99
|
```bash
|
|
100
|
-
gh workflow run release.yml --ref textgraph-v0.2.2-alpha.
|
|
100
|
+
gh workflow run release.yml --ref textgraph-v0.2.2-alpha.2 -f tag=textgraph-v0.2.2-alpha.2
|
|
101
101
|
```
|
|
102
102
|
|
|
103
103
|
If publication succeeded but a later check failed, the script accepts an identical registry artifact with the correct channel and refuses different bytes at the same version. Keep the original workflow artifact for diagnosing integrity differences.
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
export const config = /*json-start*/{
|
|
2
2
|
"mainAssemblyName": "DrawMotive.TextGraph.Bridge.dll",
|
|
3
3
|
"resources": {
|
|
4
|
-
"hash": "sha256-
|
|
4
|
+
"hash": "sha256-8FmwOmBZ+SFhsg4Z1Q4eyPRkYNbS6XkVYj2B2RWM2Uw=",
|
|
5
5
|
"jsModuleNative": [
|
|
6
6
|
{
|
|
7
7
|
"name": "dotnet.native.js"
|
|
@@ -15,7 +15,7 @@ export const config = /*json-start*/{
|
|
|
15
15
|
"wasmNative": [
|
|
16
16
|
{
|
|
17
17
|
"name": "dotnet.native.wasm",
|
|
18
|
-
"hash": "sha256-
|
|
18
|
+
"hash": "sha256-3DvnYxhVVGZUnnhjVRAjnr+yRc4RUw3tH5mtWSs4OCk="
|
|
19
19
|
}
|
|
20
20
|
],
|
|
21
21
|
"coreAssembly": [
|
|
@@ -27,44 +27,44 @@ export const config = /*json-start*/{
|
|
|
27
27
|
{
|
|
28
28
|
"virtualPath": "System.Private.CoreLib.wasm",
|
|
29
29
|
"name": "System.Private.CoreLib.wasm",
|
|
30
|
-
"hash": "sha256-
|
|
30
|
+
"hash": "sha256-R3WPOu0FW1nr0l4R5IUtgsh9K4LqI8nG4E1P2qaGZ04="
|
|
31
31
|
}
|
|
32
32
|
],
|
|
33
33
|
"assembly": [
|
|
34
34
|
{
|
|
35
35
|
"virtualPath": "ExCSS.wasm",
|
|
36
36
|
"name": "ExCSS.wasm",
|
|
37
|
-
"hash": "sha256-
|
|
37
|
+
"hash": "sha256-c1TReuTKA12fGvn9dqvotNKJxTLhhu5QsiwYt+ZpmYI="
|
|
38
38
|
},
|
|
39
39
|
{
|
|
40
40
|
"virtualPath": "Grpc.Core.Api.wasm",
|
|
41
41
|
"name": "Grpc.Core.Api.wasm",
|
|
42
|
-
"hash": "sha256-
|
|
42
|
+
"hash": "sha256-cAsCPThXAaxkhablgLVwz/pEW8al1JTVs552cOIPDLY="
|
|
43
43
|
},
|
|
44
44
|
{
|
|
45
45
|
"virtualPath": "HarfBuzzSharp.wasm",
|
|
46
46
|
"name": "HarfBuzzSharp.wasm",
|
|
47
|
-
"hash": "sha256-
|
|
47
|
+
"hash": "sha256-0rnI3MbFX+T2XsQ+WPS3Gama89dTzWD0iUGVJBwTRXc="
|
|
48
48
|
},
|
|
49
49
|
{
|
|
50
50
|
"virtualPath": "MagicOnion.Abstractions.wasm",
|
|
51
51
|
"name": "MagicOnion.Abstractions.wasm",
|
|
52
|
-
"hash": "sha256-
|
|
52
|
+
"hash": "sha256-BbUCP5Xhr6OYZcOdsvWPCWEGwMzkzPnIkNfBDZYGock="
|
|
53
53
|
},
|
|
54
54
|
{
|
|
55
55
|
"virtualPath": "MagicOnion.Serialization.MessagePack.wasm",
|
|
56
56
|
"name": "MagicOnion.Serialization.MessagePack.wasm",
|
|
57
|
-
"hash": "sha256-
|
|
57
|
+
"hash": "sha256-Wt9Bd96kId46BqyMKff8y57vQCTmRuwtV4zHchq9r88="
|
|
58
58
|
},
|
|
59
59
|
{
|
|
60
60
|
"virtualPath": "MagicOnion.Shared.wasm",
|
|
61
61
|
"name": "MagicOnion.Shared.wasm",
|
|
62
|
-
"hash": "sha256-
|
|
62
|
+
"hash": "sha256-iSzZFHWPwQEuYG8HXmyGlfiO3mSAldSlMxasUj3NPao="
|
|
63
63
|
},
|
|
64
64
|
{
|
|
65
65
|
"virtualPath": "Markdig.wasm",
|
|
66
66
|
"name": "Markdig.wasm",
|
|
67
|
-
"hash": "sha256-
|
|
67
|
+
"hash": "sha256-6O7MXmY38XS3+jaBbhrQWVRIZp5SyzDjQ6H28DGw8uo="
|
|
68
68
|
},
|
|
69
69
|
{
|
|
70
70
|
"virtualPath": "MemoryPack.Core.wasm",
|
|
@@ -74,12 +74,12 @@ export const config = /*json-start*/{
|
|
|
74
74
|
{
|
|
75
75
|
"virtualPath": "MessagePack.wasm",
|
|
76
76
|
"name": "MessagePack.wasm",
|
|
77
|
-
"hash": "sha256-
|
|
77
|
+
"hash": "sha256-gODv3klgqHElqEVeNUjDIZWsiqJpxrDUtP+FaxwUzC0="
|
|
78
78
|
},
|
|
79
79
|
{
|
|
80
80
|
"virtualPath": "MessagePack.Annotations.wasm",
|
|
81
81
|
"name": "MessagePack.Annotations.wasm",
|
|
82
|
-
"hash": "sha256-
|
|
82
|
+
"hash": "sha256-Y8larPe7kCvkk5jFVAE2jryNh1le1lvNF42d2htyGpY="
|
|
83
83
|
},
|
|
84
84
|
{
|
|
85
85
|
"virtualPath": "Microsoft.AspNetCore.Components.Web.wasm",
|
|
@@ -134,12 +134,12 @@ export const config = /*json-start*/{
|
|
|
134
134
|
{
|
|
135
135
|
"virtualPath": "Polly.wasm",
|
|
136
136
|
"name": "Polly.wasm",
|
|
137
|
-
"hash": "sha256-
|
|
137
|
+
"hash": "sha256-NcV7gutiGHCDff06/wDsud+20Wl6xOEHNhalWs4CdIE="
|
|
138
138
|
},
|
|
139
139
|
{
|
|
140
140
|
"virtualPath": "Polly.Core.wasm",
|
|
141
141
|
"name": "Polly.Core.wasm",
|
|
142
|
-
"hash": "sha256-
|
|
142
|
+
"hash": "sha256-li+Zk1bbR406FjygbR4vHFxUYBMg6YMRm3hUkOYwuzo="
|
|
143
143
|
},
|
|
144
144
|
{
|
|
145
145
|
"virtualPath": "R3.wasm",
|
|
@@ -154,12 +154,12 @@ export const config = /*json-start*/{
|
|
|
154
154
|
{
|
|
155
155
|
"virtualPath": "SkiaSharp.wasm",
|
|
156
156
|
"name": "SkiaSharp.wasm",
|
|
157
|
-
"hash": "sha256-
|
|
157
|
+
"hash": "sha256-MpeE81pK73isgx4BVEiPEljrY/wUyoYXGq5+xbHAMYs="
|
|
158
158
|
},
|
|
159
159
|
{
|
|
160
160
|
"virtualPath": "SkiaSharp.HarfBuzz.wasm",
|
|
161
161
|
"name": "SkiaSharp.HarfBuzz.wasm",
|
|
162
|
-
"hash": "sha256-
|
|
162
|
+
"hash": "sha256-iirdrlaRo+I9Mqlx4JqjClxYg9IbbTOaBHx6kyyLIn4="
|
|
163
163
|
},
|
|
164
164
|
{
|
|
165
165
|
"virtualPath": "Stateless.wasm",
|
|
@@ -174,22 +174,22 @@ export const config = /*json-start*/{
|
|
|
174
174
|
{
|
|
175
175
|
"virtualPath": "Graphics.Core.wasm",
|
|
176
176
|
"name": "Graphics.Core.wasm",
|
|
177
|
-
"hash": "sha256-
|
|
177
|
+
"hash": "sha256-pURePVdy3OdXKVxBOGxozwxpgUuNp+gDbRR4K0yOjII="
|
|
178
178
|
},
|
|
179
179
|
{
|
|
180
180
|
"virtualPath": "Math.Core.wasm",
|
|
181
181
|
"name": "Math.Core.wasm",
|
|
182
|
-
"hash": "sha256-
|
|
182
|
+
"hash": "sha256-rAwRf96kfhvzX87bTnypm9ukbRUO04ILuNsSzbrRCdY="
|
|
183
183
|
},
|
|
184
184
|
{
|
|
185
185
|
"virtualPath": "RBush.wasm",
|
|
186
186
|
"name": "RBush.wasm",
|
|
187
|
-
"hash": "sha256-
|
|
187
|
+
"hash": "sha256-EaDqY2JWw7Fb0CUJ6KczHvuqtvJKpQ3h3NAR6bDkghw="
|
|
188
188
|
},
|
|
189
189
|
{
|
|
190
190
|
"virtualPath": "DrawMotive.TextGraph.Bridge.wasm",
|
|
191
191
|
"name": "DrawMotive.TextGraph.Bridge.wasm",
|
|
192
|
-
"hash": "sha256-
|
|
192
|
+
"hash": "sha256-ojZGmKsqH6SfJ2X8Kgdym9LOxMDXGoZuUNcdj59ZL2c="
|
|
193
193
|
},
|
|
194
194
|
{
|
|
195
195
|
"virtualPath": "System.Collections.Concurrent.wasm",
|
|
@@ -204,7 +204,7 @@ export const config = /*json-start*/{
|
|
|
204
204
|
{
|
|
205
205
|
"virtualPath": "System.Collections.NonGeneric.wasm",
|
|
206
206
|
"name": "System.Collections.NonGeneric.wasm",
|
|
207
|
-
"hash": "sha256-
|
|
207
|
+
"hash": "sha256-ZShNVRUSARfhYe21AlvBKsoCCQq+AK/yefCYxwoqLnQ="
|
|
208
208
|
},
|
|
209
209
|
{
|
|
210
210
|
"virtualPath": "System.Collections.Specialized.wasm",
|
|
@@ -229,7 +229,7 @@ export const config = /*json-start*/{
|
|
|
229
229
|
{
|
|
230
230
|
"virtualPath": "System.ComponentModel.TypeConverter.wasm",
|
|
231
231
|
"name": "System.ComponentModel.TypeConverter.wasm",
|
|
232
|
-
"hash": "sha256-
|
|
232
|
+
"hash": "sha256-mWRb2YHFZI0WdPaEh6nx+U5WMUaMl6gK9FD71Kh6Upc="
|
|
233
233
|
},
|
|
234
234
|
{
|
|
235
235
|
"virtualPath": "System.ComponentModel.wasm",
|
|
@@ -239,7 +239,7 @@ export const config = /*json-start*/{
|
|
|
239
239
|
{
|
|
240
240
|
"virtualPath": "System.Console.wasm",
|
|
241
241
|
"name": "System.Console.wasm",
|
|
242
|
-
"hash": "sha256-
|
|
242
|
+
"hash": "sha256-BAKmU+lUWgxhtkmZ8jieCZeWo80RWxGZs2ooZ6iqZ/o="
|
|
243
243
|
},
|
|
244
244
|
{
|
|
245
245
|
"virtualPath": "System.Diagnostics.StackTrace.wasm",
|
|
@@ -284,12 +284,12 @@ export const config = /*json-start*/{
|
|
|
284
284
|
{
|
|
285
285
|
"virtualPath": "System.Net.Http.wasm",
|
|
286
286
|
"name": "System.Net.Http.wasm",
|
|
287
|
-
"hash": "sha256-
|
|
287
|
+
"hash": "sha256-VTLLDv0CufL90HZn7zDPWv02ruTg8G9m+SwcJyD1i3Q="
|
|
288
288
|
},
|
|
289
289
|
{
|
|
290
290
|
"virtualPath": "System.Net.Primitives.wasm",
|
|
291
291
|
"name": "System.Net.Primitives.wasm",
|
|
292
|
-
"hash": "sha256-
|
|
292
|
+
"hash": "sha256-eSkmLWnZ3RkSwQTH7dunFXMwU+BM4C35r9dvdzASvUk="
|
|
293
293
|
},
|
|
294
294
|
{
|
|
295
295
|
"virtualPath": "System.Numerics.Vectors.wasm",
|
|
@@ -299,12 +299,22 @@ export const config = /*json-start*/{
|
|
|
299
299
|
{
|
|
300
300
|
"virtualPath": "System.ObjectModel.wasm",
|
|
301
301
|
"name": "System.ObjectModel.wasm",
|
|
302
|
-
"hash": "sha256-
|
|
302
|
+
"hash": "sha256-ZGzUR9M3xG+ldoMXJlEMFhykHM1XM07pwcNSKnmUgjA="
|
|
303
303
|
},
|
|
304
304
|
{
|
|
305
305
|
"virtualPath": "System.Private.Uri.wasm",
|
|
306
306
|
"name": "System.Private.Uri.wasm",
|
|
307
|
-
"hash": "sha256-
|
|
307
|
+
"hash": "sha256-7qWIqu5RB2yKuIMYFhkDAdZPTC8THfBWQQXFOjYuyUY="
|
|
308
|
+
},
|
|
309
|
+
{
|
|
310
|
+
"virtualPath": "System.Private.Xml.Linq.wasm",
|
|
311
|
+
"name": "System.Private.Xml.Linq.wasm",
|
|
312
|
+
"hash": "sha256-YUdLSlfh4mTeprrwyQIUxsElrJbYfvbUWpkeckKJ/vQ="
|
|
313
|
+
},
|
|
314
|
+
{
|
|
315
|
+
"virtualPath": "System.Private.Xml.wasm",
|
|
316
|
+
"name": "System.Private.Xml.wasm",
|
|
317
|
+
"hash": "sha256-NvKzCnIW7pjCHMcZ2yNX4d5GFjvAW3WFRTIl30pZshc="
|
|
308
318
|
},
|
|
309
319
|
{
|
|
310
320
|
"virtualPath": "System.Reflection.Emit.ILGeneration.wasm",
|
|
@@ -396,6 +406,16 @@ export const config = /*json-start*/{
|
|
|
396
406
|
"name": "System.Threading.wasm",
|
|
397
407
|
"hash": "sha256-33A/53dyHRgFy1DQMqZyZKc6Jn7wGiVD6e6ymxdcu0Q="
|
|
398
408
|
},
|
|
409
|
+
{
|
|
410
|
+
"virtualPath": "System.Xml.Linq.wasm",
|
|
411
|
+
"name": "System.Xml.Linq.wasm",
|
|
412
|
+
"hash": "sha256-e5txtle0V/jlZ+5laxHe+k2o2xewHh66AVpDrj8yXlc="
|
|
413
|
+
},
|
|
414
|
+
{
|
|
415
|
+
"virtualPath": "System.Xml.XDocument.wasm",
|
|
416
|
+
"name": "System.Xml.XDocument.wasm",
|
|
417
|
+
"hash": "sha256-Zz8cfnvyOXtJrBj5EKFxKoHWmuOgo/vOKwV9EocZ0Mg="
|
|
418
|
+
},
|
|
399
419
|
{
|
|
400
420
|
"virtualPath": "System.wasm",
|
|
401
421
|
"name": "System.wasm",
|
|
@@ -30,11 +30,11 @@ Module['ready'] = new Promise((resolve, reject) => {
|
|
|
30
30
|
|
|
31
31
|
// --pre-jses are emitted after the Module integration code, so that they can
|
|
32
32
|
// refer to Module (if they choose; they can also define Module)
|
|
33
|
-
// include: /home/
|
|
33
|
+
// include: /home/admin/.dotnet/packs/Microsoft.NETCore.App.Runtime.Mono.browser-wasm/10.0.12/runtimes/browser-wasm/native/src/es6/dotnet.es6.pre.js
|
|
34
34
|
if (_nativeModuleLoaded) throw new Error("Native module already loaded");
|
|
35
35
|
_nativeModuleLoaded = true;
|
|
36
36
|
createDotnetRuntime = Module = moduleArg(Module);
|
|
37
|
-
// end include: /home/
|
|
37
|
+
// end include: /home/admin/.dotnet/packs/Microsoft.NETCore.App.Runtime.Mono.browser-wasm/10.0.12/runtimes/browser-wasm/native/src/es6/dotnet.es6.pre.js
|
|
38
38
|
|
|
39
39
|
|
|
40
40
|
// Sometimes an existing Module object exists with properties
|
|
@@ -4986,6 +4986,20 @@ function createWasm() {
|
|
|
4986
4986
|
;
|
|
4987
4987
|
}
|
|
4988
4988
|
|
|
4989
|
+
function _fd_sync(fd) {
|
|
4990
|
+
try {
|
|
4991
|
+
|
|
4992
|
+
var stream = SYSCALLS.getStreamFromFD(fd);
|
|
4993
|
+
if (stream.stream_ops?.fsync) {
|
|
4994
|
+
return stream.stream_ops.fsync(stream);
|
|
4995
|
+
}
|
|
4996
|
+
return 0; // we can't do anything synchronously; the in-memory FS is already synced to
|
|
4997
|
+
} catch (e) {
|
|
4998
|
+
if (typeof FS == 'undefined' || !(e.name === 'ErrnoError')) throw e;
|
|
4999
|
+
return e.errno;
|
|
5000
|
+
}
|
|
5001
|
+
}
|
|
5002
|
+
|
|
4989
5003
|
|
|
4990
5004
|
function _fd_write(fd, iov, iovcnt, pnum) {
|
|
4991
5005
|
try {
|
|
@@ -5860,6 +5874,8 @@ var wasmImports = {
|
|
|
5860
5874
|
/** @export */
|
|
5861
5875
|
fd_seek: _fd_seek,
|
|
5862
5876
|
/** @export */
|
|
5877
|
+
fd_sync: _fd_sync,
|
|
5878
|
+
/** @export */
|
|
5863
5879
|
fd_write: _fd_write,
|
|
5864
5880
|
/** @export */
|
|
5865
5881
|
mono_interp_flush_jitcall_queue: _mono_interp_flush_jitcall_queue,
|
|
Binary file
|