{"_id":"@8ui/iframe-sdk-core","_rev":"5-51793c5100da5028783bbade79808a11","name":"@8ui/iframe-sdk-core","dist-tags":{"latest":"1.0.4"},"versions":{"1.0.0":{"name":"@8ui/iframe-sdk-core","version":"1.0.0","keywords":["sdk","iframe","postmessage","widget","modal"],"license":"MIT","_id":"@8ui/iframe-sdk-core@1.0.0","maintainers":[{"name":"andrew.sokolov","email":"webdeveloper@my.com"}],"homepage":"https://github.com/8ui/iframe-sdk-core#readme","bugs":{"url":"https://github.com/8ui/iframe-sdk-core/issues"},"dist":{"shasum":"9971d106f9cceca6116e019cb1adca1db6e97ae0","tarball":"https://registry.npmjs.org/@8ui/iframe-sdk-core/-/iframe-sdk-core-1.0.0.tgz","fileCount":47,"integrity":"sha512-f0qyO3cW9dCdrJFn1kfESfXdJy4QBmSeSaJ37yKLoNZQAetrYB5yUP+rrxsQP1LXX+dPopeQo0Aj/602+EZsfg==","signatures":[{"sig":"MEYCIQDOZ6IjVUVRY84TlVwL3kGPneokwDaWsushhIa1zwLuIAIhAOH8/FQNw9Aa8AYFOdqJks6DNPL5Lyxu2m7KDg8yl3jv","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":92984},"main":"dist/iframe-sdk-core.cjs.js","types":"dist/types/index.d.ts","module":"dist/iframe-sdk-core.esm.js","exports":{".":{"types":"./dist/types/index.d.ts","import":"./dist/iframe-sdk-core.esm.js","require":"./dist/iframe-sdk-core.cjs.js"}},"gitHead":"c002b8b52df433bff119509e0162cbf446e686aa","scripts":{"test":"NODE_OPTIONS='--unhandled-rejections=warn' jest","build":"NODE_ENV=production rollup -c","build:dev":"NODE_ENV=development rollup -c","test:watch":"NODE_OPTIONS='--unhandled-rejections=warn' jest --watch","type-check":"tsc --noEmit","build:debug":"DEBUG=true NODE_ENV=development rollup -c","build:watch":"NODE_ENV=development rollup -c -w","test:coverage":"NODE_OPTIONS='--unhandled-rejections=warn' jest --coverage"},"_npmUser":{"name":"andrew.sokolov","email":"webdeveloper@my.com"},"repository":{"url":"git+https://github.com/8ui/iframe-sdk-core.git","type":"git"},"_npmVersion":"10.8.2","description":"Universal SDK core for embedding iframe-based services (parent side)","directories":{},"sideEffects":false,"_nodeVersion":"20.20.0","_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","tslib":"^2.8.1","rollup":"^4.9.2","ts-jest":"^29.1.0","typescript":"^5.8.3","@types/jest":"^29.5.0","@rollup/plugin-terser":"^0.4.4","jest-environment-jsdom":"^29.7.0","rollup-plugin-filesize":"^10.0.0","@rollup/plugin-commonjs":"^28.0.6","@rollup/plugin-typescript":"^11.1.6","rollup-plugin-typescript2":"^0.36.0","@rollup/plugin-node-resolve":"^16.0.1"},"_npmOperationalInternal":{"tmp":"tmp/iframe-sdk-core_1.0.0_1769286593463_0.713199924284817","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"name":"@8ui/iframe-sdk-core","version":"1.0.1","keywords":["sdk","iframe","postmessage","widget","modal"],"license":"MIT","_id":"@8ui/iframe-sdk-core@1.0.1","maintainers":[{"name":"andrew.sokolov","email":"webdeveloper@my.com"}],"homepage":"https://github.com/8ui/iframe-sdk-core#readme","bugs":{"url":"https://github.com/8ui/iframe-sdk-core/issues"},"dist":{"shasum":"5f411568b820098ded0b467dd49c2428a0e06ef8","tarball":"https://registry.npmjs.org/@8ui/iframe-sdk-core/-/iframe-sdk-core-1.0.1.tgz","fileCount":47,"integrity":"sha512-hWr4iIYXmwwu8nRsnAJnBDRtImNrqFSBrgUKdyFLrCzkJ8NUCbNT0Y0dqbnvMyktW2GsL2XFO1uBIt2Wcj8ASg==","signatures":[{"sig":"MEUCIQD/8T2/WvQIqauvwfHvkmDRFeUYC9RzmHOeHjMOIbvblwIgdwawPC4/zd+KYPD2pCQR/N1vgjaqsB0aWTaQZWGnxP0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":92984},"main":"dist/iframe-sdk-core.cjs.js","types":"dist/types/index.d.ts","module":"dist/iframe-sdk-core.esm.js","exports":{".":{"types":"./dist/types/index.d.ts","import":"./dist/iframe-sdk-core.esm.js","require":"./dist/iframe-sdk-core.cjs.js"}},"gitHead":"f34ce85b7745d5f09de507d2d4f72811db7ed205","scripts":{"test":"NODE_OPTIONS='--unhandled-rejections=warn' jest","build":"NODE_ENV=production rollup -c","build:dev":"NODE_ENV=development rollup -c","test:watch":"NODE_OPTIONS='--unhandled-rejections=warn' jest --watch","type-check":"tsc --noEmit","build:debug":"DEBUG=true NODE_ENV=development rollup -c","build:watch":"NODE_ENV=development rollup -c -w","test:coverage":"NODE_OPTIONS='--unhandled-rejections=warn' jest --coverage"},"_npmUser":{"name":"andrew.sokolov","email":"webdeveloper@my.com"},"repository":{"url":"git+https://github.com/8ui/iframe-sdk-core.git","type":"git"},"_npmVersion":"10.8.2","description":"Universal SDK core for embedding iframe-based services (parent side)","directories":{},"sideEffects":false,"_nodeVersion":"20.20.0","_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","tslib":"^2.8.1","rollup":"^4.9.2","ts-jest":"^29.1.0","typescript":"^5.8.3","@types/jest":"^29.5.0","@rollup/plugin-terser":"^0.4.4","jest-environment-jsdom":"^29.7.0","rollup-plugin-filesize":"^10.0.0","@rollup/plugin-commonjs":"^28.0.6","@rollup/plugin-typescript":"^11.1.6","rollup-plugin-typescript2":"^0.36.0","@rollup/plugin-node-resolve":"^16.0.1"},"_npmOperationalInternal":{"tmp":"tmp/iframe-sdk-core_1.0.1_1769329543090_0.02336556893471098","host":"s3://npm-registry-packages-npm-production"}},"1.0.2":{"name":"@8ui/iframe-sdk-core","version":"1.0.2","keywords":["sdk","iframe","postmessage","widget","modal"],"license":"MIT","_id":"@8ui/iframe-sdk-core@1.0.2","maintainers":[{"name":"andrew.sokolov","email":"webdeveloper@my.com"}],"homepage":"https://github.com/8ui/iframe-sdk-core#readme","bugs":{"url":"https://github.com/8ui/iframe-sdk-core/issues"},"dist":{"shasum":"2a580bb8ea17f37b1c748e97e28516e19dfe4e19","tarball":"https://registry.npmjs.org/@8ui/iframe-sdk-core/-/iframe-sdk-core-1.0.2.tgz","fileCount":47,"integrity":"sha512-unplaIawThx8EDiE7MaR8lgJWLmOpBI8Vxg2vu4NUYGzUkcmyRQuYyTL3JBYy+zOu+etTORAUQnbyqOsZjgASw==","signatures":[{"sig":"MEUCIQCl0ue6TPbFzvFwb/wa1A6Vt0RXGNgz9eSEXf6DNU+u3QIgU+UEbJLbZdCzuFXSINu3wPAEyvCwlm9mJONbcgSjQkM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":92988},"main":"dist/iframe-sdk-core.cjs.js","types":"dist/types/index.d.ts","module":"dist/iframe-sdk-core.esm.js","exports":{".":{"types":"./dist/types/index.d.ts","import":"./dist/iframe-sdk-core.esm.js","require":"./dist/iframe-sdk-core.cjs.js"}},"gitHead":"8fc7f72ac961e5549a368e70563e8b812dd7ab0b","scripts":{"test":"NODE_OPTIONS='--unhandled-rejections=warn' jest","build":"NODE_ENV=production rollup -c","build:dev":"NODE_ENV=development rollup -c","test:watch":"NODE_OPTIONS='--unhandled-rejections=warn' jest --watch","type-check":"tsc --noEmit","build:debug":"DEBUG=true NODE_ENV=development rollup -c","build:watch":"NODE_ENV=development rollup -c -w","test:coverage":"NODE_OPTIONS='--unhandled-rejections=warn' jest --coverage"},"_npmUser":{"name":"andrew.sokolov","email":"webdeveloper@my.com"},"repository":{"url":"git+https://github.com/8ui/iframe-sdk-core.git","type":"git"},"_npmVersion":"10.8.2","description":"Universal SDK core for embedding iframe-based services (parent side)","directories":{},"sideEffects":false,"_nodeVersion":"20.20.0","_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","tslib":"^2.8.1","rollup":"^4.9.2","ts-jest":"^29.1.0","typescript":"^5.8.3","@types/jest":"^29.5.0","@rollup/plugin-terser":"^0.4.4","jest-environment-jsdom":"^29.7.0","rollup-plugin-filesize":"^10.0.0","@rollup/plugin-commonjs":"^28.0.6","@rollup/plugin-typescript":"^11.1.6","rollup-plugin-typescript2":"^0.36.0","@rollup/plugin-node-resolve":"^16.0.1"},"_npmOperationalInternal":{"tmp":"tmp/iframe-sdk-core_1.0.2_1769330365418_0.8169346621291107","host":"s3://npm-registry-packages-npm-production"}},"1.0.3":{"name":"@8ui/iframe-sdk-core","version":"1.0.3","keywords":["sdk","iframe","postmessage","widget","modal"],"license":"MIT","_id":"@8ui/iframe-sdk-core@1.0.3","maintainers":[{"name":"andrew.sokolov","email":"webdeveloper@my.com"}],"homepage":"https://github.com/8ui/iframe-sdk-core#readme","bugs":{"url":"https://github.com/8ui/iframe-sdk-core/issues"},"dist":{"shasum":"7ede8d24c1060ccad5f3e6db6e9279806563fd51","tarball":"https://registry.npmjs.org/@8ui/iframe-sdk-core/-/iframe-sdk-core-1.0.3.tgz","fileCount":47,"integrity":"sha512-/lTc9BLKeS/FWqxp2PUtTWL5YtuhKK/FoiQ+JW7+p72jCc/AnbE4ClqTRnkgpFsi9qf+++2vbANWbPbHAuS2NA==","signatures":[{"sig":"MEUCIEIr5dNEDGIPjd40le2vcnfzDoDTFbaayR+dfnoj+0n6AiEAw3zq0ozAiZgFGREtVQl9fwxFHVcvC8AskJu7DxNKDbk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":92976},"main":"dist/iframe-sdk-core.cjs.js","types":"dist/index.d.ts","module":"dist/iframe-sdk-core.esm.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/iframe-sdk-core.esm.js","require":"./dist/iframe-sdk-core.cjs.js"}},"gitHead":"c95c074459375235320c65fc418be09c99de6b65","scripts":{"test":"NODE_OPTIONS='--unhandled-rejections=warn' jest","build":"NODE_ENV=production rollup -c","build:dev":"NODE_ENV=development rollup -c","test:watch":"NODE_OPTIONS='--unhandled-rejections=warn' jest --watch","type-check":"tsc --noEmit","build:debug":"DEBUG=true NODE_ENV=development rollup -c","build:watch":"NODE_ENV=development rollup -c -w","test:coverage":"NODE_OPTIONS='--unhandled-rejections=warn' jest --coverage"},"_npmUser":{"name":"andrew.sokolov","email":"webdeveloper@my.com"},"repository":{"url":"git+https://github.com/8ui/iframe-sdk-core.git","type":"git"},"_npmVersion":"10.8.2","description":"Universal SDK core for embedding iframe-based services (parent side)","directories":{},"sideEffects":false,"_nodeVersion":"20.20.0","_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","tslib":"^2.8.1","rollup":"^4.9.2","ts-jest":"^29.1.0","typescript":"^5.8.3","@types/jest":"^29.5.0","@rollup/plugin-terser":"^0.4.4","jest-environment-jsdom":"^29.7.0","rollup-plugin-filesize":"^10.0.0","@rollup/plugin-commonjs":"^28.0.6","@rollup/plugin-typescript":"^11.1.6","rollup-plugin-typescript2":"^0.36.0","@rollup/plugin-node-resolve":"^16.0.1"},"_npmOperationalInternal":{"tmp":"tmp/iframe-sdk-core_1.0.3_1769785192036_0.06731579339204052","host":"s3://npm-registry-packages-npm-production"}},"1.0.4":{"name":"@8ui/iframe-sdk-core","version":"1.0.4","description":"Universal SDK core for embedding iframe-based services (parent side)","keywords":["sdk","iframe","postmessage","widget","modal"],"license":"MIT","repository":{"type":"git","url":"git+https://github.com/8ui/iframe-sdk-core.git"},"bugs":{"url":"https://github.com/8ui/iframe-sdk-core/issues"},"homepage":"https://github.com/8ui/iframe-sdk-core#readme","main":"dist/iframe-sdk-core.cjs.js","module":"dist/iframe-sdk-core.esm.js","types":"dist/index.d.ts","sideEffects":false,"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/iframe-sdk-core.esm.js","require":"./dist/iframe-sdk-core.cjs.js"}},"scripts":{"build":"NODE_ENV=production rollup -c","build:debug":"DEBUG=true NODE_ENV=development rollup -c","build:dev":"NODE_ENV=development rollup -c","build:watch":"NODE_ENV=development rollup -c -w","type-check":"tsc --noEmit","test":"NODE_OPTIONS='--unhandled-rejections=warn' jest","test:watch":"NODE_OPTIONS='--unhandled-rejections=warn' jest --watch","test:coverage":"NODE_OPTIONS='--unhandled-rejections=warn' jest --coverage"},"devDependencies":{"@rollup/plugin-commonjs":"^28.0.6","@rollup/plugin-node-resolve":"^16.0.1","@rollup/plugin-terser":"^0.4.4","@rollup/plugin-typescript":"^11.1.6","@types/jest":"^29.5.0","jest":"^29.7.0","jest-environment-jsdom":"^29.7.0","rollup":"^4.9.2","rollup-plugin-filesize":"^10.0.0","rollup-plugin-typescript2":"^0.36.0","ts-jest":"^29.1.0","tslib":"^2.8.1","typescript":"^5.8.3"},"_id":"@8ui/iframe-sdk-core@1.0.4","gitHead":"01f69ef1a908a4d9f49bcf209954f60bede6c1df","_nodeVersion":"20.20.0","_npmVersion":"10.8.2","dist":{"integrity":"sha512-mGH+C9cmUK9nwO1FujuIQiA3ATud7nMFOTNIp1dtTTYJ63WiwJSkTxmAspBu6euKVnwyOH9mpFtxgHRw6G4mrg==","shasum":"5a52a2fb75442e656a68f48671671b0bc36a9276","tarball":"https://registry.npmjs.org/@8ui/iframe-sdk-core/-/iframe-sdk-core-1.0.4.tgz","fileCount":47,"unpackedSize":93199,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCID9kwEc8D7wKlrgMuuC7/OlSqg6bpw48pzHsTqIngqC/AiBwqjPx0qRE/L+4i1jz+KsW9hqLyEhAaulufl2EkkwT7w=="}]},"_npmUser":{"name":"andrew.sokolov","email":"webdeveloper@my.com"},"directories":{},"maintainers":[{"name":"andrew.sokolov","email":"webdeveloper@my.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/iframe-sdk-core_1.0.4_1770738373330_0.8816728718357323"},"_hasShrinkwrap":false}},"time":{"created":"2026-01-24T20:29:53.392Z","modified":"2026-02-10T15:46:13.616Z","1.0.0":"2026-01-24T20:29:53.618Z","1.0.1":"2026-01-25T08:25:43.268Z","1.0.2":"2026-01-25T08:39:25.612Z","1.0.3":"2026-01-30T14:59:52.183Z","1.0.4":"2026-02-10T15:46:13.487Z"},"bugs":{"url":"https://github.com/8ui/iframe-sdk-core/issues"},"license":"MIT","homepage":"https://github.com/8ui/iframe-sdk-core#readme","keywords":["sdk","iframe","postmessage","widget","modal"],"repository":{"type":"git","url":"git+https://github.com/8ui/iframe-sdk-core.git"},"description":"Universal SDK core for embedding iframe-based services (parent side)","maintainers":[{"name":"andrew.sokolov","email":"webdeveloper@my.com"}],"readme":"# @8ui/iframe-sdk-core\n\nUniversal SDK core for embedding iframe-based services (parent side).\n\nThis package provides the base infrastructure for creating SDKs that embed iframe-based widgets with modal management, messaging, and theming.\n\n## Features\n\n- **BaseSDK**: Abstract base class for creating SDK implementations\n- **ModalManager**: Handles modal creation, styling, and animations\n- **MessageBridge**: PostMessage communication between parent and iframe\n- **ThemeManager**: Theme resolution and management\n- **EventEmitter**: Event system for SDK events\n- **Utilities**: Logging, validation, error handling, sanitization\n\n## Installation\n\n```bash\nnpm install @8ui/iframe-sdk-core\n```\n\n## Usage\n\n```typescript\nimport { BaseSDK, BaseConfig, BaseError } from '@8ui/iframe-sdk-core';\n\ninterface MyConfig extends BaseConfig {\n  // Your specific config fields\n  userId: string;\n}\n\ninterface MyResult {\n  // Your result type\n}\n\ninterface MyError extends BaseError {\n  code: 'MY_ERROR' | 'ANOTHER_ERROR';\n}\n\nclass MySDK extends BaseSDK<MyConfig, MyResult, MyError> {\n  constructor() {\n    super({\n      classPrefix: 'my-sdk',\n    });\n  }\n\n  buildURL(config: MyConfig): string {\n    return `${config.serverUrl}/widget?userId=${config.userId}`;\n  }\n\n  handleMessage(message: IframeMessage): void {\n    switch (message.type) {\n      case 'APP_READY':\n        this.handleAppReady();\n        break;\n      case 'COMPLETED':\n        this.resolveOpen(message.payload as MyResult);\n        break;\n      case 'ERROR':\n        this.rejectOpen(message.payload as MyError);\n        break;\n    }\n  }\n\n  getDefaultConfig(): Partial<MyConfig> {\n    return {\n      serverUrl: 'https://example.com',\n      timeout: 30000,\n    };\n  }\n}\n```\n\n## API\n\nSee the TypeScript types for full API documentation.\n\n## License\n\nMIT\n","readmeFilename":"README.md"}