{"_id":"notion-md-crawler","_rev":"11-44e9085359d2f62db5c43c19a9fbf00a","name":"notion-md-crawler","dist-tags":{"latest":"1.0.2"},"versions":{"0.0.1":{"name":"notion-md-crawler","version":"0.0.1","keywords":["notion","crawler","crawling","serialization","machine-learning","ai","markdown"],"author":{"url":"https://github.com/TomPenguin","name":"TomPenguin","email":"tom.penguin.zoo@gmail.com"},"license":"MIT","_id":"notion-md-crawler@0.0.1","maintainers":[{"name":"tompenguin","email":"tomohiro.aota@gmail.com"}],"homepage":"https://github.com/TomPenguin/notion-md-crawler#readme","bugs":{"url":"https://github.com/TomPenguin/notion-md-crawler/issues"},"dist":{"shasum":"7f4ef3b753c9d58c7043231baac075dd5bdd2904","tarball":"https://registry.npmjs.org/notion-md-crawler/-/notion-md-crawler-0.0.1.tgz","fileCount":25,"integrity":"sha512-gixrDs4CnDTdihbmYnrZPDdEcF3vbd8ctNKjLJBmjiVMJWG0xtgxrQNiIiUxg5+hsmMVviXyUEQ+nhAyhYUz8Q==","signatures":[{"sig":"MEYCIQCxB/fMa2yk1XJezLbQhO7im2lV7/BbCaK+xkksb9I/jgIhAPdQZJPxgnAqgNnPYg2mds71Q7s102iYczRE9HFpZsgo","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":566605},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"gitHead":"565a55f7f5103c0a27e8ffb8ff23a1e6dac962bf","scripts":{"test":"echo \"Error: no test specified\" && exit 1","build":"tsup src/index.ts --format cjs,esm --dts --clean --minify --sourcemap","prepublishOnly":"npm run build"},"_npmUser":{"name":"tompenguin","email":"tomohiro.aota@gmail.com"},"repository":{"url":"git+https://github.com/TomPenguin/notion-md-crawler.git","type":"git"},"_npmVersion":"9.5.1","description":"A library to recursively retrieve and serialize Notion pages with customization for machine learning applications.","directories":{},"_nodeVersion":"19.8.1","dependencies":{"md-utils-ts":"^2.0.0","@notionhq/client":"^2.2.12"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^7.2.0","prettier":"^3.0.3","prettier-plugin-organize-imports":"^3.2.3"},"_npmOperationalInternal":{"tmp":"tmp/notion-md-crawler_0.0.1_1693569977149_0.2493258903331237","host":"s3://npm-registry-packages"}},"0.0.2":{"name":"notion-md-crawler","version":"0.0.2","keywords":["notion","crawler","crawling","serialization","machine-learning","ai","markdown"],"author":{"url":"https://github.com/TomPenguin","name":"TomPenguin","email":"tom.penguin.zoo@gmail.com"},"license":"MIT","_id":"notion-md-crawler@0.0.2","maintainers":[{"name":"tompenguin","email":"tomohiro.aota@gmail.com"}],"homepage":"https://github.com/TomPenguin/notion-md-crawler#readme","bugs":{"url":"https://github.com/TomPenguin/notion-md-crawler/issues"},"dist":{"shasum":"91800a0b74cb7690d7a9a33c5bf1dc3fd6b59114","tarball":"https://registry.npmjs.org/notion-md-crawler/-/notion-md-crawler-0.0.2.tgz","fileCount":9,"integrity":"sha512-lE3/DFMrg7GSbl1sBfDuLVLyxw+yjdarPVm1JGfQ6eONEbNGgO+BdZxpwwZQ1uYeEJurAXMXb/AXT8GKYjKAyg==","signatures":[{"sig":"MEQCIGC4JVFNL6O398514nJ8HkFekp4LREzoWeqDrprx9ra5AiBAPd1x3Lu6sFy81MFXLPZsqFVB/bDU7LrsaX/hwPjX1A==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":536506},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"gitHead":"93e6e825112787849e11df5299a54bb7acf021c5","scripts":{"test":"jest","build":"tsup src/index.ts --format cjs,esm --dts --clean --minify --sourcemap","prepublishOnly":"pnpm run build"},"_npmUser":{"name":"tompenguin","email":"tomohiro.aota@gmail.com"},"repository":{"url":"git+https://github.com/TomPenguin/notion-md-crawler.git","type":"git"},"_npmVersion":"9.5.1","description":"A library to recursively retrieve and serialize Notion pages with customization for machine learning applications.","directories":{},"_nodeVersion":"19.8.1","dependencies":{"md-utils-ts":"^2.0.0","@notionhq/client":"^2.2.12"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.6.4","tsup":"^7.2.0","prettier":"^3.0.3","@types/jest":"^29.5.4","esbuild-jest":"^0.5.0","ts-jest-resolver":"^2.0.1","prettier-plugin-organize-imports":"^3.2.3"},"_npmOperationalInternal":{"tmp":"tmp/notion-md-crawler_0.0.2_1693784779479_0.07931184830604243","host":"s3://npm-registry-packages"}},"0.0.3":{"name":"notion-md-crawler","version":"0.0.3","keywords":["notion","crawler","crawling","serialization","machine-learning","ai","markdown"],"author":{"url":"https://github.com/TomPenguin","name":"TomPenguin","email":"tom.penguin.zoo@gmail.com"},"license":"MIT","_id":"notion-md-crawler@0.0.3","maintainers":[{"name":"tompenguin","email":"tomohiro.aota@gmail.com"}],"homepage":"https://github.com/TomPenguin/notion-md-crawler#readme","bugs":{"url":"https://github.com/TomPenguin/notion-md-crawler/issues"},"dist":{"shasum":"b973894f36e2329269cc788c59a6b65b3ee7022a","tarball":"https://registry.npmjs.org/notion-md-crawler/-/notion-md-crawler-0.0.3.tgz","fileCount":9,"integrity":"sha512-AJKxuullUKIz3lxNRG2o/UcQS3j4UYa/BYw3yzbRqfQ7y3mSl3WPl/fF8NJ41wn7psgcUgwN3CnWjqfcTF5yxA==","signatures":[{"sig":"MEYCIQDrDHy9qTaxqhqv9IJ7i/Ni0SHRco/LWOikiJ8KZZoAFgIhAJ7ouqU6+rCoK7L7RtELJG+uUujnrmxXpV6U/PBQ0Txm","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":541535},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"gitHead":"a90a647adc9ade69b564253f94b95b59facdae83","scripts":{"test":"jest","build":"tsup src/index.ts --format cjs,esm --dts --clean --minify --sourcemap","prepublishOnly":"pnpm run build"},"_npmUser":{"name":"tompenguin","email":"tomohiro.aota@gmail.com"},"repository":{"url":"git+https://github.com/TomPenguin/notion-md-crawler.git","type":"git"},"_npmVersion":"9.5.1","description":"A library to recursively retrieve and serialize Notion pages with customization for machine learning applications.","directories":{},"_nodeVersion":"19.8.1","dependencies":{"md-utils-ts":"^2.0.0","@notionhq/client":"^2.2.12"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.6.4","tsup":"^7.2.0","prettier":"^3.0.3","@types/jest":"^29.5.4","esbuild-jest":"^0.5.0","ts-jest-resolver":"^2.0.1","prettier-plugin-organize-imports":"^3.2.3"},"_npmOperationalInternal":{"tmp":"tmp/notion-md-crawler_0.0.3_1693816537445_0.037919511938008243","host":"s3://npm-registry-packages"}},"0.0.4":{"name":"notion-md-crawler","version":"0.0.4","keywords":["notion","crawler","crawling","serialization","machine-learning","ai","markdown"],"author":{"url":"https://github.com/TomPenguin","name":"TomPenguin","email":"tom.penguin.zoo@gmail.com"},"license":"MIT","_id":"notion-md-crawler@0.0.4","maintainers":[{"name":"tompenguin","email":"tomohiro.aota@gmail.com"}],"homepage":"https://github.com/TomPenguin/notion-md-crawler#readme","bugs":{"url":"https://github.com/TomPenguin/notion-md-crawler/issues"},"dist":{"shasum":"f3625cda60c17133cd20825054a19188511f99d2","tarball":"https://registry.npmjs.org/notion-md-crawler/-/notion-md-crawler-0.0.4.tgz","fileCount":9,"integrity":"sha512-jf6H3fs4t6PGbNU6Zd2DAQ4EChTRQHhhM+YYtpr13FZNKotMm9Hiy4vUHSye1Ec5mR+pWunPv/TdVOJYRpPkGg==","signatures":[{"sig":"MEQCIFuQTVWG7xwv1dB8sUR4q9nyCrcqZGotx1zLdEPWcJtJAiBiICgJVkqVo02oPEe9txyIzBlPEgFOS8JQH337T/bq6A==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":611120},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"gitHead":"6cd7208708d2f500fe05522a9360742c08344a00","scripts":{"test":"jest","build":"tsup src/index.ts --format cjs,esm --dts --clean --minify --sourcemap","prepublishOnly":"pnpm run build"},"_npmUser":{"name":"tompenguin","email":"tomohiro.aota@gmail.com"},"repository":{"url":"git+https://github.com/TomPenguin/notion-md-crawler.git","type":"git"},"_npmVersion":"9.5.1","description":"A library to recursively retrieve and serialize Notion pages with customization for machine learning applications.","directories":{},"_nodeVersion":"19.8.1","dependencies":{"md-utils-ts":"^2.0.0","@notionhq/client":"^2.2.12"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.6.4","tsup":"^7.2.0","prettier":"^3.0.3","@types/jest":"^29.5.4","esbuild-jest":"^0.5.0","ts-jest-resolver":"^2.0.1","prettier-plugin-organize-imports":"^3.2.3"},"_npmOperationalInternal":{"tmp":"tmp/notion-md-crawler_0.0.4_1693917834532_0.19787437746933345","host":"s3://npm-registry-packages"}},"0.0.5":{"name":"notion-md-crawler","version":"0.0.5","keywords":["notion","crawler","crawling","serialization","machine-learning","ai","markdown"],"author":{"url":"https://github.com/TomPenguin","name":"TomPenguin","email":"tom.penguin.zoo@gmail.com"},"license":"MIT","_id":"notion-md-crawler@0.0.5","maintainers":[{"name":"tompenguin","email":"tomohiro.aota@gmail.com"}],"homepage":"https://github.com/TomPenguin/notion-md-crawler#readme","bugs":{"url":"https://github.com/TomPenguin/notion-md-crawler/issues"},"dist":{"shasum":"b59f194eb643f0a4dd91f940aefb7e97aed68d9b","tarball":"https://registry.npmjs.org/notion-md-crawler/-/notion-md-crawler-0.0.5.tgz","fileCount":9,"integrity":"sha512-Y2Zglw/0lSgyq2xPmX9qy4lpPYWsrOjiz8cHT3XA6rY3+FyKEem8cYpb8UW2bWYr6Yc1jNgEYv+raJZ8d2W61A==","signatures":[{"sig":"MEQCIFoPIRckAKOCp+EkERk072rNkLNdK1H9C1WcKNsOLFomAiBSmSONjMpOsKzBXGmI7//6ZyDIr+WDGaA0/4WvZEGFhQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":614528},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"gitHead":"f3e4659f841316ba298bd20d811f837b3b970f76","scripts":{"test":"jest","build":"tsup src/index.ts --format cjs,esm --dts --clean --minify --sourcemap","prepublishOnly":"pnpm run build"},"_npmUser":{"name":"tompenguin","email":"tomohiro.aota@gmail.com"},"repository":{"url":"git+https://github.com/TomPenguin/notion-md-crawler.git","type":"git"},"_npmVersion":"9.5.1","description":"A library to recursively retrieve and serialize Notion pages with customization for machine learning applications.","directories":{},"_nodeVersion":"19.8.1","dependencies":{"md-utils-ts":"^2.0.0","@notionhq/client":"^2.2.12"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.6.4","tsup":"^7.2.0","prettier":"^3.0.3","@types/jest":"^29.5.4","esbuild-jest":"^0.5.0","ts-jest-resolver":"^2.0.1","prettier-plugin-organize-imports":"^3.2.3"},"_npmOperationalInternal":{"tmp":"tmp/notion-md-crawler_0.0.5_1694005658091_0.40697125546911717","host":"s3://npm-registry-packages"}},"0.0.6":{"name":"notion-md-crawler","version":"0.0.6","keywords":["notion","crawler","crawling","serialization","machine-learning","ai","markdown"],"author":{"url":"https://github.com/TomPenguin","name":"TomPenguin","email":"tom.penguin.zoo@gmail.com"},"license":"MIT","_id":"notion-md-crawler@0.0.6","maintainers":[{"name":"tompenguin","email":"tomohiro.aota@gmail.com"}],"homepage":"https://github.com/TomPenguin/notion-md-crawler#readme","bugs":{"url":"https://github.com/TomPenguin/notion-md-crawler/issues"},"dist":{"shasum":"157349841da3b4181ce958e27ecc1a9026bec507","tarball":"https://registry.npmjs.org/notion-md-crawler/-/notion-md-crawler-0.0.6.tgz","fileCount":9,"integrity":"sha512-HXN5C2IxL+L2wOybmOA/LLJOdIQpqDyONh+qnz4n03HWov6NbbIccyiSM3Dl5XZr/K/GpAbexnbN0LVnxGl1ew==","signatures":[{"sig":"MEQCIBZ1ZYOOz5AWrZa7+aDqtjP/ocNVMJXBTt5Z76TmvelhAiAuZsRIL6P6pTDqsWdYLg4v7+RQJ+sXfaJANP+sJmrBzQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":618506},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"gitHead":"d2f03c7f2de55de29176f0d36c2ab4042d2b0dac","scripts":{"test":"jest","build":"tsup src/index.ts --format cjs,esm --dts --clean --minify --sourcemap","prepublishOnly":"pnpm run build"},"_npmUser":{"name":"tompenguin","email":"tomohiro.aota@gmail.com"},"repository":{"url":"git+https://github.com/TomPenguin/notion-md-crawler.git","type":"git"},"_npmVersion":"9.5.1","description":"A library to recursively retrieve and serialize Notion pages with customization for machine learning applications.","directories":{},"_nodeVersion":"19.8.1","dependencies":{"md-utils-ts":"^2.0.0","@notionhq/client":"^2.2.12"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.6.4","tsup":"^7.2.0","prettier":"^3.0.3","@types/jest":"^29.5.4","@types/node":"^20.5.9","esbuild-jest":"^0.5.0","ts-jest-resolver":"^2.0.1","prettier-plugin-organize-imports":"^3.2.3"},"_npmOperationalInternal":{"tmp":"tmp/notion-md-crawler_0.0.6_1694186289837_0.4419695557167096","host":"s3://npm-registry-packages"}},"0.0.7":{"name":"notion-md-crawler","version":"0.0.7","keywords":["notion","crawler","crawling","serialization","machine-learning","ai","markdown"],"author":{"url":"https://github.com/TomPenguin","name":"TomPenguin","email":"tom.penguin.zoo@gmail.com"},"license":"MIT","_id":"notion-md-crawler@0.0.7","maintainers":[{"name":"tompenguin","email":"tomohiro.aota@gmail.com"}],"homepage":"https://github.com/TomPenguin/notion-md-crawler#readme","bugs":{"url":"https://github.com/TomPenguin/notion-md-crawler/issues"},"dist":{"shasum":"df9c669be672b53a64b0645ba52db2997b3366bb","tarball":"https://registry.npmjs.org/notion-md-crawler/-/notion-md-crawler-0.0.7.tgz","fileCount":9,"integrity":"sha512-xH1awpjVU5dyjypjmZJmphBJdBUhDRDTGzy+s/ZpfEC2d7OsFPsAs5mmMUTi8MRAa5wu11CqWca4wc8LrAYO8Q==","signatures":[{"sig":"MEUCIQC5Vg6ZqzKc+iXYjZcvmvvuHLrGLOS9sn0HltxQAukxKAIgRQhCKR9Qx23ZsHU40X+Eb2Ek5Efw9rU7s7bkJRXU4rw=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":621087},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"gitHead":"b3308e7cf2e088bfd3cfa51a6fa752404d946b78","scripts":{"test":"jest","build":"tsup src/index.ts --format cjs,esm --dts --clean --minify --sourcemap","prepublishOnly":"pnpm run build"},"_npmUser":{"name":"tompenguin","email":"tomohiro.aota@gmail.com"},"repository":{"url":"git+https://github.com/TomPenguin/notion-md-crawler.git","type":"git"},"_npmVersion":"9.5.1","description":"A library to recursively retrieve and serialize Notion pages with customization for machine learning applications.","directories":{},"_nodeVersion":"19.8.1","dependencies":{"md-utils-ts":"^2.0.0","@notionhq/client":"^2.2.12"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.6.4","tsup":"^7.2.0","prettier":"^3.0.3","@types/jest":"^29.5.4","@types/node":"^20.5.9","esbuild-jest":"^0.5.0","ts-jest-resolver":"^2.0.1","prettier-plugin-organize-imports":"^3.2.3"},"_npmOperationalInternal":{"tmp":"tmp/notion-md-crawler_0.0.7_1694749119125_0.05574196471259785","host":"s3://npm-registry-packages"}},"0.0.8":{"name":"notion-md-crawler","version":"0.0.8","keywords":["notion","crawler","crawling","serialization","machine-learning","ai","markdown"],"author":{"url":"https://github.com/TomPenguin","name":"TomPenguin","email":"tom.penguin.zoo@gmail.com"},"license":"MIT","_id":"notion-md-crawler@0.0.8","maintainers":[{"name":"tompenguin","email":"tomohiro.aota@gmail.com"}],"homepage":"https://github.com/TomPenguin/notion-md-crawler#readme","bugs":{"url":"https://github.com/TomPenguin/notion-md-crawler/issues"},"dist":{"shasum":"c2b56871307bace70056e709938a535e445ad57d","tarball":"https://registry.npmjs.org/notion-md-crawler/-/notion-md-crawler-0.0.8.tgz","fileCount":9,"integrity":"sha512-VyNWRtQqBUAer5IOASask4fNoExTuQjuUmsPskAyaC3jcN5Z/gCuGMTtSsT/UWtF95YQ2vp6FpPRVegl+Hbqig==","signatures":[{"sig":"MEUCIQCZndI3ieZYuP5XBjUFk/PGf4Wq5yUi6sIloOXM2BGJ8QIgCA8NRyPlQg+pQya/U9gar+SjsBg2wvmKkZwRiCjuPZU=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":623362},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"gitHead":"8fcd4398dd5d18257a7647ab828c4adf2d0f0b5a","scripts":{"test":"jest","build":"tsup src/index.ts --format cjs,esm --dts --clean --minify --sourcemap","prepublishOnly":"pnpm run build"},"_npmUser":{"name":"tompenguin","email":"tomohiro.aota@gmail.com"},"repository":{"url":"git+https://github.com/TomPenguin/notion-md-crawler.git","type":"git"},"_npmVersion":"8.11.0","description":"A library to recursively retrieve and serialize Notion pages with customization for machine learning applications.","directories":{},"_nodeVersion":"18.3.0","dependencies":{"md-utils-ts":"^2.0.0","@notionhq/client":"^2.2.12"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.6.4","tsup":"^7.2.0","prettier":"^3.0.3","@types/jest":"^29.5.4","@types/node":"^20.5.9","esbuild-jest":"^0.5.0","ts-jest-resolver":"^2.0.1","prettier-plugin-organize-imports":"^3.2.3"},"_npmOperationalInternal":{"tmp":"tmp/notion-md-crawler_0.0.8_1698805079448_0.5644663153463523","host":"s3://npm-registry-packages"}},"1.0.0":{"name":"notion-md-crawler","version":"1.0.0","keywords":["notion","crawler","crawling","serialization","machine-learning","ai","markdown"],"author":{"url":"https://github.com/TomPenguin","name":"TomPenguin","email":"tom.penguin.zoo@gmail.com"},"license":"MIT","_id":"notion-md-crawler@1.0.0","maintainers":[{"name":"tompenguin","email":"tomohiro.aota@gmail.com"}],"homepage":"https://github.com/TomPenguin/notion-md-crawler#readme","bugs":{"url":"https://github.com/TomPenguin/notion-md-crawler/issues"},"dist":{"shasum":"7fb57575ecad120d1bcb967a94b86ad9ff21c0a9","tarball":"https://registry.npmjs.org/notion-md-crawler/-/notion-md-crawler-1.0.0.tgz","fileCount":9,"integrity":"sha512-mdB6zn/i32qO2C7X7wZLDpWvFryO3bPYMuBfFgmTPomnfEtIejdQJNVaZzw2GapM82lfWZ5dfsZp3s3UL4p1Fg==","signatures":[{"sig":"MEUCIQCeWXn0VA1yxVrqnN9NYhWmI0QkddWIXYm3qPgyQgKfigIgFdk/bjVbpd9MQXdhSTukOQn2oL+M6ZbCbsMYxYCBmN0=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":629652},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"gitHead":"439297dad19dff3c2df42de26bf8045adf56cd65","scripts":{"test":"vitest","build":"tsup src/index.ts --format cjs,esm --dts --clean --minify --sourcemap","prepublishOnly":"pnpm run build"},"_npmUser":{"name":"tompenguin","email":"tomohiro.aota@gmail.com"},"repository":{"url":"git+https://github.com/TomPenguin/notion-md-crawler.git","type":"git"},"_npmVersion":"8.11.0","description":"A library to recursively retrieve and serialize Notion pages with customization for machine learning applications.","directories":{},"_nodeVersion":"18.3.0","dependencies":{"md-utils-ts":"^2.0.0","@notionhq/client":"^2.2.12"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^7.2.0","vitest":"^1.2.2","prettier":"^3.0.3","@types/node":"^20.5.9","prettier-plugin-organize-imports":"^3.2.3"},"_npmOperationalInternal":{"tmp":"tmp/notion-md-crawler_1.0.0_1708063032931_0.6335320829172011","host":"s3://npm-registry-packages"}},"1.0.1":{"name":"notion-md-crawler","version":"1.0.1","keywords":["notion","crawler","crawling","serialization","machine-learning","ai","markdown"],"author":{"url":"https://github.com/TomPenguin","name":"TomPenguin","email":"tom.penguin.zoo@gmail.com"},"license":"MIT","_id":"notion-md-crawler@1.0.1","maintainers":[{"name":"tompenguin","email":"tomohiro.aota@gmail.com"}],"homepage":"https://github.com/TomPenguin/notion-md-crawler#readme","bugs":{"url":"https://github.com/TomPenguin/notion-md-crawler/issues"},"dist":{"shasum":"1e523cf7787d0d7ee1c6d4fd9e882fdc9c1eabbf","tarball":"https://registry.npmjs.org/notion-md-crawler/-/notion-md-crawler-1.0.1.tgz","fileCount":9,"integrity":"sha512-Mt/SvtjE4VT0/8bO7q2FaHvQQFJ5shfVRk+ZJGojOn/I1iY5+NijGpRfFWETpqx/eEiiaPJbH9lmtzZ0qLUBjg==","signatures":[{"sig":"MEUCIQDOlP9rMfDb8j3FuIf19Tv1R21wymFqkNQ0Ha9v8oJqqAIgVeZwdkR9b96I5ba4TcA4bIF5WoGmzWBsiJa8ntG/Ebo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":632877},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"gitHead":"f0b19fc8a785455d7257f3ae4705fa2d9759f172","scripts":{"test":"vitest","build":"tsup src/index.ts --format cjs,esm --dts --clean --minify --sourcemap","prepublishOnly":"pnpm run build"},"_npmUser":{"name":"tompenguin","email":"tomohiro.aota@gmail.com"},"repository":{"url":"git+https://github.com/TomPenguin/notion-md-crawler.git","type":"git"},"_npmVersion":"10.7.0","description":"A library to recursively retrieve and serialize Notion pages with customization for machine learning applications.","directories":{},"_nodeVersion":"20.14.0","dependencies":{"md-utils-ts":"^2.0.0","@notionhq/client":"^2.2.15"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.5","vitest":"^3.0.3","prettier":"^3.4.2","@types/node":"^22.10.9","prettier-plugin-organize-imports":"^4.1.0"},"_npmOperationalInternal":{"tmp":"tmp/notion-md-crawler_1.0.1_1737636490898_0.9632299345538511","host":"s3://npm-registry-packages-npm-production"}},"1.0.2":{"name":"notion-md-crawler","version":"1.0.2","description":"A library to recursively retrieve and serialize Notion pages with customization for machine learning applications.","type":"module","main":"./dist/index.cjs","module":"./dist/index.js","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"scripts":{"build":"tsup src/index.ts --format cjs,esm --dts --clean --minify --sourcemap","prepublishOnly":"pnpm run build","test":"vitest","test:integration":"RUN_INTEGRATION_TESTS=1 vitest run tests/integration.test.ts"},"repository":{"type":"git","url":"git+https://github.com/TomPenguin/notion-md-crawler.git"},"keywords":["notion","crawler","crawling","serialization","machine-learning","ai","markdown"],"homepage":"https://github.com/TomPenguin/notion-md-crawler#readme","author":{"name":"TomPenguin","email":"tom.penguin.zoo@gmail.com","url":"https://github.com/TomPenguin"},"bugs":{"url":"https://github.com/TomPenguin/notion-md-crawler/issues"},"license":"MIT","devDependencies":{"@types/node":"^22.10.9","dotenv":"^17.1.0","prettier":"^3.4.2","prettier-plugin-organize-imports":"^4.1.0","tsup":"^8.3.5","vitest":"^3.0.3"},"dependencies":{"@notionhq/client":"4.0.0","md-utils-ts":"^2.0.0"},"_id":"notion-md-crawler@1.0.2","gitHead":"19f3f1484d79977a5280550d32db292e2ebcc1d6","_nodeVersion":"20.14.0","_npmVersion":"10.7.0","dist":{"integrity":"sha512-ojKfB+N9ZUc9vJZI71Cs9fZG+gwiAoSIt17d/DTe1urn7oyU+uYxZPaP+rYzQ1ySJ6uE9NUS1M2dsCgdrVVA1w==","shasum":"4305a4104726e709e5140f0ab2e7bd93ce8e796a","tarball":"https://registry.npmjs.org/notion-md-crawler/-/notion-md-crawler-1.0.2.tgz","fileCount":9,"unpackedSize":632287,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIHwWVEc3k2AS1gqkqurzQ2muCN23sjx6Qxq3HGxveHHoAiBqwl0MnvHa+kovx5p4ClaLVSL0VE+LUe5VJw/nQWujsg=="}]},"_npmUser":{"name":"tompenguin","email":"tomohiro.aota@gmail.com","actor":{"name":"tompenguin","email":"tomohiro.aota@gmail.com","type":"user"}},"directories":{},"maintainers":[{"name":"tompenguin","email":"tomohiro.aota@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/notion-md-crawler_1.0.2_1752038532508_0.7471806533796073"},"_hasShrinkwrap":false}},"time":{"created":"2023-09-01T12:06:17.149Z","modified":"2025-07-09T05:22:12.910Z","0.0.1":"2023-09-01T12:06:17.435Z","0.0.2":"2023-09-03T23:46:19.640Z","0.0.3":"2023-09-04T08:35:37.700Z","0.0.4":"2023-09-05T12:43:54.741Z","0.0.5":"2023-09-06T13:07:38.318Z","0.0.6":"2023-09-08T15:18:10.075Z","0.0.7":"2023-09-15T03:38:39.342Z","0.0.8":"2023-11-01T02:17:59.769Z","1.0.0":"2024-02-16T05:57:13.274Z","1.0.1":"2025-01-23T12:48:11.149Z","1.0.2":"2025-07-09T05:22:12.712Z"},"bugs":{"url":"https://github.com/TomPenguin/notion-md-crawler/issues"},"author":{"name":"TomPenguin","email":"tom.penguin.zoo@gmail.com","url":"https://github.com/TomPenguin"},"license":"MIT","homepage":"https://github.com/TomPenguin/notion-md-crawler#readme","keywords":["notion","crawler","crawling","serialization","machine-learning","ai","markdown"],"repository":{"type":"git","url":"git+https://github.com/TomPenguin/notion-md-crawler.git"},"description":"A library to recursively retrieve and serialize Notion pages with customization for machine learning applications.","maintainers":[{"name":"tompenguin","email":"tomohiro.aota@gmail.com"}],"readme":"# notion-md-crawler\n\nA library to recursively retrieve and serialize Notion pages and databases with customization for machine learning applications.\n\n[![NPM Version](https://badge.fury.io/js/notion-md-crawler.svg)](https://www.npmjs.com/package/notion-md-crawler)\n\n## 🌟 Features\n\n- **🕷️ Crawling Pages and Databases**: Dig deep into Notion's hierarchical structure with ease.\n- **📝 Serialize to Markdown**: Seamlessly convert Notion pages to Markdown for easy use in machine learning and other.\n- **🛠️ Custom Serialization**: Adapt the serialization process to fit your specific machine learning needs.\n- **⏳ Async Generator**: Yields results on a page-by-page basis, so even huge documents can be made memory efficient.\n\n## 🛠️ Installation\n\n[`@notionhq/client`](https://github.com/makenotion/notion-sdk-js) must also be installed.\n\nUsing npm 📦:\n\n```bash\nnpm install notion-md-crawler @notionhq/client\n```\n\nUsing yarn 🧶:\n\n```bash\nyarn add notion-md-crawler @notionhq/client\n```\n\nUsing pnpm 🚀:\n\n```bash\npnpm add notion-md-crawler @notionhq/client\n```\n\n## 🚀 Quick Start\n\n> ⚠️ Note: Before getting started, create [an integration and find the token](https://www.notion.so/my-integrations). Details on methods can be found in [API section](https://github.com/souvikinator/notion-to-md#api)\n\nLeveraging the power of JavaScript generators, this library is engineered to handle even the most extensive Notion documents with ease. It's designed to yield results page-by-page, allowing for efficient memory usage and real-time processing.\n\n```ts\nimport { Client } from \"@notionhq/client\";\nimport { crawler, pageToString } from \"notion-md-crawler\";\n\n// Need init notion client with credential.\nconst client = new Client({ auth: process.env.NOTION_API_KEY });\n\nconst crawl = crawler({ client });\n\nconst main = async () => {\n  const rootPageId = \"****\";\n  for await (const result of crawl(rootPageId)) {\n    if (result.success) {\n      const pageText = pageToString(result.page);\n      console.log(pageText);\n    }\n  }\n};\n\nmain();\n```\n\n## 🌐 API\n\n### crawler\n\nRecursively crawl the Notion Page. [`dbCrawler`](#dbcrawler) should be used if the Root is a Notion Database.\n\n> Note: It tries to continue crawling as much as possible even if it fails to retrieve a particular Notion Page.\n\n#### Parameters:\n\n- `options` ([`CrawlerOptions`](#optionscrawleroptions)): Crawler options.\n- `rootPageId` (string): Id of the root page to be crawled.\n\n#### Returns:\n\n- `AsyncGenerator<CrawlingResult>`: Crawling results with failed information.\n\n### dbCrawler\n\nRecursively crawl the Notion Database. [`crawler`](#crawler) should be used if the Root is a Notion Page.\n\n#### Parameters:\n\n- `options` ([`CrawlerOptions`](#crawleroptions)): Crawler options.\n- `rootDatabaseId` (string): Id of the root page to be crawled.\n\n#### Returns:\n\n- `AsyncGenerator<CrawlingResult>`: Crawling results with failed information.\n\n### CrawlerOptions\n\n| Option                   | Description                                                                                         | Type                                          | Default     |\n| ------------------------ | --------------------------------------------------------------------------------------------------- | --------------------------------------------- | ----------- |\n| `client`                 | Instance of Notion Client. Set up an instance of the Client class imported from `@notionhq/client`. | Notion Client                                 | -           |\n| `serializers?`           | Used for custom serialization of Block and Property objects.                                        | Object                                        | `undefined` |\n| `serializers?.block?`    | Map of Notion block type and [`BlockSerializer`](#blockserializer).                                 | [`BlockSerializers`](#blockserializers)       | `undefined` |\n| `serializers?.property?` | Map of Notion Property Type and [`PropertySerializer`](#propertyserializer).                        | [`PropertySerializers`](#propertyserializers) | `undefined` |\n| `metadataBuilder?`       | The metadata generation process can be customize.                                                   | [`MetadataBuilder`](#metadatabuilder)         | `undefined` |\n| `urlMask?`               | If specified, the url is masked with the string.                                                    | string \\| false                               | `false`     |\n| `skipPageIds?`           | List of page Ids to skip crawling (also skips descendant pages)                                     | string[]                                      | `undefined` |\n\n#### `BlockSerializers`\n\nMap with Notion block type (like `\"heading_1\"`, `\"to_do\"`, `\"code\"`) as key and [`BlockSerializer`](#blockserializer) as value.\n\n#### `BlockSerializer`\n\nBlockSerializer that takes a Notion block object as argument. Returning `false` will skip serialization of that Notion block.\n\n**[Type]**\n\n```ts\ntype BlockSerializer = (\n  block: NotionBlock,\n) => string | false | Promise<string | false>;\n```\n\n#### `PropertySerializers`\n\nMap with Notion Property Type (like `\"heading_1\"`, `\"to_do\"`, `\"code\"`) as key and [`PropertySerializer`](#propertyserializer) as value.\n\n#### `PropertySerializer`\n\nPropertySerializer that takes a Notion property object as argument. Returning `false` will skip serialization of that Notion property.\n\n**[Type]**\n\n```ts\ntype PropertySerializer = (\n  name: string,\n  block: NotionBlock,\n) => string | false | Promise<string | false>;\n```\n\n#### `MetadataBuilder`\n\nRetrieving metadata is sometimes very important, but the information you want to retrieve will vary depending on the context. `MetadataBuilder` allows you to customize it according to your use case.\n\n**[Example]**\n\n```ts\nimport { crawler, MetadataBuilderParams } from \"notion-md-crawler\";\n\nconst getUrl = (id: string) => `https://www.notion.so/${id.replace(/-/g, \"\")}`;\n\nconst metadataBuilder = ({ page }: MetadataBuilderParams) => ({\n  url: getUrl(page.metadata.id),\n});\n\nconst crawl = crawler({ client, metadataBuilder });\n\nfor await (const result of crawl(\"notion-page-id\")) {\n  if (result.success) {\n    console.log(result.page.metadata.url); // \"https://www.notion.so/********\"\n  }\n}\n```\n\n## 📊 Use Metadata\n\nSince `crawler` returns `Page` objects and `Page` object contain metadata, you can be used it for machine learning.\n\n## 🛠️ Custom Serialization\n\n`notion-md-crawler` gives you the flexibility to customize the serialization logic for various Notion objects to cater to the unique requirements of your machine learning model or any other use case.\n\n### Define your custom serializer\n\nYou can define your own custom serializer. You can also use the utility function for convenience.\n\n```ts\nimport { BlockSerializer, crawler, serializer } from \"notion-md-crawler\";\n\nconst customEmbedSerializer: BlockSerializer<\"embed\"> = (block) => {\n  if (block.embed.url) return \"\";\n\n  // You can use serializer utility.\n  const caption = serializer.utils.fromRichText(block.embed.caption);\n\n  return `<figure>\n  <iframe src=\"${block.embed.url}\"></iframe>\n  <figcaption>${caption}</figcaption>\n</figure>`;\n};\n\nconst serializers = {\n  block: {\n    embed: customEmbedSerializer,\n  },\n};\n\nconst crawl = crawler({ client, serializers });\n```\n\n### Skip serialize\n\nReturning `false` in the serializer allows you to skip the serialize of that block. This is useful when you want to omit unnecessary information.\n\n```ts\nconst image: BlockSerializer<\"image\"> = () => false;\nconst crawl = crawler({ client, serializers: { block: { image } } });\n```\n\n### Advanced: Use default serializer in custom serializer\n\nIf you want to customize serialization only in specific cases, you can use the default serializer in a custom serializer.\n\n```ts\nimport { BlockSerializer, crawler, serializer } from \"notion-md-crawler\";\n\nconst defaultImageSerializer = serializer.block.defaults.image;\n\nconst customImageSerializer: BlockSerializer<\"image\"> = (block) => {\n  // Utility function to retrieve the link\n  const { title, href } = serializer.utils.fromLink(block.image);\n\n  // If the image is from a specific domain, wrap it in a special div\n  if (href.includes(\"special-domain.com\")) {\n    return `<div class=\"special-image\">\n      ${defaultImageSerializer(block)}\n    </div>`;\n  }\n\n  // Use the default serializer for all other images\n  return defaultImageSerializer(block);\n};\n\nconst serializers = {\n  block: {\n    image: customImageSerializer,\n  },\n};\n\nconst crawl = crawler({ client, serializers });\n```\n\n## 🔍 Supported Blocks and Database properties\n\n### Blocks\n\n| Block Type         | Supported |\n| ------------------ | --------- |\n| Text               | ✅ Yes    |\n| Bookmark           | ✅ Yes    |\n| Bulleted List      | ✅ Yes    |\n| Numbered List      | ✅ Yes    |\n| Heading 1          | ✅ Yes    |\n| Heading 2          | ✅ Yes    |\n| Heading 3          | ✅ Yes    |\n| Quote              | ✅ Yes    |\n| Callout            | ✅ Yes    |\n| Equation (block)   | ✅ Yes    |\n| Equation (inline)  | ✅ Yes    |\n| Todos (checkboxes) | ✅ Yes    |\n| Table Of Contents  | ✅ Yes    |\n| Divider            | ✅ Yes    |\n| Column             | ✅ Yes    |\n| Column List        | ✅ Yes    |\n| Toggle             | ✅ Yes    |\n| Image              | ✅ Yes    |\n| Embed              | ✅ Yes    |\n| Video              | ✅ Yes    |\n| Figma              | ✅ Yes    |\n| PDF                | ✅ Yes    |\n| Audio              | ✅ Yes    |\n| File               | ✅ Yes    |\n| Link               | ✅ Yes    |\n| Page Link          | ✅ Yes    |\n| External Page Link | ✅ Yes    |\n| Code (block)       | ✅ Yes    |\n| Code (inline)      | ✅ Yes    |\n\n### Database Properties\n\n| Property Type    | Supported |\n| ---------------- | --------- |\n| Checkbox         | ✅ Yes    |\n| Created By       | ✅ Yes    |\n| Created Time     | ✅ Yes    |\n| Date             | ✅ Yes    |\n| Email            | ✅ Yes    |\n| Files            | ✅ Yes    |\n| Formula          | ✅ Yes    |\n| Last Edited By   | ✅ Yes    |\n| Last Edited Time | ✅ Yes    |\n| Multi Select     | ✅ Yes    |\n| Number           | ✅ Yes    |\n| People           | ✅ Yes    |\n| Phone Number     | ✅ Yes    |\n| Relation         | ✅ Yes    |\n| Rich Text        | ✅ Yes    |\n| Rollup           | ✅ Yes    |\n| Select           | ✅ Yes    |\n| Status           | ✅ Yes    |\n| Title            | ✅ Yes    |\n| Unique Id        | ✅ Yes    |\n| Url              | ✅ Yes    |\n| Verification     | □ No      |\n\n## 💬 Issues and Feedback\n\nFor any issues, feedback, or feature requests, please file an issue on GitHub.\n\n## 📜 License\n\nMIT\n\n---\n\nMade with ❤️ by TomPenguin.\n","readmeFilename":"README.md"}