{"_id":"@alistigo/document-editor","_rev":"9-0e1c72111f5851141ff72738f4b4470b","name":"@alistigo/document-editor","dist-tags":{"latest":"0.2.10"},"versions":{"0.2.2":{"name":"@alistigo/document-editor","version":"0.2.2","_id":"@alistigo/document-editor@0.2.2","maintainers":[{"name":"mikael.labrut","email":"npm@alistigo.com"}],"dist":{"shasum":"e47be7485cd43561cb210f4068753c517483be73","tarball":"https://registry.npmjs.org/@alistigo/document-editor/-/document-editor-0.2.2.tgz","fileCount":19,"integrity":"sha512-7KPRhE9er6N28ow6xN/Mrqz2Sk0KO84Tmb88ZajYzuFU1HnOcj3Q2F4/nsGjx9zT5/K1Opy2aTTTtbUIp2iQDA==","signatures":[{"sig":"MEQCIBTn49EwCkXBb5hjH6ewBB4HSqvqo/L+1gxvLkopeK7uAiBxaMF2P1PHLTMqH3F6yosua2AzxRuI0/nCDU4+wbr36w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":24228},"main":"./dist/index.js","type":"module","_from":"file:alistigo-document-editor-0.2.2.tgz","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"private":false,"_npmUser":{"name":"mikael.labrut","email":"npm@alistigo.com"},"_resolved":"/tmp/8ae7a0e064aa62a3988db224b2783152/alistigo-document-editor-0.2.2.tgz","_integrity":"sha512-7KPRhE9er6N28ow6xN/Mrqz2Sk0KO84Tmb88ZajYzuFU1HnOcj3Q2F4/nsGjx9zT5/K1Opy2aTTTtbUIp2iQDA==","_npmVersion":"11.12.1","description":"The Alistigo document editor — pure, no UI. Takes an AlistigoDocument in, accepts commands (AddElement, DeleteElement, RenameList, …), produces events, folds them via the format package's projector, returns the updated document. The Application layer of t","directories":{},"_nodeVersion":"24.15.0","dependencies":{"@alistigo/domain":"0.2.2","@alistigo/logger":"0.2.2","@alistigo/document-format":"0.2.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/document-editor_0.2.2_1781170391860_0.7943509596263918","host":"s3://npm-registry-packages-npm-production"}},"0.2.3":{"name":"@alistigo/document-editor","version":"0.2.3","keywords":["alistigo","list","editor","cqrs","event-sourcing","typescript"],"author":{"name":"Mikael Labrut","email":"contact@alistigo.com"},"license":"MIT","_id":"@alistigo/document-editor@0.2.3","maintainers":[{"name":"mikael.labrut","email":"npm@alistigo.com"}],"homepage":"https://github.com/alistigo/holos/tree/main/packages/alistigo-document-editor#readme","bugs":{"url":"https://github.com/alistigo/holos/issues"},"dist":{"shasum":"f637d1eee4c8bad0b24a301005a9484becfc2f41","tarball":"https://registry.npmjs.org/@alistigo/document-editor/-/document-editor-0.2.3.tgz","fileCount":20,"integrity":"sha512-Tuh0fieNrXrJj3NaYOrS++AmYw4zrgUOaH/Mp5287WSmDvpzgTIyvh+Pi1q19/6ChqsqiJFReG5OQ25SuXVljA==","signatures":[{"sig":"MEUCIDkQ3DvigV00fh1cccKlStmqKnOoMzvbx5W5UCkFsBkyAiEAh654cKzwAzLiTi2puo81UMhvR5ugdR+RyQ5+uCNnfrw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":26892},"main":"./dist/index.js","type":"module","_from":"file:alistigo-document-editor-0.2.3.tgz","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"private":false,"_npmUser":{"name":"mikael.labrut","email":"npm@alistigo.com"},"_resolved":"/tmp/35bd991a11401c5fa3e5f0b9a80af1b9/alistigo-document-editor-0.2.3.tgz","_integrity":"sha512-Tuh0fieNrXrJj3NaYOrS++AmYw4zrgUOaH/Mp5287WSmDvpzgTIyvh+Pi1q19/6ChqsqiJFReG5OQ25SuXVljA==","repository":{"url":"git+https://github.com/alistigo/holos.git","type":"git","directory":"packages/alistigo-document-editor"},"_npmVersion":"11.16.0","description":"The Alistigo document editor — pure, no UI. Takes an AlistigoDocument in, accepts commands (AddElement, DeleteElement, RenameList, …), produces events, folds them via the format package's projector, returns the updated document. The Application layer of t","directories":{},"_nodeVersion":"24.18.0","dependencies":{"@alistigo/domain":"0.2.3","@alistigo/logger":"0.2.3","@alistigo/document-format":"0.2.3"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/document-editor_0.2.3_1782659800703_0.7707112386437958","host":"s3://npm-registry-packages-npm-production"}},"0.2.4":{"name":"@alistigo/document-editor","version":"0.2.4","keywords":["alistigo","list","editor","cqrs","event-sourcing","typescript"],"author":{"name":"Mikael Labrut","email":"contact@alistigo.com"},"license":"MIT","_id":"@alistigo/document-editor@0.2.4","maintainers":[{"name":"mikael.labrut","email":"npm@alistigo.com"}],"homepage":"https://github.com/alistigo/holos/tree/main/packages/alistigo-document-editor#readme","bugs":{"url":"https://github.com/alistigo/holos/issues"},"dist":{"shasum":"0d01c79da6f806f10b1f6d057fca2c6b2ffb5a6b","tarball":"https://registry.npmjs.org/@alistigo/document-editor/-/document-editor-0.2.4.tgz","fileCount":20,"integrity":"sha512-ZjgbpnFIcPCmAChNhuqtJuFalm5E+P6XO+vqzeQsrpRUTA2C5mLRNoyop6ii7pX5Xo+ckI8WTWeRz511P0QeCg==","signatures":[{"sig":"MEYCIQDKy3k93NvzFQFrT0YMbdrPxCNMqFTzgW5CPG4vQCdYjAIhAKbt0tG4Wi0HMP6J7Ezu1lkMC2lJ3RZM9OZ9oL8NzA4q","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":26892},"main":"./dist/index.js","type":"module","_from":"file:alistigo-document-editor-0.2.4.tgz","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"private":false,"_npmUser":{"name":"mikael.labrut","email":"npm@alistigo.com"},"_resolved":"/tmp/24090ad64fc76d24fe52764975e74274/alistigo-document-editor-0.2.4.tgz","_integrity":"sha512-ZjgbpnFIcPCmAChNhuqtJuFalm5E+P6XO+vqzeQsrpRUTA2C5mLRNoyop6ii7pX5Xo+ckI8WTWeRz511P0QeCg==","repository":{"url":"git+https://github.com/alistigo/holos.git","type":"git","directory":"packages/alistigo-document-editor"},"_npmVersion":"11.16.0","description":"The Alistigo document editor — pure, no UI. Takes an AlistigoDocument in, accepts commands (AddElement, DeleteElement, RenameList, …), produces events, folds them via the format package's projector, returns the updated document. The Application layer of t","directories":{},"_nodeVersion":"24.18.0","dependencies":{"@alistigo/domain":"0.2.4","@alistigo/logger":"0.2.4","@alistigo/document-format":"0.2.4"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/document-editor_0.2.4_1783001710829_0.10503660289147598","host":"s3://npm-registry-packages-npm-production"}},"0.2.5":{"name":"@alistigo/document-editor","version":"0.2.5","keywords":["alistigo","list","editor","cqrs","event-sourcing","typescript"],"author":{"name":"Mikael Labrut","email":"contact@alistigo.com"},"license":"MIT","_id":"@alistigo/document-editor@0.2.5","maintainers":[{"name":"mikael.labrut","email":"npm@alistigo.com"}],"homepage":"https://github.com/alistigo/holos/tree/main/packages/alistigo-document-editor#readme","bugs":{"url":"https://github.com/alistigo/holos/issues"},"dist":{"shasum":"997ab57977ae16f8c5d9681fd9b3066a16329288","tarball":"https://registry.npmjs.org/@alistigo/document-editor/-/document-editor-0.2.5.tgz","fileCount":20,"integrity":"sha512-W/6ugXGqB+tXslbnBraskcJwbjtYU/Z1CQGdelPPvM6YgI26X94yWjrfh/+7MTI+h0bk02kgduEKXReO/c2v5g==","signatures":[{"sig":"MEUCIQDnXFP6Q11Ws8qwijyky1mdTLgUpkLcJ2a6hsjGSe2kJgIgZRzLC8CSj546tahrfepMp2XCMM7z6BLNCIfJlBBOSlI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":26892},"main":"./dist/index.js","type":"module","_from":"file:alistigo-document-editor-0.2.5.tgz","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"private":false,"_npmUser":{"name":"mikael.labrut","email":"npm@alistigo.com"},"_resolved":"/tmp/74a195eee6f40cc8ddad200795a9303c/alistigo-document-editor-0.2.5.tgz","_integrity":"sha512-W/6ugXGqB+tXslbnBraskcJwbjtYU/Z1CQGdelPPvM6YgI26X94yWjrfh/+7MTI+h0bk02kgduEKXReO/c2v5g==","repository":{"url":"git+https://github.com/alistigo/holos.git","type":"git","directory":"packages/alistigo-document-editor"},"_npmVersion":"11.16.0","description":"The Alistigo document editor — pure, no UI. Takes an AlistigoDocument in, accepts commands (AddElement, DeleteElement, RenameList, …), produces events, folds them via the format package's projector, returns the updated document. The Application layer of t","directories":{},"_nodeVersion":"24.18.0","dependencies":{"@alistigo/domain":"0.2.5","@alistigo/logger":"0.2.5","@alistigo/document-format":"0.2.5"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/document-editor_0.2.5_1783006594539_0.8065233737905169","host":"s3://npm-registry-packages-npm-production"}},"0.2.6":{"name":"@alistigo/document-editor","version":"0.2.6","keywords":["alistigo","list","editor","cqrs","event-sourcing","typescript"],"author":{"name":"Mikael Labrut","email":"contact@alistigo.com"},"license":"MIT","_id":"@alistigo/document-editor@0.2.6","maintainers":[{"name":"mikael.labrut","email":"npm@alistigo.com"}],"homepage":"https://github.com/alistigo/holos/tree/main/packages/alistigo-document-editor#readme","bugs":{"url":"https://github.com/alistigo/holos/issues"},"dist":{"shasum":"1184e934b0fac44214f5965502d641d7b39891ea","tarball":"https://registry.npmjs.org/@alistigo/document-editor/-/document-editor-0.2.6.tgz","fileCount":20,"integrity":"sha512-gDqXc2I1IIMOrQjSO3O0c4lhcdgYfn7IEunIF5KU/YieTfme6tZdcSo2AXtf8XVtPDLPaVA1HPMKbOfdzuMiPw==","signatures":[{"sig":"MEQCIBMFuMUW40dvmbFb6PWfC7AjwEg9thz6b481eLiHTLApAiAKHmSHdjMeH2IjSovRohV8Hx018jsWvRi7GYSLrZljNA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":26892},"main":"./dist/index.js","type":"module","_from":"file:alistigo-document-editor-0.2.6.tgz","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"private":false,"_npmUser":{"name":"mikael.labrut","email":"npm@alistigo.com"},"_resolved":"/tmp/df5fa2b10e94641e5039290446729569/alistigo-document-editor-0.2.6.tgz","_integrity":"sha512-gDqXc2I1IIMOrQjSO3O0c4lhcdgYfn7IEunIF5KU/YieTfme6tZdcSo2AXtf8XVtPDLPaVA1HPMKbOfdzuMiPw==","repository":{"url":"git+https://github.com/alistigo/holos.git","type":"git","directory":"packages/alistigo-document-editor"},"_npmVersion":"11.16.0","description":"The Alistigo document editor — pure, no UI. Takes an AlistigoDocument in, accepts commands (AddElement, DeleteElement, RenameList, …), produces events, folds them via the format package's projector, returns the updated document. The Application layer of t","directories":{},"_nodeVersion":"24.18.0","dependencies":{"@alistigo/domain":"0.2.6","@alistigo/logger":"0.2.6","@alistigo/document-format":"0.2.6"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/document-editor_0.2.6_1784472609221_0.5446946354228452","host":"s3://npm-registry-packages-npm-production"}},"0.2.7":{"name":"@alistigo/document-editor","version":"0.2.7","keywords":["alistigo","list","editor","cqrs","event-sourcing","typescript"],"author":{"name":"Mikael Labrut","email":"contact@alistigo.com"},"license":"MIT","_id":"@alistigo/document-editor@0.2.7","maintainers":[{"name":"mikael.labrut","email":"npm@alistigo.com"}],"homepage":"https://github.com/alistigo/holos/tree/main/packages/alistigo-document-editor#readme","bugs":{"url":"https://github.com/alistigo/holos/issues"},"dist":{"shasum":"e8fc2ef6f8f42254e1b124a0e7d4d4d5a58394ab","tarball":"https://registry.npmjs.org/@alistigo/document-editor/-/document-editor-0.2.7.tgz","fileCount":20,"integrity":"sha512-WihVE41uO2d8pIqbk0MUkCKDIYdQjq26IEEtnXlxGwDcxXcyMk6NXlA7UWULJ4+JuYpI9PuuCoPRLK0gxtf34w==","signatures":[{"sig":"MEUCIQCx+6WDl9H3I6jnweXMt0ZXTfS/QHBsYB2D7odmnmYJbwIgLwnfgwvD2JrTeRBsjojnIII5PEPT0Dq/qmaXUKq3Iug=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":26892},"main":"./dist/index.js","type":"module","_from":"file:alistigo-document-editor-0.2.7.tgz","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"private":false,"_npmUser":{"name":"mikael.labrut","email":"npm@alistigo.com"},"_resolved":"/tmp/e9d44bc9a05335f4ec5dcdf0b03146ad/alistigo-document-editor-0.2.7.tgz","_integrity":"sha512-WihVE41uO2d8pIqbk0MUkCKDIYdQjq26IEEtnXlxGwDcxXcyMk6NXlA7UWULJ4+JuYpI9PuuCoPRLK0gxtf34w==","repository":{"url":"git+https://github.com/alistigo/holos.git","type":"git","directory":"packages/alistigo-document-editor"},"_npmVersion":"11.16.0","description":"The Alistigo document editor — pure, no UI. Takes an AlistigoDocument in, accepts commands (AddElement, DeleteElement, RenameList, …), produces events, folds them via the format package's projector, returns the updated document. The Application layer of t","directories":{},"_nodeVersion":"24.18.0","dependencies":{"@alistigo/domain":"0.2.7","@alistigo/logger":"0.2.7","@alistigo/document-format":"0.2.7"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/document-editor_0.2.7_1784806917585_0.7820933501273069","host":"s3://npm-registry-packages-npm-production"}},"0.2.8":{"name":"@alistigo/document-editor","version":"0.2.8","keywords":["alistigo","list","editor","cqrs","event-sourcing","typescript"],"author":{"name":"Mikael Labrut","email":"contact@alistigo.com"},"license":"MIT","_id":"@alistigo/document-editor@0.2.8","maintainers":[{"name":"mikael.labrut","email":"npm@alistigo.com"}],"homepage":"https://github.com/alistigo/holos/tree/main/packages/alistigo-document-editor#readme","bugs":{"url":"https://github.com/alistigo/holos/issues"},"dist":{"shasum":"8ce7d51d04a28b667e4d0a202b8eb1ef85e27026","tarball":"https://registry.npmjs.org/@alistigo/document-editor/-/document-editor-0.2.8.tgz","fileCount":20,"integrity":"sha512-iLTv//Vk9Ny46dYOnC19HmMk4dVOd6z5Uy4ZWnudrw7I2zl5STCqI8GSOEkWHG0HgJrFjTY5Kc37ThQjmr3S8g==","signatures":[{"sig":"MEUCIQDnBBMaKzfjrXHeg07o6eM23aq0GdE0NSrOFRomnJcDhQIge0zzlh2U4sOHg14R+qcMQ3/23QyC4oQmj26qTxXtQHQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":26892},"main":"./dist/index.js","type":"module","_from":"file:alistigo-document-editor-0.2.8.tgz","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"private":false,"_npmUser":{"name":"mikael.labrut","email":"npm@alistigo.com"},"_resolved":"/tmp/0678825717e9986c1d4daa8ea9e053f2/alistigo-document-editor-0.2.8.tgz","_integrity":"sha512-iLTv//Vk9Ny46dYOnC19HmMk4dVOd6z5Uy4ZWnudrw7I2zl5STCqI8GSOEkWHG0HgJrFjTY5Kc37ThQjmr3S8g==","repository":{"url":"git+https://github.com/alistigo/holos.git","type":"git","directory":"packages/alistigo-document-editor"},"_npmVersion":"11.16.0","description":"The Alistigo document editor — pure, no UI. Takes an AlistigoDocument in, accepts commands (AddElement, DeleteElement, RenameList, …), produces events, folds them via the format package's projector, returns the updated document. The Application layer of t","directories":{},"_nodeVersion":"24.18.0","dependencies":{"@alistigo/domain":"0.2.8","@alistigo/logger":"0.2.8","@alistigo/document-format":"0.2.8"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/document-editor_0.2.8_1784878822041_0.43932403922753016","host":"s3://npm-registry-packages-npm-production"}},"0.2.9":{"name":"@alistigo/document-editor","version":"0.2.9","keywords":["alistigo","list","editor","cqrs","event-sourcing","typescript"],"author":{"name":"Mikael Labrut","email":"contact@alistigo.com"},"license":"MIT","_id":"@alistigo/document-editor@0.2.9","maintainers":[{"name":"mikael.labrut","email":"npm@alistigo.com"}],"homepage":"https://github.com/alistigo/holos/tree/main/packages/alistigo-document-editor#readme","bugs":{"url":"https://github.com/alistigo/holos/issues"},"dist":{"shasum":"c6411fae63788a8232def12d7a01a30ca5c1d933","tarball":"https://registry.npmjs.org/@alistigo/document-editor/-/document-editor-0.2.9.tgz","fileCount":20,"integrity":"sha512-s+GVjZH7Otr+oDtU6I31GuzKH4BFoZtyC1XXhGM2m/VYM++RNgQr1osVmfsIoJezX18jp1TXysiwtNJyVlD2Fg==","signatures":[{"sig":"MEQCIGLg4QuAt387WY+A5/u86j75SuM95yHGwPFWgGNVOSALAiBOfU3r0Wl7nD7/5bVYzaz1vqdZQWeK/MamaMQDHFFqog==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":26892},"main":"./dist/index.js","type":"module","_from":"file:alistigo-document-editor-0.2.9.tgz","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"private":false,"_npmUser":{"name":"mikael.labrut","email":"npm@alistigo.com"},"_resolved":"/tmp/d00ba8b14f7f32cf7acff59c783df75b/alistigo-document-editor-0.2.9.tgz","_integrity":"sha512-s+GVjZH7Otr+oDtU6I31GuzKH4BFoZtyC1XXhGM2m/VYM++RNgQr1osVmfsIoJezX18jp1TXysiwtNJyVlD2Fg==","repository":{"url":"git+https://github.com/alistigo/holos.git","type":"git","directory":"packages/alistigo-document-editor"},"_npmVersion":"11.16.0","description":"The Alistigo document editor — pure, no UI. Takes an AlistigoDocument in, accepts commands (AddElement, DeleteElement, RenameList, …), produces events, folds them via the format package's projector, returns the updated document. The Application layer of t","directories":{},"_nodeVersion":"24.18.0","dependencies":{"@alistigo/domain":"0.2.9","@alistigo/logger":"0.2.9","@alistigo/document-format":"0.2.9"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/document-editor_0.2.9_1784892964653_0.1870934039870109","host":"s3://npm-registry-packages-npm-production"}},"0.2.10":{"name":"@alistigo/document-editor","version":"0.2.10","license":"MIT","author":{"name":"Mikael Labrut","email":"contact@alistigo.com"},"repository":{"type":"git","url":"git+https://github.com/alistigo/holos.git","directory":"packages/alistigo-document-editor"},"bugs":{"url":"https://github.com/alistigo/holos/issues"},"homepage":"https://github.com/alistigo/holos/tree/main/packages/alistigo-document-editor#readme","keywords":["alistigo","list","editor","cqrs","event-sourcing","typescript"],"private":false,"type":"module","description":"The Alistigo document editor — pure, no UI. Takes an AlistigoDocument in, accepts commands (AddElement, DeleteElement, RenameList, …), produces events, folds them via the format package's projector, returns the updated document. The Application layer of t","exports":{".":{"import":"./dist/index.js","types":"./dist/index.d.ts"}},"main":"./dist/index.js","types":"./dist/index.d.ts","publishConfig":{"access":"public"},"dependencies":{"@alistigo/logger":"0.2.10","@alistigo/document-format":"0.2.10","@alistigo/domain":"0.2.10"},"_id":"@alistigo/document-editor@0.2.10","_integrity":"sha512-lhevWfAX0LCl8LUpF+iWeITCDUpkT4y+3icm/yNz5rwSuCBl9YN3glaa9dl8foDOxLlhg29vAHTtYhPf2/T7lA==","_resolved":"/tmp/8148876fe4e332b4d52f078bee95148e/alistigo-document-editor-0.2.10.tgz","_from":"file:alistigo-document-editor-0.2.10.tgz","_nodeVersion":"24.18.0","_npmVersion":"11.16.0","dist":{"integrity":"sha512-lhevWfAX0LCl8LUpF+iWeITCDUpkT4y+3icm/yNz5rwSuCBl9YN3glaa9dl8foDOxLlhg29vAHTtYhPf2/T7lA==","shasum":"1154d667a707c14eb4297fccfb98b20169ae05ad","tarball":"https://registry.npmjs.org/@alistigo/document-editor/-/document-editor-0.2.10.tgz","fileCount":20,"unpackedSize":26897,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQDolTvXEXayHNkTwY3yZxALmhLDNELU9jVT09viBJtWzAIgd+tbiuOo5XPZOl2Y+H6kC5AxLMyvoawJULeanKRF8kM="}]},"_npmUser":{"name":"mikael.labrut","email":"npm@alistigo.com"},"directories":{},"maintainers":[{"name":"mikael.labrut","email":"npm@alistigo.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/document-editor_0.2.10_1785077697325_0.7325298147056212"},"_hasShrinkwrap":false}},"time":{"created":"2026-06-11T09:33:11.623Z","modified":"2026-07-26T14:54:57.646Z","0.2.2":"2026-06-11T09:33:12.035Z","0.2.3":"2026-06-28T15:16:40.844Z","0.2.4":"2026-07-02T14:15:10.982Z","0.2.5":"2026-07-02T15:36:34.706Z","0.2.6":"2026-07-19T14:50:09.368Z","0.2.7":"2026-07-23T11:41:57.715Z","0.2.8":"2026-07-24T07:40:22.168Z","0.2.9":"2026-07-24T11:36:04.799Z","0.2.10":"2026-07-26T14:54:57.473Z"},"bugs":{"url":"https://github.com/alistigo/holos/issues"},"author":{"name":"Mikael Labrut","email":"contact@alistigo.com"},"license":"MIT","homepage":"https://github.com/alistigo/holos/tree/main/packages/alistigo-document-editor#readme","keywords":["alistigo","list","editor","cqrs","event-sourcing","typescript"],"repository":{"type":"git","url":"git+https://github.com/alistigo/holos.git","directory":"packages/alistigo-document-editor"},"description":"The Alistigo document editor — pure, no UI. Takes an AlistigoDocument in, accepts commands (AddElement, DeleteElement, RenameList, …), produces events, folds them via the format package's projector, returns the updated document. The Application layer of t","maintainers":[{"name":"mikael.labrut","email":"npm@alistigo.com"}],"readme":"# @alistigo/document-editor\n\n[![npm version](https://img.shields.io/npm/v/@alistigo/document-editor.svg?style=flat)](https://www.npmjs.com/package/@alistigo/document-editor)\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)\n[![TypeScript](https://img.shields.io/badge/TypeScript-strict-blue?logo=typescript)](https://www.typescriptlang.org/)\n[![CI](https://github.com/alistigo/holos/actions/workflows/ci.yml/badge.svg)](https://github.com/alistigo/holos/actions/workflows/ci.yml)\n\nThe Application layer of the Alistigo system. **Pure, no UI.** Takes an `AlistigoDocument` in, accepts commands, produces events, folds them into a new document.\n\nThis is what `architecture.md` calls the *Application Layer (CQRS)*: commands → events → projector → document. The package mirrors that contract one-to-one.\n\n## What it owns\n\n| Concept | API |\n|---------|-----|\n| Command catalog (intent) | `AlistigoCommand` discriminated union (`CreateList`, `AddElement`, `DeleteElement`, `RenameList`) |\n| Command → events | `commandToEvents(doc, command)` |\n| Events → document | `applyEvents(doc, events)` (delegates projection to `@alistigo/document-format`'s `replayEvents`) |\n| Bootstrap a doc with no log | `bootstrap(doc)` |\n| Stateful wrapper for UI | `createEditor(doc) → { document, dispatch, subscribe }` |\n| Empty starting document | `emptyDocument({ name?, listType?, plugins? })` |\n\n## What it does NOT own\n\n- React, the DOM, any UI primitive — see `@alistigo/list-components-react`.\n- Persistence — the EventStore adapters live with the embedded app.\n- Schema validation — see `@alistigo/document-format`'s `validateDocument`.\n\n## Core API\n\n### `createEditor(initial, options?) → Editor`\n\n```ts\nimport { createEditor, emptyDocument } from \"@alistigo/document-editor\";\n\nconst editor = createEditor(emptyDocument({ name: \"Today\" }));\n\neditor.dispatch({ type: \"AddElement\", text: \"Buy bread\" });\neditor.dispatch({ type: \"AddElement\", text: \"Buy milk\" });\n\nconsole.log(editor.document.projection.itemListElement);\n// [{ position: 1, item: { name: \"Buy bread\", … } }, { position: 2, item: { name: \"Buy milk\", … } }]\n\nconst unsub = editor.subscribe((doc) => {\n  // re-render from doc.projection\n});\n\nconst idOfMilk = editor.document.projection.itemListElement[1].item[\"@id\"];\neditor.dispatch({ type: \"DeleteElement\", elementId: idOfMilk });\n\nunsub();\n```\n\n`Editor` is synchronous: every `dispatch` finishes before it returns, listeners run synchronously in registration order. That keeps the React `useSyncExternalStore` integration trivial and removes \"did the projection update before we read it?\" foot-guns.\n\n### Pure helpers\n\nFor tests / non-React consumers:\n\n```ts\nimport { commandToEvents, applyEvents, emptyDocument } from \"@alistigo/document-editor\";\n\nconst doc0 = emptyDocument({ name: \"Today\" });\nconst events = commandToEvents(doc0, { type: \"AddElement\", text: \"Buy bread\" });\nconst doc1 = applyEvents(doc0, events);\n```\n\n### Bootstrap from a projection-only document\n\nPer `architecture.md` §5.1 — a document arriving from an LLM (or via the inline `<script id=\"alistigo-document\">` tag in production) may have only a projection and no event log. `createEditor` calls `bootstrap` on construction to synthesize a fresh log: one `ListCreated`, then one `ElementAdded` per existing element in projection order. From that point on the synthesized log is authoritative.\n\nIf the document already has a non-empty `eventLog`, bootstrap trusts it as-is — fixing up a real log here would risk breaking replay-equivalence.\n\n## Testing\n\n`pnpm -F @alistigo/document-editor test` runs the bun test suite. Determinism in tests is achieved by injecting a custom `IdGenerator` via `createEditor(initial, { ids })` — see `src/editor.test.ts`.\n\n## Design constraints\n\n- **Pure.** No DOM, no `localStorage`, no random outside `IdGenerator`. This is what makes the runner fast and the projection cacheable.\n- **Synchronous.** Commands that need IO (persisting events, talking to a host) belong one layer above — the editor never `await`s.\n- **Append-only.** Events are facts; the package never edits or deletes a previously emitted event. Undo is a future compensating event, not a log mutation.\n- **Format is the source of truth.** The projector lives in `@alistigo/document-format`; the editor never re-implements projection. New event types land in the format package first, then the editor adds a command that emits them.\n","readmeFilename":"README.md"}