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.
Files changed (362) hide show
  1. package/README.md +14 -0
  2. package/dist/hash/HashValidator.d.ts +14 -0
  3. package/dist/hash/HashValidator.d.ts.map +1 -0
  4. package/dist/hash/HashValidator.js +57 -0
  5. package/dist/hash/HashValidator.js.map +1 -0
  6. package/dist/index.d.ts +29 -0
  7. package/dist/index.d.ts.map +1 -0
  8. package/dist/index.js +38 -0
  9. package/dist/index.js.map +1 -0
  10. package/dist/model/CardCollection.d.ts +92 -0
  11. package/dist/model/CardCollection.d.ts.map +1 -0
  12. package/dist/model/CardCollection.js +217 -0
  13. package/dist/model/CardCollection.js.map +1 -0
  14. package/dist/model/ContentTypeInterpreter.d.ts +23 -0
  15. package/dist/model/ContentTypeInterpreter.d.ts.map +1 -0
  16. package/dist/model/ContentTypeInterpreter.js +140 -0
  17. package/dist/model/ContentTypeInterpreter.js.map +1 -0
  18. package/dist/model/EventProducer.d.ts +10 -0
  19. package/dist/model/EventProducer.d.ts.map +1 -0
  20. package/dist/model/EventProducer.js +46 -0
  21. package/dist/model/EventProducer.js.map +1 -0
  22. package/dist/model/GTime.d.ts +44 -0
  23. package/dist/model/GTime.d.ts.map +1 -0
  24. package/dist/model/GTime.js +91 -0
  25. package/dist/model/GTime.js.map +1 -0
  26. package/dist/model/Handle.d.ts +37 -0
  27. package/dist/model/Handle.d.ts.map +1 -0
  28. package/dist/model/Handle.js +90 -0
  29. package/dist/model/Handle.js.map +1 -0
  30. package/dist/model/MCard.d.ts +43 -0
  31. package/dist/model/MCard.d.ts.map +1 -0
  32. package/dist/model/MCard.js +76 -0
  33. package/dist/model/MCard.js.map +1 -0
  34. package/dist/model/constants.d.ts +45 -0
  35. package/dist/model/constants.d.ts.map +1 -0
  36. package/dist/model/constants.js +27 -0
  37. package/dist/model/constants.js.map +1 -0
  38. package/dist/model/detectors/BaseDetector.d.ts +26 -0
  39. package/dist/model/detectors/BaseDetector.d.ts.map +1 -0
  40. package/dist/model/detectors/BaseDetector.js +5 -0
  41. package/dist/model/detectors/BaseDetector.js.map +1 -0
  42. package/dist/model/detectors/BinaryDetector.d.ts +12 -0
  43. package/dist/model/detectors/BinaryDetector.d.ts.map +1 -0
  44. package/dist/model/detectors/BinaryDetector.js +82 -0
  45. package/dist/model/detectors/BinaryDetector.js.map +1 -0
  46. package/dist/model/detectors/ContentTypeInterpreter.d.ts +11 -0
  47. package/dist/model/detectors/ContentTypeInterpreter.d.ts.map +1 -0
  48. package/dist/model/detectors/ContentTypeInterpreter.js +51 -0
  49. package/dist/model/detectors/ContentTypeInterpreter.js.map +1 -0
  50. package/dist/model/detectors/DataFormatDetectors.d.ts +29 -0
  51. package/dist/model/detectors/DataFormatDetectors.d.ts.map +1 -0
  52. package/dist/model/detectors/DataFormatDetectors.js +223 -0
  53. package/dist/model/detectors/DataFormatDetectors.js.map +1 -0
  54. package/dist/model/detectors/LanguageDetector.d.ts +11 -0
  55. package/dist/model/detectors/LanguageDetector.d.ts.map +1 -0
  56. package/dist/model/detectors/LanguageDetector.js +148 -0
  57. package/dist/model/detectors/LanguageDetector.js.map +1 -0
  58. package/dist/model/detectors/MarkupDetectors.d.ts +22 -0
  59. package/dist/model/detectors/MarkupDetectors.d.ts.map +1 -0
  60. package/dist/model/detectors/MarkupDetectors.js +132 -0
  61. package/dist/model/detectors/MarkupDetectors.js.map +1 -0
  62. package/dist/model/detectors/OBJDetector.d.ts +8 -0
  63. package/dist/model/detectors/OBJDetector.d.ts.map +1 -0
  64. package/dist/model/detectors/OBJDetector.js +48 -0
  65. package/dist/model/detectors/OBJDetector.js.map +1 -0
  66. package/dist/model/detectors/registry.d.ts +13 -0
  67. package/dist/model/detectors/registry.d.ts.map +1 -0
  68. package/dist/model/detectors/registry.js +67 -0
  69. package/dist/model/detectors/registry.js.map +1 -0
  70. package/dist/monads/Either.d.ts +51 -0
  71. package/dist/monads/Either.d.ts.map +1 -0
  72. package/dist/monads/Either.js +82 -0
  73. package/dist/monads/Either.js.map +1 -0
  74. package/dist/monads/IO.d.ts +38 -0
  75. package/dist/monads/IO.d.ts.map +1 -0
  76. package/dist/monads/IO.js +66 -0
  77. package/dist/monads/IO.js.map +1 -0
  78. package/dist/monads/Maybe.d.ts +45 -0
  79. package/dist/monads/Maybe.d.ts.map +1 -0
  80. package/dist/monads/Maybe.js +73 -0
  81. package/dist/monads/Maybe.js.map +1 -0
  82. package/dist/monads/Reader.d.ts +29 -0
  83. package/dist/monads/Reader.d.ts.map +1 -0
  84. package/dist/monads/Reader.js +44 -0
  85. package/dist/monads/Reader.js.map +1 -0
  86. package/dist/monads/State.d.ts +33 -0
  87. package/dist/monads/State.d.ts.map +1 -0
  88. package/dist/monads/State.js +50 -0
  89. package/dist/monads/State.js.map +1 -0
  90. package/dist/monads/Writer.d.ts +29 -0
  91. package/dist/monads/Writer.d.ts.map +1 -0
  92. package/dist/monads/Writer.js +46 -0
  93. package/dist/monads/Writer.js.map +1 -0
  94. package/dist/ptr/FaroSidecar.d.ts +56 -0
  95. package/dist/ptr/FaroSidecar.d.ts.map +1 -0
  96. package/dist/ptr/FaroSidecar.js +102 -0
  97. package/dist/ptr/FaroSidecar.js.map +1 -0
  98. package/dist/ptr/LensProtocol.d.ts +84 -0
  99. package/dist/ptr/LensProtocol.d.ts.map +1 -0
  100. package/dist/ptr/LensProtocol.js +98 -0
  101. package/dist/ptr/LensProtocol.js.map +1 -0
  102. package/dist/ptr/SandboxWorker.d.ts +54 -0
  103. package/dist/ptr/SandboxWorker.d.ts.map +1 -0
  104. package/dist/ptr/SandboxWorker.js +172 -0
  105. package/dist/ptr/SandboxWorker.js.map +1 -0
  106. package/dist/ptr/common_types.d.ts +39 -0
  107. package/dist/ptr/common_types.d.ts.map +1 -0
  108. package/dist/ptr/common_types.js +12 -0
  109. package/dist/ptr/common_types.js.map +1 -0
  110. package/dist/ptr/lambda/AlphaConversion.d.ts +42 -0
  111. package/dist/ptr/lambda/AlphaConversion.d.ts.map +1 -0
  112. package/dist/ptr/lambda/AlphaConversion.js +244 -0
  113. package/dist/ptr/lambda/AlphaConversion.js.map +1 -0
  114. package/dist/ptr/lambda/BetaReduction.d.ts +73 -0
  115. package/dist/ptr/lambda/BetaReduction.d.ts.map +1 -0
  116. package/dist/ptr/lambda/BetaReduction.js +322 -0
  117. package/dist/ptr/lambda/BetaReduction.js.map +1 -0
  118. package/dist/ptr/lambda/EtaConversion.d.ts +65 -0
  119. package/dist/ptr/lambda/EtaConversion.d.ts.map +1 -0
  120. package/dist/ptr/lambda/EtaConversion.js +228 -0
  121. package/dist/ptr/lambda/EtaConversion.js.map +1 -0
  122. package/dist/ptr/lambda/FreeVariables.d.ts +44 -0
  123. package/dist/ptr/lambda/FreeVariables.d.ts.map +1 -0
  124. package/dist/ptr/lambda/FreeVariables.js +207 -0
  125. package/dist/ptr/lambda/FreeVariables.js.map +1 -0
  126. package/dist/ptr/lambda/LambdaRuntime.d.ts +80 -0
  127. package/dist/ptr/lambda/LambdaRuntime.d.ts.map +1 -0
  128. package/dist/ptr/lambda/LambdaRuntime.js +433 -0
  129. package/dist/ptr/lambda/LambdaRuntime.js.map +1 -0
  130. package/dist/ptr/lambda/LambdaTerm.d.ts +95 -0
  131. package/dist/ptr/lambda/LambdaTerm.d.ts.map +1 -0
  132. package/dist/ptr/lambda/LambdaTerm.js +159 -0
  133. package/dist/ptr/lambda/LambdaTerm.js.map +1 -0
  134. package/dist/ptr/lambda/index.d.ts +24 -0
  135. package/dist/ptr/lambda/index.d.ts.map +1 -0
  136. package/dist/ptr/lambda/index.js +34 -0
  137. package/dist/ptr/lambda/index.js.map +1 -0
  138. package/dist/ptr/llm/Config.d.ts +57 -0
  139. package/dist/ptr/llm/Config.d.ts.map +1 -0
  140. package/dist/ptr/llm/Config.js +183 -0
  141. package/dist/ptr/llm/Config.js.map +1 -0
  142. package/dist/ptr/llm/LLMRuntime.d.ts +35 -0
  143. package/dist/ptr/llm/LLMRuntime.d.ts.map +1 -0
  144. package/dist/ptr/llm/LLMRuntime.js +176 -0
  145. package/dist/ptr/llm/LLMRuntime.js.map +1 -0
  146. package/dist/ptr/llm/providers/LLMProvider.d.ts +43 -0
  147. package/dist/ptr/llm/providers/LLMProvider.d.ts.map +1 -0
  148. package/dist/ptr/llm/providers/LLMProvider.js +31 -0
  149. package/dist/ptr/llm/providers/LLMProvider.js.map +1 -0
  150. package/dist/ptr/llm/providers/MLCLLMProvider.d.ts +22 -0
  151. package/dist/ptr/llm/providers/MLCLLMProvider.d.ts.map +1 -0
  152. package/dist/ptr/llm/providers/MLCLLMProvider.js +155 -0
  153. package/dist/ptr/llm/providers/MLCLLMProvider.js.map +1 -0
  154. package/dist/ptr/llm/providers/OllamaEmbeddingProvider.d.ts +20 -0
  155. package/dist/ptr/llm/providers/OllamaEmbeddingProvider.d.ts.map +1 -0
  156. package/dist/ptr/llm/providers/OllamaEmbeddingProvider.js +42 -0
  157. package/dist/ptr/llm/providers/OllamaEmbeddingProvider.js.map +1 -0
  158. package/dist/ptr/llm/providers/OllamaProvider.d.ts +21 -0
  159. package/dist/ptr/llm/providers/OllamaProvider.d.ts.map +1 -0
  160. package/dist/ptr/llm/providers/OllamaProvider.js +158 -0
  161. package/dist/ptr/llm/providers/OllamaProvider.js.map +1 -0
  162. package/dist/ptr/llm/providers/WebLLMProvider.d.ts +22 -0
  163. package/dist/ptr/llm/providers/WebLLMProvider.d.ts.map +1 -0
  164. package/dist/ptr/llm/providers/WebLLMProvider.js +151 -0
  165. package/dist/ptr/llm/providers/WebLLMProvider.js.map +1 -0
  166. package/dist/ptr/node/Action.d.ts +426 -0
  167. package/dist/ptr/node/Action.d.ts.map +1 -0
  168. package/dist/ptr/node/Action.js +711 -0
  169. package/dist/ptr/node/Action.js.map +1 -0
  170. package/dist/ptr/node/CLMLoader.d.ts +18 -0
  171. package/dist/ptr/node/CLMLoader.d.ts.map +1 -0
  172. package/dist/ptr/node/CLMLoader.js +18 -0
  173. package/dist/ptr/node/CLMLoader.js.map +1 -0
  174. package/dist/ptr/node/CLMRunner.d.ts +34 -0
  175. package/dist/ptr/node/CLMRunner.d.ts.map +1 -0
  176. package/dist/ptr/node/CLMRunner.js +36 -0
  177. package/dist/ptr/node/CLMRunner.js.map +1 -0
  178. package/dist/ptr/node/FileSystemUtils.d.ts +40 -0
  179. package/dist/ptr/node/FileSystemUtils.d.ts.map +1 -0
  180. package/dist/ptr/node/FileSystemUtils.js +170 -0
  181. package/dist/ptr/node/FileSystemUtils.js.map +1 -0
  182. package/dist/ptr/node/NetworkConfig.d.ts +191 -0
  183. package/dist/ptr/node/NetworkConfig.d.ts.map +1 -0
  184. package/dist/ptr/node/NetworkConfig.js +8 -0
  185. package/dist/ptr/node/NetworkConfig.js.map +1 -0
  186. package/dist/ptr/node/NetworkRuntime.d.ts +38 -0
  187. package/dist/ptr/node/NetworkRuntime.d.ts.map +1 -0
  188. package/dist/ptr/node/NetworkRuntime.js +871 -0
  189. package/dist/ptr/node/NetworkRuntime.js.map +1 -0
  190. package/dist/ptr/node/P2PChatSession.d.ts +53 -0
  191. package/dist/ptr/node/P2PChatSession.d.ts.map +1 -0
  192. package/dist/ptr/node/P2PChatSession.js +154 -0
  193. package/dist/ptr/node/P2PChatSession.js.map +1 -0
  194. package/dist/ptr/node/RuntimeInterface.d.ts +4 -0
  195. package/dist/ptr/node/RuntimeInterface.d.ts.map +1 -0
  196. package/dist/ptr/node/RuntimeInterface.js +2 -0
  197. package/dist/ptr/node/RuntimeInterface.js.map +1 -0
  198. package/dist/ptr/node/Runtimes.d.ts +34 -0
  199. package/dist/ptr/node/Runtimes.d.ts.map +1 -0
  200. package/dist/ptr/node/Runtimes.js +38 -0
  201. package/dist/ptr/node/Runtimes.js.map +1 -0
  202. package/dist/ptr/node/SignalingServer.d.ts +37 -0
  203. package/dist/ptr/node/SignalingServer.d.ts.map +1 -0
  204. package/dist/ptr/node/SignalingServer.js +218 -0
  205. package/dist/ptr/node/SignalingServer.js.map +1 -0
  206. package/dist/ptr/node/cli.d.ts +3 -0
  207. package/dist/ptr/node/cli.d.ts.map +1 -0
  208. package/dist/ptr/node/cli.js +266 -0
  209. package/dist/ptr/node/cli.js.map +1 -0
  210. package/dist/ptr/node/clm/builtins/handle.d.ts +14 -0
  211. package/dist/ptr/node/clm/builtins/handle.d.ts.map +1 -0
  212. package/dist/ptr/node/clm/builtins/handle.js +177 -0
  213. package/dist/ptr/node/clm/builtins/handle.js.map +1 -0
  214. package/dist/ptr/node/clm/builtins/index.d.ts +20 -0
  215. package/dist/ptr/node/clm/builtins/index.d.ts.map +1 -0
  216. package/dist/ptr/node/clm/builtins/index.js +60 -0
  217. package/dist/ptr/node/clm/builtins/index.js.map +1 -0
  218. package/dist/ptr/node/clm/index.d.ts +25 -0
  219. package/dist/ptr/node/clm/index.d.ts.map +1 -0
  220. package/dist/ptr/node/clm/index.js +28 -0
  221. package/dist/ptr/node/clm/index.js.map +1 -0
  222. package/dist/ptr/node/clm/loader.d.ts +25 -0
  223. package/dist/ptr/node/clm/loader.d.ts.map +1 -0
  224. package/dist/ptr/node/clm/loader.js +146 -0
  225. package/dist/ptr/node/clm/loader.js.map +1 -0
  226. package/dist/ptr/node/clm/multiruntime.d.ts +9 -0
  227. package/dist/ptr/node/clm/multiruntime.d.ts.map +1 -0
  228. package/dist/ptr/node/clm/multiruntime.js +121 -0
  229. package/dist/ptr/node/clm/multiruntime.js.map +1 -0
  230. package/dist/ptr/node/clm/runner.d.ts +70 -0
  231. package/dist/ptr/node/clm/runner.d.ts.map +1 -0
  232. package/dist/ptr/node/clm/runner.js +324 -0
  233. package/dist/ptr/node/clm/runner.js.map +1 -0
  234. package/dist/ptr/node/clm/types.d.ts +166 -0
  235. package/dist/ptr/node/clm/types.d.ts.map +1 -0
  236. package/dist/ptr/node/clm/types.js +5 -0
  237. package/dist/ptr/node/clm/types.js.map +1 -0
  238. package/dist/ptr/node/clm/utils.d.ts +29 -0
  239. package/dist/ptr/node/clm/utils.d.ts.map +1 -0
  240. package/dist/ptr/node/clm/utils.js +88 -0
  241. package/dist/ptr/node/clm/utils.js.map +1 -0
  242. package/dist/ptr/node/network/HttpClient.d.ts +14 -0
  243. package/dist/ptr/node/network/HttpClient.d.ts.map +1 -0
  244. package/dist/ptr/node/network/HttpClient.js +139 -0
  245. package/dist/ptr/node/network/HttpClient.js.map +1 -0
  246. package/dist/ptr/node/network/MCardSerialization.d.ts +19 -0
  247. package/dist/ptr/node/network/MCardSerialization.d.ts.map +1 -0
  248. package/dist/ptr/node/network/MCardSerialization.js +41 -0
  249. package/dist/ptr/node/network/MCardSerialization.js.map +1 -0
  250. package/dist/ptr/node/network/NetworkInfrastructure.d.ts +37 -0
  251. package/dist/ptr/node/network/NetworkInfrastructure.d.ts.map +1 -0
  252. package/dist/ptr/node/network/NetworkInfrastructure.js +121 -0
  253. package/dist/ptr/node/network/NetworkInfrastructure.js.map +1 -0
  254. package/dist/ptr/node/network/NetworkSecurity.d.ts +24 -0
  255. package/dist/ptr/node/network/NetworkSecurity.d.ts.map +1 -0
  256. package/dist/ptr/node/network/NetworkSecurity.js +104 -0
  257. package/dist/ptr/node/network/NetworkSecurity.js.map +1 -0
  258. package/dist/ptr/node/runtimes/base.d.ts +31 -0
  259. package/dist/ptr/node/runtimes/base.d.ts.map +1 -0
  260. package/dist/ptr/node/runtimes/base.js +33 -0
  261. package/dist/ptr/node/runtimes/base.js.map +1 -0
  262. package/dist/ptr/node/runtimes/binary.d.ts +10 -0
  263. package/dist/ptr/node/runtimes/binary.d.ts.map +1 -0
  264. package/dist/ptr/node/runtimes/binary.js +16 -0
  265. package/dist/ptr/node/runtimes/binary.js.map +1 -0
  266. package/dist/ptr/node/runtimes/factory.d.ts +22 -0
  267. package/dist/ptr/node/runtimes/factory.d.ts.map +1 -0
  268. package/dist/ptr/node/runtimes/factory.js +152 -0
  269. package/dist/ptr/node/runtimes/factory.js.map +1 -0
  270. package/dist/ptr/node/runtimes/index.d.ts +28 -0
  271. package/dist/ptr/node/runtimes/index.d.ts.map +1 -0
  272. package/dist/ptr/node/runtimes/index.js +30 -0
  273. package/dist/ptr/node/runtimes/index.js.map +1 -0
  274. package/dist/ptr/node/runtimes/javascript.d.ts +22 -0
  275. package/dist/ptr/node/runtimes/javascript.d.ts.map +1 -0
  276. package/dist/ptr/node/runtimes/javascript.js +125 -0
  277. package/dist/ptr/node/runtimes/javascript.js.map +1 -0
  278. package/dist/ptr/node/runtimes/lean.d.ts +10 -0
  279. package/dist/ptr/node/runtimes/lean.d.ts.map +1 -0
  280. package/dist/ptr/node/runtimes/lean.js +60 -0
  281. package/dist/ptr/node/runtimes/lean.js.map +1 -0
  282. package/dist/ptr/node/runtimes/loader.d.ts +21 -0
  283. package/dist/ptr/node/runtimes/loader.d.ts.map +1 -0
  284. package/dist/ptr/node/runtimes/loader.js +126 -0
  285. package/dist/ptr/node/runtimes/loader.js.map +1 -0
  286. package/dist/ptr/node/runtimes/python.d.ts +14 -0
  287. package/dist/ptr/node/runtimes/python.d.ts.map +1 -0
  288. package/dist/ptr/node/runtimes/python.js +100 -0
  289. package/dist/ptr/node/runtimes/python.js.map +1 -0
  290. package/dist/ptr/node/runtimes/wasm.d.ts +10 -0
  291. package/dist/ptr/node/runtimes/wasm.d.ts.map +1 -0
  292. package/dist/ptr/node/runtimes/wasm.js +55 -0
  293. package/dist/ptr/node/runtimes/wasm.js.map +1 -0
  294. package/dist/rag/GraphRAGEngine.d.ts +26 -0
  295. package/dist/rag/GraphRAGEngine.d.ts.map +1 -0
  296. package/dist/rag/GraphRAGEngine.js +166 -0
  297. package/dist/rag/GraphRAGEngine.js.map +1 -0
  298. package/dist/rag/HandleVectorStore.d.ts +201 -0
  299. package/dist/rag/HandleVectorStore.d.ts.map +1 -0
  300. package/dist/rag/HandleVectorStore.js +527 -0
  301. package/dist/rag/HandleVectorStore.js.map +1 -0
  302. package/dist/rag/PersistentIndexer.d.ts +148 -0
  303. package/dist/rag/PersistentIndexer.d.ts.map +1 -0
  304. package/dist/rag/PersistentIndexer.js +302 -0
  305. package/dist/rag/PersistentIndexer.js.map +1 -0
  306. package/dist/rag/embeddings/VisionEmbeddingProvider.d.ts +87 -0
  307. package/dist/rag/embeddings/VisionEmbeddingProvider.d.ts.map +1 -0
  308. package/dist/rag/embeddings/VisionEmbeddingProvider.js +164 -0
  309. package/dist/rag/embeddings/VisionEmbeddingProvider.js.map +1 -0
  310. package/dist/rag/graph/community.d.ts +56 -0
  311. package/dist/rag/graph/community.d.ts.map +1 -0
  312. package/dist/rag/graph/community.js +247 -0
  313. package/dist/rag/graph/community.js.map +1 -0
  314. package/dist/rag/graph/extractor.d.ts +99 -0
  315. package/dist/rag/graph/extractor.d.ts.map +1 -0
  316. package/dist/rag/graph/extractor.js +210 -0
  317. package/dist/rag/graph/extractor.js.map +1 -0
  318. package/dist/rag/graph/store.d.ts +176 -0
  319. package/dist/rag/graph/store.d.ts.map +1 -0
  320. package/dist/rag/graph/store.js +504 -0
  321. package/dist/rag/graph/store.js.map +1 -0
  322. package/dist/rag/index.d.ts +20 -0
  323. package/dist/rag/index.d.ts.map +1 -0
  324. package/dist/rag/index.js +26 -0
  325. package/dist/rag/index.js.map +1 -0
  326. package/dist/rag/semanticVersioning.d.ts +187 -0
  327. package/dist/rag/semanticVersioning.d.ts.map +1 -0
  328. package/dist/rag/semanticVersioning.js +253 -0
  329. package/dist/rag/semanticVersioning.js.map +1 -0
  330. package/dist/storage/IndexedDBEngine.d.ts +33 -0
  331. package/dist/storage/IndexedDBEngine.d.ts.map +1 -0
  332. package/dist/storage/IndexedDBEngine.js +198 -0
  333. package/dist/storage/IndexedDBEngine.js.map +1 -0
  334. package/dist/storage/SqliteNodeEngine.d.ts +123 -0
  335. package/dist/storage/SqliteNodeEngine.d.ts.map +1 -0
  336. package/dist/storage/SqliteNodeEngine.js +385 -0
  337. package/dist/storage/SqliteNodeEngine.js.map +1 -0
  338. package/dist/storage/SqliteWasmEngine.d.ts +60 -0
  339. package/dist/storage/SqliteWasmEngine.d.ts.map +1 -0
  340. package/dist/storage/SqliteWasmEngine.js +193 -0
  341. package/dist/storage/SqliteWasmEngine.js.map +1 -0
  342. package/dist/storage/StorageAdapter.d.ts +42 -0
  343. package/dist/storage/StorageAdapter.d.ts.map +1 -0
  344. package/dist/storage/StorageAdapter.js +2 -0
  345. package/dist/storage/StorageAdapter.js.map +1 -0
  346. package/dist/storage/VectorStore.d.ts +202 -0
  347. package/dist/storage/VectorStore.d.ts.map +1 -0
  348. package/dist/storage/VectorStore.js +557 -0
  349. package/dist/storage/VectorStore.js.map +1 -0
  350. package/dist/storage/schema.d.ts +162 -0
  351. package/dist/storage/schema.d.ts.map +1 -0
  352. package/dist/storage/schema.js +373 -0
  353. package/dist/storage/schema.js.map +1 -0
  354. package/dist/util/FileIO.d.ts +44 -0
  355. package/dist/util/FileIO.d.ts.map +1 -0
  356. package/dist/util/FileIO.js +203 -0
  357. package/dist/util/FileIO.js.map +1 -0
  358. package/dist/util/Loader.d.ts +34 -0
  359. package/dist/util/Loader.d.ts.map +1 -0
  360. package/dist/util/Loader.js +168 -0
  361. package/dist/util/Loader.js.map +1 -0
  362. package/package.json +2 -1
@@ -0,0 +1,187 @@
1
+ /**
2
+ * Semantic Versioning API for MCards
3
+ *
4
+ * High-level API functions for managing MCard versions linked to handles
5
+ * with semantic similarity detection.
6
+ *
7
+ * This module provides a simplified interface for:
8
+ * - Linking MCards to handles
9
+ * - Retrieving version history with semantic info
10
+ * - Comparing versions by semantic similarity
11
+ * - Searching within a handle's version history
12
+ *
13
+ * @module mcard-js/rag/semanticVersioning
14
+ */
15
+ import { MCard } from '../model/MCard';
16
+ import { HandleVectorStore, VersionSimilarityResult, VectorStoreConfig } from './HandleVectorStore';
17
+ /**
18
+ * Get the default HandleVectorStore instance.
19
+ *
20
+ * @param dbPath Path to SQLite database (undefined = in-memory)
21
+ * @param config RAG configuration
22
+ * @param reinitialize Force re-initialization of the store
23
+ * @returns HandleVectorStore instance
24
+ */
25
+ export declare function getStore(dbPath?: string, config?: Partial<VectorStoreConfig>, reinitialize?: boolean): HandleVectorStore;
26
+ /**
27
+ * Reset the default store (useful for testing).
28
+ */
29
+ export declare function resetStore(): void;
30
+ /**
31
+ * Link an MCard to a handle with semantic embedding.
32
+ *
33
+ * This function:
34
+ * 1. Indexes the MCard content with vector embeddings
35
+ * 2. Associates the MCard with the specified handle
36
+ * 3. Computes semantic delta from previous version (if exists)
37
+ * 4. Classifies the upgrade type based on similarity
38
+ *
39
+ * @param mcard MCard to link
40
+ * @param handle Handle name (stable identifier)
41
+ * @param isCurrent Whether this becomes the current version
42
+ * @param store Optional custom HandleVectorStore instance
43
+ * @returns True if successful, false if indexing failed
44
+ *
45
+ * @example
46
+ * ```typescript
47
+ * import { MCard } from 'mcard-js';
48
+ * import { linkMCardToHandle } from 'mcard-js/rag';
49
+ *
50
+ * const doc = await MCard.create('Introduction to Machine Learning...');
51
+ * await linkMCardToHandle(doc, 'ml_intro');
52
+ * ```
53
+ */
54
+ export declare function linkMCardToHandle(mcard: MCard, handle: string, isCurrent?: boolean, store?: HandleVectorStore): Promise<boolean>;
55
+ /**
56
+ * Get version history for a handle with semantic info.
57
+ *
58
+ * @param handle Handle name to query
59
+ * @param store Optional custom HandleVectorStore instance
60
+ * @returns List of version objects with hash, order, timestamps, embedding status, and upgrade type
61
+ *
62
+ * @example
63
+ * ```typescript
64
+ * const history = getHandleVersionHistory('ml_intro');
65
+ * for (const v of history) {
66
+ * console.log(`v${v.versionOrder}: ${v.hash.slice(0, 8)} (${v.upgradeType})`);
67
+ * }
68
+ * ```
69
+ */
70
+ export declare function getHandleVersionHistory(handle: string, store?: HandleVectorStore): Array<{
71
+ hash: string;
72
+ versionOrder: number;
73
+ isCurrent: boolean;
74
+ createdAt: string;
75
+ hasEmbedding: boolean;
76
+ parentHash?: string;
77
+ semanticDelta?: number;
78
+ upgradeType?: string;
79
+ }>;
80
+ /**
81
+ * Compare all versions of a handle by semantic similarity.
82
+ *
83
+ * This is useful for:
84
+ * - Understanding how content has evolved
85
+ * - Finding which version is most similar to current
86
+ * - Identifying major semantic drift points
87
+ *
88
+ * @param handle Handle name
89
+ * @param referenceHash Compare to this hash (default: current version)
90
+ * @param metric 'cosine' (higher = more similar) or 'euclidean' (lower = closer)
91
+ * @param store Optional custom HandleVectorStore instance
92
+ * @returns Versions sorted by similarity to reference
93
+ *
94
+ * @example
95
+ * ```typescript
96
+ * const results = compareVersionsBySimilarity('ml_intro');
97
+ * for (const r of results) {
98
+ * console.log(`v${r.versionOrder}: sim=${r.similarityToCurrent.toFixed(4)}`);
99
+ * }
100
+ * ```
101
+ */
102
+ export declare function compareVersionsBySimilarity(handle: string, referenceHash?: string, metric?: 'cosine' | 'euclidean', store?: HandleVectorStore): VersionSimilarityResult[];
103
+ /**
104
+ * Search semantically within a handle's version history.
105
+ *
106
+ * Useful for finding which version of a document best matches
107
+ * a specific concept, topic, or query.
108
+ *
109
+ * @param handle Handle name to filter by
110
+ * @param query Search query text
111
+ * @param k Number of results to return
112
+ * @param store Optional custom HandleVectorStore instance
113
+ * @returns Matching versions sorted by query similarity
114
+ *
115
+ * @example
116
+ * ```typescript
117
+ * const results = await searchWithinHandle('ml_intro', 'neural networks');
118
+ * for (const r of results) {
119
+ * console.log(`v${r.versionOrder}: query_sim=${r.similarityToQuery?.toFixed(4)}`);
120
+ * }
121
+ * ```
122
+ */
123
+ export declare function searchWithinHandle(handle: string, query: string, k?: number, store?: HandleVectorStore): Promise<VersionSimilarityResult[]>;
124
+ /**
125
+ * Compute pairwise semantic distances between all versions.
126
+ *
127
+ * Returns a Map mapping "hash_a:hash_b" string keys to their cosine similarity scores.
128
+ *
129
+ * @param handle Handle name
130
+ * @param cache Whether to cache computed similarities
131
+ * @param store Optional custom HandleVectorStore instance
132
+ * @returns Map of hash pair keys to cosine similarity [-1, 1]
133
+ *
134
+ * @example
135
+ * ```typescript
136
+ * const distances = getVersionDistances('ml_intro');
137
+ * distances.forEach((sim, key) => {
138
+ * console.log(`${key}: ${sim.toFixed(4)}`);
139
+ * });
140
+ * ```
141
+ */
142
+ export declare function getVersionDistances(handle: string, cache?: boolean, store?: HandleVectorStore): Map<string, number>;
143
+ /**
144
+ * Find the version most similar to a query.
145
+ *
146
+ * @param handle Handle name
147
+ * @param query Search query text
148
+ * @param store Optional custom HandleVectorStore instance
149
+ * @returns Most similar version, or undefined if no versions exist
150
+ */
151
+ export declare function findMostSimilarVersion(handle: string, query: string, store?: HandleVectorStore): Promise<VersionSimilarityResult | undefined>;
152
+ /**
153
+ * Get the semantic evolution of a handle's versions.
154
+ *
155
+ * Returns version history annotated with semantic deltas,
156
+ * showing how content has evolved over time.
157
+ *
158
+ * @param handle Handle name
159
+ * @param store Optional custom HandleVectorStore instance
160
+ * @returns List of version objects with evolution info
161
+ */
162
+ export declare function getSemanticEvolution(handle: string, store?: HandleVectorStore): Array<{
163
+ hash: string;
164
+ version: number;
165
+ isCurrent: boolean;
166
+ createdAt: string;
167
+ parentHash?: string;
168
+ semanticDelta?: number;
169
+ upgradeType?: string;
170
+ interpretation: string;
171
+ }>;
172
+ /**
173
+ * List all handles with indexed versions.
174
+ *
175
+ * @param store Optional custom HandleVectorStore instance
176
+ * @returns List of handle names
177
+ */
178
+ export declare function listHandles(store?: HandleVectorStore): string[];
179
+ /**
180
+ * Get information about the vector store.
181
+ *
182
+ * @param store Optional custom HandleVectorStore instance
183
+ * @returns Object with store statistics
184
+ */
185
+ export declare function getStoreInfo(store?: HandleVectorStore): Record<string, unknown>;
186
+ export { HandleVersion, VersionSimilarityResult } from './HandleVectorStore';
187
+ //# sourceMappingURL=semanticVersioning.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"semanticVersioning.d.ts","sourceRoot":"","sources":["../../src/rag/semanticVersioning.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,253 @@
1
+ /**
2
+ * Semantic Versioning API for MCards
3
+ *
4
+ * High-level API functions for managing MCard versions linked to handles
5
+ * with semantic similarity detection.
6
+ *
7
+ * This module provides a simplified interface for:
8
+ * - Linking MCards to handles
9
+ * - Retrieving version history with semantic info
10
+ * - Comparing versions by semantic similarity
11
+ * - Searching within a handle's version history
12
+ *
13
+ * @module mcard-js/rag/semanticVersioning
14
+ */
15
+ import { HandleVectorStore } from './HandleVectorStore';
16
+ // Default store instance (lazy-initialized)
17
+ let _defaultStore = null;
18
+ /**
19
+ * Get the default HandleVectorStore instance.
20
+ *
21
+ * @param dbPath Path to SQLite database (undefined = in-memory)
22
+ * @param config RAG configuration
23
+ * @param reinitialize Force re-initialization of the store
24
+ * @returns HandleVectorStore instance
25
+ */
26
+ export function getStore(dbPath, config, reinitialize = false) {
27
+ if (_defaultStore === null || reinitialize) {
28
+ _defaultStore = new HandleVectorStore(dbPath ?? ':memory:', config);
29
+ }
30
+ return _defaultStore;
31
+ }
32
+ /**
33
+ * Reset the default store (useful for testing).
34
+ */
35
+ export function resetStore() {
36
+ if (_defaultStore) {
37
+ _defaultStore.close();
38
+ _defaultStore = null;
39
+ }
40
+ }
41
+ // ─────────────────────────────────────────────────────────────────────────────
42
+ // Core API Functions
43
+ // ─────────────────────────────────────────────────────────────────────────────
44
+ /**
45
+ * Link an MCard to a handle with semantic embedding.
46
+ *
47
+ * This function:
48
+ * 1. Indexes the MCard content with vector embeddings
49
+ * 2. Associates the MCard with the specified handle
50
+ * 3. Computes semantic delta from previous version (if exists)
51
+ * 4. Classifies the upgrade type based on similarity
52
+ *
53
+ * @param mcard MCard to link
54
+ * @param handle Handle name (stable identifier)
55
+ * @param isCurrent Whether this becomes the current version
56
+ * @param store Optional custom HandleVectorStore instance
57
+ * @returns True if successful, false if indexing failed
58
+ *
59
+ * @example
60
+ * ```typescript
61
+ * import { MCard } from 'mcard-js';
62
+ * import { linkMCardToHandle } from 'mcard-js/rag';
63
+ *
64
+ * const doc = await MCard.create('Introduction to Machine Learning...');
65
+ * await linkMCardToHandle(doc, 'ml_intro');
66
+ * ```
67
+ */
68
+ export async function linkMCardToHandle(mcard, handle, isCurrent = true, store) {
69
+ const s = store ?? getStore();
70
+ const indexed = await s.indexWithHandle(mcard, handle, isCurrent);
71
+ return indexed > 0;
72
+ }
73
+ /**
74
+ * Get version history for a handle with semantic info.
75
+ *
76
+ * @param handle Handle name to query
77
+ * @param store Optional custom HandleVectorStore instance
78
+ * @returns List of version objects with hash, order, timestamps, embedding status, and upgrade type
79
+ *
80
+ * @example
81
+ * ```typescript
82
+ * const history = getHandleVersionHistory('ml_intro');
83
+ * for (const v of history) {
84
+ * console.log(`v${v.versionOrder}: ${v.hash.slice(0, 8)} (${v.upgradeType})`);
85
+ * }
86
+ * ```
87
+ */
88
+ export function getHandleVersionHistory(handle, store) {
89
+ const s = store ?? getStore();
90
+ const versions = s.getHandleVersions(handle);
91
+ return versions.map(v => ({
92
+ hash: v.hash,
93
+ versionOrder: v.versionOrder,
94
+ isCurrent: v.isCurrent,
95
+ createdAt: v.createdAt,
96
+ hasEmbedding: v.embeddingId !== undefined,
97
+ parentHash: v.parentHash,
98
+ semanticDelta: v.semanticDelta,
99
+ upgradeType: v.upgradeType,
100
+ }));
101
+ }
102
+ /**
103
+ * Compare all versions of a handle by semantic similarity.
104
+ *
105
+ * This is useful for:
106
+ * - Understanding how content has evolved
107
+ * - Finding which version is most similar to current
108
+ * - Identifying major semantic drift points
109
+ *
110
+ * @param handle Handle name
111
+ * @param referenceHash Compare to this hash (default: current version)
112
+ * @param metric 'cosine' (higher = more similar) or 'euclidean' (lower = closer)
113
+ * @param store Optional custom HandleVectorStore instance
114
+ * @returns Versions sorted by similarity to reference
115
+ *
116
+ * @example
117
+ * ```typescript
118
+ * const results = compareVersionsBySimilarity('ml_intro');
119
+ * for (const r of results) {
120
+ * console.log(`v${r.versionOrder}: sim=${r.similarityToCurrent.toFixed(4)}`);
121
+ * }
122
+ * ```
123
+ */
124
+ export function compareVersionsBySimilarity(handle, referenceHash, metric = 'cosine', store) {
125
+ const s = store ?? getStore();
126
+ return s.getVersionsBySimilarity(handle, referenceHash, metric);
127
+ }
128
+ /**
129
+ * Search semantically within a handle's version history.
130
+ *
131
+ * Useful for finding which version of a document best matches
132
+ * a specific concept, topic, or query.
133
+ *
134
+ * @param handle Handle name to filter by
135
+ * @param query Search query text
136
+ * @param k Number of results to return
137
+ * @param store Optional custom HandleVectorStore instance
138
+ * @returns Matching versions sorted by query similarity
139
+ *
140
+ * @example
141
+ * ```typescript
142
+ * const results = await searchWithinHandle('ml_intro', 'neural networks');
143
+ * for (const r of results) {
144
+ * console.log(`v${r.versionOrder}: query_sim=${r.similarityToQuery?.toFixed(4)}`);
145
+ * }
146
+ * ```
147
+ */
148
+ export async function searchWithinHandle(handle, query, k = 10, store) {
149
+ const s = store ?? getStore();
150
+ return s.searchHandleVersions(handle, query, k);
151
+ }
152
+ /**
153
+ * Compute pairwise semantic distances between all versions.
154
+ *
155
+ * Returns a Map mapping "hash_a:hash_b" string keys to their cosine similarity scores.
156
+ *
157
+ * @param handle Handle name
158
+ * @param cache Whether to cache computed similarities
159
+ * @param store Optional custom HandleVectorStore instance
160
+ * @returns Map of hash pair keys to cosine similarity [-1, 1]
161
+ *
162
+ * @example
163
+ * ```typescript
164
+ * const distances = getVersionDistances('ml_intro');
165
+ * distances.forEach((sim, key) => {
166
+ * console.log(`${key}: ${sim.toFixed(4)}`);
167
+ * });
168
+ * ```
169
+ */
170
+ export function getVersionDistances(handle, cache = true, store) {
171
+ const s = store ?? getStore();
172
+ return s.computeVersionDistances(handle, cache);
173
+ }
174
+ /**
175
+ * Find the version most similar to a query.
176
+ *
177
+ * @param handle Handle name
178
+ * @param query Search query text
179
+ * @param store Optional custom HandleVectorStore instance
180
+ * @returns Most similar version, or undefined if no versions exist
181
+ */
182
+ export async function findMostSimilarVersion(handle, query, store) {
183
+ const results = await searchWithinHandle(handle, query, 1, store);
184
+ return results.length > 0 ? results[0] : undefined;
185
+ }
186
+ /**
187
+ * Get the semantic evolution of a handle's versions.
188
+ *
189
+ * Returns version history annotated with semantic deltas,
190
+ * showing how content has evolved over time.
191
+ *
192
+ * @param handle Handle name
193
+ * @param store Optional custom HandleVectorStore instance
194
+ * @returns List of version objects with evolution info
195
+ */
196
+ export function getSemanticEvolution(handle, store) {
197
+ const s = store ?? getStore();
198
+ const versions = s.getHandleVersions(handle);
199
+ return versions.map(v => {
200
+ let interpretation;
201
+ if (v.parentHash && v.semanticDelta !== undefined) {
202
+ if (v.semanticDelta >= 0.95) {
203
+ interpretation = 'Nearly identical to parent';
204
+ }
205
+ else if (v.semanticDelta >= 0.85) {
206
+ interpretation = 'Minor changes from parent';
207
+ }
208
+ else if (v.semanticDelta >= 0.70) {
209
+ interpretation = 'Significant changes from parent';
210
+ }
211
+ else {
212
+ interpretation = 'Major semantic shift from parent';
213
+ }
214
+ }
215
+ else {
216
+ interpretation = 'Initial version (no parent)';
217
+ }
218
+ return {
219
+ hash: v.hash,
220
+ version: v.versionOrder,
221
+ isCurrent: v.isCurrent,
222
+ createdAt: v.createdAt,
223
+ parentHash: v.parentHash,
224
+ semanticDelta: v.semanticDelta,
225
+ upgradeType: v.upgradeType,
226
+ interpretation,
227
+ };
228
+ });
229
+ }
230
+ // ─────────────────────────────────────────────────────────────────────────────
231
+ // Utility Functions
232
+ // ─────────────────────────────────────────────────────────────────────────────
233
+ /**
234
+ * List all handles with indexed versions.
235
+ *
236
+ * @param store Optional custom HandleVectorStore instance
237
+ * @returns List of handle names
238
+ */
239
+ export function listHandles(store) {
240
+ const s = store ?? getStore();
241
+ return s.listHandles();
242
+ }
243
+ /**
244
+ * Get information about the vector store.
245
+ *
246
+ * @param store Optional custom HandleVectorStore instance
247
+ * @returns Object with store statistics
248
+ */
249
+ export function getStoreInfo(store) {
250
+ const s = store ?? getStore();
251
+ return s.getInfo();
252
+ }
253
+ //# sourceMappingURL=semanticVersioning.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"semanticVersioning.js","sourceRoot":"","sources":["../../src/rag/semanticVersioning.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,33 @@
1
+ import { MCard } from '../model/MCard';
2
+ import { StorageEngine, Page } from './StorageAdapter';
3
+ /**
4
+ * IndexedDBEngine - Browser storage using IndexedDB
5
+ */
6
+ export declare class IndexedDBEngine implements StorageEngine {
7
+ private db;
8
+ private dbName;
9
+ constructor(dbName?: string);
10
+ /**
11
+ * Initialize the database connection
12
+ */
13
+ init(): Promise<void>;
14
+ private ensureDb;
15
+ add(card: MCard): Promise<string>;
16
+ get(hash: string): Promise<MCard | null>;
17
+ delete(hash: string): Promise<void>;
18
+ getPage(pageNumber: number, pageSize: number): Promise<Page<MCard>>;
19
+ count(): Promise<number>;
20
+ searchByHash(hashPrefix: string): Promise<MCard[]>;
21
+ search(query: string, pageNumber: number, pageSize: number): Promise<Page<MCard>>;
22
+ getAll(): Promise<MCard[]>;
23
+ clear(): Promise<void>;
24
+ registerHandle(handle: string, hash: string): Promise<void>;
25
+ resolveHandle(handle: string): Promise<string | null>;
26
+ getByHandle(handle: string): Promise<MCard | null>;
27
+ updateHandle(handle: string, newHash: string): Promise<string>;
28
+ getHandleHistory(handle: string): Promise<{
29
+ previousHash: string;
30
+ changedAt: string;
31
+ }[]>;
32
+ }
33
+ //# sourceMappingURL=IndexedDBEngine.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IndexedDBEngine.d.ts","sourceRoot":"","sources":["../../src/storage/IndexedDBEngine.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAEvC,OAAO,EAAE,aAAa,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAgCvD;;GAEG;AACH,qBAAa,eAAgB,YAAW,aAAa;IACjD,OAAO,CAAC,EAAE,CAA4C;IACtD,OAAO,CAAC,MAAM,CAAS;gBAEX,MAAM,GAAE,MAAmB;IAIvC;;OAEG;IACG,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IA0B3B,OAAO,CAAC,QAAQ;IASV,GAAG,CAAC,IAAI,EAAE,KAAK,GAAG,OAAO,CAAC,MAAM,CAAC;IAUjC,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC;IAOxC,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAKnC,OAAO,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAsBnE,KAAK,IAAI,OAAO,CAAC,MAAM,CAAC;IAKxB,YAAY,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC;IASlD,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAkCjF,MAAM,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;IAM1B,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAStB,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAkB3D,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAOrD,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC;IAMlD,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IA6B9D,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,YAAY,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;CAQjG"}
@@ -0,0 +1,198 @@
1
+ import { openDB } from 'idb';
2
+ import { MCard } from '../model/MCard';
3
+ import { validateHandle } from '../model/Handle';
4
+ /**
5
+ * IndexedDBEngine - Browser storage using IndexedDB
6
+ */
7
+ export class IndexedDBEngine {
8
+ db = null;
9
+ dbName;
10
+ constructor(dbName = 'mcard-db') {
11
+ this.dbName = dbName;
12
+ }
13
+ /**
14
+ * Initialize the database connection
15
+ */
16
+ async init() {
17
+ this.db = await openDB(this.dbName, 1, {
18
+ upgrade(db) {
19
+ // Cards store
20
+ if (!db.objectStoreNames.contains('cards')) {
21
+ db.createObjectStore('cards', { keyPath: 'hash' });
22
+ }
23
+ // Handles store
24
+ if (!db.objectStoreNames.contains('handles')) {
25
+ const handleStore = db.createObjectStore('handles', { keyPath: 'handle' });
26
+ handleStore.createIndex('by-hash', 'currentHash');
27
+ }
28
+ // Handle history store
29
+ if (!db.objectStoreNames.contains('handleHistory')) {
30
+ const historyStore = db.createObjectStore('handleHistory', {
31
+ keyPath: 'id',
32
+ autoIncrement: true
33
+ });
34
+ historyStore.createIndex('by-handle', 'handle');
35
+ }
36
+ }
37
+ });
38
+ }
39
+ ensureDb() {
40
+ if (!this.db) {
41
+ throw new Error('Database not initialized. Call init() first.');
42
+ }
43
+ return this.db;
44
+ }
45
+ // =========== Card Operations ===========
46
+ async add(card) {
47
+ const db = this.ensureDb();
48
+ await db.put('cards', {
49
+ hash: card.hash,
50
+ content: card.content,
51
+ g_time: card.g_time
52
+ });
53
+ return card.hash;
54
+ }
55
+ async get(hash) {
56
+ const db = this.ensureDb();
57
+ const record = await db.get('cards', hash);
58
+ if (!record)
59
+ return null;
60
+ return MCard.fromData(record.content, record.hash, record.g_time);
61
+ }
62
+ async delete(hash) {
63
+ const db = this.ensureDb();
64
+ await db.delete('cards', hash);
65
+ }
66
+ async getPage(pageNumber, pageSize) {
67
+ const db = this.ensureDb();
68
+ const totalItems = await db.count('cards');
69
+ const totalPages = Math.ceil(totalItems / pageSize);
70
+ const allCards = await db.getAll('cards');
71
+ const start = (pageNumber - 1) * pageSize;
72
+ const pageRecords = allCards.slice(start, start + pageSize);
73
+ const items = pageRecords.map(r => MCard.fromData(r.content, r.hash, r.g_time));
74
+ return {
75
+ items,
76
+ totalItems,
77
+ pageNumber,
78
+ pageSize,
79
+ totalPages,
80
+ hasNext: pageNumber < totalPages,
81
+ hasPrevious: pageNumber > 1
82
+ };
83
+ }
84
+ async count() {
85
+ const db = this.ensureDb();
86
+ return db.count('cards');
87
+ }
88
+ async searchByHash(hashPrefix) {
89
+ const db = this.ensureDb();
90
+ const start = hashPrefix;
91
+ const end = hashPrefix + '\uffff';
92
+ const range = IDBKeyRange.bound(start, end);
93
+ const records = await db.getAll('cards', range);
94
+ return records.map(r => MCard.fromData(r.content, r.hash, r.g_time));
95
+ }
96
+ async search(query, pageNumber, pageSize) {
97
+ const db = this.ensureDb();
98
+ // Naive implementation: load all and filter
99
+ // Optimized implementation would use a full-text index if available
100
+ const records = await db.getAll('cards');
101
+ const decoder = new TextDecoder();
102
+ const filtered = records.filter(r => {
103
+ // Try to match query in content if it looks like text
104
+ try {
105
+ const text = decoder.decode(r.content);
106
+ return text.includes(query);
107
+ }
108
+ catch {
109
+ return false;
110
+ }
111
+ });
112
+ const totalItems = filtered.length;
113
+ const totalPages = Math.ceil(totalItems / pageSize);
114
+ const start = (pageNumber - 1) * pageSize;
115
+ const pageItems = filtered.slice(start, start + pageSize)
116
+ .map(r => MCard.fromData(r.content, r.hash, r.g_time));
117
+ return {
118
+ items: pageItems,
119
+ totalItems,
120
+ pageNumber,
121
+ pageSize,
122
+ totalPages,
123
+ hasNext: pageNumber < totalPages,
124
+ hasPrevious: pageNumber > 1
125
+ };
126
+ }
127
+ async getAll() {
128
+ const db = this.ensureDb();
129
+ const records = await db.getAll('cards');
130
+ return records.map(r => MCard.fromData(r.content, r.hash, r.g_time));
131
+ }
132
+ async clear() {
133
+ const db = this.ensureDb();
134
+ await db.clear('cards');
135
+ await db.clear('handles');
136
+ await db.clear('handleHistory');
137
+ }
138
+ // =========== Handle Operations ===========
139
+ async registerHandle(handle, hash) {
140
+ const db = this.ensureDb();
141
+ const normalized = validateHandle(handle);
142
+ const existing = await db.get('handles', normalized);
143
+ if (existing) {
144
+ throw new Error(`Handle '${handle}' already exists.`);
145
+ }
146
+ const now = new Date().toISOString();
147
+ await db.put('handles', {
148
+ handle: normalized,
149
+ currentHash: hash,
150
+ createdAt: now,
151
+ updatedAt: now
152
+ });
153
+ }
154
+ async resolveHandle(handle) {
155
+ const db = this.ensureDb();
156
+ const normalized = validateHandle(handle);
157
+ const record = await db.get('handles', normalized);
158
+ return record?.currentHash ?? null;
159
+ }
160
+ async getByHandle(handle) {
161
+ const hash = await this.resolveHandle(handle);
162
+ if (!hash)
163
+ return null;
164
+ return this.get(hash);
165
+ }
166
+ async updateHandle(handle, newHash) {
167
+ const db = this.ensureDb();
168
+ const normalized = validateHandle(handle);
169
+ const existing = await db.get('handles', normalized);
170
+ if (!existing) {
171
+ throw new Error(`Handle '${handle}' not found.`);
172
+ }
173
+ const previousHash = existing.currentHash;
174
+ const now = new Date().toISOString();
175
+ // Record history
176
+ await db.add('handleHistory', {
177
+ handle: normalized,
178
+ previousHash,
179
+ changedAt: now
180
+ });
181
+ // Update handle
182
+ await db.put('handles', {
183
+ ...existing,
184
+ currentHash: newHash,
185
+ updatedAt: now
186
+ });
187
+ return previousHash;
188
+ }
189
+ async getHandleHistory(handle) {
190
+ const db = this.ensureDb();
191
+ const normalized = validateHandle(handle);
192
+ const records = await db.getAllFromIndex('handleHistory', 'by-handle', normalized);
193
+ return records
194
+ .map(r => ({ previousHash: r.previousHash, changedAt: r.changedAt }))
195
+ .reverse(); // Newest first
196
+ }
197
+ }
198
+ //# sourceMappingURL=IndexedDBEngine.js.map