@adaas/a-frame 0.0.21 → 0.0.23

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 (359) hide show
  1. package/.conf/tsconfig.browser.json +13 -0
  2. package/.conf/tsconfig.node.json +14 -0
  3. package/.env.example +12 -0
  4. package/dist/browser/A-FrameBrowserStorageBlobs.context-OEQr85oq.d.mts +40 -0
  5. package/dist/browser/A-FrameBundle.types-DaaUvViw.d.mts +33 -0
  6. package/dist/browser/A-FrameChannel.types-DWOEUs28.d.mts +142 -0
  7. package/dist/browser/A-FrameDefinition.entity-DWGN_Ujr.d.mts +329 -0
  8. package/dist/browser/A-FrameDynamicStructure.entity-DaBgSRCR.d.mts +188 -0
  9. package/dist/browser/A-FrameLogger.component.env-browser-BIPAP4oQ.d.mts +112 -0
  10. package/dist/browser/A-FrameNamespace.entity-rCm1AavP.d.mts +125 -0
  11. package/dist/browser/bundle.d.mts +8 -0
  12. package/dist/browser/bundle.mjs +2 -0
  13. package/dist/browser/bundle.mjs.map +1 -0
  14. package/dist/browser/channel.d.mts +165 -0
  15. package/dist/browser/channel.mjs +3 -0
  16. package/dist/browser/channel.mjs.map +1 -0
  17. package/dist/browser/chunk-5TTVFB3G.mjs +2 -0
  18. package/dist/browser/chunk-5TTVFB3G.mjs.map +1 -0
  19. package/dist/browser/chunk-AYN7KUQT.mjs +3 -0
  20. package/dist/browser/chunk-AYN7KUQT.mjs.map +1 -0
  21. package/dist/browser/chunk-DMGQW3AO.mjs +2 -0
  22. package/dist/browser/chunk-DMGQW3AO.mjs.map +1 -0
  23. package/dist/browser/chunk-G66IL2DR.mjs +2 -0
  24. package/dist/browser/chunk-G66IL2DR.mjs.map +1 -0
  25. package/dist/browser/chunk-H6OZP4ZV.mjs +2 -0
  26. package/dist/browser/chunk-H6OZP4ZV.mjs.map +1 -0
  27. package/dist/browser/chunk-INS7RO3B.mjs +2 -0
  28. package/dist/browser/chunk-INS7RO3B.mjs.map +1 -0
  29. package/dist/browser/chunk-K4MZY4ME.mjs +2 -0
  30. package/dist/browser/chunk-K4MZY4ME.mjs.map +1 -0
  31. package/dist/browser/chunk-OFKV5GNB.mjs +3 -0
  32. package/dist/browser/chunk-OFKV5GNB.mjs.map +1 -0
  33. package/dist/browser/chunk-QATIN7CO.mjs +3 -0
  34. package/dist/browser/chunk-QATIN7CO.mjs.map +1 -0
  35. package/dist/browser/chunk-QBBQ37P3.mjs +2 -0
  36. package/dist/browser/chunk-QBBQ37P3.mjs.map +1 -0
  37. package/dist/browser/chunk-VDVJWU5T.mjs +2 -0
  38. package/dist/browser/chunk-VDVJWU5T.mjs.map +1 -0
  39. package/dist/browser/chunk-X3C4I6YJ.mjs +2 -0
  40. package/dist/browser/chunk-X3C4I6YJ.mjs.map +1 -0
  41. package/dist/browser/chunk-ZVCTU2DN.mjs +3 -0
  42. package/dist/browser/chunk-ZVCTU2DN.mjs.map +1 -0
  43. package/dist/browser/core.d.mts +97 -0
  44. package/dist/browser/core.mjs +2 -0
  45. package/dist/browser/core.mjs.map +1 -0
  46. package/dist/browser/crypto.d.mts +35 -0
  47. package/dist/browser/crypto.mjs +2 -0
  48. package/dist/browser/crypto.mjs.map +1 -0
  49. package/dist/browser/definition.d.mts +13 -0
  50. package/dist/browser/definition.mjs +2 -0
  51. package/dist/browser/definition.mjs.map +1 -0
  52. package/dist/browser/dynamic-feature.d.mts +10 -0
  53. package/dist/browser/dynamic-feature.mjs +2 -0
  54. package/dist/browser/dynamic-feature.mjs.map +1 -0
  55. package/dist/browser/dynamic-structure.d.mts +12 -0
  56. package/dist/browser/dynamic-structure.mjs +2 -0
  57. package/dist/browser/dynamic-structure.mjs.map +1 -0
  58. package/dist/browser/env.d.mts +2 -0
  59. package/dist/browser/env.mjs +2 -0
  60. package/dist/browser/env.mjs.map +1 -0
  61. package/dist/browser/frame-index.d.mts +95 -0
  62. package/dist/browser/frame-index.mjs +2 -0
  63. package/dist/browser/frame-index.mjs.map +1 -0
  64. package/dist/browser/index.browser-CZlhzfSP.d.mts +22 -0
  65. package/dist/browser/index.d.mts +1 -144
  66. package/dist/browser/index.mjs +1 -1
  67. package/dist/browser/index.mjs.map +1 -1
  68. package/dist/browser/logger.d.mts +41 -0
  69. package/dist/browser/logger.mjs +2 -0
  70. package/dist/browser/logger.mjs.map +1 -0
  71. package/dist/browser/namespace.d.mts +13 -0
  72. package/dist/browser/namespace.mjs +2 -0
  73. package/dist/browser/namespace.mjs.map +1 -0
  74. package/dist/browser/storage.d.mts +194 -0
  75. package/dist/browser/storage.mjs +2 -0
  76. package/dist/browser/storage.mjs.map +1 -0
  77. package/dist/browser/vector.d.mts +15 -0
  78. package/dist/browser/vector.mjs +2 -0
  79. package/dist/browser/vector.mjs.map +1 -0
  80. package/dist/index.cjs +0 -0
  81. package/dist/node/A-FrameChannel.component-BfBcs734.d.ts +62 -0
  82. package/dist/node/A-FrameChannel.component-NNKcFViw.d.mts +62 -0
  83. package/dist/node/A-FrameChannel.types-DQF-IiRq.d.mts +146 -0
  84. package/dist/node/A-FrameChannel.types-DQF-IiRq.d.ts +146 -0
  85. package/dist/node/A-FrameDefinition.entity-CAUOdEvU.d.ts +329 -0
  86. package/dist/node/A-FrameDefinition.entity-DWGN_Ujr.d.mts +329 -0
  87. package/dist/node/A-FrameDynamicStructure.entity-DaBgSRCR.d.mts +188 -0
  88. package/dist/node/A-FrameDynamicStructure.entity-DaBgSRCR.d.ts +188 -0
  89. package/dist/node/A-FrameNamespace.entity-D3fZBGDx.d.ts +125 -0
  90. package/dist/node/A-FrameNamespace.entity-rCm1AavP.d.mts +125 -0
  91. package/dist/node/A-FrameStorage.component-BYjHfHJJ.d.mts +107 -0
  92. package/dist/node/A-FrameStorage.component-CT01fs-t.d.ts +107 -0
  93. package/dist/node/bundle.cjs +101 -0
  94. package/dist/node/bundle.cjs.map +1 -0
  95. package/dist/node/bundle.d.mts +69 -0
  96. package/dist/node/bundle.d.ts +69 -0
  97. package/dist/node/bundle.mjs +76 -0
  98. package/dist/node/bundle.mjs.map +1 -0
  99. package/dist/node/channel.cjs +60 -0
  100. package/dist/node/channel.cjs.map +1 -0
  101. package/dist/node/channel.d.mts +61 -0
  102. package/dist/node/channel.d.ts +61 -0
  103. package/dist/node/channel.mjs +11 -0
  104. package/dist/node/channel.mjs.map +1 -0
  105. package/dist/node/chunk-3LOMGNWA.cjs +8 -0
  106. package/dist/node/chunk-3LOMGNWA.cjs.map +1 -0
  107. package/dist/node/chunk-3ONWH75E.mjs +257 -0
  108. package/dist/node/chunk-3ONWH75E.mjs.map +1 -0
  109. package/dist/node/chunk-3TD2PEDZ.mjs +53 -0
  110. package/dist/node/chunk-3TD2PEDZ.mjs.map +1 -0
  111. package/dist/node/chunk-442DXGOD.mjs +16 -0
  112. package/dist/node/chunk-442DXGOD.mjs.map +1 -0
  113. package/dist/node/chunk-6EFXNUL4.mjs +6 -0
  114. package/dist/node/chunk-6EFXNUL4.mjs.map +1 -0
  115. package/dist/node/chunk-7A6XGT5J.cjs +541 -0
  116. package/dist/node/chunk-7A6XGT5J.cjs.map +1 -0
  117. package/dist/node/chunk-AOQRXZPC.mjs +207 -0
  118. package/dist/node/chunk-AOQRXZPC.mjs.map +1 -0
  119. package/dist/node/chunk-APRYHBEF.mjs +171 -0
  120. package/dist/node/chunk-APRYHBEF.mjs.map +1 -0
  121. package/dist/node/chunk-B7BXP7K4.mjs +253 -0
  122. package/dist/node/chunk-B7BXP7K4.mjs.map +1 -0
  123. package/dist/node/chunk-B7ZDJXD3.cjs +35 -0
  124. package/dist/node/chunk-B7ZDJXD3.cjs.map +1 -0
  125. package/dist/node/chunk-CP6JHUU6.cjs +541 -0
  126. package/dist/node/chunk-CP6JHUU6.cjs.map +1 -0
  127. package/dist/node/chunk-DDCEMKBP.mjs +655 -0
  128. package/dist/node/chunk-DDCEMKBP.mjs.map +1 -0
  129. package/dist/node/chunk-DMY44VUG.mjs +655 -0
  130. package/dist/node/chunk-DMY44VUG.mjs.map +1 -0
  131. package/dist/node/chunk-F4UCOZW5.mjs +33 -0
  132. package/dist/node/chunk-F4UCOZW5.mjs.map +1 -0
  133. package/dist/node/chunk-GBTFMT3K.cjs +256 -0
  134. package/dist/node/chunk-GBTFMT3K.cjs.map +1 -0
  135. package/dist/node/chunk-GNVXVK2B.cjs +8 -0
  136. package/dist/node/chunk-GNVXVK2B.cjs.map +1 -0
  137. package/dist/node/chunk-IIVYTS5M.mjs +239 -0
  138. package/dist/node/chunk-IIVYTS5M.mjs.map +1 -0
  139. package/dist/node/chunk-JQBYDEMW.mjs +33 -0
  140. package/dist/node/chunk-JQBYDEMW.mjs.map +1 -0
  141. package/dist/node/chunk-K4MZY4ME.mjs +3 -0
  142. package/dist/node/chunk-K4MZY4ME.mjs.map +1 -0
  143. package/dist/node/chunk-KK64VLZN.cjs +4 -0
  144. package/dist/node/chunk-KK64VLZN.cjs.map +1 -0
  145. package/dist/node/chunk-KLG6HKFU.cjs +175 -0
  146. package/dist/node/chunk-KLG6HKFU.cjs.map +1 -0
  147. package/dist/node/chunk-LJIZ47HO.cjs +688 -0
  148. package/dist/node/chunk-LJIZ47HO.cjs.map +1 -0
  149. package/dist/node/chunk-NIXKAQVP.cjs +35 -0
  150. package/dist/node/chunk-NIXKAQVP.cjs.map +1 -0
  151. package/dist/node/chunk-OI76LHVT.mjs +21 -0
  152. package/dist/node/chunk-OI76LHVT.mjs.map +1 -0
  153. package/dist/node/chunk-OJGCQNAH.mjs +529 -0
  154. package/dist/node/chunk-OJGCQNAH.mjs.map +1 -0
  155. package/dist/node/chunk-QFHZIG7Y.cjs +25 -0
  156. package/dist/node/chunk-QFHZIG7Y.cjs.map +1 -0
  157. package/dist/node/chunk-QFUZVN4Y.cjs +259 -0
  158. package/dist/node/chunk-QFUZVN4Y.cjs.map +1 -0
  159. package/dist/node/chunk-RRLTGGM7.cjs +209 -0
  160. package/dist/node/chunk-RRLTGGM7.cjs.map +1 -0
  161. package/dist/node/chunk-TO4BPKCY.mjs +6 -0
  162. package/dist/node/chunk-TO4BPKCY.mjs.map +1 -0
  163. package/dist/node/chunk-UKKCN7CQ.cjs +688 -0
  164. package/dist/node/chunk-UKKCN7CQ.cjs.map +1 -0
  165. package/dist/node/chunk-UPA7VN4R.mjs +153 -0
  166. package/dist/node/chunk-UPA7VN4R.mjs.map +1 -0
  167. package/dist/node/chunk-UTJ7CVVB.cjs +248 -0
  168. package/dist/node/chunk-UTJ7CVVB.cjs.map +1 -0
  169. package/dist/node/chunk-YVX4W6SI.cjs +155 -0
  170. package/dist/node/chunk-YVX4W6SI.cjs.map +1 -0
  171. package/dist/node/chunk-YWWGJ6EJ.cjs +55 -0
  172. package/dist/node/chunk-YWWGJ6EJ.cjs.map +1 -0
  173. package/dist/node/chunk-Z4HUCRK2.mjs +529 -0
  174. package/dist/node/chunk-Z4HUCRK2.mjs.map +1 -0
  175. package/dist/node/chunk-ZM2RLVVH.cjs +18 -0
  176. package/dist/node/chunk-ZM2RLVVH.cjs.map +1 -0
  177. package/dist/node/core.cjs +261 -0
  178. package/dist/node/core.cjs.map +1 -0
  179. package/dist/node/core.d.mts +76 -0
  180. package/dist/node/core.d.ts +76 -0
  181. package/dist/node/core.mjs +250 -0
  182. package/dist/node/core.mjs.map +1 -0
  183. package/dist/node/crypto.cjs +13 -0
  184. package/dist/node/crypto.cjs.map +1 -0
  185. package/dist/node/crypto.d.mts +44 -0
  186. package/dist/node/crypto.d.ts +44 -0
  187. package/dist/node/crypto.mjs +4 -0
  188. package/dist/node/crypto.mjs.map +1 -0
  189. package/dist/node/definition.cjs +19 -0
  190. package/dist/node/definition.cjs.map +1 -0
  191. package/dist/node/definition.d.mts +13 -0
  192. package/dist/node/definition.d.ts +13 -0
  193. package/dist/node/definition.mjs +6 -0
  194. package/dist/node/definition.mjs.map +1 -0
  195. package/dist/node/dynamic-feature.cjs +14 -0
  196. package/dist/node/dynamic-feature.cjs.map +1 -0
  197. package/dist/node/dynamic-feature.d.mts +10 -0
  198. package/dist/node/dynamic-feature.d.ts +10 -0
  199. package/dist/node/dynamic-feature.mjs +12 -0
  200. package/dist/node/dynamic-feature.mjs.map +1 -0
  201. package/dist/node/dynamic-structure.cjs +143 -0
  202. package/dist/node/dynamic-structure.cjs.map +1 -0
  203. package/dist/node/dynamic-structure.d.mts +12 -0
  204. package/dist/node/dynamic-structure.d.ts +12 -0
  205. package/dist/node/dynamic-structure.mjs +138 -0
  206. package/dist/node/dynamic-structure.mjs.map +1 -0
  207. package/dist/node/env.cjs +14 -0
  208. package/dist/node/env.cjs.map +1 -0
  209. package/dist/node/env.d.mts +22 -0
  210. package/dist/node/env.d.ts +22 -0
  211. package/dist/node/env.mjs +5 -0
  212. package/dist/node/env.mjs.map +1 -0
  213. package/dist/node/frame-index.cjs +16 -0
  214. package/dist/node/frame-index.cjs.map +1 -0
  215. package/dist/node/frame-index.d.mts +95 -0
  216. package/dist/node/frame-index.d.ts +95 -0
  217. package/dist/node/frame-index.mjs +7 -0
  218. package/dist/node/frame-index.mjs.map +1 -0
  219. package/dist/node/index.cjs +0 -288
  220. package/dist/node/index.cjs.map +1 -1
  221. package/dist/node/index.d.mts +1 -144
  222. package/dist/node/index.d.ts +1 -144
  223. package/dist/node/index.mjs +0 -284
  224. package/dist/node/index.mjs.map +1 -1
  225. package/dist/node/logger.cjs +41 -0
  226. package/dist/node/logger.cjs.map +1 -0
  227. package/dist/node/logger.d.mts +150 -0
  228. package/dist/node/logger.d.ts +150 -0
  229. package/dist/node/logger.mjs +4 -0
  230. package/dist/node/logger.mjs.map +1 -0
  231. package/dist/node/namespace.cjs +24 -0
  232. package/dist/node/namespace.cjs.map +1 -0
  233. package/dist/node/namespace.d.mts +13 -0
  234. package/dist/node/namespace.d.ts +13 -0
  235. package/dist/node/namespace.mjs +7 -0
  236. package/dist/node/namespace.mjs.map +1 -0
  237. package/dist/node/storage.cjs +42 -0
  238. package/dist/node/storage.cjs.map +1 -0
  239. package/dist/node/storage.d.mts +110 -0
  240. package/dist/node/storage.d.ts +110 -0
  241. package/dist/node/storage.mjs +13 -0
  242. package/dist/node/storage.mjs.map +1 -0
  243. package/dist/node/vector.cjs +13 -0
  244. package/dist/node/vector.cjs.map +1 -0
  245. package/dist/node/vector.d.mts +15 -0
  246. package/dist/node/vector.d.ts +15 -0
  247. package/dist/node/vector.mjs +4 -0
  248. package/dist/node/vector.mjs.map +1 -0
  249. package/jest.config.browser.ts +41 -0
  250. package/jest.config.ts +18 -8
  251. package/package.json +125 -13
  252. package/{index.ts → src/concept.ts} +5 -2
  253. package/src/helpers/Hash.helper.ts +14 -0
  254. package/src/index.ts +0 -24
  255. package/src/lib/A-Frame/A-Frame.component.env-browser.ts +124 -0
  256. package/src/lib/A-Frame/A-Frame.component.env-node.ts +106 -0
  257. package/src/lib/A-Frame/A-Frame.component.ts +62 -0
  258. package/src/lib/A-Frame/A-Frame.context.ts +40 -0
  259. package/src/lib/{components/Index.component.ts/Index.error.ts → A-Frame/A-Frame.error.ts} +1 -1
  260. package/src/lib/{components/Index.component.ts/Index.guard.ts → A-Frame/A-Frame.guard.ts} +9 -6
  261. package/src/lib/A-Frame/A-Frame.meta.ts +27 -0
  262. package/src/lib/{components/Index.component.ts/Index.types.ts → A-Frame/A-Frame.types.ts} +52 -17
  263. package/src/lib/A-Frame/decorators/A-FrameDefine.decorator.ts +104 -0
  264. package/src/lib/A-Frame/decorators/A-FrameNamespace.decorator.ts +33 -0
  265. package/src/lib/A-Frame/index.browser.ts +10 -0
  266. package/src/lib/A-Frame/index.ts +10 -0
  267. package/src/lib/A-FrameBundle/A-FrameBundle.builder.env-node.ts +95 -0
  268. package/src/lib/A-FrameBundle/A-FrameBundle.constants.ts +5 -0
  269. package/src/lib/A-FrameBundle/A-FrameBundle.types.ts +31 -0
  270. package/src/lib/A-FrameBundle/index.browser.ts +6 -0
  271. package/src/lib/A-FrameBundle/index.ts +7 -0
  272. package/src/lib/A-FrameCLI/A-FrameCLI.container.ts +333 -0
  273. package/src/lib/A-FrameChannel/A-FrameChannel.component.env-browser.ts +63 -0
  274. package/src/lib/A-FrameChannel/A-FrameChannel.component.env-node.ts +586 -0
  275. package/src/lib/A-FrameChannel/A-FrameChannel.component.ts +273 -0
  276. package/src/lib/A-FrameChannel/A-FrameChannel.constants.ts +39 -0
  277. package/src/lib/A-FrameChannel/A-FrameChannel.error.ts +10 -0
  278. package/src/lib/A-FrameChannel/A-FrameChannel.types.ts +143 -0
  279. package/src/lib/A-FrameChannel/A-FrameChannelEvent.context.ts +28 -0
  280. package/src/lib/A-FrameChannel/A-FrameChannelRequest.context.ts +36 -0
  281. package/src/lib/A-FrameChannel/A-FrameChannelSocket.entity.ts +189 -0
  282. package/src/lib/A-FrameChannel/A-FrameChannelStream.entity.ts +144 -0
  283. package/src/lib/A-FrameChannel/index.browser.ts +3 -0
  284. package/src/lib/A-FrameChannel/index.ts +10 -0
  285. package/src/lib/A-FrameCrypto/A-FrameCrypto.component.env-browser.ts +123 -0
  286. package/src/lib/A-FrameCrypto/A-FrameCrypto.component.env-node.ts +204 -0
  287. package/src/lib/A-FrameCrypto/index.browser.ts +1 -0
  288. package/src/lib/A-FrameCrypto/index.ts +1 -0
  289. package/src/lib/A-FrameDefinition/A-FrameDefinition.constants.ts +8 -0
  290. package/src/lib/A-FrameDefinition/A-FrameDefinition.entity.ts +290 -0
  291. package/src/lib/A-FrameDefinition/A-FrameDefinition.types.ts +109 -0
  292. package/src/lib/A-FrameDefinition/index.ts +3 -0
  293. package/src/lib/A-FrameDynamicFeature/A-FrameDynamicFeature.entity.ts +13 -0
  294. package/src/lib/A-FrameDynamicFeature/A-FrameDynamicFeature.types.ts +10 -0
  295. package/src/lib/A-FrameDynamicFeature/index.ts +2 -0
  296. package/src/lib/A-FrameDynamicPatch/A-FrameDynamicPatch.entity.ts +38 -0
  297. package/src/lib/A-FrameDynamicPatch/A-FrameDynamicPatch.types.ts +20 -0
  298. package/src/lib/A-FrameDynamicSession/A-FrameDynamicSession.constants.ts +9 -0
  299. package/src/lib/A-FrameDynamicSession/A-FrameDynamicSession.entity.ts +91 -0
  300. package/src/lib/A-FrameDynamicSession/A-FrameDynamicSession.types.ts +18 -0
  301. package/src/lib/A-FrameDynamicStructure/A-FrameDynamicStructure.constants.ts +13 -0
  302. package/src/lib/A-FrameDynamicStructure/A-FrameDynamicStructure.entity.ts +187 -0
  303. package/src/lib/A-FrameDynamicStructure/A-FrameDynamicStructure.error.ts +13 -0
  304. package/src/lib/A-FrameDynamicStructure/A-FrameDynamicStructure.types.ts +128 -0
  305. package/src/lib/A-FrameDynamicStructure/A-FrameDynamicStructureOperation.context.ts +32 -0
  306. package/src/lib/A-FrameDynamicStructure/index.ts +5 -0
  307. package/src/lib/A-FrameEnv/A-FrameEnv.fragment.env-browser.ts +31 -0
  308. package/src/lib/A-FrameEnv/A-FrameEnv.fragment.env-node.ts +39 -0
  309. package/src/lib/A-FrameEnv/A-FrameEnv.types.ts +7 -0
  310. package/src/lib/A-FrameEnv/index.browser.ts +1 -0
  311. package/src/lib/A-FrameEnv/index.ts +1 -0
  312. package/src/lib/A-FrameIndex/A-FrameIndex.context.ts +321 -0
  313. package/src/lib/A-FrameIndex/A-FrameIndex.types.ts +63 -0
  314. package/src/lib/A-FrameIndex/index.browser.ts +3 -0
  315. package/src/lib/A-FrameIndex/index.ts +3 -0
  316. package/src/lib/A-FrameLogger/A-FrameLogger.component.env-browser.ts +99 -0
  317. package/src/lib/A-FrameLogger/A-FrameLogger.component.env-node.ts +129 -0
  318. package/src/lib/A-FrameLogger/A-FrameLogger.component.ts +123 -0
  319. package/src/lib/A-FrameLogger/A-FrameLogger.constants.ts +66 -0
  320. package/src/lib/A-FrameLogger/A-FrameLogger.types.ts +67 -0
  321. package/src/lib/A-FrameLogger/index.browser.ts +4 -0
  322. package/src/lib/A-FrameLogger/index.ts +4 -0
  323. package/src/lib/A-FrameNamespace/A-FrameNamespace.constants.ts +12 -0
  324. package/src/lib/A-FrameNamespace/A-FrameNamespace.entity.ts +211 -0
  325. package/src/lib/A-FrameNamespace/A-FrameNamespace.types.ts +72 -0
  326. package/src/lib/A-FrameNamespace/index.ts +3 -0
  327. package/src/lib/A-FrameStorage/A-FrameStorage.codec.ts +338 -0
  328. package/src/lib/A-FrameStorage/A-FrameStorage.component.ts +191 -0
  329. package/src/lib/A-FrameStorage/A-FrameStorage.constants.ts +11 -0
  330. package/src/lib/A-FrameStorage/A-FrameStorage.error.ts +13 -0
  331. package/src/lib/A-FrameStorage/A-FrameStorage.types.ts +98 -0
  332. package/src/lib/A-FrameStorage/A-FrameStorageOperation.context.ts +59 -0
  333. package/src/lib/A-FrameStorage/browser/A-FrameBrowserStorage.component.ts +312 -0
  334. package/src/lib/A-FrameStorage/browser/A-FrameBrowserStorageBlobs.context.ts +77 -0
  335. package/src/lib/A-FrameStorage/index.browser.ts +11 -0
  336. package/src/lib/A-FrameStorage/index.ts +10 -0
  337. package/src/lib/A-FrameStorage/node/A-FrameNodeStorage.component.ts +464 -0
  338. package/src/lib/A-FrameStorage/server/A-FrameServerStorage.component.ts +177 -0
  339. package/src/lib/{entities/A_FrameVector/A_FrameVector.entity.ts → A-FrameVector/A-FrameVector.entity.ts} +10 -0
  340. package/src/lib/A-FrameVector/index.ts +3 -0
  341. package/tests/A-Frame.browser.test.ts +94 -0
  342. package/tests/A-Frame.test.ts +73 -68
  343. package/tests/jest.browser-environment.js +30 -0
  344. package/tests/jest.polyfills.browser.ts +13 -0
  345. package/tests/jest.setup.browser.ts +33 -0
  346. package/tsconfig.browser.json +54 -0
  347. package/tsconfig.json +16 -0
  348. package/tsup.config.ts +32 -2
  349. package/src/lib/components/Builder.component.ts/Builder.component.ts +0 -0
  350. package/src/lib/components/Index.component.ts/Index.component.ts +0 -79
  351. package/src/lib/components/Index.component.ts/Index.constants.ts +0 -0
  352. package/src/lib/components/Index.component.ts/Index.meta.ts +0 -28
  353. package/src/lib/components/Index.component.ts/IndexConfigurations.meta.ts +0 -78
  354. package/src/lib/components/Index.component.ts/decorators/IndexComponent.decorator.ts +0 -97
  355. package/src/lib/components/Index.component.ts/decorators/IndexDescribe.decorator.ts +0 -59
  356. package/src/lib/components/Index.component.ts/decorators/IndexNamespace.decorator.ts +0 -57
  357. package/src/lib/components/Search/A_FrameSearch.component.ts +0 -66
  358. package/src/lib/containers/CLI.container.ts +0 -27
  359. package/src/lib/entities/Namespace/Namespace.entity.ts +0 -8
@@ -0,0 +1,25 @@
1
+ 'use strict';
2
+
3
+ var __defProp = Object.defineProperty;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __require = /* @__PURE__ */ ((x) => typeof require !== "undefined" ? require : typeof Proxy !== "undefined" ? new Proxy(x, {
6
+ get: (a, b) => (typeof require !== "undefined" ? require : a)[b]
7
+ }) : x)(function(x) {
8
+ if (typeof require !== "undefined") return require.apply(this, arguments);
9
+ throw Error('Dynamic require of "' + x + '" is not supported');
10
+ });
11
+ var __decorateClass = (decorators, target, key, kind) => {
12
+ var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc(target, key) : target;
13
+ for (var i = decorators.length - 1, decorator; i >= 0; i--)
14
+ if (decorator = decorators[i])
15
+ result = (kind ? decorator(target, key, result) : decorator(result)) || result;
16
+ if (kind && result) __defProp(target, key, result);
17
+ return result;
18
+ };
19
+ var __decorateParam = (index, decorator) => (target, key) => decorator(target, key, index);
20
+
21
+ exports.__decorateClass = __decorateClass;
22
+ exports.__decorateParam = __decorateParam;
23
+ exports.__require = __require;
24
+ //# sourceMappingURL=chunk-QFHZIG7Y.cjs.map
25
+ //# sourceMappingURL=chunk-QFHZIG7Y.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"chunk-QFHZIG7Y.cjs"}
@@ -0,0 +1,259 @@
1
+ 'use strict';
2
+
3
+ var aConcept = require('@adaas/a-concept');
4
+
5
+ // src/lib/A-FrameStorage/A-FrameStorage.codec.ts
6
+ var enc = new TextEncoder();
7
+ var dec = new TextDecoder();
8
+ var A_FrameStorageCodec = class _A_FrameStorageCodec extends aConcept.A_Fragment {
9
+ constructor() {
10
+ super(...arguments);
11
+ this.enc = new TextEncoder();
12
+ this.dec = new TextDecoder();
13
+ // ─── Binary file format constants ────────────────────────────────────────────
14
+ // FILE LAYOUT (all multi-byte values are little-endian):
15
+ // [HEADER 20B]
16
+ // magic 4B = 0x454D424B ("EMBK")
17
+ // version 1B = 0x01
18
+ // count 4B (uint32)
19
+ // dims 2B (uint16)
20
+ // reserved 9B
21
+ // [RECORD × count]
22
+ // aseidLen 2B (uint16) — variable-length primary entity ID
23
+ // aseid NB utf-8
24
+ // nameLen 2B (uint16)
25
+ // name NB utf-8
26
+ // vector dims×4B Float32 LE
27
+ // metaLen 4B (uint32)
28
+ // meta NB JSON
29
+ // Encrypted on disk: [IV 12B][AuthTag 16B][Ciphertext]
30
+ this.A_FRAME_FILE_MAGIC = 1162691147;
31
+ this.A_FRAME_FILE_VERSION = 1;
32
+ this.A_FRAME_HEADER_SIZE = 20;
33
+ }
34
+ static get fileExtension() {
35
+ return ".aframe";
36
+ }
37
+ getFileName(namespace) {
38
+ return `${namespace}${_A_FrameStorageCodec.fileExtension}`;
39
+ }
40
+ getNamespaceFileName() {
41
+ return `__namespaces${_A_FrameStorageCodec.fileExtension}`;
42
+ }
43
+ encodePayload(records) {
44
+ const parts = [];
45
+ if (records.some((r) => !r.embedding)) {
46
+ throw new Error("All records must have embeddings to be encoded");
47
+ }
48
+ const header = new Uint8Array(this.A_FRAME_HEADER_SIZE);
49
+ const headerView = new DataView(header.buffer);
50
+ headerView.setUint32(0, this.A_FRAME_FILE_MAGIC, true);
51
+ header[4] = this.A_FRAME_FILE_VERSION;
52
+ headerView.setUint32(5, records.length, true);
53
+ const dims = records[0]?.embedding.length ?? 0;
54
+ headerView.setUint16(9, dims, true);
55
+ parts.push(header);
56
+ for (const rec of records) {
57
+ const aseidBytes = enc.encode(rec.aseid.toString());
58
+ const nameBytes = enc.encode(rec.name);
59
+ const metaJson = JSON.stringify({
60
+ hash: rec.hash,
61
+ source: rec.source,
62
+ type: rec.type,
63
+ description: rec.description,
64
+ metadata: rec.metadata,
65
+ namespace: rec.namespace,
66
+ date: rec.date,
67
+ model: rec.model,
68
+ credentialId: rec.credentialId,
69
+ aFrameVersion: rec.aFrameVersion,
70
+ aFrameServerVersion: rec.aFrameServerVersion
71
+ });
72
+ const metaBytes = enc.encode(metaJson);
73
+ const recSize = 2 + aseidBytes.length + 2 + nameBytes.length + rec.embedding.length * 4 + 4 + metaBytes.length;
74
+ const recBuf = new Uint8Array(recSize);
75
+ const view = new DataView(recBuf.buffer);
76
+ let offset = 0;
77
+ view.setUint16(offset, aseidBytes.length, true);
78
+ offset += 2;
79
+ recBuf.set(aseidBytes, offset);
80
+ offset += aseidBytes.length;
81
+ view.setUint16(offset, nameBytes.length, true);
82
+ offset += 2;
83
+ recBuf.set(nameBytes, offset);
84
+ offset += nameBytes.length;
85
+ for (let i = 0; i < rec.embedding.length; i++) {
86
+ view.setFloat32(offset, rec.embedding[i], true);
87
+ offset += 4;
88
+ }
89
+ view.setUint32(offset, metaBytes.length, true);
90
+ offset += 4;
91
+ recBuf.set(metaBytes, offset);
92
+ parts.push(recBuf);
93
+ }
94
+ const total = parts.reduce((s, p) => s + p.length, 0);
95
+ const out = new Uint8Array(total);
96
+ let pos = 0;
97
+ for (const p of parts) {
98
+ out.set(p, pos);
99
+ pos += p.length;
100
+ }
101
+ return out;
102
+ }
103
+ decodePayload(data) {
104
+ if (data.length < this.A_FRAME_HEADER_SIZE) throw new Error("Corrupt index: too short for header");
105
+ const view = new DataView(data.buffer, data.byteOffset, data.byteLength);
106
+ const magic = view.getUint32(0, true);
107
+ if (magic !== this.A_FRAME_FILE_MAGIC) throw new Error(`Corrupt index: bad magic 0x${magic.toString(16)}`);
108
+ const version = data[4];
109
+ if (version !== this.A_FRAME_FILE_VERSION) throw new Error(`Unsupported index version: ${version}`);
110
+ const count = view.getUint32(5, true);
111
+ const dims = view.getUint16(9, true);
112
+ const records = [];
113
+ let offset = this.A_FRAME_HEADER_SIZE;
114
+ for (let i = 0; i < count; i++) {
115
+ const aseidLen = view.getUint16(offset, true);
116
+ offset += 2;
117
+ const aseid = dec.decode(data.slice(offset, offset + aseidLen));
118
+ offset += aseidLen;
119
+ const nameLen = view.getUint16(offset, true);
120
+ offset += 2;
121
+ const name = dec.decode(data.slice(offset, offset + nameLen));
122
+ offset += nameLen;
123
+ const embedding = new Float32Array(dims);
124
+ for (let d = 0; d < dims; d++) {
125
+ embedding[d] = view.getFloat32(offset, true);
126
+ offset += 4;
127
+ }
128
+ const metaLen = view.getUint32(offset, true);
129
+ offset += 4;
130
+ const metaJson = dec.decode(data.slice(offset, offset + metaLen));
131
+ offset += metaLen;
132
+ const meta = JSON.parse(metaJson);
133
+ records.push({
134
+ aseid,
135
+ hash: meta.hash ?? aseid,
136
+ name,
137
+ type: meta.type,
138
+ embedding,
139
+ source: meta.source,
140
+ description: meta.description,
141
+ metadata: meta.metadata,
142
+ namespace: meta.namespace,
143
+ date: meta.date,
144
+ model: meta.model,
145
+ credentialId: meta.credentialId,
146
+ aFrameVersion: meta.aFrameVersion,
147
+ aFrameServerVersion: meta.aFrameServerVersion
148
+ });
149
+ }
150
+ return records;
151
+ }
152
+ encodeNamespacePayload(records) {
153
+ const parts = [];
154
+ if (records.some((r) => !r.embedding)) {
155
+ throw new Error("All records must have embeddings to be encoded");
156
+ }
157
+ const header = new Uint8Array(this.A_FRAME_HEADER_SIZE);
158
+ const headerView = new DataView(header.buffer);
159
+ headerView.setUint32(0, this.A_FRAME_FILE_MAGIC, true);
160
+ header[4] = this.A_FRAME_FILE_VERSION;
161
+ headerView.setUint32(5, records.length, true);
162
+ const dims = records[0]?.embedding.length ?? 0;
163
+ headerView.setUint16(9, dims, true);
164
+ parts.push(header);
165
+ for (const rec of records) {
166
+ const aseidBytes = enc.encode(rec.aseid.toString());
167
+ const nameBytes = enc.encode(rec.name);
168
+ const metaJson = JSON.stringify({
169
+ hash: rec.hash,
170
+ description: rec.description,
171
+ metadata: rec.metadata,
172
+ embeddedAt: rec.embeddedAt,
173
+ embeddingModel: rec.embeddingModel,
174
+ credentialId: rec.credentialId,
175
+ aFrameVersion: rec.aFrameVersion,
176
+ aFrameServerVersion: rec.aFrameServerVersion
177
+ });
178
+ const metaBytes = enc.encode(metaJson);
179
+ const recSize = 2 + aseidBytes.length + 2 + nameBytes.length + rec.embedding.length * 4 + 4 + metaBytes.length;
180
+ const recBuf = new Uint8Array(recSize);
181
+ const view = new DataView(recBuf.buffer);
182
+ let offset = 0;
183
+ view.setUint16(offset, aseidBytes.length, true);
184
+ offset += 2;
185
+ recBuf.set(aseidBytes, offset);
186
+ offset += aseidBytes.length;
187
+ view.setUint16(offset, nameBytes.length, true);
188
+ offset += 2;
189
+ recBuf.set(nameBytes, offset);
190
+ offset += nameBytes.length;
191
+ for (let i = 0; i < rec.embedding.length; i++) {
192
+ view.setFloat32(offset, rec.embedding[i], true);
193
+ offset += 4;
194
+ }
195
+ view.setUint32(offset, metaBytes.length, true);
196
+ offset += 4;
197
+ recBuf.set(metaBytes, offset);
198
+ parts.push(recBuf);
199
+ }
200
+ const total = parts.reduce((s, p) => s + p.length, 0);
201
+ const out = new Uint8Array(total);
202
+ let pos = 0;
203
+ for (const p of parts) {
204
+ out.set(p, pos);
205
+ pos += p.length;
206
+ }
207
+ return out;
208
+ }
209
+ decodeNamespacePayload(data) {
210
+ if (data.length < this.A_FRAME_HEADER_SIZE) throw new Error("Corrupt namespace index: too short for header");
211
+ const view = new DataView(data.buffer, data.byteOffset, data.byteLength);
212
+ const magic = view.getUint32(0, true);
213
+ if (magic !== this.A_FRAME_FILE_MAGIC) throw new Error(`Corrupt namespace index: bad magic 0x${magic.toString(16)}`);
214
+ const version = data[4];
215
+ if (version !== this.A_FRAME_FILE_VERSION) throw new Error(`Unsupported namespace index version: ${version}`);
216
+ const count = view.getUint32(5, true);
217
+ const dims = view.getUint16(9, true);
218
+ const records = [];
219
+ let offset = this.A_FRAME_HEADER_SIZE;
220
+ for (let i = 0; i < count; i++) {
221
+ const aseidLen = view.getUint16(offset, true);
222
+ offset += 2;
223
+ const aseid = dec.decode(data.slice(offset, offset + aseidLen));
224
+ offset += aseidLen;
225
+ const nameLen = view.getUint16(offset, true);
226
+ offset += 2;
227
+ const name = dec.decode(data.slice(offset, offset + nameLen));
228
+ offset += nameLen;
229
+ const embedding = new Float32Array(dims);
230
+ for (let d = 0; d < dims; d++) {
231
+ embedding[d] = view.getFloat32(offset, true);
232
+ offset += 4;
233
+ }
234
+ const metaLen = view.getUint32(offset, true);
235
+ offset += 4;
236
+ const metaJson = dec.decode(data.slice(offset, offset + metaLen));
237
+ offset += metaLen;
238
+ const meta = JSON.parse(metaJson);
239
+ records.push({
240
+ aseid,
241
+ hash: meta.hash ?? aseid,
242
+ name,
243
+ embedding,
244
+ description: meta.description,
245
+ metadata: meta.metadata,
246
+ embeddedAt: meta.embeddedAt,
247
+ embeddingModel: meta.embeddingModel,
248
+ credentialId: meta.credentialId,
249
+ aFrameVersion: meta.aFrameVersion,
250
+ aFrameServerVersion: meta.aFrameServerVersion
251
+ });
252
+ }
253
+ return records;
254
+ }
255
+ };
256
+
257
+ exports.A_FrameStorageCodec = A_FrameStorageCodec;
258
+ //# sourceMappingURL=chunk-QFUZVN4Y.cjs.map
259
+ //# sourceMappingURL=chunk-QFUZVN4Y.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/lib/A-FrameStorage/A-FrameStorage.codec.ts"],"names":["A_Fragment"],"mappings":"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","file":"chunk-QFUZVN4Y.cjs","sourcesContent":["/**\n * A-FrameStorage binary codec — shared between node and browser environments.\n *\n * Binary payload format (decrypted) — used for BOTH definition records and namespace records:\n * [HEADER 20B]\n * magic 4B = 0x454D424B (\"EMBK\")\n * version 1B = 0x01\n * count 4B (uint32 LE)\n * dims 2B (uint16 LE)\n * reserved 9B\n * [RECORD × count]\n * aseidLen 2B (uint16 LE)\n * aseid NB utf-8 (primary entity ID, e.g. \"app@root:123@v2\")\n * nameLen 2B (uint16 LE)\n * name NB utf-8\n * vector dims×4B Float32 LE\n * metaLen 4B (uint32 LE)\n * meta NB JSON\n */\n\nimport { A_Fragment } from '@adaas/a-concept';\n\nimport type { A_FrameNamespace_Serialized } from '../A-FrameNamespace/A-FrameNamespace.types';\nimport { A_FrameDefinition_Serialized } from '../A-FrameDefinition/A-FrameDefinition.types';\nimport { A_FrameTargetType } from '../A-Frame/A-Frame.types';\n\nconst enc = new TextEncoder();\nconst dec = new TextDecoder();\n\n\nexport class A_FrameStorageCodec extends A_Fragment {\n\n protected enc = new TextEncoder();\n protected dec = new TextDecoder();\n\n // ─── Binary file format constants ────────────────────────────────────────────\n // FILE LAYOUT (all multi-byte values are little-endian):\n // [HEADER 20B]\n // magic 4B = 0x454D424B (\"EMBK\")\n // version 1B = 0x01\n // count 4B (uint32)\n // dims 2B (uint16)\n // reserved 9B\n // [RECORD × count]\n // aseidLen 2B (uint16) — variable-length primary entity ID\n // aseid NB utf-8\n // nameLen 2B (uint16)\n // name NB utf-8\n // vector dims×4B Float32 LE\n // metaLen 4B (uint32)\n // meta NB JSON\n // Encrypted on disk: [IV 12B][AuthTag 16B][Ciphertext]\n A_FRAME_FILE_MAGIC = 0x454d424b;\n A_FRAME_FILE_VERSION = 0x01;\n A_FRAME_HEADER_SIZE = 20;\n\n\n\n static get fileExtension() {\n return '.aframe';\n }\n\n\n getFileName(namespace: string) {\n return `${namespace}${A_FrameStorageCodec.fileExtension}`;\n }\n\n getNamespaceFileName() {\n return `__namespaces${A_FrameStorageCodec.fileExtension}`;\n }\n\n\n encodePayload(records: A_FrameDefinition_Serialized[]): Uint8Array {\n const parts: Uint8Array[] = [];\n\n if (records.some(r => !r.embedding)) {\n throw new Error('All records must have embeddings to be encoded');\n }\n\n const header = new Uint8Array(this.A_FRAME_HEADER_SIZE);\n const headerView = new DataView(header.buffer);\n headerView.setUint32(0, this.A_FRAME_FILE_MAGIC, true);\n header[4] = this.A_FRAME_FILE_VERSION;\n headerView.setUint32(5, records.length, true);\n const dims = records[0]?.embedding!.length ?? 0;\n headerView.setUint16(9, dims, true);\n // bytes 11-19: reserved (zeroed)\n parts.push(header);\n\n for (const rec of records) {\n const aseidBytes = enc.encode(rec.aseid.toString());\n const nameBytes = enc.encode(rec.name);\n const metaJson = JSON.stringify({\n hash: rec.hash,\n source: rec.source,\n type: rec.type,\n description: rec.description,\n metadata: rec.metadata,\n namespace: rec.namespace,\n date: rec.date,\n model: rec.model,\n credentialId: rec.credentialId,\n aFrameVersion: rec.aFrameVersion,\n aFrameServerVersion: rec.aFrameServerVersion,\n });\n const metaBytes = enc.encode(metaJson);\n\n const recSize =\n 2 + aseidBytes.length +\n 2 + nameBytes.length +\n rec.embedding!.length * 4 +\n 4 + metaBytes.length;\n\n const recBuf = new Uint8Array(recSize);\n const view = new DataView(recBuf.buffer);\n let offset = 0;\n\n view.setUint16(offset, aseidBytes.length, true); offset += 2;\n recBuf.set(aseidBytes, offset); offset += aseidBytes.length;\n\n view.setUint16(offset, nameBytes.length, true); offset += 2;\n recBuf.set(nameBytes, offset); offset += nameBytes.length;\n\n for (let i = 0; i < rec.embedding!.length; i++) {\n view.setFloat32(offset, rec.embedding![i], true);\n offset += 4;\n }\n\n view.setUint32(offset, metaBytes.length, true); offset += 4;\n recBuf.set(metaBytes, offset);\n\n parts.push(recBuf);\n }\n\n const total = parts.reduce((s, p) => s + p.length, 0);\n const out = new Uint8Array(total);\n let pos = 0;\n for (const p of parts) { out.set(p, pos); pos += p.length; }\n return out;\n }\n\n decodePayload(data: Uint8Array): A_FrameDefinition_Serialized[] {\n if (data.length < this.A_FRAME_HEADER_SIZE) throw new Error('Corrupt index: too short for header');\n\n const view = new DataView(data.buffer, data.byteOffset, data.byteLength);\n\n const magic = view.getUint32(0, true);\n if (magic !== this.A_FRAME_FILE_MAGIC) throw new Error(`Corrupt index: bad magic 0x${magic.toString(16)}`);\n\n const version = data[4];\n if (version !== this.A_FRAME_FILE_VERSION) throw new Error(`Unsupported index version: ${version}`);\n\n const count = view.getUint32(5, true);\n const dims = view.getUint16(9, true);\n\n const records: A_FrameDefinition_Serialized[] = [];\n let offset = this.A_FRAME_HEADER_SIZE;\n\n for (let i = 0; i < count; i++) {\n const aseidLen = view.getUint16(offset, true); offset += 2;\n const aseid = dec.decode(data.slice(offset, offset + aseidLen)); offset += aseidLen;\n\n const nameLen = view.getUint16(offset, true); offset += 2;\n const name = dec.decode(data.slice(offset, offset + nameLen)); offset += nameLen;\n\n const embedding = new Float32Array(dims);\n for (let d = 0; d < dims; d++) {\n embedding[d] = view.getFloat32(offset, true);\n offset += 4;\n }\n\n const metaLen = view.getUint32(offset, true); offset += 4;\n const metaJson = dec.decode(data.slice(offset, offset + metaLen)); offset += metaLen;\n const meta = JSON.parse(metaJson) as {\n hash?: string;\n source: string;\n description?: string;\n type: A_FrameTargetType;\n metadata?: Record<string, unknown>;\n namespace: string;\n date: string;\n model: string;\n credentialId: string;\n aFrameVersion: string;\n aFrameServerVersion: string;\n };\n\n records.push({\n aseid,\n hash: meta.hash ?? aseid,\n name,\n type: meta.type,\n embedding,\n source: meta.source,\n description: meta.description,\n metadata: meta.metadata,\n namespace: meta.namespace,\n date: meta.date,\n model: meta.model,\n credentialId: meta.credentialId,\n aFrameVersion: meta.aFrameVersion,\n aFrameServerVersion: meta.aFrameServerVersion,\n });\n }\n\n return records;\n }\n\n\n encodeNamespacePayload(records: A_FrameNamespace_Serialized[]): Uint8Array {\n const parts: Uint8Array[] = [];\n\n if (records.some(r => !r.embedding)) {\n throw new Error('All records must have embeddings to be encoded');\n }\n\n const header = new Uint8Array(this.A_FRAME_HEADER_SIZE);\n const headerView = new DataView(header.buffer);\n headerView.setUint32(0, this.A_FRAME_FILE_MAGIC, true);\n header[4] = this.A_FRAME_FILE_VERSION;\n headerView.setUint32(5, records.length, true);\n const dims = records[0]?.embedding!.length ?? 0;\n headerView.setUint16(9, dims, true);\n parts.push(header);\n\n for (const rec of records) {\n const aseidBytes = enc.encode(rec.aseid.toString());\n const nameBytes = enc.encode(rec.name);\n const metaJson = JSON.stringify({\n hash: rec.hash,\n description: rec.description,\n metadata: rec.metadata,\n embeddedAt: rec.embeddedAt,\n embeddingModel: rec.embeddingModel,\n credentialId: rec.credentialId,\n aFrameVersion: rec.aFrameVersion,\n aFrameServerVersion: rec.aFrameServerVersion,\n });\n const metaBytes = enc.encode(metaJson);\n\n const recSize =\n 2 + aseidBytes.length +\n 2 + nameBytes.length +\n rec.embedding!.length * 4 +\n 4 + metaBytes.length;\n\n const recBuf = new Uint8Array(recSize);\n const view = new DataView(recBuf.buffer);\n let offset = 0;\n\n view.setUint16(offset, aseidBytes.length, true); offset += 2;\n recBuf.set(aseidBytes, offset); offset += aseidBytes.length;\n\n view.setUint16(offset, nameBytes.length, true); offset += 2;\n recBuf.set(nameBytes, offset); offset += nameBytes.length;\n\n for (let i = 0; i < rec.embedding!.length; i++) {\n view.setFloat32(offset, rec.embedding![i], true);\n offset += 4;\n }\n\n view.setUint32(offset, metaBytes.length, true); offset += 4;\n recBuf.set(metaBytes, offset);\n\n parts.push(recBuf);\n }\n\n const total = parts.reduce((s, p) => s + p.length, 0);\n const out = new Uint8Array(total);\n let pos = 0;\n for (const p of parts) { out.set(p, pos); pos += p.length; }\n return out;\n }\n\n decodeNamespacePayload(data: Uint8Array): A_FrameNamespace_Serialized[] {\n if (data.length < this.A_FRAME_HEADER_SIZE) throw new Error('Corrupt namespace index: too short for header');\n\n const view = new DataView(data.buffer, data.byteOffset, data.byteLength);\n\n const magic = view.getUint32(0, true);\n if (magic !== this.A_FRAME_FILE_MAGIC) throw new Error(`Corrupt namespace index: bad magic 0x${magic.toString(16)}`);\n\n const version = data[4];\n if (version !== this.A_FRAME_FILE_VERSION) throw new Error(`Unsupported namespace index version: ${version}`);\n\n const count = view.getUint32(5, true);\n const dims = view.getUint16(9, true);\n\n const records: A_FrameNamespace_Serialized[] = [];\n let offset = this.A_FRAME_HEADER_SIZE;\n\n for (let i = 0; i < count; i++) {\n const aseidLen = view.getUint16(offset, true); offset += 2;\n const aseid = dec.decode(data.slice(offset, offset + aseidLen)); offset += aseidLen;\n\n const nameLen = view.getUint16(offset, true); offset += 2;\n const name = dec.decode(data.slice(offset, offset + nameLen)); offset += nameLen;\n\n const embedding = new Float32Array(dims);\n for (let d = 0; d < dims; d++) {\n embedding[d] = view.getFloat32(offset, true);\n offset += 4;\n }\n\n const metaLen = view.getUint32(offset, true); offset += 4;\n const metaJson = dec.decode(data.slice(offset, offset + metaLen)); offset += metaLen;\n const meta = JSON.parse(metaJson) as {\n hash?: string;\n description?: string;\n metadata?: Record<string, unknown>;\n embeddedAt: number;\n embeddingModel?: string;\n credentialId?: string;\n aFrameVersion?: string;\n aFrameServerVersion?: string;\n };\n\n records.push({\n aseid,\n hash: meta.hash ?? aseid,\n name,\n embedding,\n description: meta.description,\n metadata: meta.metadata,\n embeddedAt: meta.embeddedAt,\n embeddingModel: meta.embeddingModel,\n credentialId: meta.credentialId,\n aFrameVersion: meta.aFrameVersion,\n aFrameServerVersion: meta.aFrameServerVersion,\n });\n }\n\n return records;\n }\n\n}\n\n\n"]}
@@ -0,0 +1,209 @@
1
+ 'use strict';
2
+
3
+ var chunkKLG6HKFU_cjs = require('./chunk-KLG6HKFU.cjs');
4
+ var aConcept = require('@adaas/a-concept');
5
+
6
+ var A_FrameIndex = class _A_FrameIndex extends aConcept.A_Fragment {
7
+ constructor() {
8
+ if (_A_FrameIndex._instance)
9
+ return _A_FrameIndex._instance;
10
+ super({ name: "A_FrameIndex" });
11
+ // -------------------------------------------------------------------------------------
12
+ // ------------------------------ Instance State --------------------------------------
13
+ // -------------------------------------------------------------------------------------
14
+ this.definitions = /* @__PURE__ */ new Map();
15
+ this.namespaces = /* @__PURE__ */ new Map();
16
+ this.scope = new aConcept.A_Scope({ name: "A_FrameIndexScope" });
17
+ }
18
+ static get instance() {
19
+ if (!_A_FrameIndex._instance) {
20
+ _A_FrameIndex._instance = new _A_FrameIndex();
21
+ }
22
+ return _A_FrameIndex._instance;
23
+ }
24
+ static get indexSize() {
25
+ return _A_FrameIndex.instance.indexSize;
26
+ }
27
+ // ------------------------------------------------------------------------------------
28
+ // --------------------Static Access to Instance Methods-------------------------------
29
+ // ------------------------------------------------------------------------------------
30
+ static inherit(scope) {
31
+ _A_FrameIndex.instance.inherit(scope);
32
+ }
33
+ static addDefinition(def) {
34
+ _A_FrameIndex.instance.addDefinition(def);
35
+ }
36
+ static getDefinition(nameOrHash) {
37
+ return _A_FrameIndex.instance.getDefinition(nameOrHash);
38
+ }
39
+ static listDefinitions(filter) {
40
+ return _A_FrameIndex.instance.listDefinitions(filter);
41
+ }
42
+ static removeDefinition(def) {
43
+ _A_FrameIndex.instance.removeDefinition(def);
44
+ }
45
+ static addNamespace(namespace) {
46
+ _A_FrameIndex.instance.addNamespace(namespace);
47
+ }
48
+ static getDefaultNamespace() {
49
+ return _A_FrameIndex.instance.getDefaultNamespace();
50
+ }
51
+ static getNamespace(nameOrASEID) {
52
+ return _A_FrameIndex.instance.getNamespace(nameOrASEID);
53
+ }
54
+ static listNamespaces() {
55
+ return _A_FrameIndex.instance.listNamespaces();
56
+ }
57
+ static removeNamespace(namespace) {
58
+ _A_FrameIndex.instance.removeNamespace(namespace);
59
+ }
60
+ static search(vector, options = {}) {
61
+ return _A_FrameIndex.instance.search(vector, options);
62
+ }
63
+ /** Number of loaded records */
64
+ get indexSize() {
65
+ return this.definitions.size;
66
+ }
67
+ // static searchByText(
68
+ // query: string,
69
+ // channel: A_FrameChannel,
70
+ // options: A_FrameSearchOptions = {},
71
+ // ): Promise<A_FrameDefinition_SearchResult[]> {
72
+ // return A_FrameIndex.instance.searchByText(query, channel, options);
73
+ // }
74
+ // ------------------------------------------------------------------------------------
75
+ // ------------------------------ Instance Methods ------------------------------------
76
+ // ------------------------------------------------------------------------------------
77
+ inherit(scope) {
78
+ this.scope.inherit(scope);
79
+ }
80
+ addDefinition(def) {
81
+ this.scope.register(def);
82
+ const existingNamespace = this.namespaces.get(def.namespace.id);
83
+ if (!existingNamespace) {
84
+ this.addNamespace(def.namespace);
85
+ }
86
+ this.definitions.set(def.id, def);
87
+ }
88
+ getDefinition(name) {
89
+ for (const def of this.definitions.values()) {
90
+ if (def.name === name) {
91
+ return def;
92
+ }
93
+ }
94
+ return void 0;
95
+ }
96
+ listDefinitions(filter = {}) {
97
+ const namespaceName = filter.namespace ? typeof filter.namespace === "string" ? aConcept.ASEID.isASEID(filter.namespace) ? new aConcept.ASEID(filter.namespace).id : filter.namespace : filter.namespace.id : void 0;
98
+ return [...this.definitions.values()].filter((r) => !namespaceName || r.namespace.name === namespaceName);
99
+ }
100
+ removeDefinition(def) {
101
+ this.scope.deregister(def);
102
+ }
103
+ addNamespace(namespace) {
104
+ this.scope.register(namespace);
105
+ this.namespaces.set(namespace.id, namespace);
106
+ }
107
+ getNamespace(nameOrASEID) {
108
+ const targetKey = typeof nameOrASEID === "string" ? aConcept.ASEID.isASEID(nameOrASEID) ? new aConcept.ASEID(nameOrASEID).id : nameOrASEID : nameOrASEID.id;
109
+ return this.namespaces.get(targetKey);
110
+ }
111
+ getDefaultNamespace() {
112
+ let defaultNamespace = this.getNamespace(chunkKLG6HKFU_cjs.A_FRAME_DEFAULT_NAMESPACE_KEY);
113
+ if (!defaultNamespace) {
114
+ defaultNamespace = new chunkKLG6HKFU_cjs.A_FrameNamespace({
115
+ name: chunkKLG6HKFU_cjs.A_FRAME_DEFAULT_NAMESPACE_KEY
116
+ });
117
+ this.addNamespace(defaultNamespace);
118
+ }
119
+ return defaultNamespace;
120
+ }
121
+ listNamespaces() {
122
+ return [...this.namespaces.values()];
123
+ }
124
+ removeNamespace(namespace) {
125
+ this.scope.deregister(namespace);
126
+ this.namespaces.delete(namespace.id);
127
+ }
128
+ /**
129
+ * Search by a pre-computed embedding vector (cosine similarity).
130
+ */
131
+ search(vector, options = {}) {
132
+ const { topK = 10, namespace, minScore = 0 } = options;
133
+ const pool = namespace ? [...this.definitions.values()].filter((r) => r.namespace.id === namespace) : [...this.definitions.values()];
134
+ const scored = pool.map((r) => ({
135
+ record: r,
136
+ score: this.cosineSimilarity(vector, r.vector)
137
+ }));
138
+ return scored.filter((s) => s.score >= minScore).sort((a, b) => b.score - a.score).slice(0, topK).map(({ record: r, score }) => ({
139
+ record: r,
140
+ score
141
+ }));
142
+ }
143
+ // protected cosineSimilarity(vectorA: A_FrameVector, vectorB?: A_FrameVector): number {
144
+ // const a = vectorA.values ?? new Float32Array();
145
+ // const b = vectorB?.values ?? new Float32Array();
146
+ // if (a.length !== b.length) {
147
+ // throw new Error(`A_FrameIndex: dimension mismatch ${a.length} vs ${b.length}`);
148
+ // }
149
+ // let dot = 0, normA = 0, normB = 0;
150
+ // for (let i = 0; i < a.length; i++) {
151
+ // dot += a[i] * b[i];
152
+ // normA += a[i] * a[i];
153
+ // normB += b[i] * b[i];
154
+ // }
155
+ // const denom = Math.sqrt(normA) * Math.sqrt(normB);
156
+ // return denom === 0 ? 0 : dot / denom;
157
+ // }
158
+ cosineSimilarity(a, b) {
159
+ if (!b) return 0;
160
+ const dot = a.dot(b);
161
+ const mag = a.magnitude() * b.magnitude();
162
+ return mag === 0 ? 0 : dot / mag;
163
+ }
164
+ euclideanDistance(a, b) {
165
+ this.assertSameLength(a, b);
166
+ let sum = 0;
167
+ for (let i = 0; i < a.length; i++) {
168
+ const diff = a.values[i] - b.values[i];
169
+ sum += diff * diff;
170
+ }
171
+ return Math.sqrt(sum);
172
+ }
173
+ nearest(query, vectors, limit = 1) {
174
+ return [...vectors].map((v) => ({
175
+ vector: v,
176
+ score: this.cosineSimilarity(query, v)
177
+ })).sort((a, b) => b.score - a.score).slice(0, limit).map((r) => r.vector);
178
+ }
179
+ rank(query, vectors) {
180
+ return vectors.map((v) => ({
181
+ vector: v,
182
+ score: this.cosineSimilarity(query, v)
183
+ })).sort((a, b) => b.score - a.score);
184
+ }
185
+ assertSameLength(a, b) {
186
+ if (a.length !== b.length) {
187
+ throw new Error(
188
+ `Embedding dimension mismatch: ${a.length} vs ${b.length}`
189
+ );
190
+ }
191
+ }
192
+ /**
193
+ * Search by plain text — sends the query to the embed server via channel first.
194
+ */
195
+ // async searchByText(
196
+ // query: string,
197
+ // channel: A_FrameChannel,
198
+ // options: A_FrameSearchOptions = {},
199
+ // ): Promise<A_FrameDefinition_SearchResult[]> {
200
+ // this.assertLoaded();
201
+ // const resp = await channel.embed(query);
202
+ // const queryEmbedding = new Float32Array(resp.data[0].embedding);
203
+ // return this.search(queryEmbedding, options);
204
+ // }
205
+ };
206
+
207
+ exports.A_FrameIndex = A_FrameIndex;
208
+ //# sourceMappingURL=chunk-RRLTGGM7.cjs.map
209
+ //# sourceMappingURL=chunk-RRLTGGM7.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/lib/A-FrameIndex/A-FrameIndex.context.ts"],"names":["A_Fragment","A_Scope","ASEID","A_FRAME_DEFAULT_NAMESPACE_KEY","A_FrameNamespace"],"mappings":"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","file":"chunk-RRLTGGM7.cjs","sourcesContent":["import { A_Dependency, A_Fragment, A_Scope, ASEID } from \"@adaas/a-concept\";\nimport { A_FrameVector } from \"../A-FrameVector/A-FrameVector.entity\";\nimport { A_FrameNamespace } from \"../A-FrameNamespace/A-FrameNamespace.entity\";\nimport { A_FrameDefinition_SearchResult, A_FrameSearchOptions } from \"./A-FrameIndex.types\";\nimport { A_FrameDefinition } from \"../A-FrameDefinition\";\nimport { A_FRAME_DEFAULT_NAMESPACE_KEY } from \"../A-FrameNamespace/A-FrameNamespace.constants\";\n\n\n\nexport class A_FrameIndex extends A_Fragment {\n\n private static _instance: A_FrameIndex;\n\n static get instance(): A_FrameIndex {\n if (!A_FrameIndex._instance) {\n A_FrameIndex._instance = new A_FrameIndex();\n }\n return A_FrameIndex._instance;\n }\n\n static get indexSize(): number {\n return A_FrameIndex.instance.indexSize;\n }\n\n // ------------------------------------------------------------------------------------\n // --------------------Static Access to Instance Methods-------------------------------\n // ------------------------------------------------------------------------------------\n static inherit(scope: A_Scope) {\n A_FrameIndex.instance.inherit(scope);\n }\n static addDefinition(def: A_FrameDefinition): void {\n A_FrameIndex.instance.addDefinition(def);\n }\n static getDefinition(nameOrHash: string): A_FrameDefinition | undefined {\n return A_FrameIndex.instance.getDefinition(nameOrHash);\n }\n static listDefinitions(filter: {\n namespace?: string | A_FrameNamespace\n }): A_FrameDefinition[] {\n return A_FrameIndex.instance.listDefinitions(filter);\n }\n static removeDefinition(def: A_FrameDefinition): void {\n A_FrameIndex.instance.removeDefinition(def);\n }\n static addNamespace(namespace: A_FrameNamespace): void {\n A_FrameIndex.instance.addNamespace(namespace);\n }\n static getDefaultNamespace(): A_FrameNamespace {\n return A_FrameIndex.instance.getDefaultNamespace();\n }\n static getNamespace(nameOrASEID: string | ASEID): A_FrameNamespace | undefined {\n return A_FrameIndex.instance.getNamespace(nameOrASEID);\n }\n static listNamespaces(): A_FrameNamespace[] {\n return A_FrameIndex.instance.listNamespaces();\n }\n static removeNamespace(namespace: A_FrameNamespace): void {\n A_FrameIndex.instance.removeNamespace(namespace);\n }\n static search(\n vector: A_FrameVector,\n options: A_FrameSearchOptions = {},\n ): A_FrameDefinition_SearchResult[] {\n return A_FrameIndex.instance.search(vector, options);\n }\n\n // -------------------------------------------------------------------------------------\n // ------------------------------ Instance State --------------------------------------\n // -------------------------------------------------------------------------------------\n\n private definitions: Map<string, A_FrameDefinition> = new Map();\n\n private namespaces: Map<string, A_FrameNamespace> = new Map();\n\n private _index!: {\n\n namespaceToDefinitions: WeakMap<A_FrameNamespace, Set<A_FrameDefinition>>,\n\n definitionToNamespace: WeakMap<A_FrameDefinition, A_FrameNamespace>,\n };\n /**\n * Scope where all definitions and namespaces are registered as dependencies, allowing for lookup by ASEID or constructor reference.\n */\n private scope!: A_Scope\n\n\n constructor() {\n if (A_FrameIndex._instance)\n return A_FrameIndex._instance;\n\n super({ name: 'A_FrameIndex' });\n\n this.scope = new A_Scope({ name: 'A_FrameIndexScope' });\n }\n\n /** Number of loaded records */\n get indexSize(): number {\n return this.definitions.size;\n }\n\n\n // static searchByText(\n // query: string,\n // channel: A_FrameChannel,\n // options: A_FrameSearchOptions = {},\n // ): Promise<A_FrameDefinition_SearchResult[]> {\n // return A_FrameIndex.instance.searchByText(query, channel, options);\n // }\n\n\n // ------------------------------------------------------------------------------------\n // ------------------------------ Instance Methods ------------------------------------\n // ------------------------------------------------------------------------------------\n inherit(scope: A_Scope) {\n this.scope.inherit(scope);\n }\n\n addDefinition(def: A_FrameDefinition): void {\n this.scope.register(def);\n\n const existingNamespace = this.namespaces.get(def.namespace.id);\n if (!existingNamespace) {\n this.addNamespace(def.namespace);\n }\n\n this.definitions.set(def.id, def);\n }\n\n getDefinition(name: string): A_FrameDefinition | undefined {\n // Then try name lookup\n for (const def of this.definitions.values()) {\n if (def.name === name) {\n return def;\n }\n }\n\n return undefined;\n }\n\n listDefinitions(filter: {\n namespace?: string | A_FrameNamespace\n } = {}): A_FrameDefinition[] {\n const namespaceName = filter.namespace\n ? typeof filter.namespace === 'string'\n ? ASEID.isASEID(filter.namespace)\n ? new ASEID(filter.namespace).id\n : filter.namespace\n : filter.namespace.id\n : undefined;\n\n return [...this.definitions.values()].filter(r => !namespaceName || r.namespace.name === namespaceName);\n }\n\n removeDefinition(def: A_FrameDefinition): void {\n this.scope.deregister(def);\n }\n\n addNamespace(namespace: A_FrameNamespace): void {\n this.scope.register(namespace);\n\n this.namespaces.set(namespace.id, namespace);\n }\n\n getNamespace(nameOrASEID: string | ASEID): A_FrameNamespace | undefined {\n const targetKey = typeof nameOrASEID === 'string'\n ? ASEID.isASEID(nameOrASEID)\n ? new ASEID(nameOrASEID).id\n : nameOrASEID\n : nameOrASEID.id;\n\n return this.namespaces.get(targetKey);\n }\n\n getDefaultNamespace(): A_FrameNamespace {\n // Ensure default namespace always exists\n let defaultNamespace = this.getNamespace(A_FRAME_DEFAULT_NAMESPACE_KEY);\n if (!defaultNamespace) {\n defaultNamespace = new A_FrameNamespace({\n name: A_FRAME_DEFAULT_NAMESPACE_KEY,\n });\n this.addNamespace(defaultNamespace);\n }\n return defaultNamespace;\n }\n\n listNamespaces(): A_FrameNamespace[] {\n return [...this.namespaces.values()];\n }\n\n removeNamespace(namespace: A_FrameNamespace): void {\n this.scope.deregister(namespace);\n this.namespaces.delete(namespace.id);\n }\n\n\n /**\n * Search by a pre-computed embedding vector (cosine similarity).\n */\n search(\n vector: A_FrameVector,\n options: A_FrameSearchOptions = {},\n ): A_FrameDefinition_SearchResult[] {\n\n const { topK = 10, namespace, minScore = 0 } = options;\n\n const pool = namespace\n ? [...this.definitions.values()].filter(r => r.namespace.id === namespace)\n : [...this.definitions.values()];\n\n const scored = pool.map(r => ({\n record: r,\n score: this.cosineSimilarity(vector, r.vector),\n }));\n\n return scored\n .filter(s => s.score >= minScore)\n .sort((a, b) => b.score - a.score)\n .slice(0, topK)\n .map(({ record: r, score }) => ({\n record: r,\n score,\n }));\n }\n\n // protected cosineSimilarity(vectorA: A_FrameVector, vectorB?: A_FrameVector): number {\n // const a = vectorA.values ?? new Float32Array();\n // const b = vectorB?.values ?? new Float32Array();\n\n // if (a.length !== b.length) {\n // throw new Error(`A_FrameIndex: dimension mismatch ${a.length} vs ${b.length}`);\n // }\n // let dot = 0, normA = 0, normB = 0;\n // for (let i = 0; i < a.length; i++) {\n // dot += a[i] * b[i];\n // normA += a[i] * a[i];\n // normB += b[i] * b[i];\n // }\n // const denom = Math.sqrt(normA) * Math.sqrt(normB);\n // return denom === 0 ? 0 : dot / denom;\n // }\n\n cosineSimilarity(\n a: A_FrameVector,\n b?: A_FrameVector\n ): number {\n if (!b) return 0\n\n const dot = a.dot(b)\n const mag = a.magnitude() * b.magnitude()\n return mag === 0 ? 0 : dot / mag\n }\n\n euclideanDistance(\n a: A_FrameVector,\n b: A_FrameVector\n ): number {\n this.assertSameLength(a, b)\n\n let sum = 0\n for (let i = 0; i < a.length; i++) {\n const diff = a.values[i] - b.values[i]\n sum += diff * diff\n }\n return Math.sqrt(sum)\n }\n\n nearest(\n query: A_FrameVector,\n vectors: readonly A_FrameVector[],\n limit = 1\n ): A_FrameVector[] {\n return [...vectors]\n .map(v => ({\n vector: v,\n score: this.cosineSimilarity(query, v),\n }))\n .sort((a, b) => b.score - a.score)\n .slice(0, limit)\n .map(r => r.vector)\n }\n\n rank(\n query: A_FrameVector,\n vectors: readonly A_FrameVector[]\n ): Array<{ vector: A_FrameVector; score: number }> {\n return vectors\n .map(v => ({\n vector: v,\n score: this.cosineSimilarity(query, v),\n }))\n .sort((a, b) => b.score - a.score)\n }\n\n private assertSameLength(\n a: A_FrameVector,\n b: A_FrameVector\n ) {\n if (a.length !== b.length) {\n throw new Error(\n `Embedding dimension mismatch: ${a.length} vs ${b.length}`\n )\n }\n }\n\n\n\n /**\n * Search by plain text — sends the query to the embed server via channel first.\n */\n // async searchByText(\n // query: string,\n // channel: A_FrameChannel,\n // options: A_FrameSearchOptions = {},\n // ): Promise<A_FrameDefinition_SearchResult[]> {\n // this.assertLoaded();\n // const resp = await channel.embed(query);\n // const queryEmbedding = new Float32Array(resp.data[0].embedding);\n // return this.search(queryEmbedding, options);\n // }\n\n}"]}
@@ -0,0 +1,6 @@
1
+ // package.json
2
+ var version = "0.0.22";
3
+
4
+ export { version };
5
+ //# sourceMappingURL=chunk-TO4BPKCY.mjs.map
6
+ //# sourceMappingURL=chunk-TO4BPKCY.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../package.json"],"names":[],"mappings":";AAEE,IAAA,OAAA,GAAW","file":"chunk-TO4BPKCY.mjs","sourcesContent":["{\n \"name\": \"@adaas/a-frame\",\n \"version\": \"0.0.22\",\n \"description\": \"A-frame is index build engine for A-Concept ecosystem. It provides a way to build index structures for A-Concept basics\",\n \"license\": \"Apache-2.0\",\n \"author\": {\n \"name\": \"ADAAS YAZILIM LİMİTED ŞİRKETİ\",\n \"email\": \"contact-us@adaas.org\"\n },\n \"bugs\": {\n \"url\": \"https://github.com/ADAAS-org/adaas-a-frame/issues\"\n },\n \"homepage\": \"https://github.com/ADAAS-org/adaas-a-frame#readme\",\n \"repository\": {\n \"type\": \"git\",\n \"url\": \"git+https://github.com/ADAAS-org/adaas-a-frame.git\"\n },\n \"bin\": {\n \"a-frame\": \"./dist/index.cjs\"\n },\n \"exports\": {\n \".\": {\n \"browser\": {\n \"types\": \"./dist/browser/index.d.mts\",\n \"import\": \"./dist/browser/index.mjs\"\n },\n \"types\": \"./dist/node/index.d.ts\",\n \"import\": \"./dist/node/index.mjs\",\n \"require\": \"./dist/node/index.cjs\"\n },\n \"./core\": {\n \"browser\": {\n \"types\": \"./dist/browser/core.d.mts\",\n \"import\": \"./dist/browser/core.mjs\"\n },\n \"types\": \"./dist/node/core.d.ts\",\n \"import\": \"./dist/node/core.mjs\",\n \"require\": \"./dist/node/core.cjs\"\n },\n \"./bundle\": {\n \"browser\": {\n \"types\": \"./dist/browser/bundle.d.mts\",\n \"import\": \"./dist/browser/bundle.mjs\"\n },\n \"types\": \"./dist/node/bundle.d.ts\",\n \"import\": \"./dist/node/bundle.mjs\",\n \"require\": \"./dist/node/bundle.cjs\"\n },\n \"./channel\": {\n \"browser\": {\n \"types\": \"./dist/browser/channel.d.mts\",\n \"import\": \"./dist/browser/channel.mjs\"\n },\n \"types\": \"./dist/node/channel.d.ts\",\n \"import\": \"./dist/node/channel.mjs\",\n \"require\": \"./dist/node/channel.cjs\"\n },\n \"./crypto\": {\n \"browser\": {\n \"types\": \"./dist/browser/crypto.d.mts\",\n \"import\": \"./dist/browser/crypto.mjs\"\n },\n \"types\": \"./dist/node/crypto.d.ts\",\n \"import\": \"./dist/node/crypto.mjs\",\n \"require\": \"./dist/node/crypto.cjs\"\n },\n \"./definition\": {\n \"browser\": {\n \"types\": \"./dist/browser/definition.d.mts\",\n \"import\": \"./dist/browser/definition.mjs\"\n },\n \"types\": \"./dist/node/definition.d.ts\",\n \"import\": \"./dist/node/definition.mjs\",\n \"require\": \"./dist/node/definition.cjs\"\n },\n \"./dynamic-feature\": {\n \"browser\": {\n \"types\": \"./dist/browser/dynamic-feature.d.mts\",\n \"import\": \"./dist/browser/dynamic-feature.mjs\"\n },\n \"types\": \"./dist/node/dynamic-feature.d.ts\",\n \"import\": \"./dist/node/dynamic-feature.mjs\",\n \"require\": \"./dist/node/dynamic-feature.cjs\"\n },\n \"./dynamic-structure\": {\n \"browser\": {\n \"types\": \"./dist/browser/dynamic-structure.d.mts\",\n \"import\": \"./dist/browser/dynamic-structure.mjs\"\n },\n \"types\": \"./dist/node/dynamic-structure.d.ts\",\n \"import\": \"./dist/node/dynamic-structure.mjs\",\n \"require\": \"./dist/node/dynamic-structure.cjs\"\n },\n \"./env\": {\n \"browser\": {\n \"types\": \"./dist/browser/env.d.mts\",\n \"import\": \"./dist/browser/env.mjs\"\n },\n \"types\": \"./dist/node/env.d.ts\",\n \"import\": \"./dist/node/env.mjs\",\n \"require\": \"./dist/node/env.cjs\"\n },\n \"./index\": {\n \"browser\": {\n \"types\": \"./dist/browser/frame-index.d.mts\",\n \"import\": \"./dist/browser/frame-index.mjs\"\n },\n \"types\": \"./dist/node/frame-index.d.ts\",\n \"import\": \"./dist/node/frame-index.mjs\",\n \"require\": \"./dist/node/frame-index.cjs\"\n },\n \"./logger\": {\n \"browser\": {\n \"types\": \"./dist/browser/logger.d.mts\",\n \"import\": \"./dist/browser/logger.mjs\"\n },\n \"types\": \"./dist/node/logger.d.ts\",\n \"import\": \"./dist/node/logger.mjs\",\n \"require\": \"./dist/node/logger.cjs\"\n },\n \"./namespace\": {\n \"browser\": {\n \"types\": \"./dist/browser/namespace.d.mts\",\n \"import\": \"./dist/browser/namespace.mjs\"\n },\n \"types\": \"./dist/node/namespace.d.ts\",\n \"import\": \"./dist/node/namespace.mjs\",\n \"require\": \"./dist/node/namespace.cjs\"\n },\n \"./storage\": {\n \"browser\": {\n \"types\": \"./dist/browser/storage.d.mts\",\n \"import\": \"./dist/browser/storage.mjs\"\n },\n \"types\": \"./dist/node/storage.d.ts\",\n \"import\": \"./dist/node/storage.mjs\",\n \"require\": \"./dist/node/storage.cjs\"\n },\n \"./vector\": {\n \"browser\": {\n \"types\": \"./dist/browser/vector.d.mts\",\n \"import\": \"./dist/browser/vector.mjs\"\n },\n \"types\": \"./dist/node/vector.d.ts\",\n \"import\": \"./dist/node/vector.mjs\",\n \"require\": \"./dist/node/vector.cjs\"\n }\n },\n \"keywords\": [\n \"adaas\",\n \"a-frame\",\n \"ai index\",\n \"embeddings\",\n \"a-concept\",\n \"rag\"\n ],\n \"sideEffects\": false,\n \"nodemonConfig\": {\n \"ignore\": [\n \"**/*.test.ts\",\n \"**/*.spec.ts\",\n \".git\",\n \"node_modules\"\n ],\n \"watch\": [\n \"src\",\n \"examples\"\n ],\n \"exec\": \"node -r tsconfig-paths/register -r ts-node/register \",\n \"ext\": \"ts, js\"\n },\n \"scripts\": {\n \"test\": \"jest --detectOpenHandles\",\n \"test:browser\": \"jest --config jest.config.browser.ts --detectOpenHandles\",\n \"start\": \"nodemon ./tests/example-usage.ts\",\n \"start:test\": \"node -r tsconfig-paths/register -r ts-node/register ./index.ts\",\n \"release\": \"npm run test && npm run build && git add . && git commit -m \\\"new version created :: $(cat package.json | grep version | head -1 | awk -F: '{ print $2 }' | sed 's/[\\\",]//g')\\\" && npm version patch && npm publish --access public\",\n \"version\": \"echo git add .\",\n \"postversion\": \"git push --no-verify && git push --tags --no-verify && echo \\\"\\n======Version Pushed Successfully=====\\n\\\" \",\n \"echo-version\": \"echo $npm_package_version\",\n \"build\": \"tsup --config tsup.config.ts\"\n },\n \"dependencies\": {\n \"@adaas/a-concept\": \"^0.3.14\"\n },\n \"devDependencies\": {\n \"@types/chai\": \"^4.3.14\",\n \"@types/jest\": \"^29.5.12\",\n \"@types/mocha\": \"^10.0.6\",\n \"@types/node\": \"^24.9.1\",\n \"chai\": \"^5.1.0\",\n \"dotenv\": \"^16.6.1\",\n \"jest\": \"^29.7.0\",\n \"jest-environment-jsdom\": \"^29.7.0\",\n \"mocha\": \"^10.4.0\",\n \"nodemon\": \"^3.1.4\",\n \"ts-jest\": \"^29.1.2\",\n \"ts-node\": \"^10.9.2\",\n \"tsconfig-paths\": \"^4.2.0\",\n \"tscpaths\": \"^0.0.9\",\n \"tsup\": \"^8.5.0\"\n },\n \"directories\": {\n \"doc\": \"docs\",\n \"test\": \"tests\"\n }\n}\n"]}