{"_id":"@allsign/embedded","_rev":"7-b540da2250bf41001f2cd319e17f1197","name":"@allsign/embedded","dist-tags":{"latest":"0.3.0"},"versions":{"0.1.0":{"name":"@allsign/embedded","version":"0.1.0","keywords":["allsign","embedded","signing","e-signature","iframe","nom-151","sdk"],"author":{"url":"https://allsign.io","name":"AllSign"},"license":"MIT","_id":"@allsign/embedded@0.1.0","maintainers":[{"name":"allsign.io","email":"servicios@allsign.io"}],"homepage":"https://developers.allsign.io/embedded","bugs":{"url":"https://github.com/binaryme/allsign-embedded-sdk/issues"},"dist":{"shasum":"2855b6fb2e18f7f0fd3fde54a435e8eee7c939c7","tarball":"https://registry.npmjs.org/@allsign/embedded/-/embedded-0.1.0.tgz","fileCount":14,"integrity":"sha512-0Caz9e0L+p554KPZJ+Nth6yRNNL3jhPSxcrZSyf7YpIA0D+t+pCchP3UTF3IbxqQ1ZwmYO+EnC4dDHhDAoIvJw==","signatures":[{"sig":"MEYCIQDJ5QzMTnZMMOuPPXQp1ojfmay8HzpOpU99nvTisD3GCAIhAMV0d4WWesHszx/JRuCqhPGPwgnhFjdzVmI6V167GfuJ","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":97769},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","unpkg":"./dist/index.umd.js","module":"./dist/index.mjs","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","default":"./dist/index.mjs","require":"./dist/index.cjs"},"./react":{"types":"./dist/react.d.ts","import":"./dist/react.mjs","require":"./dist/react.cjs"},"./package.json":"./package.json"},"gitHead":"c976c346905db7c35fcdc0632f89b4694d0918d8","scripts":{"dev":"rollup -c -w","test":"vitest run","build":"rollup -c","clean":"rm -rf dist","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"allsign.io","email":"servicios@allsign.io"},"repository":{"url":"git+https://github.com/binaryme/allsign-embedded-sdk.git","type":"git"},"_npmVersion":"10.5.0","description":"Embed the AllSign signing experience directly in your web application. Mounts an iframe that handles OTP, identity verification, biometrics, and signature capture without your users leaving your app.","directories":{},"sideEffects":false,"_nodeVersion":"21.7.3","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jsdom":"^25.0.1","react":"^19.0.0","tslib":"^2.8.1","rollup":"^4.28.0","vitest":"^2.1.8","typescript":"^5.7.2","@types/node":"^22.10.1","@types/react":"^19.0.1","rollup-plugin-dts":"^6.1.1","@rollup/plugin-terser":"^0.4.4","@rollup/plugin-typescript":"^12.1.1","@rollup/plugin-node-resolve":"^15.3.0"},"peerDependencies":{"react":">=16.8"},"peerDependenciesMeta":{"react":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/embedded_0.1.0_1775962875846_0.35124654881888895","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@allsign/embedded","version":"0.1.1","keywords":["allsign","embedded","signing","e-signature","iframe","nom-151","sdk"],"author":{"url":"https://allsign.io","name":"AllSign"},"license":"MIT","_id":"@allsign/embedded@0.1.1","maintainers":[{"name":"allsign.io","email":"servicios@allsign.io"}],"homepage":"https://developers.allsign.io/embedded","bugs":{"url":"https://github.com/binaryme/allsign-embedded-sdk/issues"},"dist":{"shasum":"30f1a154f71e1876ba1472e17e75c8c81a5d4748","tarball":"https://registry.npmjs.org/@allsign/embedded/-/embedded-0.1.1.tgz","fileCount":14,"integrity":"sha512-zoAkZNsTCmwoHZnwsWoWg/3m8EO5XYxnVtsku8/c1A8H6GhRy+pixsosC1oPUirt78UeTboAgDjtTlwa67AFxQ==","signatures":[{"sig":"MEUCIQCxWa9X2mxfWR1ML1VpB8CCBzH8KyW9x5mZkFVHfPTkhgIgceFtejLuLo9GPf0Ayv6iWCgQTaOAWPYFNTH7E+98zbE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":98250},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","unpkg":"./dist/index.umd.js","module":"./dist/index.mjs","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","default":"./dist/index.mjs","require":"./dist/index.cjs"},"./react":{"types":"./dist/react.d.ts","import":"./dist/react.mjs","require":"./dist/react.cjs"},"./package.json":"./package.json"},"gitHead":"c976c346905db7c35fcdc0632f89b4694d0918d8","scripts":{"dev":"rollup -c -w","test":"vitest run","build":"rollup -c","clean":"rm -rf dist","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"allsign.io","email":"servicios@allsign.io"},"repository":{"url":"git+https://github.com/binaryme/allsign-embedded-sdk.git","type":"git"},"_npmVersion":"10.5.0","description":"Embed the AllSign signing experience directly in your web application. Mounts an iframe that handles OTP, identity verification, biometrics, and signature capture without your users leaving your app.","directories":{},"sideEffects":false,"_nodeVersion":"21.7.3","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jsdom":"^25.0.1","react":"^19.0.0","tslib":"^2.8.1","rollup":"^4.28.0","vitest":"^2.1.8","typescript":"^5.7.2","@types/node":"^22.10.1","@types/react":"^19.0.1","rollup-plugin-dts":"^6.1.1","@rollup/plugin-terser":"^0.4.4","@rollup/plugin-typescript":"^12.1.1","@rollup/plugin-node-resolve":"^15.3.0"},"peerDependencies":{"react":">=16.8"},"peerDependenciesMeta":{"react":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/embedded_0.1.1_1775963367116_0.6912101867739022","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"@allsign/embedded","version":"0.1.2","keywords":["allsign","embedded","signing","e-signature","iframe","nom-151","sdk"],"author":{"url":"https://allsign.io","name":"AllSign"},"license":"MIT","_id":"@allsign/embedded@0.1.2","maintainers":[{"name":"allsign.io","email":"servicios@allsign.io"}],"homepage":"https://developers.allsign.io/embedded","bugs":{"url":"https://github.com/binaryme/allsign-embedded-sdk/issues"},"dist":{"shasum":"6736bccec17eb648d8dd0c7e5ca4aa0cc27a3187","tarball":"https://registry.npmjs.org/@allsign/embedded/-/embedded-0.1.2.tgz","fileCount":14,"integrity":"sha512-x5LwEwZfCyK6g8+/OstexRMze0V+jm5R9G3+DTkTdcpFLeiYHs/anCiqzW2lqn7Stei2rioB+i+UR+lIEj6O+A==","signatures":[{"sig":"MEUCIDNHIvGMvfQhaW+djnQLn42niXP/uhfI1ihm8G/f7tIUAiEAyMHhnO17CDYXh51rMa42/Yj8JOheoPS2WhsDJP3ytfM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":104905},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","unpkg":"./dist/index.umd.js","module":"./dist/index.mjs","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","default":"./dist/index.mjs","require":"./dist/index.cjs"},"./react":{"types":"./dist/react.d.ts","import":"./dist/react.mjs","require":"./dist/react.cjs"},"./package.json":"./package.json"},"gitHead":"017c8aae4c1ffe4970fb1179f4760c2df2ef0e22","scripts":{"dev":"rollup -c -w","test":"vitest run","build":"rollup -c","clean":"rm -rf dist","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"allsign.io","email":"servicios@allsign.io"},"repository":{"url":"git+https://github.com/binaryme/allsign-embedded-sdk.git","type":"git"},"_npmVersion":"10.5.0","description":"Embed the AllSign signing experience directly in your web application. Mounts an iframe that handles OTP, identity verification, biometrics, and signature capture without your users leaving your app.","directories":{},"sideEffects":false,"_nodeVersion":"21.7.3","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jsdom":"^25.0.1","react":"^19.0.0","tslib":"^2.8.1","rollup":"^4.28.0","vitest":"^2.1.8","typescript":"^5.7.2","@types/node":"^22.10.1","@types/react":"^19.0.1","rollup-plugin-dts":"^6.1.1","@rollup/plugin-terser":"^0.4.4","@rollup/plugin-typescript":"^12.1.1","@rollup/plugin-node-resolve":"^15.3.0"},"peerDependencies":{"react":">=16.8"},"peerDependenciesMeta":{"react":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/embedded_0.1.2_1776141178592_0.7620541790388051","host":"s3://npm-registry-packages-npm-production"}},"0.1.3":{"name":"@allsign/embedded","version":"0.1.3","keywords":["allsign","embedded","signing","e-signature","iframe","nom-151","sdk"],"author":{"url":"https://allsign.io","name":"AllSign"},"license":"MIT","_id":"@allsign/embedded@0.1.3","maintainers":[{"name":"allsign.io","email":"servicios@allsign.io"}],"homepage":"https://developers.allsign.io/embedded","bugs":{"url":"https://github.com/binaryme/allsign-embedded-sdk/issues"},"dist":{"shasum":"5dcd95481a6f1e91305d85c8c6305a8cf7fd45e1","tarball":"https://registry.npmjs.org/@allsign/embedded/-/embedded-0.1.3.tgz","fileCount":14,"integrity":"sha512-P2sI4Ix4yNORSM42j+XNcaFJSkqlSSvmRdmJKmlrOWUPfRU3j0zzru3cprABSKvQvZvmgfryTuyY+vk1gMtUzQ==","signatures":[{"sig":"MEUCIDr0HaI0tANLTvcInlLbOfdKGCE2+nqDjjbZhcNZ4Z3PAiEA6h9cE26SPjF2RM4YHCMG64UrIdNKeVqSKksG4s9P6pE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":106811},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","unpkg":"./dist/index.umd.js","module":"./dist/index.mjs","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","default":"./dist/index.mjs","require":"./dist/index.cjs"},"./react":{"types":"./dist/react.d.ts","import":"./dist/react.mjs","require":"./dist/react.cjs"},"./package.json":"./package.json"},"gitHead":"017c8aae4c1ffe4970fb1179f4760c2df2ef0e22","scripts":{"dev":"rollup -c -w","test":"vitest run","build":"rollup -c","clean":"rm -rf dist","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"allsign.io","email":"servicios@allsign.io"},"repository":{"url":"git+https://github.com/binaryme/allsign-embedded-sdk.git","type":"git"},"_npmVersion":"10.5.0","description":"Embed the AllSign signing experience directly in your web application. Mounts an iframe that handles OTP, identity verification, biometrics, and signature capture without your users leaving your app.","directories":{},"sideEffects":false,"_nodeVersion":"21.7.3","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jsdom":"^25.0.1","react":"^19.0.0","tslib":"^2.8.1","rollup":"^4.28.0","vitest":"^2.1.8","typescript":"^5.7.2","@types/node":"^22.10.1","@types/react":"^19.0.1","rollup-plugin-dts":"^6.1.1","@rollup/plugin-terser":"^0.4.4","@rollup/plugin-typescript":"^12.1.1","@rollup/plugin-node-resolve":"^15.3.0"},"peerDependencies":{"react":">=16.8"},"peerDependenciesMeta":{"react":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/embedded_0.1.3_1776150103558_0.7975165545270557","host":"s3://npm-registry-packages-npm-production"}},"0.1.4":{"name":"@allsign/embedded","version":"0.1.4","keywords":["allsign","embedded","signing","e-signature","iframe","nom-151","sdk"],"author":{"url":"https://allsign.io","name":"AllSign"},"license":"MIT","_id":"@allsign/embedded@0.1.4","maintainers":[{"name":"allsign.io","email":"servicios@allsign.io"}],"homepage":"https://developers.allsign.io/embedded","bugs":{"url":"https://github.com/binaryme/allsign-embedded-sdk/issues"},"dist":{"shasum":"d34d93e4ff24bbf71041c98df3bc81ee091f3930","tarball":"https://registry.npmjs.org/@allsign/embedded/-/embedded-0.1.4.tgz","fileCount":14,"integrity":"sha512-HUoVUeqQ/0ic1ENrUHVBBvvsSJjY/xvxraCCPnOsCosYM6L2Q9TgrdW+zhWiDGYBPvqw3X1RKDB7jicP7GmADA==","signatures":[{"sig":"MEYCIQDvyDkxDF3AJy1pTm7XwRLuoD6HG4VrJDkmJ+3L+kK2ZgIhAKfpd1/mfOGJrYJjFvZ+mSsr1x01YA0yLjY6EduQxCXS","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":114019},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","unpkg":"./dist/index.umd.js","module":"./dist/index.mjs","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","default":"./dist/index.mjs","require":"./dist/index.cjs"},"./react":{"types":"./dist/react.d.ts","import":"./dist/react.mjs","require":"./dist/react.cjs"},"./package.json":"./package.json"},"gitHead":"92b6ae5b61e495740b4990a4421ce7bb406930f6","scripts":{"dev":"rollup -c -w","test":"vitest run","build":"rollup -c","clean":"rm -rf dist","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"allsign.io","email":"servicios@allsign.io"},"repository":{"url":"git+https://github.com/binaryme/allsign-embedded-sdk.git","type":"git"},"_npmVersion":"10.5.0","description":"Embed the AllSign signing experience directly in your web application. Mounts an iframe that handles OTP, identity verification, biometrics, and signature capture without your users leaving your app.","directories":{},"sideEffects":false,"_nodeVersion":"21.7.3","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jsdom":"^25.0.1","react":"^19.0.0","tslib":"^2.8.1","rollup":"^4.28.0","vitest":"^2.1.8","react-dom":"^19.2.5","typescript":"^5.7.2","@types/node":"^22.10.1","@types/react":"^19.0.1","rollup-plugin-dts":"^6.1.1","@testing-library/dom":"^10.4.1","@rollup/plugin-terser":"^0.4.4","@testing-library/react":"^16.3.2","@rollup/plugin-typescript":"^12.1.1","@rollup/plugin-node-resolve":"^15.3.0"},"peerDependencies":{"react":">=16.8"},"peerDependenciesMeta":{"react":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/embedded_0.1.4_1776151196691_0.6940189730630069","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@allsign/embedded","version":"0.2.0","keywords":["allsign","embedded","signing","e-signature","iframe","nom-151","sdk"],"author":{"url":"https://allsign.io","name":"AllSign"},"license":"MIT","_id":"@allsign/embedded@0.2.0","maintainers":[{"name":"allsign.io","email":"servicios@allsign.io"}],"homepage":"https://developers.allsign.io/embedded","bugs":{"url":"https://github.com/binaryme/allsign-embedded-sdk/issues"},"dist":{"shasum":"982fc7e24453638ca8450f1e6aa2f8ab822c7b99","tarball":"https://registry.npmjs.org/@allsign/embedded/-/embedded-0.2.0.tgz","fileCount":15,"integrity":"sha512-DSreFz+Sm9fQJt/pPHjU26Iiqs10Wo6UVyYi5j5Y6wbrjFj+IyV4mnNPFJ7CJfDureeBIHpRHiqHo6XTGd3W2g==","signatures":[{"sig":"MEUCIQCOtZ+51DW+jMKADZ7RY42Q+9o54P9ER3R27kEuSF14AQIgMm8fH/KpiidbT/f8hqwcGfmIgRBSzH4EEKVMr69WD8g=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":127049},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","unpkg":"./dist/index.umd.js","module":"./dist/index.mjs","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","default":"./dist/index.mjs","require":"./dist/index.cjs"},"./react":{"types":"./dist/react.d.ts","import":"./dist/react.mjs","require":"./dist/react.cjs"},"./package.json":"./package.json"},"gitHead":"c2cee2001f457ece50c65212efab18f080a99cf8","scripts":{"dev":"rollup -c -w","test":"vitest run","build":"rollup -c","clean":"rm -rf dist","typecheck":"tsc --noEmit","test:watch":"vitest","prepublishOnly":"npm run clean && npm run build"},"_npmUser":{"name":"allsign.io","email":"servicios@allsign.io"},"repository":{"url":"git+https://github.com/binaryme/allsign-embedded-sdk.git","type":"git"},"_npmVersion":"10.9.4","description":"Embed the AllSign signing experience directly in your web application. Mounts an iframe that handles OTP, identity verification, biometrics, and signature capture without your users leaving your app.","directories":{},"sideEffects":false,"_nodeVersion":"22.22.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jsdom":"^25.0.1","react":"^19.0.0","tslib":"^2.8.1","rollup":"^4.28.0","vitest":"^2.1.8","react-dom":"^19.2.5","typescript":"^5.7.2","@types/node":"^22.10.1","@types/react":"^19.0.1","rollup-plugin-dts":"^6.1.1","@testing-library/dom":"^10.4.1","@rollup/plugin-terser":"^0.4.4","@testing-library/react":"^16.3.2","@rollup/plugin-typescript":"^12.1.1","@rollup/plugin-node-resolve":"^15.3.0"},"peerDependencies":{"react":">=16.8"},"peerDependenciesMeta":{"react":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/embedded_0.2.0_1782183734114_0.2488930480124958","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"@allsign/embedded","version":"0.3.0","description":"Embed the AllSign signing experience directly in your web application. Mounts an iframe that handles OTP, identity verification, biometrics, and signature capture without your users leaving your app.","keywords":["allsign","embedded","signing","e-signature","iframe","nom-151","sdk"],"license":"MIT","author":{"name":"AllSign","url":"https://allsign.io"},"homepage":"https://developers.allsign.io/embedded","repository":{"type":"git","url":"git+https://github.com/binaryme/allsign-embedded-sdk.git"},"bugs":{"url":"https://github.com/binaryme/allsign-embedded-sdk/issues"},"type":"module","main":"./dist/index.cjs","module":"./dist/index.mjs","types":"./dist/index.d.ts","unpkg":"./dist/index.umd.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.cjs","default":"./dist/index.mjs"},"./react":{"types":"./dist/react.d.ts","import":"./dist/react.mjs","require":"./dist/react.cjs"},"./package.json":"./package.json"},"sideEffects":false,"engines":{"node":">=18"},"scripts":{"build":"rollup -c","dev":"rollup -c -w","test":"vitest run","test:watch":"vitest","typecheck":"tsc --noEmit","clean":"rm -rf dist","prepublishOnly":"npm run clean && npm run build"},"devDependencies":{"@rollup/plugin-node-resolve":"^15.3.0","@rollup/plugin-terser":"^0.4.4","@rollup/plugin-typescript":"^12.1.1","@testing-library/dom":"^10.4.1","@testing-library/react":"^16.3.2","@types/node":"^22.10.1","@types/react":"^19.0.1","jsdom":"^25.0.1","react":"^19.0.0","react-dom":"^19.2.5","rollup":"^4.28.0","rollup-plugin-dts":"^6.1.1","tslib":"^2.8.1","typescript":"^5.7.2","vitest":"^2.1.8"},"peerDependencies":{"react":">=16.8"},"peerDependenciesMeta":{"react":{"optional":true}},"publishConfig":{"access":"public"},"_id":"@allsign/embedded@0.3.0","gitHead":"cb55f11c3b18a026d72237de09a7c764b43cbc00","_nodeVersion":"21.7.3","_npmVersion":"10.9.4","dist":{"integrity":"sha512-KkXKcckmMGIOPyvlvsHJw0oFMFNL9lKH0lMJ2zk7xjxWQ3gNrhTdM5V4bNWYmRpqUckQ9z1O6yA+lGwtkbclww==","shasum":"41a54ee86aa2d91cee509cc7fdf87b596da8643e","tarball":"https://registry.npmjs.org/@allsign/embedded/-/embedded-0.3.0.tgz","fileCount":15,"unpackedSize":172341,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQD9jHqRZFSkATdHcFAo60De8IV0xeEFIQ0jgS7uAW3rlAIhAKaaGoK5DSUOK8OwbNvPElL6l6Ok1usuVb5zfTz/WBMI"}]},"_npmUser":{"name":"allsign.io","email":"servicios@allsign.io"},"directories":{},"maintainers":[{"name":"allsign.io","email":"servicios@allsign.io"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/embedded_0.3.0_1783194886846_0.5495094974163186"},"_hasShrinkwrap":false}},"time":{"created":"2026-04-12T03:01:15.748Z","modified":"2026-07-04T19:54:47.151Z","0.1.0":"2026-04-12T03:01:15.985Z","0.1.1":"2026-04-12T03:09:27.264Z","0.1.2":"2026-04-14T04:32:58.760Z","0.1.3":"2026-04-14T07:01:43.710Z","0.1.4":"2026-04-14T07:19:56.833Z","0.2.0":"2026-06-23T03:02:14.245Z","0.3.0":"2026-07-04T19:54:47.015Z"},"bugs":{"url":"https://github.com/binaryme/allsign-embedded-sdk/issues"},"author":{"name":"AllSign","url":"https://allsign.io"},"license":"MIT","homepage":"https://developers.allsign.io/embedded","keywords":["allsign","embedded","signing","e-signature","iframe","nom-151","sdk"],"repository":{"type":"git","url":"git+https://github.com/binaryme/allsign-embedded-sdk.git"},"description":"Embed the AllSign signing experience directly in your web application. Mounts an iframe that handles OTP, identity verification, biometrics, and signature capture without your users leaving your app.","maintainers":[{"name":"allsign.io","email":"servicios@allsign.io"}],"readme":"# @allsign/embedded\n\nJavaScript SDK for embedding [AllSign](https://allsign.io) signing flows directly in your web application.\n\n> **Status**: `v0.3.0` — stable. Validation, types, errors, entry points, and the full iframe\n> lifecycle (modal / inline / slider mounting, postMessage handling, auto-resize) are shipped, plus\n> the multi-signer post-sign view, the `onEvidence` callback, and the complete error taxonomy with\n> `isRetryableError` / `isTerminalError`. See [CHANGELOG.md](./CHANGELOG.md).\n\n## Install\n\n```bash\nnpm install @allsign/embedded\n```\n\nOr via CDN (available once first version is published):\n\n```html\n<script src=\"https://js.allsign.io/v1.js\" async></script>\n```\n\n## Quickstart\n\n```js\nimport { AllSign } from '@allsign/embedded';\n\n// 1. Your BACKEND creates the signing session with your secret key\n//    and returns the client_secret to your frontend:\n//\n//    POST https://api.allsign.io/v2/signing-sessions\n//    Authorization: Bearer allsign_live_sk_TU_SECRET_KEY\n//    { \"document_id\": \"...\", \"signer_email\": \"...\" }\n//    → { \"client_secret\": \"as_sess_xxx_secret_yyy\", ... }\n\n// 2. Your FRONTEND uses the client_secret to mount the signing widget:\nconst session = AllSign.init({\n  clientSecret: 'as_sess_xxx_secret_yyy',\n  locale: 'es-MX',\n  onSuccess: (result) => {\n    console.log('Firmado:', result.signatureId);\n  },\n  onEvidence: (evidence) => {\n    // Fires once everyone signed and the evidence PDF is ready\n    console.log('Evidencia:', evidence.downloadUrl);\n  },\n  onExit: (metadata) => {\n    console.log('Salió:', metadata.reason);\n  },\n});\n\nsession.modal(); // or session.inline('#container') or session.slider()\n```\n\n> **Nota (multi-firmante):** el widget ya **no se cierra solo** al firmar. Muestra una\n> vista post-firma (el documento en vivo, o el PDF de evidencia cuando todos firman) y\n> se cierra cuando el firmante toca **\"Cerrar\"** → `onExit`. **No destruyas el iframe en\n> `onSuccess`** si quieres que el firmante vea esa vista. `onSuccess` sigue disparándose\n> al instante de firmar; `onEvidence` cuando la evidencia queda lista.\n\n## Only one credential in the browser\n\nThe SDK accepts a single public credential: the **`clientSecret`** returned by `POST /v2/signing-sessions`. It's ephemeral (15 minutes), single-use, and scoped to exactly one signing session.\n\n**There is no publishable key.** Following the modern Plaid link-token model (which Plaid adopted in 2020 when it deprecated its `publicKey`), the `clientSecret` itself does all the work: identifies the tenant, scopes the permissions, and is safe to send to the browser because it's short-lived and limited in blast radius.\n\nIf you paste a **secret key** (`allsign_live_sk_*`) into `AllSign.init()` by mistake, the SDK throws `SECRET_KEY_PASSED_AS_CLIENT_SECRET` immediately with a descriptive error that tells you how to generate a `clientSecret` server-side instead.\n\n## React\n\nThe SDK ships a React hook at the `/react` subpath:\n\n```jsx\nimport { useAllSignLink } from '@allsign/embedded/react';\n\nfunction SignButton({ clientSecret }) {\n  const { open, ready, error } = useAllSignLink({\n    clientSecret,\n    onSuccess: (result) => console.log('Firmado:', result.signatureId),\n    onExit: (metadata) => console.log('Salió:', metadata.reason),\n  });\n\n  if (error) return <p>Error: {error.message}</p>;\n  return <button onClick={open} disabled={!ready}>Firmar</button>;\n}\n```\n\nReact is declared as an **optional** peer dependency — you only need it installed if you import from `@allsign/embedded/react`.\n\n## TypeScript\n\nFull type declarations are shipped with the package:\n\n```ts\nimport type {\n  AllSignInitOptions,\n  AllSignSession,\n  SigningResult,\n  ExitMetadata,\n  SigningEvent,\n  ThemeOptions,\n  Locale,\n} from '@allsign/embedded';\n\nimport type {\n  UseAllSignLinkOptions,\n  UseAllSignLinkReturn,\n} from '@allsign/embedded/react';\n```\n\n## Error handling\n\nAll errors thrown by the SDK are instances of `AllSignError` with a stable `code` you can branch on:\n\n```js\nimport { AllSign, AllSignError, AllSignErrorCode } from '@allsign/embedded';\n\ntry {\n  const session = AllSign.init({ clientSecret });\n} catch (e) {\n  if (e instanceof AllSignError) {\n    switch (e.code) {\n      case AllSignErrorCode.MISSING_CLIENT_SECRET:\n      case AllSignErrorCode.INVALID_CLIENT_SECRET_FORMAT:\n        // Your backend didn't return a valid client_secret\n        break;\n      case AllSignErrorCode.SECRET_KEY_PASSED_AS_CLIENT_SECRET:\n        // You passed a secret key to the frontend — SECURITY BUG, fix it\n        break;\n      case AllSignErrorCode.SESSION_EXPIRED:\n        // Create a new signing session server-side and retry\n        break;\n      // ... see src/core/errors.ts for the full catalog\n    }\n  }\n  throw e;\n}\n```\n\nRuntime errors from the signing flow (the iframe) do NOT throw — they arrive in your `onExit`\ncallback as `metadata.error.code`. The SDK passes those codes through **verbatim** (no\nnormalization), and the full catalog — what each code means, who emits it, and what to do — is\ndocumented per-code in [`src/core/errors.ts`](./src/core/errors.ts) and in the docs:\n[developers.allsign.io/embedded/errors](https://developers.allsign.io/embedded/errors).\n\n### Terminal vs retryable — recovery pattern\n\nUse `isRetryableError(code)` / `isTerminalError(code)` to decide how to recover:\n\n- **Retryable (transient)** — `NETWORK_ERROR`, `BACKEND_UNREACHABLE`, `INVALID_BACKEND_RESPONSE`,\n  `INTERNAL_ERROR`, `INIT_TIMEOUT`, and any `HTTP_5xx` fallback. The failure is\n  infrastructure-side: the **same** `client_secret` remains exchangeable for its full 15-minute\n  TTL, so re-invoke `AllSign.init` with it (add a short backoff).\n- **Terminal (everything else, including unknown codes)** — the session itself is unusable\n  (expired, completed, cancelled, invalid, misconfigured…). Retrying with the same secret cannot\n  succeed. Recovery, Plaid-style: your **server** creates a NEW signing session\n  (`POST /v2/signing-sessions`) and your frontend re-invokes `AllSign.init` with the fresh\n  `client_secret`.\n\n```js\nimport { AllSign, isRetryableError } from '@allsign/embedded';\n\nfunction mount(clientSecret) {\n  const session = AllSign.init({\n    clientSecret,\n    onSuccess: (result) => console.log('Firmado:', result.signatureId),\n    onExit: async (metadata) => {\n      const code = metadata.error?.code;\n      if (!code) return; // clean exit (completed / cancelled by the signer)\n\n      if (isRetryableError(code)) {\n        // Transient — same client_secret is still valid (15-min TTL)\n        setTimeout(() => mount(clientSecret), 2000);\n      } else {\n        // Terminal — create a NEW session server-side and re-init\n        const res = await fetch('/my-api/signing-sessions', { method: 'POST' });\n        const { client_secret: fresh } = await res.json();\n        mount(fresh);\n      }\n    },\n  });\n  session.modal();\n}\n```\n\n## Development\n\n```bash\n# Install deps\nnpm install\n\n# Run tests (unit, jsdom)\nnpm test\n\n# Typecheck\nnpm run typecheck\n\n# Build (ESM + CJS + UMD + d.ts per entry)\nnpm run build\n```\n\n## Release pipeline\n\nPublishing is automated via GitHub Actions ([`.github/workflows/release.yml`](.github/workflows/release.yml)):\npushing a `v*` tag typechecks, tests, builds, and `npm publish`es with provenance.\n\n```bash\n# 1. bump \"version\" in package.json + add a CHANGELOG.md entry, merge to main\n# 2. tag and push:\ngit tag v0.2.0 && git push origin v0.2.0\n```\n\nOne-time setup: add an npm **automation token** as the `NPM_TOKEN` repo secret.\n\nTo publish manually instead (the `prepublishOnly` hook rebuilds `dist/` first, so it can never ship stale output):\n\n```bash\nnpm login        # if your local token is expired\nnpm publish      # publishConfig.access is already \"public\"\n```\n\n- Semver: loader API stable at `v1.x`, additive events are minors, type breaks are majors\n- Size budgets: loader <3KB gzip, core <50KB gzip\n\n## Links\n\n- **Docs**: [developers.allsign.io/embedded](https://developers.allsign.io/embedded)\n- **Backend API**: [developers.allsign.io](https://developers.allsign.io)\n- **Dashboard (iframe host)**: [allsign.io](https://allsign.io)\n- **Issues**: [github.com/binaryme/allsign-embedded-sdk/issues](https://github.com/binaryme/allsign-embedded-sdk/issues)\n\n## License\n\nMIT\n","readmeFilename":"README.md"}