@texonom/nutils 1.2.0-alpha.0 → 1.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/build/.tsbuildinfo +1 -1
- package/build/get-all-in-space.d.ts +32 -0
- package/build/get-all-in-space.d.ts.map +1 -0
- package/build/get-all-pages-in-space.d.ts +5 -5
- package/build/get-all-pages-in-space.d.ts.map +1 -1
- package/build/get-block-parent-page.d.ts +4 -1
- package/build/get-block-parent-page.d.ts.map +1 -1
- package/build/get-canonical-page-id.d.ts +1 -1
- package/build/get-canonical-page-id.d.ts.map +1 -1
- package/build/get-page-content-block-ids.d.ts +1 -1
- package/build/get-page-content-block-ids.d.ts.map +1 -1
- package/build/get-page-title.d.ts +1 -1
- package/build/get-page-title.d.ts.map +1 -1
- package/build/index.d.ts +25 -8
- package/build/index.d.ts.map +1 -1
- package/build/index.js +1 -1
- package/build/index.js.map +1 -1
- package/build/map-image-url.d.ts +3 -0
- package/build/map-image-url.d.ts.map +1 -0
- package/build/map-page-url.d.ts +2 -0
- package/build/map-page-url.d.ts.map +1 -0
- package/build/merge-record-maps.d.ts +1 -1
- package/build/merge-record-maps.d.ts.map +1 -1
- package/package.json +2 -2
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2022 Seonglae Cho
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/build/.tsbuildinfo
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"program":{"fileNames":["../../../node_modules/.pnpm/typescript@5.1.6/node_modules/typescript/lib/lib.es5.d.ts","../../../node_modules/.pnpm/typescript@5.1.6/node_modules/typescript/lib/lib.es2015.d.ts","../../../node_modules/.pnpm/typescript@5.1.6/node_modules/typescript/lib/lib.es2016.d.ts","../../../node_modules/.pnpm/typescript@5.1.6/node_modules/typescript/lib/lib.es2017.d.ts","../../../node_modules/.pnpm/typescript@5.1.6/node_modules/typescript/lib/lib.es2018.d.ts","../../../node_modules/.pnpm/typescript@5.1.6/node_modules/typescript/lib/lib.es2019.d.ts","../../../node_modules/.pnpm/typescript@5.1.6/node_modules/typescript/lib/lib.es2020.d.ts","../../../node_modules/.pnpm/typescript@5.1.6/node_modules/typescript/lib/lib.es2021.d.ts","../../../node_modules/.pnpm/typescript@5.1.6/node_modules/typescript/lib/lib.es2022.d.ts","../../../node_modules/.pnpm/typescript@5.1.6/node_modules/typescript/lib/lib.es2023.d.ts","../../../node_modules/.pnpm/typescript@5.1.6/node_modules/typescript/lib/lib.esnext.d.ts","../../../node_modules/.pnpm/typescript@5.1.6/node_modules/typescript/lib/lib.dom.d.ts","../../../node_modules/.pnpm/typescript@5.1.6/node_modules/typescript/lib/lib.es2015.core.d.ts","../../../node_modules/.pnpm/typescript@5.1.6/node_modules/typescript/lib/lib.es2015.collection.d.ts","../../../node_modules/.pnpm/typescript@5.1.6/node_modules/typescript/lib/lib.es2015.generator.d.ts","../../../node_modules/.pnpm/typescript@5.1.6/node_modules/typescript/lib/lib.es2015.iterable.d.ts","../../../node_modules/.pnpm/typescript@5.1.6/node_modules/typescript/lib/lib.es2015.promise.d.ts","../../../node_modules/.pnpm/typescript@5.1.6/node_modules/typescript/lib/lib.es2015.proxy.d.ts","../../../node_modules/.pnpm/typescript@5.1.6/node_modules/typescript/lib/lib.es2015.reflect.d.ts","../../../node_modules/.pnpm/typescript@5.1.6/node_modules/typescript/lib/lib.es2015.symbol.d.ts","../../../node_modules/.pnpm/typescript@5.1.6/node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../../../node_modules/.pnpm/typescript@5.1.6/node_modules/typescript/lib/lib.es2016.array.include.d.ts","../../../node_modules/.pnpm/typescript@5.1.6/node_modules/typescript/lib/lib.es2017.object.d.ts","../../../node_modules/.pnpm/typescript@5.1.6/node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","../../../node_modules/.pnpm/typescript@5.1.6/node_modules/typescript/lib/lib.es2017.string.d.ts","../../../node_modules/.pnpm/typescript@5.1.6/node_modules/typescript/lib/lib.es2017.intl.d.ts","../../../node_modules/.pnpm/typescript@5.1.6/node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","../../../node_modules/.pnpm/typescript@5.1.6/node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","../../../node_modules/.pnpm/typescript@5.1.6/node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","../../../node_modules/.pnpm/typescript@5.1.6/node_modules/typescript/lib/lib.es2018.intl.d.ts","../../../node_modules/.pnpm/typescript@5.1.6/node_modules/typescript/lib/lib.es2018.promise.d.ts","../../../node_modules/.pnpm/typescript@5.1.6/node_modules/typescript/lib/lib.es2018.regexp.d.ts","../../../node_modules/.pnpm/typescript@5.1.6/node_modules/typescript/lib/lib.es2019.array.d.ts","../../../node_modules/.pnpm/typescript@5.1.6/node_modules/typescript/lib/lib.es2019.object.d.ts","../../../node_modules/.pnpm/typescript@5.1.6/node_modules/typescript/lib/lib.es2019.string.d.ts","../../../node_modules/.pnpm/typescript@5.1.6/node_modules/typescript/lib/lib.es2019.symbol.d.ts","../../../node_modules/.pnpm/typescript@5.1.6/node_modules/typescript/lib/lib.es2019.intl.d.ts","../../../node_modules/.pnpm/typescript@5.1.6/node_modules/typescript/lib/lib.es2020.bigint.d.ts","../../../node_modules/.pnpm/typescript@5.1.6/node_modules/typescript/lib/lib.es2020.date.d.ts","../../../node_modules/.pnpm/typescript@5.1.6/node_modules/typescript/lib/lib.es2020.promise.d.ts","../../../node_modules/.pnpm/typescript@5.1.6/node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","../../../node_modules/.pnpm/typescript@5.1.6/node_modules/typescript/lib/lib.es2020.string.d.ts","../../../node_modules/.pnpm/typescript@5.1.6/node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","../../../node_modules/.pnpm/typescript@5.1.6/node_modules/typescript/lib/lib.es2020.intl.d.ts","../../../node_modules/.pnpm/typescript@5.1.6/node_modules/typescript/lib/lib.es2020.number.d.ts","../../../node_modules/.pnpm/typescript@5.1.6/node_modules/typescript/lib/lib.es2021.promise.d.ts","../../../node_modules/.pnpm/typescript@5.1.6/node_modules/typescript/lib/lib.es2021.string.d.ts","../../../node_modules/.pnpm/typescript@5.1.6/node_modules/typescript/lib/lib.es2021.weakref.d.ts","../../../node_modules/.pnpm/typescript@5.1.6/node_modules/typescript/lib/lib.es2021.intl.d.ts","../../../node_modules/.pnpm/typescript@5.1.6/node_modules/typescript/lib/lib.es2022.array.d.ts","../../../node_modules/.pnpm/typescript@5.1.6/node_modules/typescript/lib/lib.es2022.error.d.ts","../../../node_modules/.pnpm/typescript@5.1.6/node_modules/typescript/lib/lib.es2022.intl.d.ts","../../../node_modules/.pnpm/typescript@5.1.6/node_modules/typescript/lib/lib.es2022.object.d.ts","../../../node_modules/.pnpm/typescript@5.1.6/node_modules/typescript/lib/lib.es2022.sharedmemory.d.ts","../../../node_modules/.pnpm/typescript@5.1.6/node_modules/typescript/lib/lib.es2022.string.d.ts","../../../node_modules/.pnpm/typescript@5.1.6/node_modules/typescript/lib/lib.es2022.regexp.d.ts","../../../node_modules/.pnpm/typescript@5.1.6/node_modules/typescript/lib/lib.es2023.array.d.ts","../../../node_modules/.pnpm/typescript@5.1.6/node_modules/typescript/lib/lib.esnext.intl.d.ts","../../../node_modules/.pnpm/typescript@5.1.6/node_modules/typescript/lib/lib.decorators.d.ts","../../../node_modules/.pnpm/typescript@5.1.6/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/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","../../../node_modules/.pnpm/eventemitter3@4.0.7/node_modules/eventemitter3/index.d.ts","../../../node_modules/.pnpm/p-queue@7.3.4/node_modules/p-queue/dist/queue.d.ts","../../../node_modules/.pnpm/p-queue@7.3.4/node_modules/p-queue/dist/options.d.ts","../../../node_modules/.pnpm/p-queue@7.3.4/node_modules/p-queue/dist/priority-queue.d.ts","../../../node_modules/.pnpm/p-queue@7.3.4/node_modules/p-queue/dist/index.d.ts","../src/id-to-uuid.ts","../src/parse-page-id.ts","../src/get-all-pages-in-space.ts","../src/get-block-icon.ts","../src/get-block-parent-page.ts","../src/get-page-property.ts","../src/normalize-title.ts","../src/uuid-to-id.ts","../src/get-canonical-page-id.ts","../src/get-date-value.ts","../src/get-page-breadcrumbs.ts","../src/get-page-content-block-ids.ts","../../../node_modules/.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","../../../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/index.ts","../../../node_modules/.pnpm/@vitest+utils@0.34.1/node_modules/@vitest/utils/dist/types.d.ts","../../../node_modules/.pnpm/@vitest+utils@0.34.1/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.1/node_modules/@vitest/utils/dist/index.d.ts","../../../node_modules/.pnpm/@vitest+runner@0.34.1/node_modules/@vitest/runner/dist/tasks-abce80cc.d.ts","../../../node_modules/.pnpm/@vitest+runner@0.34.1/node_modules/@vitest/runner/dist/types.d.ts","../../../node_modules/.pnpm/@vitest+runner@0.34.1/node_modules/@vitest/runner/dist/index.d.ts","../../../node_modules/.pnpm/@vitest+snapshot@0.34.1/node_modules/@vitest/snapshot/dist/environment-38cdead3.d.ts","../../../node_modules/.pnpm/@vitest+snapshot@0.34.1/node_modules/@vitest/snapshot/dist/index-6461367c.d.ts","../../../node_modules/.pnpm/@vitest+snapshot@0.34.1/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.1/node_modules/@vitest/utils/dist/diff.d.ts","../../../node_modules/.pnpm/@vitest+utils@0.34.1/node_modules/@vitest/utils/diff.d.ts","../../../node_modules/.pnpm/@vitest+expect@0.34.1/node_modules/@vitest/expect/dist/index.d.ts","../../../node_modules/.pnpm/@types+node@18.17.1/node_modules/@types/node/assert.d.ts","../../../node_modules/.pnpm/@types+node@18.17.1/node_modules/@types/node/assert/strict.d.ts","../../../node_modules/.pnpm/@types+node@18.17.1/node_modules/@types/node/globals.d.ts","../../../node_modules/.pnpm/@types+node@18.17.1/node_modules/@types/node/async_hooks.d.ts","../../../node_modules/.pnpm/@types+node@18.17.1/node_modules/@types/node/buffer.d.ts","../../../node_modules/.pnpm/@types+node@18.17.1/node_modules/@types/node/child_process.d.ts","../../../node_modules/.pnpm/@types+node@18.17.1/node_modules/@types/node/cluster.d.ts","../../../node_modules/.pnpm/@types+node@18.17.1/node_modules/@types/node/console.d.ts","../../../node_modules/.pnpm/@types+node@18.17.1/node_modules/@types/node/constants.d.ts","../../../node_modules/.pnpm/@types+node@18.17.1/node_modules/@types/node/crypto.d.ts","../../../node_modules/.pnpm/@types+node@18.17.1/node_modules/@types/node/dgram.d.ts","../../../node_modules/.pnpm/@types+node@18.17.1/node_modules/@types/node/diagnostics_channel.d.ts","../../../node_modules/.pnpm/@types+node@18.17.1/node_modules/@types/node/dns.d.ts","../../../node_modules/.pnpm/@types+node@18.17.1/node_modules/@types/node/dns/promises.d.ts","../../../node_modules/.pnpm/@types+node@18.17.1/node_modules/@types/node/domain.d.ts","../../../node_modules/.pnpm/@types+node@18.17.1/node_modules/@types/node/dom-events.d.ts","../../../node_modules/.pnpm/@types+node@18.17.1/node_modules/@types/node/events.d.ts","../../../node_modules/.pnpm/@types+node@18.17.1/node_modules/@types/node/fs.d.ts","../../../node_modules/.pnpm/@types+node@18.17.1/node_modules/@types/node/fs/promises.d.ts","../../../node_modules/.pnpm/@types+node@18.17.1/node_modules/@types/node/http.d.ts","../../../node_modules/.pnpm/@types+node@18.17.1/node_modules/@types/node/http2.d.ts","../../../node_modules/.pnpm/@types+node@18.17.1/node_modules/@types/node/https.d.ts","../../../node_modules/.pnpm/@types+node@18.17.1/node_modules/@types/node/inspector.d.ts","../../../node_modules/.pnpm/@types+node@18.17.1/node_modules/@types/node/module.d.ts","../../../node_modules/.pnpm/@types+node@18.17.1/node_modules/@types/node/net.d.ts","../../../node_modules/.pnpm/@types+node@18.17.1/node_modules/@types/node/os.d.ts","../../../node_modules/.pnpm/@types+node@18.17.1/node_modules/@types/node/path.d.ts","../../../node_modules/.pnpm/@types+node@18.17.1/node_modules/@types/node/perf_hooks.d.ts","../../../node_modules/.pnpm/@types+node@18.17.1/node_modules/@types/node/process.d.ts","../../../node_modules/.pnpm/@types+node@18.17.1/node_modules/@types/node/punycode.d.ts","../../../node_modules/.pnpm/@types+node@18.17.1/node_modules/@types/node/querystring.d.ts","../../../node_modules/.pnpm/@types+node@18.17.1/node_modules/@types/node/readline.d.ts","../../../node_modules/.pnpm/@types+node@18.17.1/node_modules/@types/node/readline/promises.d.ts","../../../node_modules/.pnpm/@types+node@18.17.1/node_modules/@types/node/repl.d.ts","../../../node_modules/.pnpm/@types+node@18.17.1/node_modules/@types/node/stream.d.ts","../../../node_modules/.pnpm/@types+node@18.17.1/node_modules/@types/node/stream/promises.d.ts","../../../node_modules/.pnpm/@types+node@18.17.1/node_modules/@types/node/stream/consumers.d.ts","../../../node_modules/.pnpm/@types+node@18.17.1/node_modules/@types/node/stream/web.d.ts","../../../node_modules/.pnpm/@types+node@18.17.1/node_modules/@types/node/string_decoder.d.ts","../../../node_modules/.pnpm/@types+node@18.17.1/node_modules/@types/node/test.d.ts","../../../node_modules/.pnpm/@types+node@18.17.1/node_modules/@types/node/timers.d.ts","../../../node_modules/.pnpm/@types+node@18.17.1/node_modules/@types/node/timers/promises.d.ts","../../../node_modules/.pnpm/@types+node@18.17.1/node_modules/@types/node/tls.d.ts","../../../node_modules/.pnpm/@types+node@18.17.1/node_modules/@types/node/trace_events.d.ts","../../../node_modules/.pnpm/@types+node@18.17.1/node_modules/@types/node/tty.d.ts","../../../node_modules/.pnpm/@types+node@18.17.1/node_modules/@types/node/url.d.ts","../../../node_modules/.pnpm/@types+node@18.17.1/node_modules/@types/node/util.d.ts","../../../node_modules/.pnpm/@types+node@18.17.1/node_modules/@types/node/v8.d.ts","../../../node_modules/.pnpm/@types+node@18.17.1/node_modules/@types/node/vm.d.ts","../../../node_modules/.pnpm/@types+node@18.17.1/node_modules/@types/node/wasi.d.ts","../../../node_modules/.pnpm/@types+node@18.17.1/node_modules/@types/node/worker_threads.d.ts","../../../node_modules/.pnpm/@types+node@18.17.1/node_modules/@types/node/zlib.d.ts","../../../node_modules/.pnpm/@types+node@18.17.1/node_modules/@types/node/globals.global.d.ts","../../../node_modules/.pnpm/@types+node@18.17.1/node_modules/@types/node/index.d.ts","../../../node_modules/.pnpm/esbuild@0.18.12/node_modules/esbuild/lib/main.d.ts","../../../node_modules/.pnpm/vite@4.4.8_@types+node@18.17.1/node_modules/vite/types/metadata.d.ts","../../../node_modules/.pnpm/vite@4.4.8_@types+node@18.17.1/node_modules/vite/types/hmrpayload.d.ts","../../../node_modules/.pnpm/vite@4.4.8_@types+node@18.17.1/node_modules/vite/types/customevent.d.ts","../../../node_modules/.pnpm/rollup@3.26.2/node_modules/rollup/dist/rollup.d.ts","../../../node_modules/.pnpm/vite@4.4.8_@types+node@18.17.1/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.26/node_modules/postcss/lib/previous-map.d.ts","../../../node_modules/.pnpm/postcss@8.4.26/node_modules/postcss/lib/input.d.ts","../../../node_modules/.pnpm/postcss@8.4.26/node_modules/postcss/lib/css-syntax-error.d.ts","../../../node_modules/.pnpm/postcss@8.4.26/node_modules/postcss/lib/declaration.d.ts","../../../node_modules/.pnpm/postcss@8.4.26/node_modules/postcss/lib/root.d.ts","../../../node_modules/.pnpm/postcss@8.4.26/node_modules/postcss/lib/warning.d.ts","../../../node_modules/.pnpm/postcss@8.4.26/node_modules/postcss/lib/lazy-result.d.ts","../../../node_modules/.pnpm/postcss@8.4.26/node_modules/postcss/lib/no-work-result.d.ts","../../../node_modules/.pnpm/postcss@8.4.26/node_modules/postcss/lib/processor.d.ts","../../../node_modules/.pnpm/postcss@8.4.26/node_modules/postcss/lib/result.d.ts","../../../node_modules/.pnpm/postcss@8.4.26/node_modules/postcss/lib/document.d.ts","../../../node_modules/.pnpm/postcss@8.4.26/node_modules/postcss/lib/rule.d.ts","../../../node_modules/.pnpm/postcss@8.4.26/node_modules/postcss/lib/node.d.ts","../../../node_modules/.pnpm/postcss@8.4.26/node_modules/postcss/lib/comment.d.ts","../../../node_modules/.pnpm/postcss@8.4.26/node_modules/postcss/lib/container.d.ts","../../../node_modules/.pnpm/postcss@8.4.26/node_modules/postcss/lib/at-rule.d.ts","../../../node_modules/.pnpm/postcss@8.4.26/node_modules/postcss/lib/list.d.ts","../../../node_modules/.pnpm/postcss@8.4.26/node_modules/postcss/lib/postcss.d.ts","../../../node_modules/.pnpm/vite@4.4.8_@types+node@18.17.1/node_modules/vite/dist/node/index.d.ts","../../../node_modules/.pnpm/vite@4.4.8_@types+node@18.17.1/node_modules/vite/types/hot.d.ts","../../../node_modules/.pnpm/vite-node@0.34.1_@types+node@18.17.1/node_modules/vite-node/dist/types.d-7442d07f.d.ts","../../../node_modules/.pnpm/vite-node@0.34.1_@types+node@18.17.1/node_modules/vite-node/dist/types-e8623e9c.d.ts","../../../node_modules/.pnpm/vite-node@0.34.1_@types+node@18.17.1/node_modules/vite-node/dist/index.d.ts","../../../node_modules/.pnpm/@vitest+runner@0.34.1/node_modules/@vitest/runner/dist/utils.d.ts","../../../node_modules/.pnpm/@vitest+runner@0.34.1/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.1_@types+node@18.17.1/node_modules/vite-node/dist/client.d.ts","../../../node_modules/.pnpm/@vitest+snapshot@0.34.1/node_modules/@vitest/snapshot/dist/manager.d.ts","../../../node_modules/.pnpm/@vitest+snapshot@0.34.1/node_modules/@vitest/snapshot/manager.d.ts","../../../node_modules/.pnpm/vite-node@0.34.1_@types+node@18.17.1/node_modules/vite-node/dist/server.d.ts","../../../node_modules/.pnpm/vitest@0.34.1/node_modules/vitest/dist/types-3c7dbfa5.d.ts","../../../node_modules/.pnpm/tinyspy@2.1.1/node_modules/tinyspy/dist/index.d.ts","../../../node_modules/.pnpm/@vitest+spy@0.34.1/node_modules/@vitest/spy/dist/index.d.ts","../../../node_modules/.pnpm/@vitest+snapshot@0.34.1/node_modules/@vitest/snapshot/dist/environment.d.ts","../../../node_modules/.pnpm/@vitest+snapshot@0.34.1/node_modules/@vitest/snapshot/environment.d.ts","../../../node_modules/.pnpm/vitest@0.34.1/node_modules/vitest/dist/config.d.ts","../../../node_modules/.pnpm/vitest@0.34.1/node_modules/vitest/dist/index.d.ts","../src/normalize-url.test.ts","../src/parse-page-id.test.ts"],"fileInfos":[{"version":"f59215c5f1d886b05395ee7aca73e0ac69ddfad2843aa88530e797879d511bad","affectsGlobalScope":true},"45b7ab580deca34ae9729e97c13cfd999df04416a79116c3bfb483804f85ded4","dc48272d7c333ccf58034c0026162576b7d50ea0e69c3b9292f803fc20720fd5","27147504487dc1159369da4f4da8a26406364624fa9bc3db632f7d94a5bae2c3","5e1c4c362065a6b95ff952c0eab010f04dcd2c3494e813b493ecfd4fcb9fc0d8","68d73b4a11549f9c0b7d352d10e91e5dca8faa3322bfb77b661839c42b1ddec7","5efce4fc3c29ea84e8928f97adec086e3dc876365e0982cc8479a07954a3efd4","feecb1be483ed332fad555aff858affd90a48ab19ba7272ee084704eb7167569","5514e54f17d6d74ecefedc73c504eadffdeda79c7ea205cf9febead32d45c4bc","f4e736d6c8d69ae5b3ab0ddfcaa3dc365c3e76909d6660af5b4e979b3934ac20","eeeb3aca31fbadef8b82502484499dfd1757204799a6f5b33116201c810676ec",{"version":"3dda5344576193a4ae48b8d03f105c86f20b2f2aff0a1d1fd7935f5d68649654","affectsGlobalScope":true},{"version":"9d9885c728913c1d16e0d2831b40341d6ad9a0ceecaabc55209b306ad9c736a5","affectsGlobalScope":true},{"version":"17bea081b9c0541f39dd1ae9bc8c78bdd561879a682e60e2f25f688c0ecab248","affectsGlobalScope":true},{"version":"4443e68b35f3332f753eacc66a04ac1d2053b8b035a0e0ac1d455392b5e243b3","affectsGlobalScope":true},{"version":"ab22100fdd0d24cfc2cc59d0a00fc8cf449830d9c4030dc54390a46bd562e929","affectsGlobalScope":true},{"version":"f7bd636ae3a4623c503359ada74510c4005df5b36de7f23e1db8a5c543fd176b","affectsGlobalScope":true},{"version":"ce691fb9e5c64efb9547083e4a34091bcbe5bdb41027e310ebba8f7d96a98671","affectsGlobalScope":true},{"version":"8d697a2a929a5fcb38b7a65594020fcef05ec1630804a33748829c5ff53640d0","affectsGlobalScope":true},{"version":"0c20f4d2358eb679e4ae8a4432bdd96c857a2960fd6800b21ec4008ec59d60ea","affectsGlobalScope":true},{"version":"36ae84ccc0633f7c0787bc6108386c8b773e95d3b052d9464a99cd9b8795fbec","affectsGlobalScope":true},{"version":"82d0d8e269b9eeac02c3bd1c9e884e85d483fcb2cd168bccd6bc54df663da031","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":"f06948deb2a51aae25184561c9640fb66afeddb34531a9212d011792b1d19e0a","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":"61ed9b6d07af959e745fb11f9593ecd743b279418cc8a99448ea3cd5f3b3eb22","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":"25de46552b782d43cb7284df22fe2a265de387cf0248b747a7a1b647d81861f6","affectsGlobalScope":true},{"version":"307c8b7ebbd7f23a92b73a4c6c0a697beca05b06b036c23a34553e5fe65e4fdc","affectsGlobalScope":true},{"version":"189c0703923150aa30673fa3de411346d727cc44a11c75d05d7cf9ef095daa22","affectsGlobalScope":true},{"version":"782dec38049b92d4e85c1585fbea5474a219c6984a35b004963b00beb1aab538","affectsGlobalScope":true},"d5a33c52d381fc00f5842490ffcf406e0f5b9dd801b016fadcb232bb4d347fdf","4673a6e2546f15b6c9664f9c360d74e79650dc9cb072a03a21b4690a1c236fb9","57aa4c028ae9d74d0908fd24563ccf6ce4ad3ec4b836fcbd69974adce60eb895","6b7f1146fc9396911257b68198cc560795f80945865d67657f30287affb516b7","b7061fe1870bdbe7145d836fedf1d04925de95c56128dbbf6e8fd2f7012618b5","b4e975657af1b37e99cac0753713e6425a16a7725790542838e9d48b0dd836b4","af7948154230b42e85802e14fbcf6b58e9fe15409178639f96be3c6990335f08","b798a298a669d510455b1c9fb6ae952333edaba0dae2672be9edd84aea4d600d","6679e3cd2e955ed99d12909354ed55974c4f8ec3844797bd933f1fcca74a3f7e",{"version":"361d16c23a2857601506d722a8ff0073ac3c2ea5f3e1ffbd64676542e1b59177","signature":"378fe5a4170fafa7f3baf5533e67278ba91511b985fce75743baae5750c27f92"},{"version":"2f06056f429b57986d7a52f78e4e3b9fd852f0fe31ade04cbed5f09aba862132","signature":"ce054f4c301b70dccc81c975be0fa43f0e79e1f75dfc8c562304d5b93708791d"},{"version":"b68e1de6cc26a369431c986be342071f7bb4ab205617f3e66f86ed97ddd81e38","signature":"1e5484e66de5a329c31f68da34c12b0b1f189c75fa8e99e2aa174d1488f74e0f"},{"version":"d113b7c3fe1b66396ba61ce7df71506e1d78b2ea7ba643bbd659b9bfce41cb50","signature":"95a7513b3da87413d3594496a6279eba65a8ed5233853edad1f63a467ecf7ed6"},{"version":"d4507bb82df8c3c507e9e3260321e52c7dd321f8a5b25b671a4dfdc9287840f6","signature":"e5ceebcc026a581c43c599603c1f5cfd2074396f28dd4fe317a4909d09db1351"},{"version":"848a218cdd6b872ba8ea0d0a4ac3c65b69daad4884ab798d6ab0603ccce6eea3","signature":"fe0a3dd89bcd2beb12d399d8b4efd4c3e1bfc501e331794ad515d06f66529a9c"},{"version":"31c633f267577c164025ba5e9544133c31dac20efc062cdfff71bddee0f8d4df","signature":"5bd79d155bbfd1d619f38079fc492d03671369ad38eda03cb270bac9f9f11c1e"},{"version":"150548c5a00159daf1c5887f87a90bfb5993f06d33c229892f31fff0e0370f08","signature":"2e2aac8b5e578a185d09b3d5e15018301bafa2918b75c45970165227ea978fc7"},"b80c780c52524beb13488942543972c8b0e54400e8b59cee0169f38d0fabb968","a77fbecee25688f568e18b43f8f54195d6c278a2a9a687ada5ab3d2f726524eb","e29f2b3a93ca3392fe29fa8e7b93985e854b44fe28e2b5c113f08296095bd6b7","d27956c8b392088a06d882e1edb58aab4d5cf5ab1229b73f99329ab21f352147","90dab905b7ea5ab629b62ec5a4153b3f44469aff5b1f6132edb2802537e5d8a7",{"version":"a0f55c5c0d1ff68027ba67ee7265c9c5177d0241e3c3e53e37085775f6251bd7","signature":"d0a63bb68f17178e7439ce310bac10ae6645eb36d75b4814228fb4baf89fd735"},{"version":"3964ee88e5e8b0236b00311cd3419cf1ad3f2b6cd00a7a8e0de471a218e31347","signature":"d5e23dc821e4ad1edbdfbf488b285715c379f8edb782a3d152492a3c26846454"},{"version":"9929350584fedc860cbdb62e7dcc56728bab609fa37a6ece9ca0d522b2d104c1","signature":"54f842d1b732f806af1148c4d9a1f877825c69940765436efa980f6e07c78105"},{"version":"8000b182fea653052e7a48682918413b93cc33f87dd7f3c4c74bf05805d08c6f","signature":"16ad8386f1a40f681389a7899257f6aab2d808a11ea83765c26ca1748ecc8870"},{"version":"21d073b526c461770c0a744f6515bde7e53af6d572892be9a9a9851b38d4afbf","signature":"4ba10429273c86123081ff55a49a2cd40faf68b36714f9ba1bb783ba15b44246"},{"version":"aad56beecf24fc25b3f58e12466ac27f6661a986447c1b573a29751c04065d58","signature":"0c00c464eb4aa41a2ca482beb539a52efb21591a541a80edcf4412eae086d2bf"},{"version":"617d99ddfa6823161323a3a71e6d9726f4c1047193e70aead84555ea8676f4ba","signature":"67b0a8d01a987e82acd88854bec6d6bb20716c8c210fdf7e4dffa52113431a79"},{"version":"f7ec0a656fb2b10f1118196c134247def69d5489f08ba45063c85524cbc002aa","signature":"7dbaa3160f1c22d6e229e3d38e18bf33ab7b50d19741931aa21b3a3bdd18b63f"},{"version":"87069934c3740a18779a74e72825c292922e75d4087099d991861ecc382ec7d0","signature":"0f30b17795f79ba753be77fe0152a7ccbc2f9183c0849a90b6303a25d60a0763"},{"version":"ea92952c6e512d46746b112ab1a93e7916e5f3b64510104d3598eabce8793ef6","signature":"0b587f15462dc13b7ee1322f3dd6d2309bef0977337e4effeae2ae6c37224660"},{"version":"1e7cd7cdcc29c9670b462ab9ab221d66c47818e62b22af982bcd502344527c19","signature":"8d9efd4466755e273a92a18d39b5558206f4653348b37627b3ca9135f830d9e9"},{"version":"00c7ddea224be69f96837059c56e6c85999f75991bffd7388558eba0fb2e0ae9","signature":"2c37671313573b1310d3af3675add12acba622f34cd1527306a7cb386a3be2f1"},"a87e5902fd92d16a80e0020ac03d6477bc2e7a6f5b0407a73aff6b7aa9e01d55",{"version":"dc7b885af6bd832c8d08622e645782a172a24bb97bf04c6d3db92b55baa20d0f","signature":"1898625646b2cf2e46529298f8ee1da27222180d2ac3261b174ed1c9e9256536"},{"version":"bee94f78f44164001ca6ff2d4fd723d8cd53bd92c102d7f9b2fcf24449e82bbc","signature":"fe543d080d1755c5e9482f0c98675f1ca4175b42a4c871e1587bf97fb0695642"},{"version":"8e7c73350999eb7cef5cca22d81b279028d151b9426546923fe65718373eb4dc","signature":"2f7dd5539c0964595409446eacc423f2fb5b7c0959f9ffd075eefde293ee3b0e"},"274b1fbd4d413479581ee864f2cb714e506f64725fca44afb1789707c509c953","b97b9034d922921957ec6a8193b68dfac3bf563520ebeb67738cd17bafd697a0",{"version":"b731511ef450ace6c32de6c14ac6585cdf75642aad5a3224ead8d4abc50585db","signature":"a3b67d6cc47a9c07b8701daf59dd4f763b280e79a1bc39443bf9b49a9555329b"},{"version":"1429bca7de08240da18d233e03e894191274b6078330f4a26e437f1c0fb13067","signature":"3f88ef93de6bb7cd11af06b1a9029da3e99c9c2ecdcc4ba576961bac88464dac"},{"version":"87c989972cabf18dc503903955d69db5d0f4da660fd9ee57f614b3fe40f0093f","signature":"f8e018232d5d4aef8e0ab20103155109e2dd7c93dc32c0857145dae5e3a687fe"},"19ce9ec982b542ef6d04d29ce678aad2fa52a67d8087e9c6cd95a4d6d98784c8","75d3b70589f5e14016a629feef0cd8deb55cab794e8c14bdbd5794c3b08a957e","c085e9aa62d1ae1375794c1fb927a445fa105fed891a7e24edbb1c3300f7384a","f315e1e65a1f80992f0509e84e4ae2df15ecd9ef73df975f7c98813b71e4c8da","5b9586e9b0b6322e5bfbd2c29bd3b8e21ab9d871f82346cb71020e3d84bae73e","64c9980a5c0f4627b7189eeece6816bb68e1c5c62a06d59ce6742f3328cfe854","acf1068cf9f861280669578ced81d6f6701609b6e8c46c983fd1c3b62ca1c129","5599d7a8727ecc5c463176c284c76b4a93ed79df3cc617548998d2d5c4b57c12","866223f4c6921da309cafb3441ff835d787ab52747825e2371b404458b1bd7b9","73b67d2e87ac7d7baaca64ca33fd1523c0b3c850cb7db5b9c014f1be7996bed1","5d5ae61fce1581fd6424269790a9071e3f8e69b029f5d0fcb46ce618c5dbc565","38a0ccc7106312a9f60e034e7cd8ac218774d8aa65f832cee3363a7e65f99325",{"version":"c3bc5d095c3c22fd20b5a6550b9c9a6d56c3ffbb87ef057ccce7764b6bed4428","affectsGlobalScope":true},"bff48cd8ff6b53727de810bd00a11e04975b1bc9c7677f3fe839159565ad1546","05c7aef6a4e496b93c2e682cced8903c0dfe6340d04f3fe616176e2782193435",{"version":"47c8c25482eb4844ac9c11758f9a6c0112ecb1c7216f91e3463772e73f989a63","affectsGlobalScope":true},"ba8691cf6bea9d53e6bf6cbc22af964a9633a21793981a1be3dce65e7a714d8b","a69c09dbea52352f479d3e7ac949fde3d17b195abe90b045d619f747b38d6d1a",{"version":"bce910d9164785c9f0d4dcea4be359f5f92130c7c7833dea6138ab1db310a1f9","affectsGlobalScope":true},"7d2e3fea24c712c99c03ad8f556abedbfe105f87f1be10b95dbd409d24bc05a3",{"version":"7c387a02bf156d8d45667134d32518ac3ca1b99ca50ca9deff2c1a03eb6d1a81","affectsGlobalScope":true},"3719525a8f6ab731e3dfd585d9f87df55ec7d50d461df84f74eb4d68bb165244","f993522fd7d01ae1ead930091fe35130b8415720d6c2123dc2a7e8eb11bb3cba",{"version":"d5135ad93b33adcce80b18f8065087934cdc1730d63db58562edcf017e1aad9b","affectsGlobalScope":true},"82408ed3e959ddc60d3e9904481b5a8dc16469928257af22a3f7d1a3bc7fd8c4","b787b5b54349a24f07d089b612a9fb8ff024dbbe991ff52ea2b188a6b1230644","bb9c4ffa5e6290c6980b63c815cdd1625876dadb2efaf77edbe82984be93e55e","1cdcfc1f624d6c08aa12c73935f6e13f095919cd99edf95752951796eb225729","df6d4b6ba1e64f682091862faa30104e93891f9e7202d006bf5e7a88ab4a0dbe","14b5aa23c5d0ae1907bc696ac7b6915d88f7d85799cc0dc2dcf98fbce2c5a67c","5c439dafdc09abe4d6c260a96b822fa0ba5be7203c71a63ab1f1423cd9e838ea",{"version":"6b526a5ec4a401ca7c26cfe6a48e641d8f30af76673bad3b06a1b4504594a960","affectsGlobalScope":true},{"version":"c2fcbd6fad600e96fee8c5df1a62e908d477f5b47a9374b2bab7e74f52cfcc92","affectsGlobalScope":true},"5e3f2470ce8038c4005ff1baff18a69848383f431d6817d453e70d66e037f4a2","cc68e79b99f80e4dfd01967ec96be69efb0ff5bd7f779d9a2cc09dfe590ffd28","91d3d8f536f22dcaeeace0fc6f3544d3562e266a27cf3a2fe280b8051af5d006","9503113febdd737095465792cc074d541902c82c0aea3922f940de18784812ad","8d3c583a07e0c37e876908c2d5da575019f689df8d9fa4c081d99119d53dba22","2c828a5405191d006115ab34e191b8474bc6c86ffdc401d1a9864b1b6e088a58",{"version":"e630e5528e899219ae319e83bef54bf3bcb91b01d76861ecf881e8e614b167f0","affectsGlobalScope":true},"bcebb922784739bdb34c18ee51095d25a92b560c78ccd2eaacd6bd00f7443d83","7ee6ed878c4528215c82b664fe0cfe80e8b4da6c0d4cc80869367868774db8b1","b0973c3cbcdc59b37bf477731d468696ecaf442593ec51bab497a613a580fe30",{"version":"4989e92ba5b69b182d2caaea6295af52b7dc73a4f7a2e336a676722884e7139d","affectsGlobalScope":true},{"version":"0715e4cd28ad471b2a93f3e552ff51a3ae423417a01a10aa1d3bc7c6b95059d6","affectsGlobalScope":true},"5153a2fd150e46ce57bb3f8db1318d33f6ad3261ed70ceeff92281c0608c74a3","210d54cd652ec0fec8c8916e4af59bb341065576ecda039842f9ffb2e908507c","36b03690b628eab08703d63f04eaa89c5df202e5f1edf3989f13ad389cd2c091","0effadd232a20498b11308058e334d3339cc5bf8c4c858393e38d9d4c0013dcf","25846d43937c672bab7e8195f3d881f93495df712ee901860effc109918938cc","ff1bad1849903b15fba47f3c29bdec5f97324874c93933a89b2bca28a23977fb","1b952304137851e45bc009785de89ada562d9376177c97e37702e39e60c2f1ff","69ee23dd0d215b09907ad30d23f88b7790c93329d1faf31d7835552a10cf7cbf","44b8b584a338b190a59f4f6929d072431950c7bd92ec2694821c11bce180c8a5","23b89798789dffbd437c0c423f5d02d11f9736aea73d6abf16db4f812ff36eda",{"version":"d9b4afd96c3c0ff70e90d05ef022e582b102e665e9029d34940472dc3058360e","affectsGlobalScope":true},{"version":"3c4ba1dd9b12ffa284b565063108f2f031d150ea15b8fafbdc17f5d2a07251f3","affectsGlobalScope":true},"e10177274a35a9d07c825615340b2fcde2f610f53f3fb40269fd196b4288dda6","1422cd9e705adcc09088fda85a900c2b70e3ad36ea85846f68bd1a884cdf4e2b","3c13ef48634e7b5012fcf7e8fce7496352c2d779a7201389ca96a2a81ee4314d","5d0a25ec910fa36595f85a67ac992d7a53dd4064a1ba6aea1c9f14ab73a023f2",{"version":"22d7b95cb63dead43834ae20ee492c9c8b6d90db3957d21665199f0efb1d3e26","affectsGlobalScope":true},{"version":"a9fc1469744055a3435f203123246b96c094e7ff8c4e1c3863829d9b705b7a34","affectsGlobalScope":true},"868831cab82b65dfe1d68180e898af1f2101e89ba9b754d1db6fb8cc2fac1921","0fe8985a28f82c450a04a6edf1279d7181c0893f37da7d2a27f8efd4fd5edb03","e59a892d87e72733e2a9ca21611b9beb52977be2696c7ba4b216cbbb9a48f5aa",{"version":"52120bb7e4583612225bdf08e7c12559548170f11e660d33a33623bae9bbdbba","affectsGlobalScope":true},"8a300fa9b698845a1f9c41ecbe2c5966634582a8e2020d51abcace9b55aa959e",{"version":"ab9b9a36e5284fd8d3bf2f7d5fcbc60052f25f27e4d20954782099282c60d23e","affectsGlobalScope":true},"d5be4343a9ace4611f04a6fffd91ceba91265fa15bfb0149306e0a6963e1a015","3b8ac5f54f287ac748e109a2639392ee70ae7e9a3f58ee637e21e1b3d57bed03","8f07f2b6514744ac96e51d7cb8518c0f4de319471237ea10cf688b8d0e9d0225","bcb6ea18f23dae2c48459d7b86d3adccd6898f824fcbf9da08b935f559896580","1363ba7d52f2353d0c4306d0ecdaf171bf4509c0148842f9fd8d3986c098a2eb","aae7ec197d95633437bc3023739cd955344559932ae07c25fea7600c2eb0e2f0","739c2c46edc112421fc023c24b4898b1f413f792bb6a02b40ba182c648e56c2f","858d0d831826c6eb563df02f7db71c90e26deadd0938652096bea3cc14899700","8885cf05f3e2abf117590bbb951dcf6359e3e5ac462af1c901cfd24c6a6472e2","e4de16da5082cd440c0e19bcf219c5c4a7f3c3104d97db3bb6ee5b9c2a9a1bdd","5e92a2e8ba5cbcdfd9e51428f94f7bd0ab6e45c9805b1c9552b64abaffad3ce3","53ca39fe70232633759dd3006fc5f467ecda540252c0c819ab53e9f6ad97b226","e7174a839d4732630d904a8b488f22380e5bcf1d6405d1f59614e10795eca17d","7ec359bbc29b69d4063fe7dad0baaf35f1856f914db16b3f4f6e3e1bca4099fa","1fa3342736ff551848cdcd8edeece95b2016448364b3e9ad1cb70e86e28f42a1","5ca9f5cc0104446228a0c6c1f353d49a9b92d40fa7096479595d62061e8279c9","4c1eed2b08adb0d98eb9551d426c43e3426282aa544559d30e05e5998e46321b","436598e80d4957d007b84bd7255394057848ab310895e2dcaebc5debb932fdbc","74f2815d9e1b8530120dcad409ed5f706df8513c4d93e99fc6213997aa4dd60e","9d1f36ccd354f2e286b909bf01d626a3a28dd6590770303a18afa7796fe50db9","c4bc6a572f9d763ac7fa0d839be3de80273a67660e2002e3225e00ef716b4f37","106e607866d6c3e9a497a696ac949c3e2ec46b6e7dda35aabe76100bf740833b","b854943ab33d8d8afab99b3a205aaec4f908e4f4b1b840097db95aed0bb3b16d","d4514d11e7d11c53da7d43b948654d6e608a3d93d666a36f8d01e18ece04c9bd","3d65182eff7bbb16de1a69e17651c51083f740af11a1a92359be6dab939e8bcf","78537f1b16692afdddef1b5c8981cea4a1be030eaca482bd5566b44cffa5192b","5af924defa85825aa63f023b562727d5bc7f91e71363e3f7ae24392bede17066","4d5fb5d6b35f731b2ae4d9d7c592d48e91d6de531dd130628edf4eba16add893","d12ab69ace581804d4f264eabc71094ca8dadfa70ae2bf5ccd54a8d6105ab84b","d757ef86e18b87094ad733c2a1ed7acc21878f5feb931bea64643f40a84e688c","6cb8dc4e3d4357c8badd567bd090aceedcd0d2afa4987f46471ba602956af034","8b0943864dafdf38b7c8cfbc736c04c5e65653837d85177aebde0732f34be8be","e666e31d323fef5642f87db0da48a83e58f0aaf9e3823e87eabd8ec7e0441a36","caeae351358d6c5b8da971c4ba7973987cbbbe4766081d07394e51c5544c8727","a23dd1a2177fda8e2d0e79874f4a150353d10e60ea3e9c690d7ca05b4775e542","e72396ce544667ab49df38ffb91cb3f80ff17d2ad3df903ec30b1d2ca8ea68de","b7e28e06011460436d5c2ec2996846ac0c451e135357fc5a7269e5665a32fbd7","647550b021976e287be83dd5c1a0919d2d99c47ffc470c80880f670ca4f395ab","d979524749bd1873e4e7a63b9551381711855a1bd5fc4be394b64568de6adc6d","9a82b3cd322d6b46c2407c162bbfd0b13edc9d23dced719a751a481b985690a0","13446337b269b3a8fdac668f9cf831b313529aea23f26621ecf5097c3e53bb25","f63e23230f3960b712450cf08f0f31e56acdae3ce65e0bf31bfdd6442b29d115","f2d1a59a658165341b0e2b7879aa2e19ea6a709146b2d3f70ee8a07159d3d08e","46e1ed17157235f8bf123517f691d1f93c6bffda998f6cd9fee470f2968b58c9","ba88974db5ce05013d08e521d5d1c2266ed5bfafac02763d18e15b3ced925c88",{"version":"67df11fb5478a41ff289fc72ae13789a7b4a57f81b9e2ab65ffa297690f98d15","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"9289f24e698d4e17863ea907ec75b1942aa382b6da49c364fd12b9a6614039cc","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"}],"root":[[70,77],[83,94],[96,98],[101,103],218,219],"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":[[106,166],[166],[120,166],[123,166],[124,129,157,166],[125,136,137,144,154,165,166],[125,126,136,144,166],[127,166],[128,129,137,145,166],[129,154,162,166],[130,132,136,144,166],[131,166],[132,133,166],[136,166],[134,136,166],[136,137,138,154,165,166],[136,137,138,151,154,157,166],[166,170],[132,136,139,144,154,165,166],[136,137,139,140,144,154,162,165,166],[139,141,154,162,165,166],[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,168,169,170,171,172],[136,142,166],[143,165,166],[132,136,144,154,166],[145,166],[146,166],[123,147,166],[148,164,166,170],[149,166],[150,166],[136,151,152,166],[151,153,166,168],[124,136,154,155,156,157,166],[124,154,156,166],[154,155,166],[157,166],[158,166],[154,166],[136,160,161,166],[160,161,166],[129,144,154,162,166],[163,166],[144,164,166],[124,139,150,165,166],[129,166],[154,166,167],[166,168],[166,169],[124,129,136,138,147,154,165,166,168,170],[154,166,171],[109,116,118,166],[109,110,111,166],[109,166],[109,110,166],[166,204],[113,166],[108,113,166],[108,113,114,166],[166,214],[166,208],[166,212],[117,166],[108,166],[104,166],[104,105,108,166],[78,79,80,81,166],[79,166],[79,80,166],[166,195],[166,193,195],[166,184,192,193,194,196],[166,182],[166,185,190,195,198],[166,181,198],[166,185,186,189,190,198],[166,185,186,187,189,190,198],[166,182,183,184,185,186,190,191,192,194,195,196,198],[166,180,182,183,184,185,186,187,189,190,191,192,193,194,195,196,197],[166,180,198],[166,185,187,188,190,198],[166,189,198],[166,190,191,195,198],[166,183,193],[107,166],[166,180],[166,200,201,202],[166,199,200,201,202,211],[166,200,201],[136,137,139,141,144,154,162,165,166,171,173,174,175,176,177,178,179,198],[166,176],[166,177],[166,178],[109,112,115,116,119,137,166,170,175,178,199,203,205,206,207,209,210,211],[109,112,115,116,119,137,166,170,175,178,199,203,205,206,207,209,210,211,213,215,216],[67,166],[61,166],[61,63,166],[61,62,63,64,65,66,67,68,166],[61,62,64,65,66,166],[69,72,73,166],[69,166],[76,166],[69,82,84,166],[69,70,166],[69,70,71,166],[69,72,88,89,90,166],[69,72,86,87,166],[69,86,96,166],[69,71,166],[69,72,166],[70,71,72,73,74,75,76,77,83,84,85,86,87,88,89,90,91,92,93,94,96,97,98,101,102,166],[95,166],[101,166,217],[99,100,166],[84,166,217],[83,166],[69],[70,71,72,73,74,75,76,77,83,84,85,86,87,88,89,90,91,92,93,94,96,97,98,101,102],[95]],"referencedMap":[[107,1],[106,2],[116,2],[120,3],[121,3],[123,4],[124,5],[125,6],[126,7],[127,8],[128,9],[129,10],[130,11],[131,12],[132,13],[133,13],[135,14],[134,15],[136,14],[137,16],[138,17],[122,18],[172,2],[139,19],[140,20],[141,21],[173,22],[142,23],[143,24],[144,25],[145,26],[146,27],[147,28],[148,29],[149,30],[150,31],[151,32],[152,32],[153,33],[154,34],[156,35],[155,36],[157,37],[158,38],[159,39],[160,40],[161,41],[162,42],[163,43],[164,44],[165,45],[166,46],[167,47],[168,48],[169,49],[170,50],[171,51],[119,52],[112,53],[110,54],[111,55],[204,55],[205,56],[113,2],[214,57],[114,58],[115,59],[208,59],[215,60],[209,61],[213,62],[118,63],[117,64],[105,65],[109,66],[104,2],[174,2],[78,2],[95,2],[99,2],[100,2],[82,67],[80,68],[81,69],[79,2],[196,70],[194,71],[195,72],[183,73],[184,71],[191,74],[182,75],[187,76],[197,2],[188,77],[193,78],[198,79],[181,80],[189,81],[190,82],[185,83],[192,70],[186,84],[108,85],[178,2],[180,86],[206,2],[212,2],[59,2],[60,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],[26,2],[23,2],[24,2],[25,2],[27,2],[28,2],[29,2],[5,2],[30,2],[31,2],[32,2],[33,2],[6,2],[37,2],[34,2],[35,2],[36,2],[38,2],[7,2],[39,2],[44,2],[45,2],[40,2],[41,2],[42,2],[43,2],[8,2],[49,2],[46,2],[47,2],[48,2],[50,2],[9,2],[51,2],[52,2],[53,2],[56,2],[54,2],[55,2],[57,2],[10,2],[1,2],[11,2],[58,2],[207,87],[203,87],[210,88],[202,89],[201,2],[199,90],[177,91],[176,2],[200,92],[179,2],[175,93],[216,94],[217,95],[211,94],[68,96],[62,97],[66,97],[65,98],[61,2],[63,97],[69,99],[67,100],[64,97],[74,101],[75,102],[76,2],[77,103],[85,104],[70,102],[86,105],[87,102],[72,106],[91,107],[92,102],[93,108],[94,102],[97,109],[88,110],[73,110],[98,111],[71,102],[83,2],[103,112],[96,113],[102,102],[89,2],[218,114],[101,115],[219,116],[84,117],[90,2]],"exportedModulesMap":[[107,1],[106,2],[116,2],[120,3],[121,3],[123,4],[124,5],[125,6],[126,7],[127,8],[128,9],[129,10],[130,11],[131,12],[132,13],[133,13],[135,14],[134,15],[136,14],[137,16],[138,17],[122,18],[172,2],[139,19],[140,20],[141,21],[173,22],[142,23],[143,24],[144,25],[145,26],[146,27],[147,28],[148,29],[149,30],[150,31],[151,32],[152,32],[153,33],[154,34],[156,35],[155,36],[157,37],[158,38],[159,39],[160,40],[161,41],[162,42],[163,43],[164,44],[165,45],[166,46],[167,47],[168,48],[169,49],[170,50],[171,51],[119,52],[112,53],[110,54],[111,55],[204,55],[205,56],[113,2],[214,57],[114,58],[115,59],[208,59],[215,60],[209,61],[213,62],[118,63],[117,64],[105,65],[109,66],[104,2],[174,2],[78,2],[95,2],[99,2],[100,2],[82,67],[80,68],[81,69],[79,2],[196,70],[194,71],[195,72],[183,73],[184,71],[191,74],[182,75],[187,76],[197,2],[188,77],[193,78],[198,79],[181,80],[189,81],[190,82],[185,83],[192,70],[186,84],[108,85],[178,2],[180,86],[206,2],[212,2],[59,2],[60,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],[26,2],[23,2],[24,2],[25,2],[27,2],[28,2],[29,2],[5,2],[30,2],[31,2],[32,2],[33,2],[6,2],[37,2],[34,2],[35,2],[36,2],[38,2],[7,2],[39,2],[44,2],[45,2],[40,2],[41,2],[42,2],[43,2],[8,2],[49,2],[46,2],[47,2],[48,2],[50,2],[9,2],[51,2],[52,2],[53,2],[56,2],[54,2],[55,2],[57,2],[10,2],[1,2],[11,2],[58,2],[207,87],[203,87],[210,88],[202,89],[201,2],[199,90],[177,91],[176,2],[200,92],[179,2],[175,93],[216,94],[217,95],[211,94],[68,96],[62,97],[66,97],[65,98],[61,2],[63,97],[69,99],[67,100],[64,97],[74,118],[75,118],[85,118],[70,118],[86,118],[87,118],[72,118],[91,118],[92,118],[93,118],[94,118],[97,118],[88,118],[73,118],[98,118],[71,118],[103,119],[96,120],[102,118]],"semanticDiagnosticsPerFile":[107,106,116,120,121,123,124,125,126,127,128,129,130,131,132,133,135,134,136,137,138,122,172,139,140,141,173,142,143,144,145,146,147,148,149,150,151,152,153,154,156,155,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,119,112,110,111,204,205,113,214,114,115,208,215,209,213,118,117,105,109,104,174,78,95,99,100,82,80,81,79,196,194,195,183,184,191,182,187,197,188,193,198,181,189,190,185,192,186,108,178,180,206,212,59,60,12,14,13,2,15,16,17,18,19,20,21,22,3,4,26,23,24,25,27,28,29,5,30,31,32,33,6,37,34,35,36,38,7,39,44,45,40,41,42,43,8,49,46,47,48,50,9,51,52,53,56,54,55,57,10,1,11,58,207,203,210,202,201,199,177,176,200,179,175,216,217,211,68,62,66,65,61,63,69,67,64,74,75,76,77,85,70,86,87,72,91,92,93,94,97,88,73,98,71,83,103,96,102,89,218,101,219,84,90]},"version":"5.1.6"}
|
|
1
|
+
{"program":{"fileNames":["../../../node_modules/.pnpm/typescript@5.1.6/node_modules/typescript/lib/lib.es5.d.ts","../../../node_modules/.pnpm/typescript@5.1.6/node_modules/typescript/lib/lib.es2015.d.ts","../../../node_modules/.pnpm/typescript@5.1.6/node_modules/typescript/lib/lib.es2016.d.ts","../../../node_modules/.pnpm/typescript@5.1.6/node_modules/typescript/lib/lib.es2017.d.ts","../../../node_modules/.pnpm/typescript@5.1.6/node_modules/typescript/lib/lib.es2018.d.ts","../../../node_modules/.pnpm/typescript@5.1.6/node_modules/typescript/lib/lib.es2019.d.ts","../../../node_modules/.pnpm/typescript@5.1.6/node_modules/typescript/lib/lib.es2020.d.ts","../../../node_modules/.pnpm/typescript@5.1.6/node_modules/typescript/lib/lib.es2021.d.ts","../../../node_modules/.pnpm/typescript@5.1.6/node_modules/typescript/lib/lib.es2022.d.ts","../../../node_modules/.pnpm/typescript@5.1.6/node_modules/typescript/lib/lib.es2023.d.ts","../../../node_modules/.pnpm/typescript@5.1.6/node_modules/typescript/lib/lib.esnext.d.ts","../../../node_modules/.pnpm/typescript@5.1.6/node_modules/typescript/lib/lib.dom.d.ts","../../../node_modules/.pnpm/typescript@5.1.6/node_modules/typescript/lib/lib.es2015.core.d.ts","../../../node_modules/.pnpm/typescript@5.1.6/node_modules/typescript/lib/lib.es2015.collection.d.ts","../../../node_modules/.pnpm/typescript@5.1.6/node_modules/typescript/lib/lib.es2015.generator.d.ts","../../../node_modules/.pnpm/typescript@5.1.6/node_modules/typescript/lib/lib.es2015.iterable.d.ts","../../../node_modules/.pnpm/typescript@5.1.6/node_modules/typescript/lib/lib.es2015.promise.d.ts","../../../node_modules/.pnpm/typescript@5.1.6/node_modules/typescript/lib/lib.es2015.proxy.d.ts","../../../node_modules/.pnpm/typescript@5.1.6/node_modules/typescript/lib/lib.es2015.reflect.d.ts","../../../node_modules/.pnpm/typescript@5.1.6/node_modules/typescript/lib/lib.es2015.symbol.d.ts","../../../node_modules/.pnpm/typescript@5.1.6/node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../../../node_modules/.pnpm/typescript@5.1.6/node_modules/typescript/lib/lib.es2016.array.include.d.ts","../../../node_modules/.pnpm/typescript@5.1.6/node_modules/typescript/lib/lib.es2017.object.d.ts","../../../node_modules/.pnpm/typescript@5.1.6/node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","../../../node_modules/.pnpm/typescript@5.1.6/node_modules/typescript/lib/lib.es2017.string.d.ts","../../../node_modules/.pnpm/typescript@5.1.6/node_modules/typescript/lib/lib.es2017.intl.d.ts","../../../node_modules/.pnpm/typescript@5.1.6/node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","../../../node_modules/.pnpm/typescript@5.1.6/node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","../../../node_modules/.pnpm/typescript@5.1.6/node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","../../../node_modules/.pnpm/typescript@5.1.6/node_modules/typescript/lib/lib.es2018.intl.d.ts","../../../node_modules/.pnpm/typescript@5.1.6/node_modules/typescript/lib/lib.es2018.promise.d.ts","../../../node_modules/.pnpm/typescript@5.1.6/node_modules/typescript/lib/lib.es2018.regexp.d.ts","../../../node_modules/.pnpm/typescript@5.1.6/node_modules/typescript/lib/lib.es2019.array.d.ts","../../../node_modules/.pnpm/typescript@5.1.6/node_modules/typescript/lib/lib.es2019.object.d.ts","../../../node_modules/.pnpm/typescript@5.1.6/node_modules/typescript/lib/lib.es2019.string.d.ts","../../../node_modules/.pnpm/typescript@5.1.6/node_modules/typescript/lib/lib.es2019.symbol.d.ts","../../../node_modules/.pnpm/typescript@5.1.6/node_modules/typescript/lib/lib.es2019.intl.d.ts","../../../node_modules/.pnpm/typescript@5.1.6/node_modules/typescript/lib/lib.es2020.bigint.d.ts","../../../node_modules/.pnpm/typescript@5.1.6/node_modules/typescript/lib/lib.es2020.date.d.ts","../../../node_modules/.pnpm/typescript@5.1.6/node_modules/typescript/lib/lib.es2020.promise.d.ts","../../../node_modules/.pnpm/typescript@5.1.6/node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","../../../node_modules/.pnpm/typescript@5.1.6/node_modules/typescript/lib/lib.es2020.string.d.ts","../../../node_modules/.pnpm/typescript@5.1.6/node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","../../../node_modules/.pnpm/typescript@5.1.6/node_modules/typescript/lib/lib.es2020.intl.d.ts","../../../node_modules/.pnpm/typescript@5.1.6/node_modules/typescript/lib/lib.es2020.number.d.ts","../../../node_modules/.pnpm/typescript@5.1.6/node_modules/typescript/lib/lib.es2021.promise.d.ts","../../../node_modules/.pnpm/typescript@5.1.6/node_modules/typescript/lib/lib.es2021.string.d.ts","../../../node_modules/.pnpm/typescript@5.1.6/node_modules/typescript/lib/lib.es2021.weakref.d.ts","../../../node_modules/.pnpm/typescript@5.1.6/node_modules/typescript/lib/lib.es2021.intl.d.ts","../../../node_modules/.pnpm/typescript@5.1.6/node_modules/typescript/lib/lib.es2022.array.d.ts","../../../node_modules/.pnpm/typescript@5.1.6/node_modules/typescript/lib/lib.es2022.error.d.ts","../../../node_modules/.pnpm/typescript@5.1.6/node_modules/typescript/lib/lib.es2022.intl.d.ts","../../../node_modules/.pnpm/typescript@5.1.6/node_modules/typescript/lib/lib.es2022.object.d.ts","../../../node_modules/.pnpm/typescript@5.1.6/node_modules/typescript/lib/lib.es2022.sharedmemory.d.ts","../../../node_modules/.pnpm/typescript@5.1.6/node_modules/typescript/lib/lib.es2022.string.d.ts","../../../node_modules/.pnpm/typescript@5.1.6/node_modules/typescript/lib/lib.es2022.regexp.d.ts","../../../node_modules/.pnpm/typescript@5.1.6/node_modules/typescript/lib/lib.es2023.array.d.ts","../../../node_modules/.pnpm/typescript@5.1.6/node_modules/typescript/lib/lib.esnext.intl.d.ts","../../../node_modules/.pnpm/typescript@5.1.6/node_modules/typescript/lib/lib.decorators.d.ts","../../../node_modules/.pnpm/typescript@5.1.6/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.1/node_modules/@vitest/utils/dist/types.d.ts","../../../node_modules/.pnpm/@vitest+utils@0.34.1/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.1/node_modules/@vitest/utils/dist/index.d.ts","../../../node_modules/.pnpm/@vitest+runner@0.34.1/node_modules/@vitest/runner/dist/tasks-abce80cc.d.ts","../../../node_modules/.pnpm/@vitest+runner@0.34.1/node_modules/@vitest/runner/dist/types.d.ts","../../../node_modules/.pnpm/@vitest+runner@0.34.1/node_modules/@vitest/runner/dist/index.d.ts","../../../node_modules/.pnpm/@vitest+snapshot@0.34.1/node_modules/@vitest/snapshot/dist/environment-38cdead3.d.ts","../../../node_modules/.pnpm/@vitest+snapshot@0.34.1/node_modules/@vitest/snapshot/dist/index-6461367c.d.ts","../../../node_modules/.pnpm/@vitest+snapshot@0.34.1/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.1/node_modules/@vitest/utils/dist/diff.d.ts","../../../node_modules/.pnpm/@vitest+utils@0.34.1/node_modules/@vitest/utils/diff.d.ts","../../../node_modules/.pnpm/@vitest+expect@0.34.1/node_modules/@vitest/expect/dist/index.d.ts","../../../node_modules/.pnpm/@types+node@18.17.4/node_modules/@types/node/assert.d.ts","../../../node_modules/.pnpm/@types+node@18.17.4/node_modules/@types/node/assert/strict.d.ts","../../../node_modules/.pnpm/@types+node@18.17.4/node_modules/@types/node/globals.d.ts","../../../node_modules/.pnpm/@types+node@18.17.4/node_modules/@types/node/async_hooks.d.ts","../../../node_modules/.pnpm/@types+node@18.17.4/node_modules/@types/node/buffer.d.ts","../../../node_modules/.pnpm/@types+node@18.17.4/node_modules/@types/node/child_process.d.ts","../../../node_modules/.pnpm/@types+node@18.17.4/node_modules/@types/node/cluster.d.ts","../../../node_modules/.pnpm/@types+node@18.17.4/node_modules/@types/node/console.d.ts","../../../node_modules/.pnpm/@types+node@18.17.4/node_modules/@types/node/constants.d.ts","../../../node_modules/.pnpm/@types+node@18.17.4/node_modules/@types/node/crypto.d.ts","../../../node_modules/.pnpm/@types+node@18.17.4/node_modules/@types/node/dgram.d.ts","../../../node_modules/.pnpm/@types+node@18.17.4/node_modules/@types/node/diagnostics_channel.d.ts","../../../node_modules/.pnpm/@types+node@18.17.4/node_modules/@types/node/dns.d.ts","../../../node_modules/.pnpm/@types+node@18.17.4/node_modules/@types/node/dns/promises.d.ts","../../../node_modules/.pnpm/@types+node@18.17.4/node_modules/@types/node/domain.d.ts","../../../node_modules/.pnpm/@types+node@18.17.4/node_modules/@types/node/dom-events.d.ts","../../../node_modules/.pnpm/@types+node@18.17.4/node_modules/@types/node/events.d.ts","../../../node_modules/.pnpm/@types+node@18.17.4/node_modules/@types/node/fs.d.ts","../../../node_modules/.pnpm/@types+node@18.17.4/node_modules/@types/node/fs/promises.d.ts","../../../node_modules/.pnpm/@types+node@18.17.4/node_modules/@types/node/http.d.ts","../../../node_modules/.pnpm/@types+node@18.17.4/node_modules/@types/node/http2.d.ts","../../../node_modules/.pnpm/@types+node@18.17.4/node_modules/@types/node/https.d.ts","../../../node_modules/.pnpm/@types+node@18.17.4/node_modules/@types/node/inspector.d.ts","../../../node_modules/.pnpm/@types+node@18.17.4/node_modules/@types/node/module.d.ts","../../../node_modules/.pnpm/@types+node@18.17.4/node_modules/@types/node/net.d.ts","../../../node_modules/.pnpm/@types+node@18.17.4/node_modules/@types/node/os.d.ts","../../../node_modules/.pnpm/@types+node@18.17.4/node_modules/@types/node/path.d.ts","../../../node_modules/.pnpm/@types+node@18.17.4/node_modules/@types/node/perf_hooks.d.ts","../../../node_modules/.pnpm/@types+node@18.17.4/node_modules/@types/node/process.d.ts","../../../node_modules/.pnpm/@types+node@18.17.4/node_modules/@types/node/punycode.d.ts","../../../node_modules/.pnpm/@types+node@18.17.4/node_modules/@types/node/querystring.d.ts","../../../node_modules/.pnpm/@types+node@18.17.4/node_modules/@types/node/readline.d.ts","../../../node_modules/.pnpm/@types+node@18.17.4/node_modules/@types/node/readline/promises.d.ts","../../../node_modules/.pnpm/@types+node@18.17.4/node_modules/@types/node/repl.d.ts","../../../node_modules/.pnpm/@types+node@18.17.4/node_modules/@types/node/stream.d.ts","../../../node_modules/.pnpm/@types+node@18.17.4/node_modules/@types/node/stream/promises.d.ts","../../../node_modules/.pnpm/@types+node@18.17.4/node_modules/@types/node/stream/consumers.d.ts","../../../node_modules/.pnpm/@types+node@18.17.4/node_modules/@types/node/stream/web.d.ts","../../../node_modules/.pnpm/@types+node@18.17.4/node_modules/@types/node/string_decoder.d.ts","../../../node_modules/.pnpm/@types+node@18.17.4/node_modules/@types/node/test.d.ts","../../../node_modules/.pnpm/@types+node@18.17.4/node_modules/@types/node/timers.d.ts","../../../node_modules/.pnpm/@types+node@18.17.4/node_modules/@types/node/timers/promises.d.ts","../../../node_modules/.pnpm/@types+node@18.17.4/node_modules/@types/node/tls.d.ts","../../../node_modules/.pnpm/@types+node@18.17.4/node_modules/@types/node/trace_events.d.ts","../../../node_modules/.pnpm/@types+node@18.17.4/node_modules/@types/node/tty.d.ts","../../../node_modules/.pnpm/@types+node@18.17.4/node_modules/@types/node/url.d.ts","../../../node_modules/.pnpm/@types+node@18.17.4/node_modules/@types/node/util.d.ts","../../../node_modules/.pnpm/@types+node@18.17.4/node_modules/@types/node/v8.d.ts","../../../node_modules/.pnpm/@types+node@18.17.4/node_modules/@types/node/vm.d.ts","../../../node_modules/.pnpm/@types+node@18.17.4/node_modules/@types/node/wasi.d.ts","../../../node_modules/.pnpm/@types+node@18.17.4/node_modules/@types/node/worker_threads.d.ts","../../../node_modules/.pnpm/@types+node@18.17.4/node_modules/@types/node/zlib.d.ts","../../../node_modules/.pnpm/@types+node@18.17.4/node_modules/@types/node/globals.global.d.ts","../../../node_modules/.pnpm/@types+node@18.17.4/node_modules/@types/node/index.d.ts","../../../node_modules/.pnpm/esbuild@0.18.12/node_modules/esbuild/lib/main.d.ts","../../../node_modules/.pnpm/vite@4.4.9_@types+node@18.17.4/node_modules/vite/types/metadata.d.ts","../../../node_modules/.pnpm/vite@4.4.9_@types+node@18.17.4/node_modules/vite/types/hmrpayload.d.ts","../../../node_modules/.pnpm/vite@4.4.9_@types+node@18.17.4/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.4.9_@types+node@18.17.4/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.27/node_modules/postcss/lib/previous-map.d.ts","../../../node_modules/.pnpm/postcss@8.4.27/node_modules/postcss/lib/input.d.ts","../../../node_modules/.pnpm/postcss@8.4.27/node_modules/postcss/lib/css-syntax-error.d.ts","../../../node_modules/.pnpm/postcss@8.4.27/node_modules/postcss/lib/declaration.d.ts","../../../node_modules/.pnpm/postcss@8.4.27/node_modules/postcss/lib/root.d.ts","../../../node_modules/.pnpm/postcss@8.4.27/node_modules/postcss/lib/warning.d.ts","../../../node_modules/.pnpm/postcss@8.4.27/node_modules/postcss/lib/lazy-result.d.ts","../../../node_modules/.pnpm/postcss@8.4.27/node_modules/postcss/lib/no-work-result.d.ts","../../../node_modules/.pnpm/postcss@8.4.27/node_modules/postcss/lib/processor.d.ts","../../../node_modules/.pnpm/postcss@8.4.27/node_modules/postcss/lib/result.d.ts","../../../node_modules/.pnpm/postcss@8.4.27/node_modules/postcss/lib/document.d.ts","../../../node_modules/.pnpm/postcss@8.4.27/node_modules/postcss/lib/rule.d.ts","../../../node_modules/.pnpm/postcss@8.4.27/node_modules/postcss/lib/node.d.ts","../../../node_modules/.pnpm/postcss@8.4.27/node_modules/postcss/lib/comment.d.ts","../../../node_modules/.pnpm/postcss@8.4.27/node_modules/postcss/lib/container.d.ts","../../../node_modules/.pnpm/postcss@8.4.27/node_modules/postcss/lib/at-rule.d.ts","../../../node_modules/.pnpm/postcss@8.4.27/node_modules/postcss/lib/list.d.ts","../../../node_modules/.pnpm/postcss@8.4.27/node_modules/postcss/lib/postcss.d.ts","../../../node_modules/.pnpm/vite@4.4.9_@types+node@18.17.4/node_modules/vite/dist/node/index.d.ts","../../../node_modules/.pnpm/vite@4.4.9_@types+node@18.17.4/node_modules/vite/types/hot.d.ts","../../../node_modules/.pnpm/vite-node@0.34.1_@types+node@18.17.4/node_modules/vite-node/dist/types.d-7442d07f.d.ts","../../../node_modules/.pnpm/vite-node@0.34.1_@types+node@18.17.4/node_modules/vite-node/dist/types-e8623e9c.d.ts","../../../node_modules/.pnpm/vite-node@0.34.1_@types+node@18.17.4/node_modules/vite-node/dist/index.d.ts","../../../node_modules/.pnpm/@vitest+runner@0.34.1/node_modules/@vitest/runner/dist/utils.d.ts","../../../node_modules/.pnpm/@vitest+runner@0.34.1/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.1_@types+node@18.17.4/node_modules/vite-node/dist/client.d.ts","../../../node_modules/.pnpm/@vitest+snapshot@0.34.1/node_modules/@vitest/snapshot/dist/manager.d.ts","../../../node_modules/.pnpm/@vitest+snapshot@0.34.1/node_modules/@vitest/snapshot/manager.d.ts","../../../node_modules/.pnpm/vite-node@0.34.1_@types+node@18.17.4/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.1/node_modules/vitest/dist/types-3c7dbfa5.d.ts","../../../node_modules/.pnpm/tinyspy@2.1.1/node_modules/tinyspy/dist/index.d.ts","../../../node_modules/.pnpm/@vitest+spy@0.34.1/node_modules/@vitest/spy/dist/index.d.ts","../../../node_modules/.pnpm/@vitest+snapshot@0.34.1/node_modules/@vitest/snapshot/dist/environment.d.ts","../../../node_modules/.pnpm/@vitest+snapshot@0.34.1/node_modules/@vitest/snapshot/environment.d.ts","../../../node_modules/.pnpm/vitest@0.34.1/node_modules/vitest/dist/config.d.ts","../../../node_modules/.pnpm/vitest@0.34.1/node_modules/vitest/dist/index.d.ts","../src/normalize-url.test.ts","../src/parse-page-id.test.ts","../../../node_modules/.pnpm/@types+node@18.17.1/node_modules/@types/node/util.d.ts","../../../node_modules/.pnpm/@types+node@18.17.1/node_modules/@types/node/fs.d.ts","../../../node_modules/.pnpm/@types+node@18.17.1/node_modules/@types/node/worker_threads.d.ts","../../../node_modules/.pnpm/vite@4.4.8_@types+node@18.17.1/node_modules/vite/types/metadata.d.ts","../../../node_modules/.pnpm/vite@4.4.8_@types+node@18.17.1/node_modules/vite/dist/node/index.d.ts","../../../node_modules/.pnpm/vite-node@0.34.1_@types+node@18.17.1/node_modules/vite-node/dist/index.d.ts","../../../node_modules/.pnpm/vite-node@0.34.1_@types+node@18.17.1/node_modules/vite-node/dist/client.d.ts","../../../node_modules/.pnpm/vite-node@0.34.1_@types+node@18.17.1/node_modules/vite-node/dist/server.d.ts"],"fileInfos":[{"version":"f59215c5f1d886b05395ee7aca73e0ac69ddfad2843aa88530e797879d511bad","affectsGlobalScope":true},"45b7ab580deca34ae9729e97c13cfd999df04416a79116c3bfb483804f85ded4","dc48272d7c333ccf58034c0026162576b7d50ea0e69c3b9292f803fc20720fd5","27147504487dc1159369da4f4da8a26406364624fa9bc3db632f7d94a5bae2c3","5e1c4c362065a6b95ff952c0eab010f04dcd2c3494e813b493ecfd4fcb9fc0d8","68d73b4a11549f9c0b7d352d10e91e5dca8faa3322bfb77b661839c42b1ddec7","5efce4fc3c29ea84e8928f97adec086e3dc876365e0982cc8479a07954a3efd4","feecb1be483ed332fad555aff858affd90a48ab19ba7272ee084704eb7167569","5514e54f17d6d74ecefedc73c504eadffdeda79c7ea205cf9febead32d45c4bc","f4e736d6c8d69ae5b3ab0ddfcaa3dc365c3e76909d6660af5b4e979b3934ac20","eeeb3aca31fbadef8b82502484499dfd1757204799a6f5b33116201c810676ec",{"version":"3dda5344576193a4ae48b8d03f105c86f20b2f2aff0a1d1fd7935f5d68649654","affectsGlobalScope":true},{"version":"9d9885c728913c1d16e0d2831b40341d6ad9a0ceecaabc55209b306ad9c736a5","affectsGlobalScope":true},{"version":"17bea081b9c0541f39dd1ae9bc8c78bdd561879a682e60e2f25f688c0ecab248","affectsGlobalScope":true},{"version":"4443e68b35f3332f753eacc66a04ac1d2053b8b035a0e0ac1d455392b5e243b3","affectsGlobalScope":true},{"version":"ab22100fdd0d24cfc2cc59d0a00fc8cf449830d9c4030dc54390a46bd562e929","affectsGlobalScope":true},{"version":"f7bd636ae3a4623c503359ada74510c4005df5b36de7f23e1db8a5c543fd176b","affectsGlobalScope":true},{"version":"ce691fb9e5c64efb9547083e4a34091bcbe5bdb41027e310ebba8f7d96a98671","affectsGlobalScope":true},{"version":"8d697a2a929a5fcb38b7a65594020fcef05ec1630804a33748829c5ff53640d0","affectsGlobalScope":true},{"version":"0c20f4d2358eb679e4ae8a4432bdd96c857a2960fd6800b21ec4008ec59d60ea","affectsGlobalScope":true},{"version":"36ae84ccc0633f7c0787bc6108386c8b773e95d3b052d9464a99cd9b8795fbec","affectsGlobalScope":true},{"version":"82d0d8e269b9eeac02c3bd1c9e884e85d483fcb2cd168bccd6bc54df663da031","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":"f06948deb2a51aae25184561c9640fb66afeddb34531a9212d011792b1d19e0a","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":"61ed9b6d07af959e745fb11f9593ecd743b279418cc8a99448ea3cd5f3b3eb22","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":"25de46552b782d43cb7284df22fe2a265de387cf0248b747a7a1b647d81861f6","affectsGlobalScope":true},{"version":"307c8b7ebbd7f23a92b73a4c6c0a697beca05b06b036c23a34553e5fe65e4fdc","affectsGlobalScope":true},{"version":"189c0703923150aa30673fa3de411346d727cc44a11c75d05d7cf9ef095daa22","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":"31c633f267577c164025ba5e9544133c31dac20efc062cdfff71bddee0f8d4df","signature":"5bd79d155bbfd1d619f38079fc492d03671369ad38eda03cb270bac9f9f11c1e"},{"version":"150548c5a00159daf1c5887f87a90bfb5993f06d33c229892f31fff0e0370f08","signature":"2e2aac8b5e578a185d09b3d5e15018301bafa2918b75c45970165227ea978fc7"},{"version":"df2172fe4094555c35bdfe7258ab1cc8249b9bdc119e6f9394dc97987c7d91a6","signature":"85d9e8590eae3ccdee201cfcf4d57b49b3e96ccbfb3830912239c0675aa63f08"},{"version":"d8a5caf71a6de650417cfc87f2d5ea847a9a9eb017661993d0f9a67db714380e","signature":"8daa014e1eebdfc4c89e5bb0a29137128c7e5a4e3b53987a95fdf84a54c5c670"},{"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","75d3b70589f5e14016a629feef0cd8deb55cab794e8c14bdbd5794c3b08a957e","c085e9aa62d1ae1375794c1fb927a445fa105fed891a7e24edbb1c3300f7384a","f315e1e65a1f80992f0509e84e4ae2df15ecd9ef73df975f7c98813b71e4c8da","5b9586e9b0b6322e5bfbd2c29bd3b8e21ab9d871f82346cb71020e3d84bae73e","64c9980a5c0f4627b7189eeece6816bb68e1c5c62a06d59ce6742f3328cfe854","acf1068cf9f861280669578ced81d6f6701609b6e8c46c983fd1c3b62ca1c129","5599d7a8727ecc5c463176c284c76b4a93ed79df3cc617548998d2d5c4b57c12","866223f4c6921da309cafb3441ff835d787ab52747825e2371b404458b1bd7b9","73b67d2e87ac7d7baaca64ca33fd1523c0b3c850cb7db5b9c014f1be7996bed1","5d5ae61fce1581fd6424269790a9071e3f8e69b029f5d0fcb46ce618c5dbc565","38a0ccc7106312a9f60e034e7cd8ac218774d8aa65f832cee3363a7e65f99325",{"version":"c3bc5d095c3c22fd20b5a6550b9c9a6d56c3ffbb87ef057ccce7764b6bed4428","affectsGlobalScope":true},"bff48cd8ff6b53727de810bd00a11e04975b1bc9c7677f3fe839159565ad1546","05c7aef6a4e496b93c2e682cced8903c0dfe6340d04f3fe616176e2782193435",{"version":"47c8c25482eb4844ac9c11758f9a6c0112ecb1c7216f91e3463772e73f989a63","affectsGlobalScope":true},"ba8691cf6bea9d53e6bf6cbc22af964a9633a21793981a1be3dce65e7a714d8b","a69c09dbea52352f479d3e7ac949fde3d17b195abe90b045d619f747b38d6d1a",{"version":"bce910d9164785c9f0d4dcea4be359f5f92130c7c7833dea6138ab1db310a1f9","affectsGlobalScope":true},"7d2e3fea24c712c99c03ad8f556abedbfe105f87f1be10b95dbd409d24bc05a3",{"version":"7c387a02bf156d8d45667134d32518ac3ca1b99ca50ca9deff2c1a03eb6d1a81","affectsGlobalScope":true},"3719525a8f6ab731e3dfd585d9f87df55ec7d50d461df84f74eb4d68bb165244","f993522fd7d01ae1ead930091fe35130b8415720d6c2123dc2a7e8eb11bb3cba",{"version":"d5135ad93b33adcce80b18f8065087934cdc1730d63db58562edcf017e1aad9b","affectsGlobalScope":true},"82408ed3e959ddc60d3e9904481b5a8dc16469928257af22a3f7d1a3bc7fd8c4","b787b5b54349a24f07d089b612a9fb8ff024dbbe991ff52ea2b188a6b1230644","bb9c4ffa5e6290c6980b63c815cdd1625876dadb2efaf77edbe82984be93e55e","1cdcfc1f624d6c08aa12c73935f6e13f095919cd99edf95752951796eb225729","df6d4b6ba1e64f682091862faa30104e93891f9e7202d006bf5e7a88ab4a0dbe","14b5aa23c5d0ae1907bc696ac7b6915d88f7d85799cc0dc2dcf98fbce2c5a67c","5c439dafdc09abe4d6c260a96b822fa0ba5be7203c71a63ab1f1423cd9e838ea",{"version":"6b526a5ec4a401ca7c26cfe6a48e641d8f30af76673bad3b06a1b4504594a960","affectsGlobalScope":true},{"version":"c2fcbd6fad600e96fee8c5df1a62e908d477f5b47a9374b2bab7e74f52cfcc92","affectsGlobalScope":true},"5e3f2470ce8038c4005ff1baff18a69848383f431d6817d453e70d66e037f4a2","cc68e79b99f80e4dfd01967ec96be69efb0ff5bd7f779d9a2cc09dfe590ffd28","91d3d8f536f22dcaeeace0fc6f3544d3562e266a27cf3a2fe280b8051af5d006","9503113febdd737095465792cc074d541902c82c0aea3922f940de18784812ad","8d3c583a07e0c37e876908c2d5da575019f689df8d9fa4c081d99119d53dba22","2c828a5405191d006115ab34e191b8474bc6c86ffdc401d1a9864b1b6e088a58",{"version":"e630e5528e899219ae319e83bef54bf3bcb91b01d76861ecf881e8e614b167f0","affectsGlobalScope":true},"bcebb922784739bdb34c18ee51095d25a92b560c78ccd2eaacd6bd00f7443d83","7ee6ed878c4528215c82b664fe0cfe80e8b4da6c0d4cc80869367868774db8b1","b0973c3cbcdc59b37bf477731d468696ecaf442593ec51bab497a613a580fe30",{"version":"69e93290f59948789d5fce61cb0b89dde93747a4576744d0d6fae41ee3991646","affectsGlobalScope":true},{"version":"0715e4cd28ad471b2a93f3e552ff51a3ae423417a01a10aa1d3bc7c6b95059d6","affectsGlobalScope":true},"5153a2fd150e46ce57bb3f8db1318d33f6ad3261ed70ceeff92281c0608c74a3","210d54cd652ec0fec8c8916e4af59bb341065576ecda039842f9ffb2e908507c","36b03690b628eab08703d63f04eaa89c5df202e5f1edf3989f13ad389cd2c091","0effadd232a20498b11308058e334d3339cc5bf8c4c858393e38d9d4c0013dcf","25846d43937c672bab7e8195f3d881f93495df712ee901860effc109918938cc","ff1bad1849903b15fba47f3c29bdec5f97324874c93933a89b2bca28a23977fb","1b952304137851e45bc009785de89ada562d9376177c97e37702e39e60c2f1ff","69ee23dd0d215b09907ad30d23f88b7790c93329d1faf31d7835552a10cf7cbf","44b8b584a338b190a59f4f6929d072431950c7bd92ec2694821c11bce180c8a5","23b89798789dffbd437c0c423f5d02d11f9736aea73d6abf16db4f812ff36eda",{"version":"ce29decface8937cc37bd5975b2fc40412bf2c075fcb069e5482e7ffdfff504f","affectsGlobalScope":true},{"version":"3c4ba1dd9b12ffa284b565063108f2f031d150ea15b8fafbdc17f5d2a07251f3","affectsGlobalScope":true},"e10177274a35a9d07c825615340b2fcde2f610f53f3fb40269fd196b4288dda6","1422cd9e705adcc09088fda85a900c2b70e3ad36ea85846f68bd1a884cdf4e2b","3c13ef48634e7b5012fcf7e8fce7496352c2d779a7201389ca96a2a81ee4314d","5d0a25ec910fa36595f85a67ac992d7a53dd4064a1ba6aea1c9f14ab73a023f2",{"version":"22d7b95cb63dead43834ae20ee492c9c8b6d90db3957d21665199f0efb1d3e26","affectsGlobalScope":true},{"version":"a9fc1469744055a3435f203123246b96c094e7ff8c4e1c3863829d9b705b7a34","affectsGlobalScope":true},"868831cab82b65dfe1d68180e898af1f2101e89ba9b754d1db6fb8cc2fac1921","0fe8985a28f82c450a04a6edf1279d7181c0893f37da7d2a27f8efd4fd5edb03","e59a892d87e72733e2a9ca21611b9beb52977be2696c7ba4b216cbbb9a48f5aa",{"version":"52120bb7e4583612225bdf08e7c12559548170f11e660d33a33623bae9bbdbba","affectsGlobalScope":true},"8a300fa9b698845a1f9c41ecbe2c5966634582a8e2020d51abcace9b55aa959e",{"version":"ab9b9a36e5284fd8d3bf2f7d5fcbc60052f25f27e4d20954782099282c60d23e","affectsGlobalScope":true},"d5be4343a9ace4611f04a6fffd91ceba91265fa15bfb0149306e0a6963e1a015","3b8ac5f54f287ac748e109a2639392ee70ae7e9a3f58ee637e21e1b3d57bed03","8f07f2b6514744ac96e51d7cb8518c0f4de319471237ea10cf688b8d0e9d0225","bcb6ea18f23dae2c48459d7b86d3adccd6898f824fcbf9da08b935f559896580","1363ba7d52f2353d0c4306d0ecdaf171bf4509c0148842f9fd8d3986c098a2eb","11e1ca6d427a2d9472ca610ef12698684e2809ca463c5518cc9f883e96288caf","739c2c46edc112421fc023c24b4898b1f413f792bb6a02b40ba182c648e56c2f","858d0d831826c6eb563df02f7db71c90e26deadd0938652096bea3cc14899700","8885cf05f3e2abf117590bbb951dcf6359e3e5ac462af1c901cfd24c6a6472e2","e4de16da5082cd440c0e19bcf219c5c4a7f3c3104d97db3bb6ee5b9c2a9a1bdd","5e92a2e8ba5cbcdfd9e51428f94f7bd0ab6e45c9805b1c9552b64abaffad3ce3","53ca39fe70232633759dd3006fc5f467ecda540252c0c819ab53e9f6ad97b226","e7174a839d4732630d904a8b488f22380e5bcf1d6405d1f59614e10795eca17d","7ec359bbc29b69d4063fe7dad0baaf35f1856f914db16b3f4f6e3e1bca4099fa","1fa3342736ff551848cdcd8edeece95b2016448364b3e9ad1cb70e86e28f42a1","5ca9f5cc0104446228a0c6c1f353d49a9b92d40fa7096479595d62061e8279c9","4c1eed2b08adb0d98eb9551d426c43e3426282aa544559d30e05e5998e46321b","436598e80d4957d007b84bd7255394057848ab310895e2dcaebc5debb932fdbc","74f2815d9e1b8530120dcad409ed5f706df8513c4d93e99fc6213997aa4dd60e","9d1f36ccd354f2e286b909bf01d626a3a28dd6590770303a18afa7796fe50db9","c4bc6a572f9d763ac7fa0d839be3de80273a67660e2002e3225e00ef716b4f37","106e607866d6c3e9a497a696ac949c3e2ec46b6e7dda35aabe76100bf740833b","83e9c7cbe3bc85e21727c77eb6fe91c44d2076c6458729ff137eb95feebc2c10","d4514d11e7d11c53da7d43b948654d6e608a3d93d666a36f8d01e18ece04c9bd","3d65182eff7bbb16de1a69e17651c51083f740af11a1a92359be6dab939e8bcf","78537f1b16692afdddef1b5c8981cea4a1be030eaca482bd5566b44cffa5192b","5af924defa85825aa63f023b562727d5bc7f91e71363e3f7ae24392bede17066","4d5fb5d6b35f731b2ae4d9d7c592d48e91d6de531dd130628edf4eba16add893","d12ab69ace581804d4f264eabc71094ca8dadfa70ae2bf5ccd54a8d6105ab84b","d757ef86e18b87094ad733c2a1ed7acc21878f5feb931bea64643f40a84e688c","6cb8dc4e3d4357c8badd567bd090aceedcd0d2afa4987f46471ba602956af034","8b0943864dafdf38b7c8cfbc736c04c5e65653837d85177aebde0732f34be8be","e666e31d323fef5642f87db0da48a83e58f0aaf9e3823e87eabd8ec7e0441a36","caeae351358d6c5b8da971c4ba7973987cbbbe4766081d07394e51c5544c8727","a23dd1a2177fda8e2d0e79874f4a150353d10e60ea3e9c690d7ca05b4775e542","e72396ce544667ab49df38ffb91cb3f80ff17d2ad3df903ec30b1d2ca8ea68de","b7e28e06011460436d5c2ec2996846ac0c451e135357fc5a7269e5665a32fbd7","647550b021976e287be83dd5c1a0919d2d99c47ffc470c80880f670ca4f395ab","aae7ec197d95633437bc3023739cd955344559932ae07c25fea7600c2eb0e2f0","d979524749bd1873e4e7a63b9551381711855a1bd5fc4be394b64568de6adc6d","9a82b3cd322d6b46c2407c162bbfd0b13edc9d23dced719a751a481b985690a0","13446337b269b3a8fdac668f9cf831b313529aea23f26621ecf5097c3e53bb25","f63e23230f3960b712450cf08f0f31e56acdae3ce65e0bf31bfdd6442b29d115","f2d1a59a658165341b0e2b7879aa2e19ea6a709146b2d3f70ee8a07159d3d08e","46e1ed17157235f8bf123517f691d1f93c6bffda998f6cd9fee470f2968b58c9","ba88974db5ce05013d08e521d5d1c2266ed5bfafac02763d18e15b3ced925c88",{"version":"67df11fb5478a41ff289fc72ae13789a7b4a57f81b9e2ab65ffa297690f98d15","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"9289f24e698d4e17863ea907ec75b1942aa382b6da49c364fd12b9a6614039cc","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"}],"root":[[71,88],[90,94],[97,101],217,218],"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":[[104,164],[164],[118,164],[121,164],[122,127,155,164],[123,134,135,142,152,163,164],[123,124,134,142,164],[125,164],[126,127,135,143,164],[127,152,160,164],[128,130,134,142,164],[129,164],[130,131,164],[134,164],[132,134,164],[134,135,136,152,163,164],[134,135,136,149,152,155,164],[164,168],[130,134,137,142,152,163,164],[134,135,137,138,142,152,160,163,164],[137,139,152,160,163,164],[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,168,169,170],[134,140,164],[141,163,164],[130,134,142,152,164],[143,164],[144,164],[121,145,164],[146,162,164,168],[147,164],[148,164],[134,149,150,164],[149,151,164,166],[122,134,152,153,154,155,164],[122,152,154,164],[152,153,164],[155,164],[156,164],[121,152,164],[134,158,159,164],[158,159,164],[127,142,152,160,164],[161,164],[142,162,164],[122,137,148,163,164],[127,164],[152,164,165],[164,166],[164,167],[122,127,134,136,145,152,163,164,166,168],[152,164,169],[107,114,116,164],[107,108,109,164],[107,164],[107,108,164],[164,202],[111,164],[106,111,164],[106,111,112,164],[164,213],[164,206],[164,211],[115,164],[106,164],[102,164],[102,103,106,164],[164,193],[164,191,193],[164,182,190,191,192,194],[164,180],[164,183,188,193,196],[164,179,196],[164,183,184,187,188,196],[164,183,184,185,187,188,196],[164,180,181,182,183,184,188,189,190,192,193,194,196],[164,178,180,181,182,183,184,185,187,188,189,190,191,192,193,194,195],[164,178,196],[164,183,185,186,188,196],[164,187,196],[164,188,189,193,196],[164,181,191],[105,164],[164,178],[164,198,199,200],[164,197,198,199,200,210],[164,198,199],[134,135,137,139,142,152,160,163,164,169,171,172,173,174,175,176,177,196],[164,174],[164,175],[164,176],[107,110,113,114,117,135,164,168,197,201,203,204,205,207,208,209,210],[107,110,113,114,117,135,164,168,197,201,203,204,205,207,208,209,210,212,214,215],[68,164],[61,164],[61,63,164],[61,62,63,64,65,66,67,68,69,164],[61,62,64,65,66,67,164],[70,73,74,164],[70,164],[77,164],[70,76,79,164],[70,71,164],[70,71,72,164],[70,72,73,83,84,85,164],[70,73,81,82,164],[70,81,90,164],[70,72,164],[70,73,164],[71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,90,91,92,93,94,97,98,99,100,164],[89,164],[97,164,216],[95,96,164],[94,164,216],[93,164],[104,219],[219],[107,114,116,219],[107,108,109,219],[107,219],[107,108,219],[202,219],[111,219],[106,111,219],[106,111,112,219],[213,219],[206,219],[211,219],[115,219],[106,219],[102,219],[102,103,106,219],[105,219],[178,219],[107,110,113,114,117,203,204,207,209,210,219,220,221,222,223,224,225,226],[107,110,113,114,117,203,204,207,209,210,212,214,215,219,220,221,222,223,224,225,226],[68,219],[61,219],[61,63,219],[61,62,63,64,65,66,67,68,69,219],[61,62,64,65,66,67,219],[70],[71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,90,91,92,93,94,97,98,99,100],[89]],"referencedMap":[[105,1],[104,2],[114,2],[118,3],[119,3],[121,4],[122,5],[123,6],[124,7],[125,8],[126,9],[127,10],[128,11],[129,12],[130,13],[131,13],[133,14],[132,15],[134,14],[135,16],[136,17],[120,18],[170,2],[137,19],[138,20],[139,21],[171,22],[140,23],[141,24],[142,25],[143,26],[144,27],[145,28],[146,29],[147,30],[148,31],[149,32],[150,32],[151,33],[152,34],[154,35],[153,36],[155,37],[156,38],[157,39],[158,40],[159,41],[160,42],[161,43],[162,44],[163,45],[164,46],[165,47],[166,48],[167,49],[168,50],[169,51],[117,52],[110,53],[108,54],[109,55],[202,55],[203,56],[111,2],[213,57],[112,58],[113,59],[206,59],[214,60],[207,61],[212,62],[116,63],[115,64],[103,65],[107,66],[102,2],[172,2],[89,2],[95,2],[96,2],[194,67],[192,68],[193,69],[181,70],[182,68],[189,71],[180,72],[185,73],[195,2],[186,74],[191,75],[196,76],[179,77],[187,78],[188,79],[183,80],[190,67],[184,81],[106,82],[209,2],[176,2],[178,83],[204,2],[211,2],[59,2],[60,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],[26,2],[23,2],[24,2],[25,2],[27,2],[28,2],[29,2],[5,2],[30,2],[31,2],[32,2],[33,2],[6,2],[37,2],[34,2],[35,2],[36,2],[38,2],[7,2],[39,2],[44,2],[45,2],[40,2],[41,2],[42,2],[43,2],[8,2],[49,2],[46,2],[47,2],[48,2],[50,2],[9,2],[51,2],[52,2],[53,2],[56,2],[54,2],[55,2],[57,2],[10,2],[1,2],[11,2],[58,2],[205,84],[201,84],[208,85],[200,86],[199,2],[197,87],[175,88],[174,2],[198,89],[177,2],[173,90],[215,91],[216,92],[210,91],[69,93],[62,94],[66,94],[65,95],[61,2],[63,94],[70,96],[68,97],[67,94],[64,94],[75,98],[76,99],[77,2],[78,100],[80,101],[71,99],[81,102],[82,99],[73,103],[86,104],[87,99],[88,105],[79,99],[91,106],[83,107],[74,107],[92,108],[72,99],[93,2],[101,109],[90,110],[99,99],[100,2],[98,99],[84,2],[217,111],[97,112],[218,113],[94,114],[85,2]],"exportedModulesMap":[[105,115],[104,116],[114,116],[118,3],[119,3],[121,4],[122,5],[123,6],[124,7],[125,8],[126,9],[127,10],[128,11],[129,12],[130,13],[131,13],[133,14],[132,15],[134,14],[135,16],[136,17],[120,18],[170,2],[137,19],[138,20],[139,21],[171,22],[140,23],[141,24],[142,25],[143,26],[144,27],[145,28],[146,29],[147,30],[148,31],[149,32],[150,32],[151,33],[152,34],[154,35],[153,36],[155,37],[156,38],[157,39],[158,40],[159,41],[160,42],[161,43],[162,44],[163,45],[164,46],[165,47],[166,48],[167,49],[168,50],[169,51],[117,117],[110,118],[108,119],[109,120],[202,120],[203,121],[111,116],[213,122],[112,123],[113,124],[206,124],[214,125],[207,126],[212,127],[116,128],[115,129],[103,130],[107,131],[102,116],[172,116],[89,116],[95,116],[96,116],[194,67],[192,68],[193,69],[181,70],[182,68],[189,71],[180,72],[185,73],[195,2],[186,74],[191,75],[196,76],[179,77],[187,78],[188,79],[183,80],[190,67],[184,81],[106,132],[209,116],[176,2],[178,133],[204,116],[211,116],[59,116],[60,116],[12,116],[14,116],[13,116],[2,116],[15,116],[16,116],[17,116],[18,116],[19,116],[20,116],[21,116],[22,116],[3,116],[4,116],[26,116],[23,116],[24,116],[25,116],[27,116],[28,116],[29,116],[5,116],[30,116],[31,116],[32,116],[33,116],[6,116],[37,116],[34,116],[35,116],[36,116],[38,116],[7,116],[39,116],[44,116],[45,116],[40,116],[41,116],[42,116],[43,116],[8,116],[49,116],[46,116],[47,116],[48,116],[50,116],[9,116],[51,116],[52,116],[53,116],[56,116],[54,116],[55,116],[57,116],[10,116],[1,116],[11,116],[58,116],[205,84],[201,84],[208,85],[200,86],[199,2],[197,87],[175,88],[174,2],[198,89],[177,2],[173,90],[215,134],[216,135],[210,134],[69,136],[62,137],[66,137],[65,138],[61,116],[63,137],[70,139],[68,140],[67,137],[64,137],[75,141],[76,141],[80,141],[71,141],[81,141],[82,141],[73,141],[86,141],[87,141],[88,141],[79,141],[91,141],[83,141],[74,141],[92,141],[72,141],[101,142],[90,143],[99,141],[98,141]],"semanticDiagnosticsPerFile":[105,104,114,118,119,121,122,123,124,125,126,127,128,129,130,131,133,132,134,135,136,120,170,137,138,139,171,140,141,142,143,144,145,146,147,148,149,150,151,152,154,153,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,117,110,108,109,202,203,111,213,112,113,206,214,207,212,116,115,103,107,102,172,89,95,96,194,192,193,181,182,189,180,185,195,186,191,196,179,187,188,183,190,184,106,209,176,178,204,211,59,60,12,14,13,2,15,16,17,18,19,20,21,22,3,4,26,23,24,25,27,28,29,5,30,31,32,33,6,37,34,35,36,38,7,39,44,45,40,41,42,43,8,49,46,47,48,50,9,51,52,53,56,54,55,57,10,1,11,58,205,201,208,200,199,197,175,174,198,177,173,215,216,210,69,62,66,65,61,63,70,68,67,64,75,76,77,78,80,71,81,82,73,86,87,88,79,91,83,74,92,72,93,101,90,99,100,98,84,217,97,218,94,85]},"version":"5.1.6"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import type { ExtendedRecordMap, PageMap, PageChunk } from '@texonom/ntypes';
|
|
2
|
+
export type PageTree = {
|
|
3
|
+
id: string;
|
|
4
|
+
type: string;
|
|
5
|
+
blocks: number;
|
|
6
|
+
pages: number;
|
|
7
|
+
parent?: PageTree;
|
|
8
|
+
children: PageTree[];
|
|
9
|
+
};
|
|
10
|
+
/**
|
|
11
|
+
* Performs a traversal over a given Notion workspace starting from a seed page.
|
|
12
|
+
*
|
|
13
|
+
* Returns a map containing all of the pages that are reachable from the seed
|
|
14
|
+
* page in the space.
|
|
15
|
+
*
|
|
16
|
+
* If `rootSpaceId` is not defined, the space ID of the root page will be used
|
|
17
|
+
* to scope traversal.
|
|
18
|
+
*
|
|
19
|
+
*
|
|
20
|
+
* @param rootPageId - Page ID to start from.
|
|
21
|
+
* @param rootSpaceId - Space ID to scope traversal.
|
|
22
|
+
* @param getPage - Function used to fetch a single page.
|
|
23
|
+
* @param opts - Optional config
|
|
24
|
+
*/
|
|
25
|
+
export declare function getAllInSpace(startPageId: string, getPage: (pageId: string) => Promise<ExtendedRecordMap>, getBlocks: (blockIds: string[]) => Promise<PageChunk>, fetchCollections: (contentBlockIds: string[], recordMap: ExtendedRecordMap, pageId?: string) => Promise<void>, startRecordMap?: ExtendedRecordMap): Promise<{
|
|
26
|
+
recordMap: ExtendedRecordMap;
|
|
27
|
+
pageMap: PageMap;
|
|
28
|
+
pageTree: PageTree;
|
|
29
|
+
}>;
|
|
30
|
+
export declare function recursivePageTree(recordMap: ExtendedRecordMap, pageTree: PageTree): PageTree;
|
|
31
|
+
export declare function getPageSync(pageId: string, recordMap: ExtendedRecordMap, getBlocks: (blockIds: string[]) => Promise<PageChunk>): Promise<ExtendedRecordMap>;
|
|
32
|
+
//# sourceMappingURL=get-all-in-space.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get-all-in-space.d.ts","sourceRoot":"","sources":["../src/get-all-in-space.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,iBAAiB,EAAE,OAAO,EAAE,SAAS,EAAY,MAAM,iBAAiB,CAAA;AAEtF,MAAM,MAAM,QAAQ,GAAG;IACrB,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,EAAE,MAAM,CAAA;IACd,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,CAAC,EAAE,QAAQ,CAAA;IACjB,QAAQ,EAAE,QAAQ,EAAE,CAAA;CACrB,CAAA;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAsB,aAAa,CACjC,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,iBAAiB,CAAC,EACvD,SAAS,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,OAAO,CAAC,SAAS,CAAC,EACrD,gBAAgB,EAAE,CAAC,eAAe,EAAE,MAAM,EAAE,EAAE,SAAS,EAAE,iBAAiB,EAAE,MAAM,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,EAC7G,cAAc,CAAC,EAAE,iBAAiB,GACjC,OAAO,CAAC;IAAE,SAAS,EAAE,iBAAiB,CAAC;IAAC,OAAO,EAAE,OAAO,CAAC;IAAC,QAAQ,EAAE,QAAQ,CAAA;CAAE,CAAC,CAsEjF;AAED,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,iBAAiB,EAAE,QAAQ,EAAE,QAAQ,GAAG,QAAQ,CA+D5F;AAED,wBAAsB,WAAW,CAC/B,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,iBAAiB,EAC5B,SAAS,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,OAAO,CAAC,SAAS,CAAC,GACpD,OAAO,CAAC,iBAAiB,CAAC,CAmG5B"}
|
|
@@ -14,9 +14,9 @@ import type { ExtendedRecordMap, PageMap } from '@texonom/ntypes';
|
|
|
14
14
|
* @param getPage - Function used to fetch a single page.
|
|
15
15
|
* @param opts - Optional config
|
|
16
16
|
*/
|
|
17
|
-
export declare function
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
}
|
|
17
|
+
export declare function getAllInSpace(startPageId: string, getPage: (pageId: string) => Promise<ExtendedRecordMap>): Promise<{
|
|
18
|
+
recordMap: ExtendedRecordMap;
|
|
19
|
+
pageMap: PageMap;
|
|
20
|
+
pageTree: unknown;
|
|
21
|
+
}>;
|
|
22
22
|
//# sourceMappingURL=get-all-pages-in-space.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get-all-pages-in-space.d.ts","sourceRoot":"","sources":["../src/get-all-pages-in-space.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"get-all-pages-in-space.d.ts","sourceRoot":"","sources":["../src/get-all-pages-in-space.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,iBAAiB,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAA;AAEjE;;;;;;;;;;;;;;GAcG;AACH,wBAAsB,aAAa,CACjC,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,iBAAiB,CAAC,GACtD,OAAO,CAAC;IAAE,SAAS,EAAE,iBAAiB,CAAC;IAAC,OAAO,EAAE,OAAO,CAAC;IAAC,QAAQ,EAAE,OAAO,CAAA;CAAE,CAAC,CAWhF"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { Block, ExtendedRecordMap, PageBlock } from '@texonom/ntypes';
|
|
1
|
+
import type { Block, ExtendedRecordMap, PageBlock, Collection, Space } from '@texonom/ntypes';
|
|
2
2
|
/**
|
|
3
3
|
* Returns the parent page block containing a given page.
|
|
4
4
|
*
|
|
@@ -8,4 +8,7 @@ import type { Block, ExtendedRecordMap, PageBlock } from '@texonom/ntypes';
|
|
|
8
8
|
export declare const getBlockParentPage: (block: Block, recordMap: ExtendedRecordMap, { inclusive }?: {
|
|
9
9
|
inclusive?: boolean;
|
|
10
10
|
}) => PageBlock | null;
|
|
11
|
+
export declare const getBlockParent: (block: Block, recordMap: ExtendedRecordMap, { inclusive }?: {
|
|
12
|
+
inclusive?: boolean;
|
|
13
|
+
}) => PageBlock | Collection | Space;
|
|
11
14
|
//# sourceMappingURL=get-block-parent-page.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get-block-parent-page.d.ts","sourceRoot":"","sources":["../src/get-block-parent-page.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,iBAAiB,EAAE,SAAS,
|
|
1
|
+
{"version":3,"file":"get-block-parent-page.d.ts","sourceRoot":"","sources":["../src/get-block-parent-page.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,iBAAiB,EAAE,SAAS,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAA;AAE7F;;;;;GAKG;AACH,eAAO,MAAM,kBAAkB,UACtB,KAAK,aACD,iBAAiB;gBAId,OAAO;MAEpB,SAAS,GAAG,IAmBd,CAAA;AAED,eAAO,MAAM,cAAc,UAClB,KAAK,aACD,iBAAiB;gBAId,OAAO;MAEpB,SAAS,GAAG,UAAU,GAAG,KAqB3B,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get-canonical-page-id.d.ts","sourceRoot":"","sources":["../src/get-canonical-page-id.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"get-canonical-page-id.d.ts","sourceRoot":"","sources":["../src/get-canonical-page-id.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAA;AAExD;;GAEG;AACH,eAAO,MAAM,kBAAkB,WACrB,MAAM,aACH,iBAAiB;WACF,OAAO;MAChC,MAAM,GAAG,IAwBX,CAAA"}
|
|
@@ -2,7 +2,7 @@ import type { ExtendedRecordMap } from '@texonom/ntypes';
|
|
|
2
2
|
/**
|
|
3
3
|
* Gets the IDs of all blocks contained on a page starting from a root block ID.
|
|
4
4
|
*/
|
|
5
|
-
export declare const getPageContentBlockIds: (recordMap: ExtendedRecordMap, blockId?: string) => string[];
|
|
5
|
+
export declare const getPageContentBlockIds: (recordMap: ExtendedRecordMap, blockId?: string, locust?: boolean) => string[];
|
|
6
6
|
/**
|
|
7
7
|
* Gets the IDs of all blocks contained on a page starting from a root block ID.
|
|
8
8
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get-page-content-block-ids.d.ts","sourceRoot":"","sources":["../src/get-page-content-block-ids.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAc,MAAM,iBAAiB,CAAA;AAEpE;;GAEG;AACH,eAAO,MAAM,sBAAsB,cAAe,iBAAiB,YAAY,MAAM,
|
|
1
|
+
{"version":3,"file":"get-page-content-block-ids.d.ts","sourceRoot":"","sources":["../src/get-page-content-block-ids.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAc,MAAM,iBAAiB,CAAA;AAEpE;;GAEG;AACH,eAAO,MAAM,sBAAsB,cAAe,iBAAiB,YAAY,MAAM,uBAAmB,MAAM,EAoC7G,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,qBAAqB,cAAe,iBAAiB,YAAY,MAAM,KAAG,MAAM,EAoB5F,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get-page-title.d.ts","sourceRoot":"","sources":["../src/get-page-title.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAA;
|
|
1
|
+
{"version":3,"file":"get-page-title.d.ts","sourceRoot":"","sources":["../src/get-page-title.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAA;AAIxD,wBAAgB,YAAY,CAAC,SAAS,EAAE,iBAAiB,UAMxD"}
|
package/build/index.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Decoration, Block, ExtendedRecordMap, FormattedDate, PageBlock, ID, BlockType,
|
|
1
|
+
import { Decoration, Block, ExtendedRecordMap, FormattedDate, PageBlock, Collection, Space, ID, BlockType, PageChunk, PageMap } from '@texonom/ntypes';
|
|
2
2
|
export { default as isUrl } from 'is-url-superb';
|
|
3
3
|
|
|
4
4
|
/**
|
|
@@ -46,6 +46,9 @@ declare const getDateValue: (prop: any[]) => FormattedDate | null;
|
|
|
46
46
|
declare const getBlockParentPage: (block: Block, recordMap: ExtendedRecordMap, { inclusive }?: {
|
|
47
47
|
inclusive?: boolean;
|
|
48
48
|
}) => PageBlock | null;
|
|
49
|
+
declare const getBlockParent: (block: Block, recordMap: ExtendedRecordMap, { inclusive }?: {
|
|
50
|
+
inclusive?: boolean;
|
|
51
|
+
}) => PageBlock | Collection | Space;
|
|
49
52
|
|
|
50
53
|
interface TableOfContentsEntry {
|
|
51
54
|
id: ID;
|
|
@@ -62,7 +65,7 @@ declare const getPageTableOfContents: (page: PageBlock, recordMap: ExtendedRecor
|
|
|
62
65
|
/**
|
|
63
66
|
* Gets the IDs of all blocks contained on a page starting from a root block ID.
|
|
64
67
|
*/
|
|
65
|
-
declare const getPageContentBlockIds: (recordMap: ExtendedRecordMap, blockId?: string) => string[];
|
|
68
|
+
declare const getPageContentBlockIds: (recordMap: ExtendedRecordMap, blockId?: string, locust?: boolean) => string[];
|
|
66
69
|
/**
|
|
67
70
|
* Gets the IDs of all blocks contained on a page starting from a root block ID.
|
|
68
71
|
*/
|
|
@@ -81,6 +84,14 @@ declare const idToUuid: (id?: string) => string;
|
|
|
81
84
|
|
|
82
85
|
declare const uuidToId: (uuid: string) => string;
|
|
83
86
|
|
|
87
|
+
type PageTree = {
|
|
88
|
+
id: string;
|
|
89
|
+
type: string;
|
|
90
|
+
blocks: number;
|
|
91
|
+
pages: number;
|
|
92
|
+
parent?: PageTree;
|
|
93
|
+
children: PageTree[];
|
|
94
|
+
};
|
|
84
95
|
/**
|
|
85
96
|
* Performs a traversal over a given Notion workspace starting from a seed page.
|
|
86
97
|
*
|
|
@@ -96,11 +107,13 @@ declare const uuidToId: (uuid: string) => string;
|
|
|
96
107
|
* @param getPage - Function used to fetch a single page.
|
|
97
108
|
* @param opts - Optional config
|
|
98
109
|
*/
|
|
99
|
-
declare function
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
}
|
|
110
|
+
declare function getAllInSpace(startPageId: string, getPage: (pageId: string) => Promise<ExtendedRecordMap>, getBlocks: (blockIds: string[]) => Promise<PageChunk>, fetchCollections: (contentBlockIds: string[], recordMap: ExtendedRecordMap, pageId?: string) => Promise<void>, startRecordMap?: ExtendedRecordMap): Promise<{
|
|
111
|
+
recordMap: ExtendedRecordMap;
|
|
112
|
+
pageMap: PageMap;
|
|
113
|
+
pageTree: PageTree;
|
|
114
|
+
}>;
|
|
115
|
+
declare function recursivePageTree(recordMap: ExtendedRecordMap, pageTree: PageTree): PageTree;
|
|
116
|
+
declare function getPageSync(pageId: string, recordMap: ExtendedRecordMap, getBlocks: (blockIds: string[]) => Promise<PageChunk>): Promise<ExtendedRecordMap>;
|
|
104
117
|
|
|
105
118
|
/**
|
|
106
119
|
* Gets the canonical, display-friendly version of a page's ID for use in URLs.
|
|
@@ -171,4 +184,8 @@ declare function estimatePageReadTime(block: Block, recordMap: ExtendedRecordMap
|
|
|
171
184
|
*/
|
|
172
185
|
declare function estimatePageReadTimeAsHumanizedString(block: Block, recordMap: ExtendedRecordMap, opts: EstimatePageReadTimeOptions): string;
|
|
173
186
|
|
|
174
|
-
|
|
187
|
+
declare const defaultMapImageUrl: (url: string, block: Block) => string | null;
|
|
188
|
+
|
|
189
|
+
declare const defaultMapPageUrl: (rootPageId?: string) => (pageId: string) => string;
|
|
190
|
+
|
|
191
|
+
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 };
|
package/build/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAA;AAClC,cAAc,mBAAmB,CAAA;AACjC,cAAc,kBAAkB,CAAA;AAChC,cAAc,2BAA2B,CAAA;AACzC,cAAc,kBAAkB,CAAA;AAChC,cAAc,qBAAqB,CAAA;AACnC,cAAc,kBAAkB,CAAA;AAChC,cAAc,yBAAyB,CAAA;AACvC,cAAc,8BAA8B,CAAA;AAC5C,cAAc,8BAA8B,CAAA;AAC5C,cAAc,iBAAiB,CAAA;AAC/B,cAAc,cAAc,CAAA;AAC5B,cAAc,cAAc,CAAA;AAC5B,cAAc,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAA;AAClC,cAAc,mBAAmB,CAAA;AACjC,cAAc,kBAAkB,CAAA;AAChC,cAAc,2BAA2B,CAAA;AACzC,cAAc,kBAAkB,CAAA;AAChC,cAAc,qBAAqB,CAAA;AACnC,cAAc,kBAAkB,CAAA;AAChC,cAAc,yBAAyB,CAAA;AACvC,cAAc,8BAA8B,CAAA;AAC5C,cAAc,8BAA8B,CAAA;AAC5C,cAAc,iBAAiB,CAAA;AAC/B,cAAc,cAAc,CAAA;AAC5B,cAAc,cAAc,CAAA;AAC5B,cAAc,oBAAoB,CAAA;AAClC,cAAc,yBAAyB,CAAA;AACvC,cAAc,wBAAwB,CAAA;AACtC,cAAc,uBAAuB,CAAA;AACrC,cAAc,UAAU,CAAA;AACxB,cAAc,iBAAiB,CAAA;AAC/B,cAAc,mBAAmB,CAAA;AACjC,cAAc,qBAAqB,CAAA;AACnC,cAAc,eAAe,CAAA;AAC7B,cAAc,2BAA2B,CAAA;AACzC,cAAc,kBAAkB,CAAA;AAChC,cAAc,2BAA2B,CAAA;AACzC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,gBAAgB,CAAA"}
|
package/build/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
var q=Object.defineProperty,N=Object.defineProperties;var V=Object.getOwnPropertyDescriptors;var E=Object.getOwnPropertySymbols;var H=Object.prototype.hasOwnProperty,Q=Object.prototype.propertyIsEnumerable;var C=(e,t,o)=>t in e?q(e,t,{enumerable:!0,configurable:!0,writable:!0,value:o}):e[t]=o,y=(e,t)=>{for(var o in t||(t={}))H.call(t,o)&&C(e,o,t[o]);if(E)for(var o of E(t))Q.call(t,o)&&C(e,o,t[o]);return e},D=(e,t)=>N(e,V(t));var I=(e,t,o)=>new Promise((n,r)=>{var s=c=>{try{m(o.next(c))}catch(l){r(l)}},a=c=>{try{m(o.throw(c))}catch(l){r(l)}},m=c=>c.done?n(c.value):Promise.resolve(c.value).then(s,a);m((o=o.apply(e,t)).next())});var v=e=>{var t;return e?Array.isArray(e)?(t=e==null?void 0:e.reduce((o,n)=>o+(n[0]!=="\u204D"&&n[0]!=="\u2023"?n[0]:""),""))!=null?t:"":e:""};function h(e,t){var r,s,a,m,c,l,i;let o=e.collection_id||((s=(r=e.format)==null?void 0:r.collection_pointer)==null?void 0:s.id);if(o)return o;let n=(a=e==null?void 0:e.view_ids)==null?void 0:a[0];if(n){let u=(c=(m=t.collection_view)==null?void 0:m[n])==null?void 0:c.value;if(u)return(i=(l=u.format)==null?void 0:l.collection_pointer)==null?void 0:i.id}return null}function R(e,t){var o,n;if((o=e.properties)!=null&&o.title)return v(e.properties.title);if(e.type==="collection_view_page"||e.type==="collection_view"){let r=h(e,t);if(r){let s=(n=t.collection[r])==null?void 0:n.value;if(s)return v(s.name)}}return""}function B(e,t){var o,n,r;if((o=e.format)!=null&&o.page_icon)return(n=e.format)==null?void 0:n.page_icon;if(e.type==="collection_view_page"||e.type==="collection_view"){let s=h(e,t);if(s){let a=(r=t.collection[s])==null?void 0:r.value;if(a)return a.icon}}return null}function de(e){var o;let t=(o=e.block[Object.keys(e.block)[0]])==null?void 0:o.value;return t?R(t,e):null}function $(e,t,o){var n;try{if(!t.properties||!Object.keys(o.collection))return null;let r=(n=o.collection[t.parent_id])==null?void 0:n.value;if(r){let s=e.toLowerCase(),a=Object.keys(r.schema).find(l=>{var i,u;return((u=(i=r.schema[l])==null?void 0:i.name)==null?void 0:u.toLowerCase())===s});if(!a)return null;let{type:m}=r.schema[a],c=v(t.properties[a]);switch(m){case"created_time":return t.created_time;case"multi_select":return c.split(",");case"date":{let i=t.properties[a][0][1][0][1];if(i.type=="datetime")return new Date(`${i.start_date} ${i.start_time}`).getTime();if(i.type=="date")return new Date(i.start_date).getTime();if(i.type=="datetimerange"){let{start_date:u,start_time:x,end_date:p,end_time:k}=i,b=new Date(`${u} ${x}`).getTime(),f=new Date(`${p} ${k}`).getTime();return[b,f]}else{let u=new Date(i.start_date).getTime(),x=new Date(i.end_date).getTime();return[u,x]}}case"checkbox":return c=="Yes";case"last_edited_time":return t.last_edited_time;default:return c}}}catch(r){}return null}var Y=e=>{if(e&&Array.isArray(e)){if(e[0]==="d")return e[1];for(let t of e){let o=Y(t);if(o)return o}}return null};var U=(e,t,{inclusive:o=!1}={})=>{var r,s;let n=e;for(;n!=null;){if(o&&(n==null?void 0:n.type)==="page")return n;let a=n.parent_id,m=n.parent_table;if(!a)break;if(m==="collection")n=(r=t.collection[a])==null?void 0:r.value;else if(n=(s=t.block[a])==null?void 0:s.value,(n==null?void 0:n.type)==="page")return n}return null};var Z={header:0,sub_header:1,sub_sub_header:2},O=(e,t)=>{var r;let o=((r=e.content)!=null?r:[]).map(s=>{var m,c;let a=(m=t.block[s])==null?void 0:m.value;if(a){let{type:l}=a;if(l==="header"||l==="sub_header"||l==="sub_sub_header")return{id:s,type:l,text:v((c=a.properties)==null?void 0:c.title),indentLevel:Z[l]}}return null}).filter(Boolean),n=[{actual:-1,effective:-1}];for(let s of o){let{indentLevel:a}=s,m=a;do{let c=n[n.length-1],{actual:l,effective:i}=c;if(m>l)s.indentLevel=i+1,n.push({actual:m,effective:s.indentLevel});else if(m===l){s.indentLevel=i;break}else n.pop()}while(!0)}return o};var Re=(e,t)=>{let o=t||Object.keys(e.block)[0],n=new Set;function r(s,a=!1){var x,p;if(n.has(s)||(n.add(s),!a))return;let m=(x=e.block[s])==null?void 0:x.value;if(!m)return;let{content:c,type:l,properties:i,format:u}=m;if(i)for(let k of Object.keys(i)){let b=i[k];b.map(f=>{var _,g;let d=(g=(_=f==null?void 0:f[0])==null?void 0:_[1])==null?void 0:g[0];(d==null?void 0:d[0])==="p"&&d[1]&&r(d[1])}),b.map(f=>{var _;let d=(_=f==null?void 0:f[1])==null?void 0:_[0];((d==null?void 0:d[0])==="p"||(d==null?void 0:d[0])==="eoi")&&d[1]&&r(d[1])})}if(u){let k=(p=u.transclusion_reference_pointer)==null?void 0:p.id;k&&r(k)}if(!(!c||!Array.isArray(c))&&!(s!==o&&(l==="page"||l==="collection_view_page")))for(let k of c)r(k)}return r(o,!0),Array.from(n)},ve=(e,t)=>{var a;let o=t||Object.keys(e.block)[0],n=new Set,r=(a=e.block[o])==null?void 0:a.value;r!=null&&r.created_by_id&&n.add(r==null?void 0:r.created_by_id),r!=null&&r.last_edited_by_id&&n.add(r==null?void 0:r.last_edited_by_id);let{properties:s}=r;if(s)for(let m of Object.keys(s))s[m].map(l=>{var u;let i=(u=l==null?void 0:l[1])==null?void 0:u[0];(i==null?void 0:i[0])==="u"&&i[1]&&n.add(i[1])});return Array.from(n)};var M=(e="")=>`${e.substr(0,8)}-${e.substr(8,4)}-${e.substr(12,4)}-${e.substr(16,4)}-${e.substr(20)}`;var G=/\b([a-f0-9]{32})\b/,J=/\b([a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12})\b/,S=(e="",{uuid:t=!0}={})=>{if(!e)return null;e=e.split("?")[0];let o=e.match(G);if(o)return t?M(o[1]):o[1];let n=e.match(J);return n?t?n[1]:n[1].replace(/-/g,""):null};var L=e=>e.replace(/-/g,"");import K from"p-queue";function De(a,m,c){return I(this,arguments,function*(e,t,o,{concurrency:n=4,traverseCollections:r=!0,targetPageId:s=null}={}){let l={},i=new Set,u=new K({concurrency:n});function x(p){return I(this,null,function*(){s&&i.has(s)||(p=S(p),p&&!l[p]&&!i.has(p)&&(i.add(p),u.add(()=>I(this,null,function*(){var k,b;try{if(s&&i.has(s)&&p!==s)return;let f=yield o(p);if(!f)return;let d=(b=(k=f.block[p])==null?void 0:k.value)==null?void 0:b.space_id;if(d){if(!t)t=d;else if(t!==d)return}if(Object.keys(f.block).filter(_=>{var T;let g=(T=f.block[_])==null?void 0:T.value;return!(!g||g.type!=="page"&&g.type!=="collection_view_page"||t&&g.space_id&&g.space_id!==t)}).forEach(_=>x(_)),r)for(let _ of Object.values(f.collection_query))for(let g of Object.values(_)){let{blockIds:T}=g;if(T)for(let z of T)x(z)}l[p]=f}catch(f){console.warn("page load error",{pageId:p,spaceId:t},f.statusCode,f.message),l[p]=null}i.delete(p)}))))})}return yield x(e),yield u.onIdle(),l})}var W=e=>(e||"").replace(/ /g,"-").replace(/[^a-zA-Z0-9-\u4e00-\u9FFF\u3041-\u3096\u30A1-\u30FC\u3000-\u303F]/g,"").replace(/--/g,"-").replace(/-$/,"").replace(/^-/,"").trim().toLowerCase();var Ae=(e,t,{uuid:o=!0}={})=>{var s;if(!e||!t)return null;let n=L(e),r=(s=t.block[e])==null?void 0:s.value;if(r){let a=$("slug",r,t)||W(R(r,t));if(a)return o?`${a}-${n}`:a}return n};var Ne=(e,t)=>{var s;let o=e.block,n=[],r=t;do{let a=(s=o[r])==null?void 0:s.value;if(!a)break;let m=R(a,e),c=B(a,e);if(!(m||c))break;n.push({block:a,active:r===t,pageId:r,title:m,icon:c});let l=U(a,e),i=l==null?void 0:l.id;if(!i)break;r=i}while(!0);return n.reverse(),n};import A from"is-url-superb";var Ge=(e,{mapImageUrl:t})=>{let n=Object.keys(e.block).flatMap(r=>{var m,c,l,i,u,x,p,k,b,f,d;let s=(m=e.block[r])==null?void 0:m.value,a=[];if(s){if(s.type==="image"){let T=((c=e.signed_urls)==null?void 0:c[s.id])||((u=(i=(l=s.properties)==null?void 0:l.source)==null?void 0:i[0])==null?void 0:u[0]);T.includes("file.notion.so")&&(T=(k=(p=(x=s.properties)==null?void 0:x.source)==null?void 0:p[0])==null?void 0:k[0]),T&&a.push({block:s,url:T})}if((b=s.format)!=null&&b.page_cover){let g=s.format.page_cover;a.push({block:s,url:g})}if((f=s.format)!=null&&f.bookmark_cover){let g=s.format.bookmark_cover;a.push({block:s,url:g})}if((d=s.format)!=null&&d.bookmark_icon){let g=s.format.bookmark_icon;a.push({block:s,url:g})}let _=B(s,e);_&&A(_)&&a.push({block:s,url:_})}return a}).filter(Boolean).map(({block:r,url:s})=>t(s,r)).filter(Boolean);return Array.from(new Set(n))};import X from"mem";import ee from"normalize-url";var te=X(e=>{if(!e)return"";try{if(e.startsWith("https://www.notion.so/image/")){let t=new URL(e),o=decodeURIComponent(t.pathname.substr(7)),n=te(o);t.pathname=`/image/${encodeURIComponent(n)}`,e=t.toString()}return ee(e,{stripProtocol:!0,stripWWW:!0,stripHash:!0,stripTextFragment:!0,removeQueryParameters:!0})}catch(t){return""}});function tt(e,t){return{block:y(y({},e.block),t.block),collection:y(y({},e.collection),t.collection),collection_view:y(y({},e.collection_view),t.collection_view),notion_user:y(y({},e.notion_user),t.notion_user),collection_query:y(y({},e.collection_query),t.collection_query),signed_urls:y(y({},e.signed_urls),t.signed_urls),preview_images:y(y({},e.preview_images),t.preview_images)}}var j=(e,{month:t="short"}={})=>{let o=new Date(e);return`${o.toLocaleString("en-US",{month:t})} ${o.getUTCDate()}, ${o.getUTCFullYear()}`};var it=e=>{let t=`${e.start_time||""} ${e.start_date} ${e.time_zone||""}`;return j(t)};function oe(e,t,o=[]){var n;if(t.parent_id){o.push(t.parent_id);let r=t.parent_table;if((n=e[r][t.parent_id])!=null&&n.value)return oe(e,e[r][t.parent_id].value,o)}return o}function ne(e,t,{wordsPerMinute:o=275,imageReadTimeInSeconds:n=12}={}){let r=P(e,t),s=r.numWords/o,m=(r.numImages>10?r.numImages/2*(n+3)+(r.numImages-10)*3:r.numImages/2*(2*n+(1-r.numImages)))/60,c=s+m;return D(y({},r),{totalWordsReadTimeInMinutes:s,totalImageReadTimeInMinutes:m,totalReadTimeInMinutes:c})}function ut(e,t,o){let n=ne(e,t,o);return re(n.totalReadTimeInMinutes)}function P(e,t){var n,r,s,a;let o={numWords:0,numImages:0};if(!e)return o;for(let m of e.content||[]){let c=(n=t.block[m])==null?void 0:n.value,l=!1;if(c){switch(c.type){case"quote":case"alias":case"header":case"sub_header":case"sub_sub_header":{let i=R(c,t);o.numWords+=w(i);break}case"callout":case"toggle":case"to_do":case"bulleted_list":case"numbered_list":case"text":{let i=R(c,t);o.numWords+=w(i),l=!0;break}case"embed":case"tweet":case"maps":case"pdf":case"figma":case"typeform":case"codepen":case"excalidraw":case"gist":case"video":case"drive":case"audio":case"file":case"image":o.numImages+=1;break;case"bookmark":o.numImages+=.25;break;case"code":o.numImages+=2;break;case"table":case"collection_view":o.numImages+=2;break;case"column":case"column_list":case"transclusion_container":l=!0;break;case"table_of_contents":{let i=e;if(!i)continue;let u=O(i,t);for(let x of u)o.numWords+=w(x.text);break}case"transclusion_reference":{let i=(s=(r=c==null?void 0:c.format)==null?void 0:r.transclusion_reference_pointer)==null?void 0:s.id;if(!i)continue;let u=(a=t.block[i])==null?void 0:a.value;u&&F(o,P(u,t));break}default:break}l&&F(o,P(c,t))}}return o}function F(e,t){e.numWords+=t.numWords,e.numImages+=t.numImages}function w(e){return e?(e.match(/\w+/g)||[]).length:0}function re(e){return e<.5?"less than a minute":e<1.5?"1 minute":`${Math.ceil(e)} minutes`}export{ne as estimatePageReadTime,ut as estimatePageReadTimeAsHumanizedString,oe as findAncestors,j as formatDate,it as formatNotionDateTime,De as getAllPagesInSpace,h as getBlockCollectionId,B as getBlockIcon,U as getBlockParentPage,R as getBlockTitle,Ae as getCanonicalPageId,Y as getDateValue,Ne as getPageBreadcrumbs,Re as getPageContentBlockIds,ve as getPageContentUserIds,Ge as getPageImageUrls,$ as getPageProperty,O as getPageTableOfContents,de as getPageTitle,v as getTextContent,M as idToUuid,A as isUrl,tt as mergeRecordMaps,W as normalizeTitle,te as normalizeUrl,S as parsePageId,L as uuidToId};
|
|
1
|
+
var ee=Object.defineProperty,te=Object.defineProperties;var oe=Object.getOwnPropertyDescriptors;var N=Object.getOwnPropertySymbols;var ne=Object.prototype.hasOwnProperty,ce=Object.prototype.propertyIsEnumerable;var M=(e,t,c)=>t in e?ee(e,t,{enumerable:!0,configurable:!0,writable:!0,value:c}):e[t]=c,d=(e,t)=>{for(var c in t||(t={}))ne.call(t,c)&&M(e,c,t[c]);if(N)for(var c of N(t))ce.call(t,c)&&M(e,c,t[c]);return e},Q=(e,t)=>te(e,oe(t));var C=(e,t,c)=>new Promise((n,o)=>{var r=s=>{try{l(c.next(s))}catch(m){o(m)}},i=s=>{try{l(c.throw(s))}catch(m){o(m)}},l=s=>s.done?n(s.value):Promise.resolve(s.value).then(r,i);l((c=c.apply(e,t)).next())});var B=e=>{var t;return e?Array.isArray(e)?(t=e==null?void 0:e.reduce((c,n)=>c+(n[0]!=="\u204D"&&n[0]!=="\u2023"?n[0]:""),""))!=null?t:"":e:""};function O(e,t){var o,r,i,l,s,m,a;let c=e.collection_id||((r=(o=e.format)==null?void 0:o.collection_pointer)==null?void 0:r.id);if(c)return c;let n=(i=e==null?void 0:e.view_ids)==null?void 0:i[0];if(n){let f=(s=(l=t.collection_view)==null?void 0:l[n])==null?void 0:s.value;if(f)return(a=(m=f.format)==null?void 0:m.collection_pointer)==null?void 0:a.id}return null}function P(e,t){var c,n;if((c=e.properties)!=null&&c.title)return B(e.properties.title);if(e.type==="collection_view_page"||e.type==="collection_view"){let o=O(e,t);if(o){let r=(n=t.collection[o])==null?void 0:n.value;if(r)return B(r.name)}}return""}function $(e,t){var c,n,o;if((c=e.format)!=null&&c.page_icon)return(n=e.format)==null?void 0:n.page_icon;if(e.type==="collection_view_page"||e.type==="collection_view"){let r=O(e,t);if(r){let i=(o=t.collection[r])==null?void 0:o.value;if(i)return i.icon}}return null}function Be(e){var c;let t=(c=e.block[Object.keys(e.block)[0]])==null?void 0:c.value;return t?P(t,e):null}function V(e,t,c){var n;try{if(!t.properties||!Object.keys(c.collection))return null;let o=(n=c.collection[t.parent_id])==null?void 0:n.value;if(o){let r=e.toLowerCase(),i=Object.keys(o.schema).find(m=>{var a,f;return((f=(a=o.schema[m])==null?void 0:a.name)==null?void 0:f.toLowerCase())===r});if(!i)return null;let{type:l}=o.schema[i],s=B(t.properties[i]);switch(l){case"created_time":return t.created_time;case"multi_select":return s.split(",");case"date":{let a=t.properties[i][0][1][0][1];if(a.type=="datetime")return new Date(`${a.start_date} ${a.start_time}`).getTime();if(a.type=="date")return new Date(a.start_date).getTime();if(a.type=="datetimerange"){let{start_date:f,start_time:p,end_date:x,end_time:h}=a,k=new Date(`${f} ${p}`).getTime(),b=new Date(`${x} ${h}`).getTime();return[k,b]}else{let f=new Date(a.start_date).getTime(),p=new Date(a.end_date).getTime();return[f,p]}}case"checkbox":return s=="Yes";case"last_edited_time":return t.last_edited_time;default:return s}}}catch(o){}return null}var re=e=>{if(e&&Array.isArray(e)){if(e[0]==="d")return e[1];for(let t of e){let c=re(t);if(c)return c}}return null};var X=(e,t,{inclusive:c=!1}={})=>{var o,r;let n=e;for(;n!=null;){if(c&&(n==null?void 0:n.type)==="page")return n;let i=n.parent_id,l=n.parent_table;if(!i)break;if(l==="collection")n=(o=t.collection[i])==null?void 0:o.value;else if(n=(r=t.block[i])==null?void 0:r.value,(n==null?void 0:n.type)==="page")return n}return null},Ce=(e,t,{inclusive:c=!1}={})=>{var o,r,i,l;let n=e;for(;n!=null;){if(c&&(n==null?void 0:n.type)==="page")return n;let s=n.parent_id,m=n.parent_table;if(!s)break;if(m==="collection")return(o=t.collection[s])==null?void 0:o.value;if(m==="space")return(i=(r=t.space)==null?void 0:r[s])==null?void 0:i.value;if(n=(l=t.block[s])==null?void 0:l.value,(n==null?void 0:n.type)==="page")return n}return null};var ie={header:0,sub_header:1,sub_sub_header:2},H=(e,t)=>{var o;let c=((o=e.content)!=null?o:[]).map(r=>{var l,s;let i=(l=t.block[r])==null?void 0:l.value;if(i){let{type:m}=i;if(m==="header"||m==="sub_header"||m==="sub_sub_header")return{id:r,type:m,text:B((s=i.properties)==null?void 0:s.title),indentLevel:ie[m]}}return null}).filter(Boolean),n=[{actual:-1,effective:-1}];for(let r of c){let{indentLevel:i}=r,l=i;do{let s=n[n.length-1],{actual:m,effective:a}=s;if(l>m)r.indentLevel=a+1,n.push({actual:l,effective:r.indentLevel});else if(l===m){r.indentLevel=a;break}else n.pop()}while(!0)}return c};var D=(e,t,c=!1)=>{let n=t||Object.keys(e.block)[0],o=new Set;function r(i){var p,x;if(o.has(i))return;o.add(i);let l=(p=e.block[i])==null?void 0:p.value;if(!l)return;let{content:s,type:m,properties:a,format:f}=l;if(a)for(let h of Object.keys(a)){let k=a[h];k.map(b=>{var v,w;let g=(w=(v=b==null?void 0:b[0])==null?void 0:v[1])==null?void 0:w[0];(g==null?void 0:g[0])==="p"&&g[1]&&r(g[1])}),k.map(b=>{var v;let g=(v=b==null?void 0:b[1])==null?void 0:v[0];((g==null?void 0:g[0])==="p"||(g==null?void 0:g[0])==="eoi")&&g[1]&&r(g[1])})}if(f){let h=(x=f.transclusion_reference_pointer)==null?void 0:x.id;h&&r(h)}if(!(!s||!Array.isArray(s))&&!(i!==n&&!c&&(m==="page"||m==="collection_view_page")))for(let h of s)r(h)}return r(n),Array.from(o)},Se=(e,t)=>{var i;let c=t||Object.keys(e.block)[0],n=new Set,o=(i=e.block[c])==null?void 0:i.value;o!=null&&o.created_by_id&&n.add(o==null?void 0:o.created_by_id),o!=null&&o.last_edited_by_id&&n.add(o==null?void 0:o.last_edited_by_id);let{properties:r}=o;if(r)for(let l of Object.keys(r))r[l].map(m=>{var f;let a=(f=m==null?void 0:m[1])==null?void 0:f[0];(a==null?void 0:a[0])==="u"&&a[1]&&n.add(a[1])});return Array.from(n)};var J=(e="")=>`${e.substr(0,8)}-${e.substr(8,4)}-${e.substr(12,4)}-${e.substr(16,4)}-${e.substr(20)}`;var se=/\b([a-f0-9]{32})\b/,le=/\b([a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12})\b/,Le=(e="",{uuid:t=!0}={})=>{if(!e)return null;e=e.split("?")[0];let c=e.match(se);if(c)return t?J(c[1]):c[1];let n=e.match(le);return n?t?n[1]:n[1].replace(/-/g,""):null};var Y=e=>e.replace(/-/g,"");function S(e,t,c=[]){var n,o;if(t.parent_id){c.push(t.parent_id);let r=t.parent_table;if((o=(n=e[r])==null?void 0:n[t.parent_id])!=null&&o.value)return S(e,e[r][t.parent_id].value,c)}return c}function Me(e,t,c,n,o){return C(this,null,function*(){var f;let r={},i=o||(yield t(e)),l=JSON.parse(JSON.stringify(i));for(console.time("fetch total");;){console.info("block length ",Object.keys(i.block).length),console.time("getPageContentBlockIds");let p=Object.keys(l.block),x=Object.keys(p.reduce((k,b)=>{let g=D(i,b,!0);for(let v of g)i.block[v]||(k[v]=!0);return k},{}));for(let{value:k}of Object.values(l.block))k&&!i.block[k.parent_id]&&k.parent_table==="block"&&x.push(k.parent_id);if(console.timeEnd("getPageContentBlockIds"),console.time("getBlocks"),l=(yield c(x)).recordMap,console.timeEnd("getBlocks"),!(l!=null&&l.block))break;console.time("mapBlocks");let h=Object.values(i.block).map(k=>{var b;return(b=k.value)==null?void 0:b.id}).filter(Boolean);i.block=d(d({},i.block),l.block),l.collection_view&&(console.info("gatcha"),i.collection_view=d(d({},i.collection_view),l.collection_view)),console.timeEnd("mapBlocks"),console.time("fetchCollections"),yield n(h,i),console.timeEnd("fetchCollections"),console.info("collection query length "+Object.keys(i.collection_query).length),console.info("new block length ",Object.keys(l.block).length),console.info(`memory usage ${process.memoryUsage().rss/1024/1024}MB`)}console.timeEnd("fetch total"),console.time("get page map"),console.info("Total block length ",Object.keys(i.block).length);let s=Object.keys(i.block),m=[];for(let p of s)((f=i.block[p].value)==null?void 0:f.type)==="page"&&(m.push(ae(p,i,c).then(x=>r[p]=x)),yield me(1));yield Promise.all(m),console.timeEnd("get page map"),console.info("Total page length ",Object.keys(r).length),console.time("get page tree");let a={id:e,blocks:1,pages:1,children:[],type:"page"};return U(i,a),console.timeEnd("get page tree"),{pageMap:r,pageTree:a,recordMap:i}})}function U(e,t){var r,i,l,s;let c=[t],n=t;for(;n.parent;)c.push(n.parent),n=n.parent;let o=(r=e.block[t.id])==null?void 0:r.value;if(!o)return console.debug("No block value"),delete t.parent,t;if((i=o.content)!=null&&i.length){for(let m of c)m.blocks+=o.content.length;for(let m of o.content){let a=(l=e.block[m])==null?void 0:l.value;if(a&&(t.children.push(U(e,{id:m,blocks:1,pages:0,children:[],type:a.type,parent:t})),a.type==="page"))for(let f of c)f.pages++}}else if((o==null?void 0:o.type)==="collection_view"){if(!((s=e.collection_query[o.collection_id])==null?void 0:s[o.view_ids[0]]))return console.debug("No collection query"),delete t.parent,t;let a={};for(let p of Object.values(e.collection_query[o.collection_id]))if(p.collection_group_results.blockIds)for(let x of p.collection_group_results.blockIds)a[x]=!0;let f=Object.keys(a);for(let p of c)p.pages+=f.length;for(let p of c)p.blocks+=f.length;for(let p of f)t.children.push(U(e,{id:p,blocks:f.length,pages:f.length,children:[],type:o.type,parent:t}))}return delete t.parent,t}function ae(e,t,c){return C(this,null,function*(){var a,f,p,x,h,k,b,g,v,w,R,A,q,z,F;let n=D(t,e),o={[e]:{value:t.block[e].value,role:"reader"}},r={},i={},l={},s=[];for(let _ of n){let u=(a=t.block[_])==null?void 0:a.value;if(!u){s.push(_);continue}if(o[_]={value:u,role:"reader"},u.type==="collection_view"||u.type==="collection_view_page"){t.collection[u.collection_id]&&(r[u.collection_id]=t.collection[u.collection_id]),t.collection_query[u.collection_id]&&(l[u.collection_id]=t.collection_query[u.collection_id]);for(let y of u.view_ids)if(t.collection_view[y]){i[y]=t.collection_view[y];let I=(x=(p=(f=t.collection_query[u==null?void 0:u.collection_id])==null?void 0:f[y])==null?void 0:p.collection_group_results)==null?void 0:x.blockIds;if(I!=null&&I.length)for(let E of I){let T=(h=t.block[E])==null?void 0:h.value;T?o[E]={value:T,role:"reader"}:s.push(E)}}}}let m=S(t,t.block[e].value);for(let _ of m){let u=(k=t.block[_])==null?void 0:k.value;u&&(o[_]={value:u,role:"reader"});let y=(b=t.collection[_])==null?void 0:b.value;y&&(r[_]={value:y})}for(let _ of Object.keys(o)){let u=o[_].value,y=u;if((u==null?void 0:u.type)==="alias")for(;;){let I=(v=(g=y==null?void 0:y.format)==null?void 0:g.alias_pointer)==null?void 0:v.id;if(!I)break;y=(w=t.block[I])==null?void 0:w.value,y?o[I]={value:y,role:"reader"}:s.push(I)}}if(s.length){let _=(yield c(s).catch(()=>({recordMap:{block:null}}))).recordMap;if(_!=null&&_.block){o=d(d({},o),_.block);for(let u in _.block)t.block[u]=_.block[u]}else console.debug(`fetching ${s.length} fail`)}n=D(t,e);for(let _ of n){let u=(R=t.block[_])==null?void 0:R.value;if(u&&(o[_]={value:u,role:"reader"},u.type==="collection_view"||u.type==="collection_view_page")){t.collection[u.collection_id]&&(r[u.collection_id]=t.collection[u.collection_id]),t.collection_query[u.collection_id]&&(l[u.collection_id]=t.collection_query[u.collection_id]);for(let y of u.view_ids)if(t.collection_view[y]){i[y]=t.collection_view[y];let I=(z=(q=(A=t.collection_query[u==null?void 0:u.collection_id])==null?void 0:A[y])==null?void 0:q.collection_group_results)==null?void 0:z.blockIds;if(I!=null&&I.length)for(let E of I){let T=(F=t.block[E])==null?void 0:F.value;T&&(o[E]={value:T,role:"reader"})}}}}return{block:o,collection:r,collection_view:i,collection_query:l,signed_urls:{},notion_user:{}}})}var me=e=>C(void 0,null,function*(){return new Promise(t=>setTimeout(t,e))});var j=e=>(e||"").replace(/ /g,"-").replace(/[^a-zA-Z0-9-\u4e00-\u9FFF\u3041-\u3096\u30A1-\u30FC\u3000-\u303F]/g,"").replace(/--/g,"-").replace(/-$/,"").replace(/^-/,"").trim().toLowerCase();var Ke=(e,t,{uuid:c=!0}={})=>{var r,i;if(!e||!t)return null;let n=Y(e),o=(r=t.block[e])==null?void 0:r.value;if(o){let l=V("slug",o,t)||j(P(o,t));if(l)return c?`${l}-${n}`:l}else{let l=(i=t.collection[e])==null?void 0:i.value;if(l){let s=j(B(l.name));if(s)return c?`${s}-${n}`:s}}return n};var ct=(e,t)=>{var r;let c=e.block,n=[],o=t;do{let i=(r=c[o])==null?void 0:r.value;if(!i)break;let l=P(i,e),s=$(i,e);if(!(l||s))break;n.push({block:i,active:o===t,pageId:o,title:l,icon:s});let m=X(i,e),a=m==null?void 0:m.id;if(!a)break;o=a}while(!0);return n.reverse(),n};import Z from"is-url-superb";var mt=(e,{mapImageUrl:t})=>{let n=Object.keys(e.block).flatMap(o=>{var l,s,m,a,f,p,x,h,k,b,g;let r=(l=e.block[o])==null?void 0:l.value,i=[];if(r){if(r.type==="image"){let R=((s=e.signed_urls)==null?void 0:s[r.id])||((f=(a=(m=r.properties)==null?void 0:m.source)==null?void 0:a[0])==null?void 0:f[0]);R.includes("file.notion.so")&&(R=(h=(x=(p=r.properties)==null?void 0:p.source)==null?void 0:x[0])==null?void 0:h[0]),R&&i.push({block:r,url:R})}if((k=r.format)!=null&&k.page_cover){let w=r.format.page_cover;i.push({block:r,url:w})}if((b=r.format)!=null&&b.bookmark_cover){let w=r.format.bookmark_cover;i.push({block:r,url:w})}if((g=r.format)!=null&&g.bookmark_icon){let w=r.format.bookmark_icon;i.push({block:r,url:w})}let v=$(r,e);v&&Z(v)&&i.push({block:r,url:v})}return i}).filter(Boolean).map(({block:o,url:r})=>t(r,o)).filter(Boolean);return Array.from(new Set(n))};import ue from"mem";import fe from"normalize-url";var pe=ue(e=>{if(!e)return"";try{if(e.startsWith("https://www.notion.so/image/")){let t=new URL(e),c=decodeURIComponent(t.pathname.substring(7)),n=pe(c);t.pathname=`/image/${encodeURIComponent(n)}`,e=t.toString()}return fe(e,{stripProtocol:!0,stripWWW:!0,stripHash:!0,stripTextFragment:!0,removeQueryParameters:!0})}catch(t){return""}});function gt(e,t){return{block:d(d({},e.block),t.block),collection:d(d({},e.collection),t.collection),collection_view:d(d({},e.collection_view),t.collection_view),notion_user:d(d({},e.notion_user),t.notion_user),collection_query:d(d({},e.collection_query),t.collection_query),signed_urls:d(d({},e.signed_urls),t.signed_urls),preview_images:d(d({},e.preview_images),t.preview_images)}}var G=(e,{month:t="short"}={})=>{let c=new Date(e);return`${c.toLocaleString("en-US",{month:t})} ${c.getUTCDate()}, ${c.getUTCFullYear()}`};var xt=e=>{let t=`${e.start_time||""} ${e.start_date} ${e.time_zone||""}`;return G(t)};function de(e,t,{wordsPerMinute:c=275,imageReadTimeInSeconds:n=12}={}){let o=L(e,t),r=o.numWords/c,l=(o.numImages>10?o.numImages/2*(n+3)+(o.numImages-10)*3:o.numImages/2*(2*n+(1-o.numImages)))/60,s=r+l;return Q(d({},o),{totalWordsReadTimeInMinutes:r,totalImageReadTimeInMinutes:l,totalReadTimeInMinutes:s})}function wt(e,t,c){let n=de(e,t,c);return ge(n.totalReadTimeInMinutes)}function L(e,t){var n,o,r,i;let c={numWords:0,numImages:0};if(!e)return c;for(let l of e.content||[]){let s=(n=t.block[l])==null?void 0:n.value,m=!1;if(s){switch(s.type){case"quote":case"alias":case"header":case"sub_header":case"sub_sub_header":{let a=P(s,t);c.numWords+=W(a);break}case"callout":case"toggle":case"to_do":case"bulleted_list":case"numbered_list":case"text":{let a=P(s,t);c.numWords+=W(a),m=!0;break}case"embed":case"tweet":case"maps":case"pdf":case"figma":case"typeform":case"codepen":case"excalidraw":case"gist":case"video":case"drive":case"audio":case"file":case"image":c.numImages+=1;break;case"bookmark":c.numImages+=.25;break;case"code":c.numImages+=2;break;case"table":case"collection_view":c.numImages+=2;break;case"column":case"column_list":case"transclusion_container":m=!0;break;case"table_of_contents":{let a=e;if(!a)continue;let f=H(a,t);for(let p of f)c.numWords+=W(p.text);break}case"transclusion_reference":{let a=(r=(o=s==null?void 0:s.format)==null?void 0:o.transclusion_reference_pointer)==null?void 0:r.id;if(!a)continue;let f=(i=t.block[a])==null?void 0:i.value;f&&K(c,L(f,t));break}default:break}m&&K(c,L(s,t))}}return c}function K(e,t){e.numWords+=t.numWords,e.numImages+=t.numImages}function W(e){return e?(e.match(/\w+/g)||[]).length:0}function ge(e){return e<.5?"less than a minute":e<1.5?"1 minute":`${Math.ceil(e)} minutes`}var Rt=(e,t)=>{if(!e)return null;if(e.startsWith("data:")||e.startsWith("https://images.unsplash.com"))return e;try{let o=new URL(e);if(o.pathname.startsWith("/secure.notion-static.com")&&o.hostname.endsWith(".amazonaws.com")&&o.searchParams.has("X-Amz-Credential")&&o.searchParams.has("X-Amz-Signature")&&o.searchParams.has("X-Amz-Algorithm"))return e}catch(o){}e.startsWith("/images")&&(e=`https://www.notion.so${e}`),e=`https://www.notion.so${e.startsWith("/image")?e:`/image/${encodeURIComponent(e)}`}`;let c=new URL(e),n=t.parent_table==="space"?"block":t.parent_table;return(n==="collection"||n==="team")&&(n="block"),c.searchParams.set("table",n),c.searchParams.set("id",t.id),c.searchParams.set("cache","v2"),e=c.toString(),e};var Tt=e=>t=>(t=(t||"").replace(/-/g,""),e&&t===e?"/":`/${t}`);export{Rt as defaultMapImageUrl,Tt as defaultMapPageUrl,de as estimatePageReadTime,wt as estimatePageReadTimeAsHumanizedString,S as findAncestors,G as formatDate,xt as formatNotionDateTime,Me as getAllInSpace,O as getBlockCollectionId,$ as getBlockIcon,Ce as getBlockParent,X as getBlockParentPage,P as getBlockTitle,Ke as getCanonicalPageId,re as getDateValue,ct as getPageBreadcrumbs,D as getPageContentBlockIds,Se as getPageContentUserIds,mt as getPageImageUrls,V as getPageProperty,ae as getPageSync,H as getPageTableOfContents,Be as getPageTitle,B as getTextContent,J as idToUuid,Z as isUrl,gt as mergeRecordMaps,j as normalizeTitle,pe as normalizeUrl,Le as parsePageId,U as recursivePageTree,Y as uuidToId};
|
|
2
2
|
//# sourceMappingURL=index.js.map
|
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/get-all-pages-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/find-ancestors.ts","../src/estimate-page-read-time.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 { 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 } 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\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): string[] => {\n const rootBlockId = blockId || Object.keys(recordMap.block)[0]\n const contentBlockIds = new Set<string>()\n\n function addContentBlocks(blockId: string, nested = false) {\n if (contentBlockIds.has(blockId)) return\n contentBlockIds.add(blockId)\n if (!nested) return\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) if (type === 'page' || type === 'collection_view_page') return\n for (const blockId of content) addContentBlocks(blockId)\n }\n addContentBlocks(rootBlockId, true)\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 PQueue from 'p-queue'\n\nimport { parsePageId } from './parse-page-id'\n\nimport type { ExtendedRecordMap, PageMap } from '@texonom/ntypes'\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 getAllPagesInSpace(\n rootPageId: string,\n rootSpaceId: string | undefined,\n getPage: (pageId: string) => Promise<ExtendedRecordMap>,\n {\n concurrency = 4,\n traverseCollections = true,\n targetPageId = null\n }: {\n concurrency?: number\n traverseCollections?: boolean\n targetPageId?: string\n } = {}\n): Promise<PageMap> {\n const pages: PageMap = {}\n const pendingPageIds = new Set<string>()\n const queue = new PQueue({ concurrency })\n\n async function processPage(pageId: string) {\n if (targetPageId && pendingPageIds.has(targetPageId)) return\n\n pageId = parsePageId(pageId) as string\n\n if (pageId && !pages[pageId] && !pendingPageIds.has(pageId)) {\n pendingPageIds.add(pageId)\n\n queue.add(async () => {\n try {\n if (targetPageId && pendingPageIds.has(targetPageId) && pageId !== targetPageId) return\n\n const page = await getPage(pageId)\n if (!page) return\n\n const spaceId = page.block[pageId]?.value?.space_id\n\n if (spaceId)\n if (!rootSpaceId) rootSpaceId = spaceId\n else if (rootSpaceId !== spaceId) return\n\n Object.keys(page.block)\n .filter(key => {\n const block = page.block[key]?.value\n if (!block) return false\n\n if (block.type !== 'page' && block.type !== 'collection_view_page') return false\n\n // the space id check is important to limit traversal because pages\n // can reference pages in other spaces\n if (rootSpaceId && block.space_id && block.space_id !== rootSpaceId) return false\n\n return true\n })\n .forEach(subPageId => processPage(subPageId))\n\n // traverse collection item pages as they may contain subpages as well\n if (traverseCollections)\n for (const collectionViews of Object.values(page.collection_query))\n for (const collectionData of Object.values(collectionViews)) {\n const { blockIds } = collectionData\n\n if (blockIds) for (const collectionItemId of blockIds) processPage(collectionItemId)\n }\n\n pages[pageId] = page\n } catch (err) {\n console.warn('page load error', { pageId, spaceId: rootSpaceId }, err.statusCode, err.message)\n pages[pageId] = null\n }\n\n pendingPageIds.delete(pageId)\n })\n }\n }\n\n await processPage(rootPageId)\n await queue.onIdle()\n\n return pages\n}\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 { ExtendedRecordMap } from '@texonom/ntypes'\n\nimport { getBlockTitle } from './get-block-title'\nimport { getPageProperty } from './get-page-property'\nimport { normalizeTitle } from './normalize-title'\nimport { uuidToId } from './uuid-to-id'\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 }\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.substr('/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 { 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 `${monthLocale} ${date.getUTCDate()}, ${date.getUTCFullYear()}`\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 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 { 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"],"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","indentLevels","getPageTableOfContents","page","recordMap","_a","toc","blockId","_b","block","type","getTextContent","indentLevelStack","tocItem","indentLevel","actual","prevIndent","prevActual","prevEffective","getPageContentBlockIds","recordMap","blockId","rootBlockId","contentBlockIds","addContentBlocks","nested","_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","PQueue","getAllPagesInSpace","_0","_1","_2","__async","rootPageId","rootSpaceId","getPage","concurrency","traverseCollections","targetPageId","pages","pendingPageIds","queue","PQueue","processPage","pageId","parsePageId","_a","_b","page","spaceId","key","block","subPageId","collectionViews","collectionData","blockIds","collectionItemId","err","normalizeTitle","title","getCanonicalPageId","pageId","recordMap","uuid","_a","id","uuidToId","block","slug","getPageProperty","normalizeTitle","getBlockTitle","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","formatNotionDateTime","datetime","dateString","formatDate","findAncestors","recordMap","block","list","_a","table","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"]}
|
|
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\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) => Promise<ExtendedRecordMap>,\n getBlocks: (blockIds: string[]) => Promise<PageChunk>,\n fetchCollections: (contentBlockIds: string[], recordMap: ExtendedRecordMap, pageId?: string) => Promise<void>,\n startRecordMap?: ExtendedRecordMap\n): Promise<{ recordMap: ExtendedRecordMap; pageMap: PageMap; pageTree: PageTree }> {\n const pageMap: PageMap = {}\n const recordMap = startRecordMap ? startRecordMap : await getPage(startPageId)\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)).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 if (tempRecordMap.collection_view) {\n console.info('gatcha')\n recordMap.collection_view = { ...recordMap.collection_view, ...tempRecordMap.collection_view }\n }\n console.timeEnd('mapBlocks')\n\n console.time('fetchCollections')\n await fetchCollections(contentBlockIds, recordMap)\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 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[]) => 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 `${monthLocale} ${date.getUTCDate()}, ${date.getUTCFullYear()}`\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","startPageId","getPage","getBlocks","fetchCollections","startRecordMap","__async","_a","pageMap","recordMap","tempRecordMap","targetBlocks","missing","blockMap","root","contentBlockIds","getPageContentBlockIds","contentBlockID","block","obj","__spreadValues","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","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"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"map-image-url.d.ts","sourceRoot":"","sources":["../src/map-image-url.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAA;AAEvC,eAAO,MAAM,kBAAkB,QAAS,MAAM,SAAS,KAAK,KAAG,MAAM,GAAG,IAsCvE,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"map-page-url.d.ts","sourceRoot":"","sources":["../src/map-page-url.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,iBAAiB,gBAAiB,MAAM,cAAc,MAAM,WAKxE,CAAA"}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import { ExtendedRecordMap } from '@texonom/ntypes';
|
|
1
|
+
import type { ExtendedRecordMap } from '@texonom/ntypes';
|
|
2
2
|
export declare function mergeRecordMaps(recordMapA: ExtendedRecordMap, recordMapB: ExtendedRecordMap): ExtendedRecordMap;
|
|
3
3
|
//# sourceMappingURL=merge-record-maps.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"merge-record-maps.d.ts","sourceRoot":"","sources":["../src/merge-record-maps.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAA;
|
|
1
|
+
{"version":3,"file":"merge-record-maps.d.ts","sourceRoot":"","sources":["../src/merge-record-maps.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAA;AAExD,wBAAgB,eAAe,CAAC,UAAU,EAAE,iBAAiB,EAAE,UAAU,EAAE,iBAAiB,GAAG,iBAAiB,CAiC/G"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@texonom/nutils",
|
|
3
|
-
"version": "1.2.0
|
|
3
|
+
"version": "1.2.0",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "Useful utilities for working with Notion data. Isomorphic.",
|
|
6
6
|
"repository": "texonom/notion-node",
|
|
@@ -27,7 +27,7 @@
|
|
|
27
27
|
"mem": "^9.0.2",
|
|
28
28
|
"normalize-url": "^8.0.0",
|
|
29
29
|
"p-queue": "^7.3.4",
|
|
30
|
-
"@texonom/ntypes": "^1.2.0
|
|
30
|
+
"@texonom/ntypes": "^1.2.0"
|
|
31
31
|
},
|
|
32
32
|
"standard-version": {
|
|
33
33
|
"skip": {
|