@texonom/nutils 1.2.10 → 1.2.12
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 -1
- package/build/index.d.ts +1 -1
- package/build/index.js.map +1 -1
- package/package.json +4 -4
package/build/.tsbuildinfo
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"program":{"fileNames":["../../../node_modules/.pnpm/typescript@5.2.2/node_modules/typescript/lib/lib.es5.d.ts","../../../node_modules/.pnpm/typescript@5.2.2/node_modules/typescript/lib/lib.es2015.d.ts","../../../node_modules/.pnpm/typescript@5.2.2/node_modules/typescript/lib/lib.es2016.d.ts","../../../node_modules/.pnpm/typescript@5.2.2/node_modules/typescript/lib/lib.es2017.d.ts","../../../node_modules/.pnpm/typescript@5.2.2/node_modules/typescript/lib/lib.es2018.d.ts","../../../node_modules/.pnpm/typescript@5.2.2/node_modules/typescript/lib/lib.es2019.d.ts","../../../node_modules/.pnpm/typescript@5.2.2/node_modules/typescript/lib/lib.es2020.d.ts","../../../node_modules/.pnpm/typescript@5.2.2/node_modules/typescript/lib/lib.es2021.d.ts","../../../node_modules/.pnpm/typescript@5.2.2/node_modules/typescript/lib/lib.es2022.d.ts","../../../node_modules/.pnpm/typescript@5.2.2/node_modules/typescript/lib/lib.es2023.d.ts","../../../node_modules/.pnpm/typescript@5.2.2/node_modules/typescript/lib/lib.esnext.d.ts","../../../node_modules/.pnpm/typescript@5.2.2/node_modules/typescript/lib/lib.dom.d.ts","../../../node_modules/.pnpm/typescript@5.2.2/node_modules/typescript/lib/lib.es2015.core.d.ts","../../../node_modules/.pnpm/typescript@5.2.2/node_modules/typescript/lib/lib.es2015.collection.d.ts","../../../node_modules/.pnpm/typescript@5.2.2/node_modules/typescript/lib/lib.es2015.generator.d.ts","../../../node_modules/.pnpm/typescript@5.2.2/node_modules/typescript/lib/lib.es2015.iterable.d.ts","../../../node_modules/.pnpm/typescript@5.2.2/node_modules/typescript/lib/lib.es2015.promise.d.ts","../../../node_modules/.pnpm/typescript@5.2.2/node_modules/typescript/lib/lib.es2015.proxy.d.ts","../../../node_modules/.pnpm/typescript@5.2.2/node_modules/typescript/lib/lib.es2015.reflect.d.ts","../../../node_modules/.pnpm/typescript@5.2.2/node_modules/typescript/lib/lib.es2015.symbol.d.ts","../../../node_modules/.pnpm/typescript@5.2.2/node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../../../node_modules/.pnpm/typescript@5.2.2/node_modules/typescript/lib/lib.es2016.array.include.d.ts","../../../node_modules/.pnpm/typescript@5.2.2/node_modules/typescript/lib/lib.es2017.date.d.ts","../../../node_modules/.pnpm/typescript@5.2.2/node_modules/typescript/lib/lib.es2017.object.d.ts","../../../node_modules/.pnpm/typescript@5.2.2/node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","../../../node_modules/.pnpm/typescript@5.2.2/node_modules/typescript/lib/lib.es2017.string.d.ts","../../../node_modules/.pnpm/typescript@5.2.2/node_modules/typescript/lib/lib.es2017.intl.d.ts","../../../node_modules/.pnpm/typescript@5.2.2/node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","../../../node_modules/.pnpm/typescript@5.2.2/node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","../../../node_modules/.pnpm/typescript@5.2.2/node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","../../../node_modules/.pnpm/typescript@5.2.2/node_modules/typescript/lib/lib.es2018.intl.d.ts","../../../node_modules/.pnpm/typescript@5.2.2/node_modules/typescript/lib/lib.es2018.promise.d.ts","../../../node_modules/.pnpm/typescript@5.2.2/node_modules/typescript/lib/lib.es2018.regexp.d.ts","../../../node_modules/.pnpm/typescript@5.2.2/node_modules/typescript/lib/lib.es2019.array.d.ts","../../../node_modules/.pnpm/typescript@5.2.2/node_modules/typescript/lib/lib.es2019.object.d.ts","../../../node_modules/.pnpm/typescript@5.2.2/node_modules/typescript/lib/lib.es2019.string.d.ts","../../../node_modules/.pnpm/typescript@5.2.2/node_modules/typescript/lib/lib.es2019.symbol.d.ts","../../../node_modules/.pnpm/typescript@5.2.2/node_modules/typescript/lib/lib.es2019.intl.d.ts","../../../node_modules/.pnpm/typescript@5.2.2/node_modules/typescript/lib/lib.es2020.bigint.d.ts","../../../node_modules/.pnpm/typescript@5.2.2/node_modules/typescript/lib/lib.es2020.date.d.ts","../../../node_modules/.pnpm/typescript@5.2.2/node_modules/typescript/lib/lib.es2020.promise.d.ts","../../../node_modules/.pnpm/typescript@5.2.2/node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","../../../node_modules/.pnpm/typescript@5.2.2/node_modules/typescript/lib/lib.es2020.string.d.ts","../../../node_modules/.pnpm/typescript@5.2.2/node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","../../../node_modules/.pnpm/typescript@5.2.2/node_modules/typescript/lib/lib.es2020.intl.d.ts","../../../node_modules/.pnpm/typescript@5.2.2/node_modules/typescript/lib/lib.es2020.number.d.ts","../../../node_modules/.pnpm/typescript@5.2.2/node_modules/typescript/lib/lib.es2021.promise.d.ts","../../../node_modules/.pnpm/typescript@5.2.2/node_modules/typescript/lib/lib.es2021.string.d.ts","../../../node_modules/.pnpm/typescript@5.2.2/node_modules/typescript/lib/lib.es2021.weakref.d.ts","../../../node_modules/.pnpm/typescript@5.2.2/node_modules/typescript/lib/lib.es2021.intl.d.ts","../../../node_modules/.pnpm/typescript@5.2.2/node_modules/typescript/lib/lib.es2022.array.d.ts","../../../node_modules/.pnpm/typescript@5.2.2/node_modules/typescript/lib/lib.es2022.error.d.ts","../../../node_modules/.pnpm/typescript@5.2.2/node_modules/typescript/lib/lib.es2022.intl.d.ts","../../../node_modules/.pnpm/typescript@5.2.2/node_modules/typescript/lib/lib.es2022.object.d.ts","../../../node_modules/.pnpm/typescript@5.2.2/node_modules/typescript/lib/lib.es2022.sharedmemory.d.ts","../../../node_modules/.pnpm/typescript@5.2.2/node_modules/typescript/lib/lib.es2022.string.d.ts","../../../node_modules/.pnpm/typescript@5.2.2/node_modules/typescript/lib/lib.es2022.regexp.d.ts","../../../node_modules/.pnpm/typescript@5.2.2/node_modules/typescript/lib/lib.es2023.array.d.ts","../../../node_modules/.pnpm/typescript@5.2.2/node_modules/typescript/lib/lib.es2023.collection.d.ts","../../../node_modules/.pnpm/typescript@5.2.2/node_modules/typescript/lib/lib.esnext.intl.d.ts","../../../node_modules/.pnpm/typescript@5.2.2/node_modules/typescript/lib/lib.esnext.disposable.d.ts","../../../node_modules/.pnpm/typescript@5.2.2/node_modules/typescript/lib/lib.esnext.decorators.d.ts","../../../node_modules/.pnpm/typescript@5.2.2/node_modules/typescript/lib/lib.decorators.d.ts","../../../node_modules/.pnpm/typescript@5.2.2/node_modules/typescript/lib/lib.decorators.legacy.d.ts","../../ntypes/build/core.d.ts","../../ntypes/build/block.d.ts","../../ntypes/build/formula.d.ts","../../ntypes/build/user.d.ts","../../ntypes/build/collection.d.ts","../../ntypes/build/collection-view.d.ts","../../ntypes/build/space.d.ts","../../ntypes/build/maps.d.ts","../../ntypes/build/api.d.ts","../../ntypes/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/find-ancestors.ts","../src/format-date.ts","../src/format-notion-date-time.ts","../src/get-page-content-block-ids.ts","../src/get-all-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","../../../node_modules/.pnpm/is-url-superb@6.1.0/node_modules/is-url-superb/index.d.ts","../src/is-url.ts","../src/get-page-image-urls.ts","../src/get-page-title.ts","../src/id-to-uuid.ts","../src/parse-page-id.ts","../../../node_modules/.pnpm/mem@9.0.2/node_modules/mem/dist/index.d.ts","../../../node_modules/.pnpm/normalize-url@8.0.0/node_modules/normalize-url/index.d.ts","../src/normalize-url.ts","../src/merge-record-maps.ts","../src/map-image-url.ts","../src/map-page-url.ts","../src/index.ts","../../../node_modules/.pnpm/@vitest+utils@0.34.6/node_modules/@vitest/utils/dist/types.d.ts","../../../node_modules/.pnpm/@vitest+utils@0.34.6/node_modules/@vitest/utils/dist/helpers.d.ts","../../../node_modules/.pnpm/@sinclair+typebox@0.27.8/node_modules/@sinclair/typebox/typebox.d.ts","../../../node_modules/.pnpm/@jest+schemas@29.6.0/node_modules/@jest/schemas/build/index.d.ts","../../../node_modules/.pnpm/pretty-format@29.6.1/node_modules/pretty-format/build/index.d.ts","../../../node_modules/.pnpm/@vitest+utils@0.34.6/node_modules/@vitest/utils/dist/index.d.ts","../../../node_modules/.pnpm/@vitest+runner@0.34.6/node_modules/@vitest/runner/dist/tasks-e594cd24.d.ts","../../../node_modules/.pnpm/@vitest+runner@0.34.6/node_modules/@vitest/runner/dist/types.d.ts","../../../node_modules/.pnpm/@vitest+runner@0.34.6/node_modules/@vitest/runner/dist/index.d.ts","../../../node_modules/.pnpm/@types+node@18.18.6/node_modules/@types/node/assert.d.ts","../../../node_modules/.pnpm/@types+node@18.18.6/node_modules/@types/node/assert/strict.d.ts","../../../node_modules/.pnpm/@types+node@18.18.6/node_modules/@types/node/globals.d.ts","../../../node_modules/.pnpm/@types+node@18.18.6/node_modules/@types/node/async_hooks.d.ts","../../../node_modules/.pnpm/@types+node@18.18.6/node_modules/@types/node/buffer.d.ts","../../../node_modules/.pnpm/@types+node@18.18.6/node_modules/@types/node/child_process.d.ts","../../../node_modules/.pnpm/@types+node@18.18.6/node_modules/@types/node/cluster.d.ts","../../../node_modules/.pnpm/@types+node@18.18.6/node_modules/@types/node/console.d.ts","../../../node_modules/.pnpm/@types+node@18.18.6/node_modules/@types/node/constants.d.ts","../../../node_modules/.pnpm/@types+node@18.18.6/node_modules/@types/node/crypto.d.ts","../../../node_modules/.pnpm/@types+node@18.18.6/node_modules/@types/node/dgram.d.ts","../../../node_modules/.pnpm/@types+node@18.18.6/node_modules/@types/node/diagnostics_channel.d.ts","../../../node_modules/.pnpm/@types+node@18.18.6/node_modules/@types/node/dns.d.ts","../../../node_modules/.pnpm/@types+node@18.18.6/node_modules/@types/node/dns/promises.d.ts","../../../node_modules/.pnpm/@types+node@18.18.6/node_modules/@types/node/domain.d.ts","../../../node_modules/.pnpm/@types+node@18.18.6/node_modules/@types/node/dom-events.d.ts","../../../node_modules/.pnpm/@types+node@18.18.6/node_modules/@types/node/events.d.ts","../../../node_modules/.pnpm/@types+node@18.18.6/node_modules/@types/node/fs.d.ts","../../../node_modules/.pnpm/@types+node@18.18.6/node_modules/@types/node/fs/promises.d.ts","../../../node_modules/.pnpm/@types+node@18.18.6/node_modules/@types/node/http.d.ts","../../../node_modules/.pnpm/@types+node@18.18.6/node_modules/@types/node/http2.d.ts","../../../node_modules/.pnpm/@types+node@18.18.6/node_modules/@types/node/https.d.ts","../../../node_modules/.pnpm/@types+node@18.18.6/node_modules/@types/node/inspector.d.ts","../../../node_modules/.pnpm/@types+node@18.18.6/node_modules/@types/node/module.d.ts","../../../node_modules/.pnpm/@types+node@18.18.6/node_modules/@types/node/net.d.ts","../../../node_modules/.pnpm/@types+node@18.18.6/node_modules/@types/node/os.d.ts","../../../node_modules/.pnpm/@types+node@18.18.6/node_modules/@types/node/path.d.ts","../../../node_modules/.pnpm/@types+node@18.18.6/node_modules/@types/node/perf_hooks.d.ts","../../../node_modules/.pnpm/@types+node@18.18.6/node_modules/@types/node/process.d.ts","../../../node_modules/.pnpm/@types+node@18.18.6/node_modules/@types/node/punycode.d.ts","../../../node_modules/.pnpm/@types+node@18.18.6/node_modules/@types/node/querystring.d.ts","../../../node_modules/.pnpm/@types+node@18.18.6/node_modules/@types/node/readline.d.ts","../../../node_modules/.pnpm/@types+node@18.18.6/node_modules/@types/node/readline/promises.d.ts","../../../node_modules/.pnpm/@types+node@18.18.6/node_modules/@types/node/repl.d.ts","../../../node_modules/.pnpm/@types+node@18.18.6/node_modules/@types/node/stream.d.ts","../../../node_modules/.pnpm/@types+node@18.18.6/node_modules/@types/node/stream/promises.d.ts","../../../node_modules/.pnpm/@types+node@18.18.6/node_modules/@types/node/stream/consumers.d.ts","../../../node_modules/.pnpm/@types+node@18.18.6/node_modules/@types/node/stream/web.d.ts","../../../node_modules/.pnpm/@types+node@18.18.6/node_modules/@types/node/string_decoder.d.ts","../../../node_modules/.pnpm/@types+node@18.18.6/node_modules/@types/node/test.d.ts","../../../node_modules/.pnpm/@types+node@18.18.6/node_modules/@types/node/timers.d.ts","../../../node_modules/.pnpm/@types+node@18.18.6/node_modules/@types/node/timers/promises.d.ts","../../../node_modules/.pnpm/@types+node@18.18.6/node_modules/@types/node/tls.d.ts","../../../node_modules/.pnpm/@types+node@18.18.6/node_modules/@types/node/trace_events.d.ts","../../../node_modules/.pnpm/@types+node@18.18.6/node_modules/@types/node/tty.d.ts","../../../node_modules/.pnpm/@types+node@18.18.6/node_modules/@types/node/url.d.ts","../../../node_modules/.pnpm/@types+node@18.18.6/node_modules/@types/node/util.d.ts","../../../node_modules/.pnpm/@types+node@18.18.6/node_modules/@types/node/v8.d.ts","../../../node_modules/.pnpm/@types+node@18.18.6/node_modules/@types/node/vm.d.ts","../../../node_modules/.pnpm/@types+node@18.18.6/node_modules/@types/node/wasi.d.ts","../../../node_modules/.pnpm/@types+node@18.18.6/node_modules/@types/node/worker_threads.d.ts","../../../node_modules/.pnpm/@types+node@18.18.6/node_modules/@types/node/zlib.d.ts","../../../node_modules/.pnpm/@types+node@18.18.6/node_modules/@types/node/globals.global.d.ts","../../../node_modules/.pnpm/@types+node@18.18.6/node_modules/@types/node/index.d.ts","../../../node_modules/.pnpm/esbuild@0.18.20/node_modules/esbuild/lib/main.d.ts","../../../node_modules/.pnpm/vite@4.5.0_@types+node@18.18.6/node_modules/vite/types/metadata.d.ts","../../../node_modules/.pnpm/vite@4.5.0_@types+node@18.18.6/node_modules/vite/types/hmrpayload.d.ts","../../../node_modules/.pnpm/vite@4.5.0_@types+node@18.18.6/node_modules/vite/types/customevent.d.ts","../../../node_modules/.pnpm/rollup@3.28.0/node_modules/rollup/dist/rollup.d.ts","../../../node_modules/.pnpm/vite@4.5.0_@types+node@18.18.6/node_modules/vite/types/importglob.d.ts","../../../node_modules/.pnpm/source-map-js@1.0.2/node_modules/source-map-js/source-map.d.ts","../../../node_modules/.pnpm/postcss@8.4.31/node_modules/postcss/lib/previous-map.d.ts","../../../node_modules/.pnpm/postcss@8.4.31/node_modules/postcss/lib/input.d.ts","../../../node_modules/.pnpm/postcss@8.4.31/node_modules/postcss/lib/css-syntax-error.d.ts","../../../node_modules/.pnpm/postcss@8.4.31/node_modules/postcss/lib/declaration.d.ts","../../../node_modules/.pnpm/postcss@8.4.31/node_modules/postcss/lib/root.d.ts","../../../node_modules/.pnpm/postcss@8.4.31/node_modules/postcss/lib/warning.d.ts","../../../node_modules/.pnpm/postcss@8.4.31/node_modules/postcss/lib/lazy-result.d.ts","../../../node_modules/.pnpm/postcss@8.4.31/node_modules/postcss/lib/no-work-result.d.ts","../../../node_modules/.pnpm/postcss@8.4.31/node_modules/postcss/lib/processor.d.ts","../../../node_modules/.pnpm/postcss@8.4.31/node_modules/postcss/lib/result.d.ts","../../../node_modules/.pnpm/postcss@8.4.31/node_modules/postcss/lib/document.d.ts","../../../node_modules/.pnpm/postcss@8.4.31/node_modules/postcss/lib/rule.d.ts","../../../node_modules/.pnpm/postcss@8.4.31/node_modules/postcss/lib/node.d.ts","../../../node_modules/.pnpm/postcss@8.4.31/node_modules/postcss/lib/comment.d.ts","../../../node_modules/.pnpm/postcss@8.4.31/node_modules/postcss/lib/container.d.ts","../../../node_modules/.pnpm/postcss@8.4.31/node_modules/postcss/lib/at-rule.d.ts","../../../node_modules/.pnpm/postcss@8.4.31/node_modules/postcss/lib/list.d.ts","../../../node_modules/.pnpm/postcss@8.4.31/node_modules/postcss/lib/postcss.d.ts","../../../node_modules/.pnpm/vite@4.5.0_@types+node@18.18.6/node_modules/vite/dist/node/index.d.ts","../../../node_modules/.pnpm/vite-node@0.34.6_@types+node@18.18.6/node_modules/vite-node/dist/trace-mapping.d-e677e8f4.d.ts","../../../node_modules/.pnpm/vite-node@0.34.6_@types+node@18.18.6/node_modules/vite-node/dist/index-6fb787b2.d.ts","../../../node_modules/.pnpm/vite-node@0.34.6_@types+node@18.18.6/node_modules/vite-node/dist/index.d.ts","../../../node_modules/.pnpm/@vitest+snapshot@0.34.6/node_modules/@vitest/snapshot/dist/environment-b0891b0a.d.ts","../../../node_modules/.pnpm/@vitest+snapshot@0.34.6/node_modules/@vitest/snapshot/dist/index-69d272f6.d.ts","../../../node_modules/.pnpm/@vitest+snapshot@0.34.6/node_modules/@vitest/snapshot/dist/index.d.ts","../../../node_modules/.pnpm/@types+chai@4.3.5/node_modules/@types/chai/index.d.ts","../../../node_modules/.pnpm/@vitest+utils@0.34.6/node_modules/@vitest/utils/dist/types-f5c02aaf.d.ts","../../../node_modules/.pnpm/@vitest+utils@0.34.6/node_modules/@vitest/utils/dist/diff.d.ts","../../../node_modules/.pnpm/@vitest+utils@0.34.6/node_modules/@vitest/utils/diff.d.ts","../../../node_modules/.pnpm/@vitest+expect@0.34.6/node_modules/@vitest/expect/dist/index.d.ts","../../../node_modules/.pnpm/@vitest+runner@0.34.6/node_modules/@vitest/runner/dist/utils.d.ts","../../../node_modules/.pnpm/@vitest+runner@0.34.6/node_modules/@vitest/runner/utils.d.ts","../../../node_modules/.pnpm/tinybench@2.5.0/node_modules/tinybench/dist/index.d.ts","../../../node_modules/.pnpm/vite-node@0.34.6_@types+node@18.18.6/node_modules/vite-node/dist/client.d.ts","../../../node_modules/.pnpm/@vitest+snapshot@0.34.6/node_modules/@vitest/snapshot/dist/manager.d.ts","../../../node_modules/.pnpm/@vitest+snapshot@0.34.6/node_modules/@vitest/snapshot/manager.d.ts","../../../node_modules/.pnpm/vite-node@0.34.6_@types+node@18.18.6/node_modules/vite-node/dist/server.d.ts","../../../node_modules/.pnpm/rollup@3.26.2/node_modules/rollup/dist/rollup.d.ts","../../../node_modules/.pnpm/vitest@0.34.6/node_modules/vitest/dist/reporters-5f784f42.d.ts","../../../node_modules/.pnpm/tinyspy@2.1.1/node_modules/tinyspy/dist/index.d.ts","../../../node_modules/.pnpm/@vitest+spy@0.34.6/node_modules/@vitest/spy/dist/index.d.ts","../../../node_modules/.pnpm/@vitest+snapshot@0.34.6/node_modules/@vitest/snapshot/dist/environment.d.ts","../../../node_modules/.pnpm/@vitest+snapshot@0.34.6/node_modules/@vitest/snapshot/environment.d.ts","../../../node_modules/.pnpm/vitest@0.34.6/node_modules/vitest/dist/config.d.ts","../../../node_modules/.pnpm/vitest@0.34.6/node_modules/vitest/dist/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},"d5a33c52d381fc00f5842490ffcf406e0f5b9dd801b016fadcb232bb4d347fdf","8ae7855cf16c0a899ad0bdbf0675480766197e05467a249b5ddf7dcf9ace7a56","57aa4c028ae9d74d0908fd24563ccf6ce4ad3ec4b836fcbd69974adce60eb895","d979abc48001c25784feecb34dba191ed2c33f8944f7bd7b077b464285586c12","b5a33c11d9bca76dad214b1f8cf8571ef5a0fc60eecbbfa8f6cf0b73c1183d20","b4e975657af1b37e99cac0753713e6425a16a7725790542838e9d48b0dd836b4","85334ca199cff2ab0bcec4f106a3e8350f71cf04b485f87e794dc7872ccd6db8","0f321314fe3ba624e0e2957041ab096afc446d2ca0c0daf4719eafebae63e9dd","b798a298a669d510455b1c9fb6ae952333edaba0dae2672be9edd84aea4d600d","da90b2dfbb04735ed503d67065160c0f48cfe3ea26090093281b334f61b2cc88",{"version":"361d16c23a2857601506d722a8ff0073ac3c2ea5f3e1ffbd64676542e1b59177","signature":"378fe5a4170fafa7f3baf5533e67278ba91511b985fce75743baae5750c27f92"},{"version":"2f06056f429b57986d7a52f78e4e3b9fd852f0fe31ade04cbed5f09aba862132","signature":"ce054f4c301b70dccc81c975be0fa43f0e79e1f75dfc8c562304d5b93708791d"},{"version":"b68e1de6cc26a369431c986be342071f7bb4ab205617f3e66f86ed97ddd81e38","signature":"1e5484e66de5a329c31f68da34c12b0b1f189c75fa8e99e2aa174d1488f74e0f"},{"version":"d113b7c3fe1b66396ba61ce7df71506e1d78b2ea7ba643bbd659b9bfce41cb50","signature":"95a7513b3da87413d3594496a6279eba65a8ed5233853edad1f63a467ecf7ed6"},{"version":"d4507bb82df8c3c507e9e3260321e52c7dd321f8a5b25b671a4dfdc9287840f6","signature":"e5ceebcc026a581c43c599603c1f5cfd2074396f28dd4fe317a4909d09db1351"},{"version":"96b09ce08dbe862dce7c813ed4b6c963adc0d8026bf80c146073c3a814d25298","signature":"fe0a3dd89bcd2beb12d399d8b4efd4c3e1bfc501e331794ad515d06f66529a9c"},{"version":"34bf5c1723cce93f8350b2e0b596ca5ce48cc8f54ec9158af5438d459088bfde","signature":"5bd79d155bbfd1d619f38079fc492d03671369ad38eda03cb270bac9f9f11c1e"},{"version":"150548c5a00159daf1c5887f87a90bfb5993f06d33c229892f31fff0e0370f08","signature":"2e2aac8b5e578a185d09b3d5e15018301bafa2918b75c45970165227ea978fc7"},{"version":"df2172fe4094555c35bdfe7258ab1cc8249b9bdc119e6f9394dc97987c7d91a6","signature":"85d9e8590eae3ccdee201cfcf4d57b49b3e96ccbfb3830912239c0675aa63f08"},{"version":"10c46279cb85da39fc5ded5302382aa5101591e740f2ef7f8798f479eb721a25","signature":"8762f2da07b7601c7bd967d08bc50040bc481f828994b3f42559f04e9eb1e356"},{"version":"8000b182fea653052e7a48682918413b93cc33f87dd7f3c4c74bf05805d08c6f","signature":"16ad8386f1a40f681389a7899257f6aab2d808a11ea83765c26ca1748ecc8870"},{"version":"32fecf460537715041e7ae2f328b9f435d0af1ba1e5bef9ef96c73e07b6212d8","signature":"13410d39e8a2b494e1ab5b1540082cafdfd66d54382e0ecd31e7c88af6a2e364"},{"version":"aad56beecf24fc25b3f58e12466ac27f6661a986447c1b573a29751c04065d58","signature":"0c00c464eb4aa41a2ca482beb539a52efb21591a541a80edcf4412eae086d2bf"},{"version":"617d99ddfa6823161323a3a71e6d9726f4c1047193e70aead84555ea8676f4ba","signature":"67b0a8d01a987e82acd88854bec6d6bb20716c8c210fdf7e4dffa52113431a79"},{"version":"f7ec0a656fb2b10f1118196c134247def69d5489f08ba45063c85524cbc002aa","signature":"7dbaa3160f1c22d6e229e3d38e18bf33ab7b50d19741931aa21b3a3bdd18b63f"},{"version":"de01e303f190c3d2c2b3a2f5ecf0624f0784f0de2ea5c70b60b0b58641419a68","signature":"89fbc3ee8d2721b2a4df22e2bc47fcc14b92e4f329509acdb7eb97e9ebc45498"},{"version":"ea92952c6e512d46746b112ab1a93e7916e5f3b64510104d3598eabce8793ef6","signature":"0b587f15462dc13b7ee1322f3dd6d2309bef0977337e4effeae2ae6c37224660"},{"version":"1e7cd7cdcc29c9670b462ab9ab221d66c47818e62b22af982bcd502344527c19","signature":"8d9efd4466755e273a92a18d39b5558206f4653348b37627b3ca9135f830d9e9"},"a87e5902fd92d16a80e0020ac03d6477bc2e7a6f5b0407a73aff6b7aa9e01d55",{"version":"dc7b885af6bd832c8d08622e645782a172a24bb97bf04c6d3db92b55baa20d0f","signature":"1898625646b2cf2e46529298f8ee1da27222180d2ac3261b174ed1c9e9256536"},{"version":"bee94f78f44164001ca6ff2d4fd723d8cd53bd92c102d7f9b2fcf24449e82bbc","signature":"fe543d080d1755c5e9482f0c98675f1ca4175b42a4c871e1587bf97fb0695642"},{"version":"e052e6931f2509033bdcdec4755a784a683f1bbd97fb87a98b42fd33f8471f88","signature":"3604ba059f56492b6af0675d0117c38f55c48f7d2493168d343c75bcdf9affcf"},{"version":"a0f55c5c0d1ff68027ba67ee7265c9c5177d0241e3c3e53e37085775f6251bd7","signature":"d0a63bb68f17178e7439ce310bac10ae6645eb36d75b4814228fb4baf89fd735"},{"version":"3964ee88e5e8b0236b00311cd3419cf1ad3f2b6cd00a7a8e0de471a218e31347","signature":"d5e23dc821e4ad1edbdfbf488b285715c379f8edb782a3d152492a3c26846454"},"274b1fbd4d413479581ee864f2cb714e506f64725fca44afb1789707c509c953","b97b9034d922921957ec6a8193b68dfac3bf563520ebeb67738cd17bafd697a0",{"version":"b19662a808d7381c547da08ae996dd017aa88ca311d37e941958e881decea61b","signature":"a3b67d6cc47a9c07b8701daf59dd4f763b280e79a1bc39443bf9b49a9555329b"},{"version":"bd5ea89011c2b04b4afed97c5d67f30fda17c106445641a78aa682fd5d9eed46","signature":"fc31023eb190f68063c5eee1dd396bb09949aa69f2f566f6bd4c83b3f08bcbac"},{"version":"e9ef3c0e62f6721c43ed9ca2fae2a76eb13f53c744ca988c6e5610203db01c91","signature":"7727138a8222d02e6ccf9ccaf5503e6da7ed36c7560704793c74f6db48568a45"},{"version":"60a53f4db1fe8fcc0d57e8edca9a0a2297c6728c545c0ac42e8842811613fef1","signature":"6f0f6cc4c81848ce1dbd02e472021311d025aaf3fa644d78834270482fd7e1bf"},{"version":"b19eac740cc1d3fdcc4946e49e66bf8588dc376fe8e9e762fe02475c43e5f736","signature":"eac75c306b06cd557c9cb6060666d9840691f9c7e6f3021693b2dbe2a2b9ca81"},"19ce9ec982b542ef6d04d29ce678aad2fa52a67d8087e9c6cd95a4d6d98784c8","e1a35d120ee5e01503d8d77352d122f0e8f860e9a08584f8183a69816008fa5d","c085e9aa62d1ae1375794c1fb927a445fa105fed891a7e24edbb1c3300f7384a","f315e1e65a1f80992f0509e84e4ae2df15ecd9ef73df975f7c98813b71e4c8da","5b9586e9b0b6322e5bfbd2c29bd3b8e21ab9d871f82346cb71020e3d84bae73e","93da197145dee1148ae0d2a4a493208deab95a064437919d768a5afbbaa765f5","fdeb3d41dd7f0eb1a3a04834d08c12af5a1d1b0102f155d1f33de85b36f7bc97","ab8f16cf346d43385bc8caceebf9f06bd84d2986755ef0f4b913e3372f6e0607","661a38cc723958af347949e90af9b463504d88dcccac2217287b94192c60cd38","9004b6757fde33f153c3a7694c15b017531a0261fafb99e0542a8a6f61be1708","7394959e5a741b185456e1ef5d64599c36c60a323207450991e7a42e08911419",{"version":"32465ea19404cb188e84cf08c6b1f6b12d739140436402cdbc184a3fd20a7d81","affectsGlobalScope":true},"39b1a50d543770780b0409a4caacb87f3ff1d510aedfeb7dc06ed44188256f89",{"version":"5fd58752ae77b0ef6a7cbde3294a5d99238ff2e7c3e113c7125eab953e28d41d","affectsGlobalScope":true},"1f2d8573577ad731813e4358b913b667923a94e6456f645918fba11134040d13","fe39ceafa361b6d339b518936275eff89a77e7dfe92f2efa5fb97abf9a95ca49",{"version":"815c751d4afee4651d61edf6204187372a55ca8e0126a906986b4859ec51f192","affectsGlobalScope":true},"a40826e8476694e90da94aa008283a7de50d1dafd37beada623863f1901cb7fb","8a67dc9edddace374b1a96852ab5bbb87b631d439a928e6df326587d1f4fe9f0","fbcf2c3cde728761b05dbf8e7a9b8be1f5514dc324c6f83b87ba5c0668119b98","7eb0662b995994db248290a0f0a1d8ed685991a162ff9eb4dee36f099cccd0d9","16bbaee4dd96ec8b67026329a4f5fdef6313e42a5c305ddeb498c3d65fb557b8","37a36483218b24a50be2548a71557603e01ce38154c9f3f635c6c8275abd9fb1","c6cf9428f45f3d78b07df7d7aab1569994c177d36549e3a962f952d89f026bc4",{"version":"2c71199d1fc83bf17636ad5bf63a945633406b7b94887612bba4ef027c662b3e","affectsGlobalScope":true},{"version":"6c7b9d2139abd8f2e83ed8fa018c3799ab3187755a6665621feb6e93d3429ac3","affectsGlobalScope":true},"d617229425b25df2046a9c1e321dd1b50825abc8e3b38048453345483f8601e1","badd4f5fe0cca51915ef597852d07598ca490f6d1d9d68d505a159f18cde792d","d46e19fef3e961431a9b85adff6a8de04a1e8fc37366f6541c40237fb8247626","e6d2e297c73016fc98095238b25428591d129481c50eb1b6e575d35f3f8c621e","e3baa0c5780c2c805ec33a999722a2f740b572eb3746fd0a5f93a0a5c3dbf7f6","48fedd2f8549a2ae7e62f30fdb015779c2a7b536760730c5269406cd3d17cab2",{"version":"e492737de7f023b47ff14ca54b9635ba3dcd64816ed3316c9f3a784cf5897173","affectsGlobalScope":true},"40798238bc2e17ee787a815dbce4f2c89c161e5ad2fde062fb50454c093fa433","f5ce35485541e817c2d4105d3eb78e3e538bbb009515ed014694363fa3e94ceb","323506ce173f7f865f42f493885ee3dacd18db6359ea1141d57676d3781ce10c",{"version":"e7391fb34deecd321ae15af659cbfb0b9abc995c5ed4b3d703ba768e44b89670","affectsGlobalScope":true},{"version":"0900d10c17bae29648b266c0ae7cef0c95ebb2a1d81541b833833ed0996ac85a","affectsGlobalScope":true},"58520d6ae3a339cd22ffc528b50b21e4e8f5247a87913eb1c697c1af62eb0395","186614c0f9ca0ec3cfa988f1dc01c6f392a798710072ff4bdf20ce56e09a6dfd","2de7a21c92226fb8abbeed7a0a9bd8aa6d37e4c68a8c7ff7938c644267e9fcc1","6d6070c5c81ba0bfe58988c69e3ba3149fc86421fd383f253aeb071cbf29cd41","48dab0d6e633b8052e7eaa0efb0bb3d58a733777b248765eafcb0b0349439834","6e4b2642721462bf62d19593770659f268a6ca1e9fd15543747efb3ac471cee3","269929a24b2816343a178008ac9ae9248304d92a8ba8e233055e0ed6dbe6ef71","93452d394fdd1dc551ec62f5042366f011a00d342d36d50793b3529bfc9bd633","cdaaf046791d7d588f28f32197c5d6acc43343e62540a67eed194c9c20535fdc","4b1ff655bd8edd879dd4f04f15338ce0109f58ccb424165d44fa07e7ea39c4bf",{"version":"6fa3d3f427475a5d21fed826d6457e7f9ee3a0abeb3124fc41f385f112368d2e","affectsGlobalScope":true},{"version":"b85e57e102a1df14980b46d745c9fe8e16a9b0a69a98fb1a2c558c9137ab30d6","affectsGlobalScope":true},"4e228e78c1e9b0a75c70588d59288f63a6258e8b1fe4a67b0c53fe03461421d9","e5ce801ce5e85d7281807d8a65a21ee9767c122c87da262891582b4afead5ec0","76a89af04f2ba1807309320dab5169c0d1243b80738b4a2005989e40a136733e","c045b664abf3fc2a4750fa96117ab2735e4ed45ddd571b2a6a91b9917e231a02",{"version":"057d7f56aacd575a6240838d2684d34a340acde815f84190ea5e9afd611aeee6","affectsGlobalScope":true},{"version":"40ed27386f21a739bd0d2e2cfed563760588f2aeaa7ad149c1bf1454a7ec743a","affectsGlobalScope":true},"d1ef1d8516286380fd0a6f498f1650d374a8cb5f03d91633b6124e4fb8fb131d","6244a29671c12a54fc5b1393dde60bac655bd778d84758a4db847f684d4da3a5","8bc733ffd630d49d495663bfecf590281c8f5412b33657430ab471b558206705",{"version":"171c1840775746917e7b813c9df0fc0b84876f96623a6cfef3b3de7ea816b8c5","affectsGlobalScope":true},"f2b9440f98d6f94c8105883a2b65aee2fce0248f71f41beafd0a80636f3a565d",{"version":"ab9b9a36e5284fd8d3bf2f7d5fcbc60052f25f27e4d20954782099282c60d23e","affectsGlobalScope":true},"b510d0a18e3db42ac9765d26711083ec1e8b4e21caaca6dc4d25ae6e8623f447","850040826cfa77593d44f44487133af21917f4f21507258bd4269501b80d32f0","8f07f2b6514744ac96e51d7cb8518c0f4de319471237ea10cf688b8d0e9d0225","bcb6ea18f23dae2c48459d7b86d3adccd6898f824fcbf9da08b935f559896580","1363ba7d52f2353d0c4306d0ecdaf171bf4509c0148842f9fd8d3986c098a2eb","11e1ca6d427a2d9472ca610ef12698684e2809ca463c5518cc9f883e96288caf","739c2c46edc112421fc023c24b4898b1f413f792bb6a02b40ba182c648e56c2f","858d0d831826c6eb563df02f7db71c90e26deadd0938652096bea3cc14899700","8885cf05f3e2abf117590bbb951dcf6359e3e5ac462af1c901cfd24c6a6472e2","18c04c22baee54d13b505fa6e8bcd4223f8ba32beee80ec70e6cac972d1cc9a6","5e92a2e8ba5cbcdfd9e51428f94f7bd0ab6e45c9805b1c9552b64abaffad3ce3","53ca39fe70232633759dd3006fc5f467ecda540252c0c819ab53e9f6ad97b226","e7174a839d4732630d904a8b488f22380e5bcf1d6405d1f59614e10795eca17d","7ec359bbc29b69d4063fe7dad0baaf35f1856f914db16b3f4f6e3e1bca4099fa","b9261ac3e9944d3d72c5ee4cf888ad35d9743a5563405c6963c4e43ee3708ca4","c84fd54e8400def0d1ef1569cafd02e9f39a622df9fa69b57ccc82128856b916","c7a38c1ef8d6ae4bf252be67bd9a8b012b2cdea65bd6225a3d1a726c4f0d52b6","e773630f8772a06e82d97046fc92da59ada8414c61689894fff0155dd08f102c","74f2815d9e1b8530120dcad409ed5f706df8513c4d93e99fc6213997aa4dd60e","9d1f36ccd354f2e286b909bf01d626a3a28dd6590770303a18afa7796fe50db9","c4bc6a572f9d763ac7fa0d839be3de80273a67660e2002e3225e00ef716b4f37","106e607866d6c3e9a497a696ac949c3e2ec46b6e7dda35aabe76100bf740833b","8a6c755dc994d16c4e072bba010830fa2500d98ff322c442c7c91488d160a10d","d4514d11e7d11c53da7d43b948654d6e608a3d93d666a36f8d01e18ece04c9bd","3d65182eff7bbb16de1a69e17651c51083f740af11a1a92359be6dab939e8bcf","bb53fe9074a25dfa9410e2ee1c4db8c71d02275f916d2019de7fd9cadd50c30b","77b411edffb8d1fa25c07b5c3232e214f5f54b1fbb5e3e9eefcc9fd915bea582","05d8e53f6bc3988bc6fa6eb796f32852237752a70567e93df9647de714b4e7ba","f09a9b22643cbacec0dfcfce9f8fba8f3ff225aa7a51fc1ebe2da8f0769d727e","46bd2ebdf42fb171d7cbe21203a0f6d12854534f13a6831f23c003e5d08f0729","9e95cbc1478096467c73a45b2449a12e10c0e9e269ece267d96d6f65b8aab944","b4c700cc74490ceb0da7486267589c4a2648884f3ead4a98ba4f77aad4b318c4","d3a8062f03b63c9611d27ebd015757149f7fdbc0a2986a2f3748d92fbf369a83",{"version":"c3bc5d095c3c22fd20b5a6550b9c9a6d56c3ffbb87ef057ccce7764b6bed4428","affectsGlobalScope":true},"f2b95b4047d5ee9a18a77bbc945e0b3984e58ac418b41d31f3cd620de93f7679","6e8fe2b81bcabb2bb7cec054b54e51505d5cc17877467dec84b1ded7a670a4ea","05c7aef6a4e496b93c2e682cced8903c0dfe6340d04f3fe616176e2782193435",{"version":"47c8c25482eb4844ac9c11758f9a6c0112ecb1c7216f91e3463772e73f989a63","affectsGlobalScope":true},"b0195c3cad35486867dc72b15920b4d2209c54033e776f637096b50e8d640d2a","e666e31d323fef5642f87db0da48a83e58f0aaf9e3823e87eabd8ec7e0441a36","caeae351358d6c5b8da971c4ba7973987cbbbe4766081d07394e51c5544c8727","017f8ec681caedd0b963b7efad5b51c33ea4919cadd14ca6cb90aede4e773a0d","de317183334fe081395d6c54ddfd068ded9d8f1b86756dddbf9c4a7b1c5493c4","b7e28e06011460436d5c2ec2996846ac0c451e135357fc5a7269e5665a32fbd7","ea09c26609414c706f54f522b0e06f86429d6ba6747082adb5feaf3ba41b5deb","aae7ec197d95633437bc3023739cd955344559932ae07c25fea7600c2eb0e2f0","69fbf077eb9ae7466d64acf2a17969be0cf9b077580a6fe563935df6e35f5aa2","9a82b3cd322d6b46c2407c162bbfd0b13edc9d23dced719a751a481b985690a0","13446337b269b3a8fdac668f9cf831b313529aea23f26621ecf5097c3e53bb25","600238f708fdbd3ac9db0a2d574b8c72e28fba3f14beb3551e6c7d9e410bd7b7","f2d1a59a658165341b0e2b7879aa2e19ea6a709146b2d3f70ee8a07159d3d08e","27ab465d874023a9375fa33c1522f863c829745aef5353bc8e4909140eeb485c","f68c8a300bf8518320c2b4270210b7aafeaac1a110c49cc1e6f502ab3c26e8ce",{"version":"67df11fb5478a41ff289fc72ae13789a7b4a57f81b9e2ab65ffa297690f98d15","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"9289f24e698d4e17863ea907ec75b1942aa382b6da49c364fd12b9a6614039cc","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"}],"root":[[75,92],[94,98],[101,105],221,222],"options":{"declaration":true,"declarationMap":true,"emitDeclarationOnly":true,"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":[[108,161],[161],[115,161],[118,161],[119,124,152,161],[120,131,132,139,149,160,161],[120,121,131,139,161],[122,161],[123,124,132,140,161],[124,149,157,161],[125,127,131,139,161],[126,161],[127,128,161],[131,161],[129,131,161],[118,131,161],[131,132,133,149,160,161],[131,132,133,146,149,152,161],[161,165],[127,131,134,139,149,160,161],[131,132,134,135,139,149,157,160,161],[134,136,149,157,160,161],[115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167],[131,137,161],[138,160,161,165],[127,131,139,149,161],[140,161],[141,161],[118,142,161],[143,159,161,165],[144,161],[145,161],[131,146,147,161],[146,148,161,163],[119,131,149,150,151,152,161],[119,149,151,161],[149,150,161],[152,161],[153,161],[118,149,161],[131,155,156,161],[155,156,161],[124,139,149,157,161],[158,161],[139,159,161],[119,134,145,160,161],[124,161],[149,161,162],[138,161,163],[161,164],[119,124,131,133,142,149,160,161,163,165],[149,161,166],[111,161,201,204],[111,112,113,161],[111,161],[111,112,161],[161,206],[161,198],[110,161,198],[110,161,198,199],[161,217],[161,210],[161,215],[161,203],[110,161,202],[106,161],[106,107,110,161],[110,161],[161,190],[161,188,190],[161,179,187,188,189,191],[161,177],[161,180,185,190,193],[161,176,193],[161,180,181,184,185,186,193],[161,180,181,182,184,185,193],[161,177,178,179,180,181,185,186,187,189,190,191,193],[161,175,177,178,179,180,181,182,184,185,186,187,188,189,190,191,192],[161,175,193],[161,180,182,183,185,186,193],[161,184,193],[161,185,186,190,193],[161,178,188],[109,161],[161,175],[161,195,196],[161,195],[161,194,195,196,214],[131,132,134,136,139,149,157,160,161,166,168,169,170,171,172,173,174,193],[161,171],[161,173],[111,114,132,161,165,194,197,200,201,205,207,208,209,211,212,213,214],[111,114,132,161,165,194,197,200,201,204,205,207,208,209,211,212,213,214,216,218,219],[72,161],[65,161],[65,67,161],[65,66,67,68,69,70,71,72,73,161],[65,66,68,69,70,71,161],[74,77,78,161],[74,161],[81,161],[74,80,83,161],[74,75,161],[74,75,76,161],[74,76,77,87,88,89,161],[74,77,85,86,161],[74,85,94,161],[74,76,161],[74,77,161],[75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,94,95,96,97,98,101,102,103,104,161],[93,161],[101,161,220],[99,100,161],[98,161,220],[97,161],[74],[75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,94,95,96,97,98,101,102,103,104],[93]],"referencedMap":[[109,1],[108,2],[201,2],[115,3],[116,3],[118,4],[119,5],[120,6],[121,7],[122,8],[123,9],[124,10],[125,11],[126,12],[127,13],[128,13],[130,14],[129,15],[131,16],[132,17],[133,18],[117,19],[167,2],[134,20],[135,21],[136,22],[168,23],[137,24],[138,25],[139,26],[140,27],[141,28],[142,29],[143,30],[144,31],[145,32],[146,33],[147,33],[148,34],[149,35],[151,36],[150,37],[152,38],[153,39],[154,40],[155,41],[156,42],[157,43],[158,44],[159,45],[160,46],[161,47],[162,48],[163,49],[164,50],[165,51],[166,52],[205,53],[114,54],[112,55],[113,56],[206,56],[207,57],[198,2],[217,58],[199,59],[200,60],[210,60],[218,61],[211,62],[216,63],[204,64],[203,65],[107,66],[111,67],[202,68],[106,2],[169,2],[93,2],[99,2],[100,2],[191,69],[189,70],[190,71],[178,72],[179,70],[186,73],[177,74],[182,75],[192,2],[183,76],[188,77],[193,78],[176,79],[184,80],[185,81],[180,82],[187,69],[181,83],[110,84],[213,2],[173,2],[175,85],[208,2],[215,2],[63,2],[64,2],[12,2],[14,2],[13,2],[2,2],[15,2],[16,2],[17,2],[18,2],[19,2],[20,2],[21,2],[22,2],[3,2],[4,2],[23,2],[27,2],[24,2],[25,2],[26,2],[28,2],[29,2],[30,2],[5,2],[31,2],[32,2],[33,2],[34,2],[6,2],[38,2],[35,2],[36,2],[37,2],[39,2],[7,2],[40,2],[45,2],[46,2],[41,2],[42,2],[43,2],[44,2],[8,2],[50,2],[47,2],[48,2],[49,2],[51,2],[9,2],[52,2],[53,2],[54,2],[57,2],[55,2],[56,2],[58,2],[59,2],[10,2],[1,2],[11,2],[62,2],[61,2],[60,2],[209,86],[196,87],[197,86],[212,88],[195,2],[194,89],[172,90],[171,2],[174,2],[170,91],[219,92],[220,93],[214,92],[73,94],[66,95],[70,95],[69,96],[65,2],[67,95],[74,97],[72,98],[71,95],[68,95],[79,99],[80,100],[81,2],[82,101],[84,102],[75,100],[85,103],[86,100],[77,104],[90,105],[91,100],[92,106],[83,100],[95,107],[87,108],[78,108],[96,109],[76,100],[97,2],[105,110],[94,111],[103,100],[104,2],[102,100],[88,2],[221,112],[101,113],[222,114],[98,115],[89,2]],"exportedModulesMap":[[109,1],[108,2],[201,2],[115,3],[116,3],[118,4],[119,5],[120,6],[121,7],[122,8],[123,9],[124,10],[125,11],[126,12],[127,13],[128,13],[130,14],[129,15],[131,16],[132,17],[133,18],[117,19],[167,2],[134,20],[135,21],[136,22],[168,23],[137,24],[138,25],[139,26],[140,27],[141,28],[142,29],[143,30],[144,31],[145,32],[146,33],[147,33],[148,34],[149,35],[151,36],[150,37],[152,38],[153,39],[154,40],[155,41],[156,42],[157,43],[158,44],[159,45],[160,46],[161,47],[162,48],[163,49],[164,50],[165,51],[166,52],[205,53],[114,54],[112,55],[113,56],[206,56],[207,57],[198,2],[217,58],[199,59],[200,60],[210,60],[218,61],[211,62],[216,63],[204,64],[203,65],[107,66],[111,67],[202,68],[106,2],[169,2],[93,2],[99,2],[100,2],[191,69],[189,70],[190,71],[178,72],[179,70],[186,73],[177,74],[182,75],[192,2],[183,76],[188,77],[193,78],[176,79],[184,80],[185,81],[180,82],[187,69],[181,83],[110,84],[213,2],[173,2],[175,85],[208,2],[215,2],[63,2],[64,2],[12,2],[14,2],[13,2],[2,2],[15,2],[16,2],[17,2],[18,2],[19,2],[20,2],[21,2],[22,2],[3,2],[4,2],[23,2],[27,2],[24,2],[25,2],[26,2],[28,2],[29,2],[30,2],[5,2],[31,2],[32,2],[33,2],[34,2],[6,2],[38,2],[35,2],[36,2],[37,2],[39,2],[7,2],[40,2],[45,2],[46,2],[41,2],[42,2],[43,2],[44,2],[8,2],[50,2],[47,2],[48,2],[49,2],[51,2],[9,2],[52,2],[53,2],[54,2],[57,2],[55,2],[56,2],[58,2],[59,2],[10,2],[1,2],[11,2],[62,2],[61,2],[60,2],[209,86],[196,87],[197,86],[212,88],[195,2],[194,89],[172,90],[171,2],[174,2],[170,91],[219,92],[220,93],[214,92],[73,94],[66,95],[70,95],[69,96],[65,2],[67,95],[74,97],[72,98],[71,95],[68,95],[79,116],[80,116],[84,116],[75,116],[85,116],[86,116],[77,116],[90,116],[91,116],[92,116],[83,116],[95,116],[87,116],[78,116],[96,116],[76,116],[105,117],[94,118],[103,116],[102,116]],"semanticDiagnosticsPerFile":[109,108,201,115,116,118,119,120,121,122,123,124,125,126,127,128,130,129,131,132,133,117,167,134,135,136,168,137,138,139,140,141,142,143,144,145,146,147,148,149,151,150,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,205,114,112,113,206,207,198,217,199,200,210,218,211,216,204,203,107,111,202,106,169,93,99,100,191,189,190,178,179,186,177,182,192,183,188,193,176,184,185,180,187,181,110,213,173,175,208,215,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,209,196,197,212,195,194,172,171,174,170,219,220,214,73,66,70,69,65,67,74,72,71,68,79,80,81,82,84,75,85,86,77,90,91,92,83,95,87,78,96,76,97,105,94,103,104,102,88,221,101,222,98,89]},"version":"5.2.2"}
|
|
1
|
+
{"program":{"fileNames":["../../../node_modules/.pnpm/typescript@5.3.3/node_modules/typescript/lib/lib.es5.d.ts","../../../node_modules/.pnpm/typescript@5.3.3/node_modules/typescript/lib/lib.es2015.d.ts","../../../node_modules/.pnpm/typescript@5.3.3/node_modules/typescript/lib/lib.es2016.d.ts","../../../node_modules/.pnpm/typescript@5.3.3/node_modules/typescript/lib/lib.es2017.d.ts","../../../node_modules/.pnpm/typescript@5.3.3/node_modules/typescript/lib/lib.es2018.d.ts","../../../node_modules/.pnpm/typescript@5.3.3/node_modules/typescript/lib/lib.es2019.d.ts","../../../node_modules/.pnpm/typescript@5.3.3/node_modules/typescript/lib/lib.es2020.d.ts","../../../node_modules/.pnpm/typescript@5.3.3/node_modules/typescript/lib/lib.es2021.d.ts","../../../node_modules/.pnpm/typescript@5.3.3/node_modules/typescript/lib/lib.es2022.d.ts","../../../node_modules/.pnpm/typescript@5.3.3/node_modules/typescript/lib/lib.es2023.d.ts","../../../node_modules/.pnpm/typescript@5.3.3/node_modules/typescript/lib/lib.esnext.d.ts","../../../node_modules/.pnpm/typescript@5.3.3/node_modules/typescript/lib/lib.dom.d.ts","../../../node_modules/.pnpm/typescript@5.3.3/node_modules/typescript/lib/lib.es2015.core.d.ts","../../../node_modules/.pnpm/typescript@5.3.3/node_modules/typescript/lib/lib.es2015.collection.d.ts","../../../node_modules/.pnpm/typescript@5.3.3/node_modules/typescript/lib/lib.es2015.generator.d.ts","../../../node_modules/.pnpm/typescript@5.3.3/node_modules/typescript/lib/lib.es2015.iterable.d.ts","../../../node_modules/.pnpm/typescript@5.3.3/node_modules/typescript/lib/lib.es2015.promise.d.ts","../../../node_modules/.pnpm/typescript@5.3.3/node_modules/typescript/lib/lib.es2015.proxy.d.ts","../../../node_modules/.pnpm/typescript@5.3.3/node_modules/typescript/lib/lib.es2015.reflect.d.ts","../../../node_modules/.pnpm/typescript@5.3.3/node_modules/typescript/lib/lib.es2015.symbol.d.ts","../../../node_modules/.pnpm/typescript@5.3.3/node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../../../node_modules/.pnpm/typescript@5.3.3/node_modules/typescript/lib/lib.es2016.array.include.d.ts","../../../node_modules/.pnpm/typescript@5.3.3/node_modules/typescript/lib/lib.es2017.date.d.ts","../../../node_modules/.pnpm/typescript@5.3.3/node_modules/typescript/lib/lib.es2017.object.d.ts","../../../node_modules/.pnpm/typescript@5.3.3/node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","../../../node_modules/.pnpm/typescript@5.3.3/node_modules/typescript/lib/lib.es2017.string.d.ts","../../../node_modules/.pnpm/typescript@5.3.3/node_modules/typescript/lib/lib.es2017.intl.d.ts","../../../node_modules/.pnpm/typescript@5.3.3/node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","../../../node_modules/.pnpm/typescript@5.3.3/node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","../../../node_modules/.pnpm/typescript@5.3.3/node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","../../../node_modules/.pnpm/typescript@5.3.3/node_modules/typescript/lib/lib.es2018.intl.d.ts","../../../node_modules/.pnpm/typescript@5.3.3/node_modules/typescript/lib/lib.es2018.promise.d.ts","../../../node_modules/.pnpm/typescript@5.3.3/node_modules/typescript/lib/lib.es2018.regexp.d.ts","../../../node_modules/.pnpm/typescript@5.3.3/node_modules/typescript/lib/lib.es2019.array.d.ts","../../../node_modules/.pnpm/typescript@5.3.3/node_modules/typescript/lib/lib.es2019.object.d.ts","../../../node_modules/.pnpm/typescript@5.3.3/node_modules/typescript/lib/lib.es2019.string.d.ts","../../../node_modules/.pnpm/typescript@5.3.3/node_modules/typescript/lib/lib.es2019.symbol.d.ts","../../../node_modules/.pnpm/typescript@5.3.3/node_modules/typescript/lib/lib.es2019.intl.d.ts","../../../node_modules/.pnpm/typescript@5.3.3/node_modules/typescript/lib/lib.es2020.bigint.d.ts","../../../node_modules/.pnpm/typescript@5.3.3/node_modules/typescript/lib/lib.es2020.date.d.ts","../../../node_modules/.pnpm/typescript@5.3.3/node_modules/typescript/lib/lib.es2020.promise.d.ts","../../../node_modules/.pnpm/typescript@5.3.3/node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","../../../node_modules/.pnpm/typescript@5.3.3/node_modules/typescript/lib/lib.es2020.string.d.ts","../../../node_modules/.pnpm/typescript@5.3.3/node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","../../../node_modules/.pnpm/typescript@5.3.3/node_modules/typescript/lib/lib.es2020.intl.d.ts","../../../node_modules/.pnpm/typescript@5.3.3/node_modules/typescript/lib/lib.es2020.number.d.ts","../../../node_modules/.pnpm/typescript@5.3.3/node_modules/typescript/lib/lib.es2021.promise.d.ts","../../../node_modules/.pnpm/typescript@5.3.3/node_modules/typescript/lib/lib.es2021.string.d.ts","../../../node_modules/.pnpm/typescript@5.3.3/node_modules/typescript/lib/lib.es2021.weakref.d.ts","../../../node_modules/.pnpm/typescript@5.3.3/node_modules/typescript/lib/lib.es2021.intl.d.ts","../../../node_modules/.pnpm/typescript@5.3.3/node_modules/typescript/lib/lib.es2022.array.d.ts","../../../node_modules/.pnpm/typescript@5.3.3/node_modules/typescript/lib/lib.es2022.error.d.ts","../../../node_modules/.pnpm/typescript@5.3.3/node_modules/typescript/lib/lib.es2022.intl.d.ts","../../../node_modules/.pnpm/typescript@5.3.3/node_modules/typescript/lib/lib.es2022.object.d.ts","../../../node_modules/.pnpm/typescript@5.3.3/node_modules/typescript/lib/lib.es2022.sharedmemory.d.ts","../../../node_modules/.pnpm/typescript@5.3.3/node_modules/typescript/lib/lib.es2022.string.d.ts","../../../node_modules/.pnpm/typescript@5.3.3/node_modules/typescript/lib/lib.es2022.regexp.d.ts","../../../node_modules/.pnpm/typescript@5.3.3/node_modules/typescript/lib/lib.es2023.array.d.ts","../../../node_modules/.pnpm/typescript@5.3.3/node_modules/typescript/lib/lib.es2023.collection.d.ts","../../../node_modules/.pnpm/typescript@5.3.3/node_modules/typescript/lib/lib.esnext.intl.d.ts","../../../node_modules/.pnpm/typescript@5.3.3/node_modules/typescript/lib/lib.esnext.disposable.d.ts","../../../node_modules/.pnpm/typescript@5.3.3/node_modules/typescript/lib/lib.esnext.decorators.d.ts","../../../node_modules/.pnpm/typescript@5.3.3/node_modules/typescript/lib/lib.decorators.d.ts","../../../node_modules/.pnpm/typescript@5.3.3/node_modules/typescript/lib/lib.decorators.legacy.d.ts","../../ntypes/build/core.d.ts","../../ntypes/build/block.d.ts","../../ntypes/build/formula.d.ts","../../ntypes/build/user.d.ts","../../ntypes/build/collection.d.ts","../../ntypes/build/collection-view.d.ts","../../ntypes/build/space.d.ts","../../ntypes/build/maps.d.ts","../../ntypes/build/api.d.ts","../../ntypes/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/find-ancestors.ts","../src/format-date.ts","../src/format-notion-date-time.ts","../src/get-page-content-block-ids.ts","../src/get-all-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","../../../node_modules/.pnpm/is-url-superb@6.1.0/node_modules/is-url-superb/index.d.ts","../src/is-url.ts","../src/get-page-image-urls.ts","../src/get-page-title.ts","../src/id-to-uuid.ts","../src/parse-page-id.ts","../../../node_modules/.pnpm/mem@9.0.2/node_modules/mem/dist/index.d.ts","../../../node_modules/.pnpm/normalize-url@8.0.0/node_modules/normalize-url/index.d.ts","../src/normalize-url.ts","../src/merge-record-maps.ts","../src/map-image-url.ts","../src/map-page-url.ts","../src/index.ts","../../../node_modules/.pnpm/@vitest+utils@0.34.6/node_modules/@vitest/utils/dist/types.d.ts","../../../node_modules/.pnpm/@vitest+utils@0.34.6/node_modules/@vitest/utils/dist/helpers.d.ts","../../../node_modules/.pnpm/@sinclair+typebox@0.27.8/node_modules/@sinclair/typebox/typebox.d.ts","../../../node_modules/.pnpm/@jest+schemas@29.6.0/node_modules/@jest/schemas/build/index.d.ts","../../../node_modules/.pnpm/pretty-format@29.6.1/node_modules/pretty-format/build/index.d.ts","../../../node_modules/.pnpm/@vitest+utils@0.34.6/node_modules/@vitest/utils/dist/index.d.ts","../../../node_modules/.pnpm/@vitest+runner@0.34.6/node_modules/@vitest/runner/dist/tasks-e594cd24.d.ts","../../../node_modules/.pnpm/@vitest+runner@0.34.6/node_modules/@vitest/runner/dist/types.d.ts","../../../node_modules/.pnpm/@vitest+runner@0.34.6/node_modules/@vitest/runner/dist/index.d.ts","../../../node_modules/.pnpm/@types+node@20.11.5/node_modules/@types/node/assert.d.ts","../../../node_modules/.pnpm/@types+node@20.11.5/node_modules/@types/node/assert/strict.d.ts","../../../node_modules/.pnpm/undici-types@5.26.5/node_modules/undici-types/header.d.ts","../../../node_modules/.pnpm/undici-types@5.26.5/node_modules/undici-types/readable.d.ts","../../../node_modules/.pnpm/undici-types@5.26.5/node_modules/undici-types/file.d.ts","../../../node_modules/.pnpm/undici-types@5.26.5/node_modules/undici-types/fetch.d.ts","../../../node_modules/.pnpm/undici-types@5.26.5/node_modules/undici-types/formdata.d.ts","../../../node_modules/.pnpm/undici-types@5.26.5/node_modules/undici-types/connector.d.ts","../../../node_modules/.pnpm/undici-types@5.26.5/node_modules/undici-types/client.d.ts","../../../node_modules/.pnpm/undici-types@5.26.5/node_modules/undici-types/errors.d.ts","../../../node_modules/.pnpm/undici-types@5.26.5/node_modules/undici-types/dispatcher.d.ts","../../../node_modules/.pnpm/undici-types@5.26.5/node_modules/undici-types/global-dispatcher.d.ts","../../../node_modules/.pnpm/undici-types@5.26.5/node_modules/undici-types/global-origin.d.ts","../../../node_modules/.pnpm/undici-types@5.26.5/node_modules/undici-types/pool-stats.d.ts","../../../node_modules/.pnpm/undici-types@5.26.5/node_modules/undici-types/pool.d.ts","../../../node_modules/.pnpm/undici-types@5.26.5/node_modules/undici-types/handlers.d.ts","../../../node_modules/.pnpm/undici-types@5.26.5/node_modules/undici-types/balanced-pool.d.ts","../../../node_modules/.pnpm/undici-types@5.26.5/node_modules/undici-types/agent.d.ts","../../../node_modules/.pnpm/undici-types@5.26.5/node_modules/undici-types/mock-interceptor.d.ts","../../../node_modules/.pnpm/undici-types@5.26.5/node_modules/undici-types/mock-agent.d.ts","../../../node_modules/.pnpm/undici-types@5.26.5/node_modules/undici-types/mock-client.d.ts","../../../node_modules/.pnpm/undici-types@5.26.5/node_modules/undici-types/mock-pool.d.ts","../../../node_modules/.pnpm/undici-types@5.26.5/node_modules/undici-types/mock-errors.d.ts","../../../node_modules/.pnpm/undici-types@5.26.5/node_modules/undici-types/proxy-agent.d.ts","../../../node_modules/.pnpm/undici-types@5.26.5/node_modules/undici-types/api.d.ts","../../../node_modules/.pnpm/undici-types@5.26.5/node_modules/undici-types/cookies.d.ts","../../../node_modules/.pnpm/undici-types@5.26.5/node_modules/undici-types/patch.d.ts","../../../node_modules/.pnpm/undici-types@5.26.5/node_modules/undici-types/filereader.d.ts","../../../node_modules/.pnpm/undici-types@5.26.5/node_modules/undici-types/diagnostics-channel.d.ts","../../../node_modules/.pnpm/undici-types@5.26.5/node_modules/undici-types/websocket.d.ts","../../../node_modules/.pnpm/undici-types@5.26.5/node_modules/undici-types/content-type.d.ts","../../../node_modules/.pnpm/undici-types@5.26.5/node_modules/undici-types/cache.d.ts","../../../node_modules/.pnpm/undici-types@5.26.5/node_modules/undici-types/interceptors.d.ts","../../../node_modules/.pnpm/undici-types@5.26.5/node_modules/undici-types/index.d.ts","../../../node_modules/.pnpm/@types+node@20.11.5/node_modules/@types/node/globals.d.ts","../../../node_modules/.pnpm/@types+node@20.11.5/node_modules/@types/node/async_hooks.d.ts","../../../node_modules/.pnpm/@types+node@20.11.5/node_modules/@types/node/buffer.d.ts","../../../node_modules/.pnpm/@types+node@20.11.5/node_modules/@types/node/child_process.d.ts","../../../node_modules/.pnpm/@types+node@20.11.5/node_modules/@types/node/cluster.d.ts","../../../node_modules/.pnpm/@types+node@20.11.5/node_modules/@types/node/console.d.ts","../../../node_modules/.pnpm/@types+node@20.11.5/node_modules/@types/node/constants.d.ts","../../../node_modules/.pnpm/@types+node@20.11.5/node_modules/@types/node/crypto.d.ts","../../../node_modules/.pnpm/@types+node@20.11.5/node_modules/@types/node/dgram.d.ts","../../../node_modules/.pnpm/@types+node@20.11.5/node_modules/@types/node/diagnostics_channel.d.ts","../../../node_modules/.pnpm/@types+node@20.11.5/node_modules/@types/node/dns.d.ts","../../../node_modules/.pnpm/@types+node@20.11.5/node_modules/@types/node/dns/promises.d.ts","../../../node_modules/.pnpm/@types+node@20.11.5/node_modules/@types/node/domain.d.ts","../../../node_modules/.pnpm/@types+node@20.11.5/node_modules/@types/node/dom-events.d.ts","../../../node_modules/.pnpm/@types+node@20.11.5/node_modules/@types/node/events.d.ts","../../../node_modules/.pnpm/@types+node@20.11.5/node_modules/@types/node/fs.d.ts","../../../node_modules/.pnpm/@types+node@20.11.5/node_modules/@types/node/fs/promises.d.ts","../../../node_modules/.pnpm/@types+node@20.11.5/node_modules/@types/node/http.d.ts","../../../node_modules/.pnpm/@types+node@20.11.5/node_modules/@types/node/http2.d.ts","../../../node_modules/.pnpm/@types+node@20.11.5/node_modules/@types/node/https.d.ts","../../../node_modules/.pnpm/@types+node@20.11.5/node_modules/@types/node/inspector.d.ts","../../../node_modules/.pnpm/@types+node@20.11.5/node_modules/@types/node/module.d.ts","../../../node_modules/.pnpm/@types+node@20.11.5/node_modules/@types/node/net.d.ts","../../../node_modules/.pnpm/@types+node@20.11.5/node_modules/@types/node/os.d.ts","../../../node_modules/.pnpm/@types+node@20.11.5/node_modules/@types/node/path.d.ts","../../../node_modules/.pnpm/@types+node@20.11.5/node_modules/@types/node/perf_hooks.d.ts","../../../node_modules/.pnpm/@types+node@20.11.5/node_modules/@types/node/process.d.ts","../../../node_modules/.pnpm/@types+node@20.11.5/node_modules/@types/node/punycode.d.ts","../../../node_modules/.pnpm/@types+node@20.11.5/node_modules/@types/node/querystring.d.ts","../../../node_modules/.pnpm/@types+node@20.11.5/node_modules/@types/node/readline.d.ts","../../../node_modules/.pnpm/@types+node@20.11.5/node_modules/@types/node/readline/promises.d.ts","../../../node_modules/.pnpm/@types+node@20.11.5/node_modules/@types/node/repl.d.ts","../../../node_modules/.pnpm/@types+node@20.11.5/node_modules/@types/node/stream.d.ts","../../../node_modules/.pnpm/@types+node@20.11.5/node_modules/@types/node/stream/promises.d.ts","../../../node_modules/.pnpm/@types+node@20.11.5/node_modules/@types/node/stream/consumers.d.ts","../../../node_modules/.pnpm/@types+node@20.11.5/node_modules/@types/node/stream/web.d.ts","../../../node_modules/.pnpm/@types+node@20.11.5/node_modules/@types/node/string_decoder.d.ts","../../../node_modules/.pnpm/@types+node@20.11.5/node_modules/@types/node/test.d.ts","../../../node_modules/.pnpm/@types+node@20.11.5/node_modules/@types/node/timers.d.ts","../../../node_modules/.pnpm/@types+node@20.11.5/node_modules/@types/node/timers/promises.d.ts","../../../node_modules/.pnpm/@types+node@20.11.5/node_modules/@types/node/tls.d.ts","../../../node_modules/.pnpm/@types+node@20.11.5/node_modules/@types/node/trace_events.d.ts","../../../node_modules/.pnpm/@types+node@20.11.5/node_modules/@types/node/tty.d.ts","../../../node_modules/.pnpm/@types+node@20.11.5/node_modules/@types/node/url.d.ts","../../../node_modules/.pnpm/@types+node@20.11.5/node_modules/@types/node/util.d.ts","../../../node_modules/.pnpm/@types+node@20.11.5/node_modules/@types/node/v8.d.ts","../../../node_modules/.pnpm/@types+node@20.11.5/node_modules/@types/node/vm.d.ts","../../../node_modules/.pnpm/@types+node@20.11.5/node_modules/@types/node/wasi.d.ts","../../../node_modules/.pnpm/@types+node@20.11.5/node_modules/@types/node/worker_threads.d.ts","../../../node_modules/.pnpm/@types+node@20.11.5/node_modules/@types/node/zlib.d.ts","../../../node_modules/.pnpm/@types+node@20.11.5/node_modules/@types/node/globals.global.d.ts","../../../node_modules/.pnpm/@types+node@20.11.5/node_modules/@types/node/index.d.ts","../../../node_modules/.pnpm/esbuild@0.18.20/node_modules/esbuild/lib/main.d.ts","../../../node_modules/.pnpm/vite@4.5.2_@types+node@20.11.5/node_modules/vite/types/metadata.d.ts","../../../node_modules/.pnpm/vite@4.5.2_@types+node@20.11.5/node_modules/vite/types/hmrpayload.d.ts","../../../node_modules/.pnpm/vite@4.5.2_@types+node@20.11.5/node_modules/vite/types/customevent.d.ts","../../../node_modules/.pnpm/rollup@3.28.0/node_modules/rollup/dist/rollup.d.ts","../../../node_modules/.pnpm/vite@4.5.2_@types+node@20.11.5/node_modules/vite/types/importglob.d.ts","../../../node_modules/.pnpm/source-map-js@1.0.2/node_modules/source-map-js/source-map.d.ts","../../../node_modules/.pnpm/postcss@8.4.31/node_modules/postcss/lib/previous-map.d.ts","../../../node_modules/.pnpm/postcss@8.4.31/node_modules/postcss/lib/input.d.ts","../../../node_modules/.pnpm/postcss@8.4.31/node_modules/postcss/lib/css-syntax-error.d.ts","../../../node_modules/.pnpm/postcss@8.4.31/node_modules/postcss/lib/declaration.d.ts","../../../node_modules/.pnpm/postcss@8.4.31/node_modules/postcss/lib/root.d.ts","../../../node_modules/.pnpm/postcss@8.4.31/node_modules/postcss/lib/warning.d.ts","../../../node_modules/.pnpm/postcss@8.4.31/node_modules/postcss/lib/lazy-result.d.ts","../../../node_modules/.pnpm/postcss@8.4.31/node_modules/postcss/lib/no-work-result.d.ts","../../../node_modules/.pnpm/postcss@8.4.31/node_modules/postcss/lib/processor.d.ts","../../../node_modules/.pnpm/postcss@8.4.31/node_modules/postcss/lib/result.d.ts","../../../node_modules/.pnpm/postcss@8.4.31/node_modules/postcss/lib/document.d.ts","../../../node_modules/.pnpm/postcss@8.4.31/node_modules/postcss/lib/rule.d.ts","../../../node_modules/.pnpm/postcss@8.4.31/node_modules/postcss/lib/node.d.ts","../../../node_modules/.pnpm/postcss@8.4.31/node_modules/postcss/lib/comment.d.ts","../../../node_modules/.pnpm/postcss@8.4.31/node_modules/postcss/lib/container.d.ts","../../../node_modules/.pnpm/postcss@8.4.31/node_modules/postcss/lib/at-rule.d.ts","../../../node_modules/.pnpm/postcss@8.4.31/node_modules/postcss/lib/list.d.ts","../../../node_modules/.pnpm/postcss@8.4.31/node_modules/postcss/lib/postcss.d.ts","../../../node_modules/.pnpm/vite@4.5.2_@types+node@20.11.5/node_modules/vite/dist/node/index.d.ts","../../../node_modules/.pnpm/vite-node@0.34.6_@types+node@20.11.5/node_modules/vite-node/dist/trace-mapping.d-e677e8f4.d.ts","../../../node_modules/.pnpm/vite-node@0.34.6_@types+node@20.11.5/node_modules/vite-node/dist/index-6fb787b2.d.ts","../../../node_modules/.pnpm/vite-node@0.34.6_@types+node@20.11.5/node_modules/vite-node/dist/index.d.ts","../../../node_modules/.pnpm/@vitest+snapshot@0.34.6/node_modules/@vitest/snapshot/dist/environment-b0891b0a.d.ts","../../../node_modules/.pnpm/@vitest+snapshot@0.34.6/node_modules/@vitest/snapshot/dist/index-69d272f6.d.ts","../../../node_modules/.pnpm/@vitest+snapshot@0.34.6/node_modules/@vitest/snapshot/dist/index.d.ts","../../../node_modules/.pnpm/@types+chai@4.3.5/node_modules/@types/chai/index.d.ts","../../../node_modules/.pnpm/@vitest+utils@0.34.6/node_modules/@vitest/utils/dist/types-f5c02aaf.d.ts","../../../node_modules/.pnpm/@vitest+utils@0.34.6/node_modules/@vitest/utils/dist/diff.d.ts","../../../node_modules/.pnpm/@vitest+utils@0.34.6/node_modules/@vitest/utils/diff.d.ts","../../../node_modules/.pnpm/@vitest+expect@0.34.6/node_modules/@vitest/expect/dist/index.d.ts","../../../node_modules/.pnpm/@vitest+runner@0.34.6/node_modules/@vitest/runner/dist/utils.d.ts","../../../node_modules/.pnpm/@vitest+runner@0.34.6/node_modules/@vitest/runner/utils.d.ts","../../../node_modules/.pnpm/tinybench@2.5.0/node_modules/tinybench/dist/index.d.ts","../../../node_modules/.pnpm/vite-node@0.34.6_@types+node@20.11.5/node_modules/vite-node/dist/client.d.ts","../../../node_modules/.pnpm/@vitest+snapshot@0.34.6/node_modules/@vitest/snapshot/dist/manager.d.ts","../../../node_modules/.pnpm/@vitest+snapshot@0.34.6/node_modules/@vitest/snapshot/manager.d.ts","../../../node_modules/.pnpm/vite-node@0.34.6_@types+node@20.11.5/node_modules/vite-node/dist/server.d.ts","../../../node_modules/.pnpm/rollup@4.5.2/node_modules/rollup/dist/rollup.d.ts","../../../node_modules/.pnpm/vitest@0.34.6/node_modules/vitest/dist/reporters-5f784f42.d.ts","../../../node_modules/.pnpm/tinyspy@2.1.1/node_modules/tinyspy/dist/index.d.ts","../../../node_modules/.pnpm/@vitest+spy@0.34.6/node_modules/@vitest/spy/dist/index.d.ts","../../../node_modules/.pnpm/@vitest+snapshot@0.34.6/node_modules/@vitest/snapshot/dist/environment.d.ts","../../../node_modules/.pnpm/@vitest+snapshot@0.34.6/node_modules/@vitest/snapshot/environment.d.ts","../../../node_modules/.pnpm/vitest@0.34.6/node_modules/vitest/dist/config.d.ts","../../../node_modules/.pnpm/vitest@0.34.6/node_modules/vitest/dist/index.d.ts","../src/normalize-url.test.ts","../src/parse-page-id.test.ts"],"fileInfos":[{"version":"f33e5332b24c3773e930e212cbb8b6867c8ba3ec4492064ea78e55a524d57450","affectsGlobalScope":true},"45b7ab580deca34ae9729e97c13cfd999df04416a79116c3bfb483804f85ded4","26f2f787e82c4222710f3b676b4d83eb5ad0a72fa7b746f03449e7a026ce5073","9a68c0c07ae2fa71b44384a839b7b8d81662a236d4b9ac30916718f7510b1b2d","5e1c4c362065a6b95ff952c0eab010f04dcd2c3494e813b493ecfd4fcb9fc0d8","68d73b4a11549f9c0b7d352d10e91e5dca8faa3322bfb77b661839c42b1ddec7","5efce4fc3c29ea84e8928f97adec086e3dc876365e0982cc8479a07954a3efd4","feecb1be483ed332fad555aff858affd90a48ab19ba7272ee084704eb7167569","5514e54f17d6d74ecefedc73c504eadffdeda79c7ea205cf9febead32d45c4bc","1c0cdb8dc619bc549c3e5020643e7cf7ae7940058e8c7e5aefa5871b6d86f44b","bed7b7ba0eb5a160b69af72814b4dde371968e40b6c5e73d3a9f7bee407d158c",{"version":"21e41a76098aa7a191028256e52a726baafd45a925ea5cf0222eb430c96c1d83","affectsGlobalScope":true},{"version":"138fb588d26538783b78d1e3b2c2cc12d55840b97bf5e08bca7f7a174fbe2f17","affectsGlobalScope":true},{"version":"dc2df20b1bcdc8c2d34af4926e2c3ab15ffe1160a63e58b7e09833f616efff44","affectsGlobalScope":true},{"version":"4443e68b35f3332f753eacc66a04ac1d2053b8b035a0e0ac1d455392b5e243b3","affectsGlobalScope":true},{"version":"bc47685641087c015972a3f072480889f0d6c65515f12bd85222f49a98952ed7","affectsGlobalScope":true},{"version":"0dc1e7ceda9b8b9b455c3a2d67b0412feab00bd2f66656cd8850e8831b08b537","affectsGlobalScope":true},{"version":"ce691fb9e5c64efb9547083e4a34091bcbe5bdb41027e310ebba8f7d96a98671","affectsGlobalScope":true},{"version":"8d697a2a929a5fcb38b7a65594020fcef05ec1630804a33748829c5ff53640d0","affectsGlobalScope":true},{"version":"4ff2a353abf8a80ee399af572debb8faab2d33ad38c4b4474cff7f26e7653b8d","affectsGlobalScope":true},{"version":"93495ff27b8746f55d19fcbcdbaccc99fd95f19d057aed1bd2c0cafe1335fbf0","affectsGlobalScope":true},{"version":"6fc23bb8c3965964be8c597310a2878b53a0306edb71d4b5a4dfe760186bcc01","affectsGlobalScope":true},{"version":"38f0219c9e23c915ef9790ab1d680440d95419ad264816fa15009a8851e79119","affectsGlobalScope":true},{"version":"bb42a7797d996412ecdc5b2787720de477103a0b2e53058569069a0e2bae6c7e","affectsGlobalScope":true},{"version":"4738f2420687fd85629c9efb470793bb753709c2379e5f85bc1815d875ceadcd","affectsGlobalScope":true},{"version":"2f11ff796926e0832f9ae148008138ad583bd181899ab7dd768a2666700b1893","affectsGlobalScope":true},{"version":"4de680d5bb41c17f7f68e0419412ca23c98d5749dcaaea1896172f06435891fc","affectsGlobalScope":true},{"version":"9fc46429fbe091ac5ad2608c657201eb68b6f1b8341bd6d670047d32ed0a88fa","affectsGlobalScope":true},{"version":"61c37c1de663cf4171e1192466e52c7a382afa58da01b1dc75058f032ddf0839","affectsGlobalScope":true},{"version":"b541a838a13f9234aba650a825393ffc2292dc0fc87681a5d81ef0c96d281e7a","affectsGlobalScope":true},{"version":"e0275cd0e42990dc3a16f0b7c8bca3efe87f1c8ad404f80c6db1c7c0b828c59f","affectsGlobalScope":true},{"version":"811ec78f7fefcabbda4bfa93b3eb67d9ae166ef95f9bff989d964061cbf81a0c","affectsGlobalScope":true},{"version":"717937616a17072082152a2ef351cb51f98802fb4b2fdabd32399843875974ca","affectsGlobalScope":true},{"version":"d7e7d9b7b50e5f22c915b525acc5a49a7a6584cf8f62d0569e557c5cfc4b2ac2","affectsGlobalScope":true},{"version":"71c37f4c9543f31dfced6c7840e068c5a5aacb7b89111a4364b1d5276b852557","affectsGlobalScope":true},{"version":"576711e016cf4f1804676043e6a0a5414252560eb57de9faceee34d79798c850","affectsGlobalScope":true},{"version":"89c1b1281ba7b8a96efc676b11b264de7a8374c5ea1e6617f11880a13fc56dc6","affectsGlobalScope":true},{"version":"49ed889be54031e1044af0ad2c603d627b8bda8b50c1a68435fe85583901d072","affectsGlobalScope":true},{"version":"e93d098658ce4f0c8a0779e6cab91d0259efb88a318137f686ad76f8410ca270","affectsGlobalScope":true},{"version":"063600664504610fe3e99b717a1223f8b1900087fab0b4cad1496a114744f8df","affectsGlobalScope":true},{"version":"934019d7e3c81950f9a8426d093458b65d5aff2c7c1511233c0fd5b941e608ab","affectsGlobalScope":true},{"version":"bf14a426dbbf1022d11bd08d6b8e709a2e9d246f0c6c1032f3b2edb9a902adbe","affectsGlobalScope":true},{"version":"ec0104fee478075cb5171e5f4e3f23add8e02d845ae0165bfa3f1099241fa2aa","affectsGlobalScope":true},{"version":"2b72d528b2e2fe3c57889ca7baef5e13a56c957b946906d03767c642f386bbc3","affectsGlobalScope":true},{"version":"acae90d417bee324b1372813b5a00829d31c7eb670d299cd7f8f9a648ac05688","affectsGlobalScope":true},{"version":"368af93f74c9c932edd84c58883e736c9e3d53cec1fe24c0b0ff451f529ceab1","affectsGlobalScope":true},{"version":"af3dd424cf267428f30ccfc376f47a2c0114546b55c44d8c0f1d57d841e28d74","affectsGlobalScope":true},{"version":"995c005ab91a498455ea8dfb63aa9f83fa2ea793c3d8aa344be4a1678d06d399","affectsGlobalScope":true},{"version":"51e547984877a62227042850456de71a5c45e7fe86b7c975c6e68896c86fa23b","affectsGlobalScope":true},{"version":"62a4966981264d1f04c44eb0f4b5bdc3d81c1a54725608861e44755aa24ad6a5","affectsGlobalScope":true},{"version":"4fa6ed14e98aa80b91f61b9805c653ee82af3502dc21c9da5268d3857772ca05","affectsGlobalScope":true},{"version":"e6633e05da3ff36e6da2ec170d0d03ccf33de50ca4dc6f5aeecb572cedd162fb","affectsGlobalScope":true},{"version":"86a34c7a13de9cabc43161348f663624b56871ed80986e41d214932ddd8d6719","affectsGlobalScope":true},{"version":"8444af78980e3b20b49324f4a16ba35024fef3ee069a0eb67616ea6ca821c47a","affectsGlobalScope":true},{"version":"caccc56c72713969e1cfe5c3d44e5bab151544d9d2b373d7dbe5a1e4166652be","affectsGlobalScope":true},{"version":"3287d9d085fbd618c3971944b65b4be57859f5415f495b33a6adc994edd2f004","affectsGlobalScope":true},{"version":"50d53ccd31f6667aff66e3d62adf948879a3a16f05d89882d1188084ee415bbc","affectsGlobalScope":true},{"version":"08a58483392df5fcc1db57d782e87734f77ae9eab42516028acbfe46f29a3ef7","affectsGlobalScope":true},{"version":"436aaf437562f276ec2ddbee2f2cdedac7664c1e4c1d2c36839ddd582eeb3d0a","affectsGlobalScope":true},{"version":"13f6e6380c78e15e140243dc4be2fa546c287c6d61f4729bc2dd7cf449605471","affectsGlobalScope":true},{"version":"4350e5922fecd4bedda2964d69c213a1436349d0b8d260dd902795f5b94dc74b","affectsGlobalScope":true},{"version":"d4b1d2c51d058fc21ec2629fff7a76249dec2e36e12960ea056e3ef89174080f","affectsGlobalScope":true},{"version":"33358442698bb565130f52ba79bfd3d4d484ac85fe33f3cb1759c54d18201393","affectsGlobalScope":true},{"version":"782dec38049b92d4e85c1585fbea5474a219c6984a35b004963b00beb1aab538","affectsGlobalScope":true},"d5a33c52d381fc00f5842490ffcf406e0f5b9dd801b016fadcb232bb4d347fdf","8ae7855cf16c0a899ad0bdbf0675480766197e05467a249b5ddf7dcf9ace7a56","57aa4c028ae9d74d0908fd24563ccf6ce4ad3ec4b836fcbd69974adce60eb895","d979abc48001c25784feecb34dba191ed2c33f8944f7bd7b077b464285586c12","b5a33c11d9bca76dad214b1f8cf8571ef5a0fc60eecbbfa8f6cf0b73c1183d20","b4e975657af1b37e99cac0753713e6425a16a7725790542838e9d48b0dd836b4","85334ca199cff2ab0bcec4f106a3e8350f71cf04b485f87e794dc7872ccd6db8","0f321314fe3ba624e0e2957041ab096afc446d2ca0c0daf4719eafebae63e9dd","b798a298a669d510455b1c9fb6ae952333edaba0dae2672be9edd84aea4d600d","da90b2dfbb04735ed503d67065160c0f48cfe3ea26090093281b334f61b2cc88",{"version":"361d16c23a2857601506d722a8ff0073ac3c2ea5f3e1ffbd64676542e1b59177","signature":"378fe5a4170fafa7f3baf5533e67278ba91511b985fce75743baae5750c27f92"},{"version":"2f06056f429b57986d7a52f78e4e3b9fd852f0fe31ade04cbed5f09aba862132","signature":"ce054f4c301b70dccc81c975be0fa43f0e79e1f75dfc8c562304d5b93708791d"},{"version":"b68e1de6cc26a369431c986be342071f7bb4ab205617f3e66f86ed97ddd81e38","signature":"1e5484e66de5a329c31f68da34c12b0b1f189c75fa8e99e2aa174d1488f74e0f"},{"version":"d113b7c3fe1b66396ba61ce7df71506e1d78b2ea7ba643bbd659b9bfce41cb50","signature":"95a7513b3da87413d3594496a6279eba65a8ed5233853edad1f63a467ecf7ed6"},{"version":"d4507bb82df8c3c507e9e3260321e52c7dd321f8a5b25b671a4dfdc9287840f6","signature":"e5ceebcc026a581c43c599603c1f5cfd2074396f28dd4fe317a4909d09db1351"},{"version":"96b09ce08dbe862dce7c813ed4b6c963adc0d8026bf80c146073c3a814d25298","signature":"fe0a3dd89bcd2beb12d399d8b4efd4c3e1bfc501e331794ad515d06f66529a9c"},{"version":"34bf5c1723cce93f8350b2e0b596ca5ce48cc8f54ec9158af5438d459088bfde","signature":"5bd79d155bbfd1d619f38079fc492d03671369ad38eda03cb270bac9f9f11c1e"},{"version":"150548c5a00159daf1c5887f87a90bfb5993f06d33c229892f31fff0e0370f08","signature":"2e2aac8b5e578a185d09b3d5e15018301bafa2918b75c45970165227ea978fc7"},{"version":"df2172fe4094555c35bdfe7258ab1cc8249b9bdc119e6f9394dc97987c7d91a6","signature":"85d9e8590eae3ccdee201cfcf4d57b49b3e96ccbfb3830912239c0675aa63f08"},{"version":"10c46279cb85da39fc5ded5302382aa5101591e740f2ef7f8798f479eb721a25","signature":"8762f2da07b7601c7bd967d08bc50040bc481f828994b3f42559f04e9eb1e356"},{"version":"8000b182fea653052e7a48682918413b93cc33f87dd7f3c4c74bf05805d08c6f","signature":"16ad8386f1a40f681389a7899257f6aab2d808a11ea83765c26ca1748ecc8870"},{"version":"32fecf460537715041e7ae2f328b9f435d0af1ba1e5bef9ef96c73e07b6212d8","signature":"13410d39e8a2b494e1ab5b1540082cafdfd66d54382e0ecd31e7c88af6a2e364"},{"version":"aad56beecf24fc25b3f58e12466ac27f6661a986447c1b573a29751c04065d58","signature":"0c00c464eb4aa41a2ca482beb539a52efb21591a541a80edcf4412eae086d2bf"},{"version":"617d99ddfa6823161323a3a71e6d9726f4c1047193e70aead84555ea8676f4ba","signature":"67b0a8d01a987e82acd88854bec6d6bb20716c8c210fdf7e4dffa52113431a79"},{"version":"f7ec0a656fb2b10f1118196c134247def69d5489f08ba45063c85524cbc002aa","signature":"7dbaa3160f1c22d6e229e3d38e18bf33ab7b50d19741931aa21b3a3bdd18b63f"},{"version":"de01e303f190c3d2c2b3a2f5ecf0624f0784f0de2ea5c70b60b0b58641419a68","signature":"89fbc3ee8d2721b2a4df22e2bc47fcc14b92e4f329509acdb7eb97e9ebc45498"},{"version":"ea92952c6e512d46746b112ab1a93e7916e5f3b64510104d3598eabce8793ef6","signature":"0b587f15462dc13b7ee1322f3dd6d2309bef0977337e4effeae2ae6c37224660"},{"version":"1e7cd7cdcc29c9670b462ab9ab221d66c47818e62b22af982bcd502344527c19","signature":"8d9efd4466755e273a92a18d39b5558206f4653348b37627b3ca9135f830d9e9"},"a87e5902fd92d16a80e0020ac03d6477bc2e7a6f5b0407a73aff6b7aa9e01d55",{"version":"dc7b885af6bd832c8d08622e645782a172a24bb97bf04c6d3db92b55baa20d0f","signature":"1898625646b2cf2e46529298f8ee1da27222180d2ac3261b174ed1c9e9256536"},{"version":"e170fc8bde483cf4dec52e9c39ae08c94684665e48939d44d749d38f33c37e67","signature":"fe543d080d1755c5e9482f0c98675f1ca4175b42a4c871e1587bf97fb0695642"},{"version":"e052e6931f2509033bdcdec4755a784a683f1bbd97fb87a98b42fd33f8471f88","signature":"3604ba059f56492b6af0675d0117c38f55c48f7d2493168d343c75bcdf9affcf"},{"version":"a0f55c5c0d1ff68027ba67ee7265c9c5177d0241e3c3e53e37085775f6251bd7","signature":"d0a63bb68f17178e7439ce310bac10ae6645eb36d75b4814228fb4baf89fd735"},{"version":"3964ee88e5e8b0236b00311cd3419cf1ad3f2b6cd00a7a8e0de471a218e31347","signature":"d5e23dc821e4ad1edbdfbf488b285715c379f8edb782a3d152492a3c26846454"},"274b1fbd4d413479581ee864f2cb714e506f64725fca44afb1789707c509c953","b97b9034d922921957ec6a8193b68dfac3bf563520ebeb67738cd17bafd697a0",{"version":"b19662a808d7381c547da08ae996dd017aa88ca311d37e941958e881decea61b","signature":"a3b67d6cc47a9c07b8701daf59dd4f763b280e79a1bc39443bf9b49a9555329b"},{"version":"bd5ea89011c2b04b4afed97c5d67f30fda17c106445641a78aa682fd5d9eed46","signature":"fc31023eb190f68063c5eee1dd396bb09949aa69f2f566f6bd4c83b3f08bcbac"},{"version":"e9ef3c0e62f6721c43ed9ca2fae2a76eb13f53c744ca988c6e5610203db01c91","signature":"7727138a8222d02e6ccf9ccaf5503e6da7ed36c7560704793c74f6db48568a45"},{"version":"60a53f4db1fe8fcc0d57e8edca9a0a2297c6728c545c0ac42e8842811613fef1","signature":"6f0f6cc4c81848ce1dbd02e472021311d025aaf3fa644d78834270482fd7e1bf"},{"version":"b19eac740cc1d3fdcc4946e49e66bf8588dc376fe8e9e762fe02475c43e5f736","signature":"eac75c306b06cd557c9cb6060666d9840691f9c7e6f3021693b2dbe2a2b9ca81"},"19ce9ec982b542ef6d04d29ce678aad2fa52a67d8087e9c6cd95a4d6d98784c8","e1a35d120ee5e01503d8d77352d122f0e8f860e9a08584f8183a69816008fa5d","c085e9aa62d1ae1375794c1fb927a445fa105fed891a7e24edbb1c3300f7384a","f315e1e65a1f80992f0509e84e4ae2df15ecd9ef73df975f7c98813b71e4c8da","5b9586e9b0b6322e5bfbd2c29bd3b8e21ab9d871f82346cb71020e3d84bae73e","93da197145dee1148ae0d2a4a493208deab95a064437919d768a5afbbaa765f5","fdeb3d41dd7f0eb1a3a04834d08c12af5a1d1b0102f155d1f33de85b36f7bc97","ab8f16cf346d43385bc8caceebf9f06bd84d2986755ef0f4b913e3372f6e0607","661a38cc723958af347949e90af9b463504d88dcccac2217287b94192c60cd38","efc7d584a33fe3422847783d228f315c4cd1afe74bd7cf8e3f0e4c1125129fef","7394959e5a741b185456e1ef5d64599c36c60a323207450991e7a42e08911419","5929864ce17fba74232584d90cb721a89b7ad277220627cc97054ba15a98ea8f","7180c03fd3cb6e22f911ce9ba0f8a7008b1a6ddbe88ccf16a9c8140ef9ac1686","25c8056edf4314820382a5fdb4bb7816999acdcb929c8f75e3f39473b87e85bc","54cb85a47d760da1c13c00add10d26b5118280d44d58e6908d8e89abbd9d7725","3e4825171442666d31c845aeb47fcd34b62e14041bb353ae2b874285d78482aa","c6fd2c5a395f2432786c9cb8deb870b9b0e8ff7e22c029954fabdd692bff6195","a967bfe3ad4e62243eb604bf956101e4c740f5921277c60debaf325c1320bf88","e9775e97ac4877aebf963a0289c81abe76d1ec9a2a7778dbe637e5151f25c5f3","471e1da5a78350bc55ef8cef24eb3aca6174143c281b8b214ca2beda51f5e04a","cadc8aced301244057c4e7e73fbcae534b0f5b12a37b150d80e5a45aa4bebcbd","385aab901643aa54e1c36f5ef3107913b10d1b5bb8cbcd933d4263b80a0d7f20","9670d44354bab9d9982eca21945686b5c24a3f893db73c0dae0fd74217a4c219","db3435f3525cd785bf21ec6769bf8da7e8a776be1a99e2e7efb5f244a2ef5fee","c3b170c45fc031db31f782e612adf7314b167e60439d304b49e704010e7bafe5","40383ebef22b943d503c6ce2cb2e060282936b952a01bea5f9f493d5fb487cc7","4893a895ea92c85345017a04ed427cbd6a1710453338df26881a6019432febdd","3a84b7cb891141824bd00ef8a50b6a44596aded4075da937f180c90e362fe5f6","13f6f39e12b1518c6650bbb220c8985999020fe0f21d818e28f512b7771d00f9","9b5369969f6e7175740bf51223112ff209f94ba43ecd3bb09eefff9fd675624a","4fe9e626e7164748e8769bbf74b538e09607f07ed17c2f20af8d680ee49fc1da","24515859bc0b836719105bb6cc3d68255042a9f02a6022b3187948b204946bd2","33203609eba548914dc83ddf6cadbc0bcb6e8ef89f6d648ca0908ae887f9fcc5","0db18c6e78ea846316c012478888f33c11ffadab9efd1cc8bcc12daded7a60b6","89167d696a849fce5ca508032aabfe901c0868f833a8625d5a9c6e861ef935d2","e53a3c2a9f624d90f24bf4588aacd223e7bec1b9d0d479b68d2f4a9e6011147f","339dc5265ee5ed92e536a93a04c4ebbc2128f45eeec6ed29f379e0085283542c","9f0a92164925aa37d4a5d9dd3e0134cff8177208dba55fd2310cd74beea40ee2","8bfdb79bf1a9d435ec48d9372dc93291161f152c0865b81fc0b2694aedb4578d","2e85db9e6fd73cfa3d7f28e0ab6b55417ea18931423bd47b409a96e4a169e8e6","c46e079fe54c76f95c67fb89081b3e399da2c7d109e7dca8e4b58d83e332e605","d32275be3546f252e3ad33976caf8c5e842c09cb87d468cb40d5f4cf092d1acc","4a0c3504813a3289f7fb1115db13967c8e004aa8e4f8a9021b95285502221bd1",{"version":"a14ed46fa3f5ffc7a8336b497cd07b45c2084213aaca933a22443fcb2eef0d07","affectsGlobalScope":true},"cce1f5f86974c1e916ec4a8cab6eec9aa8e31e8148845bf07fbaa8e1d97b1a2c",{"version":"e2eb1ce13a9c0fa7ab62c63909d81973ef4b707292667c64f1e25e6e53fa7afa","affectsGlobalScope":true},"16d74fe4d8e183344d3beb15d48b123c5980ff32ff0cc8c3b96614ddcdf9b239","7b43160a49cf2c6082da0465876c4a0b164e160b81187caeb0a6ca7a281e85ba",{"version":"41fb2a1c108fbf46609ce5a451b7ec78eb9b5ada95fd5b94643e4b26397de0b3","affectsGlobalScope":true},"a40826e8476694e90da94aa008283a7de50d1dafd37beada623863f1901cb7fb","1b282e90846fada1e96dc1cf5111647d6ab5985c8d7b5c542642f1ea2739406d","bd3f5d05b6b5e4bfcea7739a45f3ffb4a7f4a3442ba7baf93e0200799285b8f1","4c775c2fccabf49483c03cd5e3673f87c1ffb6079d98e7b81089c3def79e29c6","8806ae97308ef26363bd7ec8071bca4d07fb575f905ee3d8a91aff226df6d618","af5bf1db6f1804fb0069039ae77a05d60133c77a2158d9635ea27b6bb2828a8f","b7fe70be794e13d1b7940e318b8770cd1fb3eced7707805318a2e3aaac2c3e9e",{"version":"2c71199d1fc83bf17636ad5bf63a945633406b7b94887612bba4ef027c662b3e","affectsGlobalScope":true},{"version":"7ae9dc7dbb58cd843065639707815df85c044babaa0947116f97bdb824d07204","affectsGlobalScope":true},"7aae1df2053572c2cfc2089a77847aadbb38eedbaa837a846c6a49fb37c6e5bd","313a0b063f5188037db113509de1b934a0e286f14e9479af24fada241435e707","f1ace2d2f98429e007d017c7a445efad2aaebf8233135abdb2c88b8c0fef91ab","87ef1a23caa071b07157c72077fa42b86d30568f9dc9e31eed24d5d14fc30ba8","396a8939b5e177542bdf9b5262b4eee85d29851b2d57681fa9d7eae30e225830","21773f5ac69ddf5a05636ba1f50b5239f4f2d27e4420db147fc2f76a5ae598ac",{"version":"ea455cc68871b049bcecd9f56d4cf27b852d6dafd5e3b54468ca87cc11604e4d","affectsGlobalScope":true},"a5fe4cc622c3bf8e09ababde5f4096ceac53163eefcd95e9cd53f062ff9bb67a","45b1053e691c5af9bfe85060a3e1542835f8d84a7e6e2e77ca305251eda0cb3c","0f05c06ff6196958d76b865ae17245b52d8fe01773626ac3c43214a2458ea7b7",{"version":"ae5507fc333d637dec9f37c6b3f4d423105421ea2820a64818de55db85214d66","affectsGlobalScope":true},{"version":"0666f4c99b8688c7be5956df8fecf5d1779d3b22f8f2a88258ae7072c7b6026f","affectsGlobalScope":true},"8abd0566d2854c4bd1c5e48e05df5c74927187f1541e6770001d9637ac41542e","54e854615c4eafbdd3fd7688bd02a3aafd0ccf0e87c98f79d3e9109f047ce6b8","d8dba11dc34d50cb4202de5effa9a1b296d7a2f4a029eec871f894bddfb6430d","8b71dd18e7e63b6f991b511a201fad7c3bf8d1e0dd98acb5e3d844f335a73634","01d8e1419c84affad359cc240b2b551fb9812b450b4d3d456b64cda8102d4f60","8221b00f271cf7f535a8eeec03b0f80f0929c7a16116e2d2df089b41066de69b","269929a24b2816343a178008ac9ae9248304d92a8ba8e233055e0ed6dbe6ef71","93452d394fdd1dc551ec62f5042366f011a00d342d36d50793b3529bfc9bd633","7424817d5eb498771e6d1808d726ec38f75d2eaf3fa359edd5c0c540c52725c1","831c22d257717bf2cbb03afe9c4bcffc5ccb8a2074344d4238bf16d3a857bb12",{"version":"bddce945d552a963c9733db106b17a25474eefcab7fc990157a2134ef55d4954","affectsGlobalScope":true},{"version":"7052b7b0c3829df3b4985bab2fd74531074b4835d5a7b263b75c82f0916ad62f","affectsGlobalScope":true},"aa34c3aa493d1c699601027c441b9664547c3024f9dbab1639df7701d63d18fa","eefcdf86cefff36e5d87de36a3638ab5f7d16c2b68932be4a72c14bb924e43c1","7c651f8dce91a927ab62925e73f190763574c46098f2b11fb8ddc1b147a6709a","7440ab60f4cb031812940cc38166b8bb6fbf2540cfe599f87c41c08011f0c1df",{"version":"4d0405568cf6e0ff36a4861c4a77e641366feaefa751600b0a4d12a5e8f730a8","affectsGlobalScope":true},{"version":"f5b5dc128973498b75f52b1b8c2d5f8629869104899733ae485100c2309b4c12","affectsGlobalScope":true},"e393915d3dc385e69c0e2390739c87b2d296a610662eb0b1cb85224e55992250","79bad8541d5779c85e82a9fb119c1fe06af77a71cc40f869d62ad379473d4b75","8013f6c4d1632da8f1c4d3d702ae559acccd0f1be05360c31755f272587199c9",{"version":"629d20681ca284d9e38c0a019f647108f5fe02f9c59ac164d56f5694fc3faf4d","affectsGlobalScope":true},"e7dbf5716d76846c7522e910896c5747b6df1abd538fee8f5291bdc843461795",{"version":"ab9b9a36e5284fd8d3bf2f7d5fcbc60052f25f27e4d20954782099282c60d23e","affectsGlobalScope":true},"b510d0a18e3db42ac9765d26711083ec1e8b4e21caaca6dc4d25ae6e8623f447","850040826cfa77593d44f44487133af21917f4f21507258bd4269501b80d32f0","8f07f2b6514744ac96e51d7cb8518c0f4de319471237ea10cf688b8d0e9d0225","bcb6ea18f23dae2c48459d7b86d3adccd6898f824fcbf9da08b935f559896580","1363ba7d52f2353d0c4306d0ecdaf171bf4509c0148842f9fd8d3986c098a2eb","11e1ca6d427a2d9472ca610ef12698684e2809ca463c5518cc9f883e96288caf","739c2c46edc112421fc023c24b4898b1f413f792bb6a02b40ba182c648e56c2f","858d0d831826c6eb563df02f7db71c90e26deadd0938652096bea3cc14899700","8885cf05f3e2abf117590bbb951dcf6359e3e5ac462af1c901cfd24c6a6472e2","18c04c22baee54d13b505fa6e8bcd4223f8ba32beee80ec70e6cac972d1cc9a6","5e92a2e8ba5cbcdfd9e51428f94f7bd0ab6e45c9805b1c9552b64abaffad3ce3","53ca39fe70232633759dd3006fc5f467ecda540252c0c819ab53e9f6ad97b226","e7174a839d4732630d904a8b488f22380e5bcf1d6405d1f59614e10795eca17d","7ec359bbc29b69d4063fe7dad0baaf35f1856f914db16b3f4f6e3e1bca4099fa","b9261ac3e9944d3d72c5ee4cf888ad35d9743a5563405c6963c4e43ee3708ca4","c84fd54e8400def0d1ef1569cafd02e9f39a622df9fa69b57ccc82128856b916","c7a38c1ef8d6ae4bf252be67bd9a8b012b2cdea65bd6225a3d1a726c4f0d52b6","e773630f8772a06e82d97046fc92da59ada8414c61689894fff0155dd08f102c","74f2815d9e1b8530120dcad409ed5f706df8513c4d93e99fc6213997aa4dd60e","9d1f36ccd354f2e286b909bf01d626a3a28dd6590770303a18afa7796fe50db9","c4bc6a572f9d763ac7fa0d839be3de80273a67660e2002e3225e00ef716b4f37","106e607866d6c3e9a497a696ac949c3e2ec46b6e7dda35aabe76100bf740833b","8a6c755dc994d16c4e072bba010830fa2500d98ff322c442c7c91488d160a10d","d4514d11e7d11c53da7d43b948654d6e608a3d93d666a36f8d01e18ece04c9bd","3d65182eff7bbb16de1a69e17651c51083f740af11a1a92359be6dab939e8bcf","bb53fe9074a25dfa9410e2ee1c4db8c71d02275f916d2019de7fd9cadd50c30b","77b411edffb8d1fa25c07b5c3232e214f5f54b1fbb5e3e9eefcc9fd915bea582","05d8e53f6bc3988bc6fa6eb796f32852237752a70567e93df9647de714b4e7ba","f09a9b22643cbacec0dfcfce9f8fba8f3ff225aa7a51fc1ebe2da8f0769d727e","46bd2ebdf42fb171d7cbe21203a0f6d12854534f13a6831f23c003e5d08f0729","9e95cbc1478096467c73a45b2449a12e10c0e9e269ece267d96d6f65b8aab944","b4c700cc74490ceb0da7486267589c4a2648884f3ead4a98ba4f77aad4b318c4","d3a8062f03b63c9611d27ebd015757149f7fdbc0a2986a2f3748d92fbf369a83",{"version":"c3bc5d095c3c22fd20b5a6550b9c9a6d56c3ffbb87ef057ccce7764b6bed4428","affectsGlobalScope":true},"f2b95b4047d5ee9a18a77bbc945e0b3984e58ac418b41d31f3cd620de93f7679","6e8fe2b81bcabb2bb7cec054b54e51505d5cc17877467dec84b1ded7a670a4ea","05c7aef6a4e496b93c2e682cced8903c0dfe6340d04f3fe616176e2782193435",{"version":"47c8c25482eb4844ac9c11758f9a6c0112ecb1c7216f91e3463772e73f989a63","affectsGlobalScope":true},"b0195c3cad35486867dc72b15920b4d2209c54033e776f637096b50e8d640d2a","e666e31d323fef5642f87db0da48a83e58f0aaf9e3823e87eabd8ec7e0441a36","caeae351358d6c5b8da971c4ba7973987cbbbe4766081d07394e51c5544c8727","017f8ec681caedd0b963b7efad5b51c33ea4919cadd14ca6cb90aede4e773a0d","de317183334fe081395d6c54ddfd068ded9d8f1b86756dddbf9c4a7b1c5493c4","b7e28e06011460436d5c2ec2996846ac0c451e135357fc5a7269e5665a32fbd7","ea09c26609414c706f54f522b0e06f86429d6ba6747082adb5feaf3ba41b5deb",{"version":"0e4ca50408ca6a9ddb79bce2fa6e931eab379431ea7b2b6e1cce12669ca7c3bf","affectsGlobalScope":true},"69fbf077eb9ae7466d64acf2a17969be0cf9b077580a6fe563935df6e35f5aa2","9a82b3cd322d6b46c2407c162bbfd0b13edc9d23dced719a751a481b985690a0","13446337b269b3a8fdac668f9cf831b313529aea23f26621ecf5097c3e53bb25","600238f708fdbd3ac9db0a2d574b8c72e28fba3f14beb3551e6c7d9e410bd7b7","f2d1a59a658165341b0e2b7879aa2e19ea6a709146b2d3f70ee8a07159d3d08e","27ab465d874023a9375fa33c1522f863c829745aef5353bc8e4909140eeb485c","f68c8a300bf8518320c2b4270210b7aafeaac1a110c49cc1e6f502ab3c26e8ce",{"version":"67df11fb5478a41ff289fc72ae13789a7b4a57f81b9e2ab65ffa297690f98d15","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"9289f24e698d4e17863ea907ec75b1942aa382b6da49c364fd12b9a6614039cc","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"}],"root":[[75,92],[94,98],[101,105],253,254],"options":{"declaration":true,"declarationMap":true,"emitDeclarationOnly":true,"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":[[108],[115],[150],[151,156,184],[152,163,164,171,181,192],[152,153,163,171],[154,193],[155,156,164,172],[156,181,189],[157,159,163,171],[150,158],[159,160],[163],[161,163],[150,163],[163,164,165,181,192],[163,164,165,178,181,184],[148,151,197],[159,163,166,171,181,192],[163,164,166,167,171,181,189,192],[166,168,181,189,192],[115,116,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199],[163,169],[170,192,197],[159,163,171,181],[172],[173],[150,174],[175,191,197],[176],[177],[163,178,179],[178,180,193,195],[151,163,181,182,183,184],[151,181,183],[181,182],[184],[185],[150,181],[163,187,188],[187,188],[156,171,181,189],[190],[171,191],[151,166,177,192],[156,193],[181,194],[170,195],[196],[151,156,163,165,174,181,192,195,197],[181,198],[111,233,236],[111,112,113],[111],[111,112],[238],[230],[110,230],[110,230,231],[249],[242],[247],[235],[110,234],[106],[106,107,110],[110],[222],[220,222],[211,219,220,221,223],[209],[212,217,222,225],[208,225],[212,213,216,217,218,225],[212,213,214,216,217,225],[209,210,211,212,213,217,218,219,221,222,223,225],[207,209,210,211,212,213,214,216,217,218,219,220,221,222,223,224],[207,225],[212,214,215,217,218,225],[216,225],[217,218,222,225],[210,220],[109],[207],[125,129,192],[125,181,192],[120],[122,125,189,192],[171,189],[200],[120,200],[122,125,171,192],[117,118,121,124,151,163,181,192],[117,123],[121,125,151,184,192,200],[151,200],[141,151,200],[119,120,200],[125],[119,120,121,122,123,124,125,126,127,129,130,131,132,133,134,135,136,137,138,139,140,142,143,144,145,146,147],[125,132,133],[123,125,133,134],[124],[117,120,125],[125,129,133,134],[129],[123,125,128,192],[117,122,123,125,129,132],[151,181],[120,125,141,151,197,200],[227,228],[227],[226,227,228,246],[163,164,166,168,171,181,189,192,198,200,201,202,203,204,205,206,225],[203],[205],[111,114,164,197,226,229,232,233,237,239,240,241,243,244,245,246],[111,114,164,197,226,229,232,233,236,237,239,240,241,243,244,245,246,248,250,251],[72],[65],[65,67],[65,66,67,68,69,70,71,72,73],[65,66,68,69,70,71],[74,77,78],[74],[81],[74,80,83],[74,75],[74,75,76],[74,76,77,87,88,89],[74,77,85,86],[74,85,94],[74,76],[74,77],[75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,94,95,96,97,98,101,102,103,104],[93],[101,252],[99,100],[98,252],[97]],"referencedMap":[[109,1],[115,2],[116,2],[150,3],[151,4],[152,5],[153,6],[154,7],[155,8],[156,9],[157,10],[158,11],[159,12],[160,12],[162,13],[161,14],[163,15],[164,16],[165,17],[149,18],[166,19],[167,20],[168,21],[200,22],[169,23],[170,24],[171,25],[172,26],[173,27],[174,28],[175,29],[176,30],[177,31],[178,32],[179,32],[180,33],[181,34],[183,35],[182,36],[184,37],[185,38],[186,39],[187,40],[188,41],[189,42],[190,43],[191,44],[192,45],[193,46],[194,47],[195,48],[196,49],[197,50],[198,51],[237,52],[114,53],[112,54],[113,55],[238,55],[239,56],[249,57],[231,58],[232,59],[242,59],[250,60],[243,61],[248,62],[236,63],[235,64],[107,65],[111,66],[234,67],[223,68],[221,69],[222,70],[210,71],[211,69],[218,72],[209,73],[214,74],[215,75],[220,76],[225,77],[208,78],[216,79],[217,80],[212,81],[219,68],[213,82],[110,83],[207,84],[132,85],[139,86],[131,85],[146,87],[123,88],[122,89],[145,90],[140,91],[143,92],[125,93],[124,94],[120,95],[119,96],[142,97],[121,98],[126,99],[130,99],[148,100],[147,99],[134,101],[135,102],[137,103],[133,104],[136,105],[141,90],[128,106],[129,107],[138,108],[118,109],[144,110],[241,111],[228,112],[229,111],[244,113],[226,114],[204,115],[202,116],[251,117],[252,118],[246,117],[73,119],[66,120],[70,120],[69,121],[67,120],[74,122],[72,123],[71,120],[68,120],[79,124],[80,125],[82,126],[84,127],[75,125],[85,128],[86,125],[77,129],[90,130],[91,125],[92,131],[83,125],[95,132],[87,133],[78,133],[96,134],[76,125],[105,135],[94,136],[103,125],[102,125],[253,137],[101,138],[254,139],[98,140]],"exportedModulesMap":[[109,1],[115,2],[116,2],[150,3],[151,4],[152,5],[153,6],[154,7],[155,8],[156,9],[157,10],[158,11],[159,12],[160,12],[162,13],[161,14],[163,15],[164,16],[165,17],[149,18],[166,19],[167,20],[168,21],[200,22],[169,23],[170,24],[171,25],[172,26],[173,27],[174,28],[175,29],[176,30],[177,31],[178,32],[179,32],[180,33],[181,34],[183,35],[182,36],[184,37],[185,38],[186,39],[187,40],[188,41],[189,42],[190,43],[191,44],[192,45],[193,46],[194,47],[195,48],[196,49],[197,50],[198,51],[237,52],[114,53],[112,54],[113,55],[238,55],[239,56],[249,57],[231,58],[232,59],[242,59],[250,60],[243,61],[248,62],[236,63],[235,64],[107,65],[111,66],[234,67],[223,68],[221,69],[222,70],[210,71],[211,69],[218,72],[209,73],[214,74],[215,75],[220,76],[225,77],[208,78],[216,79],[217,80],[212,81],[219,68],[213,82],[110,83],[207,84],[132,85],[139,86],[131,85],[146,87],[123,88],[122,89],[145,90],[140,91],[143,92],[125,93],[124,94],[120,95],[119,96],[142,97],[121,98],[126,99],[130,99],[148,100],[147,99],[134,101],[135,102],[137,103],[133,104],[136,105],[141,90],[128,106],[129,107],[138,108],[118,109],[144,110],[241,111],[228,112],[229,111],[244,113],[226,114],[204,115],[202,116],[251,117],[252,118],[246,117],[73,119],[66,120],[70,120],[69,121],[67,120],[74,122],[72,123],[71,120],[68,120],[79,125],[80,125],[84,125],[75,125],[85,125],[86,125],[77,125],[90,125],[91,125],[92,125],[83,125],[95,125],[87,125],[78,125],[96,125],[76,125],[105,135],[94,136],[103,125],[102,125]],"semanticDiagnosticsPerFile":[109,108,233,115,116,150,151,152,153,154,155,156,157,158,159,160,162,161,163,164,165,149,199,166,167,168,200,169,170,171,172,173,174,175,176,177,178,179,180,181,183,182,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,237,114,112,113,238,239,230,249,231,232,242,250,243,248,236,235,107,111,234,106,201,93,99,100,223,221,222,210,211,218,209,214,224,215,220,225,208,216,217,212,219,213,110,205,245,207,240,247,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,132,139,131,146,123,122,145,140,143,125,124,120,119,142,121,126,127,130,117,148,147,134,135,137,133,136,141,128,129,138,118,144,241,228,229,244,227,226,204,203,206,202,251,252,246,73,66,70,69,65,67,74,72,71,68,79,80,81,82,84,75,85,86,77,90,91,92,83,95,87,78,96,76,97,105,94,103,104,102,88,253,101,254,98,89]},"version":"5.3.3"}
|
package/build/index.d.ts
CHANGED
|
@@ -203,4 +203,4 @@ declare const defaultMapImageUrl: (url: string, block: Block) => string | null;
|
|
|
203
203
|
|
|
204
204
|
declare const defaultMapPageUrl: (rootPageId?: string) => (pageId: string) => string;
|
|
205
205
|
|
|
206
|
-
export { NotionDateTime, PageTree, TableOfContentsEntry, defaultMapImageUrl, defaultMapPageUrl, estimatePageReadTime, estimatePageReadTimeAsHumanizedString, findAncestors, formatDate, formatNotionDateTime, getAllInSpace, getBlockCollectionId, getBlockIcon, getBlockParent, getBlockParentPage, getBlockTitle, getCanonicalPageId, getDateValue, getPageBreadcrumbs, getPageContentBlockIds, getPageContentUserIds, getPageImageUrls, getPageProperty, getPageSync, getPageTableOfContents, getPageTitle, getTextContent, idToUuid, mergeRecordMaps, normalizeTitle, normalizeUrl, parsePageId, recursivePageTree, uuidToId };
|
|
206
|
+
export { type NotionDateTime, type PageTree, type TableOfContentsEntry, defaultMapImageUrl, defaultMapPageUrl, estimatePageReadTime, estimatePageReadTimeAsHumanizedString, findAncestors, formatDate, formatNotionDateTime, getAllInSpace, getBlockCollectionId, getBlockIcon, getBlockParent, getBlockParentPage, getBlockTitle, getCanonicalPageId, getDateValue, getPageBreadcrumbs, getPageContentBlockIds, getPageContentUserIds, getPageImageUrls, getPageProperty, getPageSync, getPageTableOfContents, getPageTitle, getTextContent, idToUuid, mergeRecordMaps, normalizeTitle, normalizeUrl, parsePageId, recursivePageTree, uuidToId };
|
package/build/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/get-text-content.ts","../src/get-block-collection-id.ts","../src/get-block-title.ts","../src/get-block-icon.ts","../src/get-page-title.ts","../src/get-page-property.ts","../src/get-date-value.ts","../src/get-block-parent-page.ts","../src/get-page-table-of-contents.ts","../src/get-page-content-block-ids.ts","../src/id-to-uuid.ts","../src/parse-page-id.ts","../src/uuid-to-id.ts","../src/find-ancestors.ts","../src/get-all-in-space.ts","../src/normalize-title.ts","../src/get-canonical-page-id.ts","../src/get-page-breadcrumbs.ts","../src/is-url.ts","../src/get-page-image-urls.ts","../src/normalize-url.ts","../src/merge-record-maps.ts","../src/format-date.ts","../src/format-notion-date-time.ts","../src/estimate-page-read-time.ts","../src/map-image-url.ts","../src/map-page-url.ts"],"sourcesContent":["import type { Decoration } from '@texonom/ntypes'\n\n/**\n * Gets the raw, unformatted text content of a block's content value.\n *\n * This is useful, for instance, for extracting a block's `title` without any\n * rich text formatting.\n */\nexport const getTextContent = (text?: Decoration[]): string => {\n if (!text) return ''\n else if (Array.isArray(text))\n return text?.reduce((prev, current) => prev + (current[0] !== '⁍' && current[0] !== '‣' ? current[0] : ''), '') ?? ''\n else return text\n}\n","import type { Block, ExtendedRecordMap } from '@texonom/ntypes'\n\nexport function getBlockCollectionId(block: Block, recordMap: ExtendedRecordMap): string | null {\n const collectionId = (block as any).collection_id || (block as any).format?.collection_pointer?.id\n\n if (collectionId) return collectionId\n\n const collectionViewId = (block as any)?.view_ids?.[0]\n if (collectionViewId) {\n const collectionView = recordMap.collection_view?.[collectionViewId]?.value\n if (collectionView) {\n const collectionId = collectionView.format?.collection_pointer?.id\n return collectionId\n }\n }\n\n return null\n}\n","import { getBlockCollectionId } from './get-block-collection-id'\nimport { getTextContent } from './get-text-content'\n\nimport type { Block, ExtendedRecordMap } from '@texonom/ntypes'\n\nexport function getBlockTitle(block: Block, recordMap: ExtendedRecordMap) {\n if (block.properties?.title) return getTextContent(block.properties.title)\n\n if (block.type === 'collection_view_page' || block.type === 'collection_view') {\n const collectionId = getBlockCollectionId(block, recordMap)\n if (collectionId) {\n const collection = recordMap.collection[collectionId]?.value\n if (collection) return getTextContent(collection.name)\n }\n }\n return ''\n}\n","import { getBlockCollectionId } from './get-block-collection-id'\n\nimport type { Block, ExtendedRecordMap, PageBlock } from '@texonom/ntypes'\n\nexport function getBlockIcon(block: Block, recordMap: ExtendedRecordMap) {\n if ((block as PageBlock).format?.page_icon) return (block as PageBlock).format?.page_icon\n\n if (block.type === 'collection_view_page' || block.type === 'collection_view') {\n const collectionId = getBlockCollectionId(block, recordMap)\n if (collectionId) {\n const collection = recordMap.collection[collectionId]?.value\n\n if (collection) return collection.icon\n }\n }\n\n return null\n}\n","import type { ExtendedRecordMap } from '@texonom/ntypes'\n\nimport { getBlockTitle } from './get-block-title'\n\nexport function getPageTitle(recordMap: ExtendedRecordMap) {\n const pageBlock = recordMap.block[Object.keys(recordMap.block)[0]]?.value\n\n if (pageBlock) return getBlockTitle(pageBlock, recordMap)\n\n return null\n}\n","import { Block, DateFormat, ExtendedRecordMap } from '@texonom/ntypes'\n\nimport { getTextContent } from './get-text-content'\n\n/**\n * Gets the value of a collection property for a given page (collection item).\n *\n * @param propertyName property name\n * @param block Page block, often be first block in blockMap\n * @param recordMap\n * @returns - The return value types will follow the following principles:\n * 1. if property is date type, it will return `number` or `number[]`(depends on `End Date` switch)\n * 2. property is text-like will return `string`\n * 3. multi select property will return `string[]`\n * 4. checkbox property return `boolean`\n * @todo complete all no-text property type\n */\nexport function getPageProperty<T = string | number | boolean | string[] | number[]>(\n propertyName: string,\n block: Block,\n recordMap: ExtendedRecordMap\n): T\nexport function getPageProperty(propertyName: string, block: Block, recordMap: ExtendedRecordMap) {\n try {\n if (!block.properties || !Object.keys(recordMap.collection))\n // console.warn(\n // `block ${block.id} has no properties or this recordMap has no collection record`\n // )\n return null\n\n const collection = recordMap.collection[block.parent_id]?.value\n\n if (collection) {\n const propertyNameL = propertyName.toLowerCase()\n const propertyId = Object.keys(collection.schema).find(\n key => collection.schema[key]?.name?.toLowerCase() === propertyNameL\n )\n\n if (!propertyId) return null\n\n const { type } = collection.schema[propertyId]\n const content = getTextContent(block.properties[propertyId])\n\n switch (type) {\n case 'created_time':\n return block.created_time\n\n case 'multi_select':\n return content.split(',')\n\n case 'date': {\n const property = block.properties[propertyId] as [['‣', [DateFormat]]]\n const formatDate = property[0][1][0][1]\n\n if (formatDate.type == 'datetime') {\n return new Date(`${formatDate.start_date} ${formatDate.start_time}`).getTime()\n } else if (formatDate.type == 'date') {\n return new Date(formatDate.start_date).getTime()\n } else if (formatDate.type == 'datetimerange') {\n const { start_date, start_time, end_date, end_time } = formatDate\n const startTime = new Date(`${start_date} ${start_time}`).getTime()\n const endTime = new Date(`${end_date} ${end_time}`).getTime()\n return [startTime, endTime]\n } else {\n const startTime = new Date(formatDate.start_date).getTime()\n const endTime = new Date(formatDate.end_date).getTime()\n return [startTime, endTime]\n }\n }\n\n case 'checkbox':\n return content == 'Yes'\n\n case 'last_edited_time':\n return block.last_edited_time\n\n default:\n return content\n }\n }\n } catch {\n // ensure that no matter what, we don't throw errors because of an unexpected\n // collection data format\n }\n\n return null\n}\n","import type { FormattedDate } from '@texonom/ntypes'\n\n/**\n * Attempts to find a valid date from a given property.\n */\nexport const getDateValue = (prop: any[]): FormattedDate | null => {\n if (prop && Array.isArray(prop))\n if (prop[0] === 'd') return prop[1]\n else\n for (const v of prop) {\n const value = getDateValue(v)\n if (value) return value\n }\n\n return null\n}\n","import type { Block, ExtendedRecordMap, PageBlock, Collection, Space } from '@texonom/ntypes'\n\n/**\n * Returns the parent page block containing a given page.\n *\n * Note that many times this will not be the direct parent block since\n * some non-page content blocks can contain sub-blocks.\n */\nexport const getBlockParentPage = (\n block: Block,\n recordMap: ExtendedRecordMap,\n {\n inclusive = false\n }: {\n inclusive?: boolean\n } = {}\n): PageBlock | null => {\n let currentRecord: Block | Collection = block\n\n while (currentRecord != null) {\n if (inclusive && (currentRecord as Block)?.type === 'page') return currentRecord as PageBlock\n\n const parentId: string = currentRecord.parent_id\n const parentTable = currentRecord.parent_table\n\n if (!parentId) break\n\n if (parentTable === 'collection') {\n currentRecord = recordMap.collection[parentId]?.value\n } else {\n currentRecord = recordMap.block[parentId]?.value\n if ((currentRecord as Block)?.type === 'page') return currentRecord as PageBlock\n }\n }\n return null\n}\n\nexport const getBlockParent = (\n block: Block,\n recordMap: ExtendedRecordMap,\n {\n inclusive = false\n }: {\n inclusive?: boolean\n } = {}\n): PageBlock | Collection | Space => {\n let currentRecord: Block | Collection | Space = block\n\n while (currentRecord != null) {\n if (inclusive && (currentRecord as Block)?.type === 'page') return currentRecord as PageBlock\n\n const parentId: string = currentRecord.parent_id\n const parentTable = currentRecord.parent_table\n\n if (!parentId) break\n\n if (parentTable === 'collection') {\n return recordMap.collection[parentId]?.value\n } else if (parentTable === 'space') {\n return recordMap.space?.[parentId]?.value\n } else {\n currentRecord = recordMap.block[parentId]?.value\n if ((currentRecord as Block)?.type === 'page') return currentRecord as PageBlock\n }\n }\n return null\n}\n","import { getTextContent } from './get-text-content'\n\nimport type { ID, BlockType, PageBlock, ExtendedRecordMap } from '@texonom/ntypes'\n\nexport interface TableOfContentsEntry {\n id: ID\n type: BlockType\n text: string\n indentLevel: number\n}\n\nconst indentLevels = {\n header: 0,\n sub_header: 1,\n sub_sub_header: 2\n}\n\n/**\n * Gets the metadata for a table of contents block by parsing the page's\n * H1, H2, and H3 elements.\n */\nexport const getPageTableOfContents = (page: PageBlock, recordMap: ExtendedRecordMap): Array<TableOfContentsEntry> => {\n const toc = (page.content ?? [])\n .map((blockId: string) => {\n const block = recordMap.block[blockId]?.value\n\n if (block) {\n const { type } = block\n\n if (type === 'header' || type === 'sub_header' || type === 'sub_sub_header')\n return {\n id: blockId,\n type,\n text: getTextContent(block.properties?.title),\n indentLevel: indentLevels[type]\n }\n }\n\n return null\n })\n .filter(Boolean) as Array<TableOfContentsEntry>\n\n const indentLevelStack = [\n {\n actual: -1,\n effective: -1\n }\n ]\n\n // Adjust indent levels to always change smoothly.\n // This is a little tricky, but the key is that when increasing indent levels,\n // they should never jump more than one at a time.\n for (const tocItem of toc) {\n const { indentLevel } = tocItem\n const actual = indentLevel\n\n do {\n const prevIndent = indentLevelStack[indentLevelStack.length - 1]\n const { actual: prevActual, effective: prevEffective } = prevIndent\n\n if (actual > prevActual) {\n tocItem.indentLevel = prevEffective + 1\n indentLevelStack.push({\n actual,\n effective: tocItem.indentLevel\n })\n } else if (actual === prevActual) {\n tocItem.indentLevel = prevEffective\n break\n } else {\n indentLevelStack.pop()\n }\n\n // eslint-disable-next-line no-constant-condition\n } while (true)\n }\n\n return toc\n}\n","import type { ExtendedRecordMap, Decoration } from '@texonom/ntypes'\n\n/**\n * Gets the IDs of all blocks contained on a page starting from a root block ID.\n */\nexport const getPageContentBlockIds = (recordMap: ExtendedRecordMap, blockId?: string, locust = false): string[] => {\n const rootBlockId = blockId || Object.keys(recordMap.block)[0]\n const contentBlockIds = new Set<string>()\n\n function addContentBlocks(blockId: string) {\n if (contentBlockIds.has(blockId)) return\n contentBlockIds.add(blockId)\n\n const block = recordMap.block[blockId]?.value\n if (!block) return\n const { content, type, properties, format } = block\n if (properties)\n for (const key of Object.keys(properties)) {\n const p = properties[key]\n p.map((d: Decoration) => {\n const value = d?.[0]?.[1]?.[0]\n if (value?.[0] === 'p' && value[1]) addContentBlocks(value[1])\n })\n p.map((d: Decoration) => {\n const value = d?.[1]?.[0]\n if ((value?.[0] === 'p' || value?.[0] === 'eoi') && value[1]) addContentBlocks(value[1])\n })\n }\n\n if (format) {\n const referenceId = format.transclusion_reference_pointer?.id\n if (referenceId) addContentBlocks(referenceId)\n }\n // no child content blocks to recurse on\n if (!content || !Array.isArray(content)) return\n // ignore the content of other pages and collections\n if (blockId !== rootBlockId && !locust) if (type === 'page' || type === 'collection_view_page') return\n for (const blockId of content) addContentBlocks(blockId)\n }\n addContentBlocks(rootBlockId)\n return Array.from(contentBlockIds)\n}\n\n/**\n * Gets the IDs of all blocks contained on a page starting from a root block ID.\n */\nexport const getPageContentUserIds = (recordMap: ExtendedRecordMap, blockId?: string): string[] => {\n const rootBlockId = blockId || Object.keys(recordMap.block)[0]\n const contentUserIDs = new Set<string>()\n const block = recordMap.block[rootBlockId]?.value\n\n if (block?.created_by_id) contentUserIDs.add(block?.created_by_id)\n if (block?.last_edited_by_id) contentUserIDs.add(block?.last_edited_by_id)\n\n // Property\n const { properties } = block\n if (properties)\n for (const key of Object.keys(properties)) {\n const p = properties[key]\n p.map((d: Decoration) => {\n const value = d?.[1]?.[0]\n if (value?.[0] === 'u' && value[1]) contentUserIDs.add(value[1])\n })\n }\n\n return Array.from(contentUserIDs)\n}\n","export const idToUuid = (id = '') =>\n `${id.substr(0, 8)}-${id.substr(8, 4)}-${id.substr(12, 4)}-${id.substr(16, 4)}-${id.substr(20)}`\n","import { idToUuid } from './id-to-uuid'\n\nconst pageIdRe = /\\b([a-f0-9]{32})\\b/\nconst pageId2Re = /\\b([a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12})\\b/\n\n/**\n * Robustly extracts the notion page ID from a notion URL or pathname suffix.\n *\n * Defaults to returning a UUID (with dashes).\n */\nexport const parsePageId = (id: string | null = '', { uuid = true }: { uuid?: boolean } = {}) => {\n if (!id) return null\n\n id = id.split('?')[0]\n const match = id.match(pageIdRe)\n\n if (match) return uuid ? idToUuid(match[1]) : match[1]\n\n const match2 = id.match(pageId2Re)\n if (match2) return uuid ? match2[1] : match2[1].replace(/-/g, '')\n\n return null\n}\n","export const uuidToId = (uuid: string) => uuid.replace(/-/g, '')\n","import type { ExtendedRecordMap, Block, Collection } from '@texonom/ntypes'\n\nexport function findAncestors(recordMap: ExtendedRecordMap, block: Block | Collection, list: string[] = []): string[] {\n if (block.parent_id) {\n list.push(block.parent_id)\n const table = block.parent_table as 'block' | 'collection'\n if (recordMap[table]?.[block.parent_id]?.value)\n return findAncestors(recordMap, recordMap[table][block.parent_id].value, list)\n }\n return list\n}\n","import { findAncestors } from './find-ancestors'\nimport { getPageContentBlockIds } from './get-page-content-block-ids'\n\nimport type { ExtendedRecordMap, PageMap, PageChunk, BlockMap } from '@texonom/ntypes'\n\nexport type PageTree = {\n id: string\n type: string\n blocks: number\n pages: number\n parent?: PageTree\n children: PageTree[]\n}\n\ntype FetchOption = RequestInit & { timeout?: number }\n\n/**\n * Performs a traversal over a given Notion workspace starting from a seed page.\n *\n * Returns a map containing all of the pages that are reachable from the seed\n * page in the space.\n *\n * If `rootSpaceId` is not defined, the space ID of the root page will be used\n * to scope traversal.\n *\n *\n * @param rootPageId - Page ID to start from.\n * @param rootSpaceId - Space ID to scope traversal.\n * @param getPage - Function used to fetch a single page.\n * @param opts - Optional config\n */\nexport async function getAllInSpace(\n startPageId: string,\n getPage: (pageId: string, { fetchOption }?: { fetchOption?: FetchOption }) => Promise<ExtendedRecordMap>,\n getBlocks: (blockIds: string[], fetchOption?: FetchOption) => Promise<PageChunk>,\n fetchCollections: (\n contentBlockIds: string[],\n recordMap: ExtendedRecordMap,\n pageId?: string,\n {\n fetchOption,\n concurrency,\n collectionConcurrency\n }?: { fetchOption?: FetchOption; concurrency?: number; collectionConcurrency?: number }\n ) => Promise<ExtendedRecordMap>,\n {\n startRecordMap,\n fetchOption = { timeout: 100000 },\n maxPage,\n concurrency = 100,\n collectionConcurrency = 100\n }: {\n startRecordMap?: ExtendedRecordMap\n fetchOption?: FetchOption\n concurrency?: number\n maxPage?: number\n collectionConcurrency?: number\n } = {}\n): Promise<{ recordMap: ExtendedRecordMap; pageMap: PageMap; pageTree: PageTree }> {\n const pageMap: PageMap = {}\n const recordMap = startRecordMap ? startRecordMap : await getPage(startPageId, { fetchOption })\n\n let tempRecordMap: ExtendedRecordMap = JSON.parse(JSON.stringify(recordMap))\n\n console.time('fetch total')\n while (true) {\n console.info('block length ', Object.keys(recordMap.block).length)\n\n console.time('getPageContentBlockIds')\n const targetBlocks = Object.keys(tempRecordMap.block)\n const missing = Object.keys(\n targetBlocks.reduce((blockMap, root) => {\n const contentBlockIds = getPageContentBlockIds(recordMap, root, true)\n for (const contentBlockID of contentBlockIds) if (!recordMap.block[contentBlockID]) blockMap[contentBlockID] = true\n return blockMap\n }, {})\n )\n for (const { value: block } of Object.values(tempRecordMap.block))\n if (block && !recordMap.block[block.parent_id] && block.parent_table === 'block') missing.push(block.parent_id)\n console.timeEnd('getPageContentBlockIds')\n\n console.time('getBlocks')\n tempRecordMap = (await getBlocks(missing, fetchOption)).recordMap as ExtendedRecordMap\n console.timeEnd('getBlocks')\n if (!tempRecordMap?.block) break\n\n console.time('mapBlocks')\n const contentBlockIds = Object.values(recordMap.block)\n .map(obj => obj.value?.id)\n .filter(Boolean)\n recordMap.block = { ...recordMap.block, ...tempRecordMap.block }\n console.timeEnd('mapBlocks')\n\n console.time('fetchCollections')\n await fetchCollections(contentBlockIds, recordMap, undefined, { fetchOption, concurrency, collectionConcurrency })\n console.timeEnd('fetchCollections')\n console.info('collection query length ' + Object.keys(recordMap.collection_query).length)\n\n console.info('new block length ', Object.keys(tempRecordMap.block).length)\n const pageLength = Object.values(recordMap.block)\n .map(obj => obj.value?.type)\n .filter(type => type === 'page').length\n console.info('page length ', pageLength)\n if (Number.isInteger(maxPage) && pageLength >= maxPage) break\n\n console.info(`memory usage ${process.memoryUsage().rss / 1024 / 1024}MB`)\n }\n console.timeEnd('fetch total')\n\n console.time('get page map')\n console.info('Total block length ', Object.keys(recordMap.block).length)\n const blockIds = Object.keys(recordMap.block)\n\n const promises = []\n for (const blockId of blockIds)\n if (recordMap.block[blockId].value?.type === 'page') {\n promises.push(getPageSync(blockId, recordMap, getBlocks).then(pageRecordMap => (pageMap[blockId] = pageRecordMap)))\n await sleep(1)\n }\n await Promise.all(promises)\n\n console.timeEnd('get page map')\n console.info('Total page length ', Object.keys(pageMap).length)\n\n console.time('get page tree')\n const pageTree = { id: startPageId, blocks: 1, pages: 1, children: [], type: 'page' }\n recursivePageTree(recordMap, pageTree)\n console.timeEnd('get page tree')\n\n return { pageMap, pageTree, recordMap }\n}\n\nexport function recursivePageTree(recordMap: ExtendedRecordMap, pageTree: PageTree): PageTree {\n const ancestors = [pageTree]\n let ancestor = pageTree\n while (true)\n if (ancestor.parent) {\n ancestors.push(ancestor.parent)\n ancestor = ancestor.parent\n } else {\n break\n }\n\n const current = recordMap.block[pageTree.id]?.value\n if (!current) {\n console.debug('No block value')\n delete pageTree.parent\n return pageTree\n }\n\n if (current.content?.length) {\n for (const ancestor of ancestors) ancestor.blocks += current.content.length\n for (const contentBlockId of current.content) {\n const block = recordMap.block[contentBlockId]?.value\n if (!block) continue\n pageTree.children.push(\n recursivePageTree(recordMap, {\n id: contentBlockId,\n blocks: 1,\n pages: 0,\n children: [],\n type: block.type,\n parent: pageTree\n })\n )\n if (block.type === 'page') for (const ancestor of ancestors) ancestor.pages++\n }\n } else if (current?.type === 'collection_view') {\n const collectionQuery = recordMap.collection_query[current.collection_id]?.[current.view_ids[0]]\n if (!collectionQuery) {\n console.debug('No collection query')\n delete pageTree.parent\n return pageTree\n }\n const childrenMap = {}\n for (const collectionQuery of Object.values(recordMap.collection_query[current.collection_id]))\n if (collectionQuery.collection_group_results.blockIds)\n for (const blockId of collectionQuery.collection_group_results.blockIds) childrenMap[blockId] = true\n const childrenPages = Object.keys(childrenMap)\n for (const ancestor of ancestors) ancestor.pages += childrenPages.length\n for (const ancestor of ancestors) ancestor.blocks += childrenPages.length\n for (const blockId of childrenPages)\n pageTree.children.push(\n recursivePageTree(recordMap, {\n id: blockId,\n blocks: childrenPages.length,\n pages: childrenPages.length,\n children: [],\n type: current.type,\n parent: pageTree\n })\n )\n }\n delete pageTree.parent\n return pageTree\n}\n\nexport async function getPageSync(\n pageId: string,\n recordMap: ExtendedRecordMap,\n getBlocks: (blockIds: string[], fetchOption?: FetchOption) => Promise<PageChunk>\n): Promise<ExtendedRecordMap> {\n let contentBlockIds = getPageContentBlockIds(recordMap, pageId)\n let blockMap: BlockMap = { [pageId]: { value: recordMap.block[pageId].value, role: 'reader' } }\n const collectionMap = {}\n const collectionViewMap = {}\n const collectionQueryMap = {}\n\n const missing = []\n for (const contentBlockId of contentBlockIds) {\n const block = recordMap.block[contentBlockId]?.value\n if (!block) {\n missing.push(contentBlockId)\n continue\n }\n blockMap[contentBlockId] = { value: block, role: 'reader' }\n if (block.type === 'collection_view' || block.type === 'collection_view_page') {\n if (recordMap.collection[block.collection_id])\n collectionMap[block.collection_id] = recordMap.collection[block.collection_id]\n if (recordMap.collection_query[block.collection_id])\n collectionQueryMap[block.collection_id] = recordMap.collection_query[block.collection_id]\n for (const viewId of block.view_ids)\n if (recordMap.collection_view[viewId]) {\n collectionViewMap[viewId] = recordMap.collection_view[viewId]\n const blockIds = recordMap.collection_query[block?.collection_id]?.[viewId]?.collection_group_results?.blockIds\n if (blockIds?.length)\n for (const blockId of blockIds) {\n const block = recordMap.block[blockId]?.value\n if (block) blockMap[blockId] = { value: block, role: 'reader' }\n else missing.push(blockId)\n }\n }\n }\n }\n\n // Ancestor\n const ancesters = findAncestors(recordMap, recordMap.block[pageId].value)\n for (const ancester of ancesters) {\n const block = recordMap.block[ancester]?.value\n if (block) blockMap[ancester] = { value: block, role: 'reader' }\n const collection = recordMap.collection[ancester]?.value\n if (collection) collectionMap[ancester] = { value: collection }\n }\n\n // Alias\n for (const blockId of Object.keys(blockMap)) {\n const block = blockMap[blockId].value\n let targetBlock = block\n if (block?.type === 'alias')\n while (true) {\n const alias = targetBlock?.format?.alias_pointer?.id\n if (!alias) break\n targetBlock = recordMap.block[alias]?.value\n if (!targetBlock) missing.push(alias)\n else blockMap[alias] = { value: targetBlock, role: 'reader' }\n }\n }\n\n // Missing\n if (missing.length) {\n const responseMap = (await getBlocks(missing).catch(() => ({ recordMap: { block: null } }))).recordMap\n if (responseMap?.block) {\n blockMap = { ...blockMap, ...responseMap.block }\n for (const blockId in responseMap.block) recordMap.block[blockId] = responseMap.block[blockId]\n } else {\n console.debug(`fetching ${missing.length} fail`)\n }\n }\n\n contentBlockIds = getPageContentBlockIds(recordMap, pageId)\n for (const contentBlockId of contentBlockIds) {\n const block = recordMap.block[contentBlockId]?.value\n if (!block) continue\n blockMap[contentBlockId] = { value: block, role: 'reader' }\n if (block.type === 'collection_view' || block.type === 'collection_view_page') {\n if (recordMap.collection[block.collection_id])\n collectionMap[block.collection_id] = recordMap.collection[block.collection_id]\n if (recordMap.collection_query[block.collection_id])\n collectionQueryMap[block.collection_id] = recordMap.collection_query[block.collection_id]\n for (const viewId of block.view_ids)\n if (recordMap.collection_view[viewId]) {\n collectionViewMap[viewId] = recordMap.collection_view[viewId]\n const blockIds = recordMap.collection_query[block?.collection_id]?.[viewId]?.collection_group_results?.blockIds\n if (blockIds?.length)\n for (const blockId of blockIds) {\n const block = recordMap.block[blockId]?.value\n if (block) blockMap[blockId] = { value: block, role: 'reader' }\n }\n }\n }\n }\n\n return {\n block: blockMap,\n collection: collectionMap,\n collection_view: collectionViewMap,\n collection_query: collectionQueryMap,\n signed_urls: {},\n notion_user: {}\n }\n}\n\nconst sleep = async (ms: number) => new Promise(resolve => setTimeout(resolve, ms))\n","export const normalizeTitle = (title?: string | null): string => {\n return (title || '')\n .replace(/ /g, '-')\n .replace(/[^a-zA-Z0-9-\\u4e00-\\u9FFF\\u3041-\\u3096\\u30A1-\\u30FC\\u3000-\\u303F]/g, '')\n .replace(/--/g, '-')\n .replace(/-$/, '')\n .replace(/^-/, '')\n .trim()\n .toLowerCase()\n}\n","import { getBlockTitle } from './get-block-title'\nimport { getPageProperty } from './get-page-property'\nimport { normalizeTitle } from './normalize-title'\nimport { getTextContent } from './get-text-content'\nimport { uuidToId } from './uuid-to-id'\n\nimport type { ExtendedRecordMap } from '@texonom/ntypes'\n\n/**\n * Gets the canonical, display-friendly version of a page's ID for use in URLs.\n */\nexport const getCanonicalPageId = (\n pageId: string,\n recordMap: ExtendedRecordMap,\n { uuid = true }: { uuid?: boolean } = {}\n): string | null => {\n if (!pageId || !recordMap) return null\n\n const id = uuidToId(pageId)\n const block = recordMap.block[pageId]?.value\n\n if (block) {\n const slug =\n (getPageProperty('slug', block, recordMap) as string | null) || normalizeTitle(getBlockTitle(block, recordMap))\n\n if (slug)\n if (uuid) return `${slug}-${id}`\n else return slug\n } else {\n const collection = recordMap.collection[pageId]?.value\n if (collection) {\n const slug = normalizeTitle(getTextContent(collection.name))\n if (slug)\n if (uuid) return `${slug}-${id}`\n else return slug\n }\n }\n\n return id\n}\n","import { getBlockIcon } from './get-block-icon'\nimport { getBlockParentPage } from './get-block-parent-page'\nimport { getBlockTitle } from './get-block-title'\n\nimport type { ExtendedRecordMap } from '@texonom/ntypes'\n\nexport const getPageBreadcrumbs = (recordMap: ExtendedRecordMap, activePageId: string): Array<any> | null => {\n const blockMap = recordMap.block\n const breadcrumbs = []\n\n let currentPageId = activePageId\n\n do {\n const block = blockMap[currentPageId]?.value\n if (!block) break\n\n const title = getBlockTitle(block, recordMap)\n const icon = getBlockIcon(block, recordMap)\n\n if (!(title || icon)) break\n\n breadcrumbs.push({\n block,\n active: currentPageId === activePageId,\n pageId: currentPageId,\n title,\n icon\n })\n\n const parentBlock = getBlockParentPage(block, recordMap)\n const parentId = parentBlock?.id\n\n if (!parentId) break\n\n currentPageId = parentId\n\n // eslint-disable-next-line no-constant-condition\n } while (true)\n\n breadcrumbs.reverse()\n\n return breadcrumbs\n}\n","import isUrl from 'is-url-superb'\n\nexport { isUrl }\n","import { getBlockIcon } from './get-block-icon'\nimport { isUrl } from './is-url'\n\nimport type { Block, ExtendedRecordMap } from '@texonom/ntypes'\n\n/**\n * Gets URLs of all images contained on the given page.\n */\nexport const getPageImageUrls = (\n recordMap: ExtendedRecordMap,\n {\n mapImageUrl\n }: {\n mapImageUrl: (url: string, block: Block) => string | null\n }\n): string[] => {\n const blockIds = Object.keys(recordMap.block)\n const imageUrls: string[] = blockIds\n .flatMap(blockId => {\n const block = recordMap.block[blockId]?.value\n const images: Array<{ block: Block; url: string }> = []\n\n if (block) {\n if (block.type === 'image') {\n const signedUrl = recordMap.signed_urls?.[block.id]\n let source = signedUrl || block.properties?.source?.[0]?.[0]\n if (source.includes('file.notion.so')) source = block.properties?.source?.[0]?.[0]\n\n if (source)\n images.push({\n block,\n url: source\n })\n }\n\n if ((block.format as any)?.page_cover) {\n const source = (block.format as any).page_cover\n\n images.push({\n block,\n url: source\n })\n }\n\n if ((block.format as any)?.bookmark_cover) {\n const source = (block.format as any).bookmark_cover\n\n images.push({\n block,\n url: source\n })\n }\n\n if ((block.format as any)?.bookmark_icon) {\n const source = (block.format as any).bookmark_icon\n\n images.push({\n block,\n url: source\n })\n }\n\n const pageIcon = getBlockIcon(block, recordMap)\n if (pageIcon && isUrl(pageIcon))\n images.push({\n block,\n url: pageIcon\n })\n }\n\n return images\n })\n .filter(Boolean)\n .map(({ block, url }) => mapImageUrl(url, block))\n .filter(Boolean)\n\n return Array.from(new Set(imageUrls))\n}\n","import mem from 'mem'\nimport normalizeUrlImpl from 'normalize-url'\n\nexport const normalizeUrl = mem((url?: string) => {\n if (!url) return ''\n\n try {\n if (url.startsWith('https://www.notion.so/image/')) {\n const u = new URL(url)\n const subUrl = decodeURIComponent(u.pathname.substring('/image/'.length))\n const normalizedSubUrl = normalizeUrl(subUrl)\n u.pathname = `/image/${encodeURIComponent(normalizedSubUrl)}`\n url = u.toString()\n }\n\n return normalizeUrlImpl(url, {\n stripProtocol: true,\n stripWWW: true,\n stripHash: true,\n stripTextFragment: true,\n removeQueryParameters: true\n })\n } catch (err) {\n return ''\n }\n})\n","import type { ExtendedRecordMap } from '@texonom/ntypes'\n\nexport function mergeRecordMaps(recordMapA: ExtendedRecordMap, recordMapB: ExtendedRecordMap): ExtendedRecordMap {\n const mergedRecordMap: ExtendedRecordMap = {\n block: {\n ...recordMapA.block,\n ...recordMapB.block\n },\n collection: {\n ...recordMapA.collection,\n ...recordMapB.collection\n },\n collection_view: {\n ...recordMapA.collection_view,\n ...recordMapB.collection_view\n },\n notion_user: {\n ...recordMapA.notion_user,\n ...recordMapB.notion_user\n },\n collection_query: {\n ...recordMapA.collection_query,\n ...recordMapB.collection_query\n },\n signed_urls: {\n ...recordMapA.signed_urls,\n ...recordMapB.signed_urls\n },\n preview_images: {\n ...recordMapA.preview_images,\n ...recordMapB.preview_images\n }\n }\n\n return mergedRecordMap\n}\n","export const formatDate = (input: string | number, { month = 'short' }: { month?: 'long' | 'short' } = {}) => {\n const date = new Date(input)\n const monthLocale = date.toLocaleString('en-US', { month })\n return `${date.getUTCFullYear()} ${monthLocale} ${date.getUTCDate()} ${date.getUTCHours()}:${date.getUTCMinutes()}`\n}\n","import { formatDate } from './format-date'\n\nexport interface NotionDateTime {\n type: 'datetime'\n start_date: string\n start_time?: string\n time_zone?: string\n}\n\nexport const formatNotionDateTime = (datetime: NotionDateTime) => {\n const dateString = `${datetime.start_time || ''} ${datetime.start_date} ${datetime.time_zone || ''}`\n return formatDate(dateString)\n}\n","import { Block, ExtendedRecordMap, PageBlock } from '@texonom/ntypes'\n\nimport { getBlockTitle } from './get-block-title'\nimport { getPageTableOfContents } from './get-page-table-of-contents'\n\ntype EstimatePageReadTimeOptions = {\n wordsPerMinute?: number\n imageReadTimeInSeconds?: number\n}\n\ntype ContentStats = {\n numWords: number\n numImages: number\n}\n\ntype PageReadTimeEstimate = ContentStats & {\n totalWordsReadTimeInMinutes: number\n totalImageReadTimeInMinutes: number\n totalReadTimeInMinutes: number\n}\n\n/**\n * Returns an estimate for the time it would take for a person to read the content\n * in the given Notion page.\n *\n * Uses Medium for inspiration.\n *\n * @see https://blog.medium.com/read-time-and-you-bc2048ab620c\n * @see https://github.com/ngryman/reading-time\n *\n * TODO: handle non-english content.\n */\nexport function estimatePageReadTime(\n block: Block,\n recordMap: ExtendedRecordMap,\n { wordsPerMinute = 275, imageReadTimeInSeconds = 12 }: EstimatePageReadTimeOptions = {}\n): PageReadTimeEstimate {\n const stats = getBlockContentStats(block, recordMap)\n const totalWordsReadTimeInMinutes = stats.numWords / wordsPerMinute\n const totalImageReadTimeInSeconds =\n stats.numImages > 10\n ? (stats.numImages / 2) * (imageReadTimeInSeconds + 3) + (stats.numImages - 10) * 3 // n/2(a+b) + 3 sec/image\n : (stats.numImages / 2) * (2 * imageReadTimeInSeconds + (1 - stats.numImages)) // n/2[2a+(n-1)d]\n const totalImageReadTimeInMinutes = totalImageReadTimeInSeconds / 60\n\n const totalReadTimeInMinutes = totalWordsReadTimeInMinutes + totalImageReadTimeInMinutes\n\n return {\n ...stats,\n totalWordsReadTimeInMinutes,\n totalImageReadTimeInMinutes,\n totalReadTimeInMinutes\n }\n}\n\n/**\n * Same as `estimatePageReadTime`, except it returns the total time estimate as\n * a human-readable string.\n *\n * For example, \"9 minutes\" or \"less than a minute\".\n */\nexport function estimatePageReadTimeAsHumanizedString(\n block: Block,\n recordMap: ExtendedRecordMap,\n opts: EstimatePageReadTimeOptions\n) {\n const estimate = estimatePageReadTime(block, recordMap, opts)\n return humanizeReadTime(estimate.totalReadTimeInMinutes)\n}\n\nfunction getBlockContentStats(block: Block, recordMap: ExtendedRecordMap): ContentStats {\n const stats: ContentStats = {\n numWords: 0,\n numImages: 0\n }\n\n if (!block) return stats\n\n for (const childId of block.content || []) {\n const child = recordMap.block[childId]?.value\n let recurse = false\n if (!child) continue\n\n switch (child.type) {\n case 'quote':\n // fallthrough\n case 'alias':\n // fallthrough\n case 'header':\n // fallthrough\n case 'sub_header':\n // fallthrough\n case 'sub_sub_header': {\n const title = getBlockTitle(child, recordMap)\n stats.numWords += countWordsInText(title)\n break\n }\n\n case 'callout':\n // fallthrough\n case 'toggle':\n // fallthrough\n case 'to_do':\n // fallthrough\n case 'bulleted_list':\n // fallthrough\n case 'numbered_list':\n // fallthrough\n case 'text': {\n const title = getBlockTitle(child, recordMap)\n stats.numWords += countWordsInText(title)\n recurse = true\n break\n }\n\n case 'embed':\n // fallthrough\n case 'tweet':\n // fallthrough\n case 'maps':\n // fallthrough\n case 'pdf':\n // fallthrough\n case 'figma':\n // fallthrough\n case 'typeform':\n // fallthrough\n case 'codepen':\n // fallthrough\n case 'excalidraw':\n // fallthrough\n case 'gist':\n // fallthrough\n case 'video':\n // fallthrough\n case 'drive':\n // fallthrough\n case 'audio':\n // fallthrough\n case 'file':\n // fallthrough\n case 'image':\n // treat all embeds as images\n stats.numImages += 1\n break\n\n case 'bookmark':\n // treat bookmarks as quarter images since they aren't as content-ful as embedd images\n stats.numImages += 0.25\n break\n\n case 'code':\n // treat code blocks as double the complexity of images\n stats.numImages += 2\n break\n\n case 'table':\n // fallthrough\n case 'collection_view':\n // treat collection views as double the complexity of images\n stats.numImages += 2\n break\n\n case 'column':\n // fallthrough\n case 'column_list':\n // fallthrough\n case 'transclusion_container':\n recurse = true\n break\n\n case 'table_of_contents': {\n const page = block as PageBlock\n if (!page) continue\n\n const toc = getPageTableOfContents(page, recordMap)\n for (const tocItem of toc) stats.numWords += countWordsInText(tocItem.text)\n\n break\n }\n\n case 'transclusion_reference': {\n const referencePointerId = child?.format?.transclusion_reference_pointer?.id\n\n if (!referencePointerId) continue\n\n const referenceBlock = recordMap.block[referencePointerId]?.value\n if (referenceBlock) mergeContentStats(stats, getBlockContentStats(referenceBlock, recordMap))\n\n break\n }\n\n default:\n // ignore unrecognized blocks\n break\n }\n\n if (recurse) mergeContentStats(stats, getBlockContentStats(child, recordMap))\n }\n\n return stats\n}\n\nfunction mergeContentStats(statsA: ContentStats, statsB: ContentStats) {\n statsA.numWords += statsB.numWords\n statsA.numImages += statsB.numImages\n}\n\nfunction countWordsInText(text: string): number {\n if (!text) return 0\n\n return (text.match(/\\w+/g) || []).length\n}\n\nfunction humanizeReadTime(time: number): string {\n if (time < 0.5) return 'less than a minute'\n\n if (time < 1.5) return '1 minute'\n\n return `${Math.ceil(time)} minutes`\n}\n","import { Block } from '@texonom/ntypes'\n\nexport const defaultMapImageUrl = (url: string, block: Block): string | null => {\n if (!url) return null\n\n if (url.startsWith('data:')) return url\n\n // more recent versions of notion don't proxy unsplash images\n if (url.startsWith('https://images.unsplash.com')) return url\n\n try {\n const u = new URL(url)\n\n if (u.pathname.startsWith('/secure.notion-static.com') && u.hostname.endsWith('.amazonaws.com'))\n if (\n u.searchParams.has('X-Amz-Credential') &&\n u.searchParams.has('X-Amz-Signature') &&\n u.searchParams.has('X-Amz-Algorithm')\n )\n // if the URL is already signed, then use it as-is\n return url\n } catch {\n // ignore invalid urls\n }\n\n if (url.startsWith('/images')) url = `https://www.notion.so${url}`\n\n url = `https://www.notion.so${url.startsWith('/image') ? url : `/image/${encodeURIComponent(url)}`}`\n\n const notionImageUrlV2 = new URL(url)\n let table = block.parent_table === 'space' ? 'block' : block.parent_table\n if (table === 'collection' || table === 'team') table = 'block'\n\n notionImageUrlV2.searchParams.set('table', table)\n notionImageUrlV2.searchParams.set('id', block.id)\n notionImageUrlV2.searchParams.set('cache', 'v2')\n\n url = notionImageUrlV2.toString()\n\n return url\n}\n","export const defaultMapPageUrl = (rootPageId?: string) => (pageId: string) => {\n pageId = (pageId || '').replace(/-/g, '')\n\n if (rootPageId && pageId === rootPageId) return '/'\n else return `/${pageId}`\n}\n"],"mappings":"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","names":["getTextContent","text","_a","prev","current","getBlockCollectionId","block","recordMap","_a","_b","_c","_d","_e","_f","_g","collectionId","collectionViewId","collectionView","getBlockTitle","block","recordMap","_a","_b","getTextContent","collectionId","getBlockCollectionId","collection","getBlockIcon","block","recordMap","_a","_b","_c","collectionId","getBlockCollectionId","collection","getPageTitle","recordMap","_a","pageBlock","getBlockTitle","getPageProperty","propertyName","block","recordMap","_a","collection","propertyNameL","propertyId","key","_b","type","content","getTextContent","formatDate","start_date","start_time","end_date","end_time","startTime","endTime","e","getDateValue","prop","v","value","getBlockParentPage","block","recordMap","inclusive","_a","_b","currentRecord","parentId","parentTable","getBlockParent","_c","_d","indentLevels","getPageTableOfContents","page","recordMap","_a","toc","blockId","_b","block","type","getTextContent","indentLevelStack","tocItem","indentLevel","actual","prevIndent","prevActual","prevEffective","getPageContentBlockIds","recordMap","blockId","locust","rootBlockId","contentBlockIds","addContentBlocks","_a","_b","block","content","type","properties","format","key","p","d","value","referenceId","getPageContentUserIds","contentUserIDs","idToUuid","id","pageIdRe","pageId2Re","parsePageId","id","uuid","match","idToUuid","match2","uuidToId","uuid","findAncestors","recordMap","block","list","_a","_b","table","getAllInSpace","_0","_1","_2","_3","__async","startPageId","getPage","getBlocks","fetchCollections","startRecordMap","fetchOption","maxPage","concurrency","collectionConcurrency","_a","pageMap","recordMap","tempRecordMap","targetBlocks","missing","blockMap","root","contentBlockIds","getPageContentBlockIds","contentBlockID","block","obj","__spreadValues","pageLength","type","blockIds","promises","blockId","getPageSync","pageRecordMap","sleep","pageTree","recursivePageTree","_b","_c","_d","ancestors","ancestor","current","contentBlockId","childrenMap","collectionQuery","childrenPages","pageId","_e","_f","_g","_h","_i","_j","_k","_l","_m","_n","_o","collectionMap","collectionViewMap","collectionQueryMap","viewId","ancesters","findAncestors","ancester","collection","targetBlock","alias","responseMap","ms","resolve","normalizeTitle","title","getCanonicalPageId","pageId","recordMap","uuid","_a","_b","id","uuidToId","block","slug","getPageProperty","normalizeTitle","getBlockTitle","collection","getTextContent","getPageBreadcrumbs","recordMap","activePageId","_a","blockMap","breadcrumbs","currentPageId","block","title","getBlockTitle","icon","getBlockIcon","parentBlock","getBlockParentPage","parentId","isUrl","getPageImageUrls","recordMap","mapImageUrl","imageUrls","blockId","_a","_b","_c","_d","_e","_f","_g","_h","_i","_j","_k","block","images","source","pageIcon","getBlockIcon","isUrl","url","mem","normalizeUrlImpl","normalizeUrl","url","u","subUrl","normalizedSubUrl","err","mergeRecordMaps","recordMapA","recordMapB","__spreadValues","formatDate","input","month","date","monthLocale","formatNotionDateTime","datetime","dateString","formatDate","estimatePageReadTime","block","recordMap","wordsPerMinute","imageReadTimeInSeconds","stats","getBlockContentStats","totalWordsReadTimeInMinutes","totalImageReadTimeInMinutes","totalReadTimeInMinutes","__spreadProps","__spreadValues","estimatePageReadTimeAsHumanizedString","opts","estimate","humanizeReadTime","_a","_b","_c","_d","childId","child","recurse","title","getBlockTitle","countWordsInText","page","toc","getPageTableOfContents","tocItem","referencePointerId","referenceBlock","mergeContentStats","statsA","statsB","text","time","defaultMapImageUrl","url","block","u","e","notionImageUrlV2","table","defaultMapPageUrl","rootPageId","pageId"]}
|
|
1
|
+
{"version":3,"sources":["../src/get-text-content.ts","../src/get-block-collection-id.ts","../src/get-block-title.ts","../src/get-block-icon.ts","../src/get-page-title.ts","../src/get-page-property.ts","../src/get-date-value.ts","../src/get-block-parent-page.ts","../src/get-page-table-of-contents.ts","../src/get-page-content-block-ids.ts","../src/id-to-uuid.ts","../src/parse-page-id.ts","../src/uuid-to-id.ts","../src/find-ancestors.ts","../src/get-all-in-space.ts","../src/normalize-title.ts","../src/get-canonical-page-id.ts","../src/get-page-breadcrumbs.ts","../src/is-url.ts","../src/get-page-image-urls.ts","../src/normalize-url.ts","../src/merge-record-maps.ts","../src/format-date.ts","../src/format-notion-date-time.ts","../src/estimate-page-read-time.ts","../src/map-image-url.ts","../src/map-page-url.ts"],"sourcesContent":["import type { Decoration } from '@texonom/ntypes'\n\n/**\n * Gets the raw, unformatted text content of a block's content value.\n *\n * This is useful, for instance, for extracting a block's `title` without any\n * rich text formatting.\n */\nexport const getTextContent = (text?: Decoration[]): string => {\n if (!text) return ''\n else if (Array.isArray(text))\n return text?.reduce((prev, current) => prev + (current[0] !== '⁍' && current[0] !== '‣' ? current[0] : ''), '') ?? ''\n else return text\n}\n","import type { Block, ExtendedRecordMap } from '@texonom/ntypes'\n\nexport function getBlockCollectionId(block: Block, recordMap: ExtendedRecordMap): string | null {\n const collectionId = (block as any).collection_id || (block as any).format?.collection_pointer?.id\n\n if (collectionId) return collectionId\n\n const collectionViewId = (block as any)?.view_ids?.[0]\n if (collectionViewId) {\n const collectionView = recordMap.collection_view?.[collectionViewId]?.value\n if (collectionView) {\n const collectionId = collectionView.format?.collection_pointer?.id\n return collectionId\n }\n }\n\n return null\n}\n","import { getBlockCollectionId } from './get-block-collection-id'\nimport { getTextContent } from './get-text-content'\n\nimport type { Block, ExtendedRecordMap } from '@texonom/ntypes'\n\nexport function getBlockTitle(block: Block, recordMap: ExtendedRecordMap) {\n if (block.properties?.title) return getTextContent(block.properties.title)\n\n if (block.type === 'collection_view_page' || block.type === 'collection_view') {\n const collectionId = getBlockCollectionId(block, recordMap)\n if (collectionId) {\n const collection = recordMap.collection[collectionId]?.value\n if (collection) return getTextContent(collection.name)\n }\n }\n return ''\n}\n","import { getBlockCollectionId } from './get-block-collection-id'\n\nimport type { Block, ExtendedRecordMap, PageBlock } from '@texonom/ntypes'\n\nexport function getBlockIcon(block: Block, recordMap: ExtendedRecordMap) {\n if ((block as PageBlock).format?.page_icon) return (block as PageBlock).format?.page_icon\n\n if (block.type === 'collection_view_page' || block.type === 'collection_view') {\n const collectionId = getBlockCollectionId(block, recordMap)\n if (collectionId) {\n const collection = recordMap.collection[collectionId]?.value\n\n if (collection) return collection.icon\n }\n }\n\n return null\n}\n","import type { ExtendedRecordMap } from '@texonom/ntypes'\n\nimport { getBlockTitle } from './get-block-title'\n\nexport function getPageTitle(recordMap: ExtendedRecordMap) {\n const pageBlock = recordMap.block[Object.keys(recordMap.block)[0]]?.value\n\n if (pageBlock) return getBlockTitle(pageBlock, recordMap)\n\n return null\n}\n","import { Block, DateFormat, ExtendedRecordMap } from '@texonom/ntypes'\n\nimport { getTextContent } from './get-text-content'\n\n/**\n * Gets the value of a collection property for a given page (collection item).\n *\n * @param propertyName property name\n * @param block Page block, often be first block in blockMap\n * @param recordMap\n * @returns - The return value types will follow the following principles:\n * 1. if property is date type, it will return `number` or `number[]`(depends on `End Date` switch)\n * 2. property is text-like will return `string`\n * 3. multi select property will return `string[]`\n * 4. checkbox property return `boolean`\n * @todo complete all no-text property type\n */\nexport function getPageProperty<T = string | number | boolean | string[] | number[]>(\n propertyName: string,\n block: Block,\n recordMap: ExtendedRecordMap\n): T\nexport function getPageProperty(propertyName: string, block: Block, recordMap: ExtendedRecordMap) {\n try {\n if (!block.properties || !Object.keys(recordMap.collection))\n // console.warn(\n // `block ${block.id} has no properties or this recordMap has no collection record`\n // )\n return null\n\n const collection = recordMap.collection[block.parent_id]?.value\n\n if (collection) {\n const propertyNameL = propertyName.toLowerCase()\n const propertyId = Object.keys(collection.schema).find(\n key => collection.schema[key]?.name?.toLowerCase() === propertyNameL\n )\n\n if (!propertyId) return null\n\n const { type } = collection.schema[propertyId]\n const content = getTextContent(block.properties[propertyId])\n\n switch (type) {\n case 'created_time':\n return block.created_time\n\n case 'multi_select':\n return content.split(',')\n\n case 'date': {\n const property = block.properties[propertyId] as [['‣', [DateFormat]]]\n const formatDate = property[0][1][0][1]\n\n if (formatDate.type == 'datetime') {\n return new Date(`${formatDate.start_date} ${formatDate.start_time}`).getTime()\n } else if (formatDate.type == 'date') {\n return new Date(formatDate.start_date).getTime()\n } else if (formatDate.type == 'datetimerange') {\n const { start_date, start_time, end_date, end_time } = formatDate\n const startTime = new Date(`${start_date} ${start_time}`).getTime()\n const endTime = new Date(`${end_date} ${end_time}`).getTime()\n return [startTime, endTime]\n } else {\n const startTime = new Date(formatDate.start_date).getTime()\n const endTime = new Date(formatDate.end_date).getTime()\n return [startTime, endTime]\n }\n }\n\n case 'checkbox':\n return content == 'Yes'\n\n case 'last_edited_time':\n return block.last_edited_time\n\n default:\n return content\n }\n }\n } catch {\n // ensure that no matter what, we don't throw errors because of an unexpected\n // collection data format\n }\n\n return null\n}\n","import type { FormattedDate } from '@texonom/ntypes'\n\n/**\n * Attempts to find a valid date from a given property.\n */\nexport const getDateValue = (prop: any[]): FormattedDate | null => {\n if (prop && Array.isArray(prop))\n if (prop[0] === 'd') return prop[1]\n else\n for (const v of prop) {\n const value = getDateValue(v)\n if (value) return value\n }\n\n return null\n}\n","import type { Block, ExtendedRecordMap, PageBlock, Collection, Space } from '@texonom/ntypes'\n\n/**\n * Returns the parent page block containing a given page.\n *\n * Note that many times this will not be the direct parent block since\n * some non-page content blocks can contain sub-blocks.\n */\nexport const getBlockParentPage = (\n block: Block,\n recordMap: ExtendedRecordMap,\n {\n inclusive = false\n }: {\n inclusive?: boolean\n } = {}\n): PageBlock | null => {\n let currentRecord: Block | Collection = block\n\n while (currentRecord != null) {\n if (inclusive && (currentRecord as Block)?.type === 'page') return currentRecord as PageBlock\n\n const parentId: string = currentRecord.parent_id\n const parentTable = currentRecord.parent_table\n\n if (!parentId) break\n\n if (parentTable === 'collection') {\n currentRecord = recordMap.collection[parentId]?.value\n } else {\n currentRecord = recordMap.block[parentId]?.value\n if ((currentRecord as Block)?.type === 'page') return currentRecord as PageBlock\n }\n }\n return null\n}\n\nexport const getBlockParent = (\n block: Block,\n recordMap: ExtendedRecordMap,\n {\n inclusive = false\n }: {\n inclusive?: boolean\n } = {}\n): PageBlock | Collection | Space => {\n let currentRecord: Block | Collection | Space = block\n\n while (currentRecord != null) {\n if (inclusive && (currentRecord as Block)?.type === 'page') return currentRecord as PageBlock\n\n const parentId: string = currentRecord.parent_id\n const parentTable = currentRecord.parent_table\n\n if (!parentId) break\n\n if (parentTable === 'collection') {\n return recordMap.collection[parentId]?.value\n } else if (parentTable === 'space') {\n return recordMap.space?.[parentId]?.value\n } else {\n currentRecord = recordMap.block[parentId]?.value\n if ((currentRecord as Block)?.type === 'page') return currentRecord as PageBlock\n }\n }\n return null\n}\n","import { getTextContent } from './get-text-content'\n\nimport type { ID, BlockType, PageBlock, ExtendedRecordMap } from '@texonom/ntypes'\n\nexport interface TableOfContentsEntry {\n id: ID\n type: BlockType\n text: string\n indentLevel: number\n}\n\nconst indentLevels = {\n header: 0,\n sub_header: 1,\n sub_sub_header: 2\n}\n\n/**\n * Gets the metadata for a table of contents block by parsing the page's\n * H1, H2, and H3 elements.\n */\nexport const getPageTableOfContents = (page: PageBlock, recordMap: ExtendedRecordMap): Array<TableOfContentsEntry> => {\n const toc = (page.content ?? [])\n .map((blockId: string) => {\n const block = recordMap.block[blockId]?.value\n\n if (block) {\n const { type } = block\n\n if (type === 'header' || type === 'sub_header' || type === 'sub_sub_header')\n return {\n id: blockId,\n type,\n text: getTextContent(block.properties?.title),\n indentLevel: indentLevels[type]\n }\n }\n\n return null\n })\n .filter(Boolean) as Array<TableOfContentsEntry>\n\n const indentLevelStack = [\n {\n actual: -1,\n effective: -1\n }\n ]\n\n // Adjust indent levels to always change smoothly.\n // This is a little tricky, but the key is that when increasing indent levels,\n // they should never jump more than one at a time.\n for (const tocItem of toc) {\n const { indentLevel } = tocItem\n const actual = indentLevel\n\n do {\n const prevIndent = indentLevelStack[indentLevelStack.length - 1]\n const { actual: prevActual, effective: prevEffective } = prevIndent\n\n if (actual > prevActual) {\n tocItem.indentLevel = prevEffective + 1\n indentLevelStack.push({\n actual,\n effective: tocItem.indentLevel\n })\n } else if (actual === prevActual) {\n tocItem.indentLevel = prevEffective\n break\n } else {\n indentLevelStack.pop()\n }\n\n // eslint-disable-next-line no-constant-condition\n } while (true)\n }\n\n return toc\n}\n","import type { ExtendedRecordMap, Decoration } from '@texonom/ntypes'\n\n/**\n * Gets the IDs of all blocks contained on a page starting from a root block ID.\n */\nexport const getPageContentBlockIds = (recordMap: ExtendedRecordMap, blockId?: string, locust = false): string[] => {\n const rootBlockId = blockId || Object.keys(recordMap.block)[0]\n const contentBlockIds = new Set<string>()\n\n function addContentBlocks(blockId: string) {\n if (contentBlockIds.has(blockId)) return\n contentBlockIds.add(blockId)\n\n const block = recordMap.block[blockId]?.value\n if (!block) return\n const { content, type, properties, format } = block\n if (properties)\n for (const key of Object.keys(properties)) {\n const p = properties[key]\n p.map((d: Decoration) => {\n const value = d?.[0]?.[1]?.[0]\n if (value?.[0] === 'p' && value[1]) addContentBlocks(value[1])\n })\n p.map((d: Decoration) => {\n const value = d?.[1]?.[0]\n if ((value?.[0] === 'p' || value?.[0] === 'eoi') && value[1]) addContentBlocks(value[1])\n })\n }\n\n if (format) {\n const referenceId = format.transclusion_reference_pointer?.id\n if (referenceId) addContentBlocks(referenceId)\n }\n // no child content blocks to recurse on\n if (!content || !Array.isArray(content)) return\n // ignore the content of other pages and collections\n if (blockId !== rootBlockId && !locust) if (type === 'page' || type === 'collection_view_page') return\n for (const blockId of content) addContentBlocks(blockId)\n }\n addContentBlocks(rootBlockId)\n return Array.from(contentBlockIds)\n}\n\n/**\n * Gets the IDs of all blocks contained on a page starting from a root block ID.\n */\nexport const getPageContentUserIds = (recordMap: ExtendedRecordMap, blockId?: string): string[] => {\n const rootBlockId = blockId || Object.keys(recordMap.block)[0]\n const contentUserIDs = new Set<string>()\n const block = recordMap.block[rootBlockId]?.value\n\n if (block?.created_by_id) contentUserIDs.add(block?.created_by_id)\n if (block?.last_edited_by_id) contentUserIDs.add(block?.last_edited_by_id)\n\n // Property\n const { properties } = block\n if (properties)\n for (const key of Object.keys(properties)) {\n const p = properties[key]\n p.map((d: Decoration) => {\n const value = d?.[1]?.[0]\n if (value?.[0] === 'u' && value[1]) contentUserIDs.add(value[1])\n })\n }\n\n return Array.from(contentUserIDs)\n}\n","export const idToUuid = (id = '') =>\n `${id.substr(0, 8)}-${id.substr(8, 4)}-${id.substr(12, 4)}-${id.substr(16, 4)}-${id.substr(20)}`\n","import { idToUuid } from './id-to-uuid'\n\nconst pageIdRe = /\\b([a-f0-9]{32})\\b/\nconst pageId2Re = /\\b([a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12})\\b/\n\n/**\n * Robustly extracts the notion page ID from a notion URL or pathname suffix.\n *\n * Defaults to returning a UUID (with dashes).\n */\nexport const parsePageId = (id: string | null = '', { uuid = true }: { uuid?: boolean } = {}) => {\n if (!id) return null\n\n id = id.split('?')[0]\n const match = id.match(pageIdRe)\n\n if (match) return uuid ? idToUuid(match[1]) : match[1]\n\n const match2 = id.match(pageId2Re)\n if (match2) return uuid ? match2[1] : match2[1].replace(/-/g, '')\n\n return null\n}\n","export const uuidToId = (uuid: string) => uuid.replace(/-/g, '')\n","import type { ExtendedRecordMap, Block, Collection } from '@texonom/ntypes'\n\nexport function findAncestors(recordMap: ExtendedRecordMap, block: Block | Collection, list: string[] = []): string[] {\n if (block.parent_id) {\n list.push(block.parent_id)\n const table = block.parent_table as 'block' | 'collection'\n if (recordMap[table]?.[block.parent_id]?.value)\n return findAncestors(recordMap, recordMap[table][block.parent_id].value, list)\n }\n return list\n}\n","import { findAncestors } from './find-ancestors'\nimport { getPageContentBlockIds } from './get-page-content-block-ids'\n\nimport type { ExtendedRecordMap, PageMap, PageChunk, BlockMap } from '@texonom/ntypes'\n\nexport type PageTree = {\n id: string\n type: string\n blocks: number\n pages: number\n parent?: PageTree\n children: PageTree[]\n}\n\ntype FetchOption = RequestInit & { timeout?: number }\n\n/**\n * Performs a traversal over a given Notion workspace starting from a seed page.\n *\n * Returns a map containing all of the pages that are reachable from the seed\n * page in the space.\n *\n * If `rootSpaceId` is not defined, the space ID of the root page will be used\n * to scope traversal.\n *\n *\n * @param rootPageId - Page ID to start from.\n * @param rootSpaceId - Space ID to scope traversal.\n * @param getPage - Function used to fetch a single page.\n * @param opts - Optional config\n */\nexport async function getAllInSpace(\n startPageId: string,\n getPage: (pageId: string, { fetchOption }?: { fetchOption?: FetchOption }) => Promise<ExtendedRecordMap>,\n getBlocks: (blockIds: string[], fetchOption?: FetchOption) => Promise<PageChunk>,\n fetchCollections: (\n contentBlockIds: string[],\n recordMap: ExtendedRecordMap,\n pageId?: string,\n {\n fetchOption,\n concurrency,\n collectionConcurrency\n }?: { fetchOption?: FetchOption; concurrency?: number; collectionConcurrency?: number }\n ) => Promise<ExtendedRecordMap>,\n {\n startRecordMap,\n fetchOption = { timeout: 100000 },\n maxPage,\n concurrency = 100,\n collectionConcurrency = 100\n }: {\n startRecordMap?: ExtendedRecordMap\n fetchOption?: FetchOption\n concurrency?: number\n maxPage?: number\n collectionConcurrency?: number\n } = {}\n): Promise<{ recordMap: ExtendedRecordMap; pageMap: PageMap; pageTree: PageTree }> {\n const pageMap: PageMap = {}\n const recordMap = startRecordMap ? startRecordMap : await getPage(startPageId, { fetchOption })\n\n let tempRecordMap: ExtendedRecordMap = JSON.parse(JSON.stringify(recordMap))\n\n console.time('fetch total')\n while (true) {\n console.info('block length ', Object.keys(recordMap.block).length)\n\n console.time('getPageContentBlockIds')\n const targetBlocks = Object.keys(tempRecordMap.block)\n const missing = Object.keys(\n targetBlocks.reduce((blockMap, root) => {\n const contentBlockIds = getPageContentBlockIds(recordMap, root, true)\n for (const contentBlockID of contentBlockIds) if (!recordMap.block[contentBlockID]) blockMap[contentBlockID] = true\n return blockMap\n }, {})\n )\n for (const { value: block } of Object.values(tempRecordMap.block))\n if (block && !recordMap.block[block.parent_id] && block.parent_table === 'block') missing.push(block.parent_id)\n console.timeEnd('getPageContentBlockIds')\n\n console.time('getBlocks')\n tempRecordMap = (await getBlocks(missing, fetchOption)).recordMap as ExtendedRecordMap\n console.timeEnd('getBlocks')\n if (!tempRecordMap?.block) break\n\n console.time('mapBlocks')\n const contentBlockIds = Object.values(recordMap.block)\n .map(obj => obj.value?.id)\n .filter(Boolean)\n recordMap.block = { ...recordMap.block, ...tempRecordMap.block }\n console.timeEnd('mapBlocks')\n\n console.time('fetchCollections')\n await fetchCollections(contentBlockIds, recordMap, undefined, { fetchOption, concurrency, collectionConcurrency })\n console.timeEnd('fetchCollections')\n console.info('collection query length ' + Object.keys(recordMap.collection_query).length)\n\n console.info('new block length ', Object.keys(tempRecordMap.block).length)\n const pageLength = Object.values(recordMap.block)\n .map(obj => obj.value?.type)\n .filter(type => type === 'page').length\n console.info('page length ', pageLength)\n if (Number.isInteger(maxPage) && pageLength >= maxPage) break\n\n console.info(`memory usage ${process.memoryUsage().rss / 1024 / 1024}MB`)\n }\n console.timeEnd('fetch total')\n\n console.time('get page map')\n console.info('Total block length ', Object.keys(recordMap.block).length)\n const blockIds = Object.keys(recordMap.block)\n\n const promises = []\n for (const blockId of blockIds)\n if (recordMap.block[blockId].value?.type === 'page') {\n promises.push(getPageSync(blockId, recordMap, getBlocks).then(pageRecordMap => (pageMap[blockId] = pageRecordMap)))\n await sleep(1)\n }\n await Promise.all(promises)\n\n console.timeEnd('get page map')\n console.info('Total page length ', Object.keys(pageMap).length)\n\n console.time('get page tree')\n const pageTree = { id: startPageId, blocks: 1, pages: 1, children: [], type: 'page' }\n recursivePageTree(recordMap, pageTree)\n console.timeEnd('get page tree')\n\n return { pageMap, pageTree, recordMap }\n}\n\nexport function recursivePageTree(recordMap: ExtendedRecordMap, pageTree: PageTree): PageTree {\n const ancestors = [pageTree]\n let ancestor = pageTree\n while (true)\n if (ancestor.parent) {\n ancestors.push(ancestor.parent)\n ancestor = ancestor.parent\n } else {\n break\n }\n\n const current = recordMap.block[pageTree.id]?.value\n if (!current) {\n console.debug('No block value')\n delete pageTree.parent\n return pageTree\n }\n\n if (current.content?.length) {\n for (const ancestor of ancestors) ancestor.blocks += current.content.length\n for (const contentBlockId of current.content) {\n const block = recordMap.block[contentBlockId]?.value\n if (!block) continue\n pageTree.children.push(\n recursivePageTree(recordMap, {\n id: contentBlockId,\n blocks: 1,\n pages: 0,\n children: [],\n type: block.type,\n parent: pageTree\n })\n )\n if (block.type === 'page') for (const ancestor of ancestors) ancestor.pages++\n }\n } else if (current?.type === 'collection_view') {\n const collectionQuery = recordMap.collection_query[current.collection_id]?.[current.view_ids[0]]\n if (!collectionQuery) {\n console.debug('No collection query')\n delete pageTree.parent\n return pageTree\n }\n const childrenMap = {}\n for (const collectionQuery of Object.values(recordMap.collection_query[current.collection_id]))\n if (collectionQuery.collection_group_results.blockIds)\n for (const blockId of collectionQuery.collection_group_results.blockIds) childrenMap[blockId] = true\n const childrenPages = Object.keys(childrenMap)\n for (const ancestor of ancestors) ancestor.pages += childrenPages.length\n for (const ancestor of ancestors) ancestor.blocks += childrenPages.length\n for (const blockId of childrenPages)\n pageTree.children.push(\n recursivePageTree(recordMap, {\n id: blockId,\n blocks: childrenPages.length,\n pages: childrenPages.length,\n children: [],\n type: current.type,\n parent: pageTree\n })\n )\n }\n delete pageTree.parent\n return pageTree\n}\n\nexport async function getPageSync(\n pageId: string,\n recordMap: ExtendedRecordMap,\n getBlocks: (blockIds: string[], fetchOption?: FetchOption) => Promise<PageChunk>\n): Promise<ExtendedRecordMap> {\n let contentBlockIds = getPageContentBlockIds(recordMap, pageId)\n let blockMap: BlockMap = { [pageId]: { value: recordMap.block[pageId].value, role: 'reader' } }\n const collectionMap = {}\n const collectionViewMap = {}\n const collectionQueryMap = {}\n\n const missing = []\n for (const contentBlockId of contentBlockIds) {\n const block = recordMap.block[contentBlockId]?.value\n if (!block) {\n missing.push(contentBlockId)\n continue\n }\n blockMap[contentBlockId] = { value: block, role: 'reader' }\n if (block.type === 'collection_view' || block.type === 'collection_view_page') {\n if (recordMap.collection[block.collection_id])\n collectionMap[block.collection_id] = recordMap.collection[block.collection_id]\n if (recordMap.collection_query[block.collection_id])\n collectionQueryMap[block.collection_id] = recordMap.collection_query[block.collection_id]\n for (const viewId of block.view_ids)\n if (recordMap.collection_view[viewId]) {\n collectionViewMap[viewId] = recordMap.collection_view[viewId]\n const blockIds = recordMap.collection_query[block?.collection_id]?.[viewId]?.collection_group_results?.blockIds\n if (blockIds?.length)\n for (const blockId of blockIds) {\n const block = recordMap.block[blockId]?.value\n if (block) blockMap[blockId] = { value: block, role: 'reader' }\n else missing.push(blockId)\n }\n }\n }\n }\n\n // Ancestor\n const ancesters = findAncestors(recordMap, recordMap.block[pageId].value)\n for (const ancester of ancesters) {\n const block = recordMap.block[ancester]?.value\n if (block) blockMap[ancester] = { value: block, role: 'reader' }\n const collection = recordMap.collection[ancester]?.value\n if (collection) collectionMap[ancester] = { value: collection }\n }\n\n // Alias\n for (const blockId of Object.keys(blockMap)) {\n const block = blockMap[blockId].value\n let targetBlock = block\n if (block?.type === 'alias')\n while (true) {\n const alias = targetBlock?.format?.alias_pointer?.id\n if (!alias) break\n targetBlock = recordMap.block[alias]?.value\n if (!targetBlock) missing.push(alias)\n else blockMap[alias] = { value: targetBlock, role: 'reader' }\n }\n }\n\n // Missing\n if (missing.length) {\n const responseMap = (await getBlocks(missing).catch(() => ({ recordMap: { block: null } }))).recordMap\n if (responseMap?.block) {\n blockMap = { ...blockMap, ...responseMap.block }\n for (const blockId in responseMap.block) recordMap.block[blockId] = responseMap.block[blockId]\n } else {\n console.debug(`fetching ${missing.length} fail`)\n }\n }\n\n contentBlockIds = getPageContentBlockIds(recordMap, pageId)\n for (const contentBlockId of contentBlockIds) {\n const block = recordMap.block[contentBlockId]?.value\n if (!block) continue\n blockMap[contentBlockId] = { value: block, role: 'reader' }\n if (block.type === 'collection_view' || block.type === 'collection_view_page') {\n if (recordMap.collection[block.collection_id])\n collectionMap[block.collection_id] = recordMap.collection[block.collection_id]\n if (recordMap.collection_query[block.collection_id])\n collectionQueryMap[block.collection_id] = recordMap.collection_query[block.collection_id]\n for (const viewId of block.view_ids)\n if (recordMap.collection_view[viewId]) {\n collectionViewMap[viewId] = recordMap.collection_view[viewId]\n const blockIds = recordMap.collection_query[block?.collection_id]?.[viewId]?.collection_group_results?.blockIds\n if (blockIds?.length)\n for (const blockId of blockIds) {\n const block = recordMap.block[blockId]?.value\n if (block) blockMap[blockId] = { value: block, role: 'reader' }\n }\n }\n }\n }\n\n return {\n block: blockMap,\n collection: collectionMap,\n collection_view: collectionViewMap,\n collection_query: collectionQueryMap,\n signed_urls: {},\n notion_user: {}\n }\n}\n\nconst sleep = async (ms: number) => new Promise(resolve => setTimeout(resolve, ms))\n","export const normalizeTitle = (title?: string | null): string => {\n return (title || '')\n .replace(/ /g, '-')\n .replace(/[^a-zA-Z0-9-\\u4e00-\\u9FFF\\u3041-\\u3096\\u30A1-\\u30FC\\u3000-\\u303F]/g, '')\n .replace(/--/g, '-')\n .replace(/-$/, '')\n .replace(/^-/, '')\n .trim()\n .toLowerCase()\n}\n","import { getBlockTitle } from './get-block-title'\nimport { getPageProperty } from './get-page-property'\nimport { normalizeTitle } from './normalize-title'\nimport { getTextContent } from './get-text-content'\nimport { uuidToId } from './uuid-to-id'\n\nimport type { ExtendedRecordMap } from '@texonom/ntypes'\n\n/**\n * Gets the canonical, display-friendly version of a page's ID for use in URLs.\n */\nexport const getCanonicalPageId = (\n pageId: string,\n recordMap: ExtendedRecordMap,\n { uuid = true }: { uuid?: boolean } = {}\n): string | null => {\n if (!pageId || !recordMap) return null\n\n const id = uuidToId(pageId)\n const block = recordMap.block[pageId]?.value\n\n if (block) {\n const slug =\n (getPageProperty('slug', block, recordMap) as string | null) || normalizeTitle(getBlockTitle(block, recordMap))\n\n if (slug)\n if (uuid) return `${slug}-${id}`\n else return slug\n } else {\n const collection = recordMap.collection[pageId]?.value\n if (collection) {\n const slug = normalizeTitle(getTextContent(collection.name))\n if (slug)\n if (uuid) return `${slug}-${id}`\n else return slug\n }\n }\n\n return id\n}\n","import { getBlockIcon } from './get-block-icon'\nimport { getBlockParentPage } from './get-block-parent-page'\nimport { getBlockTitle } from './get-block-title'\n\nimport type { ExtendedRecordMap } from '@texonom/ntypes'\n\nexport const getPageBreadcrumbs = (recordMap: ExtendedRecordMap, activePageId: string): Array<any> | null => {\n const blockMap = recordMap.block\n const breadcrumbs = []\n\n let currentPageId = activePageId\n\n do {\n const block = blockMap[currentPageId]?.value\n if (!block) break\n\n const title = getBlockTitle(block, recordMap)\n const icon = getBlockIcon(block, recordMap)\n\n if (!(title || icon)) break\n\n breadcrumbs.push({\n block,\n active: currentPageId === activePageId,\n pageId: currentPageId,\n title,\n icon\n })\n\n const parentBlock = getBlockParentPage(block, recordMap)\n const parentId = parentBlock?.id\n\n if (!parentId) break\n\n currentPageId = parentId\n\n // eslint-disable-next-line no-constant-condition\n } while (true)\n\n breadcrumbs.reverse()\n\n return breadcrumbs\n}\n","import isUrl from 'is-url-superb'\n\nexport { isUrl }\n","import { getBlockIcon } from './get-block-icon'\nimport { isUrl } from './is-url'\n\nimport type { Block, ExtendedRecordMap } from '@texonom/ntypes'\n\n/**\n * Gets URLs of all images contained on the given page.\n */\nexport const getPageImageUrls = (\n recordMap: ExtendedRecordMap,\n {\n mapImageUrl\n }: {\n mapImageUrl: (url: string, block: Block) => string | null\n }\n): string[] => {\n const blockIds = Object.keys(recordMap.block)\n const imageUrls: string[] = blockIds\n .flatMap(blockId => {\n const block = recordMap.block[blockId]?.value\n const images: Array<{ block: Block; url: string }> = []\n\n if (block) {\n if (block.type === 'image') {\n const signedUrl = recordMap.signed_urls?.[block.id]\n let source = signedUrl || block.properties?.source?.[0]?.[0]\n if (source.includes('file.notion.so')) source = block.properties?.source?.[0]?.[0]\n\n if (source)\n images.push({\n block,\n url: source\n })\n }\n\n if (block.format?.page_cover) {\n const source = block.format.page_cover\n\n images.push({\n block,\n url: source\n })\n }\n\n if (block.format?.bookmark_cover) {\n const source = block.format.bookmark_cover\n\n images.push({\n block,\n url: source\n })\n }\n\n if (block.format?.bookmark_icon) {\n const source = block.format.bookmark_icon\n\n images.push({\n block,\n url: source\n })\n }\n\n const pageIcon = getBlockIcon(block, recordMap)\n if (pageIcon && isUrl(pageIcon))\n images.push({\n block,\n url: pageIcon\n })\n }\n\n return images\n })\n .filter(Boolean)\n .map(({ block, url }) => mapImageUrl(url, block))\n .filter(Boolean)\n\n return Array.from(new Set(imageUrls))\n}\n","import mem from 'mem'\nimport normalizeUrlImpl from 'normalize-url'\n\nexport const normalizeUrl = mem((url?: string) => {\n if (!url) return ''\n\n try {\n if (url.startsWith('https://www.notion.so/image/')) {\n const u = new URL(url)\n const subUrl = decodeURIComponent(u.pathname.substring('/image/'.length))\n const normalizedSubUrl = normalizeUrl(subUrl)\n u.pathname = `/image/${encodeURIComponent(normalizedSubUrl)}`\n url = u.toString()\n }\n\n return normalizeUrlImpl(url, {\n stripProtocol: true,\n stripWWW: true,\n stripHash: true,\n stripTextFragment: true,\n removeQueryParameters: true\n })\n } catch (err) {\n return ''\n }\n})\n","import type { ExtendedRecordMap } from '@texonom/ntypes'\n\nexport function mergeRecordMaps(recordMapA: ExtendedRecordMap, recordMapB: ExtendedRecordMap): ExtendedRecordMap {\n const mergedRecordMap: ExtendedRecordMap = {\n block: {\n ...recordMapA.block,\n ...recordMapB.block\n },\n collection: {\n ...recordMapA.collection,\n ...recordMapB.collection\n },\n collection_view: {\n ...recordMapA.collection_view,\n ...recordMapB.collection_view\n },\n notion_user: {\n ...recordMapA.notion_user,\n ...recordMapB.notion_user\n },\n collection_query: {\n ...recordMapA.collection_query,\n ...recordMapB.collection_query\n },\n signed_urls: {\n ...recordMapA.signed_urls,\n ...recordMapB.signed_urls\n },\n preview_images: {\n ...recordMapA.preview_images,\n ...recordMapB.preview_images\n }\n }\n\n return mergedRecordMap\n}\n","export const formatDate = (input: string | number, { month = 'short' }: { month?: 'long' | 'short' } = {}) => {\n const date = new Date(input)\n const monthLocale = date.toLocaleString('en-US', { month })\n return `${date.getUTCFullYear()} ${monthLocale} ${date.getUTCDate()} ${date.getUTCHours()}:${date.getUTCMinutes()}`\n}\n","import { formatDate } from './format-date'\n\nexport interface NotionDateTime {\n type: 'datetime'\n start_date: string\n start_time?: string\n time_zone?: string\n}\n\nexport const formatNotionDateTime = (datetime: NotionDateTime) => {\n const dateString = `${datetime.start_time || ''} ${datetime.start_date} ${datetime.time_zone || ''}`\n return formatDate(dateString)\n}\n","import { Block, ExtendedRecordMap, PageBlock } from '@texonom/ntypes'\n\nimport { getBlockTitle } from './get-block-title'\nimport { getPageTableOfContents } from './get-page-table-of-contents'\n\ntype EstimatePageReadTimeOptions = {\n wordsPerMinute?: number\n imageReadTimeInSeconds?: number\n}\n\ntype ContentStats = {\n numWords: number\n numImages: number\n}\n\ntype PageReadTimeEstimate = ContentStats & {\n totalWordsReadTimeInMinutes: number\n totalImageReadTimeInMinutes: number\n totalReadTimeInMinutes: number\n}\n\n/**\n * Returns an estimate for the time it would take for a person to read the content\n * in the given Notion page.\n *\n * Uses Medium for inspiration.\n *\n * @see https://blog.medium.com/read-time-and-you-bc2048ab620c\n * @see https://github.com/ngryman/reading-time\n *\n * TODO: handle non-english content.\n */\nexport function estimatePageReadTime(\n block: Block,\n recordMap: ExtendedRecordMap,\n { wordsPerMinute = 275, imageReadTimeInSeconds = 12 }: EstimatePageReadTimeOptions = {}\n): PageReadTimeEstimate {\n const stats = getBlockContentStats(block, recordMap)\n const totalWordsReadTimeInMinutes = stats.numWords / wordsPerMinute\n const totalImageReadTimeInSeconds =\n stats.numImages > 10\n ? (stats.numImages / 2) * (imageReadTimeInSeconds + 3) + (stats.numImages - 10) * 3 // n/2(a+b) + 3 sec/image\n : (stats.numImages / 2) * (2 * imageReadTimeInSeconds + (1 - stats.numImages)) // n/2[2a+(n-1)d]\n const totalImageReadTimeInMinutes = totalImageReadTimeInSeconds / 60\n\n const totalReadTimeInMinutes = totalWordsReadTimeInMinutes + totalImageReadTimeInMinutes\n\n return {\n ...stats,\n totalWordsReadTimeInMinutes,\n totalImageReadTimeInMinutes,\n totalReadTimeInMinutes\n }\n}\n\n/**\n * Same as `estimatePageReadTime`, except it returns the total time estimate as\n * a human-readable string.\n *\n * For example, \"9 minutes\" or \"less than a minute\".\n */\nexport function estimatePageReadTimeAsHumanizedString(\n block: Block,\n recordMap: ExtendedRecordMap,\n opts: EstimatePageReadTimeOptions\n) {\n const estimate = estimatePageReadTime(block, recordMap, opts)\n return humanizeReadTime(estimate.totalReadTimeInMinutes)\n}\n\nfunction getBlockContentStats(block: Block, recordMap: ExtendedRecordMap): ContentStats {\n const stats: ContentStats = {\n numWords: 0,\n numImages: 0\n }\n\n if (!block) return stats\n\n for (const childId of block.content || []) {\n const child = recordMap.block[childId]?.value\n let recurse = false\n if (!child) continue\n\n switch (child.type) {\n case 'quote':\n // fallthrough\n case 'alias':\n // fallthrough\n case 'header':\n // fallthrough\n case 'sub_header':\n // fallthrough\n case 'sub_sub_header': {\n const title = getBlockTitle(child, recordMap)\n stats.numWords += countWordsInText(title)\n break\n }\n\n case 'callout':\n // fallthrough\n case 'toggle':\n // fallthrough\n case 'to_do':\n // fallthrough\n case 'bulleted_list':\n // fallthrough\n case 'numbered_list':\n // fallthrough\n case 'text': {\n const title = getBlockTitle(child, recordMap)\n stats.numWords += countWordsInText(title)\n recurse = true\n break\n }\n\n case 'embed':\n // fallthrough\n case 'tweet':\n // fallthrough\n case 'maps':\n // fallthrough\n case 'pdf':\n // fallthrough\n case 'figma':\n // fallthrough\n case 'typeform':\n // fallthrough\n case 'codepen':\n // fallthrough\n case 'excalidraw':\n // fallthrough\n case 'gist':\n // fallthrough\n case 'video':\n // fallthrough\n case 'drive':\n // fallthrough\n case 'audio':\n // fallthrough\n case 'file':\n // fallthrough\n case 'image':\n // treat all embeds as images\n stats.numImages += 1\n break\n\n case 'bookmark':\n // treat bookmarks as quarter images since they aren't as content-ful as embedd images\n stats.numImages += 0.25\n break\n\n case 'code':\n // treat code blocks as double the complexity of images\n stats.numImages += 2\n break\n\n case 'table':\n // fallthrough\n case 'collection_view':\n // treat collection views as double the complexity of images\n stats.numImages += 2\n break\n\n case 'column':\n // fallthrough\n case 'column_list':\n // fallthrough\n case 'transclusion_container':\n recurse = true\n break\n\n case 'table_of_contents': {\n const page = block as PageBlock\n if (!page) continue\n\n const toc = getPageTableOfContents(page, recordMap)\n for (const tocItem of toc) stats.numWords += countWordsInText(tocItem.text)\n\n break\n }\n\n case 'transclusion_reference': {\n const referencePointerId = child?.format?.transclusion_reference_pointer?.id\n\n if (!referencePointerId) continue\n\n const referenceBlock = recordMap.block[referencePointerId]?.value\n if (referenceBlock) mergeContentStats(stats, getBlockContentStats(referenceBlock, recordMap))\n\n break\n }\n\n default:\n // ignore unrecognized blocks\n break\n }\n\n if (recurse) mergeContentStats(stats, getBlockContentStats(child, recordMap))\n }\n\n return stats\n}\n\nfunction mergeContentStats(statsA: ContentStats, statsB: ContentStats) {\n statsA.numWords += statsB.numWords\n statsA.numImages += statsB.numImages\n}\n\nfunction countWordsInText(text: string): number {\n if (!text) return 0\n\n return (text.match(/\\w+/g) || []).length\n}\n\nfunction humanizeReadTime(time: number): string {\n if (time < 0.5) return 'less than a minute'\n\n if (time < 1.5) return '1 minute'\n\n return `${Math.ceil(time)} minutes`\n}\n","import { Block } from '@texonom/ntypes'\n\nexport const defaultMapImageUrl = (url: string, block: Block): string | null => {\n if (!url) return null\n\n if (url.startsWith('data:')) return url\n\n // more recent versions of notion don't proxy unsplash images\n if (url.startsWith('https://images.unsplash.com')) return url\n\n try {\n const u = new URL(url)\n\n if (u.pathname.startsWith('/secure.notion-static.com') && u.hostname.endsWith('.amazonaws.com'))\n if (\n u.searchParams.has('X-Amz-Credential') &&\n u.searchParams.has('X-Amz-Signature') &&\n u.searchParams.has('X-Amz-Algorithm')\n )\n // if the URL is already signed, then use it as-is\n return url\n } catch {\n // ignore invalid urls\n }\n\n if (url.startsWith('/images')) url = `https://www.notion.so${url}`\n\n url = `https://www.notion.so${url.startsWith('/image') ? url : `/image/${encodeURIComponent(url)}`}`\n\n const notionImageUrlV2 = new URL(url)\n let table = block.parent_table === 'space' ? 'block' : block.parent_table\n if (table === 'collection' || table === 'team') table = 'block'\n\n notionImageUrlV2.searchParams.set('table', table)\n notionImageUrlV2.searchParams.set('id', block.id)\n notionImageUrlV2.searchParams.set('cache', 'v2')\n\n url = notionImageUrlV2.toString()\n\n return url\n}\n","export const defaultMapPageUrl = (rootPageId?: string) => (pageId: string) => {\n pageId = (pageId || '').replace(/-/g, '')\n\n if (rootPageId && pageId === rootPageId) return '/'\n else return `/${pageId}`\n}\n"],"mappings":"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","names":["getTextContent","text","_a","prev","current","getBlockCollectionId","block","recordMap","_a","_b","_c","_d","_e","_f","_g","collectionId","collectionViewId","collectionView","getBlockTitle","block","recordMap","_a","_b","getTextContent","collectionId","getBlockCollectionId","collection","getBlockIcon","block","recordMap","_a","_b","_c","collectionId","getBlockCollectionId","collection","getPageTitle","recordMap","_a","pageBlock","getBlockTitle","getPageProperty","propertyName","block","recordMap","_a","collection","propertyNameL","propertyId","key","_b","type","content","getTextContent","formatDate","start_date","start_time","end_date","end_time","startTime","endTime","e","getDateValue","prop","v","value","getBlockParentPage","block","recordMap","inclusive","_a","_b","currentRecord","parentId","parentTable","getBlockParent","_c","_d","indentLevels","getPageTableOfContents","page","recordMap","_a","toc","blockId","_b","block","type","getTextContent","indentLevelStack","tocItem","indentLevel","actual","prevIndent","prevActual","prevEffective","getPageContentBlockIds","recordMap","blockId","locust","rootBlockId","contentBlockIds","addContentBlocks","_a","_b","block","content","type","properties","format","key","p","d","value","referenceId","getPageContentUserIds","contentUserIDs","idToUuid","id","pageIdRe","pageId2Re","parsePageId","id","uuid","match","idToUuid","match2","uuidToId","uuid","findAncestors","recordMap","block","list","_a","_b","table","getAllInSpace","_0","_1","_2","_3","__async","startPageId","getPage","getBlocks","fetchCollections","startRecordMap","fetchOption","maxPage","concurrency","collectionConcurrency","_a","pageMap","recordMap","tempRecordMap","targetBlocks","missing","blockMap","root","contentBlockIds","getPageContentBlockIds","contentBlockID","block","obj","__spreadValues","pageLength","type","blockIds","promises","blockId","getPageSync","pageRecordMap","sleep","pageTree","recursivePageTree","_b","_c","_d","ancestors","ancestor","current","contentBlockId","childrenMap","collectionQuery","childrenPages","pageId","_e","_f","_g","_h","_i","_j","_k","_l","_m","_n","_o","collectionMap","collectionViewMap","collectionQueryMap","viewId","ancesters","findAncestors","ancester","collection","targetBlock","alias","responseMap","ms","resolve","normalizeTitle","title","getCanonicalPageId","pageId","recordMap","uuid","_a","_b","id","uuidToId","block","slug","getPageProperty","normalizeTitle","getBlockTitle","collection","getTextContent","getPageBreadcrumbs","recordMap","activePageId","_a","blockMap","breadcrumbs","currentPageId","block","title","getBlockTitle","icon","getBlockIcon","parentBlock","getBlockParentPage","parentId","isUrl","getPageImageUrls","recordMap","mapImageUrl","imageUrls","blockId","_a","_b","_c","_d","_e","_f","_g","_h","_i","_j","_k","block","images","source","pageIcon","getBlockIcon","isUrl","url","mem","normalizeUrlImpl","normalizeUrl","url","u","subUrl","normalizedSubUrl","err","mergeRecordMaps","recordMapA","recordMapB","__spreadValues","formatDate","input","month","date","monthLocale","formatNotionDateTime","datetime","dateString","formatDate","estimatePageReadTime","block","recordMap","wordsPerMinute","imageReadTimeInSeconds","stats","getBlockContentStats","totalWordsReadTimeInMinutes","totalImageReadTimeInMinutes","totalReadTimeInMinutes","__spreadProps","__spreadValues","estimatePageReadTimeAsHumanizedString","opts","estimate","humanizeReadTime","_a","_b","_c","_d","childId","child","recurse","title","getBlockTitle","countWordsInText","page","toc","getPageTableOfContents","tocItem","referencePointerId","referenceBlock","mergeContentStats","statsA","statsB","text","time","defaultMapImageUrl","url","block","u","e","notionImageUrlV2","table","defaultMapPageUrl","rootPageId","pageId"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@texonom/nutils",
|
|
3
|
-
"version": "1.2.
|
|
3
|
+
"version": "1.2.12",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "Useful utilities for working with Notion data. Isomorphic.",
|
|
6
6
|
"repository": "texonom/notion-node",
|
|
@@ -20,14 +20,14 @@
|
|
|
20
20
|
"build"
|
|
21
21
|
],
|
|
22
22
|
"engines": {
|
|
23
|
-
"node": ">=
|
|
23
|
+
"node": ">=20.11.0"
|
|
24
24
|
},
|
|
25
25
|
"dependencies": {
|
|
26
26
|
"is-url-superb": "^6.1.0",
|
|
27
27
|
"mem": "^9.0.2",
|
|
28
28
|
"normalize-url": "^8.0.0",
|
|
29
|
-
"p-queue": "^
|
|
30
|
-
"@texonom/ntypes": "^1.2.
|
|
29
|
+
"p-queue": "^8.0.1",
|
|
30
|
+
"@texonom/ntypes": "^1.2.12"
|
|
31
31
|
},
|
|
32
32
|
"standard-version": {
|
|
33
33
|
"skip": {
|