mcard-js 2.1.41 → 2.1.43
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/dist/{CardCollection-MXTUJV4J.js → CardCollection-7DKJWKAG.js} +3 -2
- package/dist/CardCollection-S4RE3RXP.js +10 -0
- package/dist/CardCollection-VPN7AAAX.js +10 -0
- package/dist/{IndexedDBEngine-2G5KCISA.js → IndexedDBEngine-7JOGM2MM.js} +3 -2
- package/dist/IndexedDBEngine-BGZHJK5L.js +12 -0
- package/dist/IndexedDBEngine-ZJ442GI7.js +12 -0
- package/dist/{LLMRuntime-GIGDMDEZ.js → LLMRuntime-OZNVAPXJ.js} +4 -3
- package/dist/{LLMRuntime-LBWUJ7ON.js → LLMRuntime-UPSEDSIK.js} +2 -2
- package/dist/{LambdaRuntime-B6D6IQKZ.js → LambdaRuntime-JZ4Q56TI.js} +6 -5
- package/dist/LambdaRuntime-PM3OUFHU.js +19 -0
- package/dist/LambdaRuntime-WBEK37AF.js +19 -0
- package/dist/LambdaRuntime-YKSBAT65.js +19 -0
- package/dist/{Loader-3LSJXJQG.js → Loader-7HQVYDPA.js} +2 -2
- package/dist/{Loader-BM56B2TX.js → Loader-NYWTV7CQ.js} +4 -3
- package/dist/{Loader-CYLAA4XU.js → Loader-OLKPY6HT.js} +3 -3
- package/dist/{MCard-H56VOJLR.js → MCard-OYI73CUI.js} +1 -1
- package/dist/{MCard-5LIREV2B.js → MCard-XHG3BZC7.js} +2 -2
- package/dist/{NetworkRuntime-IAFHPQSX.js → NetworkRuntime-VYCC5HSY.js} +16 -11
- package/dist/{NetworkRuntime-JNGKW3DY.js → NetworkRuntime-XQX3LDDI.js} +61 -33
- package/dist/{NetworkRuntime-CXPKIAOQ.js → NetworkRuntime-XZR733M5.js} +17 -12
- package/dist/{OllamaProvider-QPX2JXL2.js → OllamaProvider-FBZ5WW72.js} +1 -1
- package/dist/OllamaProvider-W6TPZNHD.js +9 -0
- package/dist/chunk-2NFGZ6PA.js +170 -0
- package/dist/{chunk-VXV35I5J.js → chunk-4TYRTQ4V.js} +48 -17
- package/dist/chunk-4VWWTGRW.js +497 -0
- package/dist/{chunk-4PDYHPR6.js → chunk-5GHZP7E5.js} +4 -2
- package/dist/{chunk-42VF42KH.js → chunk-5HZNWJFT.js} +4 -2
- package/dist/{chunk-DEYMHG5A.js → chunk-6MG5ZHAP.js} +58 -22
- package/dist/{chunk-7V37AAPK.js → chunk-7B4PABOL.js} +16 -7
- package/dist/chunk-A5S2PI37.js +47 -0
- package/dist/chunk-BFD4WSWU.js +497 -0
- package/dist/chunk-BSEFN25Q.js +32 -0
- package/dist/{chunk-3LPY36OG.js → chunk-CBEVE7RG.js} +20 -15
- package/dist/{chunk-A5AB4WQN.js → chunk-DPA3ZK4Q.js} +30 -21
- package/dist/{chunk-5FA54AMM.js → chunk-EJHX3VZL.js} +54 -21
- package/dist/{chunk-QXPHMSPA.js → chunk-GNF4WAPV.js} +22 -9
- package/dist/{chunk-XPG6B5IW.js → chunk-JHIA2BQK.js} +26 -13
- package/dist/{chunk-4I5IZILN.js → chunk-KGPICAQW.js} +10 -7
- package/dist/{chunk-4WBJPHZP.js → chunk-MST5AZXJ.js} +17 -8
- package/dist/{chunk-K35KFTEA.js → chunk-N6KDHCBC.js} +58 -33
- package/dist/{chunk-2R4ESMZB.js → chunk-NFO5NU6B.js} +5 -3
- package/dist/chunk-OKWBHCKC.js +170 -0
- package/dist/{chunk-FIE4LAJG.js → chunk-OX3K6UZJ.js} +5 -3
- package/dist/{chunk-6SEX42H2.js → chunk-R3K7DG7O.js} +21 -16
- package/dist/chunk-RB35Z35T.js +44 -0
- package/dist/{chunk-AWGFLRLI.js → chunk-SP4YPKPR.js} +51 -318
- package/dist/chunk-U7TSFDKX.js +217 -0
- package/dist/chunk-UP3SQX56.js +112 -0
- package/dist/{chunk-4EUEU4SM.js → chunk-VGIRC3HX.js} +13 -110
- package/dist/chunk-WGG7526Z.js +112 -0
- package/dist/{chunk-3JBSRALP.js → chunk-WNKP66IR.js} +10 -7
- package/dist/{chunk-DOC55MPG.js → chunk-WR6ISHCS.js} +11 -3
- package/dist/{chunk-52UNWVOD.js → chunk-ZVOPQ5BM.js} +54 -21
- package/dist/chunk-ZZMOPQER.js +217 -0
- package/dist/index.browser.cjs +79 -1454
- package/dist/index.browser.d.cts +2 -17
- package/dist/index.browser.d.ts +2 -17
- package/dist/index.browser.js +7 -6
- package/dist/index.cjs +306 -1631
- package/dist/index.d.cts +3 -1
- package/dist/index.d.ts +3 -1
- package/dist/index.js +49 -35
- package/dist/storage/SqliteNodeEngine.cjs +59 -1335
- package/dist/storage/SqliteNodeEngine.js +4 -3
- package/dist/storage/SqliteWasmEngine.cjs +57 -1335
- package/dist/storage/SqliteWasmEngine.js +4 -3
- package/package.json +12 -8
- package/dist/CardCollection-4OFJ6XQJ.js +0 -9
- package/dist/CardCollection-7PDWM24F.js +0 -9
- package/dist/CardCollection-CEFQ5PA6.js +0 -9
- package/dist/CardCollection-GUEYGN2Y.js +0 -9
- package/dist/CardCollection-KDO4CQ4B.js +0 -9
- package/dist/CardCollection-PB7ZY73E.js +0 -9
- package/dist/CardCollection-RK4DVH63.js +0 -9
- package/dist/CardCollection-T376E3TS.js +0 -9
- package/dist/CardCollection-WGCKKUOD.js +0 -9
- package/dist/CardCollection-XON2IWDU.js +0 -9
- package/dist/CardCollection-ZEI6FMP3.js +0 -9
- package/dist/EventProducer-MW6QF4IO.js +0 -47
- package/dist/EventProducer-V7RY2KKR.js +0 -47
- package/dist/FileIO.d.ts +0 -44
- package/dist/FileIO.d.ts.map +0 -1
- package/dist/FileIO.js +0 -203
- package/dist/FileIO.js.map +0 -1
- package/dist/IndexedDBEngine-7JI2CL32.js +0 -10
- package/dist/IndexedDBEngine-7OHQIRTI.js +0 -10
- package/dist/IndexedDBEngine-E5YJQG4U.js +0 -10
- package/dist/IndexedDBEngine-NV625E7L.js +0 -10
- package/dist/IndexedDBEngine-RPQS7ILF.js +0 -10
- package/dist/IndexedDBEngine-S3ZWCSI7.js +0 -10
- package/dist/IndexedDBEngine-T7OC5GRR.js +0 -10
- package/dist/LLMRuntime-BKB3CLXM.js +0 -16
- package/dist/LLMRuntime-BQUUFLAB.js +0 -16
- package/dist/LLMRuntime-TNBC4JCB.js +0 -16
- package/dist/LambdaRuntime-4YILF3G7.js +0 -15
- package/dist/LambdaRuntime-53TPVENI.js +0 -16
- package/dist/LambdaRuntime-73BSWP2G.js +0 -16
- package/dist/LambdaRuntime-AL5SBDCA.js +0 -17
- package/dist/LambdaRuntime-BYBUI7H5.js +0 -17
- package/dist/LambdaRuntime-JDZP3HIQ.js +0 -17
- package/dist/LambdaRuntime-JEI7RVWG.js +0 -16
- package/dist/LambdaRuntime-LCTHBYMV.js +0 -17
- package/dist/LambdaRuntime-LDA3G7IR.js +0 -16
- package/dist/LambdaRuntime-LF4FR6YA.js +0 -16
- package/dist/LambdaRuntime-O7JBVHO2.js +0 -16
- package/dist/LambdaRuntime-OFOTT464.js +0 -17
- package/dist/LambdaRuntime-Q6ISCHAD.js +0 -16
- package/dist/LambdaRuntime-TCZ42XCB.js +0 -16
- package/dist/LambdaRuntime-UKUOKJIW.js +0 -17
- package/dist/LambdaRuntime-VKLON4IB.js +0 -17
- package/dist/LambdaRuntime-WNYDBTS6.js +0 -16
- package/dist/LambdaRuntime-WPTX76CX.js +0 -17
- package/dist/Loader-4P7PEBCL.js +0 -11
- package/dist/Loader-HQ3QKMYM.js +0 -11
- package/dist/Loader-NCATGB67.js +0 -11
- package/dist/Loader-NRHGDQBD.js +0 -11
- package/dist/Loader-RT4NI6AT.js +0 -11
- package/dist/Loader-SSRY57SS.js +0 -11
- package/dist/Loader-W72QZ3T7.js +0 -11
- package/dist/Loader-WECRIXQW.js +0 -11
- package/dist/Loader-XFBIHCQF.js +0 -11
- package/dist/Loader.d.ts +0 -34
- package/dist/Loader.d.ts.map +0 -1
- package/dist/Loader.js +0 -190
- package/dist/Loader.js.map +0 -1
- package/dist/MCard-4J6WSBRF.js +0 -8
- package/dist/MCard-E3MRPTJF.js +0 -8
- package/dist/MCard-FCOIB6BP.js +0 -8
- package/dist/MCard-G4HUWHY5.js +0 -8
- package/dist/MCard-HFL7AFIH.js +0 -8
- package/dist/MCard-JOW6RBSO.js +0 -8
- package/dist/MCard-M4LKN4U2.js +0 -8
- package/dist/MCard-VB7UDUTN.js +0 -8
- package/dist/MCard-WOHE6SX6.js +0 -8
- package/dist/NetworkRuntime-2H7AQITA.js +0 -1571
- package/dist/NetworkRuntime-3MIUBNOF.js +0 -1571
- package/dist/NetworkRuntime-AOE2EJIM.js +0 -1571
- package/dist/NetworkRuntime-BQMDBUDO.js +0 -1570
- package/dist/NetworkRuntime-GMANLCAB.js +0 -1542
- package/dist/NetworkRuntime-L7P4VCGK.js +0 -1542
- package/dist/NetworkRuntime-LC7SUAOF.js +0 -1542
- package/dist/NetworkRuntime-OJWCWPBI.js +0 -1570
- package/dist/NetworkRuntime-ZJ3B4T3A.js +0 -1542
- package/dist/OllamaProvider-32RC36HD.js +0 -8
- package/dist/OllamaProvider-MQXSXLCA.js +0 -8
- package/dist/OllamaProvider-Q45BMOVN.js +0 -8
- package/dist/SqliteNodeEngine-WKVFWBNH.js +0 -9
- package/dist/StorageAdapter-DdDUiIvH.d.cts +0 -391
- package/dist/StorageAdapter-DdDUiIvH.d.ts +0 -391
- package/dist/StorageAdapter-Dw1BeOam.d.cts +0 -380
- package/dist/StorageAdapter-Dw1BeOam.d.ts +0 -380
- package/dist/chunk-23GCCCXB.js +0 -402
- package/dist/chunk-2ECISK2I.js +0 -354
- package/dist/chunk-2MRBTM72.js +0 -354
- package/dist/chunk-2THXO6FH.js +0 -2313
- package/dist/chunk-2VNRWIBZ.js +0 -389
- package/dist/chunk-2VOQRXWH.js +0 -296
- package/dist/chunk-34AYBZRO.js +0 -920
- package/dist/chunk-37EEYISR.js +0 -372
- package/dist/chunk-3E2TKOCZ.js +0 -354
- package/dist/chunk-3MMMJ7NH.js +0 -1068
- package/dist/chunk-437JTYVP.js +0 -292
- package/dist/chunk-4MQINOOG.js +0 -1218
- package/dist/chunk-4UIWXZHY.js +0 -1049
- package/dist/chunk-53S2EZCY.js +0 -290
- package/dist/chunk-5BIDGXA6.js +0 -987
- package/dist/chunk-5HXLTWYN.js +0 -296
- package/dist/chunk-5W2FDGUF.js +0 -371
- package/dist/chunk-6R4ERZMG.js +0 -1136
- package/dist/chunk-74YSNHEM.js +0 -2309
- package/dist/chunk-7H2BQZDK.js +0 -270
- package/dist/chunk-7KEWCCES.js +0 -1136
- package/dist/chunk-7PN2BUYF.js +0 -371
- package/dist/chunk-A2ZJA2EV.js +0 -389
- package/dist/chunk-ARPIBGRP.js +0 -1236
- package/dist/chunk-ATHNEEAG.js +0 -2309
- package/dist/chunk-AVXJOPUE.js +0 -354
- package/dist/chunk-B7VEU4S2.js +0 -204
- package/dist/chunk-C2TKISBR.js +0 -1213
- package/dist/chunk-CBH4YKB4.js +0 -2309
- package/dist/chunk-DP7HBRDL.js +0 -2309
- package/dist/chunk-DV7ZSH4W.js +0 -2309
- package/dist/chunk-DWXNZ5AJ.js +0 -642
- package/dist/chunk-EFKMZTT2.js +0 -270
- package/dist/chunk-FXJYXHG6.js +0 -266
- package/dist/chunk-G466I6RT.js +0 -229
- package/dist/chunk-GATPBTHL.js +0 -1142
- package/dist/chunk-GMQAHPBC.js +0 -292
- package/dist/chunk-GMWA2IJJ.js +0 -1105
- package/dist/chunk-GVX5LDLH.js +0 -371
- package/dist/chunk-HGENNKOJ.js +0 -355
- package/dist/chunk-HM2NBYHU.js +0 -292
- package/dist/chunk-IZWB5GCG.js +0 -389
- package/dist/chunk-J4HOFUKM.js +0 -2309
- package/dist/chunk-JIK2G3EH.js +0 -2313
- package/dist/chunk-JRXNWGSW.js +0 -1136
- package/dist/chunk-KRKK3KP6.js +0 -1081
- package/dist/chunk-KYXZHRUG.js +0 -389
- package/dist/chunk-L36L2VDL.js +0 -371
- package/dist/chunk-L5PZCES6.js +0 -204
- package/dist/chunk-L5U77ZEM.js +0 -1142
- package/dist/chunk-LQEKGX2T.js +0 -204
- package/dist/chunk-LWMUDMMQ.js +0 -1144
- package/dist/chunk-MLKGABMK.js +0 -9
- package/dist/chunk-NZ6OQ7UT.js +0 -92
- package/dist/chunk-O2UMNZGF.js +0 -903
- package/dist/chunk-OFHDMLNM.js +0 -355
- package/dist/chunk-PDBMNUMB.js +0 -316
- package/dist/chunk-PW4XS7M3.js +0 -850
- package/dist/chunk-QA2XQMMJ.js +0 -2313
- package/dist/chunk-QL2JFNA7.js +0 -389
- package/dist/chunk-QPZ2HNSU.js +0 -912
- package/dist/chunk-QVGVU6OS.js +0 -296
- package/dist/chunk-RCEU7PFH.js +0 -270
- package/dist/chunk-RSTKX7WM.js +0 -907
- package/dist/chunk-RXL2CW64.js +0 -266
- package/dist/chunk-RXUF6Y43.js +0 -2309
- package/dist/chunk-SIAA4J6H.js +0 -21
- package/dist/chunk-SOJ2UMO2.js +0 -986
- package/dist/chunk-T3AG6DXY.js +0 -296
- package/dist/chunk-TPCNKMGZ.js +0 -355
- package/dist/chunk-TPT3S5AX.js +0 -204
- package/dist/chunk-TXWGIEVH.js +0 -2313
- package/dist/chunk-TZFI54AU.js +0 -2313
- package/dist/chunk-U3FWUPD3.js +0 -717
- package/dist/chunk-UFW2VW2D.js +0 -266
- package/dist/chunk-UTAOS5Y7.js +0 -2313
- package/dist/chunk-V7VX5OJ6.js +0 -389
- package/dist/chunk-W2XGNMYB.js +0 -355
- package/dist/chunk-W3M4HJ4U.js +0 -2309
- package/dist/chunk-WMJGGREP.js +0 -296
- package/dist/chunk-WTNVQ5WS.js +0 -732
- package/dist/chunk-WVFWNVT2.js +0 -1050
- package/dist/chunk-WY7EYSYC.js +0 -1236
- package/dist/chunk-X42F7DE3.js +0 -373
- package/dist/chunk-XC7Y4I7L.js +0 -290
- package/dist/chunk-YFULZTKP.js +0 -270
- package/dist/chunk-YSVHXKSZ.js +0 -373
- package/dist/chunk-YWGVK5OS.js +0 -292
- package/dist/chunk-Z4BRNTO5.js +0 -2313
- package/dist/chunk-ZDUXDKPD.js +0 -292
- package/dist/chunk-ZXQ2W7LO.js +0 -355
- package/dist/chunk-ZXQELXXO.js +0 -378
- package/dist/index.browser.d.ts.map +0 -1
- package/dist/index.browser.js.map +0 -1
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/lib-4XS34IPZ.js +0 -778
- package/dist/model/CardCollection.d.ts +0 -147
- package/dist/model/CardCollection.d.ts.map +0 -1
- package/dist/model/CardCollection.js +0 -272
- package/dist/model/CardCollection.js.map +0 -1
- package/dist/model/ContentTypeInterpreter.d.ts +0 -28
- package/dist/model/ContentTypeInterpreter.d.ts.map +0 -1
- package/dist/model/ContentTypeInterpreter.js +0 -147
- package/dist/model/ContentTypeInterpreter.js.map +0 -1
- package/dist/model/EventProducer.d.ts +0 -10
- package/dist/model/EventProducer.d.ts.map +0 -1
- package/dist/model/EventProducer.js +0 -46
- package/dist/model/EventProducer.js.map +0 -1
- package/dist/model/GTime.d.ts +0 -44
- package/dist/model/GTime.d.ts.map +0 -1
- package/dist/model/GTime.js +0 -91
- package/dist/model/GTime.js.map +0 -1
- package/dist/model/Handle.d.ts +0 -37
- package/dist/model/Handle.d.ts.map +0 -1
- package/dist/model/Handle.js +0 -90
- package/dist/model/Handle.js.map +0 -1
- package/dist/model/MCard.d.ts +0 -145
- package/dist/model/MCard.d.ts.map +0 -1
- package/dist/model/MCard.js +0 -180
- package/dist/model/MCard.js.map +0 -1
- package/dist/model/PCard.d.ts +0 -271
- package/dist/model/PCard.d.ts.map +0 -1
- package/dist/model/PCard.js +0 -558
- package/dist/model/PCard.js.map +0 -1
- package/dist/model/VCard.d.ts +0 -277
- package/dist/model/VCard.d.ts.map +0 -1
- package/dist/model/VCard.js +0 -573
- package/dist/model/VCard.js.map +0 -1
- package/dist/model/constants.d.ts +0 -45
- package/dist/model/constants.d.ts.map +0 -1
- package/dist/model/constants.js +0 -27
- package/dist/model/constants.js.map +0 -1
- package/dist/model/vcard_vocabulary.d.ts +0 -174
- package/dist/model/vcard_vocabulary.d.ts.map +0 -1
- package/dist/model/vcard_vocabulary.js +0 -187
- package/dist/model/vcard_vocabulary.js.map +0 -1
- package/dist/monads/Either.d.ts +0 -51
- package/dist/monads/Either.d.ts.map +0 -1
- package/dist/monads/Either.js +0 -82
- package/dist/monads/Either.js.map +0 -1
- package/dist/monads/IO.d.ts +0 -38
- package/dist/monads/IO.d.ts.map +0 -1
- package/dist/monads/IO.js +0 -66
- package/dist/monads/IO.js.map +0 -1
- package/dist/monads/Maybe.d.ts +0 -45
- package/dist/monads/Maybe.d.ts.map +0 -1
- package/dist/monads/Maybe.js +0 -73
- package/dist/monads/Maybe.js.map +0 -1
- package/dist/monads/Reader.d.ts +0 -29
- package/dist/monads/Reader.d.ts.map +0 -1
- package/dist/monads/Reader.js +0 -44
- package/dist/monads/Reader.js.map +0 -1
- package/dist/monads/State.d.ts +0 -33
- package/dist/monads/State.d.ts.map +0 -1
- package/dist/monads/State.js +0 -50
- package/dist/monads/State.js.map +0 -1
- package/dist/monads/Writer.d.ts +0 -29
- package/dist/monads/Writer.d.ts.map +0 -1
- package/dist/monads/Writer.js +0 -46
- package/dist/monads/Writer.js.map +0 -1
- package/dist/ptr/Bridgelet.d.ts +0 -180
- package/dist/ptr/Bridgelet.d.ts.map +0 -1
- package/dist/ptr/Bridgelet.js +0 -296
- package/dist/ptr/Bridgelet.js.map +0 -1
- package/dist/ptr/CLMIntrospection.d.ts +0 -169
- package/dist/ptr/CLMIntrospection.d.ts.map +0 -1
- package/dist/ptr/CLMIntrospection.js +0 -329
- package/dist/ptr/CLMIntrospection.js.map +0 -1
- package/dist/ptr/FaroSidecar.d.ts +0 -56
- package/dist/ptr/FaroSidecar.d.ts.map +0 -1
- package/dist/ptr/FaroSidecar.js +0 -102
- package/dist/ptr/FaroSidecar.js.map +0 -1
- package/dist/ptr/LensProtocol.d.ts +0 -84
- package/dist/ptr/LensProtocol.d.ts.map +0 -1
- package/dist/ptr/LensProtocol.js +0 -98
- package/dist/ptr/LensProtocol.js.map +0 -1
- package/dist/ptr/OpenTelemetrySidecar.d.ts +0 -144
- package/dist/ptr/OpenTelemetrySidecar.d.ts.map +0 -1
- package/dist/ptr/OpenTelemetrySidecar.js +0 -232
- package/dist/ptr/OpenTelemetrySidecar.js.map +0 -1
- package/dist/ptr/SandboxWorker.d.ts +0 -79
- package/dist/ptr/SandboxWorker.d.ts.map +0 -1
- package/dist/ptr/SandboxWorker.js +0 -298
- package/dist/ptr/SandboxWorker.js.map +0 -1
- package/dist/ptr/common_types.d.ts +0 -39
- package/dist/ptr/common_types.d.ts.map +0 -1
- package/dist/ptr/common_types.js +0 -12
- package/dist/ptr/common_types.js.map +0 -1
- package/dist/rag/GraphRAGEngine.d.ts +0 -26
- package/dist/rag/GraphRAGEngine.d.ts.map +0 -1
- package/dist/rag/GraphRAGEngine.js +0 -166
- package/dist/rag/GraphRAGEngine.js.map +0 -1
- package/dist/rag/HandleVectorStore.d.ts +0 -201
- package/dist/rag/HandleVectorStore.d.ts.map +0 -1
- package/dist/rag/HandleVectorStore.js +0 -527
- package/dist/rag/HandleVectorStore.js.map +0 -1
- package/dist/rag/PersistentIndexer.d.ts +0 -148
- package/dist/rag/PersistentIndexer.d.ts.map +0 -1
- package/dist/rag/PersistentIndexer.js +0 -302
- package/dist/rag/PersistentIndexer.js.map +0 -1
- package/dist/rag/index.d.ts +0 -20
- package/dist/rag/index.d.ts.map +0 -1
- package/dist/rag/index.js +0 -26
- package/dist/rag/index.js.map +0 -1
- package/dist/rag/semanticVersioning.d.ts +0 -187
- package/dist/rag/semanticVersioning.d.ts.map +0 -1
- package/dist/rag/semanticVersioning.js +0 -253
- package/dist/rag/semanticVersioning.js.map +0 -1
- package/dist/storage/IndexedDBEngine.d.ts +0 -33
- package/dist/storage/IndexedDBEngine.d.ts.map +0 -1
- package/dist/storage/IndexedDBEngine.js +0 -198
- package/dist/storage/IndexedDBEngine.js.map +0 -1
- package/dist/storage/SqliteNodeEngine.d.ts.map +0 -1
- package/dist/storage/SqliteNodeEngine.js.map +0 -1
- package/dist/storage/SqliteWasmEngine.d.ts.map +0 -1
- package/dist/storage/SqliteWasmEngine.js.map +0 -1
- package/dist/storage/StorageAdapter.d.ts +0 -42
- package/dist/storage/StorageAdapter.d.ts.map +0 -1
- package/dist/storage/StorageAdapter.js +0 -2
- package/dist/storage/StorageAdapter.js.map +0 -1
- package/dist/storage/VectorStore.d.ts +0 -202
- package/dist/storage/VectorStore.d.ts.map +0 -1
- package/dist/storage/VectorStore.js +0 -557
- package/dist/storage/VectorStore.js.map +0 -1
- package/dist/storage/schema.d.ts +0 -162
- package/dist/storage/schema.d.ts.map +0 -1
- package/dist/storage/schema.js +0 -335
- package/dist/storage/schema.js.map +0 -1
- package/dist/storage/schema_constants.d.ts +0 -7
- package/dist/storage/schema_constants.d.ts.map +0 -1
- package/dist/storage/schema_constants.js +0 -415
- package/dist/storage/schema_constants.js.map +0 -1
- package/dist/types/dots.d.ts +0 -206
- package/dist/types/dots.d.ts.map +0 -1
- package/dist/types/dots.js +0 -201
- package/dist/types/dots.js.map +0 -1
package/dist/chunk-X42F7DE3.js
DELETED
|
@@ -1,373 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
createPage,
|
|
3
|
-
initCoreSchemas,
|
|
4
|
-
validateHandle
|
|
5
|
-
} from "./chunk-WTNVQ5WS.js";
|
|
6
|
-
import {
|
|
7
|
-
MCard
|
|
8
|
-
} from "./chunk-5BIDGXA6.js";
|
|
9
|
-
|
|
10
|
-
// src/storage/SqliteNodeEngine.ts
|
|
11
|
-
import { createRequire } from "module";
|
|
12
|
-
var DEFAULT_PAGE_SIZE = 10;
|
|
13
|
-
var SqliteNodeEngine = class _SqliteNodeEngine {
|
|
14
|
-
db;
|
|
15
|
-
dbPath;
|
|
16
|
-
/**
|
|
17
|
-
* Convert a database row into an MCard instance.
|
|
18
|
-
*/
|
|
19
|
-
static rowToCard(row) {
|
|
20
|
-
const content = row.content instanceof Buffer ? new Uint8Array(row.content) : new Uint8Array(row.content);
|
|
21
|
-
return MCard.fromData(content, row.hash, row.g_time);
|
|
22
|
-
}
|
|
23
|
-
/**
|
|
24
|
-
* Create a new SqliteNodeEngine
|
|
25
|
-
* @param dbPath Path to database file, or ':memory:' for in-memory database
|
|
26
|
-
*/
|
|
27
|
-
constructor(dbPath = ":memory:") {
|
|
28
|
-
this.dbPath = dbPath;
|
|
29
|
-
const require2 = createRequire(import.meta.url);
|
|
30
|
-
const Database = require2("better-sqlite3");
|
|
31
|
-
this.db = new Database(dbPath);
|
|
32
|
-
this.setupDatabase();
|
|
33
|
-
}
|
|
34
|
-
/**
|
|
35
|
-
* Initialize database schema
|
|
36
|
-
*/
|
|
37
|
-
setupDatabase() {
|
|
38
|
-
initCoreSchemas(this.db);
|
|
39
|
-
}
|
|
40
|
-
/**
|
|
41
|
-
* Close the database connection
|
|
42
|
-
*/
|
|
43
|
-
close() {
|
|
44
|
-
this.db.close();
|
|
45
|
-
}
|
|
46
|
-
/**
|
|
47
|
-
* Get the database path
|
|
48
|
-
*/
|
|
49
|
-
getDbPath() {
|
|
50
|
-
return this.dbPath;
|
|
51
|
-
}
|
|
52
|
-
// =========== Card Operations ===========
|
|
53
|
-
async add(card) {
|
|
54
|
-
const stmt = this.db.prepare(
|
|
55
|
-
"INSERT OR REPLACE INTO card (hash, content, g_time) VALUES (?, ?, ?)"
|
|
56
|
-
);
|
|
57
|
-
stmt.run(card.hash, Buffer.from(card.content), card.g_time);
|
|
58
|
-
return card.hash;
|
|
59
|
-
}
|
|
60
|
-
/**
|
|
61
|
-
* Add a card synchronously (for performance-critical paths)
|
|
62
|
-
*/
|
|
63
|
-
addSync(card) {
|
|
64
|
-
const stmt = this.db.prepare(
|
|
65
|
-
"INSERT OR REPLACE INTO card (hash, content, g_time) VALUES (?, ?, ?)"
|
|
66
|
-
);
|
|
67
|
-
stmt.run(card.hash, Buffer.from(card.content), card.g_time);
|
|
68
|
-
return card.hash;
|
|
69
|
-
}
|
|
70
|
-
async get(hash) {
|
|
71
|
-
return this.getSync(hash);
|
|
72
|
-
}
|
|
73
|
-
/**
|
|
74
|
-
* Get a card synchronously
|
|
75
|
-
*/
|
|
76
|
-
getSync(hash) {
|
|
77
|
-
const stmt = this.db.prepare("SELECT hash, content, g_time FROM card WHERE hash = ?");
|
|
78
|
-
const row = stmt.get(hash);
|
|
79
|
-
if (!row) return null;
|
|
80
|
-
return _SqliteNodeEngine.rowToCard(row);
|
|
81
|
-
}
|
|
82
|
-
async delete(hash) {
|
|
83
|
-
this.deleteSync(hash);
|
|
84
|
-
}
|
|
85
|
-
/**
|
|
86
|
-
* Delete a card synchronously
|
|
87
|
-
*/
|
|
88
|
-
deleteSync(hash) {
|
|
89
|
-
const stmt = this.db.prepare("DELETE FROM card WHERE hash = ?");
|
|
90
|
-
const result = stmt.run(hash);
|
|
91
|
-
return result.changes > 0;
|
|
92
|
-
}
|
|
93
|
-
async getPage(pageNumber = 1, pageSize = DEFAULT_PAGE_SIZE) {
|
|
94
|
-
return this.getPageSync(pageNumber, pageSize);
|
|
95
|
-
}
|
|
96
|
-
/**
|
|
97
|
-
* Get a page of cards synchronously
|
|
98
|
-
*/
|
|
99
|
-
getPageSync(pageNumber = 1, pageSize = DEFAULT_PAGE_SIZE) {
|
|
100
|
-
if (pageNumber < 1) throw new Error("Page number must be >= 1");
|
|
101
|
-
if (pageSize < 1) throw new Error("Page size must be >= 1");
|
|
102
|
-
const totalItems = this.countSync();
|
|
103
|
-
const offset = (pageNumber - 1) * pageSize;
|
|
104
|
-
const stmt = this.db.prepare(
|
|
105
|
-
"SELECT hash, content, g_time FROM card ORDER BY g_time DESC LIMIT ? OFFSET ?"
|
|
106
|
-
);
|
|
107
|
-
const rows = stmt.all(pageSize, offset);
|
|
108
|
-
const items = rows.map((row) => _SqliteNodeEngine.rowToCard(row));
|
|
109
|
-
return createPage(items, totalItems, pageNumber, pageSize);
|
|
110
|
-
}
|
|
111
|
-
async count() {
|
|
112
|
-
return this.countSync();
|
|
113
|
-
}
|
|
114
|
-
/**
|
|
115
|
-
* Count cards synchronously
|
|
116
|
-
*/
|
|
117
|
-
countSync() {
|
|
118
|
-
const stmt = this.db.prepare("SELECT COUNT(*) as count FROM card");
|
|
119
|
-
const row = stmt.get();
|
|
120
|
-
return row.count;
|
|
121
|
-
}
|
|
122
|
-
async searchByHash(hashPrefix) {
|
|
123
|
-
const rows = this.db.prepare("SELECT hash, content, g_time FROM card WHERE hash LIKE ?").all(`${hashPrefix}%`);
|
|
124
|
-
return rows.map((row) => _SqliteNodeEngine.rowToCard(row));
|
|
125
|
-
}
|
|
126
|
-
async search(query, pageNumber, pageSize) {
|
|
127
|
-
const offset = (pageNumber - 1) * pageSize;
|
|
128
|
-
const searchPattern = `%${query}%`;
|
|
129
|
-
const countResult = this.db.prepare("SELECT COUNT(*) as count FROM card WHERE CAST(content AS TEXT) LIKE ?").get(searchPattern);
|
|
130
|
-
const totalItems = countResult.count;
|
|
131
|
-
const rows = this.db.prepare("SELECT hash, content, g_time FROM card WHERE CAST(content AS TEXT) LIKE ? LIMIT ? OFFSET ?").all(searchPattern, pageSize, offset);
|
|
132
|
-
const items = rows.map((row) => _SqliteNodeEngine.rowToCard(row));
|
|
133
|
-
return createPage(items, totalItems, pageNumber, pageSize);
|
|
134
|
-
}
|
|
135
|
-
async getAll() {
|
|
136
|
-
const rows = this.db.prepare("SELECT hash, content, g_time FROM card").all();
|
|
137
|
-
return rows.map((row) => _SqliteNodeEngine.rowToCard(row));
|
|
138
|
-
}
|
|
139
|
-
async clear() {
|
|
140
|
-
this.clearSync();
|
|
141
|
-
}
|
|
142
|
-
/**
|
|
143
|
-
* Clear all data synchronously
|
|
144
|
-
* Delete in FK-safe order: children first, then parents
|
|
145
|
-
*/
|
|
146
|
-
clearSync() {
|
|
147
|
-
this.db.exec("DELETE FROM handle_history");
|
|
148
|
-
this.db.exec("DELETE FROM handle_registry");
|
|
149
|
-
this.db.exec("DELETE FROM card");
|
|
150
|
-
}
|
|
151
|
-
// =========== Search Operations ===========
|
|
152
|
-
/**
|
|
153
|
-
* Search cards by string in content, hash, or g_time
|
|
154
|
-
*/
|
|
155
|
-
searchByString(searchString, pageNumber = 1, pageSize = DEFAULT_PAGE_SIZE) {
|
|
156
|
-
if (pageNumber < 1) throw new Error("Page number must be >= 1");
|
|
157
|
-
if (pageSize < 1) throw new Error("Page size must be >= 1");
|
|
158
|
-
const pattern = `%${searchString}%`;
|
|
159
|
-
const offset = (pageNumber - 1) * pageSize;
|
|
160
|
-
const countStmt = this.db.prepare(`
|
|
161
|
-
SELECT COUNT(*) as count FROM card
|
|
162
|
-
WHERE hash LIKE ? OR g_time LIKE ? OR CAST(content AS TEXT) LIKE ?
|
|
163
|
-
`);
|
|
164
|
-
const countRow = countStmt.get(pattern, pattern, pattern);
|
|
165
|
-
const totalItems = countRow.count;
|
|
166
|
-
const stmt = this.db.prepare(`
|
|
167
|
-
SELECT hash, content, g_time FROM card
|
|
168
|
-
WHERE hash LIKE ? OR g_time LIKE ? OR CAST(content AS TEXT) LIKE ?
|
|
169
|
-
ORDER BY g_time DESC LIMIT ? OFFSET ?
|
|
170
|
-
`);
|
|
171
|
-
const rows = stmt.all(pattern, pattern, pattern, pageSize, offset);
|
|
172
|
-
const items = rows.map((row) => _SqliteNodeEngine.rowToCard(row));
|
|
173
|
-
return createPage(items, totalItems, pageNumber, pageSize);
|
|
174
|
-
}
|
|
175
|
-
/**
|
|
176
|
-
* Search cards by content pattern (binary-safe)
|
|
177
|
-
*/
|
|
178
|
-
searchByContent(searchPattern, pageNumber = 1, pageSize = DEFAULT_PAGE_SIZE) {
|
|
179
|
-
if (pageNumber < 1) throw new Error("Page number must be >= 1");
|
|
180
|
-
if (pageSize < 1) throw new Error("Page size must be >= 1");
|
|
181
|
-
if (!searchPattern || typeof searchPattern === "string" && searchPattern.length === 0) {
|
|
182
|
-
throw new Error("Search pattern cannot be empty");
|
|
183
|
-
}
|
|
184
|
-
const searchBytes = typeof searchPattern === "string" ? Buffer.from(searchPattern, "utf-8") : Buffer.from(searchPattern);
|
|
185
|
-
const offset = (pageNumber - 1) * pageSize;
|
|
186
|
-
const countStmt = this.db.prepare("SELECT COUNT(*) as count FROM card WHERE INSTR(content, ?) > 0");
|
|
187
|
-
const countRow = countStmt.get(searchBytes);
|
|
188
|
-
const totalItems = countRow.count;
|
|
189
|
-
const stmt = this.db.prepare(`
|
|
190
|
-
SELECT hash, content, g_time FROM card
|
|
191
|
-
WHERE INSTR(content, ?) > 0
|
|
192
|
-
ORDER BY g_time DESC LIMIT ? OFFSET ?
|
|
193
|
-
`);
|
|
194
|
-
const rows = stmt.all(searchBytes, pageSize, offset);
|
|
195
|
-
const items = rows.map((row) => _SqliteNodeEngine.rowToCard(row));
|
|
196
|
-
return createPage(items, totalItems, pageNumber, pageSize);
|
|
197
|
-
}
|
|
198
|
-
/**
|
|
199
|
-
* Get all cards (single page with all items)
|
|
200
|
-
*/
|
|
201
|
-
getAllCards() {
|
|
202
|
-
const stmt = this.db.prepare("SELECT hash, content, g_time FROM card ORDER BY g_time DESC");
|
|
203
|
-
const rows = stmt.all();
|
|
204
|
-
const items = rows.map((row) => _SqliteNodeEngine.rowToCard(row));
|
|
205
|
-
return createPage(items, items.length, 1, items.length || 1);
|
|
206
|
-
}
|
|
207
|
-
// =========== Handle Operations ===========
|
|
208
|
-
async registerHandle(handle, hash) {
|
|
209
|
-
this.registerHandleSync(handle, hash);
|
|
210
|
-
}
|
|
211
|
-
/**
|
|
212
|
-
* Register a handle synchronously
|
|
213
|
-
*/
|
|
214
|
-
registerHandleSync(handle, hash) {
|
|
215
|
-
const normalized = validateHandle(handle);
|
|
216
|
-
const now = (/* @__PURE__ */ new Date()).toISOString();
|
|
217
|
-
const checkStmt = this.db.prepare("SELECT handle FROM handle_registry WHERE handle = ?");
|
|
218
|
-
const existing = checkStmt.get(normalized);
|
|
219
|
-
if (existing) {
|
|
220
|
-
throw new Error(`Handle '${handle}' already exists.`);
|
|
221
|
-
}
|
|
222
|
-
const stmt = this.db.prepare(
|
|
223
|
-
"INSERT INTO handle_registry (handle, current_hash, created_at, updated_at) VALUES (?, ?, ?, ?)"
|
|
224
|
-
);
|
|
225
|
-
stmt.run(normalized, hash, now, now);
|
|
226
|
-
}
|
|
227
|
-
async resolveHandle(handle) {
|
|
228
|
-
return this.resolveHandleSync(handle);
|
|
229
|
-
}
|
|
230
|
-
/**
|
|
231
|
-
* Resolve a handle synchronously
|
|
232
|
-
*/
|
|
233
|
-
resolveHandleSync(handle) {
|
|
234
|
-
const normalized = validateHandle(handle);
|
|
235
|
-
const stmt = this.db.prepare("SELECT current_hash FROM handle_registry WHERE handle = ?");
|
|
236
|
-
const row = stmt.get(normalized);
|
|
237
|
-
return row?.current_hash || null;
|
|
238
|
-
}
|
|
239
|
-
async getByHandle(handle) {
|
|
240
|
-
return this.getByHandleSync(handle);
|
|
241
|
-
}
|
|
242
|
-
/**
|
|
243
|
-
* Get card by handle synchronously
|
|
244
|
-
*/
|
|
245
|
-
getByHandleSync(handle) {
|
|
246
|
-
const hash = this.resolveHandleSync(handle);
|
|
247
|
-
if (!hash) return null;
|
|
248
|
-
return this.getSync(hash);
|
|
249
|
-
}
|
|
250
|
-
async updateHandle(handle, newHash) {
|
|
251
|
-
return this.updateHandleSync(handle, newHash);
|
|
252
|
-
}
|
|
253
|
-
/**
|
|
254
|
-
* Update a handle synchronously
|
|
255
|
-
*/
|
|
256
|
-
updateHandleSync(handle, newHash) {
|
|
257
|
-
const normalized = validateHandle(handle);
|
|
258
|
-
const now = (/* @__PURE__ */ new Date()).toISOString();
|
|
259
|
-
const getStmt = this.db.prepare("SELECT current_hash FROM handle_registry WHERE handle = ?");
|
|
260
|
-
const row = getStmt.get(normalized);
|
|
261
|
-
if (!row) {
|
|
262
|
-
throw new Error(`Handle '${handle}' not found.`);
|
|
263
|
-
}
|
|
264
|
-
const previousHash = row.current_hash;
|
|
265
|
-
const historyStmt = this.db.prepare(
|
|
266
|
-
"INSERT INTO handle_history (handle, previous_hash, changed_at) VALUES (?, ?, ?)"
|
|
267
|
-
);
|
|
268
|
-
historyStmt.run(normalized, previousHash, now);
|
|
269
|
-
const updateStmt = this.db.prepare(
|
|
270
|
-
"UPDATE handle_registry SET current_hash = ?, updated_at = ? WHERE handle = ?"
|
|
271
|
-
);
|
|
272
|
-
updateStmt.run(newHash, now, normalized);
|
|
273
|
-
return previousHash;
|
|
274
|
-
}
|
|
275
|
-
async getHandleHistory(handle) {
|
|
276
|
-
return this.getHandleHistorySync(handle);
|
|
277
|
-
}
|
|
278
|
-
/**
|
|
279
|
-
* Get handle history synchronously
|
|
280
|
-
*/
|
|
281
|
-
getHandleHistorySync(handle) {
|
|
282
|
-
const normalized = validateHandle(handle);
|
|
283
|
-
const stmt = this.db.prepare(
|
|
284
|
-
"SELECT previous_hash, changed_at FROM handle_history WHERE handle = ? ORDER BY id DESC"
|
|
285
|
-
);
|
|
286
|
-
const rows = stmt.all(normalized);
|
|
287
|
-
return rows.map((row) => ({
|
|
288
|
-
previousHash: row.previous_hash,
|
|
289
|
-
changedAt: row.changed_at
|
|
290
|
-
}));
|
|
291
|
-
}
|
|
292
|
-
async pruneHandleHistory(handle, options = {}) {
|
|
293
|
-
return this.pruneHandleHistorySync(handle, options);
|
|
294
|
-
}
|
|
295
|
-
/**
|
|
296
|
-
* Prune handle history synchronously
|
|
297
|
-
*/
|
|
298
|
-
pruneHandleHistorySync(handle, options = {}) {
|
|
299
|
-
const normalized = validateHandle(handle);
|
|
300
|
-
let stmt;
|
|
301
|
-
if (options.deleteAll) {
|
|
302
|
-
stmt = this.db.prepare("DELETE FROM handle_history WHERE handle = ?");
|
|
303
|
-
const result = stmt.run(normalized);
|
|
304
|
-
return result.changes;
|
|
305
|
-
} else if (options.olderThan) {
|
|
306
|
-
stmt = this.db.prepare("DELETE FROM handle_history WHERE handle = ? AND changed_at < ?");
|
|
307
|
-
const result = stmt.run(normalized, options.olderThan);
|
|
308
|
-
return result.changes;
|
|
309
|
-
}
|
|
310
|
-
return 0;
|
|
311
|
-
}
|
|
312
|
-
// =========== Handle Management Operations ===========
|
|
313
|
-
async getAllHandles() {
|
|
314
|
-
return this.getAllHandlesSync();
|
|
315
|
-
}
|
|
316
|
-
getAllHandlesSync() {
|
|
317
|
-
const stmt = this.db.prepare("SELECT handle, current_hash FROM handle_registry");
|
|
318
|
-
const rows = stmt.all();
|
|
319
|
-
return rows.map((row) => ({ handle: row.handle, hash: row.current_hash }));
|
|
320
|
-
}
|
|
321
|
-
async removeHandle(handle) {
|
|
322
|
-
this.removeHandleSync(handle);
|
|
323
|
-
}
|
|
324
|
-
removeHandleSync(handle) {
|
|
325
|
-
const normalized = validateHandle(handle);
|
|
326
|
-
this.db.prepare("DELETE FROM handle_history WHERE handle = ?").run(normalized);
|
|
327
|
-
this.db.prepare("DELETE FROM handle_registry WHERE handle = ?").run(normalized);
|
|
328
|
-
}
|
|
329
|
-
async renameHandle(oldHandle, newHandle) {
|
|
330
|
-
this.renameHandleSync(oldHandle, newHandle);
|
|
331
|
-
}
|
|
332
|
-
renameHandleSync(oldHandle, newHandle) {
|
|
333
|
-
const normalizedOld = validateHandle(oldHandle);
|
|
334
|
-
const normalizedNew = validateHandle(newHandle);
|
|
335
|
-
if (normalizedOld === normalizedNew) return;
|
|
336
|
-
const existsOld = this.db.prepare("SELECT handle FROM handle_registry WHERE handle = ?").get(normalizedOld);
|
|
337
|
-
if (!existsOld) throw new Error(`Handle '${oldHandle}' not found.`);
|
|
338
|
-
const existsNew = this.db.prepare("SELECT handle FROM handle_registry WHERE handle = ?").get(normalizedNew);
|
|
339
|
-
if (existsNew) throw new Error(`Handle '${newHandle}' already exists.`);
|
|
340
|
-
const performRename = this.db.transaction(() => {
|
|
341
|
-
this.db.pragma("defer_foreign_keys = ON");
|
|
342
|
-
this.db.prepare("UPDATE handle_registry SET handle = ? WHERE handle = ?").run(normalizedNew, normalizedOld);
|
|
343
|
-
this.db.prepare("UPDATE handle_history SET handle = ? WHERE handle = ?").run(normalizedNew, normalizedOld);
|
|
344
|
-
});
|
|
345
|
-
performRename();
|
|
346
|
-
}
|
|
347
|
-
async deleteHistoryEntry(handle, previousHash) {
|
|
348
|
-
this.deleteHistoryEntrySync(handle, previousHash);
|
|
349
|
-
}
|
|
350
|
-
deleteHistoryEntrySync(handle, previousHash) {
|
|
351
|
-
const normalized = validateHandle(handle);
|
|
352
|
-
const performStitch = this.db.transaction(() => {
|
|
353
|
-
const rOut = this.db.prepare(
|
|
354
|
-
"SELECT id, previous_hash FROM handle_history WHERE handle = ? AND previous_hash = ? ORDER BY id DESC LIMIT 1"
|
|
355
|
-
).get(normalized, previousHash);
|
|
356
|
-
if (!rOut) return;
|
|
357
|
-
const rIn = this.db.prepare(
|
|
358
|
-
"SELECT id, previous_hash FROM handle_history WHERE handle = ? AND id < ? ORDER BY id DESC LIMIT 1"
|
|
359
|
-
).get(normalized, rOut.id);
|
|
360
|
-
if (rIn) {
|
|
361
|
-
this.db.prepare("UPDATE handle_history SET previous_hash = ? WHERE id = ?").run(rIn.previous_hash, rOut.id);
|
|
362
|
-
this.db.prepare("DELETE FROM handle_history WHERE id = ?").run(rIn.id);
|
|
363
|
-
} else {
|
|
364
|
-
this.db.prepare("DELETE FROM handle_history WHERE id = ?").run(rOut.id);
|
|
365
|
-
}
|
|
366
|
-
});
|
|
367
|
-
performStitch();
|
|
368
|
-
}
|
|
369
|
-
};
|
|
370
|
-
|
|
371
|
-
export {
|
|
372
|
-
SqliteNodeEngine
|
|
373
|
-
};
|
package/dist/chunk-XC7Y4I7L.js
DELETED
|
@@ -1,290 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
CORE_SCHEMAS,
|
|
3
|
-
createPage,
|
|
4
|
-
validateHandle
|
|
5
|
-
} from "./chunk-WTNVQ5WS.js";
|
|
6
|
-
import {
|
|
7
|
-
MCard
|
|
8
|
-
} from "./chunk-5BIDGXA6.js";
|
|
9
|
-
|
|
10
|
-
// src/storage/SqliteWasmEngine.ts
|
|
11
|
-
var SqliteWasmEngine = class {
|
|
12
|
-
db = null;
|
|
13
|
-
SQL = null;
|
|
14
|
-
/**
|
|
15
|
-
* Initialize the database
|
|
16
|
-
* @param wasmUrl URL to sql-wasm.wasm file (optional, defaults to CDN)
|
|
17
|
-
* @param existingData Optional existing database as Uint8Array
|
|
18
|
-
*/
|
|
19
|
-
async init(wasmUrl, existingData) {
|
|
20
|
-
const initSqlJs = (await import("sql.js")).default;
|
|
21
|
-
const SQL = await initSqlJs({
|
|
22
|
-
locateFile: (file) => wasmUrl || `https://sql.js.org/dist/${file}`
|
|
23
|
-
});
|
|
24
|
-
this.SQL = SQL;
|
|
25
|
-
this.db = existingData ? new SQL.Database(existingData) : new SQL.Database();
|
|
26
|
-
this.db.run(CORE_SCHEMAS.card);
|
|
27
|
-
this.db.run(CORE_SCHEMAS.handleRegistry);
|
|
28
|
-
this.db.run(CORE_SCHEMAS.handleHistory);
|
|
29
|
-
this.db.run(CORE_SCHEMAS.handleIndex);
|
|
30
|
-
}
|
|
31
|
-
ensureDb() {
|
|
32
|
-
if (!this.db) throw new Error("Database not initialized. Call init() first.");
|
|
33
|
-
return this.db;
|
|
34
|
-
}
|
|
35
|
-
/**
|
|
36
|
-
* Export database as Uint8Array (for persistence)
|
|
37
|
-
*/
|
|
38
|
-
export() {
|
|
39
|
-
return this.ensureDb().export();
|
|
40
|
-
}
|
|
41
|
-
/**
|
|
42
|
-
* Get raw sql.js Database for use with VectorStore adapter.
|
|
43
|
-
*
|
|
44
|
-
* Example:
|
|
45
|
-
* const vecStore = createWasmVectorStore(engine.getRawDb());
|
|
46
|
-
*/
|
|
47
|
-
getRawDb() {
|
|
48
|
-
return this.ensureDb();
|
|
49
|
-
}
|
|
50
|
-
// =========== Card Operations ===========
|
|
51
|
-
async add(card) {
|
|
52
|
-
const db = this.ensureDb();
|
|
53
|
-
db.run(
|
|
54
|
-
"INSERT OR REPLACE INTO card (hash, content, g_time) VALUES (?, ?, ?)",
|
|
55
|
-
[card.hash, card.content, card.g_time]
|
|
56
|
-
);
|
|
57
|
-
return card.hash;
|
|
58
|
-
}
|
|
59
|
-
async get(hash) {
|
|
60
|
-
const db = this.ensureDb();
|
|
61
|
-
const stmt = db.prepare("SELECT hash, content, g_time FROM card WHERE hash = ?");
|
|
62
|
-
stmt.bind([hash]);
|
|
63
|
-
if (!stmt.step()) {
|
|
64
|
-
stmt.free();
|
|
65
|
-
return null;
|
|
66
|
-
}
|
|
67
|
-
const row = stmt.get();
|
|
68
|
-
stmt.free();
|
|
69
|
-
return MCard.fromData(new Uint8Array(row[1]), row[0], row[2]);
|
|
70
|
-
}
|
|
71
|
-
async delete(hash) {
|
|
72
|
-
this.ensureDb().run("DELETE FROM card WHERE hash = ?", [hash]);
|
|
73
|
-
}
|
|
74
|
-
async getPage(pageNumber, pageSize) {
|
|
75
|
-
const db = this.ensureDb();
|
|
76
|
-
const totalItems = await this.count();
|
|
77
|
-
const offset = (pageNumber - 1) * pageSize;
|
|
78
|
-
const stmt = db.prepare("SELECT hash, content, g_time FROM card LIMIT ? OFFSET ?");
|
|
79
|
-
stmt.bind([pageSize, offset]);
|
|
80
|
-
const items = [];
|
|
81
|
-
while (stmt.step()) {
|
|
82
|
-
const row = stmt.get();
|
|
83
|
-
items.push(MCard.fromData(new Uint8Array(row[1]), row[0], row[2]));
|
|
84
|
-
}
|
|
85
|
-
stmt.free();
|
|
86
|
-
return createPage(items, totalItems, pageNumber, pageSize);
|
|
87
|
-
}
|
|
88
|
-
async count() {
|
|
89
|
-
const result = this.ensureDb().exec("SELECT COUNT(*) FROM card");
|
|
90
|
-
return result[0]?.values[0]?.[0] || 0;
|
|
91
|
-
}
|
|
92
|
-
async searchByHash(hashPrefix) {
|
|
93
|
-
const db = this.ensureDb();
|
|
94
|
-
const stmt = db.prepare("SELECT hash, content, g_time FROM card WHERE hash LIKE ?");
|
|
95
|
-
stmt.bind([`${hashPrefix}%`]);
|
|
96
|
-
const items = [];
|
|
97
|
-
while (stmt.step()) {
|
|
98
|
-
const row = stmt.get();
|
|
99
|
-
items.push(MCard.fromData(new Uint8Array(row[1]), row[0], row[2]));
|
|
100
|
-
}
|
|
101
|
-
stmt.free();
|
|
102
|
-
return items;
|
|
103
|
-
}
|
|
104
|
-
async search(query, pageNumber, pageSize) {
|
|
105
|
-
const db = this.ensureDb();
|
|
106
|
-
const offset = (pageNumber - 1) * pageSize;
|
|
107
|
-
const pattern = `%${query}%`;
|
|
108
|
-
let stmt = db.prepare("SELECT COUNT(*) FROM card WHERE CAST(content AS TEXT) LIKE ?");
|
|
109
|
-
stmt.bind([pattern]);
|
|
110
|
-
stmt.step();
|
|
111
|
-
const totalItems = stmt.get()[0];
|
|
112
|
-
stmt.free();
|
|
113
|
-
stmt = db.prepare("SELECT hash, content, g_time FROM card WHERE CAST(content AS TEXT) LIKE ? LIMIT ? OFFSET ?");
|
|
114
|
-
stmt.bind([pattern, pageSize, offset]);
|
|
115
|
-
const items = [];
|
|
116
|
-
while (stmt.step()) {
|
|
117
|
-
const row = stmt.get();
|
|
118
|
-
items.push(MCard.fromData(new Uint8Array(row[1]), row[0], row[2]));
|
|
119
|
-
}
|
|
120
|
-
stmt.free();
|
|
121
|
-
return createPage(items, totalItems, pageNumber, pageSize);
|
|
122
|
-
}
|
|
123
|
-
async getAll() {
|
|
124
|
-
const result = this.ensureDb().exec("SELECT hash, content, g_time FROM card");
|
|
125
|
-
return (result[0]?.values || []).map(
|
|
126
|
-
([h, content, g_time]) => MCard.fromData(new Uint8Array(content), h, g_time)
|
|
127
|
-
);
|
|
128
|
-
}
|
|
129
|
-
async clear() {
|
|
130
|
-
const db = this.ensureDb();
|
|
131
|
-
db.run("DELETE FROM card");
|
|
132
|
-
db.run("DELETE FROM handle_registry");
|
|
133
|
-
db.run("DELETE FROM handle_history");
|
|
134
|
-
}
|
|
135
|
-
// =========== Handle Operations ===========
|
|
136
|
-
async registerHandle(handle, hash) {
|
|
137
|
-
const db = this.ensureDb();
|
|
138
|
-
const normalized = validateHandle(handle);
|
|
139
|
-
const checkStmt = db.prepare("SELECT handle FROM handle_registry WHERE handle = ?");
|
|
140
|
-
checkStmt.bind([normalized]);
|
|
141
|
-
const exists = checkStmt.step();
|
|
142
|
-
checkStmt.free();
|
|
143
|
-
if (exists) {
|
|
144
|
-
throw new Error(`Handle '${handle}' already exists.`);
|
|
145
|
-
}
|
|
146
|
-
const now = (/* @__PURE__ */ new Date()).toISOString();
|
|
147
|
-
db.run(
|
|
148
|
-
"INSERT INTO handle_registry (handle, current_hash, created_at, updated_at) VALUES (?, ?, ?, ?)",
|
|
149
|
-
[normalized, hash, now, now]
|
|
150
|
-
);
|
|
151
|
-
}
|
|
152
|
-
async resolveHandle(handle) {
|
|
153
|
-
const normalized = validateHandle(handle);
|
|
154
|
-
const stmt = this.ensureDb().prepare("SELECT current_hash FROM handle_registry WHERE handle = ?");
|
|
155
|
-
stmt.bind([normalized]);
|
|
156
|
-
if (!stmt.step()) {
|
|
157
|
-
stmt.free();
|
|
158
|
-
return null;
|
|
159
|
-
}
|
|
160
|
-
const hash = stmt.get()[0];
|
|
161
|
-
stmt.free();
|
|
162
|
-
return hash || null;
|
|
163
|
-
}
|
|
164
|
-
async getByHandle(handle) {
|
|
165
|
-
const hash = await this.resolveHandle(handle);
|
|
166
|
-
if (!hash) return null;
|
|
167
|
-
return this.get(hash);
|
|
168
|
-
}
|
|
169
|
-
async updateHandle(handle, newHash) {
|
|
170
|
-
const db = this.ensureDb();
|
|
171
|
-
const normalized = validateHandle(handle);
|
|
172
|
-
const getStmt = db.prepare("SELECT current_hash FROM handle_registry WHERE handle = ?");
|
|
173
|
-
getStmt.bind([normalized]);
|
|
174
|
-
if (!getStmt.step()) {
|
|
175
|
-
getStmt.free();
|
|
176
|
-
throw new Error(`Handle '${handle}' not found.`);
|
|
177
|
-
}
|
|
178
|
-
const previousHash = getStmt.get()[0];
|
|
179
|
-
getStmt.free();
|
|
180
|
-
const now = (/* @__PURE__ */ new Date()).toISOString();
|
|
181
|
-
db.run(
|
|
182
|
-
"INSERT INTO handle_history (handle, previous_hash, changed_at) VALUES (?, ?, ?)",
|
|
183
|
-
[normalized, previousHash, now]
|
|
184
|
-
);
|
|
185
|
-
db.run(
|
|
186
|
-
"UPDATE handle_registry SET current_hash = ?, updated_at = ? WHERE handle = ?",
|
|
187
|
-
[newHash, now, normalized]
|
|
188
|
-
);
|
|
189
|
-
return previousHash;
|
|
190
|
-
}
|
|
191
|
-
async getHandleHistory(handle) {
|
|
192
|
-
const normalized = validateHandle(handle);
|
|
193
|
-
const stmt = this.ensureDb().prepare("SELECT previous_hash, changed_at FROM handle_history WHERE handle = ? ORDER BY id DESC");
|
|
194
|
-
stmt.bind([normalized]);
|
|
195
|
-
const results = [];
|
|
196
|
-
while (stmt.step()) {
|
|
197
|
-
const row = stmt.get();
|
|
198
|
-
results.push({ previousHash: row[0], changedAt: row[1] });
|
|
199
|
-
}
|
|
200
|
-
stmt.free();
|
|
201
|
-
return results;
|
|
202
|
-
}
|
|
203
|
-
async pruneHandleHistory(handle, options = {}) {
|
|
204
|
-
const db = this.ensureDb();
|
|
205
|
-
const normalized = validateHandle(handle);
|
|
206
|
-
if (options.deleteAll) {
|
|
207
|
-
const stmt = db.prepare("SELECT COUNT(*) FROM handle_history WHERE handle = ?");
|
|
208
|
-
stmt.bind([normalized]);
|
|
209
|
-
stmt.step();
|
|
210
|
-
const count = stmt.get()[0];
|
|
211
|
-
stmt.free();
|
|
212
|
-
db.run("DELETE FROM handle_history WHERE handle = ?", [normalized]);
|
|
213
|
-
return count;
|
|
214
|
-
} else if (options.olderThan) {
|
|
215
|
-
const stmt = db.prepare("SELECT COUNT(*) FROM handle_history WHERE handle = ? AND changed_at < ?");
|
|
216
|
-
stmt.bind([normalized, options.olderThan]);
|
|
217
|
-
stmt.step();
|
|
218
|
-
const count = stmt.get()[0];
|
|
219
|
-
stmt.free();
|
|
220
|
-
db.run("DELETE FROM handle_history WHERE handle = ? AND changed_at < ?", [normalized, options.olderThan]);
|
|
221
|
-
return count;
|
|
222
|
-
}
|
|
223
|
-
return 0;
|
|
224
|
-
}
|
|
225
|
-
// =========== Handle Management Operations ===========
|
|
226
|
-
async getAllHandles() {
|
|
227
|
-
const result = this.ensureDb().exec("SELECT handle, current_hash FROM handle_registry");
|
|
228
|
-
return (result[0]?.values || []).map(([handle, hash]) => ({
|
|
229
|
-
handle,
|
|
230
|
-
hash
|
|
231
|
-
}));
|
|
232
|
-
}
|
|
233
|
-
async removeHandle(handle) {
|
|
234
|
-
const db = this.ensureDb();
|
|
235
|
-
const normalized = validateHandle(handle);
|
|
236
|
-
db.run("DELETE FROM handle_history WHERE handle = ?", [normalized]);
|
|
237
|
-
db.run("DELETE FROM handle_registry WHERE handle = ?", [normalized]);
|
|
238
|
-
}
|
|
239
|
-
async renameHandle(oldHandle, newHandle) {
|
|
240
|
-
const db = this.ensureDb();
|
|
241
|
-
const normalizedOld = validateHandle(oldHandle);
|
|
242
|
-
const normalizedNew = validateHandle(newHandle);
|
|
243
|
-
if (normalizedOld === normalizedNew) return;
|
|
244
|
-
const checkOld = db.prepare("SELECT handle FROM handle_registry WHERE handle = ?");
|
|
245
|
-
checkOld.bind([normalizedOld]);
|
|
246
|
-
const oldExists = checkOld.step();
|
|
247
|
-
checkOld.free();
|
|
248
|
-
if (!oldExists) throw new Error(`Handle '${oldHandle}' not found.`);
|
|
249
|
-
const checkNew = db.prepare("SELECT handle FROM handle_registry WHERE handle = ?");
|
|
250
|
-
checkNew.bind([normalizedNew]);
|
|
251
|
-
const newExists = checkNew.step();
|
|
252
|
-
checkNew.free();
|
|
253
|
-
if (newExists) throw new Error(`Handle '${newHandle}' already exists.`);
|
|
254
|
-
db.run("UPDATE handle_registry SET handle = ? WHERE handle = ?", [normalizedNew, normalizedOld]);
|
|
255
|
-
db.run("UPDATE handle_history SET handle = ? WHERE handle = ?", [normalizedNew, normalizedOld]);
|
|
256
|
-
}
|
|
257
|
-
async deleteHistoryEntry(handle, previousHash) {
|
|
258
|
-
const db = this.ensureDb();
|
|
259
|
-
const normalized = validateHandle(handle);
|
|
260
|
-
const rOutStmt = db.prepare(
|
|
261
|
-
"SELECT id, previous_hash FROM handle_history WHERE handle = ? AND previous_hash = ? ORDER BY id DESC LIMIT 1"
|
|
262
|
-
);
|
|
263
|
-
rOutStmt.bind([normalized, previousHash]);
|
|
264
|
-
if (!rOutStmt.step()) {
|
|
265
|
-
rOutStmt.free();
|
|
266
|
-
return;
|
|
267
|
-
}
|
|
268
|
-
const rOutId = rOutStmt.get()[0];
|
|
269
|
-
rOutStmt.free();
|
|
270
|
-
const rInStmt = db.prepare(
|
|
271
|
-
"SELECT id, previous_hash FROM handle_history WHERE handle = ? AND id < ? ORDER BY id DESC LIMIT 1"
|
|
272
|
-
);
|
|
273
|
-
rInStmt.bind([normalized, rOutId]);
|
|
274
|
-
const hasRIn = rInStmt.step();
|
|
275
|
-
if (hasRIn) {
|
|
276
|
-
const rInPrevHash = rInStmt.get()[1];
|
|
277
|
-
const rInId = rInStmt.get()[0];
|
|
278
|
-
rInStmt.free();
|
|
279
|
-
db.run("UPDATE handle_history SET previous_hash = ? WHERE id = ?", [rInPrevHash, rOutId]);
|
|
280
|
-
db.run("DELETE FROM handle_history WHERE id = ?", [rInId]);
|
|
281
|
-
} else {
|
|
282
|
-
rInStmt.free();
|
|
283
|
-
db.run("DELETE FROM handle_history WHERE id = ?", [rOutId]);
|
|
284
|
-
}
|
|
285
|
-
}
|
|
286
|
-
};
|
|
287
|
-
|
|
288
|
-
export {
|
|
289
|
-
SqliteWasmEngine
|
|
290
|
-
};
|