{"_id":"@visimer/core","_rev":"6-e542910f2f00dabe5c1b8168367dd75d","name":"@visimer/core","dist-tags":{"latest":"1.1.2"},"versions":{"0.1.0":{"name":"@visimer/core","version":"0.1.0","keywords":["mermaid","wysiwyg","diagram","editor","flowchart","visual-editing"],"author":{"name":"Inkeep"},"license":"MIT","_id":"@visimer/core@0.1.0","maintainers":[{"name":"robert-inkeep","email":"robert@inkeep.com"},{"name":"abraham-inkeep","email":"anuoluwapo-abraham-v@inkeep.com"}],"homepage":"https://github.com/inkeep/visimer#readme","bugs":{"url":"https://github.com/inkeep/visimer/issues"},"dist":{"shasum":"0eb784806b86e0a99fac6b60cd2f5bf45a4ac780","tarball":"https://registry.npmjs.org/@visimer/core/-/core-0.1.0.tgz","fileCount":30,"integrity":"sha512-PIvkhrWtsRq/a/i88Yb0shvKC1oaZPA5UBLMs9/MjYZ4JMZVXKtvgqjAw3hg7hNN9lyos3qTlNGnmFuMOUJ1Eg==","signatures":[{"sig":"MEUCIFJowsIprZmE+bhBegmqzFYA+ErBoXYQwLdJ53yqxQcwAiEAmSuVeCYmJDhW6Uxg2I1rIBeNcPZBKRBu7EB1UX6P2EM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":604717},"main":"./dist/index.js","type":"module","_from":"file:visimer-core-0.1.0.tgz","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"test":"vitest run","build":"tsup src/index.ts --format esm --dts --sourcemap --out-dir dist","typecheck":"tsc -p tsconfig.json"},"_npmUser":{"name":"robert-inkeep","email":"robert@inkeep.com"},"_resolved":"/private/var/folders/yj/h7j2tj792tlf3jkj30f50fxm0000gn/T/ddd5ffc570a04f7184fe2d0f06d3ed60/visimer-core-0.1.0.tgz","_integrity":"sha512-PIvkhrWtsRq/a/i88Yb0shvKC1oaZPA5UBLMs9/MjYZ4JMZVXKtvgqjAw3hg7hNN9lyos3qTlNGnmFuMOUJ1Eg==","repository":{"url":"git+https://github.com/inkeep/visimer.git","type":"git","directory":"packages/core"},"_npmVersion":"10.9.4","description":"Headless bidirectional editing engine for Mermaid diagrams: lossless CST, semantic graph, ops compiled to minimal text edits.","directories":{},"sideEffects":false,"_nodeVersion":"22.22.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^2.1.9","typescript":"^5.6.3"},"_npmOperationalInternal":{"tmp":"tmp/core_0.1.0_1784756104399_0.5848157382765109","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"name":"@visimer/core","version":"1.0.1","keywords":["mermaid","wysiwyg","diagram","editor","flowchart","visual-editing"],"author":{"name":"Inkeep"},"license":"MIT","_id":"@visimer/core@1.0.1","maintainers":[{"name":"robert-inkeep","email":"robert@inkeep.com"},{"name":"abraham-inkeep","email":"anuoluwapo-abraham-v@inkeep.com"}],"homepage":"https://github.com/inkeep/visimer#readme","bugs":{"url":"https://github.com/inkeep/visimer/issues"},"dist":{"shasum":"02149a91f94661b194cb3e431b3f38d40d4b9757","tarball":"https://registry.npmjs.org/@visimer/core/-/core-1.0.1.tgz","fileCount":30,"integrity":"sha512-BkTIsYYacq+FFliL7Jtrp73C8fHBlHIW3gna9q/WoQWjJ4Fs6Ha8Tq3kBVXdQ3td82j0ksNND1Vr+9hHuAwj7Q==","signatures":[{"sig":"MEQCICutm9cLsa/BD7kwe+nhkihfGOskgA+jdDfeptkOcknbAiBivK1/W23CMw/EYhH81wOcOpkCREZe43PyL62rvJMJJw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@visimer%2fcore@1.0.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":604717},"main":"./dist/index.js","type":"module","_from":"file:visimer-core-1.0.1.tgz","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"test":"vitest run","build":"tsup src/index.ts --format esm --dts --sourcemap --out-dir dist","typecheck":"tsc -p tsconfig.json"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:d8b9bbbf-d195-4ea9-8b5b-7ca981b18a8c"}},"_resolved":"/tmp/056c36c6c0e094d1437623c0857150bc/visimer-core-1.0.1.tgz","_integrity":"sha512-BkTIsYYacq+FFliL7Jtrp73C8fHBlHIW3gna9q/WoQWjJ4Fs6Ha8Tq3kBVXdQ3td82j0ksNND1Vr+9hHuAwj7Q==","repository":{"url":"git+https://github.com/inkeep/visimer.git","type":"git","directory":"packages/core"},"_npmVersion":"11.18.0","description":"Headless bidirectional editing engine for Mermaid diagrams: lossless CST, semantic graph, ops compiled to minimal text edits.","directories":{},"sideEffects":false,"_nodeVersion":"22.23.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^2.1.9","typescript":"^5.6.3"},"_npmOperationalInternal":{"tmp":"tmp/core_1.0.1_1785346842542_0.18472515158480274","host":"s3://npm-registry-packages-npm-production"}},"1.0.2":{"name":"@visimer/core","version":"1.0.2","keywords":["mermaid","wysiwyg","diagram","editor","flowchart","visual-editing"],"author":{"name":"Inkeep"},"license":"MIT","_id":"@visimer/core@1.0.2","maintainers":[{"name":"robert-inkeep","email":"robert@inkeep.com"},{"name":"abraham-inkeep","email":"anuoluwapo-abraham-v@inkeep.com"}],"homepage":"https://github.com/inkeep/visimer#readme","bugs":{"url":"https://github.com/inkeep/visimer/issues"},"dist":{"shasum":"2ed6a859bc0c3b9788380d09a2259ebd35f6703d","tarball":"https://registry.npmjs.org/@visimer/core/-/core-1.0.2.tgz","fileCount":30,"integrity":"sha512-4o7wU1aAlyXBENmxTGh/8fyC9Y0NYt6RcB1b3syDuezeagOSkM2CAcZoazkcNnoaxI0tjtVkZ1HgflhobMU7kA==","signatures":[{"sig":"MEUCIGEJShpDgCUSrV0FMarcmSOrzAcYLXBV+tTk7fYk80U6AiEAxF8dQnBjmGvq6Qs/hgbsbhzEKhu2sTfbwYga+nE/UR4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@visimer%2fcore@1.0.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":604717},"main":"./dist/index.js","type":"module","_from":"file:visimer-core-1.0.2.tgz","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"test":"vitest run","build":"tsup src/index.ts --format esm --dts --sourcemap --out-dir dist","typecheck":"tsc -p tsconfig.json"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:d8b9bbbf-d195-4ea9-8b5b-7ca981b18a8c"}},"_resolved":"/tmp/d0828685661ca3a259815b1d4ce87dae/visimer-core-1.0.2.tgz","_integrity":"sha512-4o7wU1aAlyXBENmxTGh/8fyC9Y0NYt6RcB1b3syDuezeagOSkM2CAcZoazkcNnoaxI0tjtVkZ1HgflhobMU7kA==","repository":{"url":"git+https://github.com/inkeep/visimer.git","type":"git","directory":"packages/core"},"_npmVersion":"11.19.0","description":"Headless bidirectional editing engine for Mermaid diagrams: lossless CST, semantic graph, ops compiled to minimal text edits.","directories":{},"sideEffects":false,"_nodeVersion":"22.23.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^2.1.9","typescript":"^5.6.3"},"_npmOperationalInternal":{"tmp":"tmp/core_1.0.2_1786107108254_0.23074232508965586","host":"s3://npm-registry-packages-npm-production"}},"1.1.0":{"name":"@visimer/core","version":"1.1.0","keywords":["mermaid","wysiwyg","diagram","editor","flowchart","visual-editing"],"author":{"name":"Inkeep"},"license":"MIT","_id":"@visimer/core@1.1.0","maintainers":[{"name":"robert-inkeep","email":"robert@inkeep.com"},{"name":"abraham-inkeep","email":"anuoluwapo-abraham-v@inkeep.com"}],"homepage":"https://github.com/inkeep/visimer#readme","bugs":{"url":"https://github.com/inkeep/visimer/issues"},"dist":{"shasum":"7cb4e780e19c2faa7450bb9214de6c370213e4d4","tarball":"https://registry.npmjs.org/@visimer/core/-/core-1.1.0.tgz","fileCount":30,"integrity":"sha512-NyrgUWp0pA4SBYU0As7PwelfDt0uNSos4u9f4IvAPLhfqBzlqBueuqNsKsM1bAICSk/d4u6UTVTyWNgZTBuVyg==","signatures":[{"sig":"MEUCIQDXTW64UbYGbJaW0CNNTljctjQ9j7YNhEGBQ5F+iyloaAIgZAauYFN/E8imXCNWF5T3XbCwaoYEgcbB7QCGFOFrbOA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@visimer%2fcore@1.1.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":622169},"main":"./dist/index.js","type":"module","_from":"file:visimer-core-1.1.0.tgz","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"test":"vitest run","build":"tsup src/index.ts --format esm --dts --sourcemap --out-dir dist","typecheck":"tsc -p tsconfig.json"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:d8b9bbbf-d195-4ea9-8b5b-7ca981b18a8c"}},"_resolved":"/tmp/e0cba7cbc8ed1d90b981c66c7be6d520/visimer-core-1.1.0.tgz","_integrity":"sha512-NyrgUWp0pA4SBYU0As7PwelfDt0uNSos4u9f4IvAPLhfqBzlqBueuqNsKsM1bAICSk/d4u6UTVTyWNgZTBuVyg==","repository":{"url":"git+https://github.com/inkeep/visimer.git","type":"git","directory":"packages/core"},"_npmVersion":"11.19.0","description":"Headless bidirectional editing engine for Mermaid diagrams: lossless CST, semantic graph, ops compiled to minimal text edits.","directories":{},"sideEffects":false,"_nodeVersion":"22.23.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^2.1.9","typescript":"^5.6.3"},"_npmOperationalInternal":{"tmp":"tmp/core_1.1.0_1786154135176_0.034027481327012055","host":"s3://npm-registry-packages-npm-production"}},"1.1.1":{"name":"@visimer/core","version":"1.1.1","keywords":["mermaid","wysiwyg","diagram","editor","flowchart","visual-editing"],"author":{"name":"Inkeep"},"license":"MIT","_id":"@visimer/core@1.1.1","maintainers":[{"name":"robert-inkeep","email":"robert@inkeep.com"},{"name":"abraham-inkeep","email":"anuoluwapo-abraham-v@inkeep.com"}],"homepage":"https://github.com/inkeep/visimer#readme","bugs":{"url":"https://github.com/inkeep/visimer/issues"},"dist":{"shasum":"d4794688166c1f165006f6eecb5a4a5fc533ef57","tarball":"https://registry.npmjs.org/@visimer/core/-/core-1.1.1.tgz","fileCount":30,"integrity":"sha512-mJtfLA0Gbl/us2C/JAy4nGZzUxGWOVthPOxVMt4FfxU9xli00+6MknC5pNhZBIAbV7Xxo/H8v6bM4d/6wRu5aQ==","signatures":[{"sig":"MEYCIQDymzokpPpE21sglMhEAHYdnZoBZpKpDdH2Ie/PZxYo1wIhAJkX8DtWaxNMruPrK84ZUmLHEw/0XB9YQa8wZkzg6bT9","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@visimer%2fcore@1.1.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":622169},"main":"./dist/index.js","type":"module","_from":"file:visimer-core-1.1.1.tgz","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"test":"vitest run","build":"tsup src/index.ts --format esm --dts --sourcemap --out-dir dist","typecheck":"tsc -p tsconfig.json"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:d8b9bbbf-d195-4ea9-8b5b-7ca981b18a8c"}},"_resolved":"/tmp/ff65f12fb7c51a35402fdb8b04974366/visimer-core-1.1.1.tgz","_integrity":"sha512-mJtfLA0Gbl/us2C/JAy4nGZzUxGWOVthPOxVMt4FfxU9xli00+6MknC5pNhZBIAbV7Xxo/H8v6bM4d/6wRu5aQ==","repository":{"url":"git+https://github.com/inkeep/visimer.git","type":"git","directory":"packages/core"},"_npmVersion":"11.19.0","description":"Headless bidirectional editing engine for Mermaid diagrams: lossless CST, semantic graph, ops compiled to minimal text edits.","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^2.1.9","typescript":"^5.6.3"},"_npmOperationalInternal":{"tmp":"tmp/core_1.1.1_1786918800703_0.47296644410114874","host":"s3://npm-registry-packages-npm-production"}},"1.1.2":{"name":"@visimer/core","version":"1.1.2","description":"Headless bidirectional editing engine for Mermaid diagrams: lossless CST, semantic graph, ops compiled to minimal text edits.","type":"module","main":"./dist/index.js","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"devDependencies":{"typescript":"^5.6.3","vitest":"^2.1.9"},"license":"MIT","publishConfig":{"access":"public"},"author":{"name":"Inkeep"},"repository":{"type":"git","url":"git+https://github.com/inkeep/visimer.git","directory":"packages/core"},"homepage":"https://github.com/inkeep/visimer#readme","bugs":{"url":"https://github.com/inkeep/visimer/issues"},"keywords":["mermaid","wysiwyg","diagram","editor","flowchart","visual-editing"],"sideEffects":false,"scripts":{"test":"vitest run","typecheck":"tsc -p tsconfig.json","build":"tsup src/index.ts --format esm --dts --sourcemap --out-dir dist"},"_id":"@visimer/core@1.1.2","_integrity":"sha512-do8MDqlLQeDRI1fy2PUTVnzBkLrzpaq260UX1WrtE/3XtSoLge4T5oY+cvSXFyINhYiYKB9tgetkx+o14LFrjA==","_resolved":"/tmp/866c9489a9e91e6a3bd16c3e3a7d11d6/visimer-core-1.1.2.tgz","_from":"file:visimer-core-1.1.2.tgz","_nodeVersion":"22.23.2","_npmVersion":"11.19.0","dist":{"integrity":"sha512-do8MDqlLQeDRI1fy2PUTVnzBkLrzpaq260UX1WrtE/3XtSoLge4T5oY+cvSXFyINhYiYKB9tgetkx+o14LFrjA==","shasum":"12ebe1965b7a06aa15579bb3cf252aa7e01a2e13","tarball":"https://registry.npmjs.org/@visimer/core/-/core-1.1.2.tgz","fileCount":30,"unpackedSize":622169,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@visimer%2fcore@1.1.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIAyCsUOPkk24QXZCQ22fWtgIlitgdwcT2AncHZQN4be3AiBQcCxofsT6k3I5HRZuBMEhbBZQCNayqUFOXguP6PTcdA=="}]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:d8b9bbbf-d195-4ea9-8b5b-7ca981b18a8c"}},"directories":{},"maintainers":[{"name":"robert-inkeep","email":"robert@inkeep.com"},{"name":"abraham-inkeep","email":"anuoluwapo-abraham-v@inkeep.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/core_1.1.2_1787360064245_0.3510267940339231"},"_hasShrinkwrap":false}},"time":{"created":"2026-07-22T21:35:04.236Z","modified":"2026-08-22T00:54:24.763Z","0.1.0":"2026-07-22T21:35:04.546Z","1.0.1":"2026-07-29T17:40:42.700Z","1.0.2":"2026-08-07T12:51:48.424Z","1.1.0":"2026-08-08T01:55:35.321Z","1.1.1":"2026-08-16T22:20:00.861Z","1.1.2":"2026-08-22T00:54:24.436Z"},"bugs":{"url":"https://github.com/inkeep/visimer/issues"},"author":{"name":"Inkeep"},"license":"MIT","homepage":"https://github.com/inkeep/visimer#readme","keywords":["mermaid","wysiwyg","diagram","editor","flowchart","visual-editing"],"repository":{"type":"git","url":"git+https://github.com/inkeep/visimer.git","directory":"packages/core"},"description":"Headless bidirectional editing engine for Mermaid diagrams: lossless CST, semantic graph, ops compiled to minimal text edits.","maintainers":[{"name":"robert-inkeep","email":"robert@inkeep.com"},{"name":"abraham-inkeep","email":"anuoluwapo-abraham-v@inkeep.com"}],"readme":"# @visimer/core\n\nHeadless bidirectional editing engine for [Mermaid](https://mermaid.js.org) diagrams.\nText is the source of truth: a lossless CST and per-type semantic graphs turn visual\noperations (rename, connect, reorder, restyle) into **minimal text edits** against your\nactual Mermaid source. Zero DOM dependencies.\n\n```ts\nimport { MermaidWysiwygEditor } from '@visimer/core'\n\nconst editor = new MermaidWysiwygEditor({ code: 'flowchart TD\\n  A --> B' })\neditor.dispatch({ type: 'renameNode', id: 'A', label: 'Start' })\neditor.code // 'flowchart TD\\n  A[Start] --> B'\neditor.undo()\n```\n\n## Bring your own code editor\n\n`bindTextPane` syncs the engine with any code editor behind a five-method adapter.\nFor CodeMirror use [`@visimer/codemirror`](https://npmjs.com/package/@visimer/codemirror),\nfor Monaco use [`@visimer/monaco`](https://npmjs.com/package/@visimer/monaco);\nboth are implementations of this contract. For anything else, implement the adapter:\n\n```ts\nimport { bindTextPane } from '@visimer/core'\n\nconst binding = bindTextPane(editor, {\n  getText: () => /* current document text */,\n  applyEdits: (edits) => /* apply {start, end, text} offsets to the document */,\n  setText: (text) => /* replace the whole document (resync safety net) */,\n  setHighlights: (spans) => /* highlight the selected entities' ranges */,\n  revealPosition: (offset) => /* optional: scroll an offset into view */,\n})\n\n// then wire your editor's events:\n//   document changed  -> binding.notifyTextChange()\n//   caret moved       -> binding.notifyCaretMove(offset)\n//   undo/redo keys    -> binding.undo() / binding.redo()\n```\n\nTyping flows into the engine, engine changes come back as minimal edits, entity\nselection syncs both ways, and undo/redo shares the canvas history stack. The\nnotify methods no-op while the binding is applying engine edits, so there is no\necho loop to guard against.\n\nPairs with [`@visimer/dom`](https://npmjs.com/package/@visimer/dom)\n(interactive canvas). Docs: [github.com/inkeep/visimer](https://github.com/inkeep/visimer)\n","readmeFilename":"README.md"}