mcard-js 2.1.12 → 2.1.13
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/README.md +14 -0
- package/dist/hash/HashValidator.d.ts +14 -0
- package/dist/hash/HashValidator.d.ts.map +1 -0
- package/dist/hash/HashValidator.js +57 -0
- package/dist/hash/HashValidator.js.map +1 -0
- package/dist/index.d.ts +29 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +38 -0
- package/dist/index.js.map +1 -0
- package/dist/model/CardCollection.d.ts +92 -0
- package/dist/model/CardCollection.d.ts.map +1 -0
- package/dist/model/CardCollection.js +217 -0
- package/dist/model/CardCollection.js.map +1 -0
- package/dist/model/ContentTypeInterpreter.d.ts +23 -0
- package/dist/model/ContentTypeInterpreter.d.ts.map +1 -0
- package/dist/model/ContentTypeInterpreter.js +140 -0
- package/dist/model/ContentTypeInterpreter.js.map +1 -0
- package/dist/model/EventProducer.d.ts +10 -0
- package/dist/model/EventProducer.d.ts.map +1 -0
- package/dist/model/EventProducer.js +46 -0
- package/dist/model/EventProducer.js.map +1 -0
- package/dist/model/GTime.d.ts +44 -0
- package/dist/model/GTime.d.ts.map +1 -0
- package/dist/model/GTime.js +91 -0
- package/dist/model/GTime.js.map +1 -0
- package/dist/model/Handle.d.ts +37 -0
- package/dist/model/Handle.d.ts.map +1 -0
- package/dist/model/Handle.js +90 -0
- package/dist/model/Handle.js.map +1 -0
- package/dist/model/MCard.d.ts +43 -0
- package/dist/model/MCard.d.ts.map +1 -0
- package/dist/model/MCard.js +76 -0
- package/dist/model/MCard.js.map +1 -0
- package/dist/model/constants.d.ts +45 -0
- package/dist/model/constants.d.ts.map +1 -0
- package/dist/model/constants.js +27 -0
- package/dist/model/constants.js.map +1 -0
- package/dist/model/detectors/BaseDetector.d.ts +26 -0
- package/dist/model/detectors/BaseDetector.d.ts.map +1 -0
- package/dist/model/detectors/BaseDetector.js +5 -0
- package/dist/model/detectors/BaseDetector.js.map +1 -0
- package/dist/model/detectors/BinaryDetector.d.ts +12 -0
- package/dist/model/detectors/BinaryDetector.d.ts.map +1 -0
- package/dist/model/detectors/BinaryDetector.js +82 -0
- package/dist/model/detectors/BinaryDetector.js.map +1 -0
- package/dist/model/detectors/ContentTypeInterpreter.d.ts +11 -0
- package/dist/model/detectors/ContentTypeInterpreter.d.ts.map +1 -0
- package/dist/model/detectors/ContentTypeInterpreter.js +51 -0
- package/dist/model/detectors/ContentTypeInterpreter.js.map +1 -0
- package/dist/model/detectors/DataFormatDetectors.d.ts +29 -0
- package/dist/model/detectors/DataFormatDetectors.d.ts.map +1 -0
- package/dist/model/detectors/DataFormatDetectors.js +223 -0
- package/dist/model/detectors/DataFormatDetectors.js.map +1 -0
- package/dist/model/detectors/LanguageDetector.d.ts +11 -0
- package/dist/model/detectors/LanguageDetector.d.ts.map +1 -0
- package/dist/model/detectors/LanguageDetector.js +148 -0
- package/dist/model/detectors/LanguageDetector.js.map +1 -0
- package/dist/model/detectors/MarkupDetectors.d.ts +22 -0
- package/dist/model/detectors/MarkupDetectors.d.ts.map +1 -0
- package/dist/model/detectors/MarkupDetectors.js +132 -0
- package/dist/model/detectors/MarkupDetectors.js.map +1 -0
- package/dist/model/detectors/OBJDetector.d.ts +8 -0
- package/dist/model/detectors/OBJDetector.d.ts.map +1 -0
- package/dist/model/detectors/OBJDetector.js +48 -0
- package/dist/model/detectors/OBJDetector.js.map +1 -0
- package/dist/model/detectors/registry.d.ts +13 -0
- package/dist/model/detectors/registry.d.ts.map +1 -0
- package/dist/model/detectors/registry.js +67 -0
- package/dist/model/detectors/registry.js.map +1 -0
- package/dist/monads/Either.d.ts +51 -0
- package/dist/monads/Either.d.ts.map +1 -0
- package/dist/monads/Either.js +82 -0
- package/dist/monads/Either.js.map +1 -0
- package/dist/monads/IO.d.ts +38 -0
- package/dist/monads/IO.d.ts.map +1 -0
- package/dist/monads/IO.js +66 -0
- package/dist/monads/IO.js.map +1 -0
- package/dist/monads/Maybe.d.ts +45 -0
- package/dist/monads/Maybe.d.ts.map +1 -0
- package/dist/monads/Maybe.js +73 -0
- package/dist/monads/Maybe.js.map +1 -0
- package/dist/monads/Reader.d.ts +29 -0
- package/dist/monads/Reader.d.ts.map +1 -0
- package/dist/monads/Reader.js +44 -0
- package/dist/monads/Reader.js.map +1 -0
- package/dist/monads/State.d.ts +33 -0
- package/dist/monads/State.d.ts.map +1 -0
- package/dist/monads/State.js +50 -0
- package/dist/monads/State.js.map +1 -0
- package/dist/monads/Writer.d.ts +29 -0
- package/dist/monads/Writer.d.ts.map +1 -0
- package/dist/monads/Writer.js +46 -0
- package/dist/monads/Writer.js.map +1 -0
- package/dist/ptr/FaroSidecar.d.ts +56 -0
- package/dist/ptr/FaroSidecar.d.ts.map +1 -0
- package/dist/ptr/FaroSidecar.js +102 -0
- package/dist/ptr/FaroSidecar.js.map +1 -0
- package/dist/ptr/LensProtocol.d.ts +84 -0
- package/dist/ptr/LensProtocol.d.ts.map +1 -0
- package/dist/ptr/LensProtocol.js +98 -0
- package/dist/ptr/LensProtocol.js.map +1 -0
- package/dist/ptr/SandboxWorker.d.ts +54 -0
- package/dist/ptr/SandboxWorker.d.ts.map +1 -0
- package/dist/ptr/SandboxWorker.js +172 -0
- package/dist/ptr/SandboxWorker.js.map +1 -0
- package/dist/ptr/common_types.d.ts +39 -0
- package/dist/ptr/common_types.d.ts.map +1 -0
- package/dist/ptr/common_types.js +12 -0
- package/dist/ptr/common_types.js.map +1 -0
- package/dist/ptr/lambda/AlphaConversion.d.ts +42 -0
- package/dist/ptr/lambda/AlphaConversion.d.ts.map +1 -0
- package/dist/ptr/lambda/AlphaConversion.js +244 -0
- package/dist/ptr/lambda/AlphaConversion.js.map +1 -0
- package/dist/ptr/lambda/BetaReduction.d.ts +73 -0
- package/dist/ptr/lambda/BetaReduction.d.ts.map +1 -0
- package/dist/ptr/lambda/BetaReduction.js +322 -0
- package/dist/ptr/lambda/BetaReduction.js.map +1 -0
- package/dist/ptr/lambda/EtaConversion.d.ts +65 -0
- package/dist/ptr/lambda/EtaConversion.d.ts.map +1 -0
- package/dist/ptr/lambda/EtaConversion.js +228 -0
- package/dist/ptr/lambda/EtaConversion.js.map +1 -0
- package/dist/ptr/lambda/FreeVariables.d.ts +44 -0
- package/dist/ptr/lambda/FreeVariables.d.ts.map +1 -0
- package/dist/ptr/lambda/FreeVariables.js +207 -0
- package/dist/ptr/lambda/FreeVariables.js.map +1 -0
- package/dist/ptr/lambda/LambdaRuntime.d.ts +80 -0
- package/dist/ptr/lambda/LambdaRuntime.d.ts.map +1 -0
- package/dist/ptr/lambda/LambdaRuntime.js +433 -0
- package/dist/ptr/lambda/LambdaRuntime.js.map +1 -0
- package/dist/ptr/lambda/LambdaTerm.d.ts +95 -0
- package/dist/ptr/lambda/LambdaTerm.d.ts.map +1 -0
- package/dist/ptr/lambda/LambdaTerm.js +159 -0
- package/dist/ptr/lambda/LambdaTerm.js.map +1 -0
- package/dist/ptr/lambda/index.d.ts +24 -0
- package/dist/ptr/lambda/index.d.ts.map +1 -0
- package/dist/ptr/lambda/index.js +34 -0
- package/dist/ptr/lambda/index.js.map +1 -0
- package/dist/ptr/llm/Config.d.ts +57 -0
- package/dist/ptr/llm/Config.d.ts.map +1 -0
- package/dist/ptr/llm/Config.js +183 -0
- package/dist/ptr/llm/Config.js.map +1 -0
- package/dist/ptr/llm/LLMRuntime.d.ts +35 -0
- package/dist/ptr/llm/LLMRuntime.d.ts.map +1 -0
- package/dist/ptr/llm/LLMRuntime.js +176 -0
- package/dist/ptr/llm/LLMRuntime.js.map +1 -0
- package/dist/ptr/llm/providers/LLMProvider.d.ts +43 -0
- package/dist/ptr/llm/providers/LLMProvider.d.ts.map +1 -0
- package/dist/ptr/llm/providers/LLMProvider.js +31 -0
- package/dist/ptr/llm/providers/LLMProvider.js.map +1 -0
- package/dist/ptr/llm/providers/MLCLLMProvider.d.ts +22 -0
- package/dist/ptr/llm/providers/MLCLLMProvider.d.ts.map +1 -0
- package/dist/ptr/llm/providers/MLCLLMProvider.js +155 -0
- package/dist/ptr/llm/providers/MLCLLMProvider.js.map +1 -0
- package/dist/ptr/llm/providers/OllamaEmbeddingProvider.d.ts +20 -0
- package/dist/ptr/llm/providers/OllamaEmbeddingProvider.d.ts.map +1 -0
- package/dist/ptr/llm/providers/OllamaEmbeddingProvider.js +42 -0
- package/dist/ptr/llm/providers/OllamaEmbeddingProvider.js.map +1 -0
- package/dist/ptr/llm/providers/OllamaProvider.d.ts +21 -0
- package/dist/ptr/llm/providers/OllamaProvider.d.ts.map +1 -0
- package/dist/ptr/llm/providers/OllamaProvider.js +158 -0
- package/dist/ptr/llm/providers/OllamaProvider.js.map +1 -0
- package/dist/ptr/llm/providers/WebLLMProvider.d.ts +22 -0
- package/dist/ptr/llm/providers/WebLLMProvider.d.ts.map +1 -0
- package/dist/ptr/llm/providers/WebLLMProvider.js +151 -0
- package/dist/ptr/llm/providers/WebLLMProvider.js.map +1 -0
- package/dist/ptr/node/Action.d.ts +426 -0
- package/dist/ptr/node/Action.d.ts.map +1 -0
- package/dist/ptr/node/Action.js +711 -0
- package/dist/ptr/node/Action.js.map +1 -0
- package/dist/ptr/node/CLMLoader.d.ts +18 -0
- package/dist/ptr/node/CLMLoader.d.ts.map +1 -0
- package/dist/ptr/node/CLMLoader.js +18 -0
- package/dist/ptr/node/CLMLoader.js.map +1 -0
- package/dist/ptr/node/CLMRunner.d.ts +34 -0
- package/dist/ptr/node/CLMRunner.d.ts.map +1 -0
- package/dist/ptr/node/CLMRunner.js +36 -0
- package/dist/ptr/node/CLMRunner.js.map +1 -0
- package/dist/ptr/node/FileSystemUtils.d.ts +40 -0
- package/dist/ptr/node/FileSystemUtils.d.ts.map +1 -0
- package/dist/ptr/node/FileSystemUtils.js +170 -0
- package/dist/ptr/node/FileSystemUtils.js.map +1 -0
- package/dist/ptr/node/NetworkConfig.d.ts +191 -0
- package/dist/ptr/node/NetworkConfig.d.ts.map +1 -0
- package/dist/ptr/node/NetworkConfig.js +8 -0
- package/dist/ptr/node/NetworkConfig.js.map +1 -0
- package/dist/ptr/node/NetworkRuntime.d.ts +38 -0
- package/dist/ptr/node/NetworkRuntime.d.ts.map +1 -0
- package/dist/ptr/node/NetworkRuntime.js +871 -0
- package/dist/ptr/node/NetworkRuntime.js.map +1 -0
- package/dist/ptr/node/P2PChatSession.d.ts +53 -0
- package/dist/ptr/node/P2PChatSession.d.ts.map +1 -0
- package/dist/ptr/node/P2PChatSession.js +154 -0
- package/dist/ptr/node/P2PChatSession.js.map +1 -0
- package/dist/ptr/node/RuntimeInterface.d.ts +4 -0
- package/dist/ptr/node/RuntimeInterface.d.ts.map +1 -0
- package/dist/ptr/node/RuntimeInterface.js +2 -0
- package/dist/ptr/node/RuntimeInterface.js.map +1 -0
- package/dist/ptr/node/Runtimes.d.ts +34 -0
- package/dist/ptr/node/Runtimes.d.ts.map +1 -0
- package/dist/ptr/node/Runtimes.js +38 -0
- package/dist/ptr/node/Runtimes.js.map +1 -0
- package/dist/ptr/node/SignalingServer.d.ts +37 -0
- package/dist/ptr/node/SignalingServer.d.ts.map +1 -0
- package/dist/ptr/node/SignalingServer.js +218 -0
- package/dist/ptr/node/SignalingServer.js.map +1 -0
- package/dist/ptr/node/cli.d.ts +3 -0
- package/dist/ptr/node/cli.d.ts.map +1 -0
- package/dist/ptr/node/cli.js +266 -0
- package/dist/ptr/node/cli.js.map +1 -0
- package/dist/ptr/node/clm/builtins/handle.d.ts +14 -0
- package/dist/ptr/node/clm/builtins/handle.d.ts.map +1 -0
- package/dist/ptr/node/clm/builtins/handle.js +177 -0
- package/dist/ptr/node/clm/builtins/handle.js.map +1 -0
- package/dist/ptr/node/clm/builtins/index.d.ts +20 -0
- package/dist/ptr/node/clm/builtins/index.d.ts.map +1 -0
- package/dist/ptr/node/clm/builtins/index.js +60 -0
- package/dist/ptr/node/clm/builtins/index.js.map +1 -0
- package/dist/ptr/node/clm/index.d.ts +25 -0
- package/dist/ptr/node/clm/index.d.ts.map +1 -0
- package/dist/ptr/node/clm/index.js +28 -0
- package/dist/ptr/node/clm/index.js.map +1 -0
- package/dist/ptr/node/clm/loader.d.ts +25 -0
- package/dist/ptr/node/clm/loader.d.ts.map +1 -0
- package/dist/ptr/node/clm/loader.js +146 -0
- package/dist/ptr/node/clm/loader.js.map +1 -0
- package/dist/ptr/node/clm/multiruntime.d.ts +9 -0
- package/dist/ptr/node/clm/multiruntime.d.ts.map +1 -0
- package/dist/ptr/node/clm/multiruntime.js +121 -0
- package/dist/ptr/node/clm/multiruntime.js.map +1 -0
- package/dist/ptr/node/clm/runner.d.ts +70 -0
- package/dist/ptr/node/clm/runner.d.ts.map +1 -0
- package/dist/ptr/node/clm/runner.js +324 -0
- package/dist/ptr/node/clm/runner.js.map +1 -0
- package/dist/ptr/node/clm/types.d.ts +166 -0
- package/dist/ptr/node/clm/types.d.ts.map +1 -0
- package/dist/ptr/node/clm/types.js +5 -0
- package/dist/ptr/node/clm/types.js.map +1 -0
- package/dist/ptr/node/clm/utils.d.ts +29 -0
- package/dist/ptr/node/clm/utils.d.ts.map +1 -0
- package/dist/ptr/node/clm/utils.js +88 -0
- package/dist/ptr/node/clm/utils.js.map +1 -0
- package/dist/ptr/node/network/HttpClient.d.ts +14 -0
- package/dist/ptr/node/network/HttpClient.d.ts.map +1 -0
- package/dist/ptr/node/network/HttpClient.js +139 -0
- package/dist/ptr/node/network/HttpClient.js.map +1 -0
- package/dist/ptr/node/network/MCardSerialization.d.ts +19 -0
- package/dist/ptr/node/network/MCardSerialization.d.ts.map +1 -0
- package/dist/ptr/node/network/MCardSerialization.js +41 -0
- package/dist/ptr/node/network/MCardSerialization.js.map +1 -0
- package/dist/ptr/node/network/NetworkInfrastructure.d.ts +37 -0
- package/dist/ptr/node/network/NetworkInfrastructure.d.ts.map +1 -0
- package/dist/ptr/node/network/NetworkInfrastructure.js +121 -0
- package/dist/ptr/node/network/NetworkInfrastructure.js.map +1 -0
- package/dist/ptr/node/network/NetworkSecurity.d.ts +24 -0
- package/dist/ptr/node/network/NetworkSecurity.d.ts.map +1 -0
- package/dist/ptr/node/network/NetworkSecurity.js +104 -0
- package/dist/ptr/node/network/NetworkSecurity.js.map +1 -0
- package/dist/ptr/node/runtimes/base.d.ts +31 -0
- package/dist/ptr/node/runtimes/base.d.ts.map +1 -0
- package/dist/ptr/node/runtimes/base.js +33 -0
- package/dist/ptr/node/runtimes/base.js.map +1 -0
- package/dist/ptr/node/runtimes/binary.d.ts +10 -0
- package/dist/ptr/node/runtimes/binary.d.ts.map +1 -0
- package/dist/ptr/node/runtimes/binary.js +16 -0
- package/dist/ptr/node/runtimes/binary.js.map +1 -0
- package/dist/ptr/node/runtimes/factory.d.ts +22 -0
- package/dist/ptr/node/runtimes/factory.d.ts.map +1 -0
- package/dist/ptr/node/runtimes/factory.js +152 -0
- package/dist/ptr/node/runtimes/factory.js.map +1 -0
- package/dist/ptr/node/runtimes/index.d.ts +28 -0
- package/dist/ptr/node/runtimes/index.d.ts.map +1 -0
- package/dist/ptr/node/runtimes/index.js +30 -0
- package/dist/ptr/node/runtimes/index.js.map +1 -0
- package/dist/ptr/node/runtimes/javascript.d.ts +22 -0
- package/dist/ptr/node/runtimes/javascript.d.ts.map +1 -0
- package/dist/ptr/node/runtimes/javascript.js +125 -0
- package/dist/ptr/node/runtimes/javascript.js.map +1 -0
- package/dist/ptr/node/runtimes/lean.d.ts +10 -0
- package/dist/ptr/node/runtimes/lean.d.ts.map +1 -0
- package/dist/ptr/node/runtimes/lean.js +60 -0
- package/dist/ptr/node/runtimes/lean.js.map +1 -0
- package/dist/ptr/node/runtimes/loader.d.ts +21 -0
- package/dist/ptr/node/runtimes/loader.d.ts.map +1 -0
- package/dist/ptr/node/runtimes/loader.js +126 -0
- package/dist/ptr/node/runtimes/loader.js.map +1 -0
- package/dist/ptr/node/runtimes/python.d.ts +14 -0
- package/dist/ptr/node/runtimes/python.d.ts.map +1 -0
- package/dist/ptr/node/runtimes/python.js +100 -0
- package/dist/ptr/node/runtimes/python.js.map +1 -0
- package/dist/ptr/node/runtimes/wasm.d.ts +10 -0
- package/dist/ptr/node/runtimes/wasm.d.ts.map +1 -0
- package/dist/ptr/node/runtimes/wasm.js +55 -0
- package/dist/ptr/node/runtimes/wasm.js.map +1 -0
- package/dist/rag/GraphRAGEngine.d.ts +26 -0
- package/dist/rag/GraphRAGEngine.d.ts.map +1 -0
- package/dist/rag/GraphRAGEngine.js +166 -0
- package/dist/rag/GraphRAGEngine.js.map +1 -0
- package/dist/rag/HandleVectorStore.d.ts +201 -0
- package/dist/rag/HandleVectorStore.d.ts.map +1 -0
- package/dist/rag/HandleVectorStore.js +527 -0
- package/dist/rag/HandleVectorStore.js.map +1 -0
- package/dist/rag/PersistentIndexer.d.ts +148 -0
- package/dist/rag/PersistentIndexer.d.ts.map +1 -0
- package/dist/rag/PersistentIndexer.js +302 -0
- package/dist/rag/PersistentIndexer.js.map +1 -0
- package/dist/rag/embeddings/VisionEmbeddingProvider.d.ts +87 -0
- package/dist/rag/embeddings/VisionEmbeddingProvider.d.ts.map +1 -0
- package/dist/rag/embeddings/VisionEmbeddingProvider.js +164 -0
- package/dist/rag/embeddings/VisionEmbeddingProvider.js.map +1 -0
- package/dist/rag/graph/community.d.ts +56 -0
- package/dist/rag/graph/community.d.ts.map +1 -0
- package/dist/rag/graph/community.js +247 -0
- package/dist/rag/graph/community.js.map +1 -0
- package/dist/rag/graph/extractor.d.ts +99 -0
- package/dist/rag/graph/extractor.d.ts.map +1 -0
- package/dist/rag/graph/extractor.js +210 -0
- package/dist/rag/graph/extractor.js.map +1 -0
- package/dist/rag/graph/store.d.ts +176 -0
- package/dist/rag/graph/store.d.ts.map +1 -0
- package/dist/rag/graph/store.js +504 -0
- package/dist/rag/graph/store.js.map +1 -0
- package/dist/rag/index.d.ts +20 -0
- package/dist/rag/index.d.ts.map +1 -0
- package/dist/rag/index.js +26 -0
- package/dist/rag/index.js.map +1 -0
- package/dist/rag/semanticVersioning.d.ts +187 -0
- package/dist/rag/semanticVersioning.d.ts.map +1 -0
- package/dist/rag/semanticVersioning.js +253 -0
- package/dist/rag/semanticVersioning.js.map +1 -0
- package/dist/storage/IndexedDBEngine.d.ts +33 -0
- package/dist/storage/IndexedDBEngine.d.ts.map +1 -0
- package/dist/storage/IndexedDBEngine.js +198 -0
- package/dist/storage/IndexedDBEngine.js.map +1 -0
- package/dist/storage/SqliteNodeEngine.d.ts +123 -0
- package/dist/storage/SqliteNodeEngine.d.ts.map +1 -0
- package/dist/storage/SqliteNodeEngine.js +385 -0
- package/dist/storage/SqliteNodeEngine.js.map +1 -0
- package/dist/storage/SqliteWasmEngine.d.ts +60 -0
- package/dist/storage/SqliteWasmEngine.d.ts.map +1 -0
- package/dist/storage/SqliteWasmEngine.js +193 -0
- package/dist/storage/SqliteWasmEngine.js.map +1 -0
- package/dist/storage/StorageAdapter.d.ts +42 -0
- package/dist/storage/StorageAdapter.d.ts.map +1 -0
- package/dist/storage/StorageAdapter.js +2 -0
- package/dist/storage/StorageAdapter.js.map +1 -0
- package/dist/storage/VectorStore.d.ts +202 -0
- package/dist/storage/VectorStore.d.ts.map +1 -0
- package/dist/storage/VectorStore.js +557 -0
- package/dist/storage/VectorStore.js.map +1 -0
- package/dist/storage/schema.d.ts +162 -0
- package/dist/storage/schema.d.ts.map +1 -0
- package/dist/storage/schema.js +373 -0
- package/dist/storage/schema.js.map +1 -0
- package/dist/util/FileIO.d.ts +44 -0
- package/dist/util/FileIO.d.ts.map +1 -0
- package/dist/util/FileIO.js +203 -0
- package/dist/util/FileIO.js.map +1 -0
- package/dist/util/Loader.d.ts +34 -0
- package/dist/util/Loader.d.ts.map +1 -0
- package/dist/util/Loader.js +168 -0
- package/dist/util/Loader.js.map +1 -0
- package/package.json +2 -1
package/README.md
CHANGED
|
@@ -607,6 +607,20 @@ To run integration tests against a live Ollama instance:
|
|
|
607
607
|
npx vitest tests/rag/Integration.test.ts
|
|
608
608
|
```
|
|
609
609
|
|
|
610
|
+
## Version 2.1.13 Release Notes (December 11, 2025)
|
|
611
|
+
> Lean 4.25.2 Support & CLM Test Case Improvements
|
|
612
|
+
|
|
613
|
+
### 🔧 Lean Runtime Improvements
|
|
614
|
+
* **Lean 4.25.2 Support**: `LeanRuntime` now uses `elan run leanprover/lean4:v4.25.2` to ensure correct toolchain version regardless of system PATH configuration.
|
|
615
|
+
* **Modern Syntax**: Updated `lean_gcd.lean` to use Lean 4.8+ syntax (`termination_by b`, `Nat.pos_of_ne_zero`).
|
|
616
|
+
* **Elan Integration**: Automatic detection of `~/.elan/bin/elan` for reliable version selection.
|
|
617
|
+
|
|
618
|
+
### 📝 CLM Test Case Additions
|
|
619
|
+
* **`loader_orchestrator.clm`**: Added `test_cases` section with proper `given`/`then` assertions.
|
|
620
|
+
* **`verify_loaders.clm`**: Added missing `then` clause with `success: true` and `match: true` assertions.
|
|
621
|
+
|
|
622
|
+
---
|
|
623
|
+
|
|
610
624
|
## Version 2.1.12 Release Notes (December 11, 2025)
|
|
611
625
|
> Major Modularization Refactoring
|
|
612
626
|
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* HashValidator - Computes SHA-256 hashes using Web Crypto API
|
|
3
|
+
*/
|
|
4
|
+
export declare class HashValidator {
|
|
5
|
+
/**
|
|
6
|
+
* Compute hash of content using specified algorithm
|
|
7
|
+
*/
|
|
8
|
+
static computeHash(content: Uint8Array | string, algorithm?: string): Promise<string>;
|
|
9
|
+
/**
|
|
10
|
+
* Validate that content matches expected hash
|
|
11
|
+
*/
|
|
12
|
+
static validate(content: Uint8Array | string, expectedHash: string): Promise<boolean>;
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=HashValidator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"HashValidator.d.ts","sourceRoot":"","sources":["../../src/hash/HashValidator.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,qBAAa,aAAa;IACtB;;OAEG;WACU,WAAW,CAAC,OAAO,EAAE,UAAU,GAAG,MAAM,EAAE,SAAS,GAAE,MAAiB,GAAG,OAAO,CAAC,MAAM,CAAC;IA4BrG;;OAEG;WACU,QAAQ,CAAC,OAAO,EAAE,UAAU,GAAG,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;CAI9F"}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* HashValidator - Computes SHA-256 hashes using Web Crypto API
|
|
3
|
+
*/
|
|
4
|
+
export class HashValidator {
|
|
5
|
+
/**
|
|
6
|
+
* Compute hash of content using specified algorithm
|
|
7
|
+
*/
|
|
8
|
+
static async computeHash(content, algorithm = 'sha256') {
|
|
9
|
+
const data = typeof content === 'string'
|
|
10
|
+
? new TextEncoder().encode(content)
|
|
11
|
+
: content;
|
|
12
|
+
let algoName = 'SHA-256';
|
|
13
|
+
switch (algorithm.toLowerCase()) {
|
|
14
|
+
case 'sha1':
|
|
15
|
+
algoName = 'SHA-1';
|
|
16
|
+
break;
|
|
17
|
+
case 'sha-1':
|
|
18
|
+
algoName = 'SHA-1';
|
|
19
|
+
break;
|
|
20
|
+
case 'sha256':
|
|
21
|
+
algoName = 'SHA-256';
|
|
22
|
+
break;
|
|
23
|
+
case 'sha-256':
|
|
24
|
+
algoName = 'SHA-256';
|
|
25
|
+
break;
|
|
26
|
+
case 'sha384':
|
|
27
|
+
algoName = 'SHA-384';
|
|
28
|
+
break;
|
|
29
|
+
case 'sha-384':
|
|
30
|
+
algoName = 'SHA-384';
|
|
31
|
+
break;
|
|
32
|
+
case 'sha512':
|
|
33
|
+
algoName = 'SHA-512';
|
|
34
|
+
break;
|
|
35
|
+
case 'sha-512':
|
|
36
|
+
algoName = 'SHA-512';
|
|
37
|
+
break;
|
|
38
|
+
default:
|
|
39
|
+
console.warn(`Algorithm ${algorithm} not natively supported or mapped, defaulting to SHA-256`);
|
|
40
|
+
algoName = 'SHA-256';
|
|
41
|
+
}
|
|
42
|
+
// Create a copy to ensure we have a standard ArrayBuffer (not SharedArrayBuffer)
|
|
43
|
+
const buffer = new Uint8Array(data).buffer;
|
|
44
|
+
const hashBuffer = await crypto.subtle.digest(algoName, buffer);
|
|
45
|
+
return Array.from(new Uint8Array(hashBuffer))
|
|
46
|
+
.map(b => b.toString(16).padStart(2, '0'))
|
|
47
|
+
.join('');
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Validate that content matches expected hash
|
|
51
|
+
*/
|
|
52
|
+
static async validate(content, expectedHash) {
|
|
53
|
+
const computedHash = await this.computeHash(content);
|
|
54
|
+
return computedHash === expectedHash;
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
//# sourceMappingURL=HashValidator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"HashValidator.js","sourceRoot":"","sources":["../../src/hash/HashValidator.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,OAAO,aAAa;IACtB;;OAEG;IACH,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,OAA4B,EAAE,YAAoB,QAAQ;QAC/E,MAAM,IAAI,GAAG,OAAO,OAAO,KAAK,QAAQ;YACpC,CAAC,CAAC,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC;YACnC,CAAC,CAAC,OAAO,CAAC;QAEd,IAAI,QAAQ,GAAG,SAAS,CAAC;QACzB,QAAQ,SAAS,CAAC,WAAW,EAAE,EAAE,CAAC;YAC9B,KAAK,MAAM;gBAAE,QAAQ,GAAG,OAAO,CAAC;gBAAC,MAAM;YACvC,KAAK,OAAO;gBAAE,QAAQ,GAAG,OAAO,CAAC;gBAAC,MAAM;YACxC,KAAK,QAAQ;gBAAE,QAAQ,GAAG,SAAS,CAAC;gBAAC,MAAM;YAC3C,KAAK,SAAS;gBAAE,QAAQ,GAAG,SAAS,CAAC;gBAAC,MAAM;YAC5C,KAAK,QAAQ;gBAAE,QAAQ,GAAG,SAAS,CAAC;gBAAC,MAAM;YAC3C,KAAK,SAAS;gBAAE,QAAQ,GAAG,SAAS,CAAC;gBAAC,MAAM;YAC5C,KAAK,QAAQ;gBAAE,QAAQ,GAAG,SAAS,CAAC;gBAAC,MAAM;YAC3C,KAAK,SAAS;gBAAE,QAAQ,GAAG,SAAS,CAAC;gBAAC,MAAM;YAC5C;gBACI,OAAO,CAAC,IAAI,CAAC,aAAa,SAAS,0DAA0D,CAAC,CAAC;gBAC/F,QAAQ,GAAG,SAAS,CAAC;QAC7B,CAAC;QAED,iFAAiF;QACjF,MAAM,MAAM,GAAG,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC,MAAqB,CAAC;QAC1D,MAAM,UAAU,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QAChE,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,UAAU,CAAC,UAAU,CAAC,CAAC;aACxC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;aACzC,IAAI,CAAC,EAAE,CAAC,CAAC;IAClB,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,OAA4B,EAAE,YAAoB;QACpE,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;QACrD,OAAO,YAAY,KAAK,YAAY,CAAC;IACzC,CAAC;CACJ"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
export { MCard } from './model/MCard';
|
|
2
|
+
export { GTime } from './model/GTime';
|
|
3
|
+
export { ContentHandle, validateHandle, HandleValidationError } from './model/Handle';
|
|
4
|
+
export { CardCollection } from './model/CardCollection';
|
|
5
|
+
export { ContentTypeInterpreter } from './model/detectors/ContentTypeInterpreter';
|
|
6
|
+
export { EVENT_CONSTANTS, ALGORITHM_HIERARCHY } from './model/constants';
|
|
7
|
+
export { StorageEngine, Page } from './storage/StorageAdapter';
|
|
8
|
+
export { IndexedDBEngine } from './storage/IndexedDBEngine';
|
|
9
|
+
export { SqliteWasmEngine } from './storage/SqliteWasmEngine';
|
|
10
|
+
export { SqliteNodeEngine } from './storage/SqliteNodeEngine';
|
|
11
|
+
export { HashValidator } from './hash/HashValidator';
|
|
12
|
+
export { Maybe } from './monads/Maybe';
|
|
13
|
+
export { Either } from './monads/Either';
|
|
14
|
+
export { IO } from './monads/IO';
|
|
15
|
+
export { Reader } from './monads/Reader';
|
|
16
|
+
export { Writer } from './monads/Writer';
|
|
17
|
+
export { State } from './monads/State';
|
|
18
|
+
export { LensProtocol, JsonRpcRequest, JsonRpcResponse, ErrorCodes } from './ptr/LensProtocol';
|
|
19
|
+
export { SandboxWorker } from './ptr/SandboxWorker';
|
|
20
|
+
export * from './ptr/common_types';
|
|
21
|
+
export { FaroSidecar, FaroSidecarConfig } from './ptr/FaroSidecar';
|
|
22
|
+
import * as FileIO from './util/FileIO';
|
|
23
|
+
import * as Loader from './util/Loader';
|
|
24
|
+
export { FileIO, Loader };
|
|
25
|
+
export { LLMRuntime, promptMonad, chatMonad } from './ptr/llm/LLMRuntime';
|
|
26
|
+
export { LLMConfig } from './ptr/llm/Config';
|
|
27
|
+
export * as Lambda from './ptr/lambda';
|
|
28
|
+
export { LambdaRuntime } from './ptr/lambda/LambdaRuntime';
|
|
29
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AACtC,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AACtC,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;AACtF,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,EAAE,sBAAsB,EAAE,MAAM,0CAA0C,CAAC;AAClF,OAAO,EAAE,eAAe,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAGzE,OAAO,EAAE,aAAa,EAAE,IAAI,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAC5D,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAC9D,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAG9D,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAGrD,OAAO,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AACvC,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACzC,OAAO,EAAE,EAAE,EAAE,MAAM,aAAa,CAAC;AACjC,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACzC,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACzC,OAAO,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAGvC,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAC/F,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,cAAc,oBAAoB,CAAC;AACnC,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAInE,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;AAG1B,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAC1E,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAG7C,OAAO,KAAK,MAAM,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
// MCard JavaScript Library
|
|
2
|
+
// Content-addressable storage for browsers
|
|
3
|
+
// Core model
|
|
4
|
+
export { MCard } from './model/MCard';
|
|
5
|
+
export { GTime } from './model/GTime';
|
|
6
|
+
export { ContentHandle, validateHandle, HandleValidationError } from './model/Handle';
|
|
7
|
+
export { CardCollection } from './model/CardCollection';
|
|
8
|
+
export { ContentTypeInterpreter } from './model/detectors/ContentTypeInterpreter';
|
|
9
|
+
export { EVENT_CONSTANTS, ALGORITHM_HIERARCHY } from './model/constants';
|
|
10
|
+
export { IndexedDBEngine } from './storage/IndexedDBEngine';
|
|
11
|
+
export { SqliteWasmEngine } from './storage/SqliteWasmEngine';
|
|
12
|
+
export { SqliteNodeEngine } from './storage/SqliteNodeEngine';
|
|
13
|
+
// Hash
|
|
14
|
+
export { HashValidator } from './hash/HashValidator';
|
|
15
|
+
// Monads
|
|
16
|
+
export { Maybe } from './monads/Maybe';
|
|
17
|
+
export { Either } from './monads/Either';
|
|
18
|
+
export { IO } from './monads/IO';
|
|
19
|
+
export { Reader } from './monads/Reader';
|
|
20
|
+
export { Writer } from './monads/Writer';
|
|
21
|
+
export { State } from './monads/State';
|
|
22
|
+
// PTR (Polynomial Type Runtime)
|
|
23
|
+
export { LensProtocol, ErrorCodes } from './ptr/LensProtocol';
|
|
24
|
+
export { SandboxWorker } from './ptr/SandboxWorker';
|
|
25
|
+
export * from './ptr/common_types';
|
|
26
|
+
export { FaroSidecar } from './ptr/FaroSidecar';
|
|
27
|
+
// Utils
|
|
28
|
+
// Note: Exporting as namespace to avoid naming collisions
|
|
29
|
+
import * as FileIO from './util/FileIO';
|
|
30
|
+
import * as Loader from './util/Loader';
|
|
31
|
+
export { FileIO, Loader };
|
|
32
|
+
// LLM
|
|
33
|
+
export { LLMRuntime, promptMonad, chatMonad } from './ptr/llm/LLMRuntime';
|
|
34
|
+
export { LLMConfig } from './ptr/llm/Config';
|
|
35
|
+
// Lambda Calculus Runtime (α-β-η conversions)
|
|
36
|
+
export * as Lambda from './ptr/lambda';
|
|
37
|
+
export { LambdaRuntime } from './ptr/lambda/LambdaRuntime';
|
|
38
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,2BAA2B;AAC3B,2CAA2C;AAE3C,aAAa;AACb,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AACtC,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AACtC,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;AACtF,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,EAAE,sBAAsB,EAAE,MAAM,0CAA0C,CAAC;AAClF,OAAO,EAAE,eAAe,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAIzE,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAC5D,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAC9D,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAE9D,OAAO;AACP,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAErD,SAAS;AACT,OAAO,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AACvC,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACzC,OAAO,EAAE,EAAE,EAAE,MAAM,aAAa,CAAC;AACjC,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACzC,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACzC,OAAO,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAEvC,gCAAgC;AAChC,OAAO,EAAE,YAAY,EAAmC,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAC/F,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,cAAc,oBAAoB,CAAC;AACnC,OAAO,EAAE,WAAW,EAAqB,MAAM,mBAAmB,CAAC;AAEnE,QAAQ;AACR,0DAA0D;AAC1D,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;AAE1B,MAAM;AACN,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAC1E,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAE7C,8CAA8C;AAC9C,OAAO,KAAK,MAAM,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC"}
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
import { MCard } from './MCard';
|
|
2
|
+
import { StorageEngine, Page } from '../storage/StorageAdapter';
|
|
3
|
+
import { Maybe } from '../monads/Maybe';
|
|
4
|
+
/**
|
|
5
|
+
* CardCollection - High-level interface for MCard operations with monadic API
|
|
6
|
+
*/
|
|
7
|
+
export declare class CardCollection {
|
|
8
|
+
private engine;
|
|
9
|
+
constructor(engine: StorageEngine);
|
|
10
|
+
/**
|
|
11
|
+
* Add a card to the collection
|
|
12
|
+
* Handles duplicates (same content, same hash) and collisions (diff content, same hash)
|
|
13
|
+
*/
|
|
14
|
+
add(card: MCard): Promise<string>;
|
|
15
|
+
private areContentsEqual;
|
|
16
|
+
/**
|
|
17
|
+
* Get a card by hash
|
|
18
|
+
*/
|
|
19
|
+
get(hash: string): Promise<MCard | null>;
|
|
20
|
+
/**
|
|
21
|
+
* Delete a card by hash
|
|
22
|
+
*/
|
|
23
|
+
delete(hash: string): Promise<void>;
|
|
24
|
+
/**
|
|
25
|
+
* Get a page of cards
|
|
26
|
+
*/
|
|
27
|
+
getPage(pageNumber?: number, pageSize?: number): Promise<Page<MCard>>;
|
|
28
|
+
/**
|
|
29
|
+
* Count total cards
|
|
30
|
+
*/
|
|
31
|
+
count(): Promise<number>;
|
|
32
|
+
/**
|
|
33
|
+
* Add a card and register a handle for it
|
|
34
|
+
*/
|
|
35
|
+
addWithHandle(card: MCard, handle: string): Promise<string>;
|
|
36
|
+
/**
|
|
37
|
+
* Get card by handle
|
|
38
|
+
*/
|
|
39
|
+
getByHandle(handle: string): Promise<MCard | null>;
|
|
40
|
+
/**
|
|
41
|
+
* Resolve handle to hash
|
|
42
|
+
*/
|
|
43
|
+
resolveHandle(handle: string): Promise<string | null>;
|
|
44
|
+
/**
|
|
45
|
+
* Update handle to point to new card
|
|
46
|
+
*/
|
|
47
|
+
updateHandle(handle: string, newCard: MCard): Promise<string>;
|
|
48
|
+
/**
|
|
49
|
+
* Get version history for a handle
|
|
50
|
+
*/
|
|
51
|
+
getHandleHistory(handle: string): Promise<{
|
|
52
|
+
previousHash: string;
|
|
53
|
+
changedAt: string;
|
|
54
|
+
}[]>;
|
|
55
|
+
/**
|
|
56
|
+
* Monadic get - returns Maybe<MCard>
|
|
57
|
+
*/
|
|
58
|
+
getM(hash: string): Promise<Maybe<MCard>>;
|
|
59
|
+
/**
|
|
60
|
+
* Monadic getByHandle - returns Maybe<MCard>
|
|
61
|
+
*/
|
|
62
|
+
getByHandleM(handle: string): Promise<Maybe<MCard>>;
|
|
63
|
+
/**
|
|
64
|
+
* Monadic resolveHandle - returns Maybe<string>
|
|
65
|
+
*/
|
|
66
|
+
resolveHandleM(handle: string): Promise<Maybe<string>>;
|
|
67
|
+
/**
|
|
68
|
+
* Resolve handle and get card in one monadic operation
|
|
69
|
+
*/
|
|
70
|
+
resolveAndGetM(handle: string): Promise<Maybe<MCard>>;
|
|
71
|
+
/**
|
|
72
|
+
* Prune version history for a handle.
|
|
73
|
+
* @param handle The handle string.
|
|
74
|
+
* @param options Options for pruning (olderThan date, or deleteAll).
|
|
75
|
+
* @returns Number of deleted entries.
|
|
76
|
+
*/
|
|
77
|
+
pruneHandleHistory(handle: string, options?: {
|
|
78
|
+
olderThan?: string;
|
|
79
|
+
deleteAll?: boolean;
|
|
80
|
+
}): Promise<number>;
|
|
81
|
+
clear(): Promise<void>;
|
|
82
|
+
searchByString(query: string, pageNumber?: number, pageSize?: number): Promise<Page<MCard>>;
|
|
83
|
+
searchByContent(query: string, pageNumber?: number, pageSize?: number): Promise<Page<MCard>>;
|
|
84
|
+
searchByHash(hashPrefix: string): Promise<MCard[]>;
|
|
85
|
+
getAllMCardsRaw(): Promise<MCard[]>;
|
|
86
|
+
getAllCards(pageSize?: number, processCallback?: (card: MCard) => any): Promise<{
|
|
87
|
+
cards: MCard[];
|
|
88
|
+
total: number;
|
|
89
|
+
}>;
|
|
90
|
+
printAllCards(): Promise<void>;
|
|
91
|
+
}
|
|
92
|
+
//# sourceMappingURL=CardCollection.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CardCollection.d.ts","sourceRoot":"","sources":["../../src/model/CardCollection.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,217 @@
|
|
|
1
|
+
import { MCard } from './MCard';
|
|
2
|
+
import { Maybe } from '../monads/Maybe';
|
|
3
|
+
/**
|
|
4
|
+
* CardCollection - High-level interface for MCard operations with monadic API
|
|
5
|
+
*/
|
|
6
|
+
export class CardCollection {
|
|
7
|
+
engine;
|
|
8
|
+
constructor(engine) {
|
|
9
|
+
this.engine = engine;
|
|
10
|
+
}
|
|
11
|
+
// =========== Standard Operations ===========
|
|
12
|
+
/**
|
|
13
|
+
* Add a card to the collection
|
|
14
|
+
* Handles duplicates (same content, same hash) and collisions (diff content, same hash)
|
|
15
|
+
*/
|
|
16
|
+
async add(card) {
|
|
17
|
+
// Check existing by hash
|
|
18
|
+
const existingCard = await this.engine.get(card.hash);
|
|
19
|
+
if (existingCard) {
|
|
20
|
+
// Compare content
|
|
21
|
+
const isDuplicate = this.areContentsEqual(existingCard.content, card.content);
|
|
22
|
+
if (isDuplicate) {
|
|
23
|
+
// Duplicate detected
|
|
24
|
+
// console.debug(`Duplicate detected for hash ${card.hash}`);
|
|
25
|
+
const { generateDuplicationEvent } = await import('./EventProducer');
|
|
26
|
+
const eventStr = generateDuplicationEvent(card);
|
|
27
|
+
const eventCard = await MCard.create(eventStr);
|
|
28
|
+
// Store duplicate event but do not overwrite original card
|
|
29
|
+
await this.engine.add(eventCard);
|
|
30
|
+
return card.hash;
|
|
31
|
+
}
|
|
32
|
+
else {
|
|
33
|
+
// Collision detected
|
|
34
|
+
// console.warn(`Collision detected for hash ${card.hash}`);
|
|
35
|
+
const { generateCollisionEvent } = await import('./EventProducer');
|
|
36
|
+
const eventStr = await generateCollisionEvent(card);
|
|
37
|
+
// Store collision event
|
|
38
|
+
const eventCard = await MCard.create(eventStr);
|
|
39
|
+
await this.engine.add(eventCard);
|
|
40
|
+
// Store colliding card with upgraded hash function
|
|
41
|
+
const eventObj = JSON.parse(eventStr);
|
|
42
|
+
const nextAlgo = eventObj.upgraded_function;
|
|
43
|
+
if (!nextAlgo) {
|
|
44
|
+
throw new Error("Failed to determine next hash algorithm for collision");
|
|
45
|
+
}
|
|
46
|
+
const upgradedCard = await MCard.create(card.content, nextAlgo);
|
|
47
|
+
return this.engine.add(upgradedCard);
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
return this.engine.add(card);
|
|
51
|
+
}
|
|
52
|
+
areContentsEqual(a, b) {
|
|
53
|
+
if (a.length !== b.length)
|
|
54
|
+
return false;
|
|
55
|
+
for (let i = 0; i < a.length; i++) {
|
|
56
|
+
if (a[i] !== b[i])
|
|
57
|
+
return false;
|
|
58
|
+
}
|
|
59
|
+
return true;
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Get a card by hash
|
|
63
|
+
*/
|
|
64
|
+
async get(hash) {
|
|
65
|
+
return this.engine.get(hash);
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* Delete a card by hash
|
|
69
|
+
*/
|
|
70
|
+
async delete(hash) {
|
|
71
|
+
return this.engine.delete(hash);
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* Get a page of cards
|
|
75
|
+
*/
|
|
76
|
+
async getPage(pageNumber = 1, pageSize = 10) {
|
|
77
|
+
return this.engine.getPage(pageNumber, pageSize);
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* Count total cards
|
|
81
|
+
*/
|
|
82
|
+
async count() {
|
|
83
|
+
return this.engine.count();
|
|
84
|
+
}
|
|
85
|
+
// =========== Handle Operations ===========
|
|
86
|
+
/**
|
|
87
|
+
* Add a card and register a handle for it
|
|
88
|
+
*/
|
|
89
|
+
async addWithHandle(card, handle) {
|
|
90
|
+
const hash = await this.add(card);
|
|
91
|
+
await this.engine.registerHandle(handle, hash);
|
|
92
|
+
return hash;
|
|
93
|
+
}
|
|
94
|
+
/**
|
|
95
|
+
* Get card by handle
|
|
96
|
+
*/
|
|
97
|
+
async getByHandle(handle) {
|
|
98
|
+
return this.engine.getByHandle(handle);
|
|
99
|
+
}
|
|
100
|
+
/**
|
|
101
|
+
* Resolve handle to hash
|
|
102
|
+
*/
|
|
103
|
+
async resolveHandle(handle) {
|
|
104
|
+
return this.engine.resolveHandle(handle);
|
|
105
|
+
}
|
|
106
|
+
/**
|
|
107
|
+
* Update handle to point to new card
|
|
108
|
+
*/
|
|
109
|
+
async updateHandle(handle, newCard) {
|
|
110
|
+
const hash = await this.add(newCard);
|
|
111
|
+
await this.engine.updateHandle(handle, hash);
|
|
112
|
+
return hash;
|
|
113
|
+
}
|
|
114
|
+
/**
|
|
115
|
+
* Get version history for a handle
|
|
116
|
+
*/
|
|
117
|
+
async getHandleHistory(handle) {
|
|
118
|
+
return this.engine.getHandleHistory(handle);
|
|
119
|
+
}
|
|
120
|
+
// =========== Monadic Operations ===========
|
|
121
|
+
/**
|
|
122
|
+
* Monadic get - returns Maybe<MCard>
|
|
123
|
+
*/
|
|
124
|
+
async getM(hash) {
|
|
125
|
+
const card = await this.get(hash);
|
|
126
|
+
return card ? Maybe.just(card) : Maybe.nothing();
|
|
127
|
+
}
|
|
128
|
+
/**
|
|
129
|
+
* Monadic getByHandle - returns Maybe<MCard>
|
|
130
|
+
*/
|
|
131
|
+
async getByHandleM(handle) {
|
|
132
|
+
const card = await this.getByHandle(handle);
|
|
133
|
+
return card ? Maybe.just(card) : Maybe.nothing();
|
|
134
|
+
}
|
|
135
|
+
/**
|
|
136
|
+
* Monadic resolveHandle - returns Maybe<string>
|
|
137
|
+
*/
|
|
138
|
+
async resolveHandleM(handle) {
|
|
139
|
+
const hash = await this.resolveHandle(handle);
|
|
140
|
+
return hash ? Maybe.just(hash) : Maybe.nothing();
|
|
141
|
+
}
|
|
142
|
+
/**
|
|
143
|
+
* Resolve handle and get card in one monadic operation
|
|
144
|
+
*/
|
|
145
|
+
async resolveAndGetM(handle) {
|
|
146
|
+
const maybeHash = await this.resolveHandleM(handle);
|
|
147
|
+
if (maybeHash.isNothing)
|
|
148
|
+
return Maybe.nothing();
|
|
149
|
+
return this.getM(maybeHash.value);
|
|
150
|
+
}
|
|
151
|
+
/**
|
|
152
|
+
* Prune version history for a handle.
|
|
153
|
+
* @param handle The handle string.
|
|
154
|
+
* @param options Options for pruning (olderThan date, or deleteAll).
|
|
155
|
+
* @returns Number of deleted entries.
|
|
156
|
+
*/
|
|
157
|
+
async pruneHandleHistory(handle, options = {}) {
|
|
158
|
+
if (this.engine.pruneHandleHistory) {
|
|
159
|
+
return this.engine.pruneHandleHistory(handle, options);
|
|
160
|
+
}
|
|
161
|
+
return 0; // Or throw error if engine doesn't support it
|
|
162
|
+
}
|
|
163
|
+
// =========== Search & Bulk Operations ===========
|
|
164
|
+
async clear() {
|
|
165
|
+
return this.engine.clear();
|
|
166
|
+
}
|
|
167
|
+
async searchByString(query, pageNumber = 1, pageSize = 10) {
|
|
168
|
+
return this.engine.search(query, pageNumber, pageSize);
|
|
169
|
+
}
|
|
170
|
+
async searchByContent(query, pageNumber = 1, pageSize = 10) {
|
|
171
|
+
return this.engine.search(query, pageNumber, pageSize);
|
|
172
|
+
}
|
|
173
|
+
async searchByHash(hashPrefix) {
|
|
174
|
+
return this.engine.searchByHash(hashPrefix);
|
|
175
|
+
}
|
|
176
|
+
async getAllMCardsRaw() {
|
|
177
|
+
return this.engine.getAll();
|
|
178
|
+
}
|
|
179
|
+
async getAllCards(pageSize = 10, processCallback) {
|
|
180
|
+
const cards = [];
|
|
181
|
+
let pageNumber = 1;
|
|
182
|
+
let total = 0;
|
|
183
|
+
while (true) {
|
|
184
|
+
const page = await this.getPage(pageNumber, pageSize);
|
|
185
|
+
if (!page.items || page.items.length === 0)
|
|
186
|
+
break;
|
|
187
|
+
for (const card of page.items) {
|
|
188
|
+
if (processCallback) {
|
|
189
|
+
processCallback(card);
|
|
190
|
+
}
|
|
191
|
+
cards.push(card);
|
|
192
|
+
}
|
|
193
|
+
total = page.totalItems;
|
|
194
|
+
if (!page.hasNext)
|
|
195
|
+
break;
|
|
196
|
+
pageNumber++;
|
|
197
|
+
}
|
|
198
|
+
return { cards, total };
|
|
199
|
+
}
|
|
200
|
+
async printAllCards() {
|
|
201
|
+
const cards = await this.getAllMCardsRaw();
|
|
202
|
+
cards.forEach(card => {
|
|
203
|
+
console.log(`Hash: ${card.hash}`);
|
|
204
|
+
// Try to print as text if possible
|
|
205
|
+
try {
|
|
206
|
+
const text = new TextDecoder().decode(card.content);
|
|
207
|
+
const preview = text.slice(0, 100).replace(/\n/g, ' ');
|
|
208
|
+
console.log(`Content: ${preview}${text.length > 100 ? '...' : ''}`);
|
|
209
|
+
}
|
|
210
|
+
catch {
|
|
211
|
+
console.log(`Content (binary): ${card.content.length} bytes`);
|
|
212
|
+
}
|
|
213
|
+
console.log('---');
|
|
214
|
+
});
|
|
215
|
+
}
|
|
216
|
+
}
|
|
217
|
+
//# sourceMappingURL=CardCollection.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CardCollection.js","sourceRoot":"","sources":["../../src/model/CardCollection.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
export declare class ContentTypeInterpreter {
|
|
2
|
+
private static readonly MIME_TO_EXT;
|
|
3
|
+
/**
|
|
4
|
+
* Detect content type and suggest extension.
|
|
5
|
+
*
|
|
6
|
+
* @param content Content string or binary buffer
|
|
7
|
+
* @param fileExtension Optional file extension hint
|
|
8
|
+
* @returns Object containing detected mimeType and suggested extension
|
|
9
|
+
*/
|
|
10
|
+
static detectContentType(content: string | Uint8Array, fileExtension?: string): {
|
|
11
|
+
mimeType: string;
|
|
12
|
+
extension: string;
|
|
13
|
+
};
|
|
14
|
+
static getExtension(mimeType: string): string;
|
|
15
|
+
/**
|
|
16
|
+
* Check if content should be treated as binary.
|
|
17
|
+
*/
|
|
18
|
+
static isBinaryContent(content: string | Uint8Array, mimeType?: string): boolean;
|
|
19
|
+
static isKnownLongLineExtension(extension?: string): boolean;
|
|
20
|
+
static isUnstructuredBinary(sample: Uint8Array): boolean;
|
|
21
|
+
static hasPathologicalLines(sample: Uint8Array, isKnownType: boolean): boolean;
|
|
22
|
+
}
|
|
23
|
+
//# sourceMappingURL=ContentTypeInterpreter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ContentTypeInterpreter.d.ts","sourceRoot":"","sources":["../../src/model/ContentTypeInterpreter.ts"],"names":[],"mappings":"AAEA,qBAAa,sBAAsB;IAC/B,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,WAAW,CA8BjC;IAEF;;;;;;OAMG;IACH,MAAM,CAAC,iBAAiB,CACpB,OAAO,EAAE,MAAM,GAAG,UAAU,EAC5B,aAAa,CAAC,EAAE,MAAM,GACvB;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE;IAyC1C,MAAM,CAAC,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM;IAI7C;;OAEG;IACH,MAAM,CAAC,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,UAAU,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO;IAsBhF,MAAM,CAAC,wBAAwB,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO;IAM5D,MAAM,CAAC,oBAAoB,CAAC,MAAM,EAAE,UAAU,GAAG,OAAO;IA2BxD,MAAM,CAAC,oBAAoB,CAAC,MAAM,EAAE,UAAU,EAAE,WAAW,EAAE,OAAO,GAAG,OAAO;CASjF"}
|