notion-utility-personal 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/.tsbuildinfo +1 -0
- package/build/estimate-page-read-time.d.ts +35 -0
- package/build/estimate-page-read-time.d.ts.map +1 -0
- package/build/estimate-page-read-time.js +183 -0
- package/build/estimate-page-read-time.js.map +1 -0
- package/build/format-date.d.ts +4 -0
- package/build/format-date.d.ts.map +1 -0
- package/build/format-date.js +6 -0
- package/build/format-date.js.map +1 -0
- package/build/format-notion-date-time.d.ts +8 -0
- package/build/format-notion-date-time.d.ts.map +1 -0
- package/build/format-notion-date-time.js +7 -0
- package/build/format-notion-date-time.js.map +1 -0
- package/build/get-all-pages-in-space.d.ts +22 -0
- package/build/get-all-pages-in-space.d.ts.map +1 -0
- package/build/get-all-pages-in-space.js +110 -0
- package/build/get-all-pages-in-space.js.map +1 -0
- package/build/get-block-collection-id.d.ts +3 -0
- package/build/get-block-collection-id.d.ts.map +1 -0
- package/build/get-block-collection-id.js +18 -0
- package/build/get-block-collection-id.js.map +1 -0
- package/build/get-block-icon.d.ts +3 -0
- package/build/get-block-icon.d.ts.map +1 -0
- package/build/get-block-icon.js +19 -0
- package/build/get-block-icon.js.map +1 -0
- package/build/get-block-parent-page.d.ts +11 -0
- package/build/get-block-parent-page.d.ts.map +1 -0
- package/build/get-block-parent-page.js +31 -0
- package/build/get-block-parent-page.js.map +1 -0
- package/build/get-block-title.d.ts +3 -0
- package/build/get-block-title.d.ts.map +1 -0
- package/build/get-block-title.js +20 -0
- package/build/get-block-title.js.map +1 -0
- package/build/get-canonical-page-id.d.ts +8 -0
- package/build/get-canonical-page-id.d.ts.map +1 -0
- package/build/get-canonical-page-id.js +29 -0
- package/build/get-canonical-page-id.js.map +1 -0
- package/build/get-date-value.d.ts +6 -0
- package/build/get-date-value.d.ts.map +1 -0
- package/build/get-date-value.js +20 -0
- package/build/get-date-value.js.map +1 -0
- package/build/get-page-breadcrumbs.d.ts +3 -0
- package/build/get-page-breadcrumbs.d.ts.map +1 -0
- package/build/get-page-breadcrumbs.js +37 -0
- package/build/get-page-breadcrumbs.js.map +1 -0
- package/build/get-page-content-block-ids.d.ts +6 -0
- package/build/get-page-content-block-ids.d.ts.map +1 -0
- package/build/get-page-content-block-ids.js +58 -0
- package/build/get-page-content-block-ids.js.map +1 -0
- package/build/get-page-image-urls.d.ts +8 -0
- package/build/get-page-image-urls.d.ts.map +1 -0
- package/build/get-page-image-urls.js +63 -0
- package/build/get-page-image-urls.js.map +1 -0
- package/build/get-page-property.d.ts +16 -0
- package/build/get-page-property.d.ts.map +1 -0
- package/build/get-page-property.js +61 -0
- package/build/get-page-property.js.map +1 -0
- package/build/get-page-table-of-contents.d.ts +13 -0
- package/build/get-page-table-of-contents.d.ts.map +1 -0
- package/build/get-page-table-of-contents.js +67 -0
- package/build/get-page-table-of-contents.js.map +1 -0
- package/build/get-page-title.d.ts +3 -0
- package/build/get-page-title.d.ts.map +1 -0
- package/build/get-page-title.js +10 -0
- package/build/get-page-title.js.map +1 -0
- package/build/get-text-content.d.ts +9 -0
- package/build/get-text-content.d.ts.map +1 -0
- package/build/get-text-content.js +19 -0
- package/build/get-text-content.js.map +1 -0
- package/build/id-to-uuid.d.ts +2 -0
- package/build/id-to-uuid.d.ts.map +1 -0
- package/build/id-to-uuid.js +2 -0
- package/build/id-to-uuid.js.map +1 -0
- package/build/index.d.ts +25 -0
- package/build/index.d.ts.map +1 -0
- package/build/index.js +25 -0
- package/build/index.js.map +1 -0
- package/build/is-url.d.ts +3 -0
- package/build/is-url.d.ts.map +1 -0
- package/build/is-url.js +3 -0
- package/build/is-url.js.map +1 -0
- package/build/merge-record-maps.d.ts +3 -0
- package/build/merge-record-maps.d.ts.map +1 -0
- package/build/merge-record-maps.js +13 -0
- package/build/merge-record-maps.js.map +1 -0
- package/build/normalize-title.d.ts +2 -0
- package/build/normalize-title.d.ts.map +1 -0
- package/build/normalize-title.js +11 -0
- package/build/normalize-title.js.map +1 -0
- package/build/normalize-url.d.ts +2 -0
- package/build/normalize-url.d.ts.map +1 -0
- package/build/normalize-url.js +27 -0
- package/build/normalize-url.js.map +1 -0
- package/build/normalize-url.test.d.ts +2 -0
- package/build/normalize-url.test.d.ts.map +1 -0
- package/build/normalize-url.test.js +30 -0
- package/build/normalize-url.test.js.map +1 -0
- package/build/parse-page-id.d.ts +9 -0
- package/build/parse-page-id.d.ts.map +1 -0
- package/build/parse-page-id.js +24 -0
- package/build/parse-page-id.js.map +1 -0
- package/build/parse-page-id.test.d.ts +2 -0
- package/build/parse-page-id.test.d.ts.map +1 -0
- package/build/parse-page-id.test.js +54 -0
- package/build/parse-page-id.test.js.map +1 -0
- package/build/uuid-to-id.d.ts +2 -0
- package/build/uuid-to-id.d.ts.map +1 -0
- package/build/uuid-to-id.js +2 -0
- package/build/uuid-to-id.js.map +1 -0
- package/package.json +51 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"program":{"fileNames":["../node_modules/typescript/lib/lib.es5.d.ts","../node_modules/typescript/lib/lib.es2015.d.ts","../node_modules/typescript/lib/lib.es2016.d.ts","../node_modules/typescript/lib/lib.es2017.d.ts","../node_modules/typescript/lib/lib.es2018.d.ts","../node_modules/typescript/lib/lib.es2019.d.ts","../node_modules/typescript/lib/lib.es2020.d.ts","../node_modules/typescript/lib/lib.es2021.d.ts","../node_modules/typescript/lib/lib.es2022.d.ts","../node_modules/typescript/lib/lib.es2023.d.ts","../node_modules/typescript/lib/lib.esnext.d.ts","../node_modules/typescript/lib/lib.dom.d.ts","../node_modules/typescript/lib/lib.es2015.core.d.ts","../node_modules/typescript/lib/lib.es2015.collection.d.ts","../node_modules/typescript/lib/lib.es2015.generator.d.ts","../node_modules/typescript/lib/lib.es2015.iterable.d.ts","../node_modules/typescript/lib/lib.es2015.promise.d.ts","../node_modules/typescript/lib/lib.es2015.proxy.d.ts","../node_modules/typescript/lib/lib.es2015.reflect.d.ts","../node_modules/typescript/lib/lib.es2015.symbol.d.ts","../node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../node_modules/typescript/lib/lib.es2016.array.include.d.ts","../node_modules/typescript/lib/lib.es2017.date.d.ts","../node_modules/typescript/lib/lib.es2017.object.d.ts","../node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","../node_modules/typescript/lib/lib.es2017.string.d.ts","../node_modules/typescript/lib/lib.es2017.intl.d.ts","../node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","../node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","../node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","../node_modules/typescript/lib/lib.es2018.intl.d.ts","../node_modules/typescript/lib/lib.es2018.promise.d.ts","../node_modules/typescript/lib/lib.es2018.regexp.d.ts","../node_modules/typescript/lib/lib.es2019.array.d.ts","../node_modules/typescript/lib/lib.es2019.object.d.ts","../node_modules/typescript/lib/lib.es2019.string.d.ts","../node_modules/typescript/lib/lib.es2019.symbol.d.ts","../node_modules/typescript/lib/lib.es2019.intl.d.ts","../node_modules/typescript/lib/lib.es2020.bigint.d.ts","../node_modules/typescript/lib/lib.es2020.date.d.ts","../node_modules/typescript/lib/lib.es2020.promise.d.ts","../node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","../node_modules/typescript/lib/lib.es2020.string.d.ts","../node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","../node_modules/typescript/lib/lib.es2020.intl.d.ts","../node_modules/typescript/lib/lib.es2020.number.d.ts","../node_modules/typescript/lib/lib.es2021.promise.d.ts","../node_modules/typescript/lib/lib.es2021.string.d.ts","../node_modules/typescript/lib/lib.es2021.weakref.d.ts","../node_modules/typescript/lib/lib.es2021.intl.d.ts","../node_modules/typescript/lib/lib.es2022.array.d.ts","../node_modules/typescript/lib/lib.es2022.error.d.ts","../node_modules/typescript/lib/lib.es2022.intl.d.ts","../node_modules/typescript/lib/lib.es2022.object.d.ts","../node_modules/typescript/lib/lib.es2022.sharedmemory.d.ts","../node_modules/typescript/lib/lib.es2022.string.d.ts","../node_modules/typescript/lib/lib.es2022.regexp.d.ts","../node_modules/typescript/lib/lib.es2023.array.d.ts","../node_modules/typescript/lib/lib.es2023.collection.d.ts","../node_modules/typescript/lib/lib.esnext.intl.d.ts","../node_modules/typescript/lib/lib.esnext.disposable.d.ts","../node_modules/typescript/lib/lib.esnext.decorators.d.ts","../node_modules/typescript/lib/lib.decorators.d.ts","../node_modules/typescript/lib/lib.decorators.legacy.d.ts","../node_modules/notion-types-personal/build/core.d.ts","../node_modules/notion-types-personal/build/block.d.ts","../node_modules/notion-types-personal/build/formula.d.ts","../node_modules/notion-types-personal/build/user.d.ts","../node_modules/notion-types-personal/build/collection.d.ts","../node_modules/notion-types-personal/build/collection-view.d.ts","../node_modules/notion-types-personal/build/maps.d.ts","../node_modules/notion-types-personal/build/api.d.ts","../node_modules/notion-types-personal/build/index.d.ts","../src/get-block-collection-id.ts","../src/get-text-content.ts","../src/get-block-title.ts","../src/get-page-table-of-contents.ts","../src/estimate-page-read-time.ts","../src/format-date.ts","../src/format-notion-date-time.ts","../node_modules/eventemitter3/index.d.ts","../node_modules/p-queue/dist/queue.d.ts","../node_modules/p-queue/dist/options.d.ts","../node_modules/p-queue/dist/priority-queue.d.ts","../node_modules/p-queue/dist/index.d.ts","../src/id-to-uuid.ts","../src/parse-page-id.ts","../src/get-all-pages-in-space.ts","../src/get-block-icon.ts","../src/get-block-parent-page.ts","../src/get-page-property.ts","../src/normalize-title.ts","../src/uuid-to-id.ts","../src/get-canonical-page-id.ts","../src/get-date-value.ts","../src/get-page-breadcrumbs.ts","../src/get-page-content-block-ids.ts","../node_modules/is-url-superb/index.d.ts","../src/is-url.ts","../src/get-page-image-urls.ts","../src/get-page-title.ts","../node_modules/mem/dist/index.d.ts","../node_modules/normalize-url/index.d.ts","../src/normalize-url.ts","../src/merge-record-maps.ts","../src/index.ts","../node_modules/ava/types/assertions.d.cts","../node_modules/ava/types/subscribable.d.cts","../node_modules/ava/types/try-fn.d.cts","../node_modules/ava/types/test-fn.d.cts","../node_modules/ava/entrypoints/main.d.cts","../node_modules/ava/index.d.ts","../src/normalize-url.test.ts","../src/parse-page-id.test.ts"],"fileInfos":[{"version":"2ac9cdcfb8f8875c18d14ec5796a8b029c426f73ad6dc3ffb580c228b58d1c44","affectsGlobalScope":true},"45b7ab580deca34ae9729e97c13cfd999df04416a79116c3bfb483804f85ded4","dc48272d7c333ccf58034c0026162576b7d50ea0e69c3b9292f803fc20720fd5","9a68c0c07ae2fa71b44384a839b7b8d81662a236d4b9ac30916718f7510b1b2d","5e1c4c362065a6b95ff952c0eab010f04dcd2c3494e813b493ecfd4fcb9fc0d8","68d73b4a11549f9c0b7d352d10e91e5dca8faa3322bfb77b661839c42b1ddec7","5efce4fc3c29ea84e8928f97adec086e3dc876365e0982cc8479a07954a3efd4","feecb1be483ed332fad555aff858affd90a48ab19ba7272ee084704eb7167569","5514e54f17d6d74ecefedc73c504eadffdeda79c7ea205cf9febead32d45c4bc","1c0cdb8dc619bc549c3e5020643e7cf7ae7940058e8c7e5aefa5871b6d86f44b","bed7b7ba0eb5a160b69af72814b4dde371968e40b6c5e73d3a9f7bee407d158c",{"version":"0075fa5ceda385bcdf3488e37786b5a33be730e8bc4aa3cf1e78c63891752ce8","affectsGlobalScope":true},{"version":"f296963760430fb65b4e5d91f0ed770a91c6e77455bacf8fa23a1501654ede0e","affectsGlobalScope":true},{"version":"09226e53d1cfda217317074a97724da3e71e2c545e18774484b61562afc53cd2","affectsGlobalScope":true},{"version":"4443e68b35f3332f753eacc66a04ac1d2053b8b035a0e0ac1d455392b5e243b3","affectsGlobalScope":true},{"version":"8b41361862022eb72fcc8a7f34680ac842aca802cf4bc1f915e8c620c9ce4331","affectsGlobalScope":true},{"version":"f7bd636ae3a4623c503359ada74510c4005df5b36de7f23e1db8a5c543fd176b","affectsGlobalScope":true},{"version":"ce691fb9e5c64efb9547083e4a34091bcbe5bdb41027e310ebba8f7d96a98671","affectsGlobalScope":true},{"version":"8d697a2a929a5fcb38b7a65594020fcef05ec1630804a33748829c5ff53640d0","affectsGlobalScope":true},{"version":"0c20f4d2358eb679e4ae8a4432bdd96c857a2960fd6800b21ec4008ec59d60ea","affectsGlobalScope":true},{"version":"93495ff27b8746f55d19fcbcdbaccc99fd95f19d057aed1bd2c0cafe1335fbf0","affectsGlobalScope":true},{"version":"82d0d8e269b9eeac02c3bd1c9e884e85d483fcb2cd168bccd6bc54df663da031","affectsGlobalScope":true},{"version":"38f0219c9e23c915ef9790ab1d680440d95419ad264816fa15009a8851e79119","affectsGlobalScope":true},{"version":"b8deab98702588840be73d67f02412a2d45a417a3c097b2e96f7f3a42ac483d1","affectsGlobalScope":true},{"version":"4738f2420687fd85629c9efb470793bb753709c2379e5f85bc1815d875ceadcd","affectsGlobalScope":true},{"version":"2f11ff796926e0832f9ae148008138ad583bd181899ab7dd768a2666700b1893","affectsGlobalScope":true},{"version":"376d554d042fb409cb55b5cbaf0b2b4b7e669619493c5d18d5fa8bd67273f82a","affectsGlobalScope":true},{"version":"9fc46429fbe091ac5ad2608c657201eb68b6f1b8341bd6d670047d32ed0a88fa","affectsGlobalScope":true},{"version":"61c37c1de663cf4171e1192466e52c7a382afa58da01b1dc75058f032ddf0839","affectsGlobalScope":true},{"version":"c4138a3dd7cd6cf1f363ca0f905554e8d81b45844feea17786cdf1626cb8ea06","affectsGlobalScope":true},{"version":"6ff3e2452b055d8f0ec026511c6582b55d935675af67cdb67dd1dc671e8065df","affectsGlobalScope":true},{"version":"03de17b810f426a2f47396b0b99b53a82c1b60e9cba7a7edda47f9bb077882f4","affectsGlobalScope":true},{"version":"8184c6ddf48f0c98429326b428478ecc6143c27f79b79e85740f17e6feb090f1","affectsGlobalScope":true},{"version":"261c4d2cf86ac5a89ad3fb3fafed74cbb6f2f7c1d139b0540933df567d64a6ca","affectsGlobalScope":true},{"version":"6af1425e9973f4924fca986636ac19a0cf9909a7e0d9d3009c349e6244e957b6","affectsGlobalScope":true},{"version":"576711e016cf4f1804676043e6a0a5414252560eb57de9faceee34d79798c850","affectsGlobalScope":true},{"version":"89c1b1281ba7b8a96efc676b11b264de7a8374c5ea1e6617f11880a13fc56dc6","affectsGlobalScope":true},{"version":"15a630d6817718a2ddd7088c4f83e4673fde19fa992d2eae2cf51132a302a5d3","affectsGlobalScope":true},{"version":"b7e9f95a7387e3f66be0ed6db43600c49cec33a3900437ce2fd350d9b7cb16f2","affectsGlobalScope":true},{"version":"01e0ee7e1f661acedb08b51f8a9b7d7f959e9cdb6441360f06522cc3aea1bf2e","affectsGlobalScope":true},{"version":"ac17a97f816d53d9dd79b0d235e1c0ed54a8cc6a0677e9a3d61efb480b2a3e4e","affectsGlobalScope":true},{"version":"bf14a426dbbf1022d11bd08d6b8e709a2e9d246f0c6c1032f3b2edb9a902adbe","affectsGlobalScope":true},{"version":"ec0104fee478075cb5171e5f4e3f23add8e02d845ae0165bfa3f1099241fa2aa","affectsGlobalScope":true},{"version":"2b72d528b2e2fe3c57889ca7baef5e13a56c957b946906d03767c642f386bbc3","affectsGlobalScope":true},{"version":"9cc66b0513ad41cb5f5372cca86ef83a0d37d1c1017580b7dace3ea5661836df","affectsGlobalScope":true},{"version":"368af93f74c9c932edd84c58883e736c9e3d53cec1fe24c0b0ff451f529ceab1","affectsGlobalScope":true},{"version":"709efdae0cb5df5f49376cde61daacc95cdd44ae4671da13a540da5088bf3f30","affectsGlobalScope":true},{"version":"995c005ab91a498455ea8dfb63aa9f83fa2ea793c3d8aa344be4a1678d06d399","affectsGlobalScope":true},{"version":"bc496ef4377553e461efcf7cc5a5a57cf59f9962aea06b5e722d54a36bf66ea1","affectsGlobalScope":true},{"version":"038a2f66a34ee7a9c2fbc3584c8ab43dff2995f8c68e3f566f4c300d2175e31e","affectsGlobalScope":true},{"version":"4fa6ed14e98aa80b91f61b9805c653ee82af3502dc21c9da5268d3857772ca05","affectsGlobalScope":true},{"version":"f5c92f2c27b06c1a41b88f6db8299205aee52c2a2943f7ed29bd585977f254e8","affectsGlobalScope":true},{"version":"930b0e15811f84e203d3c23508674d5ded88266df4b10abee7b31b2ac77632d2","affectsGlobalScope":true},{"version":"8444af78980e3b20b49324f4a16ba35024fef3ee069a0eb67616ea6ca821c47a","affectsGlobalScope":true},{"version":"b9ea5778ff8b50d7c04c9890170db34c26a5358cccba36844fe319f50a43a61a","affectsGlobalScope":true},{"version":"3287d9d085fbd618c3971944b65b4be57859f5415f495b33a6adc994edd2f004","affectsGlobalScope":true},{"version":"50d53ccd31f6667aff66e3d62adf948879a3a16f05d89882d1188084ee415bbc","affectsGlobalScope":true},{"version":"65be38e881453e16f128a12a8d36f8b012aa279381bf3d4dc4332a4905ceec83","affectsGlobalScope":true},{"version":"436aaf437562f276ec2ddbee2f2cdedac7664c1e4c1d2c36839ddd582eeb3d0a","affectsGlobalScope":true},{"version":"307c8b7ebbd7f23a92b73a4c6c0a697beca05b06b036c23a34553e5fe65e4fdc","affectsGlobalScope":true},{"version":"e1913f656c156a9e4245aa111fbb436d357d9e1fe0379b9a802da7fe3f03d736","affectsGlobalScope":true},{"version":"d4b1d2c51d058fc21ec2629fff7a76249dec2e36e12960ea056e3ef89174080f","affectsGlobalScope":true},{"version":"f35a831e4f0fe3b3697f4a0fe0e3caa7624c92b78afbecaf142c0f93abfaf379","affectsGlobalScope":true},{"version":"782dec38049b92d4e85c1585fbea5474a219c6984a35b004963b00beb1aab538","affectsGlobalScope":true},"272d397360f6ac8743713805a62db43b0f5bff28e1d871bcd7e88a2d473f5833","9a78739ada99e933b6e843f03fd999d073e8d7696dba2c03a74715c1318231bb","57aa4c028ae9d74d0908fd24563ccf6ce4ad3ec4b836fcbd69974adce60eb895","6b7f1146fc9396911257b68198cc560795f80945865d67657f30287affb516b7","b7061fe1870bdbe7145d836fedf1d04925de95c56128dbbf6e8fd2f7012618b5","128c87c13d12d198b7ef5ed39137f7b51cd165294bbeac3eb077d9a774579cd8","e573d7b496cf5db12c6ea980c0538473fd1aee6eb6db945a1cdec42217fa8614","099047427363040fd772d39119afda69ccbfb90d3896de1ab711faa56e79f043","6679e3cd2e955ed99d12909354ed55974c4f8ec3844797bd933f1fcca74a3f7e",{"version":"3bf39b76a16770fc9dc97710312db3797637b078438f3394866239c5d5ae4e9d","signature":"c9374ad69ae4333f274dd5f058adc9ae69a0796c8a2e1e6629f2a7dc35881e63"},{"version":"900362769d70f0fc75a613193038732d6905515233788b06f836be02211c6b0c","signature":"6f640a5894d52a059f7ad1932aa180862776a18e01b7b16284fd041e72d24858"},{"version":"f5998a9c86e7698250539b323d208ee48cc2f6e5fc26d5a2a035e342a3039583","signature":"4f6531361d9f9922bb52791c92ffcb9bcfc306fd731de967264b677b5fffb61f"},{"version":"5273f5a90cb422c5eb7b808e8966ac587b4bb7b268f2636fc193fe6275d8df4c","signature":"c82b559f1e8f95ee3c7dfba703a37f891126ce60cc115b38cad2203105853518"},{"version":"efc29e78280fbf133370dcfd096c023ec9d2f9b37753743b72155d16d7a2dfcf","signature":"a2b96a8ca86e66b59681e85e8826d3c5d2d2dc2b61454c40ac19a5677519c556"},{"version":"c95c71466e2105073b9470d0961fb4c57344815e59f624c0100529fc9c23d6f2","signature":"5bd79d155bbfd1d619f38079fc492d03671369ad38eda03cb270bac9f9f11c1e"},{"version":"50778d1f5976364a117747352ac1b17407e49ae0254282e0e18bc033e39d3da2","signature":"2e2aac8b5e578a185d09b3d5e15018301bafa2918b75c45970165227ea978fc7"},"b80c780c52524beb13488942543972c8b0e54400e8b59cee0169f38d0fabb968","a77fbecee25688f568e18b43f8f54195d6c278a2a9a687ada5ab3d2f726524eb","e29f2b3a93ca3392fe29fa8e7b93985e854b44fe28e2b5c113f08296095bd6b7","d27956c8b392088a06d882e1edb58aab4d5cf5ab1229b73f99329ab21f352147","90dab905b7ea5ab629b62ec5a4153b3f44469aff5b1f6132edb2802537e5d8a7",{"version":"75267078e37831913f4271d9adbd76771f042e741be43967687d096c273314ef","signature":"d0a63bb68f17178e7439ce310bac10ae6645eb36d75b4814228fb4baf89fd735"},{"version":"dba514f669a6ed0051a1afdd711ecce64dbabd2d8680d43c7cc6b8b49c8d3618","signature":"d5e23dc821e4ad1edbdfbf488b285715c379f8edb782a3d152492a3c26846454"},{"version":"1d0a7ee30126e888cd8847581cac1d695607b2c0f5f134f57f30f9890008f432","signature":"b2989d6aa91f0769090b2b129da323cf64a2e7213f2323a4d098d7bbb75cc7a1"},{"version":"ed616e033eb4892dc5312047ed86d813956e9ccfdad4c5b58f7d4530bbeb4df2","signature":"108d7f945252bfa268d7fb835eab150fdc8c2b5102e3374a486cde6716c10c55"},{"version":"4ba563eddad5ccc47fbba0cda4763d6f4e9fc85405683b92cc7a21180d83c257","signature":"c25625652bd52011a0540ca9f18aa89b5df752968aac98a3ef2950bc02dbd903"},{"version":"f3c4fa1a7c33863e308eb291211381c7b3b7ac4616df903d82fb15ba35aad20e","signature":"ccd26e295d5893af7408ea0cbf7aba8d237676d848d67d636802308a152d7357"},{"version":"31111d593f492bb45c7f69902c2984974e0ac48dd0c6f7f96482570822434f6d","signature":"67b0a8d01a987e82acd88854bec6d6bb20716c8c210fdf7e4dffa52113431a79"},{"version":"0164a04e1f1302c44d08a2fe93d975ce8d55aa1e363db9b47881d44831af382a","signature":"7dbaa3160f1c22d6e229e3d38e18bf33ab7b50d19741931aa21b3a3bdd18b63f"},{"version":"d7c5fb1c148046a20111a93dd94f3e06c22b09debd6da1f82631dd99e68ae93b","signature":"00c95bf7e50f448ed67895ad16b60116024fb6bc9d1d40a6e9289b0920a155e3"},{"version":"2e3203780856433c7f7532e65cc0166be1ef0c311c269a43993e98b5146fdaca","signature":"ecbc53ec2c2389cfa6a3cb20c2b111503932a336c5bad3bc5acd8794d953d7bb"},{"version":"c738c496cc573c34d894a6b26e250d948253ac729c1eed77e6abc435172668c6","signature":"a9cd8cffe296d40c631d08e29cae8af27c9811a587093b95045c8213c22a55c5"},{"version":"fa31339f793c5fe06d583aa434d4361e324f2dd7b815cf2e1a9f9a1dbc0fb7a6","signature":"fd4ca57aa90399245374ca700ff3cd19165a197d9b898f7f5975e446d812b429"},"a87e5902fd92d16a80e0020ac03d6477bc2e7a6f5b0407a73aff6b7aa9e01d55",{"version":"1c3dc58c7ecede359bf0f3509f947ab0937edb11203d0c940b808840837df4c8","signature":"1898625646b2cf2e46529298f8ee1da27222180d2ac3261b174ed1c9e9256536"},{"version":"ad96a760678a272d3f6b06fe016fbd48296c59ac6c93d6a787be508da7dcbb97","signature":"d604f8c03be09ed8ad6e2085ba2e1e63f72548d4d20518c5e9265adbc4b942a9"},{"version":"7426ecaf79feecf83f39822da8f5f7ea54e655ed669d17259268be8439e12cdc","signature":"561351cc2b53ade446dcf1c1af781f0fff1a59522060d2b90fa2922f0a1a51d9"},"274b1fbd4d413479581ee864f2cb714e506f64725fca44afb1789707c509c953","b97b9034d922921957ec6a8193b68dfac3bf563520ebeb67738cd17bafd697a0",{"version":"5536a456c3de465e29f2f3aa3f2527eafbe30b3a3312bb5f6b3396be4e4746b0","signature":"a3b67d6cc47a9c07b8701daf59dd4f763b280e79a1bc39443bf9b49a9555329b"},{"version":"c452d3de5a5008d88189d47e742dcf4f168d26ecac932a5e427eec72a19e42d2","signature":"689920f11d15a4c7c32b043c98315977956fc3d03288018cf1bdd98006e64d84"},{"version":"4b135b9c87a30761c14dab892ed196bf0949cf42b1ece80c3fb642d856d2769f","signature":"911c62a35e3522850b8366cd9f6641701437e72ea02472b927a59a62402568ab"},"465f1ca1f11e6a1b01b043a93196b7f8fc09c985b8e3084804d9a3938aad588d","00b72e597dcd6ff7bf772918c78c41dc7c68e239af658cf452bff645ebdc485d","17b183b69a3dd3cca2505cee7ff70501c574343ad49a385c9acb5b5299e1ba73","b26d3fa6859459f64c93e0c154bfc7a8b216b4cf1e241ca6b67e67ee8248626b","91cab3f4d6ab131c74ea8772a8c182bdb9c52500fb0388ef9fd2828c084b8087","13b8acfead5a8519fad35e43f58c62b946a24f2a1311254250b840b15b2051cd",{"version":"59dca672dec70dc948d4f3f31de190f652a905d77278239aef30bc1887da132e","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"0a10db82aec819de7c6e57b5e09c01626b72ecc769b8a686430e0ce501130169","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"}],"root":[[74,80],[86,97],[99,101],[104,106],113,114],"options":{"composite":true,"declaration":true,"declarationMap":true,"emitDeclarationOnly":false,"esModuleInterop":true,"module":99,"noEmitOnError":true,"noFallthroughCasesInSwitch":true,"noImplicitReturns":true,"noUnusedLocals":true,"noUnusedParameters":true,"outDir":"./","rootDir":"../src","sourceMap":true,"strict":false,"target":2,"tsBuildInfoFile":"./.tsbuildinfo"},"fileIdsList":[[107,108,109,110],[111],[107,108,109],[110],[71],[65],[65,67],[65,66,67,68,69,70,71,72],[65,66,68,69,70],[81,82,83,84],[82],[82,83],[73,76,77],[79],[73,85,87],[73],[73,74],[73,74,75],[73,76,91,92,93],[73,76,89,90],[73,89,99],[73,75],[73,76],[74,75,76,77,78,79,80,86,87,88,89,90,91,92,93,94,95,96,97,99,100,101,104,105],[98],[104,112],[102,103],[87,112],[86]],"referencedMap":[[111,1],[112,2],[110,3],[109,4],[72,5],[66,6],[70,6],[69,7],[67,6],[73,8],[71,9],[68,6],[85,10],[83,11],[84,12],[78,13],[80,14],[88,15],[74,16],[89,17],[90,16],[76,18],[94,19],[95,16],[96,20],[97,16],[100,21],[91,22],[77,22],[101,23],[75,16],[106,24],[99,25],[105,16],[113,26],[104,27],[114,28],[87,29]],"exportedModulesMap":[[111,1],[112,2],[110,3],[109,4],[72,5],[66,6],[70,6],[69,7],[67,6],[73,8],[71,9],[68,6],[85,10],[83,11],[84,12],[78,16],[88,16],[74,16],[89,16],[90,16],[76,16],[94,16],[95,16],[96,16],[97,16],[100,16],[91,16],[77,16],[101,16],[75,16],[106,24],[99,25],[105,16]],"semanticDiagnosticsPerFile":[111,112,107,108,110,109,81,98,102,103,72,66,70,69,65,67,73,71,68,85,83,84,82,63,64,12,14,13,2,15,16,17,18,19,20,21,22,3,4,23,27,24,25,26,28,29,30,5,31,32,33,34,6,38,35,36,37,39,7,40,45,46,41,42,43,44,8,50,47,48,49,51,9,52,53,54,57,55,56,58,59,10,1,11,62,61,60,78,79,80,88,74,89,90,76,94,95,96,97,100,91,77,101,75,86,106,99,105,92,113,104,114,87,93],"latestChangedDtsFile":"./uuid-to-id.d.ts"},"version":"5.2.2"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { Block, ExtendedRecordMap } from "notion-types-personal";
|
|
2
|
+
type EstimatePageReadTimeOptions = {
|
|
3
|
+
wordsPerMinute?: number;
|
|
4
|
+
imageReadTimeInSeconds?: number;
|
|
5
|
+
};
|
|
6
|
+
type ContentStats = {
|
|
7
|
+
numWords: number;
|
|
8
|
+
numImages: number;
|
|
9
|
+
};
|
|
10
|
+
type PageReadTimeEstimate = ContentStats & {
|
|
11
|
+
totalWordsReadTimeInMinutes: number;
|
|
12
|
+
totalImageReadTimeInMinutes: number;
|
|
13
|
+
totalReadTimeInMinutes: number;
|
|
14
|
+
};
|
|
15
|
+
/**
|
|
16
|
+
* Returns an estimate for the time it would take for a person to read the content
|
|
17
|
+
* in the given Notion page.
|
|
18
|
+
*
|
|
19
|
+
* Uses Medium for inspiration.
|
|
20
|
+
*
|
|
21
|
+
* @see https://blog.medium.com/read-time-and-you-bc2048ab620c
|
|
22
|
+
* @see https://github.com/ngryman/reading-time
|
|
23
|
+
*
|
|
24
|
+
* TODO: handle non-english content.
|
|
25
|
+
*/
|
|
26
|
+
export declare function estimatePageReadTime(block: Block, recordMap: ExtendedRecordMap, { wordsPerMinute, imageReadTimeInSeconds, }?: EstimatePageReadTimeOptions): PageReadTimeEstimate;
|
|
27
|
+
/**
|
|
28
|
+
* Same as `estimatePageReadTime`, except it returns the total time estimate as
|
|
29
|
+
* a human-readable string.
|
|
30
|
+
*
|
|
31
|
+
* For example, "9 minutes" or "less than a minute".
|
|
32
|
+
*/
|
|
33
|
+
export declare function estimatePageReadTimeAsHumanizedString(block: Block, recordMap: ExtendedRecordMap, opts: EstimatePageReadTimeOptions): string;
|
|
34
|
+
export {};
|
|
35
|
+
//# sourceMappingURL=estimate-page-read-time.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"estimate-page-read-time.d.ts","sourceRoot":"","sources":["../src/estimate-page-read-time.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,iBAAiB,EAAa,MAAM,uBAAuB,CAAC;AAK5E,KAAK,2BAA2B,GAAG;IACjC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,sBAAsB,CAAC,EAAE,MAAM,CAAC;CACjC,CAAC;AAEF,KAAK,YAAY,GAAG;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,KAAK,oBAAoB,GAAG,YAAY,GAAG;IACzC,2BAA2B,EAAE,MAAM,CAAC;IACpC,2BAA2B,EAAE,MAAM,CAAC;IACpC,sBAAsB,EAAE,MAAM,CAAC;CAChC,CAAC;AAEF;;;;;;;;;;GAUG;AACH,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,KAAK,EACZ,SAAS,EAAE,iBAAiB,EAC5B,EACE,cAAoB,EACpB,sBAA2B,GAC5B,GAAE,2BAAgC,GAClC,oBAAoB,CAoBtB;AAED;;;;;GAKG;AACH,wBAAgB,qCAAqC,CACnD,KAAK,EAAE,KAAK,EACZ,SAAS,EAAE,iBAAiB,EAC5B,IAAI,EAAE,2BAA2B,UAIlC"}
|
|
@@ -0,0 +1,183 @@
|
|
|
1
|
+
import { getBlockTitle } from "./get-block-title";
|
|
2
|
+
import { getPageTableOfContents } from "./get-page-table-of-contents";
|
|
3
|
+
/**
|
|
4
|
+
* Returns an estimate for the time it would take for a person to read the content
|
|
5
|
+
* in the given Notion page.
|
|
6
|
+
*
|
|
7
|
+
* Uses Medium for inspiration.
|
|
8
|
+
*
|
|
9
|
+
* @see https://blog.medium.com/read-time-and-you-bc2048ab620c
|
|
10
|
+
* @see https://github.com/ngryman/reading-time
|
|
11
|
+
*
|
|
12
|
+
* TODO: handle non-english content.
|
|
13
|
+
*/
|
|
14
|
+
export function estimatePageReadTime(block, recordMap, { wordsPerMinute = 275, imageReadTimeInSeconds = 12, } = {}) {
|
|
15
|
+
const stats = getBlockContentStats(block, recordMap);
|
|
16
|
+
const totalWordsReadTimeInMinutes = stats.numWords / wordsPerMinute;
|
|
17
|
+
const totalImageReadTimeInSeconds = stats.numImages > 10
|
|
18
|
+
? (stats.numImages / 2) * (imageReadTimeInSeconds + 3) +
|
|
19
|
+
(stats.numImages - 10) * 3 // n/2(a+b) + 3 sec/image
|
|
20
|
+
: (stats.numImages / 2) *
|
|
21
|
+
(2 * imageReadTimeInSeconds + (1 - stats.numImages)); // n/2[2a+(n-1)d]
|
|
22
|
+
const totalImageReadTimeInMinutes = totalImageReadTimeInSeconds / 60;
|
|
23
|
+
const totalReadTimeInMinutes = totalWordsReadTimeInMinutes + totalImageReadTimeInMinutes;
|
|
24
|
+
return Object.assign(Object.assign({}, stats), { totalWordsReadTimeInMinutes,
|
|
25
|
+
totalImageReadTimeInMinutes,
|
|
26
|
+
totalReadTimeInMinutes });
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Same as `estimatePageReadTime`, except it returns the total time estimate as
|
|
30
|
+
* a human-readable string.
|
|
31
|
+
*
|
|
32
|
+
* For example, "9 minutes" or "less than a minute".
|
|
33
|
+
*/
|
|
34
|
+
export function estimatePageReadTimeAsHumanizedString(block, recordMap, opts) {
|
|
35
|
+
const estimate = estimatePageReadTime(block, recordMap, opts);
|
|
36
|
+
return humanizeReadTime(estimate.totalReadTimeInMinutes);
|
|
37
|
+
}
|
|
38
|
+
function getBlockContentStats(block, recordMap) {
|
|
39
|
+
var _a, _b, _c, _d;
|
|
40
|
+
const stats = {
|
|
41
|
+
numWords: 0,
|
|
42
|
+
numImages: 0,
|
|
43
|
+
};
|
|
44
|
+
if (!block) {
|
|
45
|
+
return stats;
|
|
46
|
+
}
|
|
47
|
+
for (const childId of block.content || []) {
|
|
48
|
+
const child = (_a = recordMap.block[childId]) === null || _a === void 0 ? void 0 : _a.value;
|
|
49
|
+
let recurse = false;
|
|
50
|
+
if (!child)
|
|
51
|
+
continue;
|
|
52
|
+
switch (child.type) {
|
|
53
|
+
case "quote":
|
|
54
|
+
// fallthrough
|
|
55
|
+
case "alias":
|
|
56
|
+
// fallthrough
|
|
57
|
+
case "header":
|
|
58
|
+
// fallthrough
|
|
59
|
+
case "sub_header":
|
|
60
|
+
// fallthrough
|
|
61
|
+
case "sub_sub_header": {
|
|
62
|
+
const title = getBlockTitle(child, recordMap);
|
|
63
|
+
stats.numWords += countWordsInText(title);
|
|
64
|
+
break;
|
|
65
|
+
}
|
|
66
|
+
case "callout":
|
|
67
|
+
// fallthrough
|
|
68
|
+
case "toggle":
|
|
69
|
+
// fallthrough
|
|
70
|
+
case "to_do":
|
|
71
|
+
// fallthrough
|
|
72
|
+
case "bulleted_list":
|
|
73
|
+
// fallthrough
|
|
74
|
+
case "numbered_list":
|
|
75
|
+
// fallthrough
|
|
76
|
+
case "text": {
|
|
77
|
+
const title = getBlockTitle(child, recordMap);
|
|
78
|
+
stats.numWords += countWordsInText(title);
|
|
79
|
+
recurse = true;
|
|
80
|
+
break;
|
|
81
|
+
}
|
|
82
|
+
case "embed":
|
|
83
|
+
// fallthrough
|
|
84
|
+
case "tweet":
|
|
85
|
+
// fallthrough
|
|
86
|
+
case "maps":
|
|
87
|
+
// fallthrough
|
|
88
|
+
case "pdf":
|
|
89
|
+
// fallthrough
|
|
90
|
+
case "figma":
|
|
91
|
+
// fallthrough
|
|
92
|
+
case "typeform":
|
|
93
|
+
// fallthrough
|
|
94
|
+
case "codepen":
|
|
95
|
+
// fallthrough
|
|
96
|
+
case "excalidraw":
|
|
97
|
+
// fallthrough
|
|
98
|
+
case "gist":
|
|
99
|
+
// fallthrough
|
|
100
|
+
case "video":
|
|
101
|
+
// fallthrough
|
|
102
|
+
case "drive":
|
|
103
|
+
// fallthrough
|
|
104
|
+
case "audio":
|
|
105
|
+
// fallthrough
|
|
106
|
+
case "file":
|
|
107
|
+
// fallthrough
|
|
108
|
+
case "image":
|
|
109
|
+
// treat all embeds as images
|
|
110
|
+
stats.numImages += 1;
|
|
111
|
+
break;
|
|
112
|
+
case "bookmark":
|
|
113
|
+
// treat bookmarks as quarter images since they aren't as content-ful as embedd images
|
|
114
|
+
stats.numImages += 0.25;
|
|
115
|
+
break;
|
|
116
|
+
case "code":
|
|
117
|
+
// treat code blocks as double the complexity of images
|
|
118
|
+
stats.numImages += 2;
|
|
119
|
+
break;
|
|
120
|
+
case "table":
|
|
121
|
+
// fallthrough
|
|
122
|
+
case "collection_view":
|
|
123
|
+
// treat collection views as double the complexity of images
|
|
124
|
+
stats.numImages += 2;
|
|
125
|
+
break;
|
|
126
|
+
case "column":
|
|
127
|
+
// fallthrough
|
|
128
|
+
case "column_list":
|
|
129
|
+
// fallthrough
|
|
130
|
+
case "transclusion_container":
|
|
131
|
+
recurse = true;
|
|
132
|
+
break;
|
|
133
|
+
case "table_of_contents": {
|
|
134
|
+
const page = block;
|
|
135
|
+
if (!page)
|
|
136
|
+
continue;
|
|
137
|
+
const toc = getPageTableOfContents(page, recordMap);
|
|
138
|
+
for (const tocItem of toc) {
|
|
139
|
+
stats.numWords += countWordsInText(tocItem.text);
|
|
140
|
+
}
|
|
141
|
+
break;
|
|
142
|
+
}
|
|
143
|
+
case "transclusion_reference": {
|
|
144
|
+
const referencePointerId = (_c = (_b = child === null || child === void 0 ? void 0 : child.format) === null || _b === void 0 ? void 0 : _b.transclusion_reference_pointer) === null || _c === void 0 ? void 0 : _c.id;
|
|
145
|
+
if (!referencePointerId) {
|
|
146
|
+
continue;
|
|
147
|
+
}
|
|
148
|
+
const referenceBlock = (_d = recordMap.block[referencePointerId]) === null || _d === void 0 ? void 0 : _d.value;
|
|
149
|
+
if (referenceBlock) {
|
|
150
|
+
mergeContentStats(stats, getBlockContentStats(referenceBlock, recordMap));
|
|
151
|
+
}
|
|
152
|
+
break;
|
|
153
|
+
}
|
|
154
|
+
default:
|
|
155
|
+
// ignore unrecognized blocks
|
|
156
|
+
break;
|
|
157
|
+
}
|
|
158
|
+
if (recurse) {
|
|
159
|
+
mergeContentStats(stats, getBlockContentStats(child, recordMap));
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
return stats;
|
|
163
|
+
}
|
|
164
|
+
function mergeContentStats(statsA, statsB) {
|
|
165
|
+
statsA.numWords += statsB.numWords;
|
|
166
|
+
statsA.numImages += statsB.numImages;
|
|
167
|
+
}
|
|
168
|
+
function countWordsInText(text) {
|
|
169
|
+
if (!text) {
|
|
170
|
+
return 0;
|
|
171
|
+
}
|
|
172
|
+
return (text.match(/\w+/g) || []).length;
|
|
173
|
+
}
|
|
174
|
+
function humanizeReadTime(time) {
|
|
175
|
+
if (time < 0.5) {
|
|
176
|
+
return "less than a minute";
|
|
177
|
+
}
|
|
178
|
+
if (time < 1.5) {
|
|
179
|
+
return "1 minute";
|
|
180
|
+
}
|
|
181
|
+
return `${Math.ceil(time)} minutes`;
|
|
182
|
+
}
|
|
183
|
+
//# sourceMappingURL=estimate-page-read-time.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"estimate-page-read-time.js","sourceRoot":"","sources":["../src/estimate-page-read-time.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"format-date.d.ts","sourceRoot":"","sources":["../src/format-date.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,UAAU,UACd,MAAM,GAAG,MAAM;YACS,MAAM,GAAG,OAAO;YAKhD,CAAA"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export const formatDate = (input, { month = 'short' } = {}) => {
|
|
2
|
+
const date = new Date(input);
|
|
3
|
+
const monthLocale = date.toLocaleString('en-US', { month });
|
|
4
|
+
return `${monthLocale} ${date.getUTCDate()}, ${date.getUTCFullYear()}`;
|
|
5
|
+
};
|
|
6
|
+
//# sourceMappingURL=format-date.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"format-date.js","sourceRoot":"","sources":["../src/format-date.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,UAAU,GAAG,CACxB,KAAsB,EACtB,EAAE,KAAK,GAAG,OAAO,KAAmC,EAAE,EACtD,EAAE;IACF,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,CAAA;IAC5B,MAAM,WAAW,GAAG,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,CAAC,CAAA;IAC3D,OAAO,GAAG,WAAW,IAAI,IAAI,CAAC,UAAU,EAAE,KAAK,IAAI,CAAC,cAAc,EAAE,EAAE,CAAA;AACxE,CAAC,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"format-notion-date-time.d.ts","sourceRoot":"","sources":["../src/format-notion-date-time.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,UAAU,CAAA;IAChB,UAAU,EAAE,MAAM,CAAA;IAClB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAED,eAAO,MAAM,oBAAoB,aAAc,cAAc,WAM5D,CAAA"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { formatDate } from './format-date';
|
|
2
|
+
export const formatNotionDateTime = (datetime) => {
|
|
3
|
+
// Adding +00:00 preserve the time in UTC.
|
|
4
|
+
const dateString = `${datetime.start_date}T${datetime.start_time || '00:00'}+00:00`;
|
|
5
|
+
return formatDate(dateString);
|
|
6
|
+
};
|
|
7
|
+
//# sourceMappingURL=format-notion-date-time.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"format-notion-date-time.js","sourceRoot":"","sources":["../src/format-notion-date-time.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAA;AAS1C,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,QAAwB,EAAE,EAAE;IAC/D,0CAA0C;IAC1C,MAAM,UAAU,GAAG,GAAG,QAAQ,CAAC,UAAU,IACvC,QAAQ,CAAC,UAAU,IAAI,OACzB,QAAQ,CAAA;IACR,OAAO,UAAU,CAAC,UAAU,CAAC,CAAA;AAC/B,CAAC,CAAA"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { ExtendedRecordMap, PageMap } from "notion-types-personal";
|
|
2
|
+
/**
|
|
3
|
+
* Performs a traversal over a given Notion workspace starting from a seed page.
|
|
4
|
+
*
|
|
5
|
+
* Returns a map containing all of the pages that are reachable from the seed
|
|
6
|
+
* page in the space.
|
|
7
|
+
*
|
|
8
|
+
* If `rootSpaceId` is not defined, the space ID of the root page will be used
|
|
9
|
+
* to scope traversal.
|
|
10
|
+
*
|
|
11
|
+
*
|
|
12
|
+
* @param rootPageId - Page ID to start from.
|
|
13
|
+
* @param rootSpaceId - Space ID to scope traversal.
|
|
14
|
+
* @param getPage - Function used to fetch a single page.
|
|
15
|
+
* @param opts - Optional config
|
|
16
|
+
*/
|
|
17
|
+
export declare function getAllPagesInSpace(rootPageId: string, rootSpaceId: string | undefined, getPage: (pageId: string) => Promise<ExtendedRecordMap>, { concurrency, traverseCollections, targetPageId, }?: {
|
|
18
|
+
concurrency?: number;
|
|
19
|
+
traverseCollections?: boolean;
|
|
20
|
+
targetPageId?: string;
|
|
21
|
+
}): Promise<PageMap>;
|
|
22
|
+
//# sourceMappingURL=get-all-pages-in-space.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get-all-pages-in-space.d.ts","sourceRoot":"","sources":["../src/get-all-pages-in-space.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAKnE;;;;;;;;;;;;;;GAcG;AACH,wBAAsB,kBAAkB,CACtC,UAAU,EAAE,MAAM,EAClB,WAAW,EAAE,MAAM,GAAG,SAAS,EAC/B,OAAO,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,iBAAiB,CAAC,EACvD,EACE,WAAe,EACf,mBAA0B,EAC1B,YAAmB,GACpB,GAAE;IACD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,YAAY,CAAC,EAAE,MAAM,CAAC;CAClB,GACL,OAAO,CAAC,OAAO,CAAC,CAuGlB"}
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
2
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
3
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
4
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
5
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
6
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
7
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
8
|
+
});
|
|
9
|
+
};
|
|
10
|
+
import PQueue from "p-queue";
|
|
11
|
+
import { parsePageId } from "./parse-page-id";
|
|
12
|
+
/**
|
|
13
|
+
* Performs a traversal over a given Notion workspace starting from a seed page.
|
|
14
|
+
*
|
|
15
|
+
* Returns a map containing all of the pages that are reachable from the seed
|
|
16
|
+
* page in the space.
|
|
17
|
+
*
|
|
18
|
+
* If `rootSpaceId` is not defined, the space ID of the root page will be used
|
|
19
|
+
* to scope traversal.
|
|
20
|
+
*
|
|
21
|
+
*
|
|
22
|
+
* @param rootPageId - Page ID to start from.
|
|
23
|
+
* @param rootSpaceId - Space ID to scope traversal.
|
|
24
|
+
* @param getPage - Function used to fetch a single page.
|
|
25
|
+
* @param opts - Optional config
|
|
26
|
+
*/
|
|
27
|
+
export function getAllPagesInSpace(rootPageId, rootSpaceId, getPage, { concurrency = 4, traverseCollections = true, targetPageId = null, } = {}) {
|
|
28
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
29
|
+
const pages = {};
|
|
30
|
+
const pendingPageIds = new Set();
|
|
31
|
+
const queue = new PQueue({ concurrency });
|
|
32
|
+
function processPage(pageId) {
|
|
33
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
34
|
+
if (targetPageId && pendingPageIds.has(targetPageId)) {
|
|
35
|
+
return;
|
|
36
|
+
}
|
|
37
|
+
pageId = parsePageId(pageId);
|
|
38
|
+
if (pageId && !pages[pageId] && !pendingPageIds.has(pageId)) {
|
|
39
|
+
pendingPageIds.add(pageId);
|
|
40
|
+
queue.add(() => __awaiter(this, void 0, void 0, function* () {
|
|
41
|
+
var _a, _b;
|
|
42
|
+
try {
|
|
43
|
+
if (targetPageId &&
|
|
44
|
+
pendingPageIds.has(targetPageId) &&
|
|
45
|
+
pageId !== targetPageId) {
|
|
46
|
+
return;
|
|
47
|
+
}
|
|
48
|
+
const page = yield getPage(pageId);
|
|
49
|
+
if (!page) {
|
|
50
|
+
return;
|
|
51
|
+
}
|
|
52
|
+
const spaceId = (_b = (_a = page.block[pageId]) === null || _a === void 0 ? void 0 : _a.value) === null || _b === void 0 ? void 0 : _b.space_id;
|
|
53
|
+
if (spaceId) {
|
|
54
|
+
if (!rootSpaceId) {
|
|
55
|
+
rootSpaceId = spaceId;
|
|
56
|
+
}
|
|
57
|
+
else if (rootSpaceId !== spaceId) {
|
|
58
|
+
return;
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
Object.keys(page.block)
|
|
62
|
+
.filter((key) => {
|
|
63
|
+
var _a;
|
|
64
|
+
const block = (_a = page.block[key]) === null || _a === void 0 ? void 0 : _a.value;
|
|
65
|
+
if (!block)
|
|
66
|
+
return false;
|
|
67
|
+
if (block.type !== "page" &&
|
|
68
|
+
block.type !== "collection_view_page") {
|
|
69
|
+
return false;
|
|
70
|
+
}
|
|
71
|
+
// the space id check is important to limit traversal because pages
|
|
72
|
+
// can reference pages in other spaces
|
|
73
|
+
if (rootSpaceId &&
|
|
74
|
+
block.space_id &&
|
|
75
|
+
block.space_id !== rootSpaceId) {
|
|
76
|
+
return false;
|
|
77
|
+
}
|
|
78
|
+
return true;
|
|
79
|
+
})
|
|
80
|
+
.forEach((subPageId) => processPage(subPageId));
|
|
81
|
+
// traverse collection item pages as they may contain subpages as well
|
|
82
|
+
if (traverseCollections) {
|
|
83
|
+
for (const collectionViews of Object.values(page.collection_query)) {
|
|
84
|
+
for (const collectionData of Object.values(collectionViews)) {
|
|
85
|
+
const { blockIds } = collectionData;
|
|
86
|
+
if (blockIds) {
|
|
87
|
+
for (const collectionItemId of blockIds) {
|
|
88
|
+
processPage(collectionItemId);
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
pages[pageId] = page;
|
|
95
|
+
}
|
|
96
|
+
catch (err) {
|
|
97
|
+
console.warn("page load error", { pageId, spaceId: rootSpaceId }, err.statusCode, err.message);
|
|
98
|
+
pages[pageId] = null;
|
|
99
|
+
}
|
|
100
|
+
pendingPageIds.delete(pageId);
|
|
101
|
+
}));
|
|
102
|
+
}
|
|
103
|
+
});
|
|
104
|
+
}
|
|
105
|
+
yield processPage(rootPageId);
|
|
106
|
+
yield queue.onIdle();
|
|
107
|
+
return pages;
|
|
108
|
+
});
|
|
109
|
+
}
|
|
110
|
+
//# sourceMappingURL=get-all-pages-in-space.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get-all-pages-in-space.js","sourceRoot":"","sources":["../src/get-all-pages-in-space.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get-block-collection-id.d.ts","sourceRoot":"","sources":["../src/get-block-collection-id.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAEjE,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,KAAK,EACZ,SAAS,EAAE,iBAAiB,GAC3B,MAAM,GAAG,IAAI,CAmBf"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
export function getBlockCollectionId(block, recordMap) {
|
|
2
|
+
var _a, _b, _c, _d, _e, _f, _g;
|
|
3
|
+
const collectionId = block.collection_id ||
|
|
4
|
+
((_b = (_a = block.format) === null || _a === void 0 ? void 0 : _a.collection_pointer) === null || _b === void 0 ? void 0 : _b.id);
|
|
5
|
+
if (collectionId) {
|
|
6
|
+
return collectionId;
|
|
7
|
+
}
|
|
8
|
+
const collectionViewId = (_c = block === null || block === void 0 ? void 0 : block.view_ids) === null || _c === void 0 ? void 0 : _c[0];
|
|
9
|
+
if (collectionViewId) {
|
|
10
|
+
const collectionView = (_e = (_d = recordMap.collection_view) === null || _d === void 0 ? void 0 : _d[collectionViewId]) === null || _e === void 0 ? void 0 : _e.value;
|
|
11
|
+
if (collectionView) {
|
|
12
|
+
const collectionId = (_g = (_f = collectionView.format) === null || _f === void 0 ? void 0 : _f.collection_pointer) === null || _g === void 0 ? void 0 : _g.id;
|
|
13
|
+
return collectionId;
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
return null;
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=get-block-collection-id.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get-block-collection-id.js","sourceRoot":"","sources":["../src/get-block-collection-id.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,oBAAoB,CAClC,KAAY,EACZ,SAA4B;;IAE5B,MAAM,YAAY,GACf,KAAa,CAAC,aAAa;SAC5B,MAAA,MAAC,KAAa,CAAC,MAAM,0CAAE,kBAAkB,0CAAE,EAAE,CAAA,CAAC;IAEhD,IAAI,YAAY,EAAE;QAChB,OAAO,YAAY,CAAC;KACrB;IAED,MAAM,gBAAgB,GAAG,MAAC,KAAa,aAAb,KAAK,uBAAL,KAAK,CAAU,QAAQ,0CAAG,CAAC,CAAC,CAAC;IACvD,IAAI,gBAAgB,EAAE;QACpB,MAAM,cAAc,GAAG,MAAA,MAAA,SAAS,CAAC,eAAe,0CAAG,gBAAgB,CAAC,0CAAE,KAAK,CAAC;QAC5E,IAAI,cAAc,EAAE;YAClB,MAAM,YAAY,GAAG,MAAA,MAAA,cAAc,CAAC,MAAM,0CAAE,kBAAkB,0CAAE,EAAE,CAAC;YACnE,OAAO,YAAY,CAAC;SACrB;KACF;IAED,OAAO,IAAI,CAAC;AACd,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get-block-icon.d.ts","sourceRoot":"","sources":["../src/get-block-icon.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,iBAAiB,EAAa,MAAM,uBAAuB,CAAC;AAI5E,wBAAgB,YAAY,CAAC,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,iBAAiB,UAoBtE"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { getBlockCollectionId } from "./get-block-collection-id";
|
|
2
|
+
export function getBlockIcon(block, recordMap) {
|
|
3
|
+
var _a, _b, _c;
|
|
4
|
+
if ((_a = block.format) === null || _a === void 0 ? void 0 : _a.page_icon) {
|
|
5
|
+
return (_b = block.format) === null || _b === void 0 ? void 0 : _b.page_icon;
|
|
6
|
+
}
|
|
7
|
+
if (block.type === "collection_view_page" ||
|
|
8
|
+
block.type === "collection_view") {
|
|
9
|
+
const collectionId = getBlockCollectionId(block, recordMap);
|
|
10
|
+
if (collectionId) {
|
|
11
|
+
const collection = (_c = recordMap.collection[collectionId]) === null || _c === void 0 ? void 0 : _c.value;
|
|
12
|
+
if (collection) {
|
|
13
|
+
return collection.icon;
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
return null;
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=get-block-icon.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get-block-icon.js","sourceRoot":"","sources":["../src/get-block-icon.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AAEjE,MAAM,UAAU,YAAY,CAAC,KAAY,EAAE,SAA4B;;IACrE,IAAI,MAAC,KAAmB,CAAC,MAAM,0CAAE,SAAS,EAAE;QAC1C,OAAO,MAAC,KAAmB,CAAC,MAAM,0CAAE,SAAS,CAAC;KAC/C;IAED,IACE,KAAK,CAAC,IAAI,KAAK,sBAAsB;QACrC,KAAK,CAAC,IAAI,KAAK,iBAAiB,EAChC;QACA,MAAM,YAAY,GAAG,oBAAoB,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;QAC5D,IAAI,YAAY,EAAE;YAChB,MAAM,UAAU,GAAG,MAAA,SAAS,CAAC,UAAU,CAAC,YAAY,CAAC,0CAAE,KAAK,CAAC;YAE7D,IAAI,UAAU,EAAE;gBACd,OAAO,UAAU,CAAC,IAAI,CAAC;aACxB;SACF;KACF;IAED,OAAO,IAAI,CAAC;AACd,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import * as types from "notion-types-personal";
|
|
2
|
+
/**
|
|
3
|
+
* Returns the parent page block containing a given page.
|
|
4
|
+
*
|
|
5
|
+
* Note that many times this will not be the direct parent block since
|
|
6
|
+
* some non-page content blocks can contain sub-blocks.
|
|
7
|
+
*/
|
|
8
|
+
export declare const getBlockParentPage: (block: types.Block, recordMap: types.ExtendedRecordMap, { inclusive, }?: {
|
|
9
|
+
inclusive?: boolean;
|
|
10
|
+
}) => types.PageBlock | null;
|
|
11
|
+
//# sourceMappingURL=get-block-parent-page.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get-block-parent-page.d.ts","sourceRoot":"","sources":["../src/get-block-parent-page.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,uBAAuB,CAAC;AAE/C;;;;;GAKG;AACH,eAAO,MAAM,kBAAkB,UACtB,MAAM,KAAK,aACP,MAAM,iBAAiB;gBAIpB,OAAO;MAEpB,MAAM,SAAS,GAAG,IA2BpB,CAAC"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Returns the parent page block containing a given page.
|
|
3
|
+
*
|
|
4
|
+
* Note that many times this will not be the direct parent block since
|
|
5
|
+
* some non-page content blocks can contain sub-blocks.
|
|
6
|
+
*/
|
|
7
|
+
export const getBlockParentPage = (block, recordMap, { inclusive = false, } = {}) => {
|
|
8
|
+
var _a, _b;
|
|
9
|
+
let currentRecord = block;
|
|
10
|
+
while (currentRecord != null) {
|
|
11
|
+
if (inclusive && (currentRecord === null || currentRecord === void 0 ? void 0 : currentRecord.type) === "page") {
|
|
12
|
+
return currentRecord;
|
|
13
|
+
}
|
|
14
|
+
const parentId = currentRecord.parent_id;
|
|
15
|
+
const parentTable = currentRecord.parent_table;
|
|
16
|
+
if (!parentId) {
|
|
17
|
+
break;
|
|
18
|
+
}
|
|
19
|
+
if (parentTable === "collection") {
|
|
20
|
+
currentRecord = (_a = recordMap.collection[parentId]) === null || _a === void 0 ? void 0 : _a.value;
|
|
21
|
+
}
|
|
22
|
+
else {
|
|
23
|
+
currentRecord = (_b = recordMap.block[parentId]) === null || _b === void 0 ? void 0 : _b.value;
|
|
24
|
+
if ((currentRecord === null || currentRecord === void 0 ? void 0 : currentRecord.type) === "page") {
|
|
25
|
+
return currentRecord;
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
return null;
|
|
30
|
+
};
|
|
31
|
+
//# sourceMappingURL=get-block-parent-page.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get-block-parent-page.js","sourceRoot":"","sources":["../src/get-block-parent-page.ts"],"names":[],"mappings":"AAEA;;;;;GAKG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAChC,KAAkB,EAClB,SAAkC,EAClC,EACE,SAAS,GAAG,KAAK,MAGf,EAAE,EACkB,EAAE;;IAC1B,IAAI,aAAa,GAAmC,KAAK,CAAC;IAE1D,OAAO,aAAa,IAAI,IAAI,EAAE;QAC5B,IAAI,SAAS,IAAI,CAAC,aAA6B,aAA7B,aAAa,uBAAb,aAAa,CAAkB,IAAI,MAAK,MAAM,EAAE;YAChE,OAAO,aAAgC,CAAC;SACzC;QAED,MAAM,QAAQ,GAAW,aAAa,CAAC,SAAS,CAAC;QACjD,MAAM,WAAW,GAAG,aAAa,CAAC,YAAY,CAAC;QAE/C,IAAI,CAAC,QAAQ,EAAE;YACb,MAAM;SACP;QAED,IAAI,WAAW,KAAK,YAAY,EAAE;YAChC,aAAa,GAAG,MAAA,SAAS,CAAC,UAAU,CAAC,QAAQ,CAAC,0CAAE,KAAK,CAAC;SACvD;aAAM;YACL,aAAa,GAAG,MAAA,SAAS,CAAC,KAAK,CAAC,QAAQ,CAAC,0CAAE,KAAK,CAAC;YAEjD,IAAI,CAAC,aAA6B,aAA7B,aAAa,uBAAb,aAAa,CAAkB,IAAI,MAAK,MAAM,EAAE;gBACnD,OAAO,aAAgC,CAAC;aACzC;SACF;KACF;IAED,OAAO,IAAI,CAAC;AACd,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get-block-title.d.ts","sourceRoot":"","sources":["../src/get-block-title.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAKjE,wBAAgB,aAAa,CAAC,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,iBAAiB,UAqBvE"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { getBlockCollectionId } from "./get-block-collection-id";
|
|
2
|
+
import { getTextContent } from "./get-text-content";
|
|
3
|
+
export function getBlockTitle(block, recordMap) {
|
|
4
|
+
var _a, _b;
|
|
5
|
+
if ((_a = block.properties) === null || _a === void 0 ? void 0 : _a.title) {
|
|
6
|
+
return getTextContent(block.properties.title);
|
|
7
|
+
}
|
|
8
|
+
if (block.type === "collection_view_page" ||
|
|
9
|
+
block.type === "collection_view") {
|
|
10
|
+
const collectionId = getBlockCollectionId(block, recordMap);
|
|
11
|
+
if (collectionId) {
|
|
12
|
+
const collection = (_b = recordMap.collection[collectionId]) === null || _b === void 0 ? void 0 : _b.value;
|
|
13
|
+
if (collection) {
|
|
14
|
+
return getTextContent(collection.name);
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
return "";
|
|
19
|
+
}
|
|
20
|
+
//# sourceMappingURL=get-block-title.js.map
|