mindoodb 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (170) hide show
  1. package/README.md +263 -0
  2. package/dist/appendonlystores/InMemoryContentAddressedStoreFactory.d.ts +5 -0
  3. package/dist/appendonlystores/InMemoryContentAddressedStoreFactory.d.ts.map +1 -0
  4. package/dist/appendonlystores/InMemoryContentAddressedStoreFactory.js +17 -0
  5. package/dist/appendonlystores/InMemoryContentAddressedStoreFactory.js.map +1 -0
  6. package/dist/appendonlystores/network/ClientNetworkContentAddressedStore.d.ts +111 -0
  7. package/dist/appendonlystores/network/ClientNetworkContentAddressedStore.d.ts.map +1 -0
  8. package/dist/appendonlystores/network/ClientNetworkContentAddressedStore.js +237 -0
  9. package/dist/appendonlystores/network/ClientNetworkContentAddressedStore.js.map +1 -0
  10. package/dist/appendonlystores/network/HttpTransport.d.ts +78 -0
  11. package/dist/appendonlystores/network/HttpTransport.d.ts.map +1 -0
  12. package/dist/appendonlystores/network/HttpTransport.js +356 -0
  13. package/dist/appendonlystores/network/HttpTransport.js.map +1 -0
  14. package/dist/appendonlystores/network/ServerNetworkContentAddressedStore.d.ts +131 -0
  15. package/dist/appendonlystores/network/ServerNetworkContentAddressedStore.d.ts.map +1 -0
  16. package/dist/appendonlystores/network/ServerNetworkContentAddressedStore.js +248 -0
  17. package/dist/appendonlystores/network/ServerNetworkContentAddressedStore.js.map +1 -0
  18. package/dist/appendonlystores/network/index.d.ts +8 -0
  19. package/dist/appendonlystores/network/index.d.ts.map +1 -0
  20. package/dist/appendonlystores/network/index.js +21 -0
  21. package/dist/appendonlystores/network/index.js.map +1 -0
  22. package/dist/browser/crypto/BrowserCryptoAdapter.d.ts +14 -0
  23. package/dist/browser/crypto/BrowserCryptoAdapter.d.ts.map +1 -0
  24. package/dist/browser/crypto/BrowserCryptoAdapter.js +30 -0
  25. package/dist/browser/crypto/BrowserCryptoAdapter.js.map +1 -0
  26. package/dist/browser/index.d.ts +3 -0
  27. package/dist/browser/index.d.ts.map +1 -0
  28. package/dist/browser/index.js +26 -0
  29. package/dist/browser/index.js.map +1 -0
  30. package/dist/core/BaseMindooDB.d.ts +182 -0
  31. package/dist/core/BaseMindooDB.d.ts.map +1 -0
  32. package/dist/core/BaseMindooDB.js +1701 -0
  33. package/dist/core/BaseMindooDB.js.map +1 -0
  34. package/dist/core/BaseMindooTenant.d.ts +155 -0
  35. package/dist/core/BaseMindooTenant.d.ts.map +1 -0
  36. package/dist/core/BaseMindooTenant.js +673 -0
  37. package/dist/core/BaseMindooTenant.js.map +1 -0
  38. package/dist/core/BaseMindooTenantDirectory.d.ts +99 -0
  39. package/dist/core/BaseMindooTenantDirectory.d.ts.map +1 -0
  40. package/dist/core/BaseMindooTenantDirectory.js +776 -0
  41. package/dist/core/BaseMindooTenantDirectory.js.map +1 -0
  42. package/dist/core/BaseMindooTenantFactory.d.ts +91 -0
  43. package/dist/core/BaseMindooTenantFactory.d.ts.map +1 -0
  44. package/dist/core/BaseMindooTenantFactory.js +297 -0
  45. package/dist/core/BaseMindooTenantFactory.js.map +1 -0
  46. package/dist/core/appendonlystores/InMemoryContentAddressedStore.d.ts +111 -0
  47. package/dist/core/appendonlystores/InMemoryContentAddressedStore.d.ts.map +1 -0
  48. package/dist/core/appendonlystores/InMemoryContentAddressedStore.js +293 -0
  49. package/dist/core/appendonlystores/InMemoryContentAddressedStore.js.map +1 -0
  50. package/dist/core/appendonlystores/network/AuthenticationService.d.ts +78 -0
  51. package/dist/core/appendonlystores/network/AuthenticationService.d.ts.map +1 -0
  52. package/dist/core/appendonlystores/network/AuthenticationService.js +297 -0
  53. package/dist/core/appendonlystores/network/AuthenticationService.js.map +1 -0
  54. package/dist/core/appendonlystores/network/NetworkTransport.d.ts +174 -0
  55. package/dist/core/appendonlystores/network/NetworkTransport.d.ts.map +1 -0
  56. package/dist/core/appendonlystores/network/NetworkTransport.js +3 -0
  57. package/dist/core/appendonlystores/network/NetworkTransport.js.map +1 -0
  58. package/dist/core/appendonlystores/network/types.d.ts +135 -0
  59. package/dist/core/appendonlystores/network/types.d.ts.map +1 -0
  60. package/dist/core/appendonlystores/network/types.js +35 -0
  61. package/dist/core/appendonlystores/network/types.js.map +1 -0
  62. package/dist/core/appendonlystores/types.d.ts +157 -0
  63. package/dist/core/appendonlystores/types.d.ts.map +1 -0
  64. package/dist/core/appendonlystores/types.js +3 -0
  65. package/dist/core/appendonlystores/types.js.map +1 -0
  66. package/dist/core/crypto/CryptoAdapter.d.ts +19 -0
  67. package/dist/core/crypto/CryptoAdapter.d.ts.map +1 -0
  68. package/dist/core/crypto/CryptoAdapter.js +3 -0
  69. package/dist/core/crypto/CryptoAdapter.js.map +1 -0
  70. package/dist/core/crypto/MindooDocSigner.d.ts +106 -0
  71. package/dist/core/crypto/MindooDocSigner.d.ts.map +1 -0
  72. package/dist/core/crypto/MindooDocSigner.js +192 -0
  73. package/dist/core/crypto/MindooDocSigner.js.map +1 -0
  74. package/dist/core/crypto/RSAEncryption.d.ts +62 -0
  75. package/dist/core/crypto/RSAEncryption.d.ts.map +1 -0
  76. package/dist/core/crypto/RSAEncryption.js +167 -0
  77. package/dist/core/crypto/RSAEncryption.js.map +1 -0
  78. package/dist/core/errors.d.ts +10 -0
  79. package/dist/core/errors.d.ts.map +1 -0
  80. package/dist/core/errors.js +17 -0
  81. package/dist/core/errors.js.map +1 -0
  82. package/dist/core/index.d.ts +14 -0
  83. package/dist/core/index.d.ts.map +1 -0
  84. package/dist/core/index.js +53 -0
  85. package/dist/core/index.js.map +1 -0
  86. package/dist/core/indexing/virtualviews/IViewEntryAccessCheck.d.ts +33 -0
  87. package/dist/core/indexing/virtualviews/IViewEntryAccessCheck.d.ts.map +1 -0
  88. package/dist/core/indexing/virtualviews/IViewEntryAccessCheck.js +27 -0
  89. package/dist/core/indexing/virtualviews/IViewEntryAccessCheck.js.map +1 -0
  90. package/dist/core/indexing/virtualviews/IVirtualViewDataProvider.d.ts +31 -0
  91. package/dist/core/indexing/virtualviews/IVirtualViewDataProvider.d.ts.map +1 -0
  92. package/dist/core/indexing/virtualviews/IVirtualViewDataProvider.js +3 -0
  93. package/dist/core/indexing/virtualviews/IVirtualViewDataProvider.js.map +1 -0
  94. package/dist/core/indexing/virtualviews/MindooDBVirtualViewDataProvider.d.ts +52 -0
  95. package/dist/core/indexing/virtualviews/MindooDBVirtualViewDataProvider.d.ts.map +1 -0
  96. package/dist/core/indexing/virtualviews/MindooDBVirtualViewDataProvider.js +106 -0
  97. package/dist/core/indexing/virtualviews/MindooDBVirtualViewDataProvider.js.map +1 -0
  98. package/dist/core/indexing/virtualviews/ViewEntrySortKey.d.ts +44 -0
  99. package/dist/core/indexing/virtualviews/ViewEntrySortKey.d.ts.map +1 -0
  100. package/dist/core/indexing/virtualviews/ViewEntrySortKey.js +107 -0
  101. package/dist/core/indexing/virtualviews/ViewEntrySortKey.js.map +1 -0
  102. package/dist/core/indexing/virtualviews/ViewEntrySortKeyComparator.d.ts +28 -0
  103. package/dist/core/indexing/virtualviews/ViewEntrySortKeyComparator.d.ts.map +1 -0
  104. package/dist/core/indexing/virtualviews/ViewEntrySortKeyComparator.js +133 -0
  105. package/dist/core/indexing/virtualviews/ViewEntrySortKeyComparator.js.map +1 -0
  106. package/dist/core/indexing/virtualviews/VirtualView.d.ts +109 -0
  107. package/dist/core/indexing/virtualviews/VirtualView.d.ts.map +1 -0
  108. package/dist/core/indexing/virtualviews/VirtualView.js +504 -0
  109. package/dist/core/indexing/virtualviews/VirtualView.js.map +1 -0
  110. package/dist/core/indexing/virtualviews/VirtualViewColumn.d.ts +59 -0
  111. package/dist/core/indexing/virtualviews/VirtualViewColumn.d.ts.map +1 -0
  112. package/dist/core/indexing/virtualviews/VirtualViewColumn.js +70 -0
  113. package/dist/core/indexing/virtualviews/VirtualViewColumn.js.map +1 -0
  114. package/dist/core/indexing/virtualviews/VirtualViewDataChange.d.ts +49 -0
  115. package/dist/core/indexing/virtualviews/VirtualViewDataChange.d.ts.map +1 -0
  116. package/dist/core/indexing/virtualviews/VirtualViewDataChange.js +69 -0
  117. package/dist/core/indexing/virtualviews/VirtualViewDataChange.js.map +1 -0
  118. package/dist/core/indexing/virtualviews/VirtualViewEntryData.d.ts +121 -0
  119. package/dist/core/indexing/virtualviews/VirtualViewEntryData.d.ts.map +1 -0
  120. package/dist/core/indexing/virtualviews/VirtualViewEntryData.js +365 -0
  121. package/dist/core/indexing/virtualviews/VirtualViewEntryData.js.map +1 -0
  122. package/dist/core/indexing/virtualviews/VirtualViewFactory.d.ts +131 -0
  123. package/dist/core/indexing/virtualviews/VirtualViewFactory.d.ts.map +1 -0
  124. package/dist/core/indexing/virtualviews/VirtualViewFactory.js +236 -0
  125. package/dist/core/indexing/virtualviews/VirtualViewFactory.js.map +1 -0
  126. package/dist/core/indexing/virtualviews/VirtualViewNavigator.d.ts +330 -0
  127. package/dist/core/indexing/virtualviews/VirtualViewNavigator.d.ts.map +1 -0
  128. package/dist/core/indexing/virtualviews/VirtualViewNavigator.js +1010 -0
  129. package/dist/core/indexing/virtualviews/VirtualViewNavigator.js.map +1 -0
  130. package/dist/core/indexing/virtualviews/index.d.ts +53 -0
  131. package/dist/core/indexing/virtualviews/index.d.ts.map +1 -0
  132. package/dist/core/indexing/virtualviews/index.js +89 -0
  133. package/dist/core/indexing/virtualviews/index.js.map +1 -0
  134. package/dist/core/indexing/virtualviews/types.d.ts +115 -0
  135. package/dist/core/indexing/virtualviews/types.d.ts.map +1 -0
  136. package/dist/core/indexing/virtualviews/types.js +175 -0
  137. package/dist/core/indexing/virtualviews/types.js.map +1 -0
  138. package/dist/core/keys/KeyBag.d.ts +122 -0
  139. package/dist/core/keys/KeyBag.d.ts.map +1 -0
  140. package/dist/core/keys/KeyBag.js +401 -0
  141. package/dist/core/keys/KeyBag.js.map +1 -0
  142. package/dist/core/types.d.ts +1004 -0
  143. package/dist/core/types.d.ts.map +1 -0
  144. package/dist/core/types.js +10 -0
  145. package/dist/core/types.js.map +1 -0
  146. package/dist/core/userid/index.d.ts +53 -0
  147. package/dist/core/userid/index.d.ts.map +1 -0
  148. package/dist/core/userid/index.js +3 -0
  149. package/dist/core/userid/index.js.map +1 -0
  150. package/dist/core/utils/idGeneration.d.ts +109 -0
  151. package/dist/core/utils/idGeneration.d.ts.map +1 -0
  152. package/dist/core/utils/idGeneration.js +182 -0
  153. package/dist/core/utils/idGeneration.js.map +1 -0
  154. package/dist/core/utils/index.d.ts +5 -0
  155. package/dist/core/utils/index.d.ts.map +1 -0
  156. package/dist/core/utils/index.js +19 -0
  157. package/dist/core/utils/index.js.map +1 -0
  158. package/dist/index.d.ts +7 -0
  159. package/dist/index.d.ts.map +1 -0
  160. package/dist/index.js +40 -0
  161. package/dist/index.js.map +1 -0
  162. package/dist/node/crypto/NodeCryptoAdapter.d.ts +16 -0
  163. package/dist/node/crypto/NodeCryptoAdapter.d.ts.map +1 -0
  164. package/dist/node/crypto/NodeCryptoAdapter.js +53 -0
  165. package/dist/node/crypto/NodeCryptoAdapter.js.map +1 -0
  166. package/dist/node/index.d.ts +3 -0
  167. package/dist/node/index.d.ts.map +1 -0
  168. package/dist/node/index.js +26 -0
  169. package/dist/node/index.js.map +1 -0
  170. package/package.json +58 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/core/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,KAAK,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAC5D,OAAO,KAAK,EAAE,qBAAqB,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AACxF,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAC5D,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAE3D;;;;GAIG;AACH,eAAO,MAAM,mBAAmB,iBAAiB,CAAC;AAElD;;;GAGG;AACH,MAAM,WAAW,mBAAmB;IAClC,UAAU,EAAE,MAAM,CAAC;IACnB,EAAE,EAAE,MAAM,CAAC;IACX,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;GAGG;AACH,MAAM,WAAW,cAAc;IAC7B;;;OAGG;IACH,SAAS,EAAE,MAAM,CAAC;IAElB;;;OAGG;IACH,UAAU,EAAE,mBAAmB,CAAC;CACjC;AAED;;;;GAIG;AACH,MAAM,WAAW,iBAAiB;IAChC;;;OAGG;IACH,SAAS,EAAE,MAAM,CAAC;IAElB;;;OAGG;IACH,UAAU,EAAE,mBAAmB,CAAC;CACjC;AAGD,YAAY,EAAE,YAAY,EAAE,aAAa,EAAE,CAAC;AAE5C;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAElC;;;;;;;;;;;;;;;;;;;;;;OAsBG;IACH,YAAY,CACV,QAAQ,EAAE,MAAM,EAChB,uBAAuB,EAAE,MAAM,EAC/B,iCAAiC,EAAE,MAAM,EACzC,2BAA2B,EAAE,MAAM,EACnC,WAAW,EAAE,aAAa,EAC1B,mBAAmB,EAAE,MAAM,EAC3B,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,YAAY,CAAC,CAAC;IAEzB;;;;;;;;;;;;OAYG;IACH,kBAAkB,CAChB,QAAQ,EAAE,MAAM,EAChB,0BAA0B,EAAE,mBAAmB,EAC/C,2BAA2B,EAAE,MAAM,EACnC,uBAAuB,EAAE,MAAM,EAC/B,iCAAiC,EAAE,MAAM,EACzC,WAAW,EAAE,aAAa,EAC1B,mBAAmB,EAAE,MAAM,EAC3B,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,YAAY,CAAC,CAAC;IAEzB;;;;;;OAMG;IACH,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;IAEzE;;;;;OAKG;IACH,cAAc,CAAC,aAAa,EAAE,aAAa,GAAG,YAAY,CAAC;IAE3D;;;;;;;OAOG;IACH,oBAAoB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC;IAEhE;;;;;;;;;;OAUG;IACH,kCAAkC,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAAC;IAEnF;;;;;;;;;;OAUG;IACH,uBAAuB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC;CACvE;AAED;;;;;;;;GAQG;AACH,MAAM,WAAW,YAAY;IAC3B;;;;OAIG;IACH,UAAU,IAAI,mBAAmB,CAAC;IAElC;;;;OAIG;IACH,KAAK,IAAI,MAAM,CAAC;IAEhB;;;;;;OAMG;IACH,0BAA0B,IAAI,MAAM,CAAC;IAErC;;;;;;OAMG;IACH,oCAAoC,IAAI,MAAM,CAAC;IAE/C;;;;;;;OAOG;IACH,sBAAsB,IAAI,mBAAmB,CAAC;IAE9C;;;;;;;;;OASG;IACH,cAAc,CAAC,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;IAElF;;;;;;;;;OASG;IACH,cAAc,CAAC,gBAAgB,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;IAE3F;;;;;;OAMG;IACH,wBAAwB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAE9D;;;;;;OAMG;IACH,gBAAgB,IAAI,OAAO,CAAC,YAAY,CAAC,CAAC;IAE1C;;;;;;;OAOG;IACH,WAAW,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;IAEtD;;;;;;;;;OASG;IACH,kBAAkB,CAChB,OAAO,EAAE,UAAU,EACnB,cAAc,EAAE,cAAc,EAC9B,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,UAAU,CAAC,CAAC;IAEvB;;;;;;;OAOG;IACH,eAAe,CAAC,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAEjG;;;;OAIG;IACH,aAAa,IAAI,OAAO,CAAC,qBAAqB,CAAC,CAAC;IAEhD;;;;;;;OAOG;IACH,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;IAE/D;;;;;;OAMG;IACH,kBAAkB,CAAC,OAAO,EAAE,cAAc,GAAG,eAAe,CAAC;IAE7D;;;;;OAKG;IACH,gBAAgB,IAAI,aAAa,CAAC;CACnC;AAGD,YAAY,EAAE,qBAAqB,EAAE,4BAA4B,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAEzI;;;;;GAKG;AACH,MAAM,MAAM,cAAc,GACtB,YAAY,GACZ,YAAY,GACZ,cAAc,GACd,YAAY,GACZ,kBAAkB,CAAC;AAEvB;;;;GAIG;AACH,MAAM,WAAW,kBAAkB;IACjC;;OAEG;IACH,SAAS,EAAE,cAAc,CAAC;IAE1B;;;;;;;;;OASG;IACH,EAAE,EAAE,MAAM,CAAC;IAEX;;;;OAIG;IACH,WAAW,EAAE,MAAM,CAAC;IAEpB;;;OAGG;IACH,KAAK,EAAE,MAAM,CAAC;IAEd;;;;OAIG;IACH,aAAa,EAAE,MAAM,EAAE,CAAC;IAExB;;OAEG;IACH,SAAS,EAAE,MAAM,CAAC;IAElB;;;OAGG;IACH,kBAAkB,EAAE,MAAM,CAAC;IAE3B;;;;OAIG;IACH,eAAe,EAAE,MAAM,CAAC;IAExB;;;OAGG;IACH,SAAS,EAAE,UAAU,CAAC;IAEtB;;;;OAIG;IACH,YAAY,EAAE,MAAM,CAAC;IAErB;;;;OAIG;IACH,aAAa,EAAE,MAAM,CAAC;CACvB;AAED;;;GAGG;AACH,MAAM,WAAW,UAAW,SAAQ,kBAAkB;IACpD;;;;;;;;OAQG;IACH,aAAa,EAAE,UAAU,CAAC;CAC3B;AAED;;;GAGG;AACH,MAAM,WAAW,mBAAmB;IAClC;;OAEG;IACH,YAAY,EAAE,MAAM,CAAC;IAErB;;OAEG;IACH,QAAQ,EAAE,MAAM,CAAC;IAEjB;;OAEG;IACH,QAAQ,EAAE,MAAM,CAAC;IAEjB;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;IAEb;;;OAGG;IACH,WAAW,EAAE,MAAM,CAAC;IAEpB;;;OAGG;IACH,eAAe,EAAE,MAAM,CAAC;IAExB;;OAEG;IACH,SAAS,EAAE,MAAM,CAAC;IAElB;;OAEG;IACH,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B;;;;OAIG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED;;;GAGG;AACH,MAAM,WAAW,SAAS;IACxB;;;;OAIG;IACH,WAAW,IAAI,QAAQ,CAAC;IAOxB,KAAK,IAAI,MAAM,CAAC;IAEhB;;;;;OAKG;IACH,YAAY,IAAI,MAAM,CAAC;IAEvB;;;;;OAKG;IACH,eAAe,IAAI,MAAM,CAAC;IAE1B;;;;;OAKG;IACH,SAAS,IAAI,OAAO,CAAC;IAOrB,OAAO,IAAI,gBAAgB,CAAC;IAM5B;;;;;;;;;;OAUG;IACH,aAAa,CACX,QAAQ,EAAE,UAAU,EACpB,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,EAChB,eAAe,CAAC,EAAE,MAAM,GACvB,OAAO,CAAC,mBAAmB,CAAC,CAAC;IAEhC;;;;;;;;;;;;;;;;OAgBG;IACH,mBAAmB,CACjB,UAAU,EAAE,aAAa,CAAC,UAAU,CAAC,EACrC,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,EAChB,eAAe,CAAC,EAAE,MAAM,GACvB,OAAO,CAAC,mBAAmB,CAAC,CAAC;IAEhC;;;;;;;;OAQG;IACH,gBAAgB,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEtD;;;;;;;;OAQG;IACH,kBAAkB,CAAC,YAAY,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAK1E;;;;OAIG;IACH,cAAc,IAAI,mBAAmB,EAAE,CAAC;IAExC;;;;;;;OAOG;IACH,aAAa,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;IAEzD;;;;;;;;;;OAUG;IACH,kBAAkB,CAChB,YAAY,EAAE,MAAM,EACpB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,UAAU,CAAC,CAAC;IAEvB;;;;;;;;;;;;;;;;;;;;;OAqBG;IACH,gBAAgB,CACd,YAAY,EAAE,MAAM,EACpB,WAAW,CAAC,EAAE,MAAM,GACnB,cAAc,CAAC,UAAU,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;CAC9C;AAED,MAAM,WAAW,gBAAgB;IAC/B,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,qBAAqB;IAEpC;;;;;;;;OAQG;IACH,YAAY,CAAC,MAAM,EAAE,YAAY,EAAE,wBAAwB,EAAE,mBAAmB,EAC9E,gCAAgC,EAAE,MAAM,GACvC,OAAO,CAAC,IAAI,CAAC,CAAC;IAEjB;;;;;;;;;;OAUG;IACH,UAAU,CAAC,QAAQ,EAAE,MAAM,EAAE,eAAe,EAAE,OAAO,EAAE,wBAAwB,EAAE,mBAAmB,EAClG,gCAAgC,EAAE,MAAM,GACvC,OAAO,CAAC,IAAI,CAAC,CAAC;IAEjB;;;;;;OAMG;IACH,wBAAwB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAE9D;;;;;;OAMG;IACH,iBAAiB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC;QAC3C,gBAAgB,EAAE,MAAM,CAAC;QACzB,mBAAmB,EAAE,MAAM,CAAC;KAC7B,GAAG,IAAI,CAAC,CAAC;IAEV;;;;;OAKG;IACH,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAElD;;;;;;;;;;;;;;;OAeG;IACH,sBAAsB,CACpB,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,GAAG,SAAS,EAC1B,wBAAwB,EAAE,mBAAmB,EAC7C,gCAAgC,EAAE,MAAM,GACvC,OAAO,CAAC,IAAI,CAAC,CAAC;IAEjB;;;;;;;;OAQG;IACH,4BAA4B,IAAI,OAAO,CAAC,KAAK,CAAC;QAC5C,IAAI,EAAE,MAAM,CAAC;QACb,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,WAAW,EAAE,MAAM,CAAC;QACpB,iBAAiB,EAAE,MAAM,CAAC;KAC3B,CAAC,CAAC,CAAC;IAEJ;;;;;;;OAOG;IACH,iBAAiB,IAAI,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC,CAAC;IAE/C;;;;;;;;;;;OAWG;IACH,oBAAoB,CAClB,UAAU,EAAE,CAAC,GAAG,EAAE,SAAS,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,EACpD,wBAAwB,EAAE,mBAAmB,EAC7C,gCAAgC,EAAE,MAAM,GACvC,OAAO,CAAC,IAAI,CAAC,CAAC;IAEjB;;;;;;OAMG;IACH,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC,CAAC;IAEvD;;;;;;;;;;;;OAYG;IACH,gBAAgB,CACd,IAAI,EAAE,MAAM,EACZ,UAAU,EAAE,CAAC,GAAG,EAAE,SAAS,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,EACpD,wBAAwB,EAAE,mBAAmB,EAC7C,gCAAgC,EAAE,MAAM,GACvC,OAAO,CAAC,IAAI,CAAC,CAAC;IAEjB;;;;OAIG;IACH,SAAS,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IAE/B;;;;;OAKG;IACH,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IAEtD;;;;;;;OAOG;IACH,WAAW,CAAC,SAAS,EAAE,MAAM,EAC3B,wBAAwB,EAAE,mBAAmB,EAC7C,gCAAgC,EAAE,MAAM,GACvC,OAAO,CAAC,IAAI,CAAC,CAAC;IAEjB;;;;;;;;;;OAUG;IACH,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IAEtD;;;;;;;;OAQG;IACH,eAAe,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,EACnD,wBAAwB,EAAE,mBAAmB,EAC7C,gCAAgC,EAAE,MAAM,GACvC,OAAO,CAAC,IAAI,CAAC,CAAC;IAEjB;;;;;;;;OAQG;IACH,oBAAoB,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,EACxD,wBAAwB,EAAE,mBAAmB,EAC7C,gCAAgC,EAAE,MAAM,GACvC,OAAO,CAAC,IAAI,CAAC,CAAC;CAClB;AAED;;;;GAIG;AACH,MAAM,WAAW,oBAAoB;IACnC;;OAEG;IACH,YAAY,EAAE,MAAM,CAAC;IAErB;;;OAGG;IACH,KAAK,EAAE,MAAM,CAAC;CACf;AAED;;;GAGG;AACH,MAAM,WAAW,oBAAoB;IACnC;;OAEG;IACH,GAAG,EAAE,SAAS,CAAC;IAEf;;OAEG;IACH,MAAM,EAAE,oBAAoB,CAAC;CAC9B;AAED;;GAEG;AACH,MAAM,WAAW,aAAc,SAAQ,gBAAgB;IACrD;;;;OAIG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;IAEtB;;;OAGG;IACH,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;CACrC;AAED,MAAM,WAAW,QAAQ;IAEvB;;;;OAIG;IACH,SAAS,IAAI,YAAY,CAAC;IAE1B;;;;;OAKG;IACH,aAAa,IAAI,OAAO,CAAC;IAEzB;;;;OAIG;IACH,QAAQ,IAAI,qBAAqB,CAAC;IAElC;;;;;OAKG;IACH,kBAAkB,IAAI,qBAAqB,GAAG,SAAS,CAAC;IAExD;;;;OAIG;IACH,cAAc,IAAI,OAAO,CAAC,SAAS,CAAC,CAAC;IAErC;;;;;;;OAOG;IACH,uBAAuB,CAAC,eAAe,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC;IAEtE;;;;;;;;;OASG;IACH,4BAA4B,CAC1B,cAAc,EAAE,cAAc,EAC9B,kBAAkB,EAAE,MAAM,EAC1B,eAAe,CAAC,EAAE,MAAM,GACvB,OAAO,CAAC,SAAS,CAAC,CAAC;IAEtB;;;;;OAKG;IACH,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC;IAE/C;;;;;;;OAOG;IACH,sBAAsB,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC,CAAC;IAEpF;;;;OAIG;IACH,iBAAiB,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IAEvC;;;;;OAKG;IACH,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAE7C;;;;;;;;;OASG;IACH,4BAA4B,CAC1B,KAAK,EAAE,MAAM,EACb,cAAc,EAAE,cAAc,EAC9B,kBAAkB,EAAE,MAAM,GACzB,OAAO,CAAC,IAAI,CAAC,CAAC;IAEjB;;;;;;;;;;;;;;;;;OAiBG;IACH,SAAS,CACP,GAAG,EAAE,SAAS,EACd,UAAU,EAAE,CAAC,GAAG,EAAE,SAAS,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,GACnD,OAAO,CAAC,IAAI,CAAC,CAAC;IAEjB;;;;;;;;;;OAUG;IACH,uBAAuB,CACrB,GAAG,EAAE,SAAS,EACd,UAAU,EAAE,CAAC,GAAG,EAAE,SAAS,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,EACpD,cAAc,EAAE,cAAc,EAC9B,kBAAkB,EAAE,MAAM,GACzB,OAAO,CAAC,IAAI,CAAC,CAAC;IAEjB;;;;;;;;;;;;;;;;;;OAkBG;IACH,mBAAmB,CAAC,MAAM,EAAE,oBAAoB,GAAG,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,MAAM,EAAE,SAAS,EAAE,aAAa,EAAE,oBAAoB,KAAK,OAAO,GAAG,IAAI,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAAC;IAE7L;;;;;;;;;;;;;;;;;;;;;OAqBG;IACH,mBAAmB,CAAC,MAAM,EAAE,oBAAoB,GAAG,IAAI,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,cAAc,CAAC,oBAAoB,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;IAEjI;;;;;;;;;;;OAWG;IACH,gBAAgB,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAElC;;;;;OAKG;IACH,eAAe,CAAC,WAAW,EAAE,qBAAqB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEnE;;;;;OAKG;IACH,aAAa,CAAC,WAAW,EAAE,qBAAqB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAClE"}
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.PUBLIC_INFOS_KEY_ID = void 0;
4
+ /**
5
+ * Well-known key ID for access control documents (grantaccess, revokeaccess, groups).
6
+ * All servers and clients MUST have this key in their KeyBag to verify user access.
7
+ * This enables servers to validate users without having full tenant data access.
8
+ */
9
+ exports.PUBLIC_INFOS_KEY_ID = "$publicinfos";
10
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/core/types.ts"],"names":[],"mappings":";;;AAMA;;;;GAIG;AACU,QAAA,mBAAmB,GAAG,cAAc,CAAC"}
@@ -0,0 +1,53 @@
1
+ import { SigningKeyPair, EncryptionKeyPair } from "../types";
2
+ /**
3
+ * Public info for a user of the platform
4
+ */
5
+ export interface PublicUserId {
6
+ /**
7
+ * The username of the user (format: "CN=<username>/O=<tenantId>")
8
+ */
9
+ username: string;
10
+ /**
11
+ * Signature by the administration key proving that an admin has granted this user
12
+ * access to the tenant. This signature covers the username and other user identification.
13
+ */
14
+ administrationSignature: string;
15
+ /**
16
+ * The public key for signing (Ed25519, PEM format)
17
+ * Used ONLY for signing document changes, not for encryption.
18
+ */
19
+ userSigningPublicKey: string;
20
+ /**
21
+ * The public key for encryption (RSA-OAEP, PEM format)
22
+ * Used ONLY for encrypting/decrypting the named symmetric keys map stored on disk, not for signing.
23
+ */
24
+ userEncryptionPublicKey: string;
25
+ }
26
+ /**
27
+ * Private info for a user of the platform
28
+ * This is used to sign and encrypt operations for the user and not publicly shared.
29
+ */
30
+ export interface PrivateUserId {
31
+ /**
32
+ * The username of the user (format: "CN=<username>/O=<tenantId>")
33
+ */
34
+ username: string;
35
+ /**
36
+ * Signature by the administration key proving that an admin has granted this user
37
+ * access to the tenant. This signature covers the username and other user identification.
38
+ */
39
+ administrationSignature: string;
40
+ /**
41
+ * The signing key pair (Ed25519).
42
+ * Contains both public and encrypted private key.
43
+ * Used ONLY for signing document changes, not for encryption.
44
+ */
45
+ userSigningKeyPair: SigningKeyPair;
46
+ /**
47
+ * The encryption key pair (RSA-OAEP).
48
+ * Contains both public and encrypted private key.
49
+ * Used ONLY for encrypting/decrypting the named symmetric keys map stored on disk, not for signing.
50
+ */
51
+ userEncryptionKeyPair: EncryptionKeyPair;
52
+ }
53
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/core/userid/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAE7D;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B;;OAEG;IACH,QAAQ,EAAE,MAAM,CAAC;IAEjB;;;OAGG;IACH,uBAAuB,EAAE,MAAM,CAAC;IAEhC;;;OAGG;IACH,oBAAoB,EAAE,MAAM,CAAC;IAE7B;;;OAGG;IACH,uBAAuB,EAAE,MAAM,CAAC;CACjC;AAED;;;GAGG;AACH,MAAM,WAAW,aAAa;IAC5B;;OAEG;IACH,QAAQ,EAAE,MAAM,CAAC;IAEjB;;;OAGG;IACH,uBAAuB,EAAE,MAAM,CAAC;IAEhC;;;;OAIG;IACH,kBAAkB,EAAE,cAAc,CAAC;IAEnC;;;;OAIG;IACH,qBAAqB,EAAE,iBAAiB,CAAC;CAC1C"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/core/userid/index.ts"],"names":[],"mappings":""}
@@ -0,0 +1,109 @@
1
+ /**
2
+ * ID Generation Utilities for ContentAddressedStore entries.
3
+ *
4
+ * Provides structured ID formats that enable:
5
+ * - Guaranteed uniqueness across documents
6
+ * - Efficient prefix-based queries
7
+ * - Debugging visibility into entry relationships
8
+ * - Blockchain-like integrity for document entries
9
+ */
10
+ /**
11
+ * Generate a document entry ID with blockchain-like chaining.
12
+ * Format: <docId>_d_<depsFingerprint>_<automergeHash>
13
+ *
14
+ * The depsFingerprint is the first 8 hex characters of SHA256(sorted deps),
15
+ * or "0" if there are no dependencies.
16
+ *
17
+ * @param docId The document ID (UUID7 format)
18
+ * @param automergeHash The Automerge change hash
19
+ * @param dependencyAutomergeHashes The Automerge hashes of dependencies
20
+ * @param subtle The SubtleCrypto instance for hashing
21
+ * @returns The generated entry ID
22
+ */
23
+ export declare function generateDocEntryId(docId: string, automergeHash: string, dependencyAutomergeHashes: string[], subtle: SubtleCrypto): Promise<string>;
24
+ /**
25
+ * Generate a dependency fingerprint from a list of Automerge hashes.
26
+ * This is the first 8 hex characters of SHA256(sorted deps), or "0" if empty.
27
+ *
28
+ * @param dependencyAutomergeHashes The Automerge hashes of dependencies
29
+ * @param subtle The SubtleCrypto instance for hashing
30
+ * @returns The 8-character fingerprint
31
+ */
32
+ export declare function generateDepsFingerprint(dependencyAutomergeHashes: string[], subtle: SubtleCrypto): Promise<string>;
33
+ /**
34
+ * Generate an attachment chunk ID.
35
+ * Format: <docId>_a_<fileUuid7>_<base62ChunkUuid7>
36
+ *
37
+ * @param docId The document ID this attachment belongs to
38
+ * @param fileUuid7 The UUID7 for the whole file (same for all chunks)
39
+ * @param chunkUuid7 Optional UUID7 for this chunk. If not provided, generates new one.
40
+ * @returns The generated chunk ID
41
+ */
42
+ export declare function generateAttachmentChunkId(docId: string, fileUuid7: string, chunkUuid7?: string): string;
43
+ /**
44
+ * Generate a new file UUID7.
45
+ * This should be called once per file and reused for all chunks of that file.
46
+ *
47
+ * @returns A new UUID7 string
48
+ */
49
+ export declare function generateFileUuid7(): string;
50
+ /**
51
+ * Generate a new chunk UUID7.
52
+ * This should be called for each chunk within a file.
53
+ *
54
+ * @returns A new UUID7 string
55
+ */
56
+ export declare function generateChunkUuid7(): string;
57
+ /**
58
+ * Parse a document entry ID to extract its components.
59
+ *
60
+ * @param id The entry ID to parse
61
+ * @returns The parsed components, or null if the ID doesn't match the expected format
62
+ */
63
+ export declare function parseDocEntryId(id: string): {
64
+ docId: string;
65
+ depsFingerprint: string;
66
+ automergeHash: string;
67
+ } | null;
68
+ /**
69
+ * Parse an attachment chunk ID to extract its components.
70
+ *
71
+ * @param id The chunk ID to parse
72
+ * @returns The parsed components, or null if the ID doesn't match the expected format
73
+ */
74
+ export declare function parseAttachmentChunkId(id: string): {
75
+ docId: string;
76
+ fileUuid7: string;
77
+ base62ChunkId: string;
78
+ } | null;
79
+ /**
80
+ * Check if an ID is a document entry ID (contains "_d_").
81
+ *
82
+ * @param id The ID to check
83
+ * @returns True if this is a document entry ID
84
+ */
85
+ export declare function isDocEntryId(id: string): boolean;
86
+ /**
87
+ * Check if an ID is an attachment chunk ID (contains "_a_").
88
+ *
89
+ * @param id The ID to check
90
+ * @returns True if this is an attachment chunk ID
91
+ */
92
+ export declare function isAttachmentChunkId(id: string): boolean;
93
+ /**
94
+ * Extract the docId from any entry ID (document or attachment).
95
+ *
96
+ * @param id The entry ID
97
+ * @returns The docId portion, or null if the ID format is unrecognized
98
+ */
99
+ export declare function extractDocIdFromEntryId(id: string): string | null;
100
+ /**
101
+ * Compute the SHA-256 hash of data and return it as a hex string.
102
+ * Used for computing contentHash of encrypted data.
103
+ *
104
+ * @param data The data to hash
105
+ * @param subtle The SubtleCrypto instance
106
+ * @returns The hex-encoded SHA-256 hash
107
+ */
108
+ export declare function computeContentHash(data: Uint8Array, subtle: SubtleCrypto): Promise<string>;
109
+ //# sourceMappingURL=idGeneration.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"idGeneration.d.ts","sourceRoot":"","sources":["../../../src/core/utils/idGeneration.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAKH;;;;;;;;;;;;GAYG;AACH,wBAAsB,kBAAkB,CACtC,KAAK,EAAE,MAAM,EACb,aAAa,EAAE,MAAM,EACrB,yBAAyB,EAAE,MAAM,EAAE,EACnC,MAAM,EAAE,YAAY,GACnB,OAAO,CAAC,MAAM,CAAC,CAGjB;AAED;;;;;;;GAOG;AACH,wBAAsB,uBAAuB,CAC3C,yBAAyB,EAAE,MAAM,EAAE,EACnC,MAAM,EAAE,YAAY,GACnB,OAAO,CAAC,MAAM,CAAC,CAajB;AAED;;;;;;;;GAQG;AACH,wBAAgB,yBAAyB,CACvC,KAAK,EAAE,MAAM,EACb,SAAS,EAAE,MAAM,EACjB,UAAU,CAAC,EAAE,MAAM,GAClB,MAAM,CAKR;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,IAAI,MAAM,CAE1C;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,IAAI,MAAM,CAE3C;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,EAAE,EAAE,MAAM,GAAG;IAC3C,KAAK,EAAE,MAAM,CAAC;IACd,eAAe,EAAE,MAAM,CAAC;IACxB,aAAa,EAAE,MAAM,CAAC;CACvB,GAAG,IAAI,CAUP;AAED;;;;;GAKG;AACH,wBAAgB,sBAAsB,CAAC,EAAE,EAAE,MAAM,GAAG;IAClD,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;CACvB,GAAG,IAAI,CASP;AAED;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAEhD;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAEvD;AAED;;;;;GAKG;AACH,wBAAgB,uBAAuB,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CASjE;AAED;;;;;;;GAOG;AACH,wBAAsB,kBAAkB,CACtC,IAAI,EAAE,UAAU,EAChB,MAAM,EAAE,YAAY,GACnB,OAAO,CAAC,MAAM,CAAC,CAOjB"}
@@ -0,0 +1,182 @@
1
+ "use strict";
2
+ /**
3
+ * ID Generation Utilities for ContentAddressedStore entries.
4
+ *
5
+ * Provides structured ID formats that enable:
6
+ * - Guaranteed uniqueness across documents
7
+ * - Efficient prefix-based queries
8
+ * - Debugging visibility into entry relationships
9
+ * - Blockchain-like integrity for document entries
10
+ */
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.generateDocEntryId = generateDocEntryId;
13
+ exports.generateDepsFingerprint = generateDepsFingerprint;
14
+ exports.generateAttachmentChunkId = generateAttachmentChunkId;
15
+ exports.generateFileUuid7 = generateFileUuid7;
16
+ exports.generateChunkUuid7 = generateChunkUuid7;
17
+ exports.parseDocEntryId = parseDocEntryId;
18
+ exports.parseAttachmentChunkId = parseAttachmentChunkId;
19
+ exports.isDocEntryId = isDocEntryId;
20
+ exports.isAttachmentChunkId = isAttachmentChunkId;
21
+ exports.extractDocIdFromEntryId = extractDocIdFromEntryId;
22
+ exports.computeContentHash = computeContentHash;
23
+ const uuid_base62_1 = require("@digitalmaas/uuid-base62");
24
+ const uuid_1 = require("uuid");
25
+ /**
26
+ * Generate a document entry ID with blockchain-like chaining.
27
+ * Format: <docId>_d_<depsFingerprint>_<automergeHash>
28
+ *
29
+ * The depsFingerprint is the first 8 hex characters of SHA256(sorted deps),
30
+ * or "0" if there are no dependencies.
31
+ *
32
+ * @param docId The document ID (UUID7 format)
33
+ * @param automergeHash The Automerge change hash
34
+ * @param dependencyAutomergeHashes The Automerge hashes of dependencies
35
+ * @param subtle The SubtleCrypto instance for hashing
36
+ * @returns The generated entry ID
37
+ */
38
+ async function generateDocEntryId(docId, automergeHash, dependencyAutomergeHashes, subtle) {
39
+ const depsFingerprint = await generateDepsFingerprint(dependencyAutomergeHashes, subtle);
40
+ return `${docId}_d_${depsFingerprint}_${automergeHash}`;
41
+ }
42
+ /**
43
+ * Generate a dependency fingerprint from a list of Automerge hashes.
44
+ * This is the first 8 hex characters of SHA256(sorted deps), or "0" if empty.
45
+ *
46
+ * @param dependencyAutomergeHashes The Automerge hashes of dependencies
47
+ * @param subtle The SubtleCrypto instance for hashing
48
+ * @returns The 8-character fingerprint
49
+ */
50
+ async function generateDepsFingerprint(dependencyAutomergeHashes, subtle) {
51
+ if (dependencyAutomergeHashes.length === 0) {
52
+ return "0";
53
+ }
54
+ // Sort deps for deterministic fingerprint
55
+ const sortedDeps = [...dependencyAutomergeHashes].sort();
56
+ const depsString = sortedDeps.join(",");
57
+ const hashBuffer = await subtle.digest("SHA-256", new TextEncoder().encode(depsString));
58
+ return Array.from(new Uint8Array(hashBuffer))
59
+ .slice(0, 4) // First 4 bytes = 8 hex chars
60
+ .map(b => b.toString(16).padStart(2, '0'))
61
+ .join('');
62
+ }
63
+ /**
64
+ * Generate an attachment chunk ID.
65
+ * Format: <docId>_a_<fileUuid7>_<base62ChunkUuid7>
66
+ *
67
+ * @param docId The document ID this attachment belongs to
68
+ * @param fileUuid7 The UUID7 for the whole file (same for all chunks)
69
+ * @param chunkUuid7 Optional UUID7 for this chunk. If not provided, generates new one.
70
+ * @returns The generated chunk ID
71
+ */
72
+ function generateAttachmentChunkId(docId, fileUuid7, chunkUuid7) {
73
+ const chunkId = chunkUuid7 || (0, uuid_1.v7)();
74
+ // base62Encode expects UUID with dashes
75
+ const base62Chunk = (0, uuid_base62_1.encode)(chunkId);
76
+ return `${docId}_a_${fileUuid7}_${base62Chunk}`;
77
+ }
78
+ /**
79
+ * Generate a new file UUID7.
80
+ * This should be called once per file and reused for all chunks of that file.
81
+ *
82
+ * @returns A new UUID7 string
83
+ */
84
+ function generateFileUuid7() {
85
+ return (0, uuid_1.v7)();
86
+ }
87
+ /**
88
+ * Generate a new chunk UUID7.
89
+ * This should be called for each chunk within a file.
90
+ *
91
+ * @returns A new UUID7 string
92
+ */
93
+ function generateChunkUuid7() {
94
+ return (0, uuid_1.v7)();
95
+ }
96
+ /**
97
+ * Parse a document entry ID to extract its components.
98
+ *
99
+ * @param id The entry ID to parse
100
+ * @returns The parsed components, or null if the ID doesn't match the expected format
101
+ */
102
+ function parseDocEntryId(id) {
103
+ // Match: <docId>_d_<depsFingerprint>_<automergeHash>
104
+ // Note: docId itself may contain underscores (UUID7 doesn't, but be safe)
105
+ const match = id.match(/^(.+)_d_([0-9a-f]+|0)_(.+)$/);
106
+ if (!match)
107
+ return null;
108
+ return {
109
+ docId: match[1],
110
+ depsFingerprint: match[2],
111
+ automergeHash: match[3],
112
+ };
113
+ }
114
+ /**
115
+ * Parse an attachment chunk ID to extract its components.
116
+ *
117
+ * @param id The chunk ID to parse
118
+ * @returns The parsed components, or null if the ID doesn't match the expected format
119
+ */
120
+ function parseAttachmentChunkId(id) {
121
+ // Match: <docId>_a_<fileUuid7>_<base62ChunkId>
122
+ const match = id.match(/^(.+)_a_([^_]+)_(.+)$/);
123
+ if (!match)
124
+ return null;
125
+ return {
126
+ docId: match[1],
127
+ fileUuid7: match[2],
128
+ base62ChunkId: match[3],
129
+ };
130
+ }
131
+ /**
132
+ * Check if an ID is a document entry ID (contains "_d_").
133
+ *
134
+ * @param id The ID to check
135
+ * @returns True if this is a document entry ID
136
+ */
137
+ function isDocEntryId(id) {
138
+ return id.includes('_d_');
139
+ }
140
+ /**
141
+ * Check if an ID is an attachment chunk ID (contains "_a_").
142
+ *
143
+ * @param id The ID to check
144
+ * @returns True if this is an attachment chunk ID
145
+ */
146
+ function isAttachmentChunkId(id) {
147
+ return id.includes('_a_');
148
+ }
149
+ /**
150
+ * Extract the docId from any entry ID (document or attachment).
151
+ *
152
+ * @param id The entry ID
153
+ * @returns The docId portion, or null if the ID format is unrecognized
154
+ */
155
+ function extractDocIdFromEntryId(id) {
156
+ if (isDocEntryId(id)) {
157
+ const parsed = parseDocEntryId(id);
158
+ return parsed?.docId || null;
159
+ }
160
+ else if (isAttachmentChunkId(id)) {
161
+ const parsed = parseAttachmentChunkId(id);
162
+ return parsed?.docId || null;
163
+ }
164
+ return null;
165
+ }
166
+ /**
167
+ * Compute the SHA-256 hash of data and return it as a hex string.
168
+ * Used for computing contentHash of encrypted data.
169
+ *
170
+ * @param data The data to hash
171
+ * @param subtle The SubtleCrypto instance
172
+ * @returns The hex-encoded SHA-256 hash
173
+ */
174
+ async function computeContentHash(data, subtle) {
175
+ // Use data.buffer with proper offset/length to handle views correctly
176
+ const buffer = data.buffer.slice(data.byteOffset, data.byteOffset + data.byteLength);
177
+ const hashBuffer = await subtle.digest("SHA-256", buffer);
178
+ return Array.from(new Uint8Array(hashBuffer))
179
+ .map(b => b.toString(16).padStart(2, '0'))
180
+ .join('');
181
+ }
182
+ //# sourceMappingURL=idGeneration.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"idGeneration.js","sourceRoot":"","sources":["../../../src/core/utils/idGeneration.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Core utility functions for MindooDB.
3
+ */
4
+ export { generateDocEntryId, generateDepsFingerprint, generateAttachmentChunkId, generateFileUuid7, generateChunkUuid7, parseDocEntryId, parseAttachmentChunkId, isDocEntryId, isAttachmentChunkId, extractDocIdFromEntryId, computeContentHash, } from './idGeneration';
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/core/utils/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EACL,kBAAkB,EAClB,uBAAuB,EACvB,yBAAyB,EACzB,iBAAiB,EACjB,kBAAkB,EAClB,eAAe,EACf,sBAAsB,EACtB,YAAY,EACZ,mBAAmB,EACnB,uBAAuB,EACvB,kBAAkB,GACnB,MAAM,gBAAgB,CAAC"}
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ /**
3
+ * Core utility functions for MindooDB.
4
+ */
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.computeContentHash = exports.extractDocIdFromEntryId = exports.isAttachmentChunkId = exports.isDocEntryId = exports.parseAttachmentChunkId = exports.parseDocEntryId = exports.generateChunkUuid7 = exports.generateFileUuid7 = exports.generateAttachmentChunkId = exports.generateDepsFingerprint = exports.generateDocEntryId = void 0;
7
+ var idGeneration_1 = require("./idGeneration");
8
+ Object.defineProperty(exports, "generateDocEntryId", { enumerable: true, get: function () { return idGeneration_1.generateDocEntryId; } });
9
+ Object.defineProperty(exports, "generateDepsFingerprint", { enumerable: true, get: function () { return idGeneration_1.generateDepsFingerprint; } });
10
+ Object.defineProperty(exports, "generateAttachmentChunkId", { enumerable: true, get: function () { return idGeneration_1.generateAttachmentChunkId; } });
11
+ Object.defineProperty(exports, "generateFileUuid7", { enumerable: true, get: function () { return idGeneration_1.generateFileUuid7; } });
12
+ Object.defineProperty(exports, "generateChunkUuid7", { enumerable: true, get: function () { return idGeneration_1.generateChunkUuid7; } });
13
+ Object.defineProperty(exports, "parseDocEntryId", { enumerable: true, get: function () { return idGeneration_1.parseDocEntryId; } });
14
+ Object.defineProperty(exports, "parseAttachmentChunkId", { enumerable: true, get: function () { return idGeneration_1.parseAttachmentChunkId; } });
15
+ Object.defineProperty(exports, "isDocEntryId", { enumerable: true, get: function () { return idGeneration_1.isDocEntryId; } });
16
+ Object.defineProperty(exports, "isAttachmentChunkId", { enumerable: true, get: function () { return idGeneration_1.isAttachmentChunkId; } });
17
+ Object.defineProperty(exports, "extractDocIdFromEntryId", { enumerable: true, get: function () { return idGeneration_1.extractDocIdFromEntryId; } });
18
+ Object.defineProperty(exports, "computeContentHash", { enumerable: true, get: function () { return idGeneration_1.computeContentHash; } });
19
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/core/utils/index.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAEH,+CAYwB;AAXtB,kHAAA,kBAAkB,OAAA;AAClB,uHAAA,uBAAuB,OAAA;AACvB,yHAAA,yBAAyB,OAAA;AACzB,iHAAA,iBAAiB,OAAA;AACjB,kHAAA,kBAAkB,OAAA;AAClB,+GAAA,eAAe,OAAA;AACf,sHAAA,sBAAsB,OAAA;AACtB,4GAAA,YAAY,OAAA;AACZ,mHAAA,mBAAmB,OAAA;AACnB,uHAAA,uBAAuB,OAAA;AACvB,kHAAA,kBAAkB,OAAA"}
@@ -0,0 +1,7 @@
1
+ export * from "./core";
2
+ export { BaseMindooDB } from "./core/BaseMindooDB";
3
+ export { BaseMindooTenant } from "./core/BaseMindooTenant";
4
+ export { BaseMindooTenantFactory } from "./core/BaseMindooTenantFactory";
5
+ export { NodeCryptoAdapter, createCryptoAdapter } from "./node/crypto/NodeCryptoAdapter";
6
+ export { BrowserCryptoAdapter } from "./browser/crypto/BrowserCryptoAdapter";
7
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAMA,cAAc,QAAQ,CAAC;AAIvB,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,uBAAuB,EAAE,MAAM,gCAAgC,CAAC;AAIzE,OAAO,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;AAEzF,OAAO,EAAE,oBAAoB,EAAE,MAAM,uCAAuC,CAAC"}
package/dist/index.js ADDED
@@ -0,0 +1,40 @@
1
+ "use strict";
2
+ // Main entry point - auto-detects platform and exports appropriate implementation
3
+ // For explicit platform imports, use:
4
+ // import { ... } from 'mindoodb/browser' (browser-specific)
5
+ // import { ... } from 'mindoodb/node' (Node.js-specific)
6
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
7
+ if (k2 === undefined) k2 = k;
8
+ var desc = Object.getOwnPropertyDescriptor(m, k);
9
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
10
+ desc = { enumerable: true, get: function() { return m[k]; } };
11
+ }
12
+ Object.defineProperty(o, k2, desc);
13
+ }) : (function(o, m, k, k2) {
14
+ if (k2 === undefined) k2 = k;
15
+ o[k2] = m[k];
16
+ }));
17
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
18
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
19
+ };
20
+ Object.defineProperty(exports, "__esModule", { value: true });
21
+ exports.BrowserCryptoAdapter = exports.createCryptoAdapter = exports.NodeCryptoAdapter = exports.BaseMindooTenantFactory = exports.BaseMindooTenant = exports.BaseMindooDB = void 0;
22
+ // Re-export everything from core
23
+ __exportStar(require("./core"), exports);
24
+ // Re-export the Base* classes from their original locations
25
+ // (these will be moved to core in a future refactor)
26
+ var BaseMindooDB_1 = require("./core/BaseMindooDB");
27
+ Object.defineProperty(exports, "BaseMindooDB", { enumerable: true, get: function () { return BaseMindooDB_1.BaseMindooDB; } });
28
+ var BaseMindooTenant_1 = require("./core/BaseMindooTenant");
29
+ Object.defineProperty(exports, "BaseMindooTenant", { enumerable: true, get: function () { return BaseMindooTenant_1.BaseMindooTenant; } });
30
+ var BaseMindooTenantFactory_1 = require("./core/BaseMindooTenantFactory");
31
+ Object.defineProperty(exports, "BaseMindooTenantFactory", { enumerable: true, get: function () { return BaseMindooTenantFactory_1.BaseMindooTenantFactory; } });
32
+ // Re-export platform-specific adapters with auto-detection
33
+ // For Node.js environments
34
+ var NodeCryptoAdapter_1 = require("./node/crypto/NodeCryptoAdapter");
35
+ Object.defineProperty(exports, "NodeCryptoAdapter", { enumerable: true, get: function () { return NodeCryptoAdapter_1.NodeCryptoAdapter; } });
36
+ Object.defineProperty(exports, "createCryptoAdapter", { enumerable: true, get: function () { return NodeCryptoAdapter_1.createCryptoAdapter; } });
37
+ // For browser environments, users should import from 'mindoodb/browser'
38
+ var BrowserCryptoAdapter_1 = require("./browser/crypto/BrowserCryptoAdapter");
39
+ Object.defineProperty(exports, "BrowserCryptoAdapter", { enumerable: true, get: function () { return BrowserCryptoAdapter_1.BrowserCryptoAdapter; } });
40
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA,kFAAkF;AAClF,sCAAsC;AACtC,8DAA8D;AAC9D,2DAA2D;;;;;;;;;;;;;;;;;AAE3D,iCAAiC;AACjC,yCAAuB;AAEvB,4DAA4D;AAC5D,qDAAqD;AACrD,oDAAmD;AAA1C,4GAAA,YAAY,OAAA;AACrB,4DAA2D;AAAlD,oHAAA,gBAAgB,OAAA;AACzB,0EAAyE;AAAhE,kIAAA,uBAAuB,OAAA;AAEhC,2DAA2D;AAC3D,2BAA2B;AAC3B,qEAAyF;AAAhF,sHAAA,iBAAiB,OAAA;AAAE,wHAAA,mBAAmB,OAAA;AAC/C,wEAAwE;AACxE,8EAA6E;AAApE,4HAAA,oBAAoB,OAAA"}
@@ -0,0 +1,16 @@
1
+ import type { CryptoAdapter } from "../../core/crypto/CryptoAdapter";
2
+ /**
3
+ * Node.js implementation of CryptoAdapter.
4
+ * Uses crypto.webcrypto which is available in Node.js 15+.
5
+ */
6
+ export declare class NodeCryptoAdapter implements CryptoAdapter {
7
+ private crypto;
8
+ constructor();
9
+ getSubtle(): SubtleCrypto;
10
+ getRandomValues(array: Uint8Array): Uint8Array;
11
+ }
12
+ /**
13
+ * Factory function to create the NodeCryptoAdapter.
14
+ */
15
+ export declare function createCryptoAdapter(): CryptoAdapter;
16
+ //# sourceMappingURL=NodeCryptoAdapter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NodeCryptoAdapter.d.ts","sourceRoot":"","sources":["../../../src/node/crypto/NodeCryptoAdapter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAErE;;;GAGG;AACH,qBAAa,iBAAkB,YAAW,aAAa;IACrD,OAAO,CAAC,MAAM,CAAS;;IAwBvB,SAAS,IAAI,YAAY;IAOzB,eAAe,CAAC,KAAK,EAAE,UAAU,GAAG,UAAU;CAY/C;AAED;;GAEG;AACH,wBAAgB,mBAAmB,IAAI,aAAa,CAEnD"}
@@ -0,0 +1,53 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.NodeCryptoAdapter = void 0;
4
+ exports.createCryptoAdapter = createCryptoAdapter;
5
+ /**
6
+ * Node.js implementation of CryptoAdapter.
7
+ * Uses crypto.webcrypto which is available in Node.js 15+.
8
+ */
9
+ class NodeCryptoAdapter {
10
+ constructor() {
11
+ // eslint-disable-next-line @typescript-eslint/no-require-imports
12
+ const nodeCrypto = require("crypto");
13
+ if (!nodeCrypto) {
14
+ throw new Error("Failed to load crypto module");
15
+ }
16
+ // In Node.js 15+, crypto.webcrypto provides the Web Crypto API
17
+ // In Node.js 20+, globalThis.crypto is also available, but webcrypto is more reliable
18
+ if (!nodeCrypto.webcrypto) {
19
+ throw new Error("Web Crypto API not available. Node.js 15+ required.");
20
+ }
21
+ // Validate that webcrypto has the required methods
22
+ if (typeof nodeCrypto.webcrypto.getRandomValues !== "function" || !nodeCrypto.webcrypto.subtle) {
23
+ throw new Error("Web Crypto API incomplete. Missing getRandomValues or subtle.");
24
+ }
25
+ this.crypto = nodeCrypto.webcrypto;
26
+ }
27
+ getSubtle() {
28
+ if (!this.crypto || !this.crypto.subtle) {
29
+ throw new Error("Web Crypto API subtle not available");
30
+ }
31
+ return this.crypto.subtle;
32
+ }
33
+ getRandomValues(array) {
34
+ if (!this) {
35
+ throw new Error("getRandomValues called without 'this' context. Method must be bound.");
36
+ }
37
+ if (!this.crypto) {
38
+ throw new Error("Crypto instance not initialized. This should not happen.");
39
+ }
40
+ if (!this.crypto.getRandomValues) {
41
+ throw new Error("getRandomValues not available in Node.js environment");
42
+ }
43
+ return this.crypto.getRandomValues(array);
44
+ }
45
+ }
46
+ exports.NodeCryptoAdapter = NodeCryptoAdapter;
47
+ /**
48
+ * Factory function to create the NodeCryptoAdapter.
49
+ */
50
+ function createCryptoAdapter() {
51
+ return new NodeCryptoAdapter();
52
+ }
53
+ //# sourceMappingURL=NodeCryptoAdapter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NodeCryptoAdapter.js","sourceRoot":"","sources":["../../../src/node/crypto/NodeCryptoAdapter.ts"],"names":[],"mappings":";;;AAuDA,kDAEC;AAvDD;;;GAGG;AACH,MAAa,iBAAiB;IAG5B;QACE,iEAAiE;QACjE,MAAM,UAAU,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;QAErC,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;QAClD,CAAC;QAED,+DAA+D;QAC/D,sFAAsF;QACtF,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE,CAAC;YAC1B,MAAM,IAAI,KAAK,CAAC,qDAAqD,CAAC,CAAC;QACzE,CAAC;QAED,mDAAmD;QACnD,IAAI,OAAO,UAAU,CAAC,SAAS,CAAC,eAAe,KAAK,UAAU,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC;YAC/F,MAAM,IAAI,KAAK,CAAC,+DAA+D,CAAC,CAAC;QACnF,CAAC;QAED,IAAI,CAAC,MAAM,GAAG,UAAU,CAAC,SAAS,CAAC;IACrC,CAAC;IAED,SAAS;QACP,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;YACxC,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC;QACzD,CAAC;QACD,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;IAC5B,CAAC;IAED,eAAe,CAAC,KAAiB;QAC/B,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,MAAM,IAAI,KAAK,CAAC,sEAAsE,CAAC,CAAC;QAC1F,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;YACjB,MAAM,IAAI,KAAK,CAAC,0DAA0D,CAAC,CAAC;QAC9E,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,eAAe,EAAE,CAAC;YACjC,MAAM,IAAI,KAAK,CAAC,sDAAsD,CAAC,CAAC;QAC1E,CAAC;QACD,OAAO,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;IAC5C,CAAC;CACF;AA5CD,8CA4CC;AAED;;GAEG;AACH,SAAgB,mBAAmB;IACjC,OAAO,IAAI,iBAAiB,EAAE,CAAC;AACjC,CAAC"}
@@ -0,0 +1,3 @@
1
+ export * from "../core";
2
+ export { NodeCryptoAdapter, createCryptoAdapter } from "./crypto/NodeCryptoAdapter";
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/node/index.ts"],"names":[],"mappings":"AAIA,cAAc,SAAS,CAAC;AAGxB,OAAO,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC"}
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+ // Node.js-specific exports
3
+ // Re-exports everything from core plus Node.js-specific implementations
4
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
5
+ if (k2 === undefined) k2 = k;
6
+ var desc = Object.getOwnPropertyDescriptor(m, k);
7
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
8
+ desc = { enumerable: true, get: function() { return m[k]; } };
9
+ }
10
+ Object.defineProperty(o, k2, desc);
11
+ }) : (function(o, m, k, k2) {
12
+ if (k2 === undefined) k2 = k;
13
+ o[k2] = m[k];
14
+ }));
15
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
16
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
17
+ };
18
+ Object.defineProperty(exports, "__esModule", { value: true });
19
+ exports.createCryptoAdapter = exports.NodeCryptoAdapter = void 0;
20
+ // Re-export all core exports
21
+ __exportStar(require("../core"), exports);
22
+ // Node.js-specific crypto adapter
23
+ var NodeCryptoAdapter_1 = require("./crypto/NodeCryptoAdapter");
24
+ Object.defineProperty(exports, "NodeCryptoAdapter", { enumerable: true, get: function () { return NodeCryptoAdapter_1.NodeCryptoAdapter; } });
25
+ Object.defineProperty(exports, "createCryptoAdapter", { enumerable: true, get: function () { return NodeCryptoAdapter_1.createCryptoAdapter; } });
26
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/node/index.ts"],"names":[],"mappings":";AAAA,2BAA2B;AAC3B,wEAAwE;;;;;;;;;;;;;;;;;AAExE,6BAA6B;AAC7B,0CAAwB;AAExB,kCAAkC;AAClC,gEAAoF;AAA3E,sHAAA,iBAAiB,OAAA;AAAE,wHAAA,mBAAmB,OAAA"}