{"_id":"@rhwp/editor","_rev":"27-2eefa43fac769e1e323e7aa990d1b0d6","name":"@rhwp/editor","dist-tags":{"latest":"0.8.6"},"versions":{"0.6.0":{"name":"@rhwp/editor","version":"0.6.0","keywords":["hwp","hwpx","hancom","hangul","한글","editor","viewer","wasm","webassembly"],"author":{"name":"Edward Kim"},"license":"MIT","_id":"@rhwp/editor@0.6.0","maintainers":[{"name":"tangokorea","email":"tangokorea@gmail.com"}],"homepage":"https://edwardkim.github.io/rhwp/","bugs":{"url":"https://github.com/edwardkim/rhwp/issues"},"dist":{"shasum":"93f44b610fe718e652d6f29480527eca336cb41c","tarball":"https://registry.npmjs.org/@rhwp/editor/-/editor-0.6.0.tgz","fileCount":4,"integrity":"sha512-pC3fEYa1gEURbr5PI+RzY7L2xcXUw0Qr17LUtUbnVlPSFLKF1Iti+uq5hHfVXaS9MTJZEBd5R21kv5pwAnrwtQ==","signatures":[{"sig":"MEUCIQCLMcgotqtXF0zP2u66Cu2EjwlNdb13CauQzcN3CwterAIgZPP4eR1dx/m0KaS6YyswJz8+ioEtWeyes0JPT5lhPRw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":10115},"main":"index.js","type":"module","types":"index.d.ts","gitHead":"fd081e0d8c46fa8191448079676fcf0a422e0c87","_npmUser":{"name":"tangokorea","email":"tangokorea@gmail.com"},"repository":{"url":"git+https://github.com/edwardkim/rhwp.git","type":"git"},"_npmVersion":"10.5.2","description":"HWP 에디터 웹 컴포넌트 — iframe 기반 임베드","directories":{},"_nodeVersion":"20.13.1","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/editor_0.6.0_1775295088042_0.5344070780563652","host":"s3://npm-registry-packages-npm-production"}},"0.6.1":{"name":"@rhwp/editor","version":"0.6.1","keywords":["hwp","hwpx","hancom","hangul","한글","editor","viewer","wasm","webassembly"],"author":{"name":"Edward Kim"},"license":"MIT","_id":"@rhwp/editor@0.6.1","maintainers":[{"name":"tangokorea","email":"tangokorea@gmail.com"}],"homepage":"https://edwardkim.github.io/rhwp/","bugs":{"url":"https://github.com/edwardkim/rhwp/issues"},"dist":{"shasum":"4bb059f74684d63f74c2f27f5f765997c7787f1e","tarball":"https://registry.npmjs.org/@rhwp/editor/-/editor-0.6.1.tgz","fileCount":4,"integrity":"sha512-xXn3sIs5qrPFWp+oRdIJwErFyWEMBDgtCg3PwsbHzDq52qg0kOKCByi8KjdSK6b/IakAHIpkfdY1RbqazV4lkQ==","signatures":[{"sig":"MEYCIQDbKlJCW4I/lqQ2pNTM5/tQwY4LuNhKRTLFdMVnZ5O24AIhAMk2zRk6ZinDcXCUozj6Kwqu5k0dpP28MdXa4/uO1eOo","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":10678},"main":"index.js","type":"module","types":"index.d.ts","gitHead":"e38445b31a745b7b3d701ab8980188b72df77d78","_npmUser":{"name":"tangokorea","email":"tangokorea@gmail.com"},"repository":{"url":"git+https://github.com/edwardkim/rhwp.git","type":"git"},"_npmVersion":"11.6.4","description":"HWP 에디터 웹 컴포넌트 — iframe 기반 임베드","directories":{},"_nodeVersion":"24.11.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/editor_0.6.1_1775561392704_0.560346900235233","host":"s3://npm-registry-packages-npm-production"}},"0.6.2":{"name":"@rhwp/editor","version":"0.6.2","keywords":["hwp","hwpx","hancom","hangul","한글","editor","viewer","wasm","webassembly"],"author":{"name":"Edward Kim"},"license":"MIT","_id":"@rhwp/editor@0.6.2","maintainers":[{"name":"tangokorea","email":"tangokorea@gmail.com"}],"homepage":"https://edwardkim.github.io/rhwp/","bugs":{"url":"https://github.com/edwardkim/rhwp/issues"},"dist":{"shasum":"00ac774f2da1b0f361df3f011e69f459d2b05041","tarball":"https://registry.npmjs.org/@rhwp/editor/-/editor-0.6.2.tgz","fileCount":4,"integrity":"sha512-kwEb76TC/ZFhg1+NheHYxLGxgyihJl+RIQrgZu+R/MGKMV2d/tZmD+TdCOVYIocpnGd/sbDuYOSWvAovPh554g==","signatures":[{"sig":"MEQCIG4zX/WnisZyj2IbYDeMGRVS7A1rkmyDAOSrxZzFS/2eAiBx+t1LcTGmakZfXZEGoo8p0TEbCXInH+zO1e1UCsq4GQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":12189},"main":"index.js","type":"module","types":"index.d.ts","gitHead":"e38445b31a745b7b3d701ab8980188b72df77d78","_npmUser":{"name":"tangokorea","email":"tangokorea@gmail.com"},"repository":{"url":"git+https://github.com/edwardkim/rhwp.git","type":"git"},"_npmVersion":"11.6.4","description":"HWP 에디터 웹 컴포넌트 — iframe 기반 임베드","directories":{},"_nodeVersion":"24.11.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/editor_0.6.2_1775561514618_0.06512249419635618","host":"s3://npm-registry-packages-npm-production"}},"0.6.3":{"name":"@rhwp/editor","version":"0.6.3","keywords":["hwp","hwpx","hancom","hangul","한글","editor","viewer","wasm","webassembly"],"author":{"name":"Edward Kim"},"license":"MIT","_id":"@rhwp/editor@0.6.3","maintainers":[{"name":"tangokorea","email":"tangokorea@gmail.com"}],"homepage":"https://edwardkim.github.io/rhwp/","bugs":{"url":"https://github.com/edwardkim/rhwp/issues"},"dist":{"shasum":"65ff566cd715f880236a10d4ec66c41ea5471d3b","tarball":"https://registry.npmjs.org/@rhwp/editor/-/editor-0.6.3.tgz","fileCount":4,"integrity":"sha512-A9pI1l1Ho/mERcKcLHN5sg5muAciEaMaN+waDN+teUuRtbsJeBDxVA7nLmNXnGlAV1bKouKUfGSDQDrWNfciFw==","signatures":[{"sig":"MEQCICLxz2KH60158t2PedvSqCXyX6XTeFoQE2gk/6zg7O+dAiByiWbMc3BB6q2zr3fSXiWGz6V8nZnC2ipqq65VmXKbFw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":13209},"main":"index.js","type":"module","types":"index.d.ts","gitHead":"e38445b31a745b7b3d701ab8980188b72df77d78","_npmUser":{"name":"tangokorea","email":"tangokorea@gmail.com"},"repository":{"url":"git+https://github.com/edwardkim/rhwp.git","type":"git"},"_npmVersion":"11.6.4","description":"HWP 에디터 웹 컴포넌트 — iframe 기반 임베드","directories":{},"_nodeVersion":"24.11.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/editor_0.6.3_1775561553535_0.2981690002613948","host":"s3://npm-registry-packages-npm-production"}},"0.7.0":{"name":"@rhwp/editor","version":"0.7.0","keywords":["hwp","hwpx","hancom","hangul","한글","editor","viewer","wasm","webassembly"],"author":{"name":"Edward Kim"},"license":"MIT","_id":"@rhwp/editor@0.7.0","maintainers":[{"name":"tangokorea","email":"tangokorea@gmail.com"}],"homepage":"https://edwardkim.github.io/rhwp/","bugs":{"url":"https://github.com/edwardkim/rhwp/issues"},"dist":{"shasum":"978066e68f4c3ee20e628cdeba11b8be888fb424","tarball":"https://registry.npmjs.org/@rhwp/editor/-/editor-0.7.0.tgz","fileCount":4,"integrity":"sha512-3tStbdgAIt1yNoudzliuNEUL0MnRE8hn9zcRqyote+LOoKxo/9TrgnbBGd0TwKAPPX7QQePUVmDpp0zhatGZXw==","signatures":[{"sig":"MEUCIETHKJ8clN+k6IdzSY26z1v2wykhYMzvcqWDm0Pi6/x+AiEAvkjxBYzvXotZuPTIhxyAltwZHEhjdg/JzS5BjCJF9e0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@rhwp%2feditor@0.7.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":13209},"main":"index.js","type":"module","types":"index.d.ts","gitHead":"7ff7ddf461e2f55b92b56b9c74fbdb5d18b4aec4","_npmUser":{"name":"tangokorea","email":"tangokorea@gmail.com"},"repository":{"url":"git+https://github.com/edwardkim/rhwp.git","type":"git"},"_npmVersion":"10.8.2","description":"HWP 에디터 웹 컴포넌트 — iframe 기반 임베드","directories":{},"_nodeVersion":"20.20.2","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/editor_0.7.0_1775909945158_0.34328815493754417","host":"s3://npm-registry-packages-npm-production"}},"0.7.2":{"name":"@rhwp/editor","version":"0.7.2","keywords":["hwp","hwpx","hancom","hangul","한글","editor","viewer","wasm","webassembly"],"author":{"name":"Edward Kim"},"license":"MIT","_id":"@rhwp/editor@0.7.2","maintainers":[{"name":"tangokorea","email":"tangokorea@gmail.com"}],"homepage":"https://edwardkim.github.io/rhwp/","bugs":{"url":"https://github.com/edwardkim/rhwp/issues"},"dist":{"shasum":"2610be6f37069d9c17ad8a9ffedbc4975fbf4bbf","tarball":"https://registry.npmjs.org/@rhwp/editor/-/editor-0.7.2.tgz","fileCount":4,"integrity":"sha512-RfPXnLarD6A6LvMepuYgOro9+K40RXbXjQaH+aYSDPKpIu1tECZhgR8qNKldQ1OFAls+VwNVy+zxLLiJOtdLAw==","signatures":[{"sig":"MEQCIC7jxrJvvV1orHSmPAG6+dd+fKFExecrPYWvBoFAzrdAAiA7mdT1wku+3p5YHkE5WkmUlTAsuiX8k/VzNgyJ+vEWvA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@rhwp%2feditor@0.7.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":13209},"main":"index.js","type":"module","types":"index.d.ts","gitHead":"a8cc9817f0a34a4fcdb23d5e16bd493740227711","_npmUser":{"name":"tangokorea","email":"tangokorea@gmail.com"},"repository":{"url":"git+https://github.com/edwardkim/rhwp.git","type":"git"},"_npmVersion":"10.8.2","description":"HWP 에디터 웹 컴포넌트 — iframe 기반 임베드","directories":{},"_nodeVersion":"20.20.2","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/editor_0.7.2_1776087455992_0.5323982728803529","host":"s3://npm-registry-packages-npm-production"}},"0.7.3":{"name":"@rhwp/editor","version":"0.7.3","keywords":["hwp","hwpx","hancom","hangul","한글","editor","viewer","wasm","webassembly"],"author":{"name":"Edward Kim"},"license":"MIT","_id":"@rhwp/editor@0.7.3","maintainers":[{"name":"tangokorea","email":"tangokorea@gmail.com"}],"homepage":"https://edwardkim.github.io/rhwp/","bugs":{"url":"https://github.com/edwardkim/rhwp/issues"},"dist":{"shasum":"12f30d676b17b4e95da9406d0d1adddb7b6313b7","tarball":"https://registry.npmjs.org/@rhwp/editor/-/editor-0.7.3.tgz","fileCount":4,"integrity":"sha512-6lxi6D5W7KTfDcXTdOyxWw2jh648GAU74VlaPDxu+MyQKbZBncCAnZfYTOr/8PBpOZgJjpm/G2HjB4SOmIiSTQ==","signatures":[{"sig":"MEYCIQCTIztms4ChvqLmHhkKUWFfJWb+S1OZiyerKGf4d4WhOQIhAO/ZBgrusY3IXrypN3bWdv7s1PB0oGWwu02EMILeCSYr","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@rhwp%2feditor@0.7.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":13209},"main":"index.js","type":"module","types":"index.d.ts","gitHead":"c2e8a3461de800a02f76127ff4797bade1d4e532","_npmUser":{"name":"tangokorea","email":"tangokorea@gmail.com"},"repository":{"url":"git+https://github.com/edwardkim/rhwp.git","type":"git"},"_npmVersion":"10.8.2","description":"HWP 에디터 웹 컴포넌트 — iframe 기반 임베드","directories":{},"_nodeVersion":"20.20.2","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/editor_0.7.3_1776602457287_0.40997894662150025","host":"s3://npm-registry-packages-npm-production"}},"0.7.6":{"name":"@rhwp/editor","version":"0.7.6","keywords":["hwp","hwpx","hancom","hangul","한글","editor","viewer","wasm","webassembly"],"author":{"name":"Edward Kim"},"license":"MIT","_id":"@rhwp/editor@0.7.6","maintainers":[{"name":"tangokorea","email":"tangokorea@gmail.com"}],"homepage":"https://edwardkim.github.io/rhwp/","bugs":{"url":"https://github.com/edwardkim/rhwp/issues"},"dist":{"shasum":"2d3f08cef9138f7f4991af9ab964869bf847c06b","tarball":"https://registry.npmjs.org/@rhwp/editor/-/editor-0.7.6.tgz","fileCount":4,"integrity":"sha512-4jM23M0nM0WuSE9h2fi1JrXeViSaujA3rwoStYJ8PoRm4CR1ANwLDUZ3is9UEvscp/zmX+WHqM/gNjFYujVbGg==","signatures":[{"sig":"MEUCIQD5j9TXJ5eEQ94mMXRa5eRzPB7A29WIi8ldVTRx025KXwIgSUB2vBN6X3L9KipJ521JvcLYpSCq3HDRdw7ZRLYm7lo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@rhwp%2feditor@0.7.6","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":13209},"main":"index.js","type":"module","types":"index.d.ts","gitHead":"92c5b6b79d22f6c784b3b317551c66466b3b63a5","_npmUser":{"name":"tangokorea","email":"tangokorea@gmail.com"},"repository":{"url":"git+https://github.com/edwardkim/rhwp.git","type":"git"},"_npmVersion":"10.8.2","description":"HWP 에디터 웹 컴포넌트 — iframe 기반 임베드","directories":{},"_nodeVersion":"20.20.2","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/editor_0.7.6_1777196284869_0.7281514726536438","host":"s3://npm-registry-packages-npm-production"}},"0.7.7":{"name":"@rhwp/editor","version":"0.7.7","keywords":["hwp","hwpx","hancom","hangul","한글","editor","viewer","wasm","webassembly"],"author":{"name":"Edward Kim"},"license":"MIT","_id":"@rhwp/editor@0.7.7","maintainers":[{"name":"tangokorea","email":"tangokorea@gmail.com"}],"homepage":"https://edwardkim.github.io/rhwp/","bugs":{"url":"https://github.com/edwardkim/rhwp/issues"},"dist":{"shasum":"f442b2ecdc7e5c7a38090273cb04592eb1b2e842","tarball":"https://registry.npmjs.org/@rhwp/editor/-/editor-0.7.7.tgz","fileCount":4,"integrity":"sha512-MjdFtpfkWxmxuNz2t9/HFPZXY6FupBlUK86yGcMJpvZEwsCxhJZY7dU1+vXbKdHPCcNNX5aNV/yhnazeTjSiaw==","signatures":[{"sig":"MEUCIARDMMCIbFG4/1mHo0zPNEsM+hAq0pgqaX5r1xM4+FgCAiEA5i9/+ap6RgigFnyyy9YRUNFHad/RjPNC5LppVf1/U7A=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@rhwp%2feditor@0.7.7","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":13209},"main":"index.js","type":"module","types":"index.d.ts","gitHead":"033617e23847982135c02091a62f55031a3817b5","_npmUser":{"name":"tangokorea","email":"tangokorea@gmail.com"},"repository":{"url":"git+https://github.com/edwardkim/rhwp.git","type":"git"},"_npmVersion":"10.8.2","description":"HWP 에디터 웹 컴포넌트 — iframe 기반 임베드","directories":{},"_nodeVersion":"20.20.2","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/editor_0.7.7_1777263842477_0.4412494840005925","host":"s3://npm-registry-packages-npm-production"}},"0.7.8":{"name":"@rhwp/editor","version":"0.7.8","keywords":["hwp","hwpx","hancom","hangul","한글","editor","viewer","wasm","webassembly"],"author":{"name":"Edward Kim"},"license":"MIT","_id":"@rhwp/editor@0.7.8","maintainers":[{"name":"tangokorea","email":"tangokorea@gmail.com"}],"homepage":"https://edwardkim.github.io/rhwp/","bugs":{"url":"https://github.com/edwardkim/rhwp/issues"},"dist":{"shasum":"fc1005385d759cd121c49f6fac9b354cadafbb17","tarball":"https://registry.npmjs.org/@rhwp/editor/-/editor-0.7.8.tgz","fileCount":4,"integrity":"sha512-eeWQ7rqZowpmG19PEXb4VDREBPZNFl/HEvWikZyg0XWsH7NzJmK8b8OXnP3T9eX83wk5O44VVk+7q2islXfozg==","signatures":[{"sig":"MEYCIQCNE7x//tvQr/gI1lV7d8M1Z+JlCXgIde82f1+Gz2Yi4wIhANDe4jrKeMefOLT2Il7gRTEqwJYxyaj/XAhGgR7nPIRB","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@rhwp%2feditor@0.7.8","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":13966},"main":"index.js","type":"module","types":"index.d.ts","gitHead":"42cf91b6ba7b50fa1c853c01158a52ef68b45442","_npmUser":{"name":"tangokorea","email":"tangokorea@gmail.com"},"repository":{"url":"git+https://github.com/edwardkim/rhwp.git","type":"git"},"_npmVersion":"10.8.2","description":"HWP 에디터 웹 컴포넌트 — iframe 기반 임베드","directories":{},"_nodeVersion":"20.20.2","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/editor_0.7.8_1777432386649_0.6820606118904367","host":"s3://npm-registry-packages-npm-production"}},"0.7.9":{"name":"@rhwp/editor","version":"0.7.9","keywords":["hwp","hwpx","hancom","hangul","한글","editor","viewer","wasm","webassembly"],"author":{"name":"Edward Kim"},"license":"MIT","_id":"@rhwp/editor@0.7.9","maintainers":[{"name":"tangokorea","email":"tangokorea@gmail.com"}],"homepage":"https://edwardkim.github.io/rhwp/","bugs":{"url":"https://github.com/edwardkim/rhwp/issues"},"dist":{"shasum":"41865166ac9cd21b5b5d8044a645db19ace4eb63","tarball":"https://registry.npmjs.org/@rhwp/editor/-/editor-0.7.9.tgz","fileCount":4,"integrity":"sha512-/BMRS5X0ajcYIfRc0q3YODWjaVrCpITGwKBPmXe+/5CVrH4uNeTD5ZSkGejvT8IRkSlseN3duA92vNVo2kGPtQ==","signatures":[{"sig":"MEQCIF7ntkBdwL8F8P9d7ZucwdFDNSWSKSWtmcewfDy8C6qwAiAT/7aZ8lrMJXrhVjH11a6S7Onj6S8a9ZNOp42Arkd2dg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@rhwp%2feditor@0.7.9","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":13966},"main":"index.js","type":"module","types":"index.d.ts","gitHead":"0fb3e6758b8ad11d2f3c3849c83b914684e83863","_npmUser":{"name":"tangokorea","email":"tangokorea@gmail.com"},"repository":{"url":"git+https://github.com/edwardkim/rhwp.git","type":"git"},"_npmVersion":"10.8.2","description":"HWP 에디터 웹 컴포넌트 — iframe 기반 임베드","directories":{},"_nodeVersion":"20.20.2","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/editor_0.7.9_1777592853835_0.24650530885695376","host":"s3://npm-registry-packages-npm-production"}},"0.7.10":{"name":"@rhwp/editor","version":"0.7.10","keywords":["hwp","hwpx","hancom","hangul","한글","editor","viewer","wasm","webassembly"],"author":{"name":"Edward Kim"},"license":"MIT","_id":"@rhwp/editor@0.7.10","maintainers":[{"name":"tangokorea","email":"tangokorea@gmail.com"}],"homepage":"https://edwardkim.github.io/rhwp/","bugs":{"url":"https://github.com/edwardkim/rhwp/issues"},"dist":{"shasum":"3b1bcce1a72cb0caaba4816660fef87b82cb1314","tarball":"https://registry.npmjs.org/@rhwp/editor/-/editor-0.7.10.tgz","fileCount":4,"integrity":"sha512-Y/dgZhsYt9Ir6gcxyoyGmVBDCAHciLAT0y1YWu03UX6H3RVNGXBY4pf2HLB7G/k0KRaG0AJiXj6sChRayAgVQw==","signatures":[{"sig":"MEUCIGjHbuwaL6WvWfPNte905frKBq1oXLcvzb4J9gUuntAVAiEAgxjzOYSQir93qB2LvWBFnp4sEBOb0wv3x9/h5MYyy+8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@rhwp%2feditor@0.7.10","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":16185},"main":"index.js","type":"module","types":"index.d.ts","gitHead":"680510aa57d78131c3918012e175ed6fe26fce94","_npmUser":{"name":"tangokorea","email":"tangokorea@gmail.com"},"repository":{"url":"git+https://github.com/edwardkim/rhwp.git","type":"git"},"_npmVersion":"10.8.2","description":"HWP 에디터 웹 컴포넌트 — iframe 기반 임베드","directories":{},"_nodeVersion":"20.20.2","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/editor_0.7.10_1778002604782_0.09254180758337238","host":"s3://npm-registry-packages-npm-production"}},"0.7.11":{"name":"@rhwp/editor","version":"0.7.11","keywords":["hwp","hwpx","hancom","hangul","한글","editor","viewer","wasm","webassembly"],"author":{"name":"Edward Kim"},"license":"MIT","_id":"@rhwp/editor@0.7.11","maintainers":[{"name":"tangokorea","email":"tangokorea@gmail.com"}],"homepage":"https://edwardkim.github.io/rhwp/","bugs":{"url":"https://github.com/edwardkim/rhwp/issues"},"dist":{"shasum":"bafd97b4a1bb23255ff7ff424f11c20be9e3926d","tarball":"https://registry.npmjs.org/@rhwp/editor/-/editor-0.7.11.tgz","fileCount":4,"integrity":"sha512-x8DlxFrrqqbnVN7bYpvl9oVl6ARbVK+8zKa8Bp48zY9VnZGnb/QOQ71kss14WID3qCTHV2zzb66J8613qAyTOw==","signatures":[{"sig":"MEYCIQD0BNA90F4Njlq/sdAjoL4bYB8XVUZkiZgaOQTXHH5frQIhALd9a7c+5WTI71PF70qT9V5gAT02G19C3HBj6Z+7Y6/V","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@rhwp%2feditor@0.7.11","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":16185},"main":"index.js","type":"module","types":"index.d.ts","gitHead":"a9dcdee32b17a7f9a20c609a5ed547e62fb8ebae","_npmUser":{"name":"tangokorea","email":"tangokorea@gmail.com"},"repository":{"url":"git+https://github.com/edwardkim/rhwp.git","type":"git"},"_npmVersion":"10.8.2","description":"HWP 에디터 웹 컴포넌트 — iframe 기반 임베드","directories":{},"_nodeVersion":"20.20.2","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/editor_0.7.11_1778442779429_0.6431465237000327","host":"s3://npm-registry-packages-npm-production"}},"0.7.12":{"name":"@rhwp/editor","version":"0.7.12","keywords":["hwp","hwpx","hancom","hangul","한글","editor","viewer","wasm","webassembly"],"author":{"name":"Edward Kim"},"license":"MIT","_id":"@rhwp/editor@0.7.12","maintainers":[{"name":"tangokorea","email":"tangokorea@gmail.com"}],"homepage":"https://edwardkim.github.io/rhwp/","bugs":{"url":"https://github.com/edwardkim/rhwp/issues"},"dist":{"shasum":"7f3aa71d04f5071850ffc634cdf0789a730c5514","tarball":"https://registry.npmjs.org/@rhwp/editor/-/editor-0.7.12.tgz","fileCount":4,"integrity":"sha512-1T+RwXfSp74XGbVGfarDC6eWivxQu1z211dewbOEPlFu1nYBXIz11H3CgAiWZFBPmhY5pmURTpzIxguQKh6Zxw==","signatures":[{"sig":"MEUCIQCvSiKw7n/xS48UC5Uy8sgOH991upuS4WdRUdUQalGpPAIgO0n+K9crF5oHnc9WaNe7jEde3iUwvzQJf2iqhMon4LY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@rhwp%2feditor@0.7.12","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":19229},"main":"index.js","type":"module","types":"index.d.ts","gitHead":"1899ef9bc2dfd1c6c0c4d18b192d253a2d0a1fb5","_npmUser":{"name":"tangokorea","email":"tangokorea@gmail.com"},"repository":{"url":"git+https://github.com/edwardkim/rhwp.git","type":"git"},"_npmVersion":"10.8.2","description":"HWP 에디터 웹 컴포넌트 — iframe 기반 임베드","directories":{},"_nodeVersion":"20.20.2","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/editor_0.7.12_1779053687664_0.5263263583136399","host":"s3://npm-registry-packages-npm-production"}},"0.7.13":{"name":"@rhwp/editor","version":"0.7.13","keywords":["hwp","hwpx","hancom","hangul","한글","editor","viewer","wasm","webassembly"],"author":{"name":"Edward Kim"},"license":"MIT","_id":"@rhwp/editor@0.7.13","maintainers":[{"name":"tangokorea","email":"tangokorea@gmail.com"}],"homepage":"https://edwardkim.github.io/rhwp/","bugs":{"url":"https://github.com/edwardkim/rhwp/issues"},"dist":{"shasum":"ebf8d931728313febe0d4b03b333a1f0c0225516","tarball":"https://registry.npmjs.org/@rhwp/editor/-/editor-0.7.13.tgz","fileCount":4,"integrity":"sha512-2/mVs/WzBfrt2YKaHtPQrNNKlNFwn6+NO09BIF5nIv+RpD3jRXCJuXlsWh1tsqAJP3ex2Yh4wXFI8jpn1WmTSw==","signatures":[{"sig":"MEUCIHVukTQMVeDlNHJfc7tjb10kWn9RmU5X7dIspxS/gR5cAiEAzcMBQkbTaPdyhrnjKdFoylb7/wV8wR496tjHQHW6jLk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@rhwp%2feditor@0.7.13","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":19237},"main":"index.js","type":"module","types":"index.d.ts","gitHead":"bf2fcbb1d0a772bc5be8150fd3e869ef9a3d3fe6","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:5d73f80f-50ab-4b63-90a5-994622bd83a3"}},"repository":{"url":"git+https://github.com/edwardkim/rhwp.git","type":"git"},"_npmVersion":"11.12.1","description":"HWP 에디터 웹 컴포넌트 — iframe 기반 임베드","directories":{},"_nodeVersion":"24.15.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/editor_0.7.13_1779809220332_0.408287017060049","host":"s3://npm-registry-packages-npm-production"}},"0.7.14":{"name":"@rhwp/editor","version":"0.7.14","keywords":["hwp","hwpx","hancom","hangul","한글","editor","viewer","wasm","webassembly"],"author":{"name":"Edward Kim"},"license":"MIT","_id":"@rhwp/editor@0.7.14","maintainers":[{"name":"tangokorea","email":"tangokorea@gmail.com"}],"homepage":"https://edwardkim.github.io/rhwp/","bugs":{"url":"https://github.com/edwardkim/rhwp/issues"},"dist":{"shasum":"116b68097d1927883068c835004a7762850ab242","tarball":"https://registry.npmjs.org/@rhwp/editor/-/editor-0.7.14.tgz","fileCount":4,"integrity":"sha512-ulxxxpeZwx0GrtWqwHM9EHc2CJPAM8ZhYumfeu5aM9Lt6XetwBogC/5VbaOCxov5D+HyRFSsoMWu6/88lEDA5Q==","signatures":[{"sig":"MEUCIQDvjJNXzVdN61JgltvFwLc2ZLxI4JF9r5LDnQbUyZuvVwIgWKKpinJzCpxl13zeHr+xCrZuNl3S3HToYNPUtM94pn8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@rhwp%2feditor@0.7.14","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":19237},"main":"index.js","type":"module","types":"index.d.ts","gitHead":"fb885547538dc6572a12722dd2991b553e082e0e","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:5d73f80f-50ab-4b63-90a5-994622bd83a3"}},"repository":{"url":"git+https://github.com/edwardkim/rhwp.git","type":"git"},"_npmVersion":"11.13.0","description":"HWP 에디터 웹 컴포넌트 — iframe 기반 임베드","directories":{},"_nodeVersion":"24.16.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/editor_0.7.14_1780587982237_0.5940923558385776","host":"s3://npm-registry-packages-npm-production"}},"0.7.15":{"name":"@rhwp/editor","version":"0.7.15","keywords":["hwp","hwpx","hancom","hangul","한글","editor","viewer","wasm","webassembly"],"author":{"name":"Edward Kim"},"license":"MIT","_id":"@rhwp/editor@0.7.15","maintainers":[{"name":"tangokorea","email":"tangokorea@gmail.com"}],"homepage":"https://edwardkim.github.io/rhwp/","bugs":{"url":"https://github.com/edwardkim/rhwp/issues"},"dist":{"shasum":"825062febbf7045b7c70b35d7f6775a6ea925659","tarball":"https://registry.npmjs.org/@rhwp/editor/-/editor-0.7.15.tgz","fileCount":4,"integrity":"sha512-gKwdNeCyN+Vl12sMlB5sTVxJBF/oWOfwpAtxQNdIwtPRy7T1KDyEanTL8YbKZLEjJA7Sc7bIKCFqujCdCojH2A==","signatures":[{"sig":"MEQCIFedbNolFItAGrXpr2EnPUvEnQykz7PWtrtOnYin3ptXAiA47B365mJXFYUkW6AyFRkIsrg3iec5IB0SDhr+aWyqdA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@rhwp%2feditor@0.7.15","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":19237},"main":"index.js","type":"module","types":"index.d.ts","gitHead":"aa925a5954f0fd26dfcef2166cbce7877c481f44","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:5d73f80f-50ab-4b63-90a5-994622bd83a3"}},"repository":{"url":"git+https://github.com/edwardkim/rhwp.git","type":"git"},"_npmVersion":"11.13.0","description":"HWP 에디터 웹 컴포넌트 — iframe 기반 임베드","directories":{},"_nodeVersion":"24.16.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/editor_0.7.15_1780758199659_0.40595513798725014","host":"s3://npm-registry-packages-npm-production"}},"0.7.16":{"name":"@rhwp/editor","version":"0.7.16","keywords":["hwp","hwpx","hancom","hangul","한글","editor","viewer","wasm","webassembly"],"author":{"name":"Edward Kim"},"license":"MIT","_id":"@rhwp/editor@0.7.16","maintainers":[{"name":"tangokorea","email":"tangokorea@gmail.com"}],"homepage":"https://edwardkim.github.io/rhwp/","bugs":{"url":"https://github.com/edwardkim/rhwp/issues"},"dist":{"shasum":"f868c5735a1f1476f1b44dabd238f683537cab42","tarball":"https://registry.npmjs.org/@rhwp/editor/-/editor-0.7.16.tgz","fileCount":4,"integrity":"sha512-/IGmNwe7MVXcYnhcQQq7/IZLpk9x+p7PUC+EcAtFrvrlkknziAqEuG3v1sR/FPaBxnr0tz8/vuFqRsrA4aWX5Q==","signatures":[{"sig":"MEYCIQDxPnP6afrMA99cYYIVGI4Un54jvrt3OO04SyVpXJkhjgIhAPgmQ0FOQ6dZxTOPaIu9jDWFrrw/KiqGLRwnmD/g7XW9","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@rhwp%2feditor@0.7.16","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":19237},"main":"index.js","type":"module","types":"index.d.ts","gitHead":"de02159ab4d2c5d165d6e25568bad3f8af5ef6cb","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:5d73f80f-50ab-4b63-90a5-994622bd83a3"}},"repository":{"url":"git+https://github.com/edwardkim/rhwp.git","type":"git"},"_npmVersion":"11.13.0","description":"HWP 에디터 웹 컴포넌트 — iframe 기반 임베드","directories":{},"_nodeVersion":"24.16.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/editor_0.7.16_1781869779445_0.8111492307840853","host":"s3://npm-registry-packages-npm-production"}},"0.7.17":{"name":"@rhwp/editor","version":"0.7.17","keywords":["hwp","hwpx","hancom","hangul","한글","editor","viewer","wasm","webassembly"],"author":{"name":"Edward Kim"},"license":"MIT","_id":"@rhwp/editor@0.7.17","maintainers":[{"name":"tangokorea","email":"tangokorea@gmail.com"}],"homepage":"https://edwardkim.github.io/rhwp/","bugs":{"url":"https://github.com/edwardkim/rhwp/issues"},"dist":{"shasum":"4e3f311b6f13e9d5ad11b4cfec4bd73b2700016d","tarball":"https://registry.npmjs.org/@rhwp/editor/-/editor-0.7.17.tgz","fileCount":4,"integrity":"sha512-OUvqzymXlZ6hSLvZIqVSQV097cG7zZAJt0BTGnrDArYRwJrkzhj4tUEDn6HyYgArnnE/5spWpDfLnb7lPQ1bMw==","signatures":[{"sig":"MEYCIQDIla+PaudrRuEtTffujRtW2mwjriRY+5Q74UUb8FRCiwIhAInvZ5QMKiI2+wZhvVJV6NwERQkGMBJxZaXHBtyLqE+p","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@rhwp%2feditor@0.7.17","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":19237},"main":"index.js","type":"module","types":"index.d.ts","gitHead":"03351190ec35436e58cbfee0aa9278a8fdc04a59","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:5d73f80f-50ab-4b63-90a5-994622bd83a3"}},"repository":{"url":"git+https://github.com/edwardkim/rhwp.git","type":"git"},"_npmVersion":"11.13.0","description":"HWP 에디터 웹 컴포넌트 — iframe 기반 임베드","directories":{},"_nodeVersion":"24.16.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/editor_0.7.17_1782152482344_0.999200690434739","host":"s3://npm-registry-packages-npm-production"}},"0.7.18":{"name":"@rhwp/editor","version":"0.7.18","keywords":["hwp","hwpx","hancom","hangul","한글","editor","viewer","wasm","webassembly"],"author":{"name":"Edward Kim"},"license":"MIT","_id":"@rhwp/editor@0.7.18","maintainers":[{"name":"tangokorea","email":"tangokorea@gmail.com"}],"homepage":"https://edwardkim.github.io/rhwp/","bugs":{"url":"https://github.com/edwardkim/rhwp/issues"},"dist":{"shasum":"7cc09152581147263f07f410d8d19d4909604493","tarball":"https://registry.npmjs.org/@rhwp/editor/-/editor-0.7.18.tgz","fileCount":4,"integrity":"sha512-+EZNyFbJUYuKXVbRiuLJXVhafoyfJyBYDGGTe4IvuEsyIlr+DfpECfn2iilhJ4yOLkfos7EI2A44irkjffiL6w==","signatures":[{"sig":"MEYCIQDRPsJ13Bhj3eJDV4dhH6LY5RBArsoVOQKRuzTtMf04zgIhAMJAIFEylZFUG4Idqd/HCVn3Pw77/TmaQVvGrmIidJGh","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@rhwp%2feditor@0.7.18","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":19237},"main":"index.js","type":"module","types":"index.d.ts","gitHead":"93862a4e16df59834ebce46d91e948cd739208e9","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:5d73f80f-50ab-4b63-90a5-994622bd83a3"}},"repository":{"url":"git+https://github.com/edwardkim/rhwp.git","type":"git"},"_npmVersion":"11.16.0","description":"HWP 에디터 웹 컴포넌트 — iframe 기반 임베드","directories":{},"_nodeVersion":"24.18.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/editor_0.7.18_1783702740535_0.3046570010294798","host":"s3://npm-registry-packages-npm-production"}},"0.7.19":{"name":"@rhwp/editor","version":"0.7.19","keywords":["hwp","hwpx","hancom","hangul","한글","editor","viewer","wasm","webassembly"],"author":{"name":"Edward Kim"},"license":"MIT","_id":"@rhwp/editor@0.7.19","maintainers":[{"name":"tangokorea","email":"tangokorea@gmail.com"}],"homepage":"https://edwardkim.github.io/rhwp/","bugs":{"url":"https://github.com/edwardkim/rhwp/issues"},"dist":{"shasum":"139d7a7edfe448de8ecf3eea562a88f509772ad0","tarball":"https://registry.npmjs.org/@rhwp/editor/-/editor-0.7.19.tgz","fileCount":5,"integrity":"sha512-/b3nPHwt26pdxpbHVaaW7ob/RefrOF+ltOj8T6OLjaCLxP2hCNhMc+gt9jQ/Uj1V9Ck+P/h/oIUrhOXTRSFG8A==","signatures":[{"sig":"MEYCIQCbi+hvV+Ccx/+IhsBHDqhIT/RgQZTyxUykmoklq2cpdwIhAMypYMldTD/15ZeaHuc1Sgp6I6RcY1c791n16ENWTfOx","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@rhwp%2feditor@0.7.19","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":32558},"main":"index.js","type":"module","types":"index.d.ts","gitHead":"f137b4c9468eaff5bb43e25108e9c9d39a2ed15b","scripts":{"test":"node --test tests/*.test.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:5d73f80f-50ab-4b63-90a5-994622bd83a3"}},"repository":{"url":"git+https://github.com/edwardkim/rhwp.git","type":"git"},"_npmVersion":"11.16.0","description":"HWP 에디터 웹 컴포넌트 — iframe 기반 임베드","directories":{},"_nodeVersion":"24.18.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/editor_0.7.19_1784283910595_0.4163729693979641","host":"s3://npm-registry-packages-npm-production"}},"0.8.0":{"name":"@rhwp/editor","version":"0.8.0","keywords":["hwp","hwpx","hancom","hangul","한글","editor","viewer","wasm","webassembly"],"author":{"name":"Edward Kim"},"license":"MIT","_id":"@rhwp/editor@0.8.0","maintainers":[{"name":"tangokorea","email":"tangokorea@gmail.com"}],"homepage":"https://edwardkim.github.io/rhwp/","bugs":{"url":"https://github.com/edwardkim/rhwp/issues"},"dist":{"shasum":"3befcadb096660f092d9d91aa103d334948a9ebf","tarball":"https://registry.npmjs.org/@rhwp/editor/-/editor-0.8.0.tgz","fileCount":5,"integrity":"sha512-PXSRMNClE+mLNXArkM9ODWV0nBCeF8l4bf0WFcpZ3l1hIu+fVAP4HRXtBIVN1jdLPvaE2ZACUuU5kc4H7VbL4w==","signatures":[{"sig":"MEYCIQDYku1BASPDwCAkpw/w/VHijiqdejmNDylWXvGSDuh39wIhAOI3ssVRASXRYcdKVfbSSMAw0SNn3LWPUx5y5ydvpYKZ","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@rhwp%2feditor@0.8.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":43980},"main":"index.js","type":"module","types":"index.d.ts","engines":{"node":">=18.0.0"},"funding":"https://github.com/sponsors/edwardkim","gitHead":"60911e822b0d0bd4c86e7e98d31e1b13f195c99c","scripts":{"test":"node --test tests/*.test.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:5d73f80f-50ab-4b63-90a5-994622bd83a3"}},"repository":{"url":"git+https://github.com/edwardkim/rhwp.git","type":"git"},"_npmVersion":"11.16.0","description":"HWP 에디터 웹 컴포넌트 — iframe 기반 임베드","directories":{},"_nodeVersion":"24.18.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/editor_0.8.0_1785018885378_0.07300601009231977","host":"s3://npm-registry-packages-npm-production"}},"0.8.1":{"name":"@rhwp/editor","version":"0.8.1","keywords":["hwp","hwpx","hancom","hangul","한글","editor","viewer","wasm","webassembly"],"author":{"name":"Edward Kim"},"license":"MIT","_id":"@rhwp/editor@0.8.1","maintainers":[{"name":"tangokorea","email":"tangokorea@gmail.com"}],"homepage":"https://edwardkim.github.io/rhwp/","bugs":{"url":"https://github.com/edwardkim/rhwp/issues"},"dist":{"shasum":"0b69cbc35a663ff5f905aee37c67728f7ed10d7d","tarball":"https://registry.npmjs.org/@rhwp/editor/-/editor-0.8.1.tgz","fileCount":5,"integrity":"sha512-pXownOyVPipXbVhykl0+gzmWkmW7treE8/79XEVxk0Ni1jkSqF62l7TEaVcbeycz6+BVC1UNKp3o1nhL3x0F/g==","signatures":[{"sig":"MEYCIQDZKNCOXuc/q1YtCS5QzhN+D9vhgft/qlYV4xW88Qx4SQIhAPNedEpGdQhAMAdDqHFyhb4+ACbiGUmBerSecoxjNpmm","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@rhwp%2feditor@0.8.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":43980},"main":"index.js","type":"module","types":"index.d.ts","engines":{"node":">=18.0.0"},"funding":"https://github.com/sponsors/edwardkim","gitHead":"1dbf024fdc22d044c4abedb5bd801a741ce05e8a","scripts":{"test":"node --test tests/*.test.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:5d73f80f-50ab-4b63-90a5-994622bd83a3"}},"repository":{"url":"git+https://github.com/edwardkim/rhwp.git","type":"git"},"_npmVersion":"11.16.0","description":"HWP 에디터 웹 컴포넌트 — iframe 기반 임베드","directories":{},"_nodeVersion":"24.18.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/editor_0.8.1_1785071098136_0.6987277372604928","host":"s3://npm-registry-packages-npm-production"}},"0.8.2":{"name":"@rhwp/editor","version":"0.8.2","keywords":["hwp","hwpx","hancom","hangul","한글","editor","viewer","wasm","webassembly"],"author":{"name":"Edward Kim"},"license":"MIT","_id":"@rhwp/editor@0.8.2","maintainers":[{"name":"tangokorea","email":"tangokorea@gmail.com"}],"homepage":"https://edwardkim.github.io/rhwp/","bugs":{"url":"https://github.com/edwardkim/rhwp/issues"},"dist":{"shasum":"e3999e800352f1213a7eea07a5628029bfedc518","tarball":"https://registry.npmjs.org/@rhwp/editor/-/editor-0.8.2.tgz","fileCount":5,"integrity":"sha512-2EM4VHi+8zTUW3G8SNH8y1qBwqhzFQgNjCuI3jFlcxhVK46bA3eF1XuMIKF3a8VP6KS4QyQwMKdEcNJrGDStHQ==","signatures":[{"sig":"MEQCIA+SR2AfUfTzcVIynl0H1qpQ0MM//IxymDyDawOpxl4KAiBv4kz+8M1ZA/oblb+T77nyJ/79Jj8qz4SEavfXDUTKlQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@rhwp%2feditor@0.8.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":43980},"main":"index.js","type":"module","types":"index.d.ts","engines":{"node":">=18.0.0"},"funding":"https://github.com/sponsors/edwardkim","gitHead":"9b16aa9e23f476e2b335d7c029fc9f24a199d63c","scripts":{"test":"node --test tests/*.test.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:5d73f80f-50ab-4b63-90a5-994622bd83a3"}},"repository":{"url":"git+https://github.com/edwardkim/rhwp.git","type":"git"},"_npmVersion":"11.16.0","description":"HWP 에디터 웹 컴포넌트 — iframe 기반 임베드","directories":{},"_nodeVersion":"24.18.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/editor_0.8.2_1785081752761_0.4581254022753405","host":"s3://npm-registry-packages-npm-production"}},"0.8.3":{"name":"@rhwp/editor","version":"0.8.3","keywords":["hwp","hwpx","hancom","hangul","한글","editor","viewer","wasm","webassembly"],"author":{"name":"Edward Kim"},"license":"MIT","_id":"@rhwp/editor@0.8.3","maintainers":[{"name":"tangokorea","email":"tangokorea@gmail.com"}],"homepage":"https://edwardkim.github.io/rhwp/","bugs":{"url":"https://github.com/edwardkim/rhwp/issues"},"dist":{"shasum":"b4c94961c0ec52dab2c13a367dc81f4aa1a4b7b1","tarball":"https://registry.npmjs.org/@rhwp/editor/-/editor-0.8.3.tgz","fileCount":5,"integrity":"sha512-s2KfM8pz8aR1zdD8Rqgybwhb9jsy4MdypClewtPP5Zv2YYAXAjJyy8HgrkTx2O04qi7ghYkalPw00alxjuZgBg==","signatures":[{"sig":"MEUCIB6wjV1FXm4bug+IjTu7sEN+YX9cBFOYsVWuqBpsgBVwAiEAwbD2QMgJV/wJmgYkWoK24R8h+0xmDPFqDMkbzfdevVw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@rhwp%2feditor@0.8.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":44579},"main":"index.js","type":"module","types":"index.d.ts","engines":{"node":">=18.0.0"},"funding":"https://github.com/sponsors/edwardkim","gitHead":"45af1773b4b0831c8ca1174418e115b442e3d114","scripts":{"test":"node --test tests/*.test.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:5d73f80f-50ab-4b63-90a5-994622bd83a3"}},"repository":{"url":"git+https://github.com/edwardkim/rhwp.git","type":"git"},"_npmVersion":"11.17.0","description":"HWP 에디터 웹 컴포넌트 — iframe 기반 임베드","directories":{},"_nodeVersion":"24.19.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/editor_0.8.3_1786481007400_0.09540236588412876","host":"s3://npm-registry-packages-npm-production"}},"0.8.4":{"name":"@rhwp/editor","version":"0.8.4","keywords":["hwp","hwpx","hancom","hangul","한글","editor","viewer","wasm","webassembly"],"author":{"name":"Edward Kim"},"license":"MIT","_id":"@rhwp/editor@0.8.4","maintainers":[{"name":"tangokorea","email":"tangokorea@gmail.com"}],"homepage":"https://edwardkim.github.io/rhwp/","bugs":{"url":"https://github.com/edwardkim/rhwp/issues"},"dist":{"shasum":"b7835ac42606a6a233e499923be779eb63afbf59","tarball":"https://registry.npmjs.org/@rhwp/editor/-/editor-0.8.4.tgz","fileCount":5,"integrity":"sha512-ZBl7b9UWbfvDfJ7roH0w1G0s8WRarBsl5BQmAoZTzD/8i7sQ5h8VILbVkOvbQm4CLw0fwDrabcbD6pv5GHbAuw==","signatures":[{"sig":"MEUCIF73WIVfy8QBdK4HgS/zS+IxcMn29t/oM5cb3iQqrRA7AiEA0hFS+putxCD8DIZUYIVGfx6t0m2/OP4v9RPZiVRL1m8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@rhwp%2feditor@0.8.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":44579},"main":"index.js","type":"module","types":"index.d.ts","engines":{"node":">=18.0.0"},"funding":"https://github.com/sponsors/edwardkim","gitHead":"496333b27d21ddb9114ba9ae340bcb895870c9a7","scripts":{"test":"node --test tests/*.test.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:5d73f80f-50ab-4b63-90a5-994622bd83a3"}},"repository":{"url":"git+https://github.com/edwardkim/rhwp.git","type":"git"},"_npmVersion":"11.16.0","description":"HWP 에디터 웹 컴포넌트 — iframe 기반 임베드","directories":{},"_nodeVersion":"24.18.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/editor_0.8.4_1786501381517_0.18224638891331724","host":"s3://npm-registry-packages-npm-production"}},"0.8.6":{"name":"@rhwp/editor","version":"0.8.6","description":"HWP 에디터 웹 컴포넌트 — iframe 기반 임베드","type":"module","main":"index.js","types":"index.d.ts","scripts":{"test":"node --test tests/*.test.mjs"},"keywords":["hwp","hwpx","hancom","hangul","한글","editor","viewer","wasm","webassembly"],"repository":{"type":"git","url":"git+https://github.com/edwardkim/rhwp.git"},"homepage":"https://edwardkim.github.io/rhwp/","bugs":{"url":"https://github.com/edwardkim/rhwp/issues"},"funding":"https://github.com/sponsors/edwardkim","license":"MIT","author":{"name":"Edward Kim"},"engines":{"node":">=18.0.0"},"gitHead":"e8800c8def63449808a4092798442652ed460552","_id":"@rhwp/editor@0.8.6","_nodeVersion":"24.19.0","_npmVersion":"11.17.0","dist":{"integrity":"sha512-Hc/rHrQrgZqJ2OSWNsPd/8tKyfnLer8M9r+U81yphJ7O8LaXLuv5A2yUub2fhFnfaYyfl76LfOIMsfcD0/dXgA==","shasum":"ccf5e9b40dac35acb7270da219d9aa902a55e84b","tarball":"https://registry.npmjs.org/@rhwp/editor/-/editor-0.8.6.tgz","fileCount":6,"unpackedSize":80030,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@rhwp%2feditor@0.8.6","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQC4gyObNA2AqnFETgqcvZwwbDHsbl3sCCWLhUHykP8OEwIgMHNVE5bMNQk3QFdobNUGosxLrtLez4UxXB9WpLhdTHU="}]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:5d73f80f-50ab-4b63-90a5-994622bd83a3"}},"directories":{},"maintainers":[{"name":"tangokorea","email":"tangokorea@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/editor_0.8.6_1788348269739_0.20429183755911962"},"_hasShrinkwrap":false}},"time":{"created":"2026-04-04T09:31:27.936Z","modified":"2026-09-02T11:24:30.307Z","0.6.0":"2026-04-04T09:31:28.180Z","0.6.1":"2026-04-07T11:29:52.843Z","0.6.2":"2026-04-07T11:31:54.747Z","0.6.3":"2026-04-07T11:32:33.662Z","0.7.0":"2026-04-11T12:19:05.298Z","0.7.2":"2026-04-13T13:37:36.107Z","0.7.3":"2026-04-19T12:40:57.419Z","0.7.6":"2026-04-26T09:38:05.000Z","0.7.7":"2026-04-27T04:24:02.738Z","0.7.8":"2026-04-29T03:13:06.771Z","0.7.9":"2026-04-30T23:47:34.017Z","0.7.10":"2026-05-05T17:36:44.947Z","0.7.11":"2026-05-10T19:52:59.557Z","0.7.12":"2026-05-17T21:34:47.831Z","0.7.13":"2026-05-26T15:27:00.463Z","0.7.14":"2026-06-04T15:46:22.375Z","0.7.15":"2026-06-06T15:03:19.786Z","0.7.16":"2026-06-19T11:49:39.590Z","0.7.17":"2026-06-22T18:21:22.466Z","0.7.18":"2026-07-10T16:59:00.657Z","0.7.19":"2026-07-17T10:25:10.721Z","0.8.0":"2026-07-25T22:34:45.517Z","0.8.1":"2026-07-26T13:04:58.299Z","0.8.2":"2026-07-26T16:02:32.918Z","0.8.3":"2026-08-11T20:43:27.648Z","0.8.4":"2026-08-12T02:23:01.679Z","0.8.6":"2026-09-02T11:24:29.880Z"},"bugs":{"url":"https://github.com/edwardkim/rhwp/issues"},"author":{"name":"Edward Kim"},"license":"MIT","homepage":"https://edwardkim.github.io/rhwp/","keywords":["hwp","hwpx","hancom","hangul","한글","editor","viewer","wasm","webassembly"],"repository":{"type":"git","url":"git+https://github.com/edwardkim/rhwp.git"},"description":"HWP 에디터 웹 컴포넌트 — iframe 기반 임베드","maintainers":[{"name":"tangokorea","email":"tangokorea@gmail.com"}],"readme":"# @rhwp/editor\n\n**알(R), 모두의 한글** — 3줄로 HWP 에디터를 웹 페이지에 임베드\n\n[![npm](https://img.shields.io/npm/v/@rhwp/editor)](https://www.npmjs.com/package/@rhwp/editor)\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)\n\n웹 페이지에 HWP 에디터를 통째로 임베드합니다.\n메뉴, 툴바, 서식, 표 편집 — rhwp-studio의 모든 기능을 그대로 사용할 수 있습니다.\n\nSDK는 지원되는 Studio와 `MessageChannel` v1을 협상해 binary를 transferable로 전송합니다.\n구버전 Studio에는 기존 `postMessage` protocol로 자동 전환되며 기존 공개 API는 유지됩니다.\n`getRendererDiagnostics()`는 `renderer-diagnostics-v1` capability를 협상한 Studio에서만 사용할 수 있습니다.\n`getFontDecisionTrace()`는 `font-decision-trace-v1` capability를 협상한 Studio에서만 사용할 수 있으며,\n현재 snapshot을 읽을 뿐 font load, 권한 요청, repaint 또는 backend 변경을 시작하지 않습니다.\n호스트와 `studioUrl`은 HTTP(S) origin만 지원합니다. `file:`, `data:`, 브라우저 확장처럼\norigin이 `null`이거나 불투명한 환경의 연결은 SDK와 Studio 양쪽에서 거부합니다.\n\n> **[온라인 데모](https://edwardkim.github.io/rhwp/)** 에서 먼저 체험해보세요.\n\n## 설치\n\n```bash\nnpm install @rhwp/editor\n```\n\n## 빠른 시작 — 3줄이면 충분합니다\n\n```html\n<!DOCTYPE html>\n<html>\n<head>\n  <title>내 HWP 에디터</title>\n  <style>\n    #editor { width: 100%; height: 100vh; }\n  </style>\n</head>\n<body>\n  <div id=\"editor\"></div>\n  <script type=\"module\">\n    import { createEditor } from '@rhwp/editor';\n\n    const editor = await createEditor('#editor');\n  </script>\n</body>\n</html>\n```\n\n이것만으로 메뉴바, 툴바, 편집 영역, 상태 표시줄이 포함된 완전한 HWP 에디터가 표시됩니다.\n\n## 웹페이지에서 JavaScript 로 제어하기 — `createStudio`\n\n`createEditor` 의 상위 집합입니다. 같은 것을 만들고, **studio 의 메뉴·커맨드를 조종하고\n문서를 HwpCtrl API 로 편집**할 수 있습니다.\n\n```javascript\nimport { createStudio } from '@rhwp/editor';\n\nconst studio = await createStudio('#app', {\n  plugins: ['hwpctrl'],            // HwpCtrl API 사용\n  chrome: { statusbar: false },    // 메뉴·툴바·상태표시줄 표시\n});\n\nawait studio.loadFile(buffer, 'doc.hwp');\n\n// studio 커맨드 — 메뉴·툴바·키보드와 같은 경로를 탑니다\nawait studio.commands.execute('edit:copy');\nconst commands = await studio.commands.list();   // {id, label, enabled, opensDialog}\n\n// 문서 편집 — 여러 호출을 한 메시지·한 트랜잭션으로\nawait studio.hwpctrl.batch(h => {\n  h.PutFieldText('기안자', '홍길동');\n  h.PutFieldText('기안일', '2026-08-12');\n});\nconst bytes = await studio.hwpctrl.exportBytes();\n\nawait studio.hwpctrl.undo();       // 위 배치 전체가 undo 1스텝\nstudio.destroy();\n```\n\n**알아 둘 것 셋.**\n\n- **배치를 쓰세요.** 실측상 100회 호출이 배치면 postMessage 1회·11ms, 개별이면 100회·583ms 입니다\n  (약 45배). 배치 하나가 트랜잭션 하나이고 undo 도 1스텝입니다.\n- **대화상자를 여는 커맨드는 기본 거절됩니다**(`{ok:false, reason:'needs-dialog'}`). 자동화가 그것을\n  열면 사람이 누를 때까지 응답이 멈춥니다. 사용자가 앞에 있는 통합에서는\n  `studio.commands.execute(id, params, { allowDialog: true })` 로 풉니다.\n- **컨테이너 이동은 지원하지 않습니다.** iframe 을 다른 요소로 옮기면 브라우저가 문서를 재로드해\n  편집 상태가 사라집니다. 화면상의 이동·숨김은 컨테이너 CSS 로 하고(`display:none` 은 상태를\n  보존합니다), 정말 옮겨야 하면 `destroy()` 후 다시 만듭니다.\n\n`chrome:{ menu:false }` 로 메뉴를 숨겨도 커맨드 레지스트리는 살아 있어 `commands.execute` 가 계속\n동작합니다 — \"UI 없는 편집기\" 구성이 이것으로 섭니다.\n\n### 검증\n\n브리지 전 계약(자동화·플러그인·hwpctrl·성능)을 한 번에 확인하려면 저장소에서:\n\n```bash\ncd rhwp-studio && npm run gate:bridge\n```\n\n## HWP 파일 로드\n\n```javascript\nimport { createEditor } from '@rhwp/editor';\n\nconst editor = await createEditor('#editor');\n\n// 파일 선택 또는 fetch로 HWP 데이터 가져오기\nconst response = await fetch('document.hwp');\nconst buffer = await response.arrayBuffer();\n\n// 에디터에 로드\nconst result = await editor.loadFile(buffer, 'document.hwp');\nconsole.log(`${result.pageCount}페이지 로드 완료`);\n```\n\n## API\n\n### createEditor(container, options?)\n\n에디터를 생성하고 컨테이너에 마운트합니다.\n\n```javascript\nconst editor = await createEditor('#editor');\n// 또는\nconst editor = await createEditor(document.getElementById('editor'));\n```\n\n**옵션:**\n\n| 옵션 | 기본값 | 설명 |\n|------|--------|------|\n| `studioUrl` | `https://edwardkim.github.io/rhwp/` | rhwp-studio HTTP(S) URL. opaque origin은 지원하지 않음 |\n| `width` | `'100%'` | iframe 너비 |\n| `height` | `'100%'` | iframe 높이 |\n| `renderer` | `'canvas2d'` | 문서 단위 renderer 요청. `auto`, `canvas2d`, `canvaskit` 중 하나 |\n| `requestTimeoutMs` | method별 기본값 | 모든 method 제한 시간 override(ms). 일반 10초, load/export 60초 |\n| `handshakeTimeoutMs` | `1000` | v1 협상 후 legacy 전환까지의 제한 시간(ms) |\n\n### editor.loadFile(data, fileName?, options?)\n\nHWP 파일을 로드합니다.\n\n```javascript\nconst result = await editor.loadFile(buffer, 'sample.hwp');\n// result = { pageCount: 5 }\n\n// 안내창에서 사용자가 직접 선택하도록 열기\nawait editor.loadFile(buffer, 'sample.hwpx', { suppressDialogs: false });\n```\n\n**options:**\n\n| 옵션 | 기본값 | 설명 |\n|------|--------|------|\n| `skipUnsavedGuard` | `false` | 미저장 변경 확인 없이 문서 교체 |\n| `suppressDialogs` | `true` | 로드 후 안내창(HWPX 검증, 로컬 글꼴 감지) 없이 열기 |\n\n> `suppressDialogs`를 생략하면 검증 경고는 '그대로 열기'로 처리하고 글꼴은 웹 대체 글꼴로\n> 표시하여 `loadFile` 응답을 즉시 반환합니다. 안내창(HWPX 비표준 lineseg 검증, 로컬 글꼴\n> 감지)에서 사용자가 직접 선택해야 하는 대화형 흐름이 필요하면 `suppressDialogs: false`를\n> 명시하세요.\n\n### editor.pageCount()\n\n현재 문서의 페이지 수를 반환합니다.\n\n```javascript\nconst count = await editor.pageCount();\n```\n\n### 문서 에이전트 exact command\n\n서버가 만든 HWP/HWPX 문단 교체 후보는 현재 문서의 epoch, change sequence, 전체 문서 SHA,\ntarget 원문·서식·인접 문맥 SHA를 모두 결속한 뒤 한 snapshot transaction으로 적용할 수 있습니다.\n\n```javascript\nconst state = await editor.getDocumentState();\nconst selection = await editor.getSelectionContext();\nif (!selection.editable || !selection.target) throw new Error('편집할 수 없는 target');\n\nconst receipt = await editor.applyTextCommand({\n  schemaVersion: 1,\n  commandId: crypto.randomUUID(),\n  expectedDocumentEpoch: state.documentEpoch,\n  expectedChangeSeq: state.changeSeq,\n  expectedDocumentSha256: state.documentSha256,\n  target: selection.target,\n  expectedBeforeSha256: candidate.beforeSha256,\n  expectedFormatSha256: candidate.formatSha256,\n  expectedAdjacentContextSha256: candidate.adjacentContextSha256,\n  replacement: candidate.replacement,\n});\n\nawait editor.focusTarget(receipt.target);\nconst off = editor.onDocumentChanged(event => console.log(event.reason, event.changeSeq));\n\nawait editor.revertTextCommand({\n  schemaVersion: 1,\n  commandId: receipt.commandId,\n  expectedDocumentEpoch: receipt.documentEpoch,\n  expectedChangeSeq: receipt.afterChangeSeq,\n  expectedAfterDocumentSha256: receipt.afterDocumentSha256,\n  expectedAfterSha256: receipt.afterTextSha256,\n});\noff();\n```\n\nv1 target은 control·field·혼합 글자 서식이 없는 본문 문단 전체(최대 4,000 Unicode code point)로\n제한됩니다. apply 뒤 다른 편집이 있으면 agent revert는 실패합니다. `TRANSACTION_FAILED`와\n`RENDER_FAILED`에는 snapshot 복구 여부인 `error.recovered`가 포함됩니다. SHA 정규형과 오류 계약은\n[`document_agent_command.md`](https://github.com/edwardkim/rhwp/blob/devel/mydocs/tech/wasm_agent_surface/document_agent_command.md)를\n참조하세요.\n\n### editor.getPageSvg(page?)\n\n특정 페이지를 SVG 문자열로 렌더링합니다.\n\n```javascript\nconst svg = await editor.getPageSvg(0); // 첫 페이지\n```\n\n### editor.getRendererDiagnostics(page?)\n\n선택된 renderer와 0부터 시작하는 페이지별 readiness 진단을 반환합니다.\nStudio가 `renderer-diagnostics-v1` capability를 제공하지 않으면 명시적으로 실패합니다.\n`auto`에서는 문서 capability preflight, 실제 선택 이유, fallback 이유, 문서 revision과\nresource generation을 `selection`에서 확인할 수 있습니다. 현재 Studio는 `selection`을\n반환하지만, 같은 v1 capability를 제공하는 이전 Studio와의 additive 호환을 위해 이 필드는\n없을 수도 있습니다. `selectionError`는 preflight/리소스/replay 실패를, top-level\n`initializationError`는 Studio 앱 초기화 실패를 나타냅니다. preflight의\n`requiredFontFamilies`는 자동 선택에서 첫 replay 전에 준비해야 하는 문서 폰트 목록입니다.\n기존 v1 소비자 호환을 위해 top-level `request.backend.backend`는 계속 `canvas2d` 또는\n`canvaskit`만 반환하며, `auto` 요청과 실제 선택 과정은 additive `selection`에서 확인합니다.\n\n```javascript\nconst diagnostics = await editor.getRendererDiagnostics(0);\nconsole.log(diagnostics.schemaVersion, diagnostics.effectiveBackend);\n```\n\n### editor.getFontDecisionTrace(page?, options?)\n\n문자가 document face에서 layout metric과 backend paint 후보까지 도달한 계보를 반환합니다.\n`page`는 0부터 시작하고 `maxCharacters`는 1..4096만 허용합니다. 기본값은 1024이며, 상한에 도달하면\n조용히 자르지 않고 `status: 'truncated'`, `recordsOmitted`와 reason을 반환합니다. Studio가\n`font-decision-trace-v1` capability를 제공하지 않거나 입력이 범위를 벗어나면 명시적으로 실패합니다.\n\n```javascript\nconst trace = await editor.getFontDecisionTrace(0, { maxCharacters: 256 });\nconsole.log(trace.schemaVersion, trace.status, trace.layoutHash.value);\nfor (const record of trace.records) {\n  console.log(\n    record.source.character,\n    record.document.face,\n    record.layoutMetric.widthSource,\n    record.paint.canvas2d.certainty,\n    record.paint.canvaskit.certainty,\n  );\n}\n```\n\n`layoutHash`는 backend 환경과 무관한 portable layout 계보를, `normalizedHash`는 현재 backend capability\nsnapshot까지 포함한 결과를 고정합니다. Canvas2D가 실제 glyph face를 공개하지 않으면 CSS chain만\n기록하고 `certainty: 'notObserved'`로 남깁니다. trace는 font 선택 authority나 fallback 교정 API가\n아닙니다.\n\n### editor.exportHwp()\n\n현재 편집 중인 문서를 HWP 바이너리로 내보냅니다.\n\n```javascript\nconst bytes = await editor.exportHwp();\nconst blob = new Blob([bytes], { type: 'application/x-hwp' });\n\nconst url = URL.createObjectURL(blob);\nconst a = document.createElement('a');\na.href = url;\na.download = 'document.hwp';\na.click();\nURL.revokeObjectURL(url);\n```\n\n### editor.exportHwpx()\n\n현재 편집 중인 문서를 HWPX(ZIP+XML) 바이너리로 내보냅니다.\n\n```javascript\nconst bytes = await editor.exportHwpx();\nconst blob = new Blob([bytes], { type: 'application/vnd.hancom.hwpx' });\n\nconst url = URL.createObjectURL(blob);\nconst a = document.createElement('a');\na.href = url;\na.download = 'document.hwpx';\na.click();\nURL.revokeObjectURL(url);\n```\n\n### editor.exportHwpVerify()\n\nHWP 직렬화 + 자기 재로드 검증 메타데이터를 반환합니다 (#178).\n검증 메타데이터만 반환하며, 실제 HWP bytes 가 필요하면 `exportHwp()` 를 별도 호출하세요.\n\n```javascript\nconst verify = await editor.exportHwpVerify();\n// {\n//   bytesLen: 678912,\n//   pageCountBefore: 9,\n//   pageCountAfter: 9,\n//   recovered: true\n// }\nif (!verify.recovered || verify.pageCountBefore !== verify.pageCountAfter) {\n  console.warn('HWP 직렬화 검증 실패', verify);\n}\n```\n\n### editor.exportHml()\n\n현재 편집 중인 문서를 HML(XML) 바이너리로 내보냅니다.\n\n```javascript\nconst bytes = await editor.exportHml();\nconst blob = new Blob([bytes], { type: 'application/xml' });\n\nconst url = URL.createObjectURL(blob);\nconst a = document.createElement('a');\na.href = url;\na.download = 'document.hml';\na.click();\nURL.revokeObjectURL(url);\n```\n\n### editor.getHmlSaveState()\n\n현재 문서의 HML 저장 가능 여부와 blocker 목록을 반환합니다.\n저장 가능 여부는 `hmlSavable`로 판정하고, 실패 원인은 `blockers` 배열로 표시하세요.\n`exportHml()`의 오류 문자열을 파싱하지 마세요.\n\n```javascript\nconst state = await editor.getHmlSaveState();\n// {\n//   sourceFormat: 'hwp',\n//   hmlSavable: false,\n//   blockers: [\n//     {\n//       code: 'HML_SOURCE_REQUIRED',\n//       xmlPath: '/HWPML',\n//       message: 'HML source metadata is required',\n//       preserved: false\n//     }\n//   ]\n// }\n\nif (state.hmlSavable) {\n  const bytes = await editor.exportHml();\n  // ... 저장 진행\n} else {\n  for (const item of state.blockers) {\n    console.warn(`HML 저장 불가 [${item.code}] ${item.xmlPath} — ${item.message}`);\n  }\n}\n```\n\n**반환값:**\n\n| 필드 | 타입 | 설명 |\n|------|------|------|\n| `sourceFormat` | `string` | 현재 문서의 원본 형식 — `'hwp'`, `'hwpx'`, `'hml'` |\n| `hmlSavable` | `boolean` | HML로 저장 가능하면 `true` |\n| `blockers` | `HmlSaveBlocker[]` | 저장을 막는 요소 목록. `hmlSavable`이 `true`이면 빈 배열 |\n\n**`HmlSaveBlocker`:**\n\n| 필드 | 타입 | 설명 |\n|------|------|------|\n| `code` | `string` | blocker 종류 코드 |\n| `xmlPath` | `string` | 해당 요소의 XML 경로 |\n| `message` | `string` | 사람이 읽을 수 있는 사유 |\n| `preserved` | `false` | 항상 `false` — 해당 요소가 HML로 보존되지 않음을 뜻함 |\n### editor.notifySaved(fileName?)\n\n내보내기 바이트의 영속화(서버 업로드 또는 호스트 핸드오프) 완료를 스튜디오에\n통지합니다 (#2660). 통지 시 스튜디오는 미저장(dirty) 상태를 해제하고 자동복구\ndraft(IndexedDB)를 삭제합니다. **draft 삭제가 완료된 뒤 resolve**되므로, resolve\n이후 창을 닫아도 안전합니다.\n\n```javascript\nconst bytes = await editor.exportHwp();\nawait uploadToServer(bytes);        // 호스트 저장\nawait editor.notifySaved();         // 저장 완료 통지 — dirty 해제 + 복구 draft 삭제\n```\n\n- `fileName` (선택): 호스트가 저장에 사용한 파일 이름. 전달하면 스튜디오의 현재\n  파일 이름이 갱신됩니다.\n- 반환: `{ ok: true, wasDirty: boolean }` — `wasDirty`는 통지 시점에 미저장\n  변경이 있었는지 여부(멱등 호출 관찰용).\n- 스튜디오가 `notify-saved-v1` capability를 광고하지 않으면(구버전 스튜디오 또는\n  legacy 폴백 연결) 요청을 보내지 않고 예외를 던집니다.\n\n### editor.destroy()\n\n에디터를 제거합니다.\n\n```javascript\neditor.destroy();\n```\n\n## 저장 계약 — 내보내기와 저장 완료 통지\n\n`exportHwp()`/`exportHwpx()`/`exportHml()`은 직렬화 바이트만 반환하며 **문서를\n\"저장됨\"으로 표시하지 않습니다.** 호스트 저장(업로드)이 실패할 수 있으므로,\n스튜디오는 호스트가 `notifySaved()`로 확정하기 전까지 자동복구 draft를\n보존합니다. 통지 없이 종료하면 다음 실행 시 \"문서 복구\" 안내가 표시됩니다.\n\n**iframe 임베드 (업로드 확정 후 통지):**\n\n```javascript\nconst bytes = await editor.exportHwp();\ntry {\n  await uploadToServer(bytes);\n  await editor.notifySaved();       // 업로드 \"성공 시에만\" 호출\n} catch (error) {\n  // 통지하지 않음 — 복구 draft가 보존되어 재시도/복구 가능\n}\n```\n\n**팝업 통합 (핸드오프 즉시 통지 후 닫기):**\n\n스튜디오를 `window.open`으로 띄우고 `window.opener.postMessage`로 바이트를\n넘기는 통합에서는, 핸드오프 시점에 통지하고 닫습니다. 바이트를 수신한 호스트가\n이후 영속화(재시도 포함)를 책임집니다.\n\n```javascript\nwindow.opener?.postMessage(\n  { action: 'documentExported', content: base64, format: 'hwp' },\n  HOST_ORIGIN,                       // '*' 대신 반드시 명시적 오리진 사용 (문서 유출 방지)\n);\nawait editor.notifySaved();          // draft 삭제 완료까지 대기\nwindow.close();\n```\n\nSDK 없이 스튜디오 페이지 안에서 직접 통합(포크/주입)하는 경우에는 같은 동작의\n`window.rhwpStudio.notifySaved(fileName?)`를 사용할 수 있습니다.\n\n## 디버깅 도구 — rhwpDev\n\niframe 안의 rhwp-studio에는 **개발 모드 전용 디버깅 헬퍼** `rhwpDev`가 내장되어 있습니다. 검색, 커서 이동, 문단 ID 점검 등을 콘솔에서 직접 호출할 수 있습니다.\n\n### 접근 방법\n\n`rhwpDev`는 **iframe 내부 window**에 등록됩니다. 브라우저 DevTools의 콘솔 컨텍스트를 iframe으로 전환한 후 호출하세요.\n\n**Chrome / Edge:** DevTools 콘솔 좌측 상단의 컨텍스트 드롭다운(`top ▾`)에서 `rhwp-studio iframe` 선택\n\n**Firefox:** 콘솔 우측 상단의 `iframe` 버튼 → iframe URL 선택\n\n```javascript\n// iframe 컨텍스트로 전환 후\nrhwpDev.help();   // 사용법 안내\n```\n\n> **주의:** rhwp-studio가 DEV 모드(vite dev server)로 빌드된 경우에만 `rhwpDev`가 등록됩니다. 프로덕션 빌드(기본 호스팅 URL `https://edwardkim.github.io/rhwp/`)에는 포함되지 않습니다. 디버깅 도구가 필요하면 셀프 호스팅 환경에서 `vite dev` 모드로 실행하세요.\n\n### 주요 메서드\n\n#### rhwpDev.search(text, includeCells?)\n\n문서 영역에서 모든 매치를 일괄 검색합니다. 반환: `SearchHit[]`\n\n```javascript\nconst hits = rhwpDev.search(\"사업계획\");\n// → 9 match(es), console.table 자동 표시\n//\n// [{sec: 0, para: 2, charOffset: 0, length: 13}, ...]\n\n// 표 셀/글상자 내부 포함\nconst allHits = rhwpDev.search(\"사업계획\", true);\n```\n\n#### rhwpDev.goto(hit, options?)\n\nSearchHit으로 커서를 이동하고 화면을 스크롤합니다. 반환: `boolean`\n\n```javascript\nconst hits = rhwpDev.search(\"사업계획\");\n\n// 3번째 매치로 이동 + 선택 (인덱스 2)\nrhwpDev.goto(hits[2]);\n\n// 캐럿만 이동 (선택 없음)\nrhwpDev.goto(hits[2], { select: false });\n\n// 한 줄 패턴\nrhwpDev.goto(rhwpDev.search(\"text\")[0]);\n```\n\n#### rhwpDev.showAllIds(pageNum?)\n\n페이지의 모든 문단 ID를 `console.table`로 표시합니다.\n\n```javascript\nrhwpDev.showAllIds(0);    // 첫 페이지만\nrhwpDev.showAllIds();     // 전체 페이지\n```\n\n#### rhwpDev.findNearest(targetId, pageNum?)\n\n가장 가까운 paragraph 인덱스를 검색합니다.\n\n```javascript\nrhwpDev.findNearest(618);\n// → { paraIdx: 0, distance: 618, text: \"...\", container: \"cell[p0,c2,i0]\" }\n```\n\n#### rhwpDev.help()\n\n전체 사용법과 예시를 콘솔에 출력합니다.\n\n### SearchHit 구조\n\n```typescript\ninterface SearchHit {\n  sec: number;          // 구역 인덱스\n  para: number;         // 본문: 문단 인덱스 / 셀: parentPara\n  charOffset: number;   // 문단 내 글자 오프셋\n  length: number;       // 매치 길이\n  cellContext?: {       // 셀/글상자 매치 시\n    parentPara: number;\n    ctrlIdx: number;\n    cellIdx: number;\n    cellPara: number;\n  };\n}\n```\n\n### 활용 예시 — 매치 일괄 강조\n\n```javascript\n// 모든 \"회사\" 매치를 순차적으로 보여주기\nconst hits = rhwpDev.search(\"회사\");\nlet i = 0;\nsetInterval(() => {\n  if (i >= hits.length) return;\n  rhwpDev.goto(hits[i++]);\n}, 1500);\n```\n\n## 폰트 안내\n\n### 기본 동작 — 별도 설정 없이 사용 가능\n\n`@rhwp/editor`가 기본으로 연결하는 rhwp-studio 배포본은 오픈소스 폰트를 포함하므로\n**별도 폰트 설정 없이 바로 사용**할 수 있습니다. `@rhwp/editor` 패키지 자체에는 폰트 파일이나\nUI runtime dependency가 포함되지 않습니다.\n\nHWP 문서에서 사용된 한컴 전용 폰트(한컴바탕, HY명조 등)는 자동으로 오픈소스 폰트로 폴백됩니다.\n\n### 내장 폴백 폰트\n\n| HWP 원본 폰트 | 자동 폴백 |\n|--------------|----------|\n| 한컴바탕, HY명조, 바탕, 궁서 | Noto Serif KR → 나눔명조 → serif |\n| 한컴돋움, HY고딕, 돋움, 굴림 | Noto Sans KR → 나눔고딕 → sans-serif |\n| 함초롬바탕 | Noto Serif KR → 나눔명조 → serif |\n| 함초롬돋움, 맑은 고딕 | Pretendard → Noto Sans KR → sans-serif |\n| Arial, Calibri, Verdana | Pretendard → sans-serif |\n| Times New Roman | Noto Serif KR → serif |\n| Courier New | D2Coding → monospace |\n\n### 폰트 품질\n\n- **내장 폰트만으로 대부분의 HWP 문서를 원본에 가깝게 렌더링**할 수 있습니다\n- 글자 간격이 원본과 미세하게 다를 수 있으나, 문서 내용 열람에는 지장이 없습니다\n- 한컴 전용 폰트가 설치된 PC에서는 원본과 동일하게 표시됩니다\n\n### 셀프 호스팅 시 폰트\n\n저장소의 canonical source는 `assets/fonts/`이고, rhwp-studio build는 이를 배포본의 runtime `fonts/`\n경로로 노출합니다. 셀프 호스팅 서버에서는 이 runtime 경로가 함께 배포되므로 별도 설정 없이\n오픈소스 폰트를 사용합니다. 추가 폰트는 `assets/fonts/`에 WOFF2를 추가하고\n`rhwp-studio/src/core/font-loader.ts`에 `@font-face`와 로딩 정책을 등록해야 합니다.\n\n## 셀프 호스팅\n\n기본적으로 `https://edwardkim.github.io/rhwp/`에 호스팅된 에디터를 사용합니다.\n자체 서버에서 호스팅하려면:\n\n```bash\n# rhwp-studio 빌드\ncd rhwp-studio\nnpm install\nnpx vite build --base=/your-path/\n\n# 빌드 결과물(dist/)을 서버에 배포\n```\n\n외부(CDN) 웹폰트를 사용할 수 없는 환경 — 함초롬체 CDN은 비상업적 사용\n조건이므로 상업 환경, 또는 오프라인/폐쇄망 — 에서는 빌드 시점 스위치로\nCDN 로드를 끕니다. 조판(줄바꿈·페이지 분할)은 내장 폰트 메트릭 기준이라\n변하지 않고, 화면 표시만 번들/시스템 글꼴로 대체됩니다:\n\n```bash\nRHWP_DISABLE_EXTERNAL_WEBFONTS=1 npx vite build --base=/your-path/\n```\n\n브라우저 확장 storage에 저장된 `disableExternalWebFonts` 설정이 있으면\n그 값이 빌드 스위치보다 우선합니다.\n\n```javascript\nconst editor = await createEditor('#editor', {\n  studioUrl: 'https://your-domain.com/your-path/'\n});\n```\n\n## 패키지 비교\n\n| 패키지 | 용도 |\n|--------|------|\n| **@rhwp/core** | WASM 파서/렌더러 (직접 API 호출) |\n| **@rhwp/editor** | 완전한 에디터 UI (iframe 임베드) |\n\n- 뷰어만 필요하면 → `@rhwp/core`\n- 편집 기능이 필요하면 → `@rhwp/editor`\n\n## Third-Party Licenses\n\n이 패키지는 iframe을 통해 rhwp-studio를 임베드하며, 내부적으로 `@rhwp/core` WASM 엔진을 사용합니다.\n\n### Rust 크레이트 (WASM 엔진)\n\n| 크레이트 | 라이선스 |\n|---------|---------|\n| wasm-bindgen / web-sys / js-sys | MIT OR Apache-2.0 |\n| quick-xml | MIT |\n| cfb | MIT |\n| flate2 | MIT OR Apache-2.0 |\n| encoding_rs | (Apache-2.0 OR MIT) AND BSD-3-Clause |\n| usvg / svg2pdf | Apache-2.0 OR MIT |\n| pdf-writer | MIT OR Apache-2.0 |\n| unicode-segmentation / unicode-width | MIT OR Apache-2.0 |\n| image | MIT OR Apache-2.0 |\n\n### 내장 웹 폰트\n\n| 폰트 | 라이선스 |\n|------|---------|\n| Pretendard (Regular, Bold) | SIL Open Font License 1.1 |\n| Noto Sans KR (Regular, Bold) | SIL Open Font License 1.1 |\n| Noto Serif KR (Regular, Bold) | SIL Open Font License 1.1 |\n| 나눔고딕 | SIL Open Font License 1.1 |\n| 나눔명조 | SIL Open Font License 1.1 |\n| 고운바탕 | SIL Open Font License 1.1 |\n| 고운돋움 | SIL Open Font License 1.1 |\n| D2Coding | SIL Open Font License 1.1 |\n\n### 프론트엔드\n\n| 패키지 | 라이선스 |\n|--------|---------|\n| TypeScript | Apache-2.0 |\n| Vite | MIT |\n\n전체 목록: [THIRD_PARTY_LICENSES.md](https://github.com/edwardkim/rhwp/blob/main/THIRD_PARTY_LICENSES.md)\n\n> 모든 의존성은 MIT 라이선스와 호환됩니다.\n\n## Notice\n\n본 제품은 한글과컴퓨터의 한글 문서 파일(.hwp) 공개 문서를 참고하여 개발하였습니다.\n\n## Trademark\n\n\"한글\", \"한컴\", \"HWP\", \"HWPX\"는 주식회사 한글과컴퓨터의 등록 상표입니다.\n본 패키지는 한글과컴퓨터와 제휴, 후원, 승인 관계가 없는 독립적인 오픈소스 프로젝트입니다.\n\n## License\n\nMIT\n","readmeFilename":"README.md"}