@thi.ng/wasm-api 2.4.2 → 2.4.7

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.
Files changed (2) hide show
  1. package/package.json +129 -129
  2. package/CHANGELOG.md +0 -623
package/package.json CHANGED
@@ -1,130 +1,130 @@
1
1
  {
2
- "name": "@thi.ng/wasm-api",
3
- "version": "2.4.2",
4
- "description": "Generic, modular, extensible API bridge and infrastructure for hybrid JS & WebAssembly projects",
5
- "type": "module",
6
- "module": "./index.js",
7
- "typings": "./index.d.ts",
8
- "sideEffects": false,
9
- "repository": {
10
- "type": "git",
11
- "url": "https://github.com/thi-ng/umbrella.git"
12
- },
13
- "homepage": "https://thi.ng/wasm-api",
14
- "funding": [
15
- {
16
- "type": "github",
17
- "url": "https://github.com/sponsors/postspectacular"
18
- },
19
- {
20
- "type": "patreon",
21
- "url": "https://patreon.com/thing_umbrella"
22
- },
23
- {
24
- "type": "liberapay",
25
- "url": "https://liberapay.com/thi.ng"
26
- }
27
- ],
28
- "author": "Karsten Schmidt (https://thi.ng)",
29
- "license": "Apache-2.0",
30
- "scripts": {
31
- "build": "yarn build:esbuild && yarn build:decl",
32
- "build:decl": "tsc --declaration --emitDeclarationOnly",
33
- "build:esbuild": "esbuild --format=esm --platform=neutral --target=es2022 --tsconfig=tsconfig.json --outdir=. src/**/*.ts",
34
- "clean": "bun ../../tools/src/clean-package.ts",
35
- "doc": "typedoc --options ../../typedoc.json --out doc src/index.ts",
36
- "doc:readme": "bun ../../tools/src/module-stats.ts && bun ../../tools/src/readme.ts",
37
- "pub": "yarn npm publish --access public",
38
- "test": "zig test zig/tests.zig && yarn test:prepare && bun test",
39
- "test:build-zig-allocators": "zig build-exe -fno-entry -fstrip --stack 4096 -OReleaseSmall -target wasm32-freestanding --dep wasm-api -Mroot=test/allocators.zig -Mwasm-api=zig/lib.zig --name allocators -rdynamic --import-symbols && mv allocators.wasm test",
40
- "test:build-zig-custom": "zig build-exe -fno-entry -fstrip --stack 4096 -OReleaseSmall -target wasm32-freestanding --dep wasm-api -Mroot=test/custom.zig -Mwasm-api=zig/lib.zig --name custom -rdynamic --import-symbols && mv custom.wasm test",
41
- "test:prepare": "yarn test:build-zig-allocators && yarn test:build-zig-custom",
42
- "tool:tangle": "../../node_modules/.bin/tangle src/**/*.ts"
43
- },
44
- "dependencies": {
45
- "@thi.ng/api": "^8.12.2",
46
- "@thi.ng/arrays": "^2.13.11",
47
- "@thi.ng/checks": "^3.7.18",
48
- "@thi.ng/errors": "^2.5.42",
49
- "@thi.ng/hex": "^2.3.80",
50
- "@thi.ng/idgen": "^2.2.76",
51
- "@thi.ng/logger": "^3.2.0"
52
- },
53
- "devDependencies": {
54
- "esbuild": "^0.25.9",
55
- "typedoc": "^0.28.12",
56
- "typescript": "^5.9.2"
57
- },
58
- "keywords": [
59
- "allocator",
60
- "api",
61
- "bigint",
62
- "bindings",
63
- "browser",
64
- "c",
65
- "event",
66
- "free-list",
67
- "hex",
68
- "interop",
69
- "logger",
70
- "memory",
71
- "memory-mapped",
72
- "modular",
73
- "polyglot",
74
- "shared-memory",
75
- "string",
76
- "typedarray",
77
- "typescript",
78
- "utf8",
79
- "wasm",
80
- "zig"
81
- ],
82
- "publishConfig": {
83
- "access": "public"
84
- },
85
- "browser": {
86
- "process": false,
87
- "setTimeout": false
88
- },
89
- "engines": {
90
- "node": ">=18"
91
- },
92
- "files": [
93
- "./*.js",
94
- "./*.d.ts",
95
- "include",
96
- "zig/*.zig"
97
- ],
98
- "exports": {
99
- ".": {
100
- "default": "./index.js"
101
- },
102
- "./api": {
103
- "default": "./api.js"
104
- },
105
- "./bridge": {
106
- "default": "./bridge.js"
107
- },
108
- "./deftype": {
109
- "default": "./deftype.js"
110
- },
111
- "./memory": {
112
- "default": "./memory.js"
113
- },
114
- "./object-index": {
115
- "default": "./object-index.js"
116
- },
117
- "./pointer": {
118
- "default": "./pointer.js"
119
- },
120
- "./string": {
121
- "default": "./string.js"
122
- }
123
- },
124
- "thi.ng": {
125
- "status": "alpha",
126
- "tag": "wasm",
127
- "year": 2022
128
- },
129
- "gitHead": "3c3531350eec56011982583c694aeb1a2e0d0ff4\n"
130
- }
2
+ "name": "@thi.ng/wasm-api",
3
+ "version": "2.4.7",
4
+ "description": "Generic, modular, extensible API bridge and infrastructure for hybrid JS & WebAssembly projects",
5
+ "type": "module",
6
+ "module": "./index.js",
7
+ "typings": "./index.d.ts",
8
+ "sideEffects": false,
9
+ "repository": {
10
+ "type": "git",
11
+ "url": "https://github.com/thi-ng/umbrella.git"
12
+ },
13
+ "homepage": "https://thi.ng/wasm-api",
14
+ "funding": [
15
+ {
16
+ "type": "github",
17
+ "url": "https://github.com/sponsors/postspectacular"
18
+ },
19
+ {
20
+ "type": "patreon",
21
+ "url": "https://patreon.com/thing_umbrella"
22
+ },
23
+ {
24
+ "type": "liberapay",
25
+ "url": "https://liberapay.com/thi.ng"
26
+ }
27
+ ],
28
+ "author": "Karsten Schmidt (https://thi.ng)",
29
+ "license": "Apache-2.0",
30
+ "scripts": {
31
+ "build": "yarn build:esbuild && yarn build:decl",
32
+ "build:decl": "tsc --declaration --emitDeclarationOnly",
33
+ "build:esbuild": "esbuild --format=esm --platform=neutral --target=es2022 --tsconfig=tsconfig.json --outdir=. src/**/*.ts",
34
+ "clean": "bun ../../tools/src/clean-package.ts",
35
+ "doc": "typedoc --options ../../typedoc.json --out doc src/index.ts",
36
+ "doc:readme": "bun ../../tools/src/module-stats.ts && bun ../../tools/src/readme.ts",
37
+ "pub": "npm publish --access public",
38
+ "test": "zig test zig/tests.zig && yarn test:prepare && bun test",
39
+ "test:build-zig-allocators": "zig build-exe -fno-entry -fstrip --stack 4096 -OReleaseSmall -target wasm32-freestanding --dep wasm-api -Mroot=test/allocators.zig -Mwasm-api=zig/lib.zig --name allocators -rdynamic --import-symbols && mv allocators.wasm test",
40
+ "test:build-zig-custom": "zig build-exe -fno-entry -fstrip --stack 4096 -OReleaseSmall -target wasm32-freestanding --dep wasm-api -Mroot=test/custom.zig -Mwasm-api=zig/lib.zig --name custom -rdynamic --import-symbols && mv custom.wasm test",
41
+ "test:prepare": "yarn test:build-zig-allocators && yarn test:build-zig-custom",
42
+ "tool:tangle": "../../node_modules/.bin/tangle src/**/*.ts"
43
+ },
44
+ "dependencies": {
45
+ "@thi.ng/api": "^8.12.6",
46
+ "@thi.ng/arrays": "^2.13.15",
47
+ "@thi.ng/checks": "^3.7.22",
48
+ "@thi.ng/errors": "^2.5.46",
49
+ "@thi.ng/hex": "^2.3.84",
50
+ "@thi.ng/idgen": "^2.2.80",
51
+ "@thi.ng/logger": "^3.2.5"
52
+ },
53
+ "devDependencies": {
54
+ "esbuild": "^0.25.11",
55
+ "typedoc": "^0.28.14",
56
+ "typescript": "^5.9.3"
57
+ },
58
+ "keywords": [
59
+ "allocator",
60
+ "api",
61
+ "bigint",
62
+ "bindings",
63
+ "browser",
64
+ "c",
65
+ "event",
66
+ "free-list",
67
+ "hex",
68
+ "interop",
69
+ "logger",
70
+ "memory",
71
+ "memory-mapped",
72
+ "modular",
73
+ "polyglot",
74
+ "shared-memory",
75
+ "string",
76
+ "typedarray",
77
+ "typescript",
78
+ "utf8",
79
+ "wasm",
80
+ "zig"
81
+ ],
82
+ "publishConfig": {
83
+ "access": "public"
84
+ },
85
+ "browser": {
86
+ "process": false,
87
+ "setTimeout": false
88
+ },
89
+ "engines": {
90
+ "node": ">=18"
91
+ },
92
+ "files": [
93
+ "./*.js",
94
+ "./*.d.ts",
95
+ "include",
96
+ "zig/*.zig"
97
+ ],
98
+ "exports": {
99
+ ".": {
100
+ "default": "./index.js"
101
+ },
102
+ "./api": {
103
+ "default": "./api.js"
104
+ },
105
+ "./bridge": {
106
+ "default": "./bridge.js"
107
+ },
108
+ "./deftype": {
109
+ "default": "./deftype.js"
110
+ },
111
+ "./memory": {
112
+ "default": "./memory.js"
113
+ },
114
+ "./object-index": {
115
+ "default": "./object-index.js"
116
+ },
117
+ "./pointer": {
118
+ "default": "./pointer.js"
119
+ },
120
+ "./string": {
121
+ "default": "./string.js"
122
+ }
123
+ },
124
+ "thi.ng": {
125
+ "status": "alpha",
126
+ "tag": "wasm",
127
+ "year": 2022
128
+ },
129
+ "gitHead": "136a5e5ef0b69e82329db00d806c3c4e8f1aa063\n"
130
+ }
package/CHANGELOG.md DELETED
@@ -1,623 +0,0 @@
1
- # Change Log
2
-
3
- - **Last updated**: 2025-09-02T13:15:31Z
4
- - **Generator**: [thi.ng/monopub](https://thi.ng/monopub)
5
-
6
- All notable changes to this project will be documented in this file.
7
- Only versions published since **2022-01-01** are listed here.
8
- Please consult the Git history for older version information.
9
- See [Conventional Commits](https://conventionalcommits.org/) for commit guidelines.
10
-
11
- **Note:** Unlisted _patch_ versions only involve non-code or otherwise excluded changes
12
- and/or version bumps of transitive dependencies.
13
-
14
- ### [2.4.1](https://github.com/thi-ng/umbrella/tree/@thi.ng/wasm-api@2.4.1) (2025-09-02)
15
-
16
- #### ♻️ Refactoring
17
-
18
- - update zig `_wasm_allocate()` & `ManagedIndex` ([3e8870c](https://github.com/thi-ng/umbrella/commit/3e8870c))
19
- - store allocator in `ManagedIndex` due to Zig ArrayList defaulting to unmanaged in 0.15.1
20
- and managed versions will be removed in future
21
- - fix alignment param in `_wasm_allocate()`
22
-
23
- ## [2.4.0](https://github.com/thi-ng/umbrella/tree/@thi.ng/wasm-api@2.4.0) (2025-09-01)
24
-
25
- #### 🚀 Features
26
-
27
- - update Zig build file for Zig v0.15.1 ([ddb2402](https://github.com/thi-ng/umbrella/commit/ddb2402))
28
- - set Zig workspace version to 0.15.1
29
-
30
- ### [2.3.12](https://github.com/thi-ng/umbrella/tree/@thi.ng/wasm-api@2.3.12) (2025-03-11)
31
-
32
- #### ♻️ Refactoring
33
-
34
- - minor update core lib (Zig v0.14.0) ([ebe1533](https://github.com/thi-ng/umbrella/commit/ebe1533))
35
-
36
- ### [2.3.1](https://github.com/thi-ng/umbrella/tree/@thi.ng/wasm-api@2.3.1) (2025-01-14)
37
-
38
- #### ♻️ Refactoring
39
-
40
- - use optional chaining & nullish coalescing ([c5a0a13](https://github.com/thi-ng/umbrella/commit/c5a0a13))
41
-
42
- ## [2.3.0](https://github.com/thi-ng/umbrella/tree/@thi.ng/wasm-api@2.3.0) (2025-01-10)
43
-
44
- #### 🚀 Features
45
-
46
- - add WasmTypeKeys helper type ([7e293ce](https://github.com/thi-ng/umbrella/commit/7e293ce))
47
-
48
- ### [2.2.1](https://github.com/thi-ng/umbrella/tree/@thi.ng/wasm-api@2.2.1) (2024-11-10)
49
-
50
- #### 🩹 Bug fixes
51
-
52
- - fix defType() property handling ([37bebee](https://github.com/thi-ng/umbrella/commit/37bebee))
53
- - inject `__base` and `__bytes` getters using `Object.defineProperties()`
54
-
55
- ## [2.2.0](https://github.com/thi-ng/umbrella/tree/@thi.ng/wasm-api@2.2.0) (2024-11-10)
56
-
57
- #### 🚀 Features
58
-
59
- - add defType() construction helper ([947e3fc](https://github.com/thi-ng/umbrella/commit/947e3fc))
60
-
61
- ## [2.1.0](https://github.com/thi-ng/umbrella/tree/@thi.ng/wasm-api@2.1.0) (2024-11-09)
62
-
63
- #### 🚀 Features
64
-
65
- - add null handling in WasmStringPtr ([e8a094d](https://github.com/thi-ng/umbrella/commit/e8a094d))
66
- - update logic to interpret as null pointer if addr=0
67
- - update doc strings
68
- - add null pointer checks, update tests ([247cbbf](https://github.com/thi-ng/umbrella/commit/247cbbf))
69
- - update Pointer/Pointer64 deref logic to return undefined for null pointers
70
- - add `.isNull` getter for all pointer types (incl. `WasmStringPtr`)
71
- - update tests
72
-
73
- # [2.0.0](https://github.com/thi-ng/umbrella/tree/@thi.ng/wasm-api@2.0.0) (2024-08-18)
74
-
75
- #### 🛑 Breaking changes
76
-
77
- - update WASM module dependency handling ([31f0358](https://github.com/thi-ng/umbrella/commit/31f0358))
78
- - BREAKING CHANGE: update WASM module dependency handling
79
- - add `WasmModuleSpec` interface to declare WASM modules with their deps
80
- - update `WasmBridge` ctor to accept array of module specs
81
- - add buildModuleGraph() to process dependencies & init modules from specs
82
- - add/update docstrings
83
- - update tests
84
-
85
- #### 🚀 Features
86
-
87
- - add ObjectIndex.addUnique() ([e79275d](https://github.com/thi-ng/umbrella/commit/e79275d))
88
- - add MemoryView types ([b621adc](https://github.com/thi-ng/umbrella/commit/b621adc))
89
- - add internal memory view accessors ([6830337](https://github.com/thi-ng/umbrella/commit/6830337))
90
- - these accessors are shared by various types generated via [@thi.ng/wasm-api-bindgen](https://github.com/thi-ng/umbrella/tree/main/packages/wasm-api-bindgen)
91
- and help to drastically cut down filesize of generated code
92
- - update pkg exports
93
- - update ObjectIndex ctor, make opts fully optional ([564e0f3](https://github.com/thi-ng/umbrella/commit/564e0f3))
94
-
95
- #### ♻️ Refactoring
96
-
97
- - update internal array mem accessors ([b442d92](https://github.com/thi-ng/umbrella/commit/b442d92))
98
-
99
- ## [1.6.0](https://github.com/thi-ng/umbrella/tree/@thi.ng/wasm-api@1.6.0) (2024-06-21)
100
-
101
- #### 🚀 Features
102
-
103
- - update build script & readme for Zig v0.13.0 ([cd401b2](https://github.com/thi-ng/umbrella/commit/cd401b2))
104
-
105
- ## [1.5.0](https://github.com/thi-ng/umbrella/tree/@thi.ng/wasm-api@1.5.0) (2024-04-22)
106
-
107
- #### 🚀 Features
108
-
109
- - update build script for zig v0.12.0 (incomplete) ([99a1916](https://github.com/thi-ng/umbrella/commit/99a1916))
110
- - store existing script as build-v0.11.zig
111
- - update build script for zig v0.12.0 (incomplete) ([d4fcc54](https://github.com/thi-ng/umbrella/commit/d4fcc54))
112
- - store existing script as build-v0.11.zig
113
-
114
- #### 🩹 Bug fixes
115
-
116
- - re-add -rdynamic flag in build.zig ([f509d1e](https://github.com/thi-ng/umbrella/commit/f509d1e))
117
-
118
- #### ♻️ Refactoring
119
-
120
- - minor zig v0.12.0 updates ([4a0751c](https://github.com/thi-ng/umbrella/commit/4a0751c))
121
- - minor zig v0.12.0 updates ([e3e074d](https://github.com/thi-ng/umbrella/commit/e3e074d))
122
-
123
- ### [1.4.69](https://github.com/thi-ng/umbrella/tree/@thi.ng/wasm-api@1.4.69) (2024-04-20)
124
-
125
- #### ♻️ Refactoring
126
-
127
- - update type usage ([ab27740](https://github.com/thi-ng/umbrella/commit/ab27740))
128
-
129
- ### [1.4.54](https://github.com/thi-ng/umbrella/tree/@thi.ng/wasm-api@1.4.54) (2024-02-22)
130
-
131
- #### ♻️ Refactoring
132
-
133
- - update all `node:*` imports ([c71a526](https://github.com/thi-ng/umbrella/commit/c71a526))
134
-
135
- ### [1.4.32](https://github.com/thi-ng/umbrella/tree/@thi.ng/wasm-api@1.4.32) (2023-11-09)
136
-
137
- #### ♻️ Refactoring
138
-
139
- - update all tests (packages T-Z) ([020ef6c](https://github.com/thi-ng/umbrella/commit/020ef6c))
140
-
141
- ### [1.4.13](https://github.com/thi-ng/umbrella/tree/@thi.ng/wasm-api@1.4.13) (2023-08-04)
142
-
143
- #### ♻️ Refactoring
144
-
145
- - update INotify impl ([07e884f](https://github.com/thi-ng/umbrella/commit/07e884f))
146
- - update INotify impls ([cbdc527](https://github.com/thi-ng/umbrella/commit/cbdc527))
147
-
148
- ### [1.4.12](https://github.com/thi-ng/umbrella/tree/@thi.ng/wasm-api@1.4.12) (2023-07-14)
149
-
150
- #### ♻️ Refactoring
151
-
152
- - update zig build script ([ac0f375](https://github.com/thi-ng/umbrella/commit/ac0f375))
153
- - use non-deprecated `std.Build.Step.Compile` type
154
-
155
- ### [1.4.10](https://github.com/thi-ng/umbrella/tree/@thi.ng/wasm-api@1.4.10) (2023-06-29)
156
-
157
- #### 🩹 Bug fixes
158
-
159
- - temporarily disable `WasmLibOpts.out` due to Zig build updates ([cf63c04](https://github.com/thi-ng/umbrella/commit/cf63c04))
160
-
161
- #### ♻️ Refactoring
162
-
163
- - Zig v0.11-dev syntax updates ([83a1c7b](https://github.com/thi-ng/umbrella/commit/83a1c7b))
164
-
165
- ## [1.4.0](https://github.com/thi-ng/umbrella/tree/@thi.ng/wasm-api@1.4.0) (2023-02-17)
166
-
167
- #### 🚀 Features
168
-
169
- - add build script for Zig v0.11.0-dev ([4c8abcb](https://github.com/thi-ng/umbrella/commit/4c8abcb))
170
-
171
- #### ♻️ Refactoring
172
-
173
- - update build-v0.11.zig build script ([fe7c24c](https://github.com/thi-ng/umbrella/commit/fe7c24c))
174
- - single source of truth for core module names
175
- - rename .mode => .optimize (as per new zig nomenclature)
176
- - add autodoc generation option
177
-
178
- ## [1.3.0](https://github.com/thi-ng/umbrella/tree/@thi.ng/wasm-api@1.3.0) (2023-02-05)
179
-
180
- #### 🚀 Features
181
-
182
- - add ManagedIndex.initCapacity() ([788dfa2](https://github.com/thi-ng/umbrella/commit/788dfa2))
183
- - add WasmType.instanceArray(), add docs ([2adf65f](https://github.com/thi-ng/umbrella/commit/2adf65f))
184
-
185
- ## [1.2.0](https://github.com/thi-ng/umbrella/tree/@thi.ng/wasm-api@1.2.0) (2022-12-01)
186
-
187
- #### 🚀 Features
188
-
189
- - add build script for user projects ([7164f5e](https://github.com/thi-ng/umbrella/commit/7164f5e))
190
-
191
- ## [1.1.0](https://github.com/thi-ng/umbrella/tree/@thi.ng/wasm-api@1.1.0) (2022-11-28)
192
-
193
- #### 🚀 Features
194
-
195
- - update panic handler, add event support ([ab940d9](https://github.com/thi-ng/umbrella/commit/ab940d9))
196
- - update panic handler to broadcast event w/ panic message
197
- - only throw Panic error if no listeners could be notified
198
- - add `EVENT_PANIC` constant
199
-
200
- # [1.0.0](https://github.com/thi-ng/umbrella/tree/@thi.ng/wasm-api@1.0.0) (2022-11-23)
201
-
202
- #### 🛑 Breaking changes
203
-
204
- - remove codegen parts ([188f56b](https://github.com/thi-ng/umbrella/commit/188f56b))
205
- - BREAKING CHANGE: all codegen parts migrated to new pkg: [@thi.ng/wasm-api-bindgen](https://github.com/thi-ng/umbrella/tree/main/packages/wasm-api-bindgen)
206
- - remove all obsolete types, deps & files
207
- - see [2c02dc674](https://github.com/thi-ng/umbrella/commit/2c02dc674) for start of new pkg
208
-
209
- #### 🚀 Features
210
-
211
- - add hexdump methods ([95c91ed](https://github.com/thi-ng/umbrella/commit/95c91ed))
212
- - add printHexdump()/hexdump()
213
- - add/update printHexdump() ([65efaf4](https://github.com/thi-ng/umbrella/commit/65efaf4))
214
- - migrate printHexdump() to WASM core API
215
- - add WasmStringSlice.setAlloc() ([b0f6f9d](https://github.com/thi-ng/umbrella/commit/b0f6f9d))
216
- - add function pointer & i/usize codegen support ([2e67bc5](https://github.com/thi-ng/umbrella/commit/2e67bc5))
217
- - add FuncPointer top-level type for codegen
218
- - add isize/usize type aliases
219
- - extend/refactor all codegens
220
- - update WasmTarget & presets
221
- - add opaque pointer support ([83d4b94](https://github.com/thi-ng/umbrella/commit/83d4b94))
222
- - add optional pointer support ([92a28e7](https://github.com/thi-ng/umbrella/commit/92a28e7))
223
- - update ZIG codegen
224
- - add codegen IDs, conditionally skip code generation ([7146cae](https://github.com/thi-ng/umbrella/commit/7146cae))
225
- - add ICodeGen.id & update codegens
226
- - add TopLevelType.skip option to suppress generation for some langs
227
- - update generateTypes()
228
- - update & rename pkg (formerly wasm-api-timer) ([668f3dd](https://github.com/thi-ng/umbrella/commit/668f3dd))
229
- - rename types form `TimerXXX` => `ScheduleXXX`
230
- - add WASM auto-initializer hook
231
- - update readmes
232
- - update string handling & default string type ([86dee41](https://github.com/thi-ng/umbrella/commit/86dee41))
233
- - update WasmStringSlice & WasmStringPtr
234
- - update .setAlloc() impls
235
- - update Zig code gen to use `[:0]const u8` as default string format
236
- for easier interop and compatibility w/ `extern struct`s
237
- - update generated types & string handling ([686f867](https://github.com/thi-ng/umbrella/commit/686f867))
238
- - switch to extern structs for generated types
239
- - switch to zero-terminated pointers for string values
240
- - update/rename/simplify API methods, remove obsolete
241
- - fix string attrib handling/alloc sizes
242
- - add JSON schema for codegen typedefs ([1291c5c](https://github.com/thi-ng/umbrella/commit/1291c5c))
243
- - switch to `extern struct/union` only, add slice polyfills ([ca65edc](https://github.com/thi-ng/umbrella/commit/ca65edc))
244
- - [zig] emit only `extern` structs/unions
245
- - [zig] remove (somewhat obsolete) support for packed structs/unions (KISS)
246
- - remove `.tag` option from `Struct`/`Union`
247
- - [zig/c] update codegens preludes
248
- - add declarations of `XXSlice`/`XXMutSlice` type aliases
249
- - rename `Field.tag`: `scalar` => `single`
250
- - [ts] add `Field.skip` to suppress codegen for individual fields
251
- - update JSON schema
252
- - set default `string` impl to `ptr` (previously `slice`)
253
- - add internal `clasifyField()` helper to simplify conditionals in codegens
254
- - add/update various internal type predicates
255
- - update CodeGenOpts.pre/post to support string arrays
256
- - use new backend in all codegens ([33fc814](https://github.com/thi-ng/umbrella/commit/33fc814))
257
- - update slice handling using auto-generated wrapper structs
258
- - add support for multi-item pointers
259
- - add support for enum pointers/arrays/slices
260
- - add slice types to wasmapi.h & types.zig
261
- - add more cases to FieldClass
262
- - update classifyField()
263
- - update all codegens to use new classifier based code templates
264
- - add/update codegen tests/fixtures
265
- - add Pointer64 (still unused) ([f1eef25](https://github.com/thi-ng/umbrella/commit/f1eef25))
266
-
267
- #### 🩹 Bug fixes
268
-
269
- - update CLI type checks ([1d4cc59](https://github.com/thi-ng/umbrella/commit/1d4cc59))
270
- - re-add missing optional type `?` prefix [zig] ([3e3b4cd](https://github.com/thi-ng/umbrella/commit/3e3b4cd))
271
- - fix user code handling in TS codegen prelude ([c435caa](https://github.com/thi-ng/umbrella/commit/c435caa))
272
-
273
- #### ♻️ Refactoring
274
-
275
- - update WasmStringSlice.setSlice() ([f278cfd](https://github.com/thi-ng/umbrella/commit/f278cfd))
276
- - rename _printStr0() => printStrZ() ([666546c](https://github.com/thi-ng/umbrella/commit/666546c))
277
- - update/extract C types & core API ([9eb827e](https://github.com/thi-ng/umbrella/commit/9eb827e))
278
- - migrate JSON schema, update readme & pkg ([a6d9c3a](https://github.com/thi-ng/umbrella/commit/a6d9c3a))
279
-
280
- ### [0.18.1](https://github.com/thi-ng/umbrella/tree/@thi.ng/wasm-api@0.18.1) (2022-11-01)
281
-
282
- #### 🩹 Bug fixes
283
-
284
- - fix TS code gen array mem mapping ([a0e7132](https://github.com/thi-ng/umbrella/commit/a0e7132))
285
- - use correct type size for array mem mapping
286
- - update test fixtures
287
-
288
- ## [0.18.0](https://github.com/thi-ng/umbrella/tree/@thi.ng/wasm-api@0.18.0) (2022-10-31)
289
-
290
- #### 🚀 Features
291
-
292
- - update WasmBridge & child API module specs ([6773494](https://github.com/thi-ng/umbrella/commit/6773494))
293
- - update IWasmAPI interface to declare import ID & module dependencies
294
- - update WasmBridge ctor (array instead of object of sub-modules)
295
- - update WasmBridge.init() to initialize modules in dependency order
296
- - replace illegalArgs() with assert()
297
- - add [@thi.ng/arrays](https://github.com/thi-ng/umbrella/tree/main/packages/arrays) as dependency, update pkg
298
-
299
- ### [0.17.3](https://github.com/thi-ng/umbrella/tree/@thi.ng/wasm-api@0.17.3) (2022-10-31)
300
-
301
- #### ♻️ Refactoring
302
-
303
- - restructure/rename zig files, update readdme ([c63ca10](https://github.com/thi-ng/umbrella/commit/c63ca10))
304
- - enforce uniform project structure for all `[@thi.ng/wasm-api-](https://github.com/thi-ng/umbrella/tree/main/packages/wasm-api-)*` packages
305
- - rename /zig/wasmapi.zig => /zig/lib.zig
306
- - update readme w/ further info
307
-
308
- ### [0.17.1](https://github.com/thi-ng/umbrella/tree/@thi.ng/wasm-api@0.17.1) (2022-10-30)
309
-
310
- #### ♻️ Refactoring
311
-
312
- - update zig codegen to ignore uppercase enum config ([3258f91](https://github.com/thi-ng/umbrella/commit/3258f91))
313
- - idiomatic zig enums are lowercase
314
- - update config docs
315
-
316
- ## [0.17.0](https://github.com/thi-ng/umbrella/tree/@thi.ng/wasm-api@0.17.0) (2022-10-29)
317
-
318
- #### 🚀 Features
319
-
320
- - update default value format & handling ([c7752fb](https://github.com/thi-ng/umbrella/commit/c7752fb))
321
- - update Field.default to support lang-specific alts
322
- - add defaultValue() helper
323
- - update zig codegen
324
-
325
- #### 🩹 Bug fixes
326
-
327
- - fix idempotence checks for self-referential types ([2c3f670](https://github.com/thi-ng/umbrella/commit/2c3f670))
328
- - update prepareType()
329
-
330
- ## [0.16.0](https://github.com/thi-ng/umbrella/tree/@thi.ng/wasm-api@0.16.0) (2022-10-28)
331
-
332
- #### 🚀 Features
333
-
334
- - update docstring & user code codegen config ([68694ba](https://github.com/thi-ng/umbrella/commit/68694ba))
335
- - allow doc strings & user codes to be given as string array (lines)
336
- - add InjectedBody type to support multiple injection sites
337
- (e.g. TS interface declarations vs. wrapper impls)
338
- - update TS & Zig codegens
339
- - add internal ensureLines() helper
340
- - update IWasmMemoryAccess & impls ([bb8a3ca](https://github.com/thi-ng/umbrella/commit/bb8a3ca))
341
- - add MemorySlice tuple to describe a memory region
342
- - update allocate() & free() to use MemorySlice, migrate to IWasmMemoryAccess
343
- - migrate growMemory() to IWasmMemoryAccess
344
- - add MemorySlice to default imports in TS codegen
345
- - update TS docstring generator ([5a060b6](https://github.com/thi-ng/umbrella/commit/5a060b6))
346
- - include native/WASM type in docstring (use Zig type sigs)
347
- - update ensureLines() helper
348
- - update test fixtures
349
-
350
- #### 🩹 Bug fixes
351
-
352
- - fix ensureLines(), update tests & fixtures ([f8a4668](https://github.com/thi-ng/umbrella/commit/f8a4668))
353
-
354
- ## [0.15.0](https://github.com/thi-ng/umbrella/tree/@thi.ng/wasm-api@0.15.0) (2022-10-26)
355
-
356
- #### 🚀 Features
357
-
358
- - add WasmTarget codegen opt & usize support ([62c049b](https://github.com/thi-ng/umbrella/commit/62c049b))
359
- - add/update codegen alignment logic ([9c19ad9](https://github.com/thi-ng/umbrella/commit/9c19ad9))
360
- - add AlignmentStrategy & impls
361
- - update alignOf(), sizeOf(), prepareType()
362
- - extract DEFAULT_CODEGEN_OPTS
363
- - add Struct.align config option
364
- - add codegen support for union types ([bbc1f98](https://github.com/thi-ng/umbrella/commit/bbc1f98))
365
- - add Union type, update TopLevelType
366
- - update all codegens (C,TS,Zig)
367
- - update alignOf(), sizeOf()
368
- - update selectAlignment()
369
- - import ManagedIndex, migrate Zig API ([d8bb3ee](https://github.com/thi-ng/umbrella/commit/d8bb3ee))
370
- - migrate ManagedIndex from [@thi.ng/wasm-api-dom](https://github.com/thi-ng/umbrella/tree/main/packages/wasm-api-dom)
371
- - move all Zig sources from /include => /zig
372
- - update pkg
373
-
374
- #### 🩹 Bug fixes
375
-
376
- - fix padding in Zig packed structs ([8d70cf6](https://github.com/thi-ng/umbrella/commit/8d70cf6))
377
- - since packed structs can't contain `[n]u8` types,
378
- generate padding as potentially multiple `uXXX` fields
379
- - fix i64/u64 handling in sizeof() ([825add3](https://github.com/thi-ng/umbrella/commit/825add3))
380
- - update CLI wrapper to allow unions ([904716c](https://github.com/thi-ng/umbrella/commit/904716c))
381
-
382
- #### ♻️ Refactoring
383
-
384
- - minor updates C & Zig codegens ([a94e1cc](https://github.com/thi-ng/umbrella/commit/a94e1cc))
385
- - rename types, use predicates ([4148e1e](https://github.com/thi-ng/umbrella/commit/4148e1e))
386
- - rename StructField => Field
387
- - update codegens to use more predicates instead of inline checks
388
-
389
- ## [0.14.0](https://github.com/thi-ng/umbrella/tree/@thi.ng/wasm-api@0.14.0) (2022-10-17)
390
-
391
- #### 🚀 Features
392
-
393
- - update IWasmMemoryAccess ([28bfff6](https://github.com/thi-ng/umbrella/commit/28bfff6))
394
- - add IWasmMemoryAccess.ensureMemory()
395
- - update WasmBridge.setString() to ensure memory
396
- - ensure memory in WasmStringSlice/Ptr ([c55c6f0](https://github.com/thi-ng/umbrella/commit/c55c6f0))
397
- - add Zig Slice & String wrappers ([28d057e](https://github.com/thi-ng/umbrella/commit/28d057e))
398
- - allows expressing & converting slices for `extern struct`s
399
- - add ptrCast() zig helper ([72a9406](https://github.com/thi-ng/umbrella/commit/72a9406))
400
-
401
- ## [0.13.0](https://github.com/thi-ng/umbrella/tree/@thi.ng/wasm-api@0.13.0) (2022-10-04)
402
-
403
- #### 🚀 Features
404
-
405
- - add WasmStringSlice.setSlice() ([50cc798](https://github.com/thi-ng/umbrella/commit/50cc798))
406
- - update C11 code gen ([ff8037f](https://github.com/thi-ng/umbrella/commit/ff8037f))
407
- - add `#ifdef __cplusplus` guards to pre/post
408
-
409
- #### ⏱ Performance improvements
410
-
411
- - lazy eval log message args ([3e13397](https://github.com/thi-ng/umbrella/commit/3e13397))
412
-
413
- ## [0.12.0](https://github.com/thi-ng/umbrella/tree/@thi.ng/wasm-api@0.12.0) (2022-10-03)
414
-
415
- #### 🚀 Features
416
-
417
- - add doc string word wrapping ([c0b8e15](https://github.com/thi-ng/umbrella/commit/c0b8e15))
418
- - update prefixLines(), add target line width arg
419
- - update ICodeGen & CodeGenOpts
420
- - update all codegens
421
- - update deps
422
- - add default value support for Zig codegen ([3c37ae7](https://github.com/thi-ng/umbrella/commit/3c37ae7))
423
- - add ReadonlyWasmString, update impls ([240a148](https://github.com/thi-ng/umbrella/commit/240a148))
424
- - add support for sentinels & user type body injection ([d240046](https://github.com/thi-ng/umbrella/commit/d240046))
425
- - update sizeOf() to include sentinels
426
- - add TopLevelType.body for extra user code
427
- - update Zig codegen to:
428
- - support array/slice sentinels
429
- - add optional user code injection
430
- - add `std` import header
431
- - update CLI ([98d2414](https://github.com/thi-ng/umbrella/commit/98d2414))
432
- - add optional type analytics JSON output
433
- - add support for including user code via `@`-file references
434
- - update config `@`-file refs to resolve relative to config file
435
-
436
- #### 🩹 Bug fixes
437
-
438
- - minor fix word wrap line width ([053ba0f](https://github.com/thi-ng/umbrella/commit/053ba0f))
439
- - update zig panic handler sig for latest zig master version ([cb51bf6](https://github.com/thi-ng/umbrella/commit/cb51bf6))
440
- - see https://github.com/ziglang/zig/commit/694fab484805088030fa36efe3e6b6e7ee385852
441
-
442
- ## [0.11.0](https://github.com/thi-ng/umbrella/tree/@thi.ng/wasm-api@0.11.0) (2022-09-21)
443
-
444
- #### 🚀 Features
445
-
446
- - update core API & bindings ([b185ea5](https://github.com/thi-ng/umbrella/commit/b185ea5))
447
- - add _panic(), timer(), epoch() core API fns
448
- - update printI/U64() fns to accept bigint
449
- - update C & Zig bindings
450
- - update tests
451
- - add clang-format
452
- - add WasmString wrappers ([18d8fcb](https://github.com/thi-ng/umbrella/commit/18d8fcb))
453
- - still unused (to be added to TS codegen)
454
- - WasmString codegen integration ([97fc318](https://github.com/thi-ng/umbrella/commit/97fc318))
455
- - update TS codegen to wrap strings using new `WasmString` or `WasmStringPtr`
456
- - update global codegen options handling, now passed to each codegen
457
- - update TSOpts & ZigOpts to include custom pre/post
458
- - major update codegens, string & pointer handling ([4f02295](https://github.com/thi-ng/umbrella/commit/4f02295))
459
- - update/fix string wrappers (`WasmStringSlice/Ptr`)
460
- - add generic `Pointer` wrapper
461
- - add `const` field type support
462
- - add applyIndents() formatter fn, simplify all codegens
463
- - major update TS & Zig codegens
464
- - update CodeGenOpts ([b9fd7ff](https://github.com/thi-ng/umbrella/commit/b9fd7ff))
465
- - update TS codegen (array pointers) ([30360f2](https://github.com/thi-ng/umbrella/commit/30360f2))
466
- - add C11 support, update codegens & config ([590311e](https://github.com/thi-ng/umbrella/commit/590311e))
467
- - add preliminary C11 codegen
468
- - add optional `tag` field for structs (extern/packed)
469
- - add support for auto-labeled padding fields
470
- - i.e. defined via unnamed fields with `pad` value
471
- - move debug config option to global `CodeGenOpts`
472
- - update codegen CLI ([435ad2b](https://github.com/thi-ng/umbrella/commit/435ad2b))
473
- - add C11 support
474
- - add support for padding fields (in `validateTypeRefs()`)
475
- - add CLI arg for forcing string type impl
476
- - update deps
477
- - update/fix codegens & config ([87def23](https://github.com/thi-ng/umbrella/commit/87def23))
478
- - add global `CodeGenOpts.uppercaseEnums` option (migrate from TSOpts)
479
- - set `i32` as enum default tag (for C compatibility)
480
- - update C11 codegen, add `typePrefix` option
481
- - fix C11 enum codegen (use `typedef enum`)
482
- - add internal enumName() helper
483
- - minor updates Zig codegen
484
- - refactor CodeGenOpts, update CLI config handling ([fa2e30f](https://github.com/thi-ng/umbrella/commit/fa2e30f))
485
- - extract CodeGenOptsBase interface for common pre/post config
486
- - update CLI config loading to support loading pre/post contents
487
- from separate files (if value given as `@path/to-file.ext`)
488
-
489
- ## [0.10.0](https://github.com/thi-ng/umbrella/tree/@thi.ng/wasm-api@0.10.0) (2022-08-24)
490
-
491
- #### 🚀 Features
492
-
493
- - add events, update allocator handling ([89416b1](https://github.com/thi-ng/umbrella/commit/89416b1))
494
- - add INotify impl for WasmBridge
495
- - emit event when WASM memory has changed (e.g. to recreate user views)
496
- - reverse logic so that NO allocator is used by default and instead must
497
- be explicitly enabled (rather than disabled)
498
- - update Zig & C bindings
499
- - add/update docstrings
500
-
501
- ## [0.9.0](https://github.com/thi-ng/umbrella/tree/@thi.ng/wasm-api@0.9.0) (2022-08-23)
502
-
503
- #### 🚀 Features
504
-
505
- - add debug() core API function ([ca01978](https://github.com/thi-ng/umbrella/commit/ca01978))
506
-
507
- #### 🩹 Bug fixes
508
-
509
- - update setString() return value ([116dd0b](https://github.com/thi-ng/umbrella/commit/116dd0b))
510
- - always only return num bytes written w/o sentinel
511
-
512
- ## [0.8.0](https://github.com/thi-ng/umbrella/tree/@thi.ng/wasm-api@0.8.0) (2022-08-16)
513
-
514
- #### 🚀 Features
515
-
516
- - add preliminary string handling support ([3da4efe](https://github.com/thi-ng/umbrella/commit/3da4efe))
517
- - update/rename IWasmMemoryAccess (add string getter/setter)
518
- - update StructField.type (add `string`)
519
- - add CodeGenOpts.stringType option
520
- - update codegen fns
521
- - update TS & Zig codegen impls
522
-
523
- ## [0.7.0](https://github.com/thi-ng/umbrella/tree/@thi.ng/wasm-api@0.7.0) (2022-08-15)
524
-
525
- #### 🚀 Features
526
-
527
- - update helper predicates ([65b23d4](https://github.com/thi-ng/umbrella/commit/65b23d4))
528
- - update TSOpts & TS codegen ([4f6bbbf](https://github.com/thi-ng/umbrella/commit/4f6bbbf))
529
- - add `uppercaseEnum` option to force UC enum IDs
530
- - add CLI wrapper for codegens ([683a560](https://github.com/thi-ng/umbrella/commit/683a560))
531
-
532
- #### 🩹 Bug fixes
533
-
534
- - correct TS __mapArray codegen ([289b137](https://github.com/thi-ng/umbrella/commit/289b137))
535
- - allow signed ints for enum tags ([78d0822](https://github.com/thi-ng/umbrella/commit/78d0822))
536
-
537
- ## [0.6.0](https://github.com/thi-ng/umbrella/tree/@thi.ng/wasm-api@0.6.0) (2022-08-15)
538
-
539
- #### 🚀 Features
540
-
541
- - update allocate/free() fns, update Zig core API ([8a55989](https://github.com/thi-ng/umbrella/commit/8a55989))
542
- - add _wasm_free() Zig impl
543
- - add printFmt() Zig fn
544
- - update WasmBridge.allocate() (add clear option)
545
- - update WasmBridge.free()
546
- - ensure memory in WasmBridge.getString()
547
- - add/update docstrings
548
- - add bindings code generator framework ([17ee06f](https://github.com/thi-ng/umbrella/commit/17ee06f))
549
- - add/update deps
550
- - add preliminary codegens for Zig & TS
551
- - add supporting types & utils
552
- - add generateTypes() codegen facade fn
553
- - update codegens, add opts, fix alignments ([5c1fec5](https://github.com/thi-ng/umbrella/commit/5c1fec5))
554
- - add global CodeGenOpts
555
- - update generateTypes() to consider new opts
556
- - add global USIZE type (for pointer sizes & codegens)
557
- - add options for Zig codegen (extra debug helpers)
558
- - simplify TS codegen
559
- - fix sizeOf() for struct fields
560
- - make prepareType() idempotent
561
- - add C11 header/include file, update WasmBridge ([a67dc00](https://github.com/thi-ng/umbrella/commit/a67dc00))
562
- - migrate headers/includes to /include
563
- - rename "core" import section => "wasmapi"
564
- - rename WasmBridge.core => WasmBridge.api
565
- - update pkg file
566
-
567
- #### ♻️ Refactoring
568
-
569
- - extract WasmMemViews interface, update test WASM ([4c73e65](https://github.com/thi-ng/umbrella/commit/4c73e65))
570
-
571
- ## [0.5.0](https://github.com/thi-ng/umbrella/tree/@thi.ng/wasm-api@0.5.0) (2022-08-08)
572
-
573
- #### 🚀 Features
574
-
575
- - add memory allocation ([980c1f2](https://github.com/thi-ng/umbrella/commit/980c1f2))
576
- - add WasmBridge.allocate()/free()
577
- - add WasmBridge.growMemory()
578
- - extract WasmBridge.ensureMemory()
579
- - update WasmExports
580
- - update Zig bindings (configurable allocator, GPA as default)
581
-
582
- ## [0.4.0](https://github.com/thi-ng/umbrella/tree/@thi.ng/wasm-api@0.4.0) (2022-08-07)
583
-
584
- #### 🚀 Features
585
-
586
- - use named import objects ([4965f20](https://github.com/thi-ng/umbrella/commit/4965f20))
587
- - switch to name import objects to avoid merging into flat namespace
588
- - update externs in core.zig
589
- - update docstrings
590
-
591
- ## [0.3.0](https://github.com/thi-ng/umbrella/tree/@thi.ng/wasm-api@0.3.0) (2022-08-04)
592
-
593
- #### 🚀 Features
594
-
595
- - major update WasmBridge, add types ([47aa222](https://github.com/thi-ng/umbrella/commit/47aa222))
596
- - add WasmExports base interface
597
- - add generics for WasmBridge & IWasmAPI
598
- - update WasmBridge.init() arg (full WASM exports, not just mem)
599
- - add WasmBridge.exports field to store WASM module exports
600
- - add naming conflict check in WasmBridge.getImports()
601
- - add WasmBridge.instantiate, add/update accessors ([0698bae](https://github.com/thi-ng/umbrella/commit/0698bae))
602
- - add WasmBridge.instantiate() boilerplate
603
- - add setters for typed scalars & arrays
604
- - rename derefXX() => getXX() getters
605
- - update tests
606
- - add i64/u64 support/accessors ([768c8bd](https://github.com/thi-ng/umbrella/commit/768c8bd))
607
-
608
- ## [0.2.0](https://github.com/thi-ng/umbrella/tree/@thi.ng/wasm-api@0.2.0) (2022-08-01)
609
-
610
- #### 🚀 Features
611
-
612
- - fix zig slice pointer handling, use named child modules ([bd7905a](https://github.com/thi-ng/umbrella/commit/bd7905a))
613
- - major update ObjectIndex ([4547f1f](https://github.com/thi-ng/umbrella/commit/4547f1f))
614
- - add ObjectIndexOpts ctor options
615
- - add IDGen for internal ID generation/recycling
616
- - add iterators
617
- - rename existing methods
618
-
619
- ## [0.1.0](https://github.com/thi-ng/umbrella/tree/@thi.ng/wasm-api@0.1.0) (2022-08-01)
620
-
621
- #### 🚀 Features
622
-
623
- - import as new pkg ([eda4840](https://github.com/thi-ng/umbrella/commit/eda4840))