{"_id":"@block65/opa-wasm","_rev":"6-4fad8d35c94be76ce11d7656d6c36494","name":"@block65/opa-wasm","dist-tags":{"latest":"2.0.2"},"versions":{"2.0.0":{"name":"@block65/opa-wasm","version":"2.0.0","keywords":["opa","wasm","policy"],"author":{"name":"patrick@styra.com"},"license":"Apache-2.0","_id":"@block65/opa-wasm@2.0.0","maintainers":[{"name":"maxholman","email":"max@holmn.com"},{"name":"block65-bot","email":"block65-bot@block65.com"}],"homepage":"https://github.com/open-policy-agent/npm-opa-wasm#readme","bugs":{"url":"https://github.com/open-policy-agent/npm-opa-wasm/issues"},"dist":{"shasum":"559398b194f4fb7761db0fc235d90a61673bd2ea","tarball":"https://registry.npmjs.org/@block65/opa-wasm/-/opa-wasm-2.0.0.tgz","fileCount":12,"integrity":"sha512-q2wl0Jyuu4PJ2w8JbAXT8/K+wC77C6KObyfByRDna/csCTXc8do9Srs5Piv6Baz13yRDLvBPeKoApISd/ELatw==","signatures":[{"sig":"MEQCIB6PMQPiEN2V3lkXjVxyNvUF0+H+KzqWee7kqfu4YmC4AiBOBQdIjUf7X5RTDMoSNYx484WUx2qf3C91+g7uRpVHBQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":25888,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJf6eooCRA9TVsSAnZWagAA0V4P/3XJz70L/Xygtgc7rFBC\nZ3HqzRcmJfsw7/XZxrAVfbhN09uaWCZYxjLRDC9ENhITyPPgFioeY6Rgk1wF\nZHlFIX6s1oNyprpqAXKlJvAXiR7aOUDH5XgFGo/nFdedlDAGP6WN4mchlIGX\nobXCYN/VyDQmHHKREN5qI7qAz09tvxdqALFAi1fSWStJ9L2SRMgsY1z9bmTv\nq0maEYZuBJaTLWY2XTKV29lvc2zutS24dcQeJLxs5lt2HUQkKPPGg9BtTrhv\nofIHeQqq8BqTmB/s4zOJfYq/lMYUaXXqFq6Q0bYdxATdy64PzpNJEEvCSip3\nVCSaF5Xa+dl1mkUB6UzIwcLGRldO4ZsuwwxIiTFduKmdOAQ69iqHcUIREHrT\n/AEsBvHKyq0v2CIeYsxBQyBYIOe//vt6YKzcJSHlb9bM6X3f0W6hjgrNVAXI\nsxFt/VrW6YV1fNIKkVR1AUeP7jB4t2+ZinRnjRCkjTs4y1ViWl23YIfZrmK5\nPQvbsbk4KAry3AWhtaeSvgFlRfwvupK5aKneXZPwffS+Zya050BJbp0Z/7L/\n9pKDcJpoiQpxXj3EQRYIe1FsQbRyOY0Ps9Yw65nhn7e7B+HD53D+Atjr7saA\n/h1WruL8b2VszcuA2thDbGNk/NlJGODrjG3p8vrx7R5C7v/w5VxuL70xIDm6\nOpki\r\n=xJ6c\r\n-----END PGP SIGNATURE-----\r\n"},"main":"src/opa.js","types":"types/opa.d.ts","gitHead":"f48c45fede1c7762a0002d306c7d14dc21a229a4","scripts":{"test":"jest","types":"tsc"},"_npmUser":{"name":"block65-bot","email":"block65-bot@block65.com"},"deprecated":"This package is no longer maintained.","repository":{"url":"git+https://github.com/open-policy-agent/npm-opa-wasm.git","type":"git"},"_npmVersion":"6.14.8","description":"Open Policy Agent WebAssembly SDK","directories":{},"_nodeVersion":"14.15.1","dependencies":{"sprintf-js":"^1.1.2"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^26.6.3","typescript":"^4.1.3"},"_npmOperationalInternal":{"tmp":"tmp/opa-wasm_2.0.0_1609165351822_0.43808572012988645","host":"s3://npm-registry-packages"}},"2.0.1":{"name":"@block65/opa-wasm","version":"2.0.1","keywords":["opa","wasm","policy"],"author":{"name":"patrick@styra.com"},"license":"Apache-2.0","_id":"@block65/opa-wasm@2.0.1","maintainers":[{"name":"maxholman","email":"max@holmn.com"},{"name":"block65-bot","email":"block65-bot@block65.com"}],"homepage":"https://github.com/open-policy-agent/npm-opa-wasm#readme","bugs":{"url":"https://github.com/open-policy-agent/npm-opa-wasm/issues"},"dist":{"shasum":"249c7c33e903fc7ea7842619771f850472760329","tarball":"https://registry.npmjs.org/@block65/opa-wasm/-/opa-wasm-2.0.1.tgz","fileCount":30,"integrity":"sha512-+Z6apT32kwbJmgCyzMNuPsaldiM7GhRKS7ExJTOVaZ0Fgjw9ZXCFVKuDHIM2VQ41bzzznF6UPeK9KkHYGoQH6A==","signatures":[{"sig":"MEYCIQCThofX2QtapaJ3tViNJxqbMjolllWDD/2Y5i9bdRmHPQIhAISpLjsFe/491ff6J4u2mGllBR9XBXmx3HyOF6qdxNKq","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":30523,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJf6euYCRA9TVsSAnZWagAAeEAP+wanNgw41V9uln6WaP+j\nrEvEct6+aS8L794LJ3rPKEpJCOgMzK08XCiYLdBlpg4FgxUag0+HQQJcTerv\nJGqm505FfJljYrNSxE/jB/fwNnjUJws0QldUqTa+ri7kgeH99cUfvi1iMhx2\nzTwaQ6Pslp/+Lnk4ocChrpPzdIXBMIfAg0T2w0hlzdK4H0EZbr7JW00Zo0xB\np/4LStHr+tYi/N3QYOg3B7P9b3LScCUeAtuzmOnx2kwz27aThozNGLnPLwsn\nvHBILk8kzS3bKBlcjBVRlbepsgJMJCRRHN4uU021//a+LakW7faMhd6V/1K5\nZgy+O+XOhkx7iSGSVfWEG8RVAuZy5Hxw6F/KxrAA3GB8scviiX5ykJpZvAHm\nPioBMgQxlnn/surPWz66RUe/loqCAS1dkMlMcL2eWL9i0SCUQxVKJPfVAalR\nKB+AxWjTvfzA/Co+UzGpS0ICgREzbzfmFJHEWZ7IPz3uS2oXPkc3/C69DVhT\nXyOiIqhC4SsshiEcQORefzzeREg45BKVsK1MIlUG8BPlhjDIwc8urxEBKsan\niqTKRy0f9I0Y2eN1PC11khNjqQJua03kpsuCQj7znCOpnqbVHHGz0zXbsQcL\nS6NzP6aC9Z3dxHYo8E4g2wFakPxXyhCd8kJYkLwmCV+QhBiyVeHhDVrEInIm\nSf4c\r\n=hu87\r\n-----END PGP SIGNATURE-----\r\n"},"main":"src/opa.js","types":"types/opa.d.ts","gitHead":"b9dcbd41c7ca1217a0975092fe1ec14d1dd0eba9","scripts":{"test":"jest","types":"tsc"},"_npmUser":{"name":"block65-bot","email":"block65-bot@block65.com"},"deprecated":"This package is no longer maintained.","repository":{"url":"git+https://github.com/open-policy-agent/npm-opa-wasm.git","type":"git"},"_npmVersion":"6.14.8","description":"Open Policy Agent WebAssembly SDK","directories":{},"_nodeVersion":"14.15.1","dependencies":{"sprintf-js":"^1.1.2"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^26.6.3","typescript":"^4.1.3"},"_npmOperationalInternal":{"tmp":"tmp/opa-wasm_2.0.1_1609165720313_0.2418197727415714","host":"s3://npm-registry-packages"}},"2.0.2":{"name":"@block65/opa-wasm","version":"2.0.2","keywords":["opa","wasm","policy"],"author":{"name":"patrick@styra.com"},"license":"Apache-2.0","_id":"@block65/opa-wasm@2.0.2","maintainers":[{"name":"maxholman","email":"max@holmn.com"},{"name":"block65-bot","email":"block65-bot@block65.com"}],"homepage":"https://github.com/open-policy-agent/npm-opa-wasm#readme","bugs":{"url":"https://github.com/open-policy-agent/npm-opa-wasm/issues"},"dist":{"shasum":"ee861793d8c76f2609dd1af32f16a54bb3cee07d","tarball":"https://registry.npmjs.org/@block65/opa-wasm/-/opa-wasm-2.0.2.tgz","fileCount":30,"integrity":"sha512-90Tj5uWyBtCwoFKkwoM+7WBci5/tG2XdzWM1gRUjFlVHz8mddY59wgOeIiF/L8ztPYLY+0oR/piSnxRFtb/FaA==","signatures":[{"sig":"MEUCIQD4zuYOyl09SrdpNl3SfhMPeAfSKHKIY8lbm3DApTw/iAIgSlJAJpA/PtYJ4JYOU9EUFKte+GbqSEDQtkQaWXvD7+U=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":30639,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJf6e5rCRA9TVsSAnZWagAAfhIP/3NniaG8/8QLx8PPhHpe\nYZY3CsC0GG813sYy41G2zDAR+4nQyeBLSrWGF6ra9F8YPc1niOkYtHpk4vSA\ng3YJ8Mexs9yjg1h8o0pwMqJGqcIyjnjldPTSVAn/a1e/qVjHkxkrG22INA1i\nKg/jWNcQ4BHHXKujBQfOCGwIA0xtbvplH+x5NtnBYKURJBfIxRndFnw66EVe\nWrED/tbwIp405LWr1GOqyHeqXXKMMP/qmCMEn85o5E6kF7u3ICyEDap9w7lx\nAKdtSEkETDIMvZa+rHUN1MdkggkGZNcY9EysyXa8Cm2niC4sh2DaG91BegMU\nXQ3DzvuX1k4J2nFFMEnLvJraOBCmJ7KTmdyZDANCj0eN9fZQIVsowKhnjP3q\n5k4MEdqY2fiGAq33+fydY9EUUFztZH242Di2uQ9gCH0P63DqoLZU+qq1ATUf\nrANU/63Ln6WgMm92ZjBJeySPuiDOV8oxMgx4Gfzp/I4FU6C388FA19y+Ubug\nq6dCow3ono2jtGXWA2jF2D1w9+roaaUsud+YRHeBMqKEGh2Yj62ySKcEnFFQ\nr6kliTzrGhf4uQ7xi4Bfd1OHxMQsp+M2o3RWlYrmxaQI0ojSP9jyADzDPwV+\nSI1tmmmMVNR1e7UWnS7RhxMqpXJ1U3363aSRoJAcgxzhpG9U8mw4Rkg8tBB4\n5MRV\r\n=dFNu\r\n-----END PGP SIGNATURE-----\r\n"},"main":"src/opa.js","types":"types/opa.d.ts","gitHead":"26b01cc6711cf3c8ddb761a319d5a07d8884dfb2","scripts":{"test":"jest","types":"tsc"},"_npmUser":{"name":"block65-bot","email":"block65-bot@block65.com"},"deprecated":"This package is no longer maintained.","repository":{"url":"git+https://github.com/open-policy-agent/npm-opa-wasm.git","type":"git"},"_npmVersion":"6.14.8","description":"Open Policy Agent WebAssembly SDK","directories":{},"_nodeVersion":"14.15.1","dependencies":{"sprintf-js":"^1.1.2"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^26.6.3","typescript":"^4.1.3"},"_npmOperationalInternal":{"tmp":"tmp/opa-wasm_2.0.2_1609166442464_0.6626460049806673","host":"s3://npm-registry-packages"}}},"time":{"created":"2020-12-28T14:22:31.611Z","modified":"2026-09-15T09:40:21.570Z","2.0.0":"2020-12-28T14:22:32.003Z","2.0.1":"2020-12-28T14:28:40.456Z","2.0.2":"2020-12-28T14:40:42.629Z"},"bugs":{"url":"https://github.com/open-policy-agent/npm-opa-wasm/issues"},"author":{"name":"patrick@styra.com"},"license":"Apache-2.0","homepage":"https://github.com/open-policy-agent/npm-opa-wasm#readme","keywords":["opa","wasm","policy"],"repository":{"url":"git+https://github.com/open-policy-agent/npm-opa-wasm.git","type":"git"},"description":"Open Policy Agent WebAssembly SDK","maintainers":[{"email":"max@holmn.com","name":"maxholman"}],"readme":"**Work in Progress -- Contributions welcome!!** \n\n# Open Policy Agent WebAssemby NPM Module\nThis is the source for the\n[@open-policy-agent/opa-wasm](https://www.npmjs.com/package/@open-policy-agent/opa-wasm)\nNPM module which is a small SDK for using WebAssembly (wasm) compiled \n[Open Policy Agent](https://www.openpolicyagent.org/) Rego policies.\n\n# Getting Started\n## Install the module\n\n```\nnpm install @open-policy-agent/opa-wasm \n```\n\n## Usage\n\nThere are only a couple of steps required to start evaluating the policy.\n\n### Import the module\n\n```javascript\nconst { loadPolicy } = require(\"@open-policy-agent/opa-wasm\");\n```\n\n### Load the policy\n\n```javascript\nloadPolicy(policyWasm)\n```\nThe `load_policy` request returns a Promise with the loaded policy.\nTypically this means loading it in an `async` function like:\n\n```javascript\nconst policy = await loadPolicy(policyWasm)\n```\n\nOr something like:\n\n```javascript\nloadPolicy(policyWasm).then(policy => {\n    // evaluate or save the policy\n}, error => {\n    console.error(\"Failed to load policy: \" + error)\n})\n```\n\nThe `policyWasm` needs to be either the raw byte array of\nthe compiled policy wasm file, or a web assembly module.\n\nFor example:\n\n```javascript\nconst fs = require('fs');\n\nconst policyWasm = fs.readFileSync('policy.wasm');\n```\n\nAlternatively the bytes can be pulled in remotely from a `fetch` or in some\ncases (like CloudFlare Workers) the wasm binary can be loaded directly into the\njavascript context through external APIs.\n\n### Evaluate the Policy\n\nThe loaded policy object returned from `loadPolicy()` has a couple of important\nAPI's for policy evaluation:\n\n`setData(obj)` -- Provide an external `data` document for policy evaluation. Requires a JSON serializable object.\n`evaluate(input)` -- Evaluates the policy using any loaded data and the supplied `input` document.\n\nThe `input` parameter must be a JSON string.\n\nExample:\n\n```javascript\n\ninput = '{\"path\": \"/\", \"role\": \"admin\"}';\n\nloadPolicy(policyWasm).then(policy => {\n    resultSet = policy.evaluate(input);\n    if (resultSet == null) {\n        console.error(\"evaluation error\")\n    }\n    if (resultSet.length == 0) {\n        console.log(\"undefined\")\n    }\n    console.log(\"allowed = \" + allowed[0].result);\n}).catch( error => {\n    console.error(\"Failed to load policy: \", error);\n})\n```\n\n> For any `opa build` created WASM binaries the result set, when defined, will\n   contain a `result` key with the value of the compiled entrypoint. See\n  [https://www.openpolicyagent.org/docs/latest/wasm/](https://www.openpolicyagent.org/docs/latest/wasm/)\n  for more details.\n\n## Writing the policy\n\nSee [https://www.openpolicyagent.org/docs/latest/how-do-i-write-policies/](https://www.openpolicyagent.org/docs/latest/how-do-i-write-policies/)\n\n## Compiling the policy\n\nEither use the [Compile REST API](https://www.openpolicyagent.org/docs/latest/rest-api/#compile-api) or `opa build` CLI tool.\n\nFor example, with OPA v0.20.5+:\n\n```bash\nopa build -t wasm -e 'example/allow' example.rego\n```\nWhich is compiling the `example.rego` policy file with the result set to\n`data.example.allow`. The result will be an OPA bundle with the `policy.wasm`\nbinary included. See [./examples](./examples) for a more comprehensive example.\n\nSee `opa build --help` for more details.\n","readmeFilename":"README.md"}