{"_id":"@arminmajerie/data-morph-wasm","name":"@arminmajerie/data-morph-wasm","dist-tags":{"latest":"0.1.1"},"versions":{"0.1.1":{"name":"@arminmajerie/data-morph-wasm","type":"module","description":"WASM bindings for data-morph (DataMorph)","version":"0.1.1","main":"data_morph_wasm.js","types":"data_morph_wasm.d.ts","sideEffects":["./snippets/*"],"repository":{"type":"git","url":"git+https://github.com/arminmajerie/data-morph.git"},"license":"MIT","publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_id":"@arminmajerie/data-morph-wasm@0.1.1","gitHead":"f3ed218364ce8340088cadd0b4e6ba28a2dd86e6","bugs":{"url":"https://github.com/arminmajerie/data-morph/issues"},"homepage":"https://github.com/arminmajerie/data-morph#readme","_nodeVersion":"20.19.0","_npmVersion":"10.8.2","dist":{"integrity":"sha512-oi4AE2g7pnn3vVEumlqzVII/cvwh25YyN5GqRr6Z48vNch2aPsdYJBGT1KQ7zSo2Qi2+8pcLmkqL4EUnpZbO7A==","shasum":"503b3227f75678bae48c8ba15fa3e26d91ead349","tarball":"https://registry.npmjs.org/@arminmajerie/data-morph-wasm/-/data-morph-wasm-0.1.1.tgz","fileCount":5,"unpackedSize":5817704,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQCT/CG14WLH1xdFoH6fIve2ISOhbPLoFkBAXit8OD7tHwIhALNRQIo27IuydG7Az6yUnEdxQ/LOCZP94pW+n/2nahAx"}]},"_npmUser":{"name":"arminmajerie","email":"majeriemail@gmail.com"},"directories":{},"maintainers":[{"name":"arminmajerie","email":"majeriemail@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/data-morph-wasm_0.1.1_1778843678699_0.08487556594394552"},"_hasShrinkwrap":false}},"time":{"created":"2026-05-15T11:14:38.631Z","0.1.1":"2026-05-15T11:14:38.962Z","modified":"2026-05-15T11:14:39.182Z"},"maintainers":[{"name":"arminmajerie","email":"majeriemail@gmail.com"}],"description":"WASM bindings for data-morph (DataMorph)","homepage":"https://github.com/arminmajerie/data-morph#readme","repository":{"type":"git","url":"git+https://github.com/arminmajerie/data-morph.git"},"bugs":{"url":"https://github.com/arminmajerie/data-morph/issues"},"license":"MIT","readme":"# DataMorph WASM bindings\n\nThis folder contains a small `wasm-bindgen` adapter crate that exposes a JSON-only API for using DataMorph (data-morph) from JS/TS.\n\n## Exports\n\nAll exports return JSON strings of the form:\n\n```json\n{ \"ok\": true, \"value\": \"...\", \"context\": { \"payloadFormat\": \"json\", \"payload\": {}, \"attributes\": {}, \"variables\": {}, \"error\": null } }\n```\n\n- `evaluate_script(script: string, contextJson: string) -> string`\n- `validate_script(script: string) -> string`\n- `definitions_with_scope_d(contextJson: string) -> string` (requires metadata+internals enabled on the Rust side)\n- `fn_metadata_json(includeStandardPackages: boolean) -> string`\n\n### Context JSON schema\n\n`contextJson` must be valid JSON (keys must be quoted):\n\n```json\n{\n  \"payloadFormat\": \"json\",\n  \"payload\": { \"any\": \"json\" },\n  \"attributes\": { \"k\": \"v\" },\n  \"variables\": { \"k\": 123 },\n  \"error\": null\n}\n```\n\nNotes:\n- Unknown top-level keys are accepted and become additional scope variables.\n- `attributes` and `variables` must be JSON objects.\n- `variables` also accepts the alias key `vars`.\n- Header-driven `input`/`output` directives can read/write non-JSON formats; support is best-effort and may not cover all DataMorph edge-cases.\n\n## Build (wasm-pack)\n\n1) Install target + wasm-pack:\n\n```powershell\nrustup target add wasm32-unknown-unknown\ncargo install wasm-pack\n\n```\n\n2) Build npm/bundler-friendly output-dev:\n\n* DEV\n```powershell\ncd d:\\Code\\IntegrationBuilder\\IntegrationBuilder\\data-morph\\wasm\nwasm-pack build --target bundler --out-dir .\\pkg-web --dev\nwasm-pack build --release --target web --out-dir pkg-web -- --features production\n```\n\n* PROD\n```powershell\nSet-Location \"d:\\Code\\IntegrationBuilder\\IntegrationBuilder\\data-morph\\wasm\"\n```\n```wasm-pack build --release --target bundler --out-dir pkg-web -- --features production```\n\nor \n\n```wasm-pack build --release --target web --out-dir pkg-web -- --features production```\n\nThe generated JS glue + `.wasm` will be in `wasm/pkg/`.\n\n## Quick smoke test (Node)\n\nAfter building, you can do a minimal import test from any TS/JS project by importing the generated package.\nSee `ts/wasm-loader.ts` for a minimal loader.\n","readmeFilename":"README.md","_rev":"1-18567a0e4d70354dde67a02120e4e63c"}