{"_id":"@alistigo/list-document-editor","_rev":"9-6df2098d0ffd13a52d47168cfacc4840","name":"@alistigo/list-document-editor","dist-tags":{"latest":"0.3.1"},"versions":{"0.2.11":{"name":"@alistigo/list-document-editor","version":"0.2.11","keywords":["alistigo","list","editor","cqrs","event-sourcing","typescript"],"author":{"name":"Mikael Labrut","email":"contact@alistigo.com"},"license":"MIT","_id":"@alistigo/list-document-editor@0.2.11","maintainers":[{"name":"mikael.labrut","email":"npm@alistigo.com"}],"homepage":"https://github.com/alistigo/holos/tree/main/packages/list-document-editor#readme","bugs":{"url":"https://github.com/alistigo/holos/issues"},"dist":{"shasum":"84928a4ea7d6afe4270ddad498ed2d7a9f9f1b13","tarball":"https://registry.npmjs.org/@alistigo/list-document-editor/-/list-document-editor-0.2.11.tgz","fileCount":20,"integrity":"sha512-27XW0mdSEqvR6DVsulmIQJz9SP94aVVvD95PFzxfOWupTDpg9+pctuZboXOJycXPH7LW5JkXhh3lQ1iGPR6ubw==","signatures":[{"sig":"MEUCID2MsVrm2/ac58K0FDOen9ZAB8cmqT08S4AxqI4YqyAgAiEAs7sWP9Qc3qEgBMGsL1JJZuuqc6kwk+hYbq78M825co8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":26936},"main":"./dist/index.js","type":"module","_from":"file:alistigo-list-document-editor-0.2.11.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/09543b3e07d4377f1fb17c4d5f100ba4/alistigo-list-document-editor-0.2.11.tgz","_integrity":"sha512-27XW0mdSEqvR6DVsulmIQJz9SP94aVVvD95PFzxfOWupTDpg9+pctuZboXOJycXPH7LW5JkXhh3lQ1iGPR6ubw==","repository":{"url":"git+https://github.com/alistigo/holos.git","type":"git","directory":"packages/list-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/logger":"0.2.11","@alistigo/list-domain":"0.2.11","@alistigo/list-document-format":"0.2.11"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/list-document-editor_0.2.11_1785318497001_0.9976473093510938","host":"s3://npm-registry-packages-npm-production"}},"0.2.12":{"name":"@alistigo/list-document-editor","version":"0.2.12","keywords":["alistigo","list","editor","cqrs","event-sourcing","typescript"],"author":{"name":"Mikael Labrut","email":"contact@alistigo.com"},"license":"MIT","_id":"@alistigo/list-document-editor@0.2.12","maintainers":[{"name":"mikael.labrut","email":"npm@alistigo.com"}],"homepage":"https://github.com/alistigo/holos/tree/main/packages/list-document-editor#readme","bugs":{"url":"https://github.com/alistigo/holos/issues"},"dist":{"shasum":"ed792cb2e1607281069ff633cc1bc41af645256d","tarball":"https://registry.npmjs.org/@alistigo/list-document-editor/-/list-document-editor-0.2.12.tgz","fileCount":20,"integrity":"sha512-UPA7fvC5zN206HS4UtBRh4WpSlzEt8OHtbFTJL0iHBNDsAKQN/7+GndiOLqNVuCZq8kPSt9tkt/z90nRgTna5g==","signatures":[{"sig":"MEUCIQD7NNl6raMtCfxdaOrM8OMYsy5wJ6Jk2z7as64XizJeSAIgYpo09U7FAifNEOte8g+EYZbAln1nHj/nkiq9voCRRYA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":26936},"main":"./dist/index.js","type":"module","_from":"file:alistigo-list-document-editor-0.2.12.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/a30d764ec36449973e9586fcd7eea71d/alistigo-list-document-editor-0.2.12.tgz","_integrity":"sha512-UPA7fvC5zN206HS4UtBRh4WpSlzEt8OHtbFTJL0iHBNDsAKQN/7+GndiOLqNVuCZq8kPSt9tkt/z90nRgTna5g==","repository":{"url":"git+https://github.com/alistigo/holos.git","type":"git","directory":"packages/list-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/logger":"0.2.12","@alistigo/list-domain":"0.2.12","@alistigo/list-document-format":"0.2.12"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/list-document-editor_0.2.12_1785427797433_0.2389642273212187","host":"s3://npm-registry-packages-npm-production"}},"0.2.13":{"name":"@alistigo/list-document-editor","version":"0.2.13","keywords":["alistigo","list","editor","cqrs","event-sourcing","typescript"],"author":{"name":"Mikael Labrut","email":"contact@alistigo.com"},"license":"MIT","_id":"@alistigo/list-document-editor@0.2.13","maintainers":[{"name":"mikael.labrut","email":"npm@alistigo.com"}],"homepage":"https://github.com/alistigo/holos/tree/main/packages/list-document-editor#readme","bugs":{"url":"https://github.com/alistigo/holos/issues"},"dist":{"shasum":"4fa303bc508f15a59673110e1118184ed14be0cb","tarball":"https://registry.npmjs.org/@alistigo/list-document-editor/-/list-document-editor-0.2.13.tgz","fileCount":20,"integrity":"sha512-9tj5aYgb7R1PPF1+2dBSOHrqimtSablBkJB7oYlUmpn1ufYyuXeJvHdzarpjcVDfzWlHuEHJhkYAw6E+jSS5hA==","signatures":[{"sig":"MEUCIEURraqmhqCMAvu0gc3IyrvYGmbShlD35FKlpEog+aphAiEAjZeOo7pnAaKdet9oIJEGOI197tzi0OVeoKuM9iDgNrU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":26936},"main":"./dist/index.js","type":"module","_from":"file:alistigo-list-document-editor-0.2.13.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/24a571e0e08eaa7c145f12d4bc218a7a/alistigo-list-document-editor-0.2.13.tgz","_integrity":"sha512-9tj5aYgb7R1PPF1+2dBSOHrqimtSablBkJB7oYlUmpn1ufYyuXeJvHdzarpjcVDfzWlHuEHJhkYAw6E+jSS5hA==","repository":{"url":"git+https://github.com/alistigo/holos.git","type":"git","directory":"packages/list-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/logger":"0.2.13","@alistigo/list-domain":"0.2.13","@alistigo/list-document-format":"0.2.13"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/list-document-editor_0.2.13_1785850677932_0.26890900176292964","host":"s3://npm-registry-packages-npm-production"}},"0.2.14":{"name":"@alistigo/list-document-editor","version":"0.2.14","keywords":["alistigo","list","editor","cqrs","event-sourcing","typescript"],"author":{"name":"Mikael Labrut","email":"contact@alistigo.com"},"license":"MIT","_id":"@alistigo/list-document-editor@0.2.14","maintainers":[{"name":"mikael.labrut","email":"npm@alistigo.com"}],"homepage":"https://github.com/alistigo/holos/tree/main/packages/list-document-editor#readme","bugs":{"url":"https://github.com/alistigo/holos/issues"},"dist":{"shasum":"d6bd40cfb170735e96504c6a9ce0d4ae930b1ac1","tarball":"https://registry.npmjs.org/@alistigo/list-document-editor/-/list-document-editor-0.2.14.tgz","fileCount":20,"integrity":"sha512-WMvfPwlM5xLJ7D1adMD49024MCRBdnskg01dvaFNrS1jeXgp41WEXAN82WHgf7jeqOH6kQLfvWY6SW5WcoCCMA==","signatures":[{"sig":"MEQCIHqvFr1EKNyo7oGRyaWfxJXIjAXhNv+DwWA3a9drjfS5AiA8r51jrk8ELWMv5LQ1On+kuszuwCXm1WbszgBGtdR1Hg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":26936},"main":"./dist/index.js","type":"module","_from":"file:alistigo-list-document-editor-0.2.14.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/ab2f1a279a999dec74e97980ac8e1f88/alistigo-list-document-editor-0.2.14.tgz","_integrity":"sha512-WMvfPwlM5xLJ7D1adMD49024MCRBdnskg01dvaFNrS1jeXgp41WEXAN82WHgf7jeqOH6kQLfvWY6SW5WcoCCMA==","repository":{"url":"git+https://github.com/alistigo/holos.git","type":"git","directory":"packages/list-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/logger":"0.2.14","@alistigo/list-domain":"0.2.14","@alistigo/list-document-format":"0.2.14"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/list-document-editor_0.2.14_1785872315727_0.5695579287824108","host":"s3://npm-registry-packages-npm-production"}},"0.2.15":{"name":"@alistigo/list-document-editor","version":"0.2.15","keywords":["alistigo","list","editor","cqrs","event-sourcing","typescript"],"author":{"name":"Mikael Labrut","email":"contact@alistigo.com"},"license":"MIT","_id":"@alistigo/list-document-editor@0.2.15","maintainers":[{"name":"mikael.labrut","email":"npm@alistigo.com"}],"homepage":"https://github.com/alistigo/holos/tree/main/packages/list-document-editor#readme","bugs":{"url":"https://github.com/alistigo/holos/issues"},"dist":{"shasum":"b104f908e3b4d65dfd357b5c4340cd3ac274bed8","tarball":"https://registry.npmjs.org/@alistigo/list-document-editor/-/list-document-editor-0.2.15.tgz","fileCount":20,"integrity":"sha512-FugdxL289QSz2jemOIl9UFQuoPvwAvyXQvyhoFdrMevc8g6gHd28z9QU3z8f7AlMfhtjPUbh/oleMLjad22dIQ==","signatures":[{"sig":"MEQCIFgfe5SeVTmDXqvOQQDgE2IDD7PBYDlWZ4+A33oPVLDtAiAqnVChpAm6dzhSUETlkpZUYcdLo84N48RvH6JRX3RjHQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":26936},"main":"./dist/index.js","type":"module","_from":"file:alistigo-list-document-editor-0.2.15.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/0beaed7d5d0d1a1fd840600082946785/alistigo-list-document-editor-0.2.15.tgz","_integrity":"sha512-FugdxL289QSz2jemOIl9UFQuoPvwAvyXQvyhoFdrMevc8g6gHd28z9QU3z8f7AlMfhtjPUbh/oleMLjad22dIQ==","repository":{"url":"git+https://github.com/alistigo/holos.git","type":"git","directory":"packages/list-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/logger":"0.2.15","@alistigo/list-domain":"0.2.15","@alistigo/list-document-format":"0.2.15"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/list-document-editor_0.2.15_1785948652087_0.04931954095097901","host":"s3://npm-registry-packages-npm-production"}},"0.2.16":{"name":"@alistigo/list-document-editor","version":"0.2.16","keywords":["alistigo","list","editor","cqrs","event-sourcing","typescript"],"author":{"name":"Mikael Labrut","email":"contact@alistigo.com"},"license":"MIT","_id":"@alistigo/list-document-editor@0.2.16","maintainers":[{"name":"mikael.labrut","email":"npm@alistigo.com"}],"homepage":"https://github.com/alistigo/holos/tree/main/packages/list-document-editor#readme","bugs":{"url":"https://github.com/alistigo/holos/issues"},"dist":{"shasum":"17e86dd936c79765fb7d4a9bef4b99c496a84684","tarball":"https://registry.npmjs.org/@alistigo/list-document-editor/-/list-document-editor-0.2.16.tgz","fileCount":20,"integrity":"sha512-1onIfMWXqfHR02OpKBvkpyV5LT9ZMwwa+gpn1nDWBl9+DyA17zRdFr1JuQKKFN9GP597EcG+0esIjOHVNGL3WQ==","signatures":[{"sig":"MEYCIQCOHK+82Ola1qOMmvcBHveMmizg0QN7Xb0EwiQP9cOGHQIhAP1hmyjXlNbPGutv0eBQxapZppaHvD/39ZMgPVj6olC1","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":26936},"main":"./dist/index.js","type":"module","_from":"file:alistigo-list-document-editor-0.2.16.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/4260650fd77cce939f0a7cfedd24d5aa/alistigo-list-document-editor-0.2.16.tgz","_integrity":"sha512-1onIfMWXqfHR02OpKBvkpyV5LT9ZMwwa+gpn1nDWBl9+DyA17zRdFr1JuQKKFN9GP597EcG+0esIjOHVNGL3WQ==","repository":{"url":"git+https://github.com/alistigo/holos.git","type":"git","directory":"packages/list-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/logger":"0.2.16","@alistigo/list-domain":"0.2.16","@alistigo/list-document-format":"0.2.16"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/list-document-editor_0.2.16_1786090465648_0.8368686226751441","host":"s3://npm-registry-packages-npm-production"}},"0.2.17":{"name":"@alistigo/list-document-editor","version":"0.2.17","keywords":["alistigo","list","editor","cqrs","event-sourcing","typescript"],"author":{"name":"Mikael Labrut","email":"contact@alistigo.com"},"license":"MIT","_id":"@alistigo/list-document-editor@0.2.17","maintainers":[{"name":"mikael.labrut","email":"npm@alistigo.com"}],"homepage":"https://github.com/alistigo/holos/tree/main/packages/list-document-editor#readme","bugs":{"url":"https://github.com/alistigo/holos/issues"},"dist":{"shasum":"42a7f15897b586b7aa8aad410328f9c1b2b92764","tarball":"https://registry.npmjs.org/@alistigo/list-document-editor/-/list-document-editor-0.2.17.tgz","fileCount":20,"integrity":"sha512-7yqwXXCuTLWuVZn+PUuDfPR7G85gdTzKMJfAJwMvEBK3BYKSnQhJKYi+ZmSWA/ijbThLwEeRI9HHd8QguJ4OFg==","signatures":[{"sig":"MEUCIQDdyuJ3ngkH49m7ZwGrXZkfKBKay2x4OuPcKxIKlfL2+wIgSDpvS2fobKRmQBdMOxFqTohctFwI3mMtBXepq8aH89M=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":26936},"main":"./dist/index.js","type":"module","_from":"file:alistigo-list-document-editor-0.2.17.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/f67dea844f4c4dd394c1f3331ad6bc85/alistigo-list-document-editor-0.2.17.tgz","_integrity":"sha512-7yqwXXCuTLWuVZn+PUuDfPR7G85gdTzKMJfAJwMvEBK3BYKSnQhJKYi+ZmSWA/ijbThLwEeRI9HHd8QguJ4OFg==","repository":{"url":"git+https://github.com/alistigo/holos.git","type":"git","directory":"packages/list-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/logger":"0.2.17","@alistigo/list-domain":"0.2.17","@alistigo/list-document-format":"0.2.17"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/list-document-editor_0.2.17_1786111129247_0.7510658151346681","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"@alistigo/list-document-editor","version":"0.3.0","keywords":["alistigo","list","editor","cqrs","event-sourcing","typescript"],"author":{"name":"Mikael Labrut","email":"contact@alistigo.com"},"license":"MIT","_id":"@alistigo/list-document-editor@0.3.0","maintainers":[{"name":"mikael.labrut","email":"npm@alistigo.com"}],"homepage":"https://github.com/alistigo/holos/tree/main/packages/list-document-editor#readme","bugs":{"url":"https://github.com/alistigo/holos/issues"},"dist":{"shasum":"8a69a17c9c9dcc8f9ed7b7f7a66ee43b78c312be","tarball":"https://registry.npmjs.org/@alistigo/list-document-editor/-/list-document-editor-0.3.0.tgz","fileCount":20,"integrity":"sha512-CVCL9JJO5tRG3/nsMS7SWBgdY6mMHywo0anyIDJ6KZCMRVICw2RzYhNHO30s4BLwxwlni5T/wVDYJnO3isDaWw==","signatures":[{"sig":"MEQCIE/gJ+BVzATmjwoouyLEvKiyIZtv96NV60jvgN9ZXmu4AiAYHuUGQj6D9cbLBQP9GyzSssnJeGGBiQcup47HTRlR8Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":29499},"main":"./dist/index.js","type":"module","_from":"file:alistigo-list-document-editor-0.3.0.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/67859f5835494030b7010cd03f92119c/alistigo-list-document-editor-0.3.0.tgz","_integrity":"sha512-CVCL9JJO5tRG3/nsMS7SWBgdY6mMHywo0anyIDJ6KZCMRVICw2RzYhNHO30s4BLwxwlni5T/wVDYJnO3isDaWw==","repository":{"url":"git+https://github.com/alistigo/holos.git","type":"git","directory":"packages/list-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/logger":"0.3.0","@alistigo/list-domain":"0.3.0","@alistigo/list-document-format":"0.3.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/list-document-editor_0.3.0_1786902463520_0.3987859862530265","host":"s3://npm-registry-packages-npm-production"}},"0.3.1":{"name":"@alistigo/list-document-editor","version":"0.3.1","license":"MIT","author":{"name":"Mikael Labrut","email":"contact@alistigo.com"},"repository":{"type":"git","url":"git+https://github.com/alistigo/holos.git","directory":"packages/list-document-editor"},"bugs":{"url":"https://github.com/alistigo/holos/issues"},"homepage":"https://github.com/alistigo/holos/tree/main/packages/list-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.3.1","@alistigo/list-document-format":"0.3.1","@alistigo/list-domain":"0.3.1"},"_id":"@alistigo/list-document-editor@0.3.1","_integrity":"sha512-39QVrg7IKpsKnCLW1XL74BhPRbCwATrH2eUTIL2peYFvdlTOxp5U06uY6YmfJaKkIg0L8MBfExPmwmrXrU/O+g==","_resolved":"/tmp/0eef07f1f582072f942ea9250f793d1f/alistigo-list-document-editor-0.3.1.tgz","_from":"file:alistigo-list-document-editor-0.3.1.tgz","_nodeVersion":"24.18.0","_npmVersion":"11.16.0","dist":{"integrity":"sha512-39QVrg7IKpsKnCLW1XL74BhPRbCwATrH2eUTIL2peYFvdlTOxp5U06uY6YmfJaKkIg0L8MBfExPmwmrXrU/O+g==","shasum":"23ee33be417a016623bc0a7ce08d7d471c8be0c1","tarball":"https://registry.npmjs.org/@alistigo/list-document-editor/-/list-document-editor-0.3.1.tgz","fileCount":20,"unpackedSize":29499,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCICqXIPdhNvaWiD7OSsnmTok3cE3EzkN/2l5vdWUnnGYzAiEA/alKhf0PhVZVwgRL/MERmvPDTpODGiHmxh1HYXm86UY="}]},"_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/list-document-editor_0.3.1_1787330944072_0.5539859858272929"},"_hasShrinkwrap":false}},"time":{"created":"2026-07-29T09:48:16.824Z","modified":"2026-08-21T16:49:04.496Z","0.2.11":"2026-07-29T09:48:17.129Z","0.2.12":"2026-07-30T16:09:57.580Z","0.2.13":"2026-08-04T13:37:58.074Z","0.2.14":"2026-08-04T19:38:35.881Z","0.2.15":"2026-08-05T16:50:52.241Z","0.2.16":"2026-08-07T08:14:25.810Z","0.2.17":"2026-08-07T13:58:49.418Z","0.3.0":"2026-08-16T17:47:43.665Z","0.3.1":"2026-08-21T16:49:04.215Z"},"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/list-document-editor#readme","keywords":["alistigo","list","editor","cqrs","event-sourcing","typescript"],"repository":{"type":"git","url":"git+https://github.com/alistigo/holos.git","directory":"packages/list-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"}