wiki-graph-core 0.3.1
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 +201 -0
- package/data/editor/clue_reviewer.jinja +410 -0
- package/data/editor/clue_reviewer_generator.jinja +428 -0
- package/data/editor/revision_feedback.jinja +5 -0
- package/data/editor/text_compressor.jinja +127 -0
- package/data/guaranteed/response_intent_classifier.jinja +8 -0
- package/data/help/commands/archive/next.jinja +29 -0
- package/data/help/commands/gc.jinja +38 -0
- package/data/help/commands/legacy/migrate.jinja +20 -0
- package/data/help/commands/legacy.jinja +19 -0
- package/data/help/commands/maintenance/chapter/add.jinja +41 -0
- package/data/help/commands/maintenance/chapter/list.jinja +33 -0
- package/data/help/commands/maintenance/chapter/move.jinja +36 -0
- package/data/help/commands/maintenance/chapter/remove.jinja +26 -0
- package/data/help/commands/maintenance/chapter/reset.jinja +29 -0
- package/data/help/commands/maintenance/chapter/set-source.jinja +34 -0
- package/data/help/commands/maintenance/chapter/set-summary.jinja +31 -0
- package/data/help/commands/maintenance/chapter/set-title.jinja +29 -0
- package/data/help/commands/maintenance/chapter/tree.jinja +58 -0
- package/data/help/commands/maintenance/chapter.jinja +59 -0
- package/data/help/commands/maintenance/cover.jinja +28 -0
- package/data/help/commands/maintenance/meta.jinja +55 -0
- package/data/help/commands/predicate.jinja +460 -0
- package/data/help/commands/root.jinja +83 -0
- package/data/help/commands/transform.jinja +34 -0
- package/data/help/commands/uri.jinja +274 -0
- package/data/help/topics/config.jinja +88 -0
- package/data/help/topics/format.jinja +72 -0
- package/data/help/topics/readiness.jinja +99 -0
- package/data/help/topics/recipe.jinja +151 -0
- package/data/help/topics/runtime.jinja +62 -0
- package/data/help/topics/uri.jinja +178 -0
- package/data/output/epub/cover.xhtml.jinja +13 -0
- package/data/output/epub/nav.xhtml.jinja +12 -0
- package/data/output/epub/package.opf.xml.jinja +39 -0
- package/data/output/epub/section.xhtml.jinja +12 -0
- package/data/topologization/book_coherence_extraction.jinja +223 -0
- package/data/topologization/chunk_extraction.jinja +233 -0
- package/data/topologization/evidence_choice.jinja +38 -0
- package/data/topologization/translate_chunks.jinja +138 -0
- package/data/topologization/user_focused_extraction.jinja +378 -0
- package/dist/archive/query/archive-view.d.ts +26 -0
- package/dist/archive/query/archive-view.js +4540 -0
- package/dist/archive/query/archive-view.js.map +1 -0
- package/dist/archive/query/continuation-cursor.d.ts +61 -0
- package/dist/archive/query/continuation-cursor.js +363 -0
- package/dist/archive/query/continuation-cursor.js.map +1 -0
- package/dist/archive/query/index.d.ts +29 -0
- package/dist/archive/query/index.js +63 -0
- package/dist/archive/query/index.js.map +1 -0
- package/dist/archive/query/lexical-search.d.ts +22 -0
- package/dist/archive/query/lexical-search.js +137 -0
- package/dist/archive/query/lexical-search.js.map +1 -0
- package/dist/archive/query/search-cache.d.ts +192 -0
- package/dist/archive/query/search-cache.js +1248 -0
- package/dist/archive/query/search-cache.js.map +1 -0
- package/dist/archive/search-index/index.d.ts +26 -0
- package/dist/archive/search-index/index.js +29 -0
- package/dist/archive/search-index/index.js.map +1 -0
- package/dist/archive/search-index/search-index.d.ts +26 -0
- package/dist/archive/search-index/search-index.js +555 -0
- package/dist/archive/search-index/search-index.js.map +1 -0
- package/dist/archive/search-index/search-tokenizer.d.ts +16 -0
- package/dist/archive/search-index/search-tokenizer.js +225 -0
- package/dist/archive/search-index/search-tokenizer.js.map +1 -0
- package/dist/common/cli-command.d.ts +4 -0
- package/dist/common/cli-command.js +7 -0
- package/dist/common/cli-command.js.map +1 -0
- package/dist/common/data-dir.d.ts +3 -0
- package/dist/common/data-dir.js +48 -0
- package/dist/common/data-dir.js.map +1 -0
- package/dist/common/language.d.ts +55 -0
- package/dist/common/language.js +208 -0
- package/dist/common/language.js.map +1 -0
- package/dist/common/llm-scope.d.ts +19 -0
- package/dist/common/llm-scope.js +31 -0
- package/dist/common/llm-scope.js.map +1 -0
- package/dist/common/logging.d.ts +22 -0
- package/dist/common/logging.js +141 -0
- package/dist/common/logging.js.map +1 -0
- package/dist/common/template.d.ts +8 -0
- package/dist/common/template.js +54 -0
- package/dist/common/template.js.map +1 -0
- package/dist/common/tinyld-language.d.ts +6 -0
- package/dist/common/tinyld-language.js +34 -0
- package/dist/common/tinyld-language.js.map +1 -0
- package/dist/common/wiki-graph-dir.d.ts +10 -0
- package/dist/common/wiki-graph-dir.js +41 -0
- package/dist/common/wiki-graph-dir.js.map +1 -0
- package/dist/common/wiki-graph-temp.d.ts +6 -0
- package/dist/common/wiki-graph-temp.js +21 -0
- package/dist/common/wiki-graph-temp.js.map +1 -0
- package/dist/common/wiki-graph-uri.d.ts +28 -0
- package/dist/common/wiki-graph-uri.js +171 -0
- package/dist/common/wiki-graph-uri.js.map +1 -0
- package/dist/context/index.d.ts +1 -0
- package/dist/context/index.js +13 -0
- package/dist/context/index.js.map +1 -0
- package/dist/context/task-context.d.ts +41 -0
- package/dist/context/task-context.js +111 -0
- package/dist/context/task-context.js.map +1 -0
- package/dist/document/database.d.ts +30 -0
- package/dist/document/database.js +273 -0
- package/dist/document/database.js.map +1 -0
- package/dist/document/document.d.ts +153 -0
- package/dist/document/document.js +615 -0
- package/dist/document/document.js.map +1 -0
- package/dist/document/fragments.d.ts +63 -0
- package/dist/document/fragments.js +371 -0
- package/dist/document/fragments.js.map +1 -0
- package/dist/document/index.d.ts +13 -0
- package/dist/document/index.js +62 -0
- package/dist/document/index.js.map +1 -0
- package/dist/document/schema.d.ts +8 -0
- package/dist/document/schema.js +472 -0
- package/dist/document/schema.js.map +1 -0
- package/dist/document/shared-state-database.d.ts +9 -0
- package/dist/document/shared-state-database.js +193 -0
- package/dist/document/shared-state-database.js.map +1 -0
- package/dist/document/stores.d.ts +203 -0
- package/dist/document/stores.js +1678 -0
- package/dist/document/stores.js.map +1 -0
- package/dist/document/text-streams.d.ts +86 -0
- package/dist/document/text-streams.js +515 -0
- package/dist/document/text-streams.js.map +1 -0
- package/dist/document/types.d.ts +148 -0
- package/dist/document/types.js +69 -0
- package/dist/document/types.js.map +1 -0
- package/dist/editor/clue.d.ts +27 -0
- package/dist/editor/clue.js +158 -0
- package/dist/editor/clue.js.map +1 -0
- package/dist/editor/compressor.d.ts +18 -0
- package/dist/editor/compressor.js +68 -0
- package/dist/editor/compressor.js.map +1 -0
- package/dist/editor/editor.d.ts +39 -0
- package/dist/editor/editor.js +253 -0
- package/dist/editor/editor.js.map +1 -0
- package/dist/editor/feedback.d.ts +16 -0
- package/dist/editor/feedback.js +104 -0
- package/dist/editor/feedback.js.map +1 -0
- package/dist/editor/index.d.ts +17 -0
- package/dist/editor/index.js +5 -0
- package/dist/editor/index.js.map +1 -0
- package/dist/editor/language-review.d.ts +14 -0
- package/dist/editor/language-review.js +35 -0
- package/dist/editor/language-review.js.map +1 -0
- package/dist/editor/log.d.ts +37 -0
- package/dist/editor/log.js +202 -0
- package/dist/editor/log.js.map +1 -0
- package/dist/editor/markup.d.ts +20 -0
- package/dist/editor/markup.js +294 -0
- package/dist/editor/markup.js.map +1 -0
- package/dist/editor/prompt-templates.d.ts +6 -0
- package/dist/editor/prompt-templates.js +11 -0
- package/dist/editor/prompt-templates.js.map +1 -0
- package/dist/editor/response.d.ts +5 -0
- package/dist/editor/response.js +31 -0
- package/dist/editor/response.js.map +1 -0
- package/dist/editor/review.d.ts +34 -0
- package/dist/editor/review.js +189 -0
- package/dist/editor/review.js.map +1 -0
- package/dist/editor/types.d.ts +31 -0
- package/dist/editor/types.js +21 -0
- package/dist/editor/types.js.map +1 -0
- package/dist/evidence-selection/anchor-resolver.d.ts +43 -0
- package/dist/evidence-selection/anchor-resolver.js +783 -0
- package/dist/evidence-selection/anchor-resolver.js.map +1 -0
- package/dist/evidence-selection/anchor-types.d.ts +27 -0
- package/dist/evidence-selection/anchor-types.js +1 -0
- package/dist/evidence-selection/anchor-types.js.map +1 -0
- package/dist/evidence-selection/index.d.ts +8 -0
- package/dist/evidence-selection/index.js +32 -0
- package/dist/evidence-selection/index.js.map +1 -0
- package/dist/evidence-selection/prompt.d.ts +18 -0
- package/dist/evidence-selection/prompt.js +54 -0
- package/dist/evidence-selection/prompt.js.map +1 -0
- package/dist/evidence-selection/quote-score.d.ts +29 -0
- package/dist/evidence-selection/quote-score.js +331 -0
- package/dist/evidence-selection/quote-score.js.map +1 -0
- package/dist/evidence-selection/selection-resolver.d.ts +19 -0
- package/dist/evidence-selection/selection-resolver.js +303 -0
- package/dist/evidence-selection/selection-resolver.js.map +1 -0
- package/dist/evidence-selection/text.d.ts +4 -0
- package/dist/evidence-selection/text.js +66 -0
- package/dist/evidence-selection/text.js.map +1 -0
- package/dist/evidence-selection/types.d.ts +36 -0
- package/dist/evidence-selection/types.js +1 -0
- package/dist/evidence-selection/types.js.map +1 -0
- package/dist/facade/app.d.ts +75 -0
- package/dist/facade/app.js +141 -0
- package/dist/facade/app.js.map +1 -0
- package/dist/facade/build-queue.d.ts +181 -0
- package/dist/facade/build-queue.js +1442 -0
- package/dist/facade/build-queue.js.map +1 -0
- package/dist/facade/chapter-build.d.ts +60 -0
- package/dist/facade/chapter-build.js +1020 -0
- package/dist/facade/chapter-build.js.map +1 -0
- package/dist/facade/chapter.d.ts +168 -0
- package/dist/facade/chapter.js +944 -0
- package/dist/facade/chapter.js.map +1 -0
- package/dist/facade/digest.d.ts +55 -0
- package/dist/facade/digest.js +168 -0
- package/dist/facade/digest.js.map +1 -0
- package/dist/facade/graph.d.ts +60 -0
- package/dist/facade/graph.js +203 -0
- package/dist/facade/graph.js.map +1 -0
- package/dist/facade/import.d.ts +49 -0
- package/dist/facade/import.js +262 -0
- package/dist/facade/import.js.map +1 -0
- package/dist/facade/index.d.ts +39 -0
- package/dist/facade/index.js +171 -0
- package/dist/facade/index.js.map +1 -0
- package/dist/facade/knowledge-graph-build.d.ts +75 -0
- package/dist/facade/knowledge-graph-build.js +897 -0
- package/dist/facade/knowledge-graph-build.js.map +1 -0
- package/dist/facade/llm-sampling.d.ts +11 -0
- package/dist/facade/llm-sampling.js +58 -0
- package/dist/facade/llm-sampling.js.map +1 -0
- package/dist/facade/types.d.ts +8 -0
- package/dist/facade/types.js +1 -0
- package/dist/facade/types.js.map +1 -0
- package/dist/facade/wiki-graph-archive.d.ts +41 -0
- package/dist/facade/wiki-graph-archive.js +130 -0
- package/dist/facade/wiki-graph-archive.js.map +1 -0
- package/dist/gc/files.d.ts +15 -0
- package/dist/gc/files.js +141 -0
- package/dist/gc/files.js.map +1 -0
- package/dist/gc/index.d.ts +2 -0
- package/dist/gc/index.js +5 -0
- package/dist/gc/index.js.map +1 -0
- package/dist/gc/lock.d.ts +3 -0
- package/dist/gc/lock.js +137 -0
- package/dist/gc/lock.js.map +1 -0
- package/dist/gc/runner.d.ts +9 -0
- package/dist/gc/runner.js +129 -0
- package/dist/gc/runner.js.map +1 -0
- package/dist/gc/tmp-gc.d.ts +5 -0
- package/dist/gc/tmp-gc.js +57 -0
- package/dist/gc/tmp-gc.js.map +1 -0
- package/dist/gc/types.d.ts +24 -0
- package/dist/gc/types.js +1 -0
- package/dist/gc/types.js.map +1 -0
- package/dist/gc.cjs +10041 -0
- package/dist/gc.cjs.map +1 -0
- package/dist/gc.d.cts +10 -0
- package/dist/gc.d.ts +2 -0
- package/dist/gc.js +5 -0
- package/dist/gc.js.map +1 -0
- package/dist/guaranteed/classifier.d.ts +10 -0
- package/dist/guaranteed/classifier.js +88 -0
- package/dist/guaranteed/classifier.js.map +1 -0
- package/dist/guaranteed/errors.d.ts +38 -0
- package/dist/guaranteed/errors.js +73 -0
- package/dist/guaranteed/errors.js.map +1 -0
- package/dist/guaranteed/index.d.ts +7 -0
- package/dist/guaranteed/index.js +21 -0
- package/dist/guaranteed/index.js.map +1 -0
- package/dist/guaranteed/request.d.ts +8 -0
- package/dist/guaranteed/request.js +206 -0
- package/dist/guaranteed/request.js.map +1 -0
- package/dist/guaranteed/response.d.ts +12 -0
- package/dist/guaranteed/response.js +98 -0
- package/dist/guaranteed/response.js.map +1 -0
- package/dist/guaranteed/types.d.ts +20 -0
- package/dist/guaranteed/types.js +1 -0
- package/dist/guaranteed/types.js.map +1 -0
- package/dist/index-B8NNnQ8P.d.ts +424 -0
- package/dist/index.cjs +34774 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.cts +2462 -0
- package/dist/index.d.ts +79 -0
- package/dist/index.js +168 -0
- package/dist/index.js.map +1 -0
- package/dist/legacy-sdpub/upgrade.d.ts +7 -0
- package/dist/legacy-sdpub/upgrade.js +795 -0
- package/dist/legacy-sdpub/upgrade.js.map +1 -0
- package/dist/llm/cache.d.ts +13 -0
- package/dist/llm/cache.js +35 -0
- package/dist/llm/cache.js.map +1 -0
- package/dist/llm/client.d.ts +26 -0
- package/dist/llm/client.js +572 -0
- package/dist/llm/client.js.map +1 -0
- package/dist/llm/context.d.ts +22 -0
- package/dist/llm/context.js +78 -0
- package/dist/llm/context.js.map +1 -0
- package/dist/llm/errors.d.ts +7 -0
- package/dist/llm/errors.js +12 -0
- package/dist/llm/errors.js.map +1 -0
- package/dist/llm/index.d.ts +7 -0
- package/dist/llm/index.js +17 -0
- package/dist/llm/index.js.map +1 -0
- package/dist/llm/request-log.d.ts +9 -0
- package/dist/llm/request-log.js +35 -0
- package/dist/llm/request-log.js.map +1 -0
- package/dist/llm/sampling.d.ts +11 -0
- package/dist/llm/sampling.js +67 -0
- package/dist/llm/sampling.js.map +1 -0
- package/dist/llm/types.d.ts +50 -0
- package/dist/llm/types.js +1 -0
- package/dist/llm/types.js.map +1 -0
- package/dist/output/epub/archive.d.ts +9 -0
- package/dist/output/epub/archive.js +81 -0
- package/dist/output/epub/archive.js.map +1 -0
- package/dist/output/epub/book.d.ts +15 -0
- package/dist/output/epub/book.js +76 -0
- package/dist/output/epub/book.js.map +1 -0
- package/dist/output/epub/content.d.ts +9 -0
- package/dist/output/epub/content.js +35 -0
- package/dist/output/epub/content.js.map +1 -0
- package/dist/output/epub/index.d.ts +20 -0
- package/dist/output/epub/index.js +14 -0
- package/dist/output/epub/index.js.map +1 -0
- package/dist/output/epub/model.d.ts +24 -0
- package/dist/output/epub/model.js +1 -0
- package/dist/output/epub/model.js.map +1 -0
- package/dist/output/epub/navigation.d.ts +10 -0
- package/dist/output/epub/navigation.js +39 -0
- package/dist/output/epub/navigation.js.map +1 -0
- package/dist/output/epub/package.d.ts +17 -0
- package/dist/output/epub/package.js +29 -0
- package/dist/output/epub/package.js.map +1 -0
- package/dist/output/epub/shared.d.ts +4 -0
- package/dist/output/epub/shared.js +12 -0
- package/dist/output/epub/shared.js.map +1 -0
- package/dist/output/epub/templates.d.ts +35 -0
- package/dist/output/epub/templates.js +26 -0
- package/dist/output/epub/templates.js.map +1 -0
- package/dist/output/index.d.ts +14 -0
- package/dist/output/index.js +11 -0
- package/dist/output/index.js.map +1 -0
- package/dist/output/plain-text.d.ts +18 -0
- package/dist/output/plain-text.js +56 -0
- package/dist/output/plain-text.js.map +1 -0
- package/dist/progress/index.d.ts +3 -0
- package/dist/progress/index.js +14 -0
- package/dist/progress/index.js.map +1 -0
- package/dist/progress/reporter.d.ts +10 -0
- package/dist/progress/reporter.js +79 -0
- package/dist/progress/reporter.js.map +1 -0
- package/dist/progress/tracker.d.ts +37 -0
- package/dist/progress/tracker.js +119 -0
- package/dist/progress/tracker.js.map +1 -0
- package/dist/progress/types.d.ts +28 -0
- package/dist/progress/types.js +1 -0
- package/dist/progress/types.js.map +1 -0
- package/dist/reader/attention/attention.d.ts +39 -0
- package/dist/reader/attention/attention.js +123 -0
- package/dist/reader/attention/attention.js.map +1 -0
- package/dist/reader/attention/index.d.ts +9 -0
- package/dist/reader/attention/index.js +5 -0
- package/dist/reader/attention/index.js.map +1 -0
- package/dist/reader/attention/wave-reflection.d.ts +21 -0
- package/dist/reader/attention/wave-reflection.js +153 -0
- package/dist/reader/attention/wave-reflection.js.map +1 -0
- package/dist/reader/attention/working-memory.d.ts +28 -0
- package/dist/reader/attention/working-memory.js +62 -0
- package/dist/reader/attention/working-memory.js.map +1 -0
- package/dist/reader/chunk-batch/extract.d.ts +13 -0
- package/dist/reader/chunk-batch/extract.js +14 -0
- package/dist/reader/chunk-batch/extract.js.map +1 -0
- package/dist/reader/chunk-batch/extractor.d.ts +17 -0
- package/dist/reader/chunk-batch/extractor.js +337 -0
- package/dist/reader/chunk-batch/extractor.js.map +1 -0
- package/dist/reader/chunk-batch/fragment-projection.d.ts +34 -0
- package/dist/reader/chunk-batch/fragment-projection.js +94 -0
- package/dist/reader/chunk-batch/fragment-projection.js.map +1 -0
- package/dist/reader/chunk-batch/index.d.ts +12 -0
- package/dist/reader/chunk-batch/index.js +13 -0
- package/dist/reader/chunk-batch/index.js.map +1 -0
- package/dist/reader/chunk-batch/language.d.ts +9 -0
- package/dist/reader/chunk-batch/language.js +23 -0
- package/dist/reader/chunk-batch/language.js.map +1 -0
- package/dist/reader/chunk-batch/parser.d.ts +94 -0
- package/dist/reader/chunk-batch/parser.js +640 -0
- package/dist/reader/chunk-batch/parser.js.map +1 -0
- package/dist/reader/chunk-batch/prompt-templates.d.ts +6 -0
- package/dist/reader/chunk-batch/prompt-templates.js +11 -0
- package/dist/reader/chunk-batch/prompt-templates.js.map +1 -0
- package/dist/reader/chunk-batch/types.d.ts +85 -0
- package/dist/reader/chunk-batch/types.js +1 -0
- package/dist/reader/chunk-batch/types.js.map +1 -0
- package/dist/reader/index.d.ts +13 -0
- package/dist/reader/index.js +7 -0
- package/dist/reader/index.js.map +1 -0
- package/dist/reader/reader.d.ts +37 -0
- package/dist/reader/reader.js +82 -0
- package/dist/reader/reader.js.map +1 -0
- package/dist/reader/segment/index.d.ts +2 -0
- package/dist/reader/segment/index.js +5 -0
- package/dist/reader/segment/index.js.map +1 -0
- package/dist/reader/segment/intl-segmenter.d.ts +5 -0
- package/dist/reader/segment/intl-segmenter.js +102 -0
- package/dist/reader/segment/intl-segmenter.js.map +1 -0
- package/dist/reader/segment/segment.d.ts +5 -0
- package/dist/reader/segment/segment.js +9 -0
- package/dist/reader/segment/segment.js.map +1 -0
- package/dist/reader/segment/types.d.ts +14 -0
- package/dist/reader/segment/types.js +1 -0
- package/dist/reader/segment/types.js.map +1 -0
- package/dist/reader/types.d.ts +29 -0
- package/dist/reader/types.js +1 -0
- package/dist/reader/types.js.map +1 -0
- package/dist/serial.d.ts +89 -0
- package/dist/serial.js +476 -0
- package/dist/serial.js.map +1 -0
- package/dist/source/adapter.d.ts +15 -0
- package/dist/source/adapter.js +1 -0
- package/dist/source/adapter.js.map +1 -0
- package/dist/source/epub/archive.d.ts +27 -0
- package/dist/source/epub/archive.js +189 -0
- package/dist/source/epub/archive.js.map +1 -0
- package/dist/source/epub/content.d.ts +22 -0
- package/dist/source/epub/content.js +183 -0
- package/dist/source/epub/content.js.map +1 -0
- package/dist/source/epub/document.d.ts +55 -0
- package/dist/source/epub/document.js +179 -0
- package/dist/source/epub/document.js.map +1 -0
- package/dist/source/epub/index.d.ts +10 -0
- package/dist/source/epub/index.js +6 -0
- package/dist/source/epub/index.js.map +1 -0
- package/dist/source/epub/navigation.d.ts +16 -0
- package/dist/source/epub/navigation.js +215 -0
- package/dist/source/epub/navigation.js.map +1 -0
- package/dist/source/epub/package.d.ts +33 -0
- package/dist/source/epub/package.js +237 -0
- package/dist/source/epub/package.js.map +1 -0
- package/dist/source/epub/xml.d.ts +16 -0
- package/dist/source/epub/xml.js +111 -0
- package/dist/source/epub/xml.js.map +1 -0
- package/dist/source/index.d.ts +12 -0
- package/dist/source/index.js +32 -0
- package/dist/source/index.js.map +1 -0
- package/dist/source/meta.d.ts +30 -0
- package/dist/source/meta.js +22 -0
- package/dist/source/meta.js.map +1 -0
- package/dist/source/plain-text.d.ts +16 -0
- package/dist/source/plain-text.js +86 -0
- package/dist/source/plain-text.js.map +1 -0
- package/dist/source/toc.d.ts +16 -0
- package/dist/source/toc.js +17 -0
- package/dist/source/toc.js.map +1 -0
- package/dist/source/types.d.ts +16 -0
- package/dist/source/types.js +1 -0
- package/dist/source/types.js.map +1 -0
- package/dist/topology/grouping.d.ts +15 -0
- package/dist/topology/grouping.js +18 -0
- package/dist/topology/grouping.js.map +1 -0
- package/dist/topology/index.d.ts +21 -0
- package/dist/topology/index.js +5 -0
- package/dist/topology/index.js.map +1 -0
- package/dist/topology/resource-segmentation.d.ts +13 -0
- package/dist/topology/resource-segmentation.js +111 -0
- package/dist/topology/resource-segmentation.js.map +1 -0
- package/dist/topology/segment-incision.d.ts +18 -0
- package/dist/topology/segment-incision.js +197 -0
- package/dist/topology/segment-incision.js.map +1 -0
- package/dist/topology/snake-detector.d.ts +13 -0
- package/dist/topology/snake-detector.js +520 -0
- package/dist/topology/snake-detector.js.map +1 -0
- package/dist/topology/snake-graph-builder.d.ts +14 -0
- package/dist/topology/snake-graph-builder.js +76 -0
- package/dist/topology/snake-graph-builder.js.map +1 -0
- package/dist/topology/topology.d.ts +29 -0
- package/dist/topology/topology.js +348 -0
- package/dist/topology/topology.js.map +1 -0
- package/dist/topology/weights.d.ts +10 -0
- package/dist/topology/weights.js +84 -0
- package/dist/topology/weights.js.map +1 -0
- package/dist/types-FVIqiLC9.d.cts +24 -0
- package/dist/utils/async-semaphore.d.ts +7 -0
- package/dist/utils/async-semaphore.js +40 -0
- package/dist/utils/async-semaphore.js.map +1 -0
- package/dist/utils/enum.d.ts +5 -0
- package/dist/utils/enum.js +18 -0
- package/dist/utils/enum.js.map +1 -0
- package/dist/utils/hash.d.ts +3 -0
- package/dist/utils/hash.js +132 -0
- package/dist/utils/hash.js.map +1 -0
- package/dist/utils/node-error.d.ts +4 -0
- package/dist/utils/node-error.js +59 -0
- package/dist/utils/node-error.js.map +1 -0
- package/dist/wikg/archive-uri.d.ts +1 -0
- package/dist/wikg/archive-uri.js +37 -0
- package/dist/wikg/archive-uri.js.map +1 -0
- package/dist/wikg/archive.d.ts +28 -0
- package/dist/wikg/archive.js +496 -0
- package/dist/wikg/archive.js.map +1 -0
- package/dist/wikg/index.d.ts +31 -0
- package/dist/wikg/index.js +60 -0
- package/dist/wikg/index.js.map +1 -0
- package/dist/wikg/wikg-coordinator.d.ts +45 -0
- package/dist/wikg/wikg-coordinator.js +1687 -0
- package/dist/wikg/wikg-coordinator.js.map +1 -0
- package/dist/wikg/wiki-graph-archive-file.d.ts +42 -0
- package/dist/wikg/wiki-graph-archive-file.js +78 -0
- package/dist/wikg/wiki-graph-archive-file.js.map +1 -0
- package/dist/wikilink/index.d.ts +10 -0
- package/dist/wikilink/index.js +7 -0
- package/dist/wikilink/index.js.map +1 -0
- package/dist/wikilink/relation-discovery.d.ts +31 -0
- package/dist/wikilink/relation-discovery.js +477 -0
- package/dist/wikilink/relation-discovery.js.map +1 -0
- package/dist/wikilink/types.d.ts +23 -0
- package/dist/wikilink/types.js +1 -0
- package/dist/wikilink/types.js.map +1 -0
- package/dist/wikilink/window.d.ts +7 -0
- package/dist/wikilink/window.js +53 -0
- package/dist/wikilink/window.js.map +1 -0
- package/dist/wikimatch/enrichment.d.ts +10 -0
- package/dist/wikimatch/enrichment.js +55 -0
- package/dist/wikimatch/enrichment.js.map +1 -0
- package/dist/wikimatch/index.d.ts +16 -0
- package/dist/wikimatch/index.js +66 -0
- package/dist/wikimatch/index.js.map +1 -0
- package/dist/wikimatch/option-narrowing.d.ts +17 -0
- package/dist/wikimatch/option-narrowing.js +208 -0
- package/dist/wikimatch/option-narrowing.js.map +1 -0
- package/dist/wikimatch/options.d.ts +14 -0
- package/dist/wikimatch/options.js +155 -0
- package/dist/wikimatch/options.js.map +1 -0
- package/dist/wikimatch/policy-judge.d.ts +17 -0
- package/dist/wikimatch/policy-judge.js +430 -0
- package/dist/wikimatch/policy-judge.js.map +1 -0
- package/dist/wikimatch/range-suppression.d.ts +9 -0
- package/dist/wikimatch/range-suppression.js +27 -0
- package/dist/wikimatch/range-suppression.js.map +1 -0
- package/dist/wikimatch/surface-screening.d.ts +16 -0
- package/dist/wikimatch/surface-screening.js +168 -0
- package/dist/wikimatch/surface-screening.js.map +1 -0
- package/dist/wikimatch/surface-window.d.ts +6 -0
- package/dist/wikimatch/surface-window.js +44 -0
- package/dist/wikimatch/surface-window.js.map +1 -0
- package/dist/wikimatch/types.d.ts +151 -0
- package/dist/wikimatch/types.js +1 -0
- package/dist/wikimatch/types.js.map +1 -0
- package/dist/wikimatch/wikispine.d.ts +43 -0
- package/dist/wikimatch/wikispine.js +399 -0
- package/dist/wikimatch/wikispine.js.map +1 -0
- package/dist/wikimatch/window.d.ts +6 -0
- package/dist/wikimatch/window.js +83 -0
- package/dist/wikimatch/window.js.map +1 -0
- package/dist/wikimatch/words.d.ts +16 -0
- package/dist/wikimatch/words.js +66 -0
- package/dist/wikimatch/words.js.map +1 -0
- package/dist/wikipage/cache.d.ts +18 -0
- package/dist/wikipage/cache.js +404 -0
- package/dist/wikipage/cache.js.map +1 -0
- package/dist/wikipage/fetch-log.d.ts +17 -0
- package/dist/wikipage/fetch-log.js +143 -0
- package/dist/wikipage/fetch-log.js.map +1 -0
- package/dist/wikipage/index.d.ts +14 -0
- package/dist/wikipage/index.js +17 -0
- package/dist/wikipage/index.js.map +1 -0
- package/dist/wikipage/normalizer.d.ts +14 -0
- package/dist/wikipage/normalizer.js +147 -0
- package/dist/wikipage/normalizer.js.map +1 -0
- package/dist/wikipage/rate-limiter.d.ts +13 -0
- package/dist/wikipage/rate-limiter.js +84 -0
- package/dist/wikipage/rate-limiter.js.map +1 -0
- package/dist/wikipage/resolver.d.ts +26 -0
- package/dist/wikipage/resolver.js +325 -0
- package/dist/wikipage/resolver.js.map +1 -0
- package/dist/wikipage/types.d.ts +96 -0
- package/dist/wikipage/types.js +1 -0
- package/dist/wikipage/types.js.map +1 -0
- package/dist/wikipage/wikimedia-client.d.ts +48 -0
- package/dist/wikipage/wikimedia-client.js +397 -0
- package/dist/wikipage/wikimedia-client.js.map +1 -0
- package/dist/worker-BgQ0Xl8T.d.cts +181 -0
- package/dist/worker.cjs +5259 -0
- package/dist/worker.cjs.map +1 -0
- package/dist/worker.d.cts +2 -0
- package/dist/worker.d.ts +2 -0
- package/dist/worker.js +5 -0
- package/dist/worker.js.map +1 -0
- package/package.json +78 -0
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
class AsyncSemaphore {
|
|
2
|
+
#activeCount = 0;
|
|
3
|
+
#concurrency;
|
|
4
|
+
#pendingResolvers = [];
|
|
5
|
+
constructor(concurrency) {
|
|
6
|
+
if (!Number.isInteger(concurrency) || concurrency < 1) {
|
|
7
|
+
throw new RangeError("concurrency must be a positive integer");
|
|
8
|
+
}
|
|
9
|
+
this.#concurrency = concurrency;
|
|
10
|
+
}
|
|
11
|
+
async use(operation) {
|
|
12
|
+
await this.#acquire();
|
|
13
|
+
try {
|
|
14
|
+
return await operation();
|
|
15
|
+
} finally {
|
|
16
|
+
this.#release();
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
async #acquire() {
|
|
20
|
+
if (this.#activeCount < this.#concurrency) {
|
|
21
|
+
this.#activeCount += 1;
|
|
22
|
+
return;
|
|
23
|
+
}
|
|
24
|
+
await new Promise((resolve) => {
|
|
25
|
+
this.#pendingResolvers.push(() => {
|
|
26
|
+
this.#activeCount += 1;
|
|
27
|
+
resolve();
|
|
28
|
+
});
|
|
29
|
+
});
|
|
30
|
+
}
|
|
31
|
+
#release() {
|
|
32
|
+
this.#activeCount -= 1;
|
|
33
|
+
const next = this.#pendingResolvers.shift();
|
|
34
|
+
next?.();
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
export {
|
|
38
|
+
AsyncSemaphore
|
|
39
|
+
};
|
|
40
|
+
//# sourceMappingURL=async-semaphore.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/utils/async-semaphore.ts"],"sourcesContent":["export class AsyncSemaphore {\n #activeCount = 0;\n readonly #concurrency: number;\n readonly #pendingResolvers: Array<() => void> = [];\n\n public constructor(concurrency: number) {\n if (!Number.isInteger(concurrency) || concurrency < 1) {\n throw new RangeError(\"concurrency must be a positive integer\");\n }\n\n this.#concurrency = concurrency;\n }\n\n public async use<T>(operation: () => Promise<T> | T): Promise<T> {\n await this.#acquire();\n\n try {\n return await operation();\n } finally {\n this.#release();\n }\n }\n\n async #acquire(): Promise<void> {\n if (this.#activeCount < this.#concurrency) {\n this.#activeCount += 1;\n return;\n }\n\n await new Promise<void>((resolve) => {\n this.#pendingResolvers.push(() => {\n this.#activeCount += 1;\n resolve();\n });\n });\n }\n\n #release(): void {\n this.#activeCount -= 1;\n\n const next = this.#pendingResolvers.shift();\n next?.();\n }\n}\n"],"mappings":"AAAO,MAAM,eAAe;AAAA,EAC1B,eAAe;AAAA,EACN;AAAA,EACA,oBAAuC,CAAC;AAAA,EAE1C,YAAY,aAAqB;AACtC,QAAI,CAAC,OAAO,UAAU,WAAW,KAAK,cAAc,GAAG;AACrD,YAAM,IAAI,WAAW,wCAAwC;AAAA,IAC/D;AAEA,SAAK,eAAe;AAAA,EACtB;AAAA,EAEA,MAAa,IAAO,WAA6C;AAC/D,UAAM,KAAK,SAAS;AAEpB,QAAI;AACF,aAAO,MAAM,UAAU;AAAA,IACzB,UAAE;AACA,WAAK,SAAS;AAAA,IAChB;AAAA,EACF;AAAA,EAEA,MAAM,WAA0B;AAC9B,QAAI,KAAK,eAAe,KAAK,cAAc;AACzC,WAAK,gBAAgB;AACrB;AAAA,IACF;AAEA,UAAM,IAAI,QAAc,CAAC,YAAY;AACnC,WAAK,kBAAkB,KAAK,MAAM;AAChC,aAAK,gBAAgB;AACrB,gBAAQ;AAAA,MACV,CAAC;AAAA,IACH,CAAC;AAAA,EACH;AAAA,EAEA,WAAiB;AACf,SAAK,gBAAgB;AAErB,UAAM,OAAO,KAAK,kBAAkB,MAAM;AAC1C,WAAO;AAAA,EACT;AACF;","names":[]}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
type EnumLike = Record<string, string>;
|
|
2
|
+
declare function createEnumValueGuard<TEnum extends EnumLike>(enumType: TEnum): (value: string) => value is TEnum[keyof TEnum];
|
|
3
|
+
declare function createEnumValueAsserter<TEnum extends EnumLike>(enumType: TEnum, label: string): (value: string) => TEnum[keyof TEnum];
|
|
4
|
+
|
|
5
|
+
export { createEnumValueAsserter, createEnumValueGuard };
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
function createEnumValueGuard(enumType) {
|
|
2
|
+
const valueSet = new Set(Object.values(enumType));
|
|
3
|
+
return (value) => valueSet.has(value);
|
|
4
|
+
}
|
|
5
|
+
function createEnumValueAsserter(enumType, label) {
|
|
6
|
+
const isEnumValue = createEnumValueGuard(enumType);
|
|
7
|
+
return (value) => {
|
|
8
|
+
if (isEnumValue(value)) {
|
|
9
|
+
return value;
|
|
10
|
+
}
|
|
11
|
+
throw new Error(`Unknown ${label}: ${value}`);
|
|
12
|
+
};
|
|
13
|
+
}
|
|
14
|
+
export {
|
|
15
|
+
createEnumValueAsserter,
|
|
16
|
+
createEnumValueGuard
|
|
17
|
+
};
|
|
18
|
+
//# sourceMappingURL=enum.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/utils/enum.ts"],"sourcesContent":["type EnumLike = Record<string, string>;\n\nexport function createEnumValueGuard<TEnum extends EnumLike>(enumType: TEnum) {\n const valueSet = new Set<string>(Object.values(enumType));\n\n return (value: string): value is TEnum[keyof TEnum] => valueSet.has(value);\n}\n\nexport function createEnumValueAsserter<TEnum extends EnumLike>(\n enumType: TEnum,\n label: string,\n) {\n const isEnumValue = createEnumValueGuard(enumType);\n\n return (value: string): TEnum[keyof TEnum] => {\n if (isEnumValue(value)) {\n return value;\n }\n\n throw new Error(`Unknown ${label}: ${value}`);\n };\n}\n"],"mappings":"AAEO,SAAS,qBAA6C,UAAiB;AAC5E,QAAM,WAAW,IAAI,IAAY,OAAO,OAAO,QAAQ,CAAC;AAExD,SAAO,CAAC,UAA+C,SAAS,IAAI,KAAK;AAC3E;AAEO,SAAS,wBACd,UACA,OACA;AACA,QAAM,cAAc,qBAAqB,QAAQ;AAEjD,SAAO,CAAC,UAAsC;AAC5C,QAAI,YAAY,KAAK,GAAG;AACtB,aAAO;AAAA,IACT;AAEA,UAAM,IAAI,MAAM,WAAW,KAAK,KAAK,KAAK,EAAE;AAAA,EAC9C;AACF;","names":[]}
|
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
import { createHash as createNodeHash } from "crypto";
|
|
2
|
+
const UNSERIALIZABLE = /* @__PURE__ */ Symbol("UNSERIALIZABLE");
|
|
3
|
+
function createHash(value) {
|
|
4
|
+
return new HashComputation().run(value);
|
|
5
|
+
}
|
|
6
|
+
class HashComputation {
|
|
7
|
+
#activeObjects = /* @__PURE__ */ new Set();
|
|
8
|
+
#hash = createNodeHash("sha512");
|
|
9
|
+
#resolvingObjects = /* @__PURE__ */ new Set();
|
|
10
|
+
run(value) {
|
|
11
|
+
const hasSerializedValue = this.#writeValue(value, "");
|
|
12
|
+
if (!hasSerializedValue) {
|
|
13
|
+
throw new TypeError("Hash input must be JSON-serializable");
|
|
14
|
+
}
|
|
15
|
+
return this.#hash.digest("hex");
|
|
16
|
+
}
|
|
17
|
+
#writeValue(value, key) {
|
|
18
|
+
const resolvedValue = this.#resolveValue(value, key);
|
|
19
|
+
if (resolvedValue === UNSERIALIZABLE) {
|
|
20
|
+
return false;
|
|
21
|
+
}
|
|
22
|
+
this.#writeResolvedValue(resolvedValue);
|
|
23
|
+
return true;
|
|
24
|
+
}
|
|
25
|
+
#writeResolvedValue(value) {
|
|
26
|
+
if (value === null) {
|
|
27
|
+
this.#hash.update("null", "utf8");
|
|
28
|
+
return;
|
|
29
|
+
}
|
|
30
|
+
if (typeof value === "string") {
|
|
31
|
+
this.#hash.update(JSON.stringify(value), "utf8");
|
|
32
|
+
return;
|
|
33
|
+
}
|
|
34
|
+
if (typeof value === "number") {
|
|
35
|
+
this.#hash.update(
|
|
36
|
+
Number.isFinite(value) ? String(value) : "null",
|
|
37
|
+
"utf8"
|
|
38
|
+
);
|
|
39
|
+
return;
|
|
40
|
+
}
|
|
41
|
+
if (typeof value === "boolean") {
|
|
42
|
+
this.#hash.update(value ? "true" : "false", "utf8");
|
|
43
|
+
return;
|
|
44
|
+
}
|
|
45
|
+
if (this.#activeObjects.has(value)) {
|
|
46
|
+
throw new TypeError("Hash input must be JSON-serializable");
|
|
47
|
+
}
|
|
48
|
+
this.#activeObjects.add(value);
|
|
49
|
+
try {
|
|
50
|
+
if (Array.isArray(value)) {
|
|
51
|
+
this.#writeArray(value);
|
|
52
|
+
return;
|
|
53
|
+
}
|
|
54
|
+
this.#writeObject(value);
|
|
55
|
+
} finally {
|
|
56
|
+
this.#activeObjects.delete(value);
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
#writeArray(values) {
|
|
60
|
+
this.#hash.update("[", "utf8");
|
|
61
|
+
for (const [index, value] of values.entries()) {
|
|
62
|
+
if (index > 0) {
|
|
63
|
+
this.#hash.update(",", "utf8");
|
|
64
|
+
}
|
|
65
|
+
const resolvedValue = this.#resolveValue(value, String(index));
|
|
66
|
+
if (resolvedValue === UNSERIALIZABLE) {
|
|
67
|
+
this.#hash.update("null", "utf8");
|
|
68
|
+
continue;
|
|
69
|
+
}
|
|
70
|
+
this.#writeResolvedValue(resolvedValue);
|
|
71
|
+
}
|
|
72
|
+
this.#hash.update("]", "utf8");
|
|
73
|
+
}
|
|
74
|
+
#writeObject(value) {
|
|
75
|
+
this.#hash.update("{", "utf8");
|
|
76
|
+
let hasWrittenProperty = false;
|
|
77
|
+
for (const key of Object.keys(value)) {
|
|
78
|
+
const propertyValue = value[key];
|
|
79
|
+
const resolvedValue = this.#resolveValue(propertyValue, key);
|
|
80
|
+
if (resolvedValue === UNSERIALIZABLE) {
|
|
81
|
+
continue;
|
|
82
|
+
}
|
|
83
|
+
if (hasWrittenProperty) {
|
|
84
|
+
this.#hash.update(",", "utf8");
|
|
85
|
+
}
|
|
86
|
+
this.#hash.update(JSON.stringify(key), "utf8");
|
|
87
|
+
this.#hash.update(":", "utf8");
|
|
88
|
+
this.#writeResolvedValue(resolvedValue);
|
|
89
|
+
hasWrittenProperty = true;
|
|
90
|
+
}
|
|
91
|
+
this.#hash.update("}", "utf8");
|
|
92
|
+
}
|
|
93
|
+
#resolveValue(value, key) {
|
|
94
|
+
if (value === null) {
|
|
95
|
+
return null;
|
|
96
|
+
}
|
|
97
|
+
if (typeof value === "string" || typeof value === "boolean") {
|
|
98
|
+
return value;
|
|
99
|
+
}
|
|
100
|
+
if (typeof value === "number") {
|
|
101
|
+
return Number.isFinite(value) ? value : null;
|
|
102
|
+
}
|
|
103
|
+
if (value === void 0 || typeof value === "function" || typeof value === "symbol") {
|
|
104
|
+
return UNSERIALIZABLE;
|
|
105
|
+
}
|
|
106
|
+
if (typeof value === "bigint") {
|
|
107
|
+
throw new TypeError("Hash input must be JSON-serializable");
|
|
108
|
+
}
|
|
109
|
+
if (value instanceof String || value instanceof Number || value instanceof Boolean) {
|
|
110
|
+
return this.#resolveValue(value.valueOf(), key);
|
|
111
|
+
}
|
|
112
|
+
if (!hasToJson(value)) {
|
|
113
|
+
return value;
|
|
114
|
+
}
|
|
115
|
+
if (this.#resolvingObjects.has(value)) {
|
|
116
|
+
throw new TypeError("Hash input must be JSON-serializable");
|
|
117
|
+
}
|
|
118
|
+
this.#resolvingObjects.add(value);
|
|
119
|
+
try {
|
|
120
|
+
return this.#resolveValue(value.toJSON(key), key);
|
|
121
|
+
} finally {
|
|
122
|
+
this.#resolvingObjects.delete(value);
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
function hasToJson(value) {
|
|
127
|
+
return "toJSON" in value && typeof value.toJSON === "function";
|
|
128
|
+
}
|
|
129
|
+
export {
|
|
130
|
+
createHash
|
|
131
|
+
};
|
|
132
|
+
//# sourceMappingURL=hash.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/utils/hash.ts"],"sourcesContent":["import { createHash as createNodeHash } from \"crypto\";\n\nconst UNSERIALIZABLE = Symbol(\"UNSERIALIZABLE\");\n\ntype ResolvedHashValue = boolean | number | object | string | null;\n\nexport function createHash(value: unknown): string {\n return new HashComputation().run(value);\n}\n\nclass HashComputation {\n readonly #activeObjects = new Set<object>();\n readonly #hash = createNodeHash(\"sha512\");\n readonly #resolvingObjects = new Set<object>();\n\n public run(value: unknown): string {\n const hasSerializedValue = this.#writeValue(value, \"\");\n\n if (!hasSerializedValue) {\n throw new TypeError(\"Hash input must be JSON-serializable\");\n }\n\n return this.#hash.digest(\"hex\");\n }\n\n #writeValue(value: unknown, key: string): boolean {\n const resolvedValue = this.#resolveValue(value, key);\n\n if (resolvedValue === UNSERIALIZABLE) {\n return false;\n }\n\n this.#writeResolvedValue(resolvedValue);\n return true;\n }\n\n #writeResolvedValue(value: ResolvedHashValue): void {\n if (value === null) {\n this.#hash.update(\"null\", \"utf8\");\n return;\n }\n\n if (typeof value === \"string\") {\n this.#hash.update(JSON.stringify(value), \"utf8\");\n return;\n }\n\n if (typeof value === \"number\") {\n this.#hash.update(\n Number.isFinite(value) ? String(value) : \"null\",\n \"utf8\",\n );\n return;\n }\n\n if (typeof value === \"boolean\") {\n this.#hash.update(value ? \"true\" : \"false\", \"utf8\");\n return;\n }\n\n if (this.#activeObjects.has(value)) {\n throw new TypeError(\"Hash input must be JSON-serializable\");\n }\n\n this.#activeObjects.add(value);\n\n try {\n if (Array.isArray(value)) {\n this.#writeArray(value);\n return;\n }\n\n this.#writeObject(value);\n } finally {\n this.#activeObjects.delete(value);\n }\n }\n\n #writeArray(values: readonly unknown[]): void {\n this.#hash.update(\"[\", \"utf8\");\n\n for (const [index, value] of values.entries()) {\n if (index > 0) {\n this.#hash.update(\",\", \"utf8\");\n }\n\n const resolvedValue = this.#resolveValue(value, String(index));\n\n if (resolvedValue === UNSERIALIZABLE) {\n this.#hash.update(\"null\", \"utf8\");\n continue;\n }\n\n this.#writeResolvedValue(resolvedValue);\n }\n\n this.#hash.update(\"]\", \"utf8\");\n }\n\n #writeObject(value: object): void {\n this.#hash.update(\"{\", \"utf8\");\n\n let hasWrittenProperty = false;\n\n for (const key of Object.keys(value)) {\n const propertyValue = (value as Record<string, unknown>)[key];\n const resolvedValue = this.#resolveValue(propertyValue, key);\n\n if (resolvedValue === UNSERIALIZABLE) {\n continue;\n }\n\n if (hasWrittenProperty) {\n this.#hash.update(\",\", \"utf8\");\n }\n\n this.#hash.update(JSON.stringify(key), \"utf8\");\n this.#hash.update(\":\", \"utf8\");\n this.#writeResolvedValue(resolvedValue);\n hasWrittenProperty = true;\n }\n\n this.#hash.update(\"}\", \"utf8\");\n }\n\n #resolveValue(\n value: unknown,\n key: string,\n ): ResolvedHashValue | typeof UNSERIALIZABLE {\n if (value === null) {\n return null;\n }\n\n if (typeof value === \"string\" || typeof value === \"boolean\") {\n return value;\n }\n\n if (typeof value === \"number\") {\n return Number.isFinite(value) ? value : null;\n }\n\n if (\n value === undefined ||\n typeof value === \"function\" ||\n typeof value === \"symbol\"\n ) {\n return UNSERIALIZABLE;\n }\n\n if (typeof value === \"bigint\") {\n throw new TypeError(\"Hash input must be JSON-serializable\");\n }\n\n if (\n value instanceof String ||\n value instanceof Number ||\n value instanceof Boolean\n ) {\n return this.#resolveValue(value.valueOf(), key);\n }\n\n if (!hasToJson(value)) {\n return value;\n }\n\n if (this.#resolvingObjects.has(value)) {\n throw new TypeError(\"Hash input must be JSON-serializable\");\n }\n\n this.#resolvingObjects.add(value);\n\n try {\n return this.#resolveValue(value.toJSON(key), key);\n } finally {\n this.#resolvingObjects.delete(value);\n }\n }\n}\n\nfunction hasToJson(\n value: object,\n): value is object & { toJSON(key: string): unknown } {\n return \"toJSON\" in value && typeof value.toJSON === \"function\";\n}\n"],"mappings":"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","names":[]}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
function isNodeError(error) {
|
|
2
|
+
return error instanceof Error;
|
|
3
|
+
}
|
|
4
|
+
function formatError(error) {
|
|
5
|
+
const messages = [];
|
|
6
|
+
const visited = /* @__PURE__ */ new Set();
|
|
7
|
+
let current = error;
|
|
8
|
+
while (current !== void 0 && !visited.has(current)) {
|
|
9
|
+
visited.add(current);
|
|
10
|
+
if (current instanceof Error) {
|
|
11
|
+
pushErrorMessage(messages, describeError(current));
|
|
12
|
+
current = current.cause;
|
|
13
|
+
continue;
|
|
14
|
+
}
|
|
15
|
+
pushErrorMessage(messages, String(current));
|
|
16
|
+
break;
|
|
17
|
+
}
|
|
18
|
+
return messages.join(": ");
|
|
19
|
+
}
|
|
20
|
+
function describeError(error) {
|
|
21
|
+
const errnoError = error;
|
|
22
|
+
const message = error.message.trim();
|
|
23
|
+
const code = typeof errnoError.code === "string" && errnoError.code !== "" ? errnoError.code : void 0;
|
|
24
|
+
const path = typeof errnoError.path === "string" && errnoError.path !== "" ? errnoError.path : void 0;
|
|
25
|
+
if (code === "ENOENT") {
|
|
26
|
+
return path === void 0 ? "File not found (ENOENT)" : `File not found: ${path} (ENOENT)`;
|
|
27
|
+
}
|
|
28
|
+
if (code === "EACCES" || code === "EPERM") {
|
|
29
|
+
return path === void 0 ? `Permission denied (${code})` : `Permission denied: ${path} (${code})`;
|
|
30
|
+
}
|
|
31
|
+
if (message === "") {
|
|
32
|
+
return code === void 0 ? error.name : `${error.name} (${code})`;
|
|
33
|
+
}
|
|
34
|
+
return code === void 0 ? message : `${message} (${code})`;
|
|
35
|
+
}
|
|
36
|
+
function pushErrorMessage(messages, message) {
|
|
37
|
+
const normalizedMessage = message.trim();
|
|
38
|
+
if (normalizedMessage === "") {
|
|
39
|
+
return;
|
|
40
|
+
}
|
|
41
|
+
const lastMessage = messages.at(-1);
|
|
42
|
+
if (lastMessage === void 0) {
|
|
43
|
+
messages.push(normalizedMessage);
|
|
44
|
+
return;
|
|
45
|
+
}
|
|
46
|
+
if (lastMessage === normalizedMessage || lastMessage.includes(normalizedMessage)) {
|
|
47
|
+
return;
|
|
48
|
+
}
|
|
49
|
+
if (normalizedMessage.includes(lastMessage)) {
|
|
50
|
+
messages[messages.length - 1] = normalizedMessage;
|
|
51
|
+
return;
|
|
52
|
+
}
|
|
53
|
+
messages.push(normalizedMessage);
|
|
54
|
+
}
|
|
55
|
+
export {
|
|
56
|
+
formatError,
|
|
57
|
+
isNodeError
|
|
58
|
+
};
|
|
59
|
+
//# sourceMappingURL=node-error.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/utils/node-error.ts"],"sourcesContent":["export function isNodeError(error: unknown): error is NodeJS.ErrnoException {\n return error instanceof Error;\n}\n\nexport function formatError(error: unknown): string {\n const messages: string[] = [];\n const visited = new Set<unknown>();\n let current: unknown = error;\n\n while (current !== undefined && !visited.has(current)) {\n visited.add(current);\n\n if (current instanceof Error) {\n pushErrorMessage(messages, describeError(current));\n current = current.cause;\n continue;\n }\n\n pushErrorMessage(messages, String(current as unknown));\n break;\n }\n\n return messages.join(\": \");\n}\n\nfunction describeError(error: Error): string {\n const errnoError = error as NodeJS.ErrnoException;\n const message = error.message.trim();\n const code =\n typeof errnoError.code === \"string\" && errnoError.code !== \"\"\n ? errnoError.code\n : undefined;\n const path =\n typeof errnoError.path === \"string\" && errnoError.path !== \"\"\n ? errnoError.path\n : undefined;\n\n if (code === \"ENOENT\") {\n return path === undefined\n ? \"File not found (ENOENT)\"\n : `File not found: ${path} (ENOENT)`;\n }\n\n if (code === \"EACCES\" || code === \"EPERM\") {\n return path === undefined\n ? `Permission denied (${code})`\n : `Permission denied: ${path} (${code})`;\n }\n\n if (message === \"\") {\n return code === undefined ? error.name : `${error.name} (${code})`;\n }\n\n return code === undefined ? message : `${message} (${code})`;\n}\n\nfunction pushErrorMessage(messages: string[], message: string): void {\n const normalizedMessage = message.trim();\n\n if (normalizedMessage === \"\") {\n return;\n }\n\n const lastMessage = messages.at(-1);\n\n if (lastMessage === undefined) {\n messages.push(normalizedMessage);\n return;\n }\n\n if (\n lastMessage === normalizedMessage ||\n lastMessage.includes(normalizedMessage)\n ) {\n return;\n }\n\n if (normalizedMessage.includes(lastMessage)) {\n messages[messages.length - 1] = normalizedMessage;\n return;\n }\n\n messages.push(normalizedMessage);\n}\n"],"mappings":"AAAO,SAAS,YAAY,OAAgD;AAC1E,SAAO,iBAAiB;AAC1B;AAEO,SAAS,YAAY,OAAwB;AAClD,QAAM,WAAqB,CAAC;AAC5B,QAAM,UAAU,oBAAI,IAAa;AACjC,MAAI,UAAmB;AAEvB,SAAO,YAAY,UAAa,CAAC,QAAQ,IAAI,OAAO,GAAG;AACrD,YAAQ,IAAI,OAAO;AAEnB,QAAI,mBAAmB,OAAO;AAC5B,uBAAiB,UAAU,cAAc,OAAO,CAAC;AACjD,gBAAU,QAAQ;AAClB;AAAA,IACF;AAEA,qBAAiB,UAAU,OAAO,OAAkB,CAAC;AACrD;AAAA,EACF;AAEA,SAAO,SAAS,KAAK,IAAI;AAC3B;AAEA,SAAS,cAAc,OAAsB;AAC3C,QAAM,aAAa;AACnB,QAAM,UAAU,MAAM,QAAQ,KAAK;AACnC,QAAM,OACJ,OAAO,WAAW,SAAS,YAAY,WAAW,SAAS,KACvD,WAAW,OACX;AACN,QAAM,OACJ,OAAO,WAAW,SAAS,YAAY,WAAW,SAAS,KACvD,WAAW,OACX;AAEN,MAAI,SAAS,UAAU;AACrB,WAAO,SAAS,SACZ,4BACA,mBAAmB,IAAI;AAAA,EAC7B;AAEA,MAAI,SAAS,YAAY,SAAS,SAAS;AACzC,WAAO,SAAS,SACZ,sBAAsB,IAAI,MAC1B,sBAAsB,IAAI,KAAK,IAAI;AAAA,EACzC;AAEA,MAAI,YAAY,IAAI;AAClB,WAAO,SAAS,SAAY,MAAM,OAAO,GAAG,MAAM,IAAI,KAAK,IAAI;AAAA,EACjE;AAEA,SAAO,SAAS,SAAY,UAAU,GAAG,OAAO,KAAK,IAAI;AAC3D;AAEA,SAAS,iBAAiB,UAAoB,SAAuB;AACnE,QAAM,oBAAoB,QAAQ,KAAK;AAEvC,MAAI,sBAAsB,IAAI;AAC5B;AAAA,EACF;AAEA,QAAM,cAAc,SAAS,GAAG,EAAE;AAElC,MAAI,gBAAgB,QAAW;AAC7B,aAAS,KAAK,iBAAiB;AAC/B;AAAA,EACF;AAEA,MACE,gBAAgB,qBAChB,YAAY,SAAS,iBAAiB,GACtC;AACA;AAAA,EACF;AAEA,MAAI,kBAAkB,SAAS,WAAW,GAAG;AAC3C,aAAS,SAAS,SAAS,CAAC,IAAI;AAChC;AAAA,EACF;AAEA,WAAS,KAAK,iBAAiB;AACjC;","names":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { LocatedWikiGraphUri, WIKI_GRAPH_ARCHIVE_EXTENSION, WIKI_GRAPH_JOB_URI_PREFIX, WIKI_GRAPH_URI_PREFIX, formatLocatedChapterResourceUri, formatLocatedChapterSourceCollectionUri, formatLocatedChapterUri, formatLocatedWikiGraphUri, formatWikiGraphCommandUri, formatWikiGraphObjectUri, formatWikiGraphUriExpectedError, isWikiGraphJobUri, isWikiGraphUri, parseLocatedWikiGraphUri, requireArchiveUri, requireLocatedObjectOrArchiveUri, requireLocatedObjectUri } from '../common/wiki-graph-uri.js';
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import {
|
|
2
|
+
formatLocatedChapterResourceUri,
|
|
3
|
+
formatLocatedChapterSourceCollectionUri,
|
|
4
|
+
formatLocatedChapterUri,
|
|
5
|
+
formatLocatedWikiGraphUri,
|
|
6
|
+
formatWikiGraphCommandUri,
|
|
7
|
+
formatWikiGraphObjectUri,
|
|
8
|
+
formatWikiGraphUriExpectedError,
|
|
9
|
+
isWikiGraphJobUri,
|
|
10
|
+
isWikiGraphUri,
|
|
11
|
+
parseLocatedWikiGraphUri,
|
|
12
|
+
requireArchiveUri,
|
|
13
|
+
requireLocatedObjectOrArchiveUri,
|
|
14
|
+
requireLocatedObjectUri,
|
|
15
|
+
WIKI_GRAPH_ARCHIVE_EXTENSION,
|
|
16
|
+
WIKI_GRAPH_JOB_URI_PREFIX,
|
|
17
|
+
WIKI_GRAPH_URI_PREFIX
|
|
18
|
+
} from "../common/wiki-graph-uri.js";
|
|
19
|
+
export {
|
|
20
|
+
WIKI_GRAPH_ARCHIVE_EXTENSION,
|
|
21
|
+
WIKI_GRAPH_JOB_URI_PREFIX,
|
|
22
|
+
WIKI_GRAPH_URI_PREFIX,
|
|
23
|
+
formatLocatedChapterResourceUri,
|
|
24
|
+
formatLocatedChapterSourceCollectionUri,
|
|
25
|
+
formatLocatedChapterUri,
|
|
26
|
+
formatLocatedWikiGraphUri,
|
|
27
|
+
formatWikiGraphCommandUri,
|
|
28
|
+
formatWikiGraphObjectUri,
|
|
29
|
+
formatWikiGraphUriExpectedError,
|
|
30
|
+
isWikiGraphJobUri,
|
|
31
|
+
isWikiGraphUri,
|
|
32
|
+
parseLocatedWikiGraphUri,
|
|
33
|
+
requireArchiveUri,
|
|
34
|
+
requireLocatedObjectOrArchiveUri,
|
|
35
|
+
requireLocatedObjectUri
|
|
36
|
+
};
|
|
37
|
+
//# sourceMappingURL=archive-uri.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/wikg/archive-uri.ts"],"sourcesContent":["export {\n formatLocatedChapterResourceUri,\n formatLocatedChapterSourceCollectionUri,\n formatLocatedChapterUri,\n formatLocatedWikiGraphUri,\n formatWikiGraphCommandUri,\n formatWikiGraphObjectUri,\n formatWikiGraphUriExpectedError,\n isWikiGraphJobUri,\n isWikiGraphUri,\n parseLocatedWikiGraphUri,\n requireArchiveUri,\n requireLocatedObjectOrArchiveUri,\n requireLocatedObjectUri,\n WIKI_GRAPH_ARCHIVE_EXTENSION,\n WIKI_GRAPH_JOB_URI_PREFIX,\n WIKI_GRAPH_URI_PREFIX,\n type LocatedWikiGraphUri,\n} from \"../common/wiki-graph-uri.js\";\n"],"mappings":"AAAA;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OAEK;","names":[]}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { ZipFile, Entry } from 'yauzl';
|
|
2
|
+
|
|
3
|
+
declare const WIKG_FORMAT_VERSION = 1;
|
|
4
|
+
type WikgArchiveOverlay = {
|
|
5
|
+
readonly entryPath: string;
|
|
6
|
+
readonly kind: "deleted";
|
|
7
|
+
} | {
|
|
8
|
+
readonly entryPath: string;
|
|
9
|
+
readonly kind: "file";
|
|
10
|
+
readonly workspacePath: string;
|
|
11
|
+
};
|
|
12
|
+
declare class WikgArchiveReader {
|
|
13
|
+
#private;
|
|
14
|
+
constructor(path: string, zipFile: ZipFile, entries: readonly Entry[]);
|
|
15
|
+
static open(inputPath: string): Promise<WikgArchiveReader>;
|
|
16
|
+
close(): void;
|
|
17
|
+
listEntries(): readonly string[];
|
|
18
|
+
readEntry(entryPath: string): Promise<Buffer | undefined>;
|
|
19
|
+
}
|
|
20
|
+
declare function extractWikgArchive(inputPath: string, outputDirectoryPath: string): Promise<void>;
|
|
21
|
+
declare function writeWikgArchive(documentDirectoryPath: string, outputPath: string): Promise<void>;
|
|
22
|
+
declare function listWikgArchiveEntries(inputPath: string): Promise<readonly string[]>;
|
|
23
|
+
declare function readWikgArchiveEntry(inputPath: string, entryPath: string): Promise<Buffer | undefined>;
|
|
24
|
+
declare function readWikgArchiveMutationToken(inputPath: string): Promise<string>;
|
|
25
|
+
declare function writeWikgArchiveWithOverlays(inputPath: string, outputPath: string, overlays: readonly WikgArchiveOverlay[]): Promise<void>;
|
|
26
|
+
declare function readWikgArchiveFormatVersion(documentDirectoryPath: string): Promise<number>;
|
|
27
|
+
|
|
28
|
+
export { WIKG_FORMAT_VERSION, type WikgArchiveOverlay, WikgArchiveReader, extractWikgArchive, listWikgArchiveEntries, readWikgArchiveEntry, readWikgArchiveFormatVersion, readWikgArchiveMutationToken, writeWikgArchive, writeWikgArchiveWithOverlays };
|