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
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* IO Monad - Defers side effects until execution
|
|
3
|
+
*
|
|
4
|
+
* Enables pure functional composition of effectful operations
|
|
5
|
+
*/
|
|
6
|
+
export declare class IO<T> {
|
|
7
|
+
private readonly effect;
|
|
8
|
+
private constructor();
|
|
9
|
+
/**
|
|
10
|
+
* Create an IO from an effect (lazy evaluation)
|
|
11
|
+
*/
|
|
12
|
+
static of<T>(effect: () => T | Promise<T>): IO<T>;
|
|
13
|
+
/**
|
|
14
|
+
* Lift a pure value into IO
|
|
15
|
+
*/
|
|
16
|
+
static pure<T>(value: T): IO<T>;
|
|
17
|
+
/**
|
|
18
|
+
* Monadic bind - chain IO operations
|
|
19
|
+
*/
|
|
20
|
+
bind<U>(fn: (value: T) => IO<U>): IO<U>;
|
|
21
|
+
/**
|
|
22
|
+
* Map a function over the result
|
|
23
|
+
*/
|
|
24
|
+
map<U>(fn: (value: T) => U): IO<U>;
|
|
25
|
+
/**
|
|
26
|
+
* Execute the IO and get the result
|
|
27
|
+
*/
|
|
28
|
+
run(): Promise<T>;
|
|
29
|
+
/**
|
|
30
|
+
* Run multiple IOs in sequence
|
|
31
|
+
*/
|
|
32
|
+
static sequence<T>(ios: IO<T>[]): IO<T[]>;
|
|
33
|
+
/**
|
|
34
|
+
* Run multiple IOs in parallel
|
|
35
|
+
*/
|
|
36
|
+
static parallel<T>(ios: IO<T>[]): IO<T[]>;
|
|
37
|
+
}
|
|
38
|
+
//# sourceMappingURL=IO.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"IO.d.ts","sourceRoot":"","sources":["../../src/monads/IO.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,qBAAa,EAAE,CAAC,CAAC;IACO,OAAO,CAAC,QAAQ,CAAC,MAAM;IAA3C,OAAO;IAEP;;OAEG;IACH,MAAM,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;IAIjD;;OAEG;IACH,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;IAI/B;;OAEG;IACH,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;IAOvC;;OAEG;IACH,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;IAOlC;;OAEG;IACG,GAAG,IAAI,OAAO,CAAC,CAAC,CAAC;IAIvB;;OAEG;IACH,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC;IAUzC;;OAEG;IACH,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC;CAG5C"}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* IO Monad - Defers side effects until execution
|
|
3
|
+
*
|
|
4
|
+
* Enables pure functional composition of effectful operations
|
|
5
|
+
*/
|
|
6
|
+
export class IO {
|
|
7
|
+
effect;
|
|
8
|
+
constructor(effect) {
|
|
9
|
+
this.effect = effect;
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* Create an IO from an effect (lazy evaluation)
|
|
13
|
+
*/
|
|
14
|
+
static of(effect) {
|
|
15
|
+
return new IO(effect);
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Lift a pure value into IO
|
|
19
|
+
*/
|
|
20
|
+
static pure(value) {
|
|
21
|
+
return new IO(() => value);
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Monadic bind - chain IO operations
|
|
25
|
+
*/
|
|
26
|
+
bind(fn) {
|
|
27
|
+
return new IO(async () => {
|
|
28
|
+
const result = await this.run();
|
|
29
|
+
return fn(result).run();
|
|
30
|
+
});
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Map a function over the result
|
|
34
|
+
*/
|
|
35
|
+
map(fn) {
|
|
36
|
+
return new IO(async () => {
|
|
37
|
+
const result = await this.run();
|
|
38
|
+
return fn(result);
|
|
39
|
+
});
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Execute the IO and get the result
|
|
43
|
+
*/
|
|
44
|
+
async run() {
|
|
45
|
+
return this.effect();
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Run multiple IOs in sequence
|
|
49
|
+
*/
|
|
50
|
+
static sequence(ios) {
|
|
51
|
+
return new IO(async () => {
|
|
52
|
+
const results = [];
|
|
53
|
+
for (const io of ios) {
|
|
54
|
+
results.push(await io.run());
|
|
55
|
+
}
|
|
56
|
+
return results;
|
|
57
|
+
});
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Run multiple IOs in parallel
|
|
61
|
+
*/
|
|
62
|
+
static parallel(ios) {
|
|
63
|
+
return new IO(() => Promise.all(ios.map(io => io.run())));
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
//# sourceMappingURL=IO.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"IO.js","sourceRoot":"","sources":["../../src/monads/IO.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,MAAM,OAAO,EAAE;IAC0B;IAArC,YAAqC,MAA4B;QAA5B,WAAM,GAAN,MAAM,CAAsB;IAAI,CAAC;IAEtE;;OAEG;IACH,MAAM,CAAC,EAAE,CAAI,MAA4B;QACrC,OAAO,IAAI,EAAE,CAAC,MAAM,CAAC,CAAC;IAC1B,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,IAAI,CAAI,KAAQ;QACnB,OAAO,IAAI,EAAE,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC;IAC/B,CAAC;IAED;;OAEG;IACH,IAAI,CAAI,EAAuB;QAC3B,OAAO,IAAI,EAAE,CAAC,KAAK,IAAI,EAAE;YACrB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,GAAG,EAAE,CAAC;YAChC,OAAO,EAAE,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC;QAC5B,CAAC,CAAC,CAAC;IACP,CAAC;IAED;;OAEG;IACH,GAAG,CAAI,EAAmB;QACtB,OAAO,IAAI,EAAE,CAAC,KAAK,IAAI,EAAE;YACrB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,GAAG,EAAE,CAAC;YAChC,OAAO,EAAE,CAAC,MAAM,CAAC,CAAC;QACtB,CAAC,CAAC,CAAC;IACP,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,GAAG;QACL,OAAO,IAAI,CAAC,MAAM,EAAE,CAAC;IACzB,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,QAAQ,CAAI,GAAY;QAC3B,OAAO,IAAI,EAAE,CAAC,KAAK,IAAI,EAAE;YACrB,MAAM,OAAO,GAAQ,EAAE,CAAC;YACxB,KAAK,MAAM,EAAE,IAAI,GAAG,EAAE,CAAC;gBACnB,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;YACjC,CAAC;YACD,OAAO,OAAO,CAAC;QACnB,CAAC,CAAC,CAAC;IACP,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,QAAQ,CAAI,GAAY;QAC3B,OAAO,IAAI,EAAE,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;IAC9D,CAAC;CACJ"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Maybe Monad - Represents optional values
|
|
3
|
+
*
|
|
4
|
+
* Enables functional composition with .bind() chaining
|
|
5
|
+
* Just(value) = has value, Nothing = no value
|
|
6
|
+
*/
|
|
7
|
+
export declare class Maybe<T> {
|
|
8
|
+
private readonly _value;
|
|
9
|
+
private readonly _isNothing;
|
|
10
|
+
private constructor();
|
|
11
|
+
/**
|
|
12
|
+
* Create a Just (has value)
|
|
13
|
+
*/
|
|
14
|
+
static just<T>(value: T): Maybe<T>;
|
|
15
|
+
/**
|
|
16
|
+
* Create a Nothing (no value)
|
|
17
|
+
*/
|
|
18
|
+
static nothing<T>(): Maybe<T>;
|
|
19
|
+
/**
|
|
20
|
+
* Check if this is Nothing
|
|
21
|
+
*/
|
|
22
|
+
get isNothing(): boolean;
|
|
23
|
+
/**
|
|
24
|
+
* Check if this is Just
|
|
25
|
+
*/
|
|
26
|
+
get isJust(): boolean;
|
|
27
|
+
/**
|
|
28
|
+
* Get the value (throws if Nothing)
|
|
29
|
+
*/
|
|
30
|
+
get value(): T;
|
|
31
|
+
/**
|
|
32
|
+
* Monadic bind - chain operations
|
|
33
|
+
* Short-circuits on Nothing
|
|
34
|
+
*/
|
|
35
|
+
bind<U>(fn: (value: T) => Maybe<U>): Maybe<U>;
|
|
36
|
+
/**
|
|
37
|
+
* Map a function over the value
|
|
38
|
+
*/
|
|
39
|
+
map<U>(fn: (value: T) => U): Maybe<U>;
|
|
40
|
+
/**
|
|
41
|
+
* Get value or default
|
|
42
|
+
*/
|
|
43
|
+
getOrElse(defaultValue: T): T;
|
|
44
|
+
}
|
|
45
|
+
//# sourceMappingURL=Maybe.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Maybe.d.ts","sourceRoot":"","sources":["../../src/monads/Maybe.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,qBAAa,KAAK,CAAC,CAAC;IAEZ,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,UAAU;IAF/B,OAAO;IAKP;;OAEG;IACH,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;IAIlC;;OAEG;IACH,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC;IAI7B;;OAEG;IACH,IAAI,SAAS,IAAI,OAAO,CAEvB;IAED;;OAEG;IACH,IAAI,MAAM,IAAI,OAAO,CAEpB;IAED;;OAEG;IACH,IAAI,KAAK,IAAI,CAAC,CAKb;IAED;;;OAGG;IACH,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;IAO7C;;OAEG;IACH,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;IAOrC;;OAEG;IACH,SAAS,CAAC,YAAY,EAAE,CAAC,GAAG,CAAC;CAGhC"}
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Maybe Monad - Represents optional values
|
|
3
|
+
*
|
|
4
|
+
* Enables functional composition with .bind() chaining
|
|
5
|
+
* Just(value) = has value, Nothing = no value
|
|
6
|
+
*/
|
|
7
|
+
export class Maybe {
|
|
8
|
+
_value;
|
|
9
|
+
_isNothing;
|
|
10
|
+
constructor(_value, _isNothing) {
|
|
11
|
+
this._value = _value;
|
|
12
|
+
this._isNothing = _isNothing;
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Create a Just (has value)
|
|
16
|
+
*/
|
|
17
|
+
static just(value) {
|
|
18
|
+
return new Maybe(value, false);
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Create a Nothing (no value)
|
|
22
|
+
*/
|
|
23
|
+
static nothing() {
|
|
24
|
+
return new Maybe(null, true);
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Check if this is Nothing
|
|
28
|
+
*/
|
|
29
|
+
get isNothing() {
|
|
30
|
+
return this._isNothing;
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Check if this is Just
|
|
34
|
+
*/
|
|
35
|
+
get isJust() {
|
|
36
|
+
return !this._isNothing;
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Get the value (throws if Nothing)
|
|
40
|
+
*/
|
|
41
|
+
get value() {
|
|
42
|
+
if (this._isNothing) {
|
|
43
|
+
throw new Error('Cannot get value from Nothing');
|
|
44
|
+
}
|
|
45
|
+
return this._value;
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Monadic bind - chain operations
|
|
49
|
+
* Short-circuits on Nothing
|
|
50
|
+
*/
|
|
51
|
+
bind(fn) {
|
|
52
|
+
if (this._isNothing) {
|
|
53
|
+
return Maybe.nothing();
|
|
54
|
+
}
|
|
55
|
+
return fn(this._value);
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* Map a function over the value
|
|
59
|
+
*/
|
|
60
|
+
map(fn) {
|
|
61
|
+
if (this._isNothing) {
|
|
62
|
+
return Maybe.nothing();
|
|
63
|
+
}
|
|
64
|
+
return Maybe.just(fn(this._value));
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* Get value or default
|
|
68
|
+
*/
|
|
69
|
+
getOrElse(defaultValue) {
|
|
70
|
+
return this._isNothing ? defaultValue : this._value;
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
//# sourceMappingURL=Maybe.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Maybe.js","sourceRoot":"","sources":["../../src/monads/Maybe.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,MAAM,OAAO,KAAK;IAEO;IACA;IAFrB,YACqB,MAAgB,EAChB,UAAmB;QADnB,WAAM,GAAN,MAAM,CAAU;QAChB,eAAU,GAAV,UAAU,CAAS;IACpC,CAAC;IAEL;;OAEG;IACH,MAAM,CAAC,IAAI,CAAI,KAAQ;QACnB,OAAO,IAAI,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IACnC,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,OAAO;QACV,OAAO,IAAI,KAAK,CAAI,IAAI,EAAE,IAAI,CAAC,CAAC;IACpC,CAAC;IAED;;OAEG;IACH,IAAI,SAAS;QACT,OAAO,IAAI,CAAC,UAAU,CAAC;IAC3B,CAAC;IAED;;OAEG;IACH,IAAI,MAAM;QACN,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC;IAC5B,CAAC;IAED;;OAEG;IACH,IAAI,KAAK;QACL,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YAClB,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC;QACrD,CAAC;QACD,OAAO,IAAI,CAAC,MAAW,CAAC;IAC5B,CAAC;IAED;;;OAGG;IACH,IAAI,CAAI,EAA0B;QAC9B,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YAClB,OAAO,KAAK,CAAC,OAAO,EAAK,CAAC;QAC9B,CAAC;QACD,OAAO,EAAE,CAAC,IAAI,CAAC,MAAW,CAAC,CAAC;IAChC,CAAC;IAED;;OAEG;IACH,GAAG,CAAI,EAAmB;QACtB,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YAClB,OAAO,KAAK,CAAC,OAAO,EAAK,CAAC;QAC9B,CAAC;QACD,OAAO,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,MAAW,CAAC,CAAC,CAAC;IAC5C,CAAC;IAED;;OAEG;IACH,SAAS,CAAC,YAAe;QACrB,OAAO,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAE,IAAI,CAAC,MAAY,CAAC;IAC/D,CAAC;CACJ"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Reader Monad - Dependency Injection
|
|
3
|
+
* COMPUTATION which reads from a shared environment
|
|
4
|
+
*/
|
|
5
|
+
export declare class Reader<E, T> {
|
|
6
|
+
private readonly run;
|
|
7
|
+
constructor(run: (env: E) => T);
|
|
8
|
+
/**
|
|
9
|
+
* Lift a pure value into Reader
|
|
10
|
+
*/
|
|
11
|
+
static pure<E, T>(value: T): Reader<E, T>;
|
|
12
|
+
/**
|
|
13
|
+
* Get the environment
|
|
14
|
+
*/
|
|
15
|
+
static ask<E>(): Reader<E, E>;
|
|
16
|
+
/**
|
|
17
|
+
* Monadic bind (flatMap)
|
|
18
|
+
*/
|
|
19
|
+
bind<U>(fn: (value: T) => Reader<E, U>): Reader<E, U>;
|
|
20
|
+
/**
|
|
21
|
+
* Map over the result
|
|
22
|
+
*/
|
|
23
|
+
map<U>(fn: (value: T) => U): Reader<E, U>;
|
|
24
|
+
/**
|
|
25
|
+
* Execute the Reader logic with an environment
|
|
26
|
+
*/
|
|
27
|
+
evaluate(env: E): T;
|
|
28
|
+
}
|
|
29
|
+
//# sourceMappingURL=Reader.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Reader.d.ts","sourceRoot":"","sources":["../../src/monads/Reader.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,qBAAa,MAAM,CAAC,CAAC,EAAE,CAAC;IACR,OAAO,CAAC,QAAQ,CAAC,GAAG;gBAAH,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC;IAE/C;;OAEG;IACH,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC;IAIzC;;OAEG;IACH,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC;IAI7B;;OAEG;IACH,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC;IAOrD;;OAEG;IACH,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC;IAIzC;;OAEG;IACH,QAAQ,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC;CAGtB"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Reader Monad - Dependency Injection
|
|
3
|
+
* COMPUTATION which reads from a shared environment
|
|
4
|
+
*/
|
|
5
|
+
export class Reader {
|
|
6
|
+
run;
|
|
7
|
+
constructor(run) {
|
|
8
|
+
this.run = run;
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* Lift a pure value into Reader
|
|
12
|
+
*/
|
|
13
|
+
static pure(value) {
|
|
14
|
+
return new Reader(_ => value);
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Get the environment
|
|
18
|
+
*/
|
|
19
|
+
static ask() {
|
|
20
|
+
return new Reader(env => env);
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Monadic bind (flatMap)
|
|
24
|
+
*/
|
|
25
|
+
bind(fn) {
|
|
26
|
+
return new Reader(env => {
|
|
27
|
+
const value = this.run(env);
|
|
28
|
+
return fn(value).run(env);
|
|
29
|
+
});
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Map over the result
|
|
33
|
+
*/
|
|
34
|
+
map(fn) {
|
|
35
|
+
return this.bind(value => Reader.pure(fn(value)));
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Execute the Reader logic with an environment
|
|
39
|
+
*/
|
|
40
|
+
evaluate(env) {
|
|
41
|
+
return this.run(env);
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
//# sourceMappingURL=Reader.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Reader.js","sourceRoot":"","sources":["../../src/monads/Reader.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,OAAO,MAAM;IACc;IAA7B,YAA6B,GAAkB;QAAlB,QAAG,GAAH,GAAG,CAAe;IAAI,CAAC;IAEpD;;OAEG;IACH,MAAM,CAAC,IAAI,CAAO,KAAQ;QACtB,OAAO,IAAI,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;IAClC,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,GAAG;QACN,OAAO,IAAI,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;IAClC,CAAC;IAED;;OAEG;IACH,IAAI,CAAI,EAA8B;QAClC,OAAO,IAAI,MAAM,CAAC,GAAG,CAAC,EAAE;YACpB,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YAC5B,OAAO,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAC9B,CAAC,CAAC,CAAC;IACP,CAAC;IAED;;OAEG;IACH,GAAG,CAAI,EAAmB;QACtB,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACtD,CAAC;IAED;;OAEG;IACH,QAAQ,CAAC,GAAM;QACX,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACzB,CAAC;CACJ"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* State Monad - State Management
|
|
3
|
+
* Encapsulates state transitions
|
|
4
|
+
*/
|
|
5
|
+
export declare class State<S, T> {
|
|
6
|
+
private readonly run;
|
|
7
|
+
constructor(run: (state: S) => [T, S]);
|
|
8
|
+
/**
|
|
9
|
+
* Lift pure value
|
|
10
|
+
*/
|
|
11
|
+
static pure<S, T>(value: T): State<S, T>;
|
|
12
|
+
/**
|
|
13
|
+
* Get current state
|
|
14
|
+
*/
|
|
15
|
+
static get<S>(): State<S, S>;
|
|
16
|
+
/**
|
|
17
|
+
* Set new state
|
|
18
|
+
*/
|
|
19
|
+
static put<S>(newState: S): State<S, void>;
|
|
20
|
+
/**
|
|
21
|
+
* Monadic bind
|
|
22
|
+
*/
|
|
23
|
+
bind<U>(fn: (value: T) => State<S, U>): State<S, U>;
|
|
24
|
+
/**
|
|
25
|
+
* Map
|
|
26
|
+
*/
|
|
27
|
+
map<U>(fn: (value: T) => U): State<S, U>;
|
|
28
|
+
/**
|
|
29
|
+
* Execute state transition
|
|
30
|
+
*/
|
|
31
|
+
evaluate(initialState: S): [T, S];
|
|
32
|
+
}
|
|
33
|
+
//# sourceMappingURL=State.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"State.d.ts","sourceRoot":"","sources":["../../src/monads/State.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,qBAAa,KAAK,CAAC,CAAC,EAAE,CAAC;IACP,OAAO,CAAC,QAAQ,CAAC,GAAG;gBAAH,GAAG,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;IAEtD;;OAEG;IACH,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;IAIxC;;OAEG;IACH,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;IAI5B;;OAEG;IACH,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC;IAI1C;;OAEG;IACH,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;IAOnD;;OAEG;IACH,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;IAIxC;;OAEG;IACH,QAAQ,CAAC,YAAY,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC;CAGpC"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* State Monad - State Management
|
|
3
|
+
* Encapsulates state transitions
|
|
4
|
+
*/
|
|
5
|
+
export class State {
|
|
6
|
+
run;
|
|
7
|
+
constructor(run) {
|
|
8
|
+
this.run = run;
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* Lift pure value
|
|
12
|
+
*/
|
|
13
|
+
static pure(value) {
|
|
14
|
+
return new State(state => [value, state]);
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Get current state
|
|
18
|
+
*/
|
|
19
|
+
static get() {
|
|
20
|
+
return new State(state => [state, state]);
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Set new state
|
|
24
|
+
*/
|
|
25
|
+
static put(newState) {
|
|
26
|
+
return new State(_ => [undefined, newState]);
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Monadic bind
|
|
30
|
+
*/
|
|
31
|
+
bind(fn) {
|
|
32
|
+
return new State(state => {
|
|
33
|
+
const [val, newState] = this.run(state);
|
|
34
|
+
return fn(val).run(newState);
|
|
35
|
+
});
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Map
|
|
39
|
+
*/
|
|
40
|
+
map(fn) {
|
|
41
|
+
return this.bind(val => State.pure(fn(val)));
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Execute state transition
|
|
45
|
+
*/
|
|
46
|
+
evaluate(initialState) {
|
|
47
|
+
return this.run(initialState);
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
//# sourceMappingURL=State.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"State.js","sourceRoot":"","sources":["../../src/monads/State.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,OAAO,KAAK;IACe;IAA7B,YAA6B,GAAyB;QAAzB,QAAG,GAAH,GAAG,CAAsB;IAAI,CAAC;IAE3D;;OAEG;IACH,MAAM,CAAC,IAAI,CAAO,KAAQ;QACtB,OAAO,IAAI,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC;IAC9C,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,GAAG;QACN,OAAO,IAAI,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC;IAC9C,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,GAAG,CAAI,QAAW;QACrB,OAAO,IAAI,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC,CAAC;IACjD,CAAC;IAED;;OAEG;IACH,IAAI,CAAI,EAA6B;QACjC,OAAO,IAAI,KAAK,CAAC,KAAK,CAAC,EAAE;YACrB,MAAM,CAAC,GAAG,EAAE,QAAQ,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;YACxC,OAAO,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QACjC,CAAC,CAAC,CAAC;IACP,CAAC;IAED;;OAEG;IACH,GAAG,CAAI,EAAmB;QACtB,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IACjD,CAAC;IAED;;OAEG;IACH,QAAQ,CAAC,YAAe;QACpB,OAAO,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;IAClC,CAAC;CACJ"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Writer Monad - Logging Side-Effects
|
|
3
|
+
* Aggregates logs alongside computation values
|
|
4
|
+
*/
|
|
5
|
+
export declare class Writer<L, T> {
|
|
6
|
+
private readonly run;
|
|
7
|
+
constructor(run: () => [T, L[]]);
|
|
8
|
+
/**
|
|
9
|
+
* Lift a pure value into Writer (empty log)
|
|
10
|
+
*/
|
|
11
|
+
static pure<L, T>(value: T): Writer<L, T>;
|
|
12
|
+
/**
|
|
13
|
+
* Write to log
|
|
14
|
+
*/
|
|
15
|
+
static tell<L>(log: L[]): Writer<L, void>;
|
|
16
|
+
/**
|
|
17
|
+
* Monadic bind
|
|
18
|
+
*/
|
|
19
|
+
bind<U>(fn: (value: T) => Writer<L, U>): Writer<L, U>;
|
|
20
|
+
/**
|
|
21
|
+
* Map
|
|
22
|
+
*/
|
|
23
|
+
map<U>(fn: (value: T) => U): Writer<L, U>;
|
|
24
|
+
/**
|
|
25
|
+
* Run the writer
|
|
26
|
+
*/
|
|
27
|
+
evaluate(): [T, L[]];
|
|
28
|
+
}
|
|
29
|
+
//# sourceMappingURL=Writer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Writer.d.ts","sourceRoot":"","sources":["../../src/monads/Writer.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,qBAAa,MAAM,CAAC,CAAC,EAAE,CAAC;IACR,OAAO,CAAC,QAAQ,CAAC,GAAG;gBAAH,GAAG,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;IAEhD;;OAEG;IACH,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC;IAIzC;;OAEG;IACH,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC;IAIzC;;OAEG;IACH,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC;IASrD;;OAEG;IACH,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC;IAIzC;;OAEG;IACH,QAAQ,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;CAGvB"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Writer Monad - Logging Side-Effects
|
|
3
|
+
* Aggregates logs alongside computation values
|
|
4
|
+
*/
|
|
5
|
+
export class Writer {
|
|
6
|
+
run;
|
|
7
|
+
constructor(run) {
|
|
8
|
+
this.run = run;
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* Lift a pure value into Writer (empty log)
|
|
12
|
+
*/
|
|
13
|
+
static pure(value) {
|
|
14
|
+
return new Writer(() => [value, []]);
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Write to log
|
|
18
|
+
*/
|
|
19
|
+
static tell(log) {
|
|
20
|
+
return new Writer(() => [undefined, log]);
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Monadic bind
|
|
24
|
+
*/
|
|
25
|
+
bind(fn) {
|
|
26
|
+
return new Writer(() => {
|
|
27
|
+
const [val1, log1] = this.run();
|
|
28
|
+
const writer2 = fn(val1);
|
|
29
|
+
const [val2, log2] = writer2.evaluate();
|
|
30
|
+
return [val2, [...log1, ...log2]];
|
|
31
|
+
});
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Map
|
|
35
|
+
*/
|
|
36
|
+
map(fn) {
|
|
37
|
+
return this.bind(val => Writer.pure(fn(val)));
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Run the writer
|
|
41
|
+
*/
|
|
42
|
+
evaluate() {
|
|
43
|
+
return this.run();
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
//# sourceMappingURL=Writer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Writer.js","sourceRoot":"","sources":["../../src/monads/Writer.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,OAAO,MAAM;IACc;IAA7B,YAA6B,GAAmB;QAAnB,QAAG,GAAH,GAAG,CAAgB;IAAI,CAAC;IAErD;;OAEG;IACH,MAAM,CAAC,IAAI,CAAO,KAAQ;QACtB,OAAO,IAAI,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC;IACzC,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,IAAI,CAAI,GAAQ;QACnB,OAAO,IAAI,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC,CAAC;IAC9C,CAAC;IAED;;OAEG;IACH,IAAI,CAAI,EAA8B;QAClC,OAAO,IAAI,MAAM,CAAC,GAAG,EAAE;YACnB,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YAChC,MAAM,OAAO,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;YACzB,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC;YACxC,OAAO,CAAC,IAAI,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC;QACtC,CAAC,CAAC,CAAC;IACP,CAAC;IAED;;OAEG;IACH,GAAG,CAAI,EAAmB;QACtB,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IAClD,CAAC;IAED;;OAEG;IACH,QAAQ;QACJ,OAAO,IAAI,CAAC,GAAG,EAAE,CAAC;IACtB,CAAC;CACJ"}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import { Faro } from '@grafana/faro-web-sdk';
|
|
2
|
+
/**
|
|
3
|
+
* Configuration for the Faro Observability Sidecar
|
|
4
|
+
*/
|
|
5
|
+
export interface FaroSidecarConfig {
|
|
6
|
+
url: string;
|
|
7
|
+
apiKey?: string;
|
|
8
|
+
appName: string;
|
|
9
|
+
appVersion: string;
|
|
10
|
+
enableTracing?: boolean;
|
|
11
|
+
namespace?: string;
|
|
12
|
+
additionalInstrumentations?: any[];
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* FaroSidecar - Integrates Grafana Faro for Frontend Observability
|
|
16
|
+
*
|
|
17
|
+
* Acts as an observability sidecar for the PTR, capturing:
|
|
18
|
+
* - Logs
|
|
19
|
+
* - Errors
|
|
20
|
+
* - Web Vitals
|
|
21
|
+
* - Traces (OpenTelemetry)
|
|
22
|
+
* - User Sessions
|
|
23
|
+
*/
|
|
24
|
+
export declare class FaroSidecar {
|
|
25
|
+
private static instance;
|
|
26
|
+
private faro;
|
|
27
|
+
private constructor();
|
|
28
|
+
/**
|
|
29
|
+
* Get the singleton instance of FaroSidecar
|
|
30
|
+
*/
|
|
31
|
+
static getInstance(): FaroSidecar;
|
|
32
|
+
/**
|
|
33
|
+
* Initialize the Faro SDK
|
|
34
|
+
*
|
|
35
|
+
* @param config Configuration options
|
|
36
|
+
* @returns The initialized Faro instance or null if not in a browser environment
|
|
37
|
+
*/
|
|
38
|
+
initialize(config: FaroSidecarConfig): Faro | null;
|
|
39
|
+
/**
|
|
40
|
+
* Get the underlying Faro instance
|
|
41
|
+
*/
|
|
42
|
+
getFaro(): Faro | null;
|
|
43
|
+
/**
|
|
44
|
+
* Manually push an error to Faro
|
|
45
|
+
*/
|
|
46
|
+
pushError(error: Error, context?: Record<string, any>): void;
|
|
47
|
+
/**
|
|
48
|
+
* Manually push a log message to Faro
|
|
49
|
+
*/
|
|
50
|
+
pushLog(message: string, context?: Record<string, any>): void;
|
|
51
|
+
/**
|
|
52
|
+
* Push a custom event
|
|
53
|
+
*/
|
|
54
|
+
pushEvent(name: string, attributes?: Record<string, string>): void;
|
|
55
|
+
}
|
|
56
|
+
//# sourceMappingURL=FaroSidecar.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FaroSidecar.d.ts","sourceRoot":"","sources":["../../src/ptr/FaroSidecar.ts"],"names":[],"mappings":"AACA,OAAO,EAGH,IAAI,EACP,MAAM,uBAAuB,CAAC;AAG/B;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAC9B,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,0BAA0B,CAAC,EAAE,GAAG,EAAE,CAAC;CACtC;AAED;;;;;;;;;GASG;AACH,qBAAa,WAAW;IACpB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAA4B;IACnD,OAAO,CAAC,IAAI,CAAqB;IAEjC,OAAO;IAEP;;OAEG;WACW,WAAW,IAAI,WAAW;IAOxC;;;;;OAKG;IACI,UAAU,CAAC,MAAM,EAAE,iBAAiB,GAAG,IAAI,GAAG,IAAI;IAuDzD;;OAEG;IACI,OAAO,IAAI,IAAI,GAAG,IAAI;IAI7B;;OAEG;IACI,SAAS,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI;IAMnE;;OAEG;IACI,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI;IAMpE;;OAEG;IACI,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI;CAK5E"}
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
import { initializeFaro, getWebInstrumentations } from '@grafana/faro-web-sdk';
|
|
2
|
+
import { TracingInstrumentation } from '@grafana/faro-web-tracing';
|
|
3
|
+
/**
|
|
4
|
+
* FaroSidecar - Integrates Grafana Faro for Frontend Observability
|
|
5
|
+
*
|
|
6
|
+
* Acts as an observability sidecar for the PTR, capturing:
|
|
7
|
+
* - Logs
|
|
8
|
+
* - Errors
|
|
9
|
+
* - Web Vitals
|
|
10
|
+
* - Traces (OpenTelemetry)
|
|
11
|
+
* - User Sessions
|
|
12
|
+
*/
|
|
13
|
+
export class FaroSidecar {
|
|
14
|
+
static instance = null;
|
|
15
|
+
faro = null;
|
|
16
|
+
constructor() { }
|
|
17
|
+
/**
|
|
18
|
+
* Get the singleton instance of FaroSidecar
|
|
19
|
+
*/
|
|
20
|
+
static getInstance() {
|
|
21
|
+
if (!FaroSidecar.instance) {
|
|
22
|
+
FaroSidecar.instance = new FaroSidecar();
|
|
23
|
+
}
|
|
24
|
+
return FaroSidecar.instance;
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Initialize the Faro SDK
|
|
28
|
+
*
|
|
29
|
+
* @param config Configuration options
|
|
30
|
+
* @returns The initialized Faro instance or null if not in a browser environment
|
|
31
|
+
*/
|
|
32
|
+
initialize(config) {
|
|
33
|
+
// Ensure we are in a browser environment
|
|
34
|
+
if (typeof window === 'undefined') {
|
|
35
|
+
console.warn('[FaroSidecar] Not initializing Grafana Faro: Non-browser environment detected.');
|
|
36
|
+
return null;
|
|
37
|
+
}
|
|
38
|
+
if (this.faro) {
|
|
39
|
+
console.warn('[FaroSidecar] Grafana Faro is already initialized.');
|
|
40
|
+
return this.faro;
|
|
41
|
+
}
|
|
42
|
+
const { url, apiKey, appName, appVersion, enableTracing = true, namespace = 'ptr_runtime', additionalInstrumentations = [] } = config;
|
|
43
|
+
const instrumentations = [
|
|
44
|
+
...getWebInstrumentations(),
|
|
45
|
+
...additionalInstrumentations
|
|
46
|
+
];
|
|
47
|
+
if (enableTracing) {
|
|
48
|
+
instrumentations.push(new TracingInstrumentation());
|
|
49
|
+
}
|
|
50
|
+
const faroOptions = {
|
|
51
|
+
url,
|
|
52
|
+
apiKey,
|
|
53
|
+
app: {
|
|
54
|
+
name: appName,
|
|
55
|
+
version: appVersion,
|
|
56
|
+
namespace
|
|
57
|
+
},
|
|
58
|
+
instrumentations,
|
|
59
|
+
};
|
|
60
|
+
try {
|
|
61
|
+
this.faro = initializeFaro(faroOptions);
|
|
62
|
+
console.log(`[FaroSidecar] Grafana Faro initialized for ${appName}@${appVersion}`);
|
|
63
|
+
// Auto-push a session start log
|
|
64
|
+
this.faro.api.pushLog([`PTR Observability Sidecar started for ${appName}`]);
|
|
65
|
+
}
|
|
66
|
+
catch (error) {
|
|
67
|
+
console.error('[FaroSidecar] Failed to initialize Grafana Faro:', error);
|
|
68
|
+
}
|
|
69
|
+
return this.faro;
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* Get the underlying Faro instance
|
|
73
|
+
*/
|
|
74
|
+
getFaro() {
|
|
75
|
+
return this.faro;
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* Manually push an error to Faro
|
|
79
|
+
*/
|
|
80
|
+
pushError(error, context) {
|
|
81
|
+
if (this.faro) {
|
|
82
|
+
this.faro.api.pushError(error, { context });
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
/**
|
|
86
|
+
* Manually push a log message to Faro
|
|
87
|
+
*/
|
|
88
|
+
pushLog(message, context) {
|
|
89
|
+
if (this.faro) {
|
|
90
|
+
this.faro.api.pushLog([message], { context });
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
/**
|
|
94
|
+
* Push a custom event
|
|
95
|
+
*/
|
|
96
|
+
pushEvent(name, attributes) {
|
|
97
|
+
if (this.faro) {
|
|
98
|
+
this.faro.api.pushEvent(name, attributes);
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
//# sourceMappingURL=FaroSidecar.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FaroSidecar.js","sourceRoot":"","sources":["../../src/ptr/FaroSidecar.ts"],"names":[],"mappings":"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"}
|