{"_id":"@abikmushyakho/novel","_rev":"13-a6756b48b3a3beeb31b433202177006a","time":{"created":"2023-12-14T18:14:10.261Z","0.1.22":"2023-12-14T18:09:26.440Z","modified":"2023-12-20T10:27:51.533Z","0.1.23":"2023-12-14T18:14:10.493Z","0.1.24":"2023-12-14T18:32:03.013Z","0.1.25":"2023-12-14T18:39:40.615Z","0.1.26":"2023-12-20T06:28:23.122Z","0.1.27":"2023-12-20T07:01:36.976Z","0.1.28":"2023-12-20T07:59:27.317Z","0.1.29":"2023-12-20T08:32:28.706Z","0.1.30":"2023-12-20T09:16:32.182Z","0.1.31":"2023-12-20T09:32:40.213Z","0.1.32":"2023-12-20T10:12:18.020Z","0.1.33":"2023-12-20T10:27:51.385Z"},"name":"@abikmushyakho/novel","dist-tags":{"latest":"0.1.33"},"versions":{"0.1.23":{"name":"@abikmushyakho/novel","version":"0.1.23","description":"Notion-style WYSIWYG editor with AI-powered autocompletions","license":"Apache-2.0","main":"./dist/index.js","module":"./dist/index.mjs","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","module":"./dist/index.mjs","require":"./dist/index.js"}},"scripts":{"build":"tsup","dev":"tsup --watch","check-types":"tsc --noEmit"},"peerDependencies":{"react":"^18.2.0"},"dependencies":{"@radix-ui/react-popover":"^1.0.6","@tiptap/core":"^2.1.7","@tiptap/extension-color":"^2.1.7","@tiptap/extension-highlight":"^2.1.7","@tiptap/extension-horizontal-rule":"^2.1.7","@tiptap/extension-image":"^2.1.7","@tiptap/extension-link":"^2.1.7","@tiptap/extension-placeholder":"2.0.3","@tiptap/extension-task-item":"^2.1.7","@tiptap/extension-task-list":"^2.1.7","@tiptap/extension-text-style":"^2.1.7","@tiptap/extension-underline":"^2.1.7","@tiptap/pm":"^2.1.7","@tiptap/react":"^2.1.7","@tiptap/starter-kit":"^2.1.7","@tiptap/suggestion":"^2.1.7","@types/node":"18.15.3","@types/react":"18.0.28","@types/react-dom":"18.0.11","@upstash/ratelimit":"^0.4.4","@vercel/analytics":"^1.0.2","@vercel/blob":"^0.9.3","@vercel/kv":"^0.2.2","ai":"^2.2.11","clsx":"^1.2.1","eslint":"8.36.0","eslint-config-next":"13.2.4","eventsource-parser":"^0.1.0","lucide-react":"^0.244.0","next":"13.4.20-canary.15","react":"18.2.0","react-dom":"18.2.0","react-markdown":"^8.0.7","sonner":"^0.7.0","tailwind-merge":"^1.14.0","tippy.js":"^6.3.7","tiptap-markdown":"^0.8.2","typescript":"4.9.5","use-debounce":"^9.0.4"},"devDependencies":{"@types/react":"^18.2.5","eslint":"^7.32.0","postcss":"^8.4.29","react":"^18.2.0","tailwind-config":"workspace:*","tsconfig":"workspace:*","tsup":"^7.2.0","typescript":"^4.9.4"},"author":{"name":"Steven Tey","email":"stevensteel97@gmail.com"},"homepage":"https://novel.sh","repository":{"type":"git","url":"git+https://github.com/steven-tey/novel.git"},"bugs":{"url":"https://github.com/steven-tey/novel/issues"},"keywords":["ai","novel","editor","markdown","nextjs","react"],"gitHead":"4c31a50af97de10bdbdbbebf183c763363ec8bb2","_id":"@abikmushyakho/novel@0.1.23","_nodeVersion":"16.13.0","_npmVersion":"8.1.0","dist":{"integrity":"sha512-0sdysU+kGDDo+1fE9e95l8EUosJoyqGs+nFrOShCR8UsuC2PXnUrhcTJ4BKQXz603XXBUGnAXuKGrWq3P1mxAA==","shasum":"f7aec186bfa03497b3e13a0735810077cd295b70","tarball":"https://registry.npmjs.org/@abikmushyakho/novel/-/novel-0.1.23.tgz","fileCount":2,"unpackedSize":12100,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDh1cc8L8JNwfB54e+VbXPvjLfcfMbXZfQ/RGuOWnp5qQIhAJKTRyG4tcA3uXJBROh0/Y2F+cDEXvR2vqkBpnYdbXR3"}]},"_npmUser":{"name":"abikmushyakho","email":"abikmushyakho9@gmail.com"},"directories":{},"maintainers":[{"name":"abikmushyakho","email":"abikmushyakho9@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/novel_0.1.23_1702577650337_0.7851869562022862"},"_hasShrinkwrap":false},"0.1.24":{"name":"@abikmushyakho/novel","version":"0.1.24","description":"Notion-style WYSIWYG editor with AI-powered autocompletions","license":"Apache-2.0","main":"./dist/index.js","module":"./dist/index.mjs","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","module":"./dist/index.mjs","require":"./dist/index.js"}},"scripts":{"build":"tsup","dev":"tsup --watch","check-types":"tsc --noEmit"},"peerDependencies":{"react":"^18.2.0"},"dependencies":{"@radix-ui/react-popover":"^1.0.6","@tiptap/core":"^2.1.7","@tiptap/extension-color":"^2.1.7","@tiptap/extension-highlight":"^2.1.7","@tiptap/extension-horizontal-rule":"^2.1.7","@tiptap/extension-image":"^2.1.7","@tiptap/extension-link":"^2.1.7","@tiptap/extension-placeholder":"2.0.3","@tiptap/extension-task-item":"^2.1.7","@tiptap/extension-task-list":"^2.1.7","@tiptap/extension-text-style":"^2.1.7","@tiptap/extension-underline":"^2.1.7","@tiptap/pm":"^2.1.7","@tiptap/react":"^2.1.7","@tiptap/starter-kit":"^2.1.7","@tiptap/suggestion":"^2.1.7","@types/node":"18.15.3","@types/react":"18.0.28","@types/react-dom":"18.0.11","@upstash/ratelimit":"^0.4.4","@vercel/analytics":"^1.0.2","@vercel/blob":"^0.9.3","@vercel/kv":"^0.2.2","ai":"^2.2.11","clsx":"^1.2.1","eslint":"8.36.0","eslint-config-next":"13.2.4","eventsource-parser":"^0.1.0","lucide-react":"^0.244.0","next":"13.4.20-canary.15","react":"18.2.0","react-dom":"18.2.0","react-markdown":"^8.0.7","sonner":"^0.7.0","tailwind-merge":"^1.14.0","tippy.js":"^6.3.7","tiptap-markdown":"^0.8.2","typescript":"4.9.5","use-debounce":"^9.0.4"},"devDependencies":{"@types/react":"^18.2.5","eslint":"^7.32.0","postcss":"^8.4.29","react":"^18.2.0","tailwind-config":"workspace:*","tsconfig":"workspace:*","tsup":"^7.2.0","typescript":"^4.9.4"},"author":{"name":"Steven Tey","email":"stevensteel97@gmail.com"},"homepage":"https://novel.sh","repository":{"type":"git","url":"git+https://github.com/steven-tey/novel.git"},"bugs":{"url":"https://github.com/steven-tey/novel/issues"},"keywords":["ai","novel","editor","markdown","nextjs","react"],"_id":"@abikmushyakho/novel@0.1.24","gitHead":"4c31a50af97de10bdbdbbebf183c763363ec8bb2","_nodeVersion":"18.19.0","_npmVersion":"10.2.3","dist":{"integrity":"sha512-BsuITf3py0xsZyXiDQKriNdhWQSCfY67RZ27BIc5h576Ic+SowlXk6qXwqm92f8KWw5EhhBhY80yaD+1j4te4Q==","shasum":"a14a820dcc31a5000fc335044d9596aaf7255b7b","tarball":"https://registry.npmjs.org/@abikmushyakho/novel/-/novel-0.1.24.tgz","fileCount":6,"unpackedSize":1294701,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDMZVY9LQfbWnrLzWzF2tWs1tZma9MRC4/zbjo0+RD+NAIhAL7Bs1QG6j2cZN5VihDjdmQBW1D7fttsazC3UB2Nxnkp"}]},"_npmUser":{"name":"abikmushyakho","email":"abikmushyakho9@gmail.com"},"directories":{},"maintainers":[{"name":"abikmushyakho","email":"abikmushyakho9@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/novel_0.1.24_1702578722785_0.48047069941783493"},"_hasShrinkwrap":false},"0.1.25":{"name":"@abikmushyakho/novel","version":"0.1.25","description":"Notion-style WYSIWYG editor with AI-powered autocompletions","license":"Apache-2.0","main":"./dist/index.js","module":"./dist/index.mjs","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","module":"./dist/index.mjs","require":"./dist/index.js"}},"scripts":{"build":"tsup","dev":"tsup --watch","check-types":"tsc --noEmit"},"peerDependencies":{"react":"^18.2.0"},"dependencies":{"@radix-ui/react-popover":"^1.0.6","@tiptap/core":"^2.1.7","@tiptap/extension-color":"^2.1.7","@tiptap/extension-highlight":"^2.1.7","@tiptap/extension-horizontal-rule":"^2.1.7","@tiptap/extension-image":"^2.1.7","@tiptap/extension-link":"^2.1.7","@tiptap/extension-placeholder":"2.0.3","@tiptap/extension-task-item":"^2.1.7","@tiptap/extension-task-list":"^2.1.7","@tiptap/extension-text-style":"^2.1.7","@tiptap/extension-underline":"^2.1.7","@tiptap/pm":"^2.1.7","@tiptap/react":"^2.1.7","@tiptap/starter-kit":"^2.1.7","@tiptap/suggestion":"^2.1.7","@types/node":"18.15.3","@types/react":"18.0.28","@types/react-dom":"18.0.11","@upstash/ratelimit":"^0.4.4","@vercel/analytics":"^1.0.2","@vercel/blob":"^0.9.3","@vercel/kv":"^0.2.2","ai":"^2.2.11","clsx":"^1.2.1","eslint":"8.36.0","eslint-config-next":"13.2.4","eventsource-parser":"^0.1.0","lucide-react":"^0.244.0","next":"13.4.20-canary.15","react":"18.2.0","react-dom":"18.2.0","react-markdown":"^8.0.7","sonner":"^0.7.0","tailwind-merge":"^1.14.0","tippy.js":"^6.3.7","tiptap-markdown":"^0.8.2","typescript":"4.9.5","use-debounce":"^9.0.4"},"devDependencies":{"@types/react":"^18.2.5","eslint":"^7.32.0","postcss":"^8.4.29","react":"^18.2.0","tailwind-config":"workspace:*","tsconfig":"workspace:*","tsup":"^7.2.0","typescript":"^4.9.4"},"author":{"name":"Steven Tey","email":"stevensteel97@gmail.com"},"homepage":"https://novel.sh","repository":{"type":"git","url":"git+https://github.com/steven-tey/novel.git"},"bugs":{"url":"https://github.com/steven-tey/novel/issues"},"keywords":["ai","novel","editor","markdown","nextjs","react"],"_id":"@abikmushyakho/novel@0.1.25","gitHead":"4c31a50af97de10bdbdbbebf183c763363ec8bb2","_nodeVersion":"18.19.0","_npmVersion":"10.2.3","dist":{"integrity":"sha512-rmijUvimdcp1WDBwIwztm/gTEvIU97n+lwGkyBT78xp5KC+G1Jl3PI1wLt8Fqos8ik+BUdXv8hNHNIy3YQgzHg==","shasum":"1045c81a45782540bae25c7171eceb223f8c66d2","tarball":"https://registry.npmjs.org/@abikmushyakho/novel/-/novel-0.1.25.tgz","fileCount":6,"unpackedSize":1294701,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFoV0AvrafTm+sh/57A0Z+kgyxJK8nNGIlD1OWKjpJumAiAZozgKtwPY5SnqFVvT3NjJgAJP1VHQpn2odKBoAh8oRQ=="}]},"_npmUser":{"name":"abikmushyakho","email":"abikmushyakho9@gmail.com"},"directories":{},"maintainers":[{"name":"abikmushyakho","email":"abikmushyakho9@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/novel_0.1.25_1702579180378_0.2888930169151571"},"_hasShrinkwrap":false},"0.1.26":{"name":"@abikmushyakho/novel","version":"0.1.26","description":"Notion-style WYSIWYG editor with AI-powered autocompletions","license":"Apache-2.0","main":"./dist/index.js","module":"./dist/index.mjs","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","module":"./dist/index.mjs","require":"./dist/index.js"}},"scripts":{"build":"tsup","dev":"tsup --watch","check-types":"tsc --noEmit"},"peerDependencies":{"react":"^18.2.0"},"dependencies":{"@radix-ui/react-popover":"^1.0.6","@tiptap/core":"^2.1.7","@tiptap/extension-color":"^2.1.7","@tiptap/extension-highlight":"^2.1.7","@tiptap/extension-horizontal-rule":"^2.1.7","@tiptap/extension-image":"^2.1.7","@tiptap/extension-link":"^2.1.7","@tiptap/extension-placeholder":"2.0.3","@tiptap/extension-task-item":"^2.1.7","@tiptap/extension-task-list":"^2.1.7","@tiptap/extension-text-style":"^2.1.7","@tiptap/extension-underline":"^2.1.7","@tiptap/pm":"^2.1.7","@tiptap/react":"^2.1.7","@tiptap/starter-kit":"^2.1.7","@tiptap/suggestion":"^2.1.7","@types/node":"18.15.3","@types/react":"18.0.28","@types/react-dom":"18.0.11","@upstash/ratelimit":"^0.4.4","@vercel/analytics":"^1.0.2","@vercel/blob":"^0.9.3","@vercel/kv":"^0.2.2","ai":"^2.2.11","clsx":"^1.2.1","eslint":"8.36.0","eslint-config-next":"13.2.4","eventsource-parser":"^0.1.0","lucide-react":"^0.244.0","next":"13.4.20-canary.15","react":"18.2.0","react-dom":"18.2.0","react-markdown":"^8.0.7","sonner":"^0.7.0","tailwind-merge":"^1.14.0","tippy.js":"^6.3.7","tiptap-markdown":"^0.8.2","typescript":"4.9.5","use-debounce":"^9.0.4"},"devDependencies":{"@types/react":"^18.2.5","eslint":"^7.32.0","postcss":"^8.4.29","react":"^18.2.0","tailwind-config":"workspace:*","tsconfig":"workspace:*","tsup":"^7.2.0","typescript":"^4.9.4"},"author":{"name":"Steven Tey","email":"stevensteel97@gmail.com"},"homepage":"https://novel.sh","repository":{"type":"git","url":"git+https://github.com/steven-tey/novel.git"},"bugs":{"url":"https://github.com/steven-tey/novel/issues"},"keywords":["ai","novel","editor","markdown","nextjs","react"],"_id":"@abikmushyakho/novel@0.1.26","gitHead":"4c31a50af97de10bdbdbbebf183c763363ec8bb2","_nodeVersion":"18.19.0","_npmVersion":"10.2.3","dist":{"integrity":"sha512-7y1VCLvfx0E6I+p+/k2mMYhbdlNsrKL8Cjn6bF4mJ10EglqXDWfEDC4pL2ziwNgaBkTwg8ZwLMaX5nwXpcU+xg==","shasum":"762e1b2e77000c28bc84279e4c9d3718cb8b5dac","tarball":"https://registry.npmjs.org/@abikmushyakho/novel/-/novel-0.1.26.tgz","fileCount":6,"unpackedSize":1294837,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDeNVWiWp5tVfLrtflxw+zRaFWw6q7vzTbbnA0ZCzs1NwIgGFS91GGVTupvrawBafwCLnvuxynCHm469NhjMPYknWM="}]},"_npmUser":{"name":"abikmushyakho","email":"abikmushyakho9@gmail.com"},"directories":{},"maintainers":[{"name":"abikmushyakho","email":"abikmushyakho9@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/novel_0.1.26_1703053702809_0.5051894701092849"},"_hasShrinkwrap":false},"0.1.27":{"name":"@abikmushyakho/novel","version":"0.1.27","description":"Notion-style WYSIWYG editor with AI-powered autocompletions","license":"Apache-2.0","main":"./dist/index.js","module":"./dist/index.mjs","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","module":"./dist/index.mjs","require":"./dist/index.js"}},"scripts":{"build":"tsup","dev":"tsup --watch","check-types":"tsc --noEmit"},"peerDependencies":{"react":"^18.2.0"},"dependencies":{"@radix-ui/react-popover":"^1.0.6","@tiptap/core":"^2.1.7","@tiptap/extension-color":"^2.1.7","@tiptap/extension-highlight":"^2.1.7","@tiptap/extension-horizontal-rule":"^2.1.7","@tiptap/extension-image":"^2.1.7","@tiptap/extension-link":"^2.1.7","@tiptap/extension-placeholder":"2.0.3","@tiptap/extension-task-item":"^2.1.7","@tiptap/extension-task-list":"^2.1.7","@tiptap/extension-text-style":"^2.1.7","@tiptap/extension-underline":"^2.1.7","@tiptap/pm":"^2.1.7","@tiptap/react":"^2.1.7","@tiptap/starter-kit":"^2.1.7","@tiptap/suggestion":"^2.1.7","@types/node":"18.15.3","@types/react":"18.0.28","@types/react-dom":"18.0.11","@upstash/ratelimit":"^0.4.4","@vercel/analytics":"^1.0.2","@vercel/blob":"^0.9.3","@vercel/kv":"^0.2.2","ai":"^2.2.11","clsx":"^1.2.1","eslint":"8.36.0","eslint-config-next":"13.2.4","eventsource-parser":"^0.1.0","lucide-react":"^0.244.0","next":"13.4.20-canary.15","react":"18.2.0","react-dom":"18.2.0","react-markdown":"^8.0.7","sonner":"^0.7.0","tailwind-merge":"^1.14.0","tippy.js":"^6.3.7","tiptap-markdown":"^0.8.2","typescript":"4.9.5","use-debounce":"^9.0.4"},"devDependencies":{"@types/react":"^18.2.5","eslint":"^7.32.0","postcss":"^8.4.29","react":"^18.2.0","tailwind-config":"workspace:*","tsconfig":"workspace:*","tsup":"^7.2.0","typescript":"^4.9.4"},"author":{"name":"Steven Tey","email":"stevensteel97@gmail.com"},"homepage":"https://novel.sh","repository":{"type":"git","url":"git+https://github.com/steven-tey/novel.git"},"bugs":{"url":"https://github.com/steven-tey/novel/issues"},"keywords":["ai","novel","editor","markdown","nextjs","react"],"_id":"@abikmushyakho/novel@0.1.27","gitHead":"0b6ec16c973375c553e3ce806f18bedce814896d","_nodeVersion":"18.19.0","_npmVersion":"10.2.3","dist":{"integrity":"sha512-pj1BEvroMXwa+lYrgFNJc2/KL2K/I0+Uw4Li3XbipaWwmBvuR9aB71rC8/ieZsVT7gpgipnYbviNRcODfeyFxQ==","shasum":"2717fd261191e4494f1a51751c5c954202090ef3","tarball":"https://registry.npmjs.org/@abikmushyakho/novel/-/novel-0.1.27.tgz","fileCount":6,"unpackedSize":1295469,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIFDV2euX6MBZyldEsO8PyVQ4ADSBZ3zssbzK5PWowgsrAiEA3qnIdxuuA0lRaOjpnsJ0ViAmbOcUJ9aXSOfOtJXgQL8="}]},"_npmUser":{"name":"abikmushyakho","email":"abikmushyakho9@gmail.com"},"directories":{},"maintainers":[{"name":"abikmushyakho","email":"abikmushyakho9@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/novel_0.1.27_1703055696658_0.6064831691076513"},"_hasShrinkwrap":false},"0.1.28":{"name":"@abikmushyakho/novel","version":"0.1.28","description":"Notion-style WYSIWYG editor with AI-powered autocompletions","license":"Apache-2.0","main":"./dist/index.js","module":"./dist/index.mjs","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","module":"./dist/index.mjs","require":"./dist/index.js"}},"scripts":{"build":"tsup","dev":"tsup --watch","check-types":"tsc --noEmit"},"peerDependencies":{"react":"^18.2.0"},"dependencies":{"@radix-ui/react-popover":"^1.0.6","@tiptap/core":"^2.1.7","@tiptap/extension-color":"^2.1.7","@tiptap/extension-highlight":"^2.1.7","@tiptap/extension-horizontal-rule":"^2.1.7","@tiptap/extension-image":"^2.1.7","@tiptap/extension-link":"^2.1.7","@tiptap/extension-placeholder":"2.0.3","@tiptap/extension-task-item":"^2.1.7","@tiptap/extension-task-list":"^2.1.7","@tiptap/extension-text-style":"^2.1.7","@tiptap/extension-underline":"^2.1.7","@tiptap/pm":"^2.1.7","@tiptap/react":"^2.1.7","@tiptap/starter-kit":"^2.1.7","@tiptap/suggestion":"^2.1.7","@types/node":"18.15.3","@types/react":"18.0.28","@types/react-dom":"18.0.11","@upstash/ratelimit":"^0.4.4","@vercel/analytics":"^1.0.2","@vercel/blob":"^0.9.3","@vercel/kv":"^0.2.2","ai":"^2.2.11","clsx":"^1.2.1","eslint":"8.36.0","eslint-config-next":"13.2.4","eventsource-parser":"^0.1.0","lucide-react":"^0.244.0","next":"13.4.20-canary.15","react":"18.2.0","react-dom":"18.2.0","react-markdown":"^8.0.7","sonner":"^0.7.0","tailwind-merge":"^1.14.0","tippy.js":"^6.3.7","tiptap-markdown":"^0.8.2","typescript":"4.9.5","use-debounce":"^9.0.4"},"devDependencies":{"@types/react":"^18.2.5","eslint":"^7.32.0","postcss":"^8.4.29","react":"^18.2.0","tailwind-config":"workspace:*","tsconfig":"workspace:*","tsup":"^7.2.0","typescript":"^4.9.4"},"author":{"name":"Steven Tey","email":"stevensteel97@gmail.com"},"homepage":"https://novel.sh","repository":{"type":"git","url":"git+https://github.com/steven-tey/novel.git"},"bugs":{"url":"https://github.com/steven-tey/novel/issues"},"keywords":["ai","novel","editor","markdown","nextjs","react"],"_id":"@abikmushyakho/novel@0.1.28","gitHead":"0b6ec16c973375c553e3ce806f18bedce814896d","_nodeVersion":"18.19.0","_npmVersion":"10.2.3","dist":{"integrity":"sha512-WlFn7sjlkIT2dOAo2dJRh4tCU7OAgXihlXrn2grEQ1XQHeieAp+cWP3m7O0eVteu2Mquu+0B0zYgRXAlX561+Q==","shasum":"17a882b5fb132a7fafd5d091200f072710cf51ed","tarball":"https://registry.npmjs.org/@abikmushyakho/novel/-/novel-0.1.28.tgz","fileCount":6,"unpackedSize":1297211,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIGBPOPFGimkHsTTCYNvrKR8F9NJwK6SutSTnbMAvjQ7aAiBvT1jwun+00J8Gw332h6A1Gjtqi0heusTNIK5DTLajvw=="}]},"_npmUser":{"name":"abikmushyakho","email":"abikmushyakho9@gmail.com"},"directories":{},"maintainers":[{"name":"abikmushyakho","email":"abikmushyakho9@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/novel_0.1.28_1703059167052_0.9930469067373504"},"_hasShrinkwrap":false},"0.1.29":{"name":"@abikmushyakho/novel","version":"0.1.29","description":"Notion-style WYSIWYG editor with AI-powered autocompletions","license":"Apache-2.0","main":"./dist/index.js","module":"./dist/index.mjs","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","module":"./dist/index.mjs","require":"./dist/index.js"}},"scripts":{"build":"tsup","dev":"tsup --watch","check-types":"tsc --noEmit"},"peerDependencies":{"react":"^18.2.0"},"dependencies":{"@radix-ui/react-popover":"^1.0.6","@tiptap/core":"^2.1.7","@tiptap/extension-color":"^2.1.7","@tiptap/extension-highlight":"^2.1.7","@tiptap/extension-horizontal-rule":"^2.1.7","@tiptap/extension-image":"^2.1.7","@tiptap/extension-link":"^2.1.7","@tiptap/extension-placeholder":"2.0.3","@tiptap/extension-task-item":"^2.1.7","@tiptap/extension-task-list":"^2.1.7","@tiptap/extension-text-style":"^2.1.7","@tiptap/extension-underline":"^2.1.7","@tiptap/pm":"^2.1.7","@tiptap/react":"^2.1.7","@tiptap/starter-kit":"^2.1.7","@tiptap/suggestion":"^2.1.7","@types/node":"18.15.3","@types/react":"18.0.28","@types/react-dom":"18.0.11","@upstash/ratelimit":"^0.4.4","@vercel/analytics":"^1.0.2","@vercel/blob":"^0.9.3","@vercel/kv":"^0.2.2","ai":"^2.2.11","clsx":"^1.2.1","eslint":"8.36.0","eslint-config-next":"13.2.4","eventsource-parser":"^0.1.0","lucide-react":"^0.244.0","next":"13.4.20-canary.15","react":"18.2.0","react-dom":"18.2.0","react-markdown":"^8.0.7","sonner":"^0.7.0","tailwind-merge":"^1.14.0","tippy.js":"^6.3.7","tiptap-markdown":"^0.8.2","typescript":"4.9.5","use-debounce":"^9.0.4"},"devDependencies":{"@types/react":"^18.2.5","eslint":"^7.32.0","postcss":"^8.4.29","react":"^18.2.0","tailwind-config":"workspace:*","tsconfig":"workspace:*","tsup":"^7.2.0","typescript":"^4.9.4"},"author":{"name":"Steven Tey","email":"stevensteel97@gmail.com"},"homepage":"https://novel.sh","repository":{"type":"git","url":"git+https://github.com/steven-tey/novel.git"},"bugs":{"url":"https://github.com/steven-tey/novel/issues"},"keywords":["ai","novel","editor","markdown","nextjs","react"],"_id":"@abikmushyakho/novel@0.1.29","gitHead":"0b6ec16c973375c553e3ce806f18bedce814896d","_nodeVersion":"18.19.0","_npmVersion":"10.2.3","dist":{"integrity":"sha512-LaaJXwQ0YlFqvkQO+LdEtj4GiF+DStmRpt/OccN33tZKGvn/NWemL2SBeor7gDtDJKrOqae+w8wJWr8g2KZvdQ==","shasum":"d19af4e21e88e2224f915effb0941edfbc3686e4","tarball":"https://registry.npmjs.org/@abikmushyakho/novel/-/novel-0.1.29.tgz","fileCount":6,"unpackedSize":1298264,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDvbh5XHXKpF94l/kGdWo9509tGbZpCrh+WYKXxKB02cAIhANVFA2ClmLU5cfN6CWqmbtcIc3xCdifGJF/wda4gla8X"}]},"_npmUser":{"name":"abikmushyakho","email":"abikmushyakho9@gmail.com"},"directories":{},"maintainers":[{"name":"abikmushyakho","email":"abikmushyakho9@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/novel_0.1.29_1703061148507_0.6123739536604154"},"_hasShrinkwrap":false},"0.1.30":{"name":"@abikmushyakho/novel","version":"0.1.30","description":"Notion-style WYSIWYG editor with AI-powered autocompletions","license":"Apache-2.0","main":"./dist/index.js","module":"./dist/index.mjs","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","module":"./dist/index.mjs","require":"./dist/index.js"}},"scripts":{"build":"tsup","dev":"tsup --watch","check-types":"tsc --noEmit"},"peerDependencies":{"react":"^18.2.0"},"dependencies":{"@radix-ui/react-popover":"^1.0.6","@tiptap/core":"^2.1.7","@tiptap/extension-color":"^2.1.7","@tiptap/extension-highlight":"^2.1.7","@tiptap/extension-horizontal-rule":"^2.1.7","@tiptap/extension-image":"^2.1.7","@tiptap/extension-link":"^2.1.7","@tiptap/extension-placeholder":"2.0.3","@tiptap/extension-task-item":"^2.1.7","@tiptap/extension-task-list":"^2.1.7","@tiptap/extension-text-style":"^2.1.7","@tiptap/extension-underline":"^2.1.7","@tiptap/pm":"^2.1.7","@tiptap/react":"^2.1.7","@tiptap/starter-kit":"^2.1.7","@tiptap/suggestion":"^2.1.7","@types/node":"18.15.3","@types/react":"18.0.28","@types/react-dom":"18.0.11","@upstash/ratelimit":"^0.4.4","@vercel/analytics":"^1.0.2","@vercel/blob":"^0.9.3","@vercel/kv":"^0.2.2","ai":"^2.2.11","clsx":"^1.2.1","eslint":"8.36.0","eslint-config-next":"13.2.4","eventsource-parser":"^0.1.0","lucide-react":"^0.244.0","next":"13.4.20-canary.15","react":"18.2.0","react-dom":"18.2.0","react-markdown":"^8.0.7","sonner":"^0.7.0","tailwind-merge":"^1.14.0","tippy.js":"^6.3.7","tiptap-markdown":"^0.8.2","typescript":"4.9.5","use-debounce":"^9.0.4"},"devDependencies":{"@types/react":"^18.2.5","eslint":"^7.32.0","postcss":"^8.4.29","react":"^18.2.0","tailwind-config":"workspace:*","tsconfig":"workspace:*","tsup":"^7.2.0","typescript":"^4.9.4"},"author":{"name":"Steven Tey","email":"stevensteel97@gmail.com"},"homepage":"https://novel.sh","repository":{"type":"git","url":"git+https://github.com/steven-tey/novel.git"},"bugs":{"url":"https://github.com/steven-tey/novel/issues"},"keywords":["ai","novel","editor","markdown","nextjs","react"],"_id":"@abikmushyakho/novel@0.1.30","gitHead":"0b6ec16c973375c553e3ce806f18bedce814896d","_nodeVersion":"18.19.0","_npmVersion":"10.2.3","dist":{"integrity":"sha512-EM3D2jQRF/GrF4SJdJ9uMtUXpvYS4S6XaYT/s5gVeDkpj6q5/xvaYMa5GlK0y+o53zcYF2Tfz9wiH3tkBn+0Ag==","shasum":"6bb3519c0152b8190414a54e1c1e515e014c16b1","tarball":"https://registry.npmjs.org/@abikmushyakho/novel/-/novel-0.1.30.tgz","fileCount":6,"unpackedSize":1297575,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCGJswcacKT8rMkB2A3+MyAt615nJvjvnovZTU/XGmS4AIgFQgZQ6uZ9cGeQlLNPKppX32QuMaoOL1N2JmTDu3u0y8="}]},"_npmUser":{"name":"abikmushyakho","email":"abikmushyakho9@gmail.com"},"directories":{},"maintainers":[{"name":"abikmushyakho","email":"abikmushyakho9@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/novel_0.1.30_1703063791937_0.30539412216180906"},"_hasShrinkwrap":false},"0.1.31":{"name":"@abikmushyakho/novel","version":"0.1.31","description":"Notion-style WYSIWYG editor with AI-powered autocompletions","license":"Apache-2.0","main":"./dist/index.js","module":"./dist/index.mjs","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","module":"./dist/index.mjs","require":"./dist/index.js"}},"scripts":{"build":"tsup","dev":"tsup --watch","check-types":"tsc --noEmit"},"peerDependencies":{"react":"^18.2.0"},"dependencies":{"@radix-ui/react-popover":"^1.0.6","@tiptap/core":"^2.1.7","@tiptap/extension-color":"^2.1.7","@tiptap/extension-highlight":"^2.1.7","@tiptap/extension-horizontal-rule":"^2.1.7","@tiptap/extension-image":"^2.1.7","@tiptap/extension-link":"^2.1.7","@tiptap/extension-placeholder":"2.0.3","@tiptap/extension-task-item":"^2.1.7","@tiptap/extension-task-list":"^2.1.7","@tiptap/extension-text-style":"^2.1.7","@tiptap/extension-underline":"^2.1.7","@tiptap/pm":"^2.1.7","@tiptap/react":"^2.1.7","@tiptap/starter-kit":"^2.1.7","@tiptap/suggestion":"^2.1.7","@types/node":"18.15.3","@types/react":"18.0.28","@types/react-dom":"18.0.11","@upstash/ratelimit":"^0.4.4","@vercel/analytics":"^1.0.2","@vercel/blob":"^0.9.3","@vercel/kv":"^0.2.2","ai":"^2.2.11","clsx":"^1.2.1","eslint":"8.36.0","eslint-config-next":"13.2.4","eventsource-parser":"^0.1.0","lucide-react":"^0.244.0","next":"13.4.20-canary.15","react":"18.2.0","react-dom":"18.2.0","react-markdown":"^8.0.7","sonner":"^0.7.0","tailwind-merge":"^1.14.0","tippy.js":"^6.3.7","tiptap-markdown":"^0.8.2","typescript":"4.9.5","use-debounce":"^9.0.4","axios":"^1.3.2"},"devDependencies":{"@types/react":"^18.2.5","eslint":"^7.32.0","postcss":"^8.4.29","react":"^18.2.0","tailwind-config":"workspace:*","tsconfig":"workspace:*","tsup":"^7.2.0","typescript":"^4.9.4"},"author":{"name":"Steven Tey","email":"stevensteel97@gmail.com"},"homepage":"https://novel.sh","repository":{"type":"git","url":"git+https://github.com/steven-tey/novel.git"},"bugs":{"url":"https://github.com/steven-tey/novel/issues"},"keywords":["ai","novel","editor","markdown","nextjs","react"],"_id":"@abikmushyakho/novel@0.1.31","gitHead":"e064f5f20ee63cb641b98c9f3d0f24623ca49373","_nodeVersion":"18.19.0","_npmVersion":"10.2.3","dist":{"integrity":"sha512-Hxsf2XGMG4Pd1LmMznWUIVlAZtZVj0pAFE1+k7UwaciGYeepYV7b3CCCHOG/CUXV5CTxvDYPfCEjUqh44R2njA==","shasum":"d2c0bb5fc3ab99c30fa91fff5b1d2546cdfdaab9","tarball":"https://registry.npmjs.org/@abikmushyakho/novel/-/novel-0.1.31.tgz","fileCount":6,"unpackedSize":1298279,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICsMPDSlUvAbe//QmPbxhLxJ3rwvC0P58vWHCoanQWXVAiEA1j6j34qFQ/h+D1dVT+q/pWvfg7sTkEcQ/4xAZLHpySg="}]},"_npmUser":{"name":"abikmushyakho","email":"abikmushyakho9@gmail.com"},"directories":{},"maintainers":[{"name":"abikmushyakho","email":"abikmushyakho9@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/novel_0.1.31_1703064759901_0.09808898816541967"},"_hasShrinkwrap":false},"0.1.32":{"name":"@abikmushyakho/novel","version":"0.1.32","description":"Notion-style WYSIWYG editor with AI-powered autocompletions","license":"Apache-2.0","main":"./dist/index.js","module":"./dist/index.mjs","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","module":"./dist/index.mjs","require":"./dist/index.js"}},"scripts":{"build":"tsup","dev":"tsup --watch","check-types":"tsc --noEmit"},"peerDependencies":{"react":"^18.2.0"},"dependencies":{"@radix-ui/react-popover":"^1.0.6","@tiptap/core":"^2.1.7","@tiptap/extension-color":"^2.1.7","@tiptap/extension-highlight":"^2.1.7","@tiptap/extension-horizontal-rule":"^2.1.7","@tiptap/extension-image":"^2.1.7","@tiptap/extension-link":"^2.1.7","@tiptap/extension-placeholder":"2.0.3","@tiptap/extension-task-item":"^2.1.7","@tiptap/extension-task-list":"^2.1.7","@tiptap/extension-text-style":"^2.1.7","@tiptap/extension-underline":"^2.1.7","@tiptap/pm":"^2.1.7","@tiptap/react":"^2.1.7","@tiptap/starter-kit":"^2.1.7","@tiptap/suggestion":"^2.1.7","@types/node":"18.15.3","@types/react":"18.0.28","@types/react-dom":"18.0.11","@upstash/ratelimit":"^0.4.4","@vercel/analytics":"^1.0.2","@vercel/blob":"^0.9.3","@vercel/kv":"^0.2.2","ai":"^2.2.11","clsx":"^1.2.1","eslint":"8.36.0","eslint-config-next":"13.2.4","eventsource-parser":"^0.1.0","lucide-react":"^0.244.0","next":"13.4.20-canary.15","react":"18.2.0","react-dom":"18.2.0","react-markdown":"^8.0.7","sonner":"^0.7.0","tailwind-merge":"^1.14.0","tippy.js":"^6.3.7","tiptap-markdown":"^0.8.2","typescript":"4.9.5","use-debounce":"^9.0.4","axios":"^1.3.2"},"devDependencies":{"@types/react":"^18.2.5","eslint":"^7.32.0","postcss":"^8.4.29","react":"^18.2.0","tailwind-config":"workspace:*","tsconfig":"workspace:*","tsup":"^7.2.0","typescript":"^4.9.4"},"author":{"name":"Steven Tey","email":"stevensteel97@gmail.com"},"homepage":"https://novel.sh","repository":{"type":"git","url":"git+https://github.com/steven-tey/novel.git"},"bugs":{"url":"https://github.com/steven-tey/novel/issues"},"keywords":["ai","novel","editor","markdown","nextjs","react"],"_id":"@abikmushyakho/novel@0.1.32","gitHead":"ed333483733e970b7de5e585e36f8cd843813616","_nodeVersion":"18.19.0","_npmVersion":"10.2.3","dist":{"integrity":"sha512-oz8p4UARQQ8c8sm302w0HD9r2d117wb2IY8fMhpYboGhcnAMlASQTBmcbP+78aNB12YXxav5EiMcBQMbuGsIwA==","shasum":"f041f6d0c767e07488cbf69e92c6b6d9fe1d9dc9","tarball":"https://registry.npmjs.org/@abikmushyakho/novel/-/novel-0.1.32.tgz","fileCount":6,"unpackedSize":1298167,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIAvpFwVIJGkWSyRcCPRfb78VnROTJbSFK+wXxrZjQMEHAiBgbQcUW12P+64nbSEu7wOx1B7t7+Cx+lVXCKD9lqz2zA=="}]},"_npmUser":{"name":"abikmushyakho","email":"abikmushyakho9@gmail.com"},"directories":{},"maintainers":[{"name":"abikmushyakho","email":"abikmushyakho9@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/novel_0.1.32_1703067137687_0.6873169153283467"},"_hasShrinkwrap":false},"0.1.33":{"name":"@abikmushyakho/novel","version":"0.1.33","description":"Notion-style WYSIWYG editor with AI-powered autocompletions","license":"Apache-2.0","main":"./dist/index.js","module":"./dist/index.mjs","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","module":"./dist/index.mjs","require":"./dist/index.js"}},"scripts":{"build":"tsup","dev":"tsup --watch","check-types":"tsc --noEmit"},"peerDependencies":{"react":"^18.2.0"},"dependencies":{"@radix-ui/react-popover":"^1.0.6","@tiptap/core":"^2.1.7","@tiptap/extension-color":"^2.1.7","@tiptap/extension-highlight":"^2.1.7","@tiptap/extension-horizontal-rule":"^2.1.7","@tiptap/extension-image":"^2.1.7","@tiptap/extension-link":"^2.1.7","@tiptap/extension-placeholder":"2.0.3","@tiptap/extension-task-item":"^2.1.7","@tiptap/extension-task-list":"^2.1.7","@tiptap/extension-text-style":"^2.1.7","@tiptap/extension-underline":"^2.1.7","@tiptap/pm":"^2.1.7","@tiptap/react":"^2.1.7","@tiptap/starter-kit":"^2.1.7","@tiptap/suggestion":"^2.1.7","@types/node":"18.15.3","@types/react":"18.0.28","@types/react-dom":"18.0.11","@upstash/ratelimit":"^0.4.4","@vercel/analytics":"^1.0.2","@vercel/blob":"^0.9.3","@vercel/kv":"^0.2.2","ai":"^2.2.11","clsx":"^1.2.1","eslint":"8.36.0","eslint-config-next":"13.2.4","eventsource-parser":"^0.1.0","lucide-react":"^0.244.0","next":"13.4.20-canary.15","react":"18.2.0","react-dom":"18.2.0","react-markdown":"^8.0.7","sonner":"^0.7.0","tailwind-merge":"^1.14.0","tippy.js":"^6.3.7","tiptap-markdown":"^0.8.2","typescript":"4.9.5","use-debounce":"^9.0.4","axios":"^1.3.2"},"devDependencies":{"@types/react":"^18.2.5","eslint":"^7.32.0","postcss":"^8.4.29","react":"^18.2.0","tailwind-config":"workspace:*","tsconfig":"workspace:*","tsup":"^7.2.0","typescript":"^4.9.4"},"author":{"name":"Steven Tey","email":"stevensteel97@gmail.com"},"homepage":"https://novel.sh","repository":{"type":"git","url":"git+https://github.com/steven-tey/novel.git"},"bugs":{"url":"https://github.com/steven-tey/novel/issues"},"keywords":["ai","novel","editor","markdown","nextjs","react"],"_id":"@abikmushyakho/novel@0.1.33","gitHead":"20277dd487282c50d0e71ac1c68bc51e3e063af1","_nodeVersion":"18.19.0","_npmVersion":"10.2.3","dist":{"integrity":"sha512-0cZIupJ/22rvco+Ru1VLJL4OCXs1XHTEVoKRlt2eYrAIhDkrnbqKNHL26quBbIg8SsIPfGbA2ZsFwOG0F8UM/Q==","shasum":"ac7d7b582373a7a55f89568ce817f75a382b96e4","tarball":"https://registry.npmjs.org/@abikmushyakho/novel/-/novel-0.1.33.tgz","fileCount":6,"unpackedSize":1298215,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIBexCCI/ziLjW+K2Z5tm9xtXsObpqy2wAtpR2cZoOuntAiAaCw9pKCo85I2fl3oUaKP+j4vt/Z0DLBvPBq7ANDbyyA=="}]},"_npmUser":{"name":"abikmushyakho","email":"abikmushyakho9@gmail.com"},"directories":{},"maintainers":[{"name":"abikmushyakho","email":"abikmushyakho9@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/novel_0.1.33_1703068071142_0.5709496217590069"},"_hasShrinkwrap":false}},"maintainers":[{"name":"abikmushyakho","email":"abikmushyakho9@gmail.com"}],"description":"Notion-style WYSIWYG editor with AI-powered autocompletions","homepage":"https://novel.sh","keywords":["ai","novel","editor","markdown","nextjs","react"],"repository":{"type":"git","url":"git+https://github.com/steven-tey/novel.git"},"author":{"name":"Steven Tey","email":"stevensteel97@gmail.com"},"bugs":{"url":"https://github.com/steven-tey/novel/issues"},"license":"Apache-2.0","readme":"<!-- <a href=\"https://novel.sh\">\r\n  <img alt=\"Novel is a Notion-style WYSIWYG editor with AI-powered autocompletions.\" src=\"https://novel.sh/opengraph-image.png\">\r\n  <h1 align=\"center\">Novel</h1>\r\n</a>\r\n\r\n<p align=\"center\">\r\n  An open-source Notion-style WYSIWYG editor with AI-powered autocompletions. \r\n</p>\r\n\r\n<p align=\"center\">\r\n  <a href=\"https://news.ycombinator.com/item?id=36360789\"><img src=\"https://img.shields.io/badge/Hacker%20News-369-%23FF6600\" alt=\"Hacker News\"></a>\r\n  <a href=\"https://github.com/steven-tey/novel/blob/main/LICENSE\">\r\n    <img src=\"https://img.shields.io/github/license/steven-tey/novel?label=license&logo=github&color=f80&logoColor=fff\" alt=\"License\" />\r\n  </a>\r\n  <a href=\"https://github.com/steven-tey/novel\"><img src=\"https://img.shields.io/github/stars/steven-tey/novel?style=social\" alt=\"Novel.sh's GitHub repo\"></a>\r\n</p>\r\n\r\n<p align=\"center\">\r\n  <a href=\"#introduction\"><strong>Introduction</strong></a> ·\r\n  <a href=\"#installation\"><strong>Installation</strong></a> ·\r\n  <a href=\"#deploy-your-own\"><strong>Deploy Your Own</strong></a> ·\r\n  <a href=\"#setting-up-locally\"><strong>Setting Up Locally</strong></a> ·\r\n  <a href=\"#tech-stack\"><strong>Tech Stack</strong></a> ·\r\n  <a href=\"#contributing\"><strong>Contributing</strong></a> ·\r\n  <a href=\"#license\"><strong>License</strong></a>\r\n</p>\r\n<br/>\r\n\r\n## Introduction\r\n\r\n[Novel](https://novel.sh/) is a Notion-style WYSIWYG editor with AI-powered autocompletions.\r\n\r\nhttps://github.com/steven-tey/novel/assets/28986134/2099877f-4f2b-4b1c-8782-5d803d63be5c\r\n\r\n<br />\r\n\r\n## Installation\r\n\r\nTo use Novel in a project, you can run the following command to install the `novel` [NPM package](https://www.npmjs.com/package/novel):\r\n\r\n```\r\nnpm i novel\r\n```\r\n\r\nThen, you can use it in your code like this:\r\n\r\n```jsx\r\nimport { Editor } from \"novel\";\r\n\r\nexport default function App() {\r\n  return <Editor />;\r\n}\r\n```\r\n\r\nThe `Editor` is a React component that takes in the following props:\r\n\r\n| Prop                  | Type                        | Description                                                                                                                                                                                | Default                                                                                                                             |\r\n| --------------------- | --------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ----------------------------------------------------------------------------------------------------------------------------------- |\r\n| `completionApi`       | `string`                    | The API route to use for the OpenAI completion API.                                                                                                                                        | `/api/generate`                                                                                                                     |\r\n| `className`           | `string`                    | Editor container classname.                                                                                                                                                                | `\"relative min-h-[500px] w-full max-w-screen-lg border-stone-200 bg-white sm:mb-[calc(20vh)] sm:rounded-lg sm:border sm:shadow-lg\"` |\r\n| `defaultValue`        | `JSONContent` or `string`   | The default value to use for the editor.                                                                                                                                                   | [`defaultEditorContent`](https://github.com/steven-tey/novel/blob/main/packages/core/src/ui/editor/default-content.tsx)             |\r\n| `extensions`          | `Extension[]`               | A list of extensions to use for the editor, in addition to the [default Novel extensions](https://github.com/steven-tey/novel/blob/main/packages/core/src/ui/editor/extensions/index.tsx). | `[]`                                                                                                                                |\r\n| `editorProps`         | `EditorProps`               | Props to pass to the underlying Tiptap editor, in addition to the [default Novel editor props](https://github.com/steven-tey/novel/blob/main/packages/core/src/ui/editor/props.ts).        | `{}`                                                                                                                                |\r\n| `onUpdate`            | `(editor?: Editor) => void` | A callback function that is called whenever the editor is updated.                                                                                                                         | `() => {}`                                                                                                                          |\r\n| `onDebouncedUpdate`   | `(editor?: Editor) => void` | A callback function that is called whenever the editor is updated, but only after the defined debounce duration.                                                                           | `() => {}`                                                                                                                          |\r\n| `debounceDuration`    | `number`                    | The duration (in milliseconds) to debounce the `onDebouncedUpdate` callback.                                                                                                               | `750`                                                                                                                               |\r\n| `storageKey`          | `string`                    | The key to use for storing the editor's value in local storage.                                                                                                                            | `novel__content`                                                                                                                    |\r\n| `disableLocalStorage` | `boolean`                   | Enabling this option will prevent read/write content from/to local storage.                                                                                                                | `false`                                                                                                                             |\r\n\r\n> **Note**: Make sure to define an API endpoint that matches the `completionApi` prop (default is `/api/generate`). This is needed for the AI autocompletions to work. Here's an example: https://github.com/steven-tey/novel/blob/main/apps/web/app/api/generate/route.ts\r\n\r\nHere's an example application: https://github.com/steven-tey/novella\r\n\r\n## Deploy Your Own\r\n\r\nYou can deploy your own version of Novel to Vercel with one click:\r\n\r\n[![Deploy with Vercel](https://vercel.com/button)](https://stey.me/novel-deploy)\r\n\r\n## Setting Up Locally\r\n\r\nTo set up Novel locally, you'll need to clone the repository and set up the following environment variables:\r\n\r\n- `OPENAI_API_KEY` – your OpenAI API key (you can get one [here](https://platform.openai.com/account/api-keys))\r\n- `BLOB_READ_WRITE_TOKEN` – your Vercel Blob read/write token (currently [still in beta](https://vercel.com/docs/storage/vercel-blob/quickstart#quickstart), but feel free to [sign up on this form](https://vercel.fyi/blob-beta) for access)\r\n\r\nIf you've deployed this to Vercel, you can also use [`vc env pull`](https://vercel.com/docs/cli/env#exporting-development-environment-variables) to pull the environment variables from your Vercel project.\r\n\r\nTo run the app locally, you can run the following commands:\r\n\r\n```\r\npnpm i\r\npnpm build\r\npnpm dev\r\n```\r\n\r\n## Cross-framework support\r\n\r\nWhile Novel is built for React, we also have a few community-maintained packages for non-React frameworks:\r\n\r\n- Svelte: https://novel.sh/svelte\r\n- Vue: https://novel.sh/vue\r\n\r\n## VSCode Extension\r\n\r\nThanks to @bennykok, Novel also has a VSCode Extension: https://novel.sh/vscode\r\n\r\nhttps://github.com/steven-tey/novel/assets/28986134/58ebf7e3-cdb3-43df-878b-119e304f7373\r\n\r\n## Tech Stack\r\n\r\nNovel is built on the following stack:\r\n\r\n- [Next.js](https://nextjs.org/) – framework\r\n- [Tiptap](https://tiptap.dev/) – text editor\r\n- [OpenAI](https://openai.com/) - AI completions\r\n- [Vercel AI SDK](https://sdk.vercel.ai/docs) – AI library\r\n- [Vercel](https://vercel.com) – deployments\r\n- [TailwindCSS](https://tailwindcss.com/) – styles\r\n- [Cal Sans](https://github.com/calcom/font) – font\r\n\r\n## Contributing\r\n\r\nHere's how you can contribute:\r\n\r\n- [Open an issue](https://github.com/steven-tey/novel/issues) if you believe you've encountered a bug.\r\n- Make a [pull request](https://github.com/steven-tey/novel/pull) to add new features/make quality-of-life improvements/fix bugs.\r\n\r\n<a href=\"https://github.com/steven-tey/novel/graphs/contributors\">\r\n  <img src=\"https://contrib.rocks/image?repo=steven-tey/novel\" />\r\n</a>\r\n\r\n## Repo Activity\r\n\r\n![Novel.sh repo activity – generated by Axiom](https://repobeats.axiom.co/api/embed/2ebdaa143b0ad6e7c2ee23151da7b37f67da0b36.svg)\r\n\r\n## License\r\n\r\nLicensed under the [Apache-2.0 license](https://github.com/steven-tey/novel/blob/main/LICENSE.md). -->\r\n","readmeFilename":"README.md"}