@thi.ng/wasm-api
Version:
Generic, modular, extensible API bridge and infrastructure for hybrid JS & WebAssembly projects
608 lines (445 loc) • 27.8 kB
Markdown
# Change Log
- **Last updated**: 2025-08-04T09:13:01Z
- **Generator**: [thi.ng/monopub](https://thi.ng/monopub)
All notable changes to this project will be documented in this file.
Only versions published since **2022-01-01** are listed here.
Please consult the Git history for older version information.
See [Conventional Commits](https://conventionalcommits.org/) for commit guidelines.
**Note:** Unlisted _patch_ versions only involve non-code or otherwise excluded changes
and/or version bumps of transitive dependencies.
### [2.3.12](https://github.com/thi-ng/umbrella/tree/@thi.ng/wasm-api@2.3.12) (2025-03-11)
#### ♻️ Refactoring
- minor update core lib (Zig v0.14.0) ([ebe1533](https://github.com/thi-ng/umbrella/commit/ebe1533))
### [2.3.1](https://github.com/thi-ng/umbrella/tree/@thi.ng/wasm-api@2.3.1) (2025-01-14)
#### ♻️ Refactoring
- use optional chaining & nullish coalescing ([c5a0a13](https://github.com/thi-ng/umbrella/commit/c5a0a13))
## [2.3.0](https://github.com/thi-ng/umbrella/tree/@thi.ng/wasm-api@2.3.0) (2025-01-10)
#### 🚀 Features
- add WasmTypeKeys helper type ([7e293ce](https://github.com/thi-ng/umbrella/commit/7e293ce))
### [2.2.1](https://github.com/thi-ng/umbrella/tree/@thi.ng/wasm-api@2.2.1) (2024-11-10)
#### 🩹 Bug fixes
- fix defType() property handling ([37bebee](https://github.com/thi-ng/umbrella/commit/37bebee))
- inject `__base` and `__bytes` getters using `Object.defineProperties()`
## [2.2.0](https://github.com/thi-ng/umbrella/tree/@thi.ng/wasm-api@2.2.0) (2024-11-10)
#### 🚀 Features
- add defType() construction helper ([947e3fc](https://github.com/thi-ng/umbrella/commit/947e3fc))
## [2.1.0](https://github.com/thi-ng/umbrella/tree/@thi.ng/wasm-api@2.1.0) (2024-11-09)
#### 🚀 Features
- add null handling in WasmStringPtr ([e8a094d](https://github.com/thi-ng/umbrella/commit/e8a094d))
- update logic to interpret as null pointer if addr=0
- update doc strings
- add null pointer checks, update tests ([247cbbf](https://github.com/thi-ng/umbrella/commit/247cbbf))
- update Pointer/Pointer64 deref logic to return undefined for null pointers
- add `.isNull` getter for all pointer types (incl. `WasmStringPtr`)
- update tests
# [2.0.0](https://github.com/thi-ng/umbrella/tree/@thi.ng/wasm-api@2.0.0) (2024-08-18)
#### 🛑 Breaking changes
- update WASM module dependency handling ([31f0358](https://github.com/thi-ng/umbrella/commit/31f0358))
- BREAKING CHANGE: update WASM module dependency handling
- add `WasmModuleSpec` interface to declare WASM modules with their deps
- update `WasmBridge` ctor to accept array of module specs
- add buildModuleGraph() to process dependencies & init modules from specs
- add/update docstrings
- update tests
#### 🚀 Features
- add ObjectIndex.addUnique() ([e79275d](https://github.com/thi-ng/umbrella/commit/e79275d))
- add MemoryView types ([b621adc](https://github.com/thi-ng/umbrella/commit/b621adc))
- add internal memory view accessors ([6830337](https://github.com/thi-ng/umbrella/commit/6830337))
- 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)
and help to drastically cut down filesize of generated code
- update pkg exports
- update ObjectIndex ctor, make opts fully optional ([564e0f3](https://github.com/thi-ng/umbrella/commit/564e0f3))
#### ♻️ Refactoring
- update internal array mem accessors ([b442d92](https://github.com/thi-ng/umbrella/commit/b442d92))
## [1.6.0](https://github.com/thi-ng/umbrella/tree/@thi.ng/wasm-api@1.6.0) (2024-06-21)
#### 🚀 Features
- update build script & readme for Zig v0.13.0 ([cd401b2](https://github.com/thi-ng/umbrella/commit/cd401b2))
## [1.5.0](https://github.com/thi-ng/umbrella/tree/@thi.ng/wasm-api@1.5.0) (2024-04-22)
#### 🚀 Features
- update build script for zig v0.12.0 (incomplete) ([99a1916](https://github.com/thi-ng/umbrella/commit/99a1916))
- store existing script as build-v0.11.zig
- update build script for zig v0.12.0 (incomplete) ([d4fcc54](https://github.com/thi-ng/umbrella/commit/d4fcc54))
- store existing script as build-v0.11.zig
#### 🩹 Bug fixes
- re-add -rdynamic flag in build.zig ([f509d1e](https://github.com/thi-ng/umbrella/commit/f509d1e))
#### ♻️ Refactoring
- minor zig v0.12.0 updates ([4a0751c](https://github.com/thi-ng/umbrella/commit/4a0751c))
- minor zig v0.12.0 updates ([e3e074d](https://github.com/thi-ng/umbrella/commit/e3e074d))
### [1.4.69](https://github.com/thi-ng/umbrella/tree/@thi.ng/wasm-api@1.4.69) (2024-04-20)
#### ♻️ Refactoring
- update type usage ([ab27740](https://github.com/thi-ng/umbrella/commit/ab27740))
### [1.4.54](https://github.com/thi-ng/umbrella/tree/@thi.ng/wasm-api@1.4.54) (2024-02-22)
#### ♻️ Refactoring
- update all `node:*` imports ([c71a526](https://github.com/thi-ng/umbrella/commit/c71a526))
### [1.4.32](https://github.com/thi-ng/umbrella/tree/@thi.ng/wasm-api@1.4.32) (2023-11-09)
#### ♻️ Refactoring
- update all tests (packages T-Z) ([020ef6c](https://github.com/thi-ng/umbrella/commit/020ef6c))
### [1.4.13](https://github.com/thi-ng/umbrella/tree/@thi.ng/wasm-api@1.4.13) (2023-08-04)
#### ♻️ Refactoring
- update INotify impl ([07e884f](https://github.com/thi-ng/umbrella/commit/07e884f))
- update INotify impls ([cbdc527](https://github.com/thi-ng/umbrella/commit/cbdc527))
### [1.4.12](https://github.com/thi-ng/umbrella/tree/@thi.ng/wasm-api@1.4.12) (2023-07-14)
#### ♻️ Refactoring
- update zig build script ([ac0f375](https://github.com/thi-ng/umbrella/commit/ac0f375))
- use non-deprecated `std.Build.Step.Compile` type
### [1.4.10](https://github.com/thi-ng/umbrella/tree/@thi.ng/wasm-api@1.4.10) (2023-06-29)
#### 🩹 Bug fixes
- temporarily disable `WasmLibOpts.out` due to Zig build updates ([cf63c04](https://github.com/thi-ng/umbrella/commit/cf63c04))
#### ♻️ Refactoring
- Zig v0.11-dev syntax updates ([83a1c7b](https://github.com/thi-ng/umbrella/commit/83a1c7b))
## [1.4.0](https://github.com/thi-ng/umbrella/tree/@thi.ng/wasm-api@1.4.0) (2023-02-17)
#### 🚀 Features
- add build script for Zig v0.11.0-dev ([4c8abcb](https://github.com/thi-ng/umbrella/commit/4c8abcb))
#### ♻️ Refactoring
- update build-v0.11.zig build script ([fe7c24c](https://github.com/thi-ng/umbrella/commit/fe7c24c))
- single source of truth for core module names
- rename .mode => .optimize (as per new zig nomenclature)
- add autodoc generation option
## [1.3.0](https://github.com/thi-ng/umbrella/tree/@thi.ng/wasm-api@1.3.0) (2023-02-05)
#### 🚀 Features
- add ManagedIndex.initCapacity() ([788dfa2](https://github.com/thi-ng/umbrella/commit/788dfa2))
- add WasmType.instanceArray(), add docs ([2adf65f](https://github.com/thi-ng/umbrella/commit/2adf65f))
## [1.2.0](https://github.com/thi-ng/umbrella/tree/@thi.ng/wasm-api@1.2.0) (2022-12-01)
#### 🚀 Features
- add build script for user projects ([7164f5e](https://github.com/thi-ng/umbrella/commit/7164f5e))
## [1.1.0](https://github.com/thi-ng/umbrella/tree/@thi.ng/wasm-api@1.1.0) (2022-11-28)
#### 🚀 Features
- update panic handler, add event support ([ab940d9](https://github.com/thi-ng/umbrella/commit/ab940d9))
- update panic handler to broadcast event w/ panic message
- only throw Panic error if no listeners could be notified
- add `EVENT_PANIC` constant
# [1.0.0](https://github.com/thi-ng/umbrella/tree/@thi.ng/wasm-api@1.0.0) (2022-11-23)
#### 🛑 Breaking changes
- remove codegen parts ([188f56b](https://github.com/thi-ng/umbrella/commit/188f56b))
- 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)
- remove all obsolete types, deps & files
- see [2c02dc674](https://github.com/thi-ng/umbrella/commit/2c02dc674) for start of new pkg
#### 🚀 Features
- add hexdump methods ([95c91ed](https://github.com/thi-ng/umbrella/commit/95c91ed))
- add printHexdump()/hexdump()
- add/update printHexdump() ([65efaf4](https://github.com/thi-ng/umbrella/commit/65efaf4))
- migrate printHexdump() to WASM core API
- add WasmStringSlice.setAlloc() ([b0f6f9d](https://github.com/thi-ng/umbrella/commit/b0f6f9d))
- add function pointer & i/usize codegen support ([2e67bc5](https://github.com/thi-ng/umbrella/commit/2e67bc5))
- add FuncPointer top-level type for codegen
- add isize/usize type aliases
- extend/refactor all codegens
- update WasmTarget & presets
- add opaque pointer support ([83d4b94](https://github.com/thi-ng/umbrella/commit/83d4b94))
- add optional pointer support ([92a28e7](https://github.com/thi-ng/umbrella/commit/92a28e7))
- update ZIG codegen
- add codegen IDs, conditionally skip code generation ([7146cae](https://github.com/thi-ng/umbrella/commit/7146cae))
- add ICodeGen.id & update codegens
- add TopLevelType.skip option to suppress generation for some langs
- update generateTypes()
- update & rename pkg (formerly wasm-api-timer) ([668f3dd](https://github.com/thi-ng/umbrella/commit/668f3dd))
- rename types form `TimerXXX` => `ScheduleXXX`
- add WASM auto-initializer hook
- update readmes
- update string handling & default string type ([86dee41](https://github.com/thi-ng/umbrella/commit/86dee41))
- update WasmStringSlice & WasmStringPtr
- update .setAlloc() impls
- update Zig code gen to use `[:0]const u8` as default string format
for easier interop and compatibility w/ `extern struct`s
- update generated types & string handling ([686f867](https://github.com/thi-ng/umbrella/commit/686f867))
- switch to extern structs for generated types
- switch to zero-terminated pointers for string values
- update/rename/simplify API methods, remove obsolete
- fix string attrib handling/alloc sizes
- add JSON schema for codegen typedefs ([1291c5c](https://github.com/thi-ng/umbrella/commit/1291c5c))
- switch to `extern struct/union` only, add slice polyfills ([ca65edc](https://github.com/thi-ng/umbrella/commit/ca65edc))
- [zig] emit only `extern` structs/unions
- [zig] remove (somewhat obsolete) support for packed structs/unions (KISS)
- remove `.tag` option from `Struct`/`Union`
- [zig/c] update codegens preludes
- add declarations of `XXSlice`/`XXMutSlice` type aliases
- rename `Field.tag`: `scalar` => `single`
- [ts] add `Field.skip` to suppress codegen for individual fields
- update JSON schema
- set default `string` impl to `ptr` (previously `slice`)
- add internal `clasifyField()` helper to simplify conditionals in codegens
- add/update various internal type predicates
- update CodeGenOpts.pre/post to support string arrays
- use new backend in all codegens ([33fc814](https://github.com/thi-ng/umbrella/commit/33fc814))
- update slice handling using auto-generated wrapper structs
- add support for multi-item pointers
- add support for enum pointers/arrays/slices
- add slice types to wasmapi.h & types.zig
- add more cases to FieldClass
- update classifyField()
- update all codegens to use new classifier based code templates
- add/update codegen tests/fixtures
- add Pointer64 (still unused) ([f1eef25](https://github.com/thi-ng/umbrella/commit/f1eef25))
#### 🩹 Bug fixes
- update CLI type checks ([1d4cc59](https://github.com/thi-ng/umbrella/commit/1d4cc59))
- re-add missing optional type `?` prefix [zig] ([3e3b4cd](https://github.com/thi-ng/umbrella/commit/3e3b4cd))
- fix user code handling in TS codegen prelude ([c435caa](https://github.com/thi-ng/umbrella/commit/c435caa))
#### ♻️ Refactoring
- update WasmStringSlice.setSlice() ([f278cfd](https://github.com/thi-ng/umbrella/commit/f278cfd))
- rename _printStr0() => printStrZ() ([666546c](https://github.com/thi-ng/umbrella/commit/666546c))
- update/extract C types & core API ([9eb827e](https://github.com/thi-ng/umbrella/commit/9eb827e))
- migrate JSON schema, update readme & pkg ([a6d9c3a](https://github.com/thi-ng/umbrella/commit/a6d9c3a))
### [0.18.1](https://github.com/thi-ng/umbrella/tree/@thi.ng/wasm-api@0.18.1) (2022-11-01)
#### 🩹 Bug fixes
- fix TS code gen array mem mapping ([a0e7132](https://github.com/thi-ng/umbrella/commit/a0e7132))
- use correct type size for array mem mapping
- update test fixtures
## [0.18.0](https://github.com/thi-ng/umbrella/tree/@thi.ng/wasm-api@0.18.0) (2022-10-31)
#### 🚀 Features
- update WasmBridge & child API module specs ([6773494](https://github.com/thi-ng/umbrella/commit/6773494))
- update IWasmAPI interface to declare import ID & module dependencies
- update WasmBridge ctor (array instead of object of sub-modules)
- update WasmBridge.init() to initialize modules in dependency order
- replace illegalArgs() with assert()
- add [@thi.ng/arrays](https://github.com/thi-ng/umbrella/tree/main/packages/arrays) as dependency, update pkg
### [0.17.3](https://github.com/thi-ng/umbrella/tree/@thi.ng/wasm-api@0.17.3) (2022-10-31)
#### ♻️ Refactoring
- restructure/rename zig files, update readdme ([c63ca10](https://github.com/thi-ng/umbrella/commit/c63ca10))
- enforce uniform project structure for all `[@thi.ng/wasm-api-](https://github.com/thi-ng/umbrella/tree/main/packages/wasm-api-)*` packages
- rename /zig/wasmapi.zig => /zig/lib.zig
- update readme w/ further info
### [0.17.1](https://github.com/thi-ng/umbrella/tree/@thi.ng/wasm-api@0.17.1) (2022-10-30)
#### ♻️ Refactoring
- update zig codegen to ignore uppercase enum config ([3258f91](https://github.com/thi-ng/umbrella/commit/3258f91))
- idiomatic zig enums are lowercase
- update config docs
## [0.17.0](https://github.com/thi-ng/umbrella/tree/@thi.ng/wasm-api@0.17.0) (2022-10-29)
#### 🚀 Features
- update default value format & handling ([c7752fb](https://github.com/thi-ng/umbrella/commit/c7752fb))
- update Field.default to support lang-specific alts
- add defaultValue() helper
- update zig codegen
#### 🩹 Bug fixes
- fix idempotence checks for self-referential types ([2c3f670](https://github.com/thi-ng/umbrella/commit/2c3f670))
- update prepareType()
## [0.16.0](https://github.com/thi-ng/umbrella/tree/@thi.ng/wasm-api@0.16.0) (2022-10-28)
#### 🚀 Features
- update docstring & user code codegen config ([68694ba](https://github.com/thi-ng/umbrella/commit/68694ba))
- allow doc strings & user codes to be given as string array (lines)
- add InjectedBody type to support multiple injection sites
(e.g. TS interface declarations vs. wrapper impls)
- update TS & Zig codegens
- add internal ensureLines() helper
- update IWasmMemoryAccess & impls ([bb8a3ca](https://github.com/thi-ng/umbrella/commit/bb8a3ca))
- add MemorySlice tuple to describe a memory region
- update allocate() & free() to use MemorySlice, migrate to IWasmMemoryAccess
- migrate growMemory() to IWasmMemoryAccess
- add MemorySlice to default imports in TS codegen
- update TS docstring generator ([5a060b6](https://github.com/thi-ng/umbrella/commit/5a060b6))
- include native/WASM type in docstring (use Zig type sigs)
- update ensureLines() helper
- update test fixtures
#### 🩹 Bug fixes
- fix ensureLines(), update tests & fixtures ([f8a4668](https://github.com/thi-ng/umbrella/commit/f8a4668))
## [0.15.0](https://github.com/thi-ng/umbrella/tree/@thi.ng/wasm-api@0.15.0) (2022-10-26)
#### 🚀 Features
- add WasmTarget codegen opt & usize support ([62c049b](https://github.com/thi-ng/umbrella/commit/62c049b))
- add/update codegen alignment logic ([9c19ad9](https://github.com/thi-ng/umbrella/commit/9c19ad9))
- add AlignmentStrategy & impls
- update alignOf(), sizeOf(), prepareType()
- extract DEFAULT_CODEGEN_OPTS
- add Struct.align config option
- add codegen support for union types ([bbc1f98](https://github.com/thi-ng/umbrella/commit/bbc1f98))
- add Union type, update TopLevelType
- update all codegens (C,TS,Zig)
- update alignOf(), sizeOf()
- update selectAlignment()
- import ManagedIndex, migrate Zig API ([d8bb3ee](https://github.com/thi-ng/umbrella/commit/d8bb3ee))
- migrate ManagedIndex from [@thi.ng/wasm-api-dom](https://github.com/thi-ng/umbrella/tree/main/packages/wasm-api-dom)
- move all Zig sources from /include => /zig
- update pkg
#### 🩹 Bug fixes
- fix padding in Zig packed structs ([8d70cf6](https://github.com/thi-ng/umbrella/commit/8d70cf6))
- since packed structs can't contain `[n]u8` types,
generate padding as potentially multiple `uXXX` fields
- fix i64/u64 handling in sizeof() ([825add3](https://github.com/thi-ng/umbrella/commit/825add3))
- update CLI wrapper to allow unions ([904716c](https://github.com/thi-ng/umbrella/commit/904716c))
#### ♻️ Refactoring
- minor updates C & Zig codegens ([a94e1cc](https://github.com/thi-ng/umbrella/commit/a94e1cc))
- rename types, use predicates ([4148e1e](https://github.com/thi-ng/umbrella/commit/4148e1e))
- rename StructField => Field
- update codegens to use more predicates instead of inline checks
## [0.14.0](https://github.com/thi-ng/umbrella/tree/@thi.ng/wasm-api@0.14.0) (2022-10-17)
#### 🚀 Features
- update IWasmMemoryAccess ([28bfff6](https://github.com/thi-ng/umbrella/commit/28bfff6))
- add IWasmMemoryAccess.ensureMemory()
- update WasmBridge.setString() to ensure memory
- ensure memory in WasmStringSlice/Ptr ([c55c6f0](https://github.com/thi-ng/umbrella/commit/c55c6f0))
- add Zig Slice & String wrappers ([28d057e](https://github.com/thi-ng/umbrella/commit/28d057e))
- allows expressing & converting slices for `extern struct`s
- add ptrCast() zig helper ([72a9406](https://github.com/thi-ng/umbrella/commit/72a9406))
## [0.13.0](https://github.com/thi-ng/umbrella/tree/@thi.ng/wasm-api@0.13.0) (2022-10-04)
#### 🚀 Features
- add WasmStringSlice.setSlice() ([50cc798](https://github.com/thi-ng/umbrella/commit/50cc798))
- update C11 code gen ([ff8037f](https://github.com/thi-ng/umbrella/commit/ff8037f))
- add `#ifdef __cplusplus` guards to pre/post
#### ⏱ Performance improvements
- lazy eval log message args ([3e13397](https://github.com/thi-ng/umbrella/commit/3e13397))
## [0.12.0](https://github.com/thi-ng/umbrella/tree/@thi.ng/wasm-api@0.12.0) (2022-10-03)
#### 🚀 Features
- add doc string word wrapping ([c0b8e15](https://github.com/thi-ng/umbrella/commit/c0b8e15))
- update prefixLines(), add target line width arg
- update ICodeGen & CodeGenOpts
- update all codegens
- update deps
- add default value support for Zig codegen ([3c37ae7](https://github.com/thi-ng/umbrella/commit/3c37ae7))
- add ReadonlyWasmString, update impls ([240a148](https://github.com/thi-ng/umbrella/commit/240a148))
- add support for sentinels & user type body injection ([d240046](https://github.com/thi-ng/umbrella/commit/d240046))
- update sizeOf() to include sentinels
- add TopLevelType.body for extra user code
- update Zig codegen to:
- support array/slice sentinels
- add optional user code injection
- add `std` import header
- update CLI ([98d2414](https://github.com/thi-ng/umbrella/commit/98d2414))
- add optional type analytics JSON output
- add support for including user code via `@`-file references
- update config `@`-file refs to resolve relative to config file
#### 🩹 Bug fixes
- minor fix word wrap line width ([053ba0f](https://github.com/thi-ng/umbrella/commit/053ba0f))
- update zig panic handler sig for latest zig master version ([cb51bf6](https://github.com/thi-ng/umbrella/commit/cb51bf6))
- see https://github.com/ziglang/zig/commit/694fab484805088030fa36efe3e6b6e7ee385852
## [0.11.0](https://github.com/thi-ng/umbrella/tree/@thi.ng/wasm-api@0.11.0) (2022-09-21)
#### 🚀 Features
- update core API & bindings ([b185ea5](https://github.com/thi-ng/umbrella/commit/b185ea5))
- add _panic(), timer(), epoch() core API fns
- update printI/U64() fns to accept bigint
- update C & Zig bindings
- update tests
- add clang-format
- add WasmString wrappers ([18d8fcb](https://github.com/thi-ng/umbrella/commit/18d8fcb))
- still unused (to be added to TS codegen)
- WasmString codegen integration ([97fc318](https://github.com/thi-ng/umbrella/commit/97fc318))
- update TS codegen to wrap strings using new `WasmString` or `WasmStringPtr`
- update global codegen options handling, now passed to each codegen
- update TSOpts & ZigOpts to include custom pre/post
- major update codegens, string & pointer handling ([4f02295](https://github.com/thi-ng/umbrella/commit/4f02295))
- update/fix string wrappers (`WasmStringSlice/Ptr`)
- add generic `Pointer` wrapper
- add `const` field type support
- add applyIndents() formatter fn, simplify all codegens
- major update TS & Zig codegens
- update CodeGenOpts ([b9fd7ff](https://github.com/thi-ng/umbrella/commit/b9fd7ff))
- update TS codegen (array pointers) ([30360f2](https://github.com/thi-ng/umbrella/commit/30360f2))
- add C11 support, update codegens & config ([590311e](https://github.com/thi-ng/umbrella/commit/590311e))
- add preliminary C11 codegen
- add optional `tag` field for structs (extern/packed)
- add support for auto-labeled padding fields
- i.e. defined via unnamed fields with `pad` value
- move debug config option to global `CodeGenOpts`
- update codegen CLI ([435ad2b](https://github.com/thi-ng/umbrella/commit/435ad2b))
- add C11 support
- add support for padding fields (in `validateTypeRefs()`)
- add CLI arg for forcing string type impl
- update deps
- update/fix codegens & config ([87def23](https://github.com/thi-ng/umbrella/commit/87def23))
- add global `CodeGenOpts.uppercaseEnums` option (migrate from TSOpts)
- set `i32` as enum default tag (for C compatibility)
- update C11 codegen, add `typePrefix` option
- fix C11 enum codegen (use `typedef enum`)
- add internal enumName() helper
- minor updates Zig codegen
- refactor CodeGenOpts, update CLI config handling ([fa2e30f](https://github.com/thi-ng/umbrella/commit/fa2e30f))
- extract CodeGenOptsBase interface for common pre/post config
- update CLI config loading to support loading pre/post contents
from separate files (if value given as `@path/to-file.ext`)
## [0.10.0](https://github.com/thi-ng/umbrella/tree/@thi.ng/wasm-api@0.10.0) (2022-08-24)
#### 🚀 Features
- add events, update allocator handling ([89416b1](https://github.com/thi-ng/umbrella/commit/89416b1))
- add INotify impl for WasmBridge
- emit event when WASM memory has changed (e.g. to recreate user views)
- reverse logic so that NO allocator is used by default and instead must
be explicitly enabled (rather than disabled)
- update Zig & C bindings
- add/update docstrings
## [0.9.0](https://github.com/thi-ng/umbrella/tree/@thi.ng/wasm-api@0.9.0) (2022-08-23)
#### 🚀 Features
- add debug() core API function ([ca01978](https://github.com/thi-ng/umbrella/commit/ca01978))
#### 🩹 Bug fixes
- update setString() return value ([116dd0b](https://github.com/thi-ng/umbrella/commit/116dd0b))
- always only return num bytes written w/o sentinel
## [0.8.0](https://github.com/thi-ng/umbrella/tree/@thi.ng/wasm-api@0.8.0) (2022-08-16)
#### 🚀 Features
- add preliminary string handling support ([3da4efe](https://github.com/thi-ng/umbrella/commit/3da4efe))
- update/rename IWasmMemoryAccess (add string getter/setter)
- update StructField.type (add `string`)
- add CodeGenOpts.stringType option
- update codegen fns
- update TS & Zig codegen impls
## [0.7.0](https://github.com/thi-ng/umbrella/tree/@thi.ng/wasm-api@0.7.0) (2022-08-15)
#### 🚀 Features
- update helper predicates ([65b23d4](https://github.com/thi-ng/umbrella/commit/65b23d4))
- update TSOpts & TS codegen ([4f6bbbf](https://github.com/thi-ng/umbrella/commit/4f6bbbf))
- add `uppercaseEnum` option to force UC enum IDs
- add CLI wrapper for codegens ([683a560](https://github.com/thi-ng/umbrella/commit/683a560))
#### 🩹 Bug fixes
- correct TS __mapArray codegen ([289b137](https://github.com/thi-ng/umbrella/commit/289b137))
- allow signed ints for enum tags ([78d0822](https://github.com/thi-ng/umbrella/commit/78d0822))
## [0.6.0](https://github.com/thi-ng/umbrella/tree/@thi.ng/wasm-api@0.6.0) (2022-08-15)
#### 🚀 Features
- update allocate/free() fns, update Zig core API ([8a55989](https://github.com/thi-ng/umbrella/commit/8a55989))
- add _wasm_free() Zig impl
- add printFmt() Zig fn
- update WasmBridge.allocate() (add clear option)
- update WasmBridge.free()
- ensure memory in WasmBridge.getString()
- add/update docstrings
- add bindings code generator framework ([17ee06f](https://github.com/thi-ng/umbrella/commit/17ee06f))
- add/update deps
- add preliminary codegens for Zig & TS
- add supporting types & utils
- add generateTypes() codegen facade fn
- update codegens, add opts, fix alignments ([5c1fec5](https://github.com/thi-ng/umbrella/commit/5c1fec5))
- add global CodeGenOpts
- update generateTypes() to consider new opts
- add global USIZE type (for pointer sizes & codegens)
- add options for Zig codegen (extra debug helpers)
- simplify TS codegen
- fix sizeOf() for struct fields
- make prepareType() idempotent
- add C11 header/include file, update WasmBridge ([a67dc00](https://github.com/thi-ng/umbrella/commit/a67dc00))
- migrate headers/includes to /include
- rename "core" import section => "wasmapi"
- rename WasmBridge.core => WasmBridge.api
- update pkg file
#### ♻️ Refactoring
- extract WasmMemViews interface, update test WASM ([4c73e65](https://github.com/thi-ng/umbrella/commit/4c73e65))
## [0.5.0](https://github.com/thi-ng/umbrella/tree/@thi.ng/wasm-api@0.5.0) (2022-08-08)
#### 🚀 Features
- add memory allocation ([980c1f2](https://github.com/thi-ng/umbrella/commit/980c1f2))
- add WasmBridge.allocate()/free()
- add WasmBridge.growMemory()
- extract WasmBridge.ensureMemory()
- update WasmExports
- update Zig bindings (configurable allocator, GPA as default)
## [0.4.0](https://github.com/thi-ng/umbrella/tree/@thi.ng/wasm-api@0.4.0) (2022-08-07)
#### 🚀 Features
- use named import objects ([4965f20](https://github.com/thi-ng/umbrella/commit/4965f20))
- switch to name import objects to avoid merging into flat namespace
- update externs in core.zig
- update docstrings
## [0.3.0](https://github.com/thi-ng/umbrella/tree/@thi.ng/wasm-api@0.3.0) (2022-08-04)
#### 🚀 Features
- major update WasmBridge, add types ([47aa222](https://github.com/thi-ng/umbrella/commit/47aa222))
- add WasmExports base interface
- add generics for WasmBridge & IWasmAPI
- update WasmBridge.init() arg (full WASM exports, not just mem)
- add WasmBridge.exports field to store WASM module exports
- add naming conflict check in WasmBridge.getImports()
- add WasmBridge.instantiate, add/update accessors ([0698bae](https://github.com/thi-ng/umbrella/commit/0698bae))
- add WasmBridge.instantiate() boilerplate
- add setters for typed scalars & arrays
- rename derefXX() => getXX() getters
- update tests
- add i64/u64 support/accessors ([768c8bd](https://github.com/thi-ng/umbrella/commit/768c8bd))
## [0.2.0](https://github.com/thi-ng/umbrella/tree/@thi.ng/wasm-api@0.2.0) (2022-08-01)
#### 🚀 Features
- fix zig slice pointer handling, use named child modules ([bd7905a](https://github.com/thi-ng/umbrella/commit/bd7905a))
- major update ObjectIndex ([4547f1f](https://github.com/thi-ng/umbrella/commit/4547f1f))
- add ObjectIndexOpts ctor options
- add IDGen for internal ID generation/recycling
- add iterators
- rename existing methods
## [0.1.0](https://github.com/thi-ng/umbrella/tree/@thi.ng/wasm-api@0.1.0) (2022-08-01)
#### 🚀 Features
- import as new pkg ([eda4840](https://github.com/thi-ng/umbrella/commit/eda4840))