@adaas/a-frame 0.0.23 → 0.1.2

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 (672) hide show
  1. package/.conf/tsconfig.browser.json +7 -1
  2. package/.conf/tsconfig.node.json +7 -1
  3. package/dist/browser/A-FrameBrowserStorageBlobs.context-CZTTvpn2.d.mts +53 -0
  4. package/dist/browser/A-FrameBrowserStorageBlobs.context-CaGTyatz.d.mts +40 -0
  5. package/dist/browser/A-FrameBrowserStorageBlobs.context-DjeEH8cn.d.mts +53 -0
  6. package/dist/browser/A-FrameBrowserStorageBlobs.context-vCsuTea9.d.mts +40 -0
  7. package/dist/browser/A-FrameBundle.types-LzfgdMiQ.d.mts +71 -0
  8. package/dist/browser/A-FrameChannel.component-4mTNctXL.d.mts +704 -0
  9. package/dist/browser/A-FrameChannel.types-BXEKJK9t.d.mts +205 -0
  10. package/dist/browser/A-FrameChannel.types-Ba3wgUZj.d.mts +199 -0
  11. package/dist/browser/A-FrameChannel.types-BfINhQZe.d.mts +145 -0
  12. package/dist/browser/A-FrameChannel.types-DfacgYL1.d.mts +199 -0
  13. package/dist/browser/A-FrameCompletion.entity-Dzy9sIa8.d.mts +72 -0
  14. package/dist/browser/A-FrameDefinition.entity-C1aK-gdl.d.mts +370 -0
  15. package/dist/browser/A-FrameDefinition.entity-CKPXsarS.d.mts +358 -0
  16. package/dist/browser/A-FrameDefinition.entity-yA0GsBoe.d.mts +143 -0
  17. package/dist/browser/A-FrameDefinition.types-BT02yAhQ.d.mts +232 -0
  18. package/dist/browser/A-FrameDynamicContentOperation.context-CoViNb19.d.mts +297 -0
  19. package/dist/browser/A-FrameDynamicContentOperation.context-Dd7Lb7X2.d.mts +266 -0
  20. package/dist/browser/A-FrameDynamicPatch.entity-BRuF1tqs.d.mts +29 -0
  21. package/dist/browser/A-FrameDynamicStructure.entity-DMvI_EPT.d.mts +210 -0
  22. package/dist/browser/A-FrameDynamicStructure.entity-DxkPP9mR.d.mts +235 -0
  23. package/dist/browser/A-FrameEnv.types-DnK-CYVk.d.mts +21 -0
  24. package/dist/browser/A-FrameNamespace.entity-BDg1FUgo.d.mts +136 -0
  25. package/dist/browser/A-FrameSchema.entity-DjYIhsoj.d.mts +141 -0
  26. package/dist/browser/A-FrameSegment.entity-D1xjjWvG.d.mts +161 -0
  27. package/dist/browser/A-FrameSegment.entity-D7Aj39Wh.d.mts +146 -0
  28. package/dist/browser/bundle.d.mts +6 -2
  29. package/dist/browser/bundle.mjs +1 -1
  30. package/dist/browser/bundle.mjs.map +1 -1
  31. package/dist/browser/channel.d.mts +51 -74
  32. package/dist/browser/channel.mjs +1 -2
  33. package/dist/browser/channel.mjs.map +1 -1
  34. package/dist/browser/chunk-2RNFZSBL.mjs +2 -0
  35. package/dist/browser/chunk-2RNFZSBL.mjs.map +1 -0
  36. package/dist/browser/chunk-46LRNZRG.mjs +2 -0
  37. package/dist/browser/chunk-46LRNZRG.mjs.map +1 -0
  38. package/dist/browser/chunk-52HFO3OY.mjs +2 -0
  39. package/dist/browser/chunk-52HFO3OY.mjs.map +1 -0
  40. package/dist/browser/chunk-643KGQKR.mjs +3 -0
  41. package/dist/browser/chunk-643KGQKR.mjs.map +1 -0
  42. package/dist/browser/chunk-66BBIZAM.mjs +3 -0
  43. package/dist/browser/chunk-66BBIZAM.mjs.map +1 -0
  44. package/dist/browser/chunk-6NPQURSO.mjs +2 -0
  45. package/dist/browser/chunk-6NPQURSO.mjs.map +1 -0
  46. package/dist/browser/chunk-6WAOMX7M.mjs +2 -0
  47. package/dist/browser/chunk-6WAOMX7M.mjs.map +1 -0
  48. package/dist/browser/chunk-77HU5SRQ.mjs +2 -0
  49. package/dist/browser/chunk-77HU5SRQ.mjs.map +1 -0
  50. package/dist/browser/chunk-AET6XULU.mjs +2 -0
  51. package/dist/browser/chunk-AET6XULU.mjs.map +1 -0
  52. package/dist/browser/chunk-BIBPE2GT.mjs +3 -0
  53. package/dist/browser/chunk-BIBPE2GT.mjs.map +1 -0
  54. package/dist/browser/chunk-CDJKU4DK.mjs +2 -0
  55. package/dist/browser/chunk-CDJKU4DK.mjs.map +1 -0
  56. package/dist/browser/chunk-CT67Y46H.mjs +3 -0
  57. package/dist/browser/chunk-CT67Y46H.mjs.map +1 -0
  58. package/dist/browser/chunk-EFC7OUNO.mjs +2 -0
  59. package/dist/browser/chunk-EFC7OUNO.mjs.map +1 -0
  60. package/dist/browser/chunk-EJIX7H7A.mjs +2 -0
  61. package/dist/browser/chunk-EJIX7H7A.mjs.map +1 -0
  62. package/dist/browser/chunk-FHJ5ATND.mjs +3 -0
  63. package/dist/browser/chunk-FHJ5ATND.mjs.map +1 -0
  64. package/dist/browser/chunk-FVH2EEVP.mjs +3 -0
  65. package/dist/browser/chunk-FVH2EEVP.mjs.map +1 -0
  66. package/dist/browser/chunk-G6ULYKSU.mjs +2 -0
  67. package/dist/browser/chunk-G6ULYKSU.mjs.map +1 -0
  68. package/dist/browser/chunk-G7MKGKG5.mjs +2 -0
  69. package/dist/browser/chunk-G7MKGKG5.mjs.map +1 -0
  70. package/dist/browser/chunk-GOADBDTE.mjs +2 -0
  71. package/dist/browser/chunk-GOADBDTE.mjs.map +1 -0
  72. package/dist/browser/chunk-GOMJPGVB.mjs +3 -0
  73. package/dist/browser/chunk-GOMJPGVB.mjs.map +1 -0
  74. package/dist/browser/chunk-INQV5UZA.mjs +2 -0
  75. package/dist/browser/chunk-INQV5UZA.mjs.map +1 -0
  76. package/dist/browser/chunk-INXPVBTZ.mjs +2 -0
  77. package/dist/browser/chunk-INXPVBTZ.mjs.map +1 -0
  78. package/dist/browser/chunk-KFMVTZ7T.mjs +2 -0
  79. package/dist/browser/chunk-KFMVTZ7T.mjs.map +1 -0
  80. package/dist/browser/chunk-LK6C7C3S.mjs +2 -0
  81. package/dist/browser/chunk-LK6C7C3S.mjs.map +1 -0
  82. package/dist/browser/chunk-LOGRQOWP.mjs +3 -0
  83. package/dist/browser/chunk-LOGRQOWP.mjs.map +1 -0
  84. package/dist/browser/chunk-LZACYSUC.mjs +3 -0
  85. package/dist/browser/chunk-LZACYSUC.mjs.map +1 -0
  86. package/dist/browser/chunk-NTOIVRX3.mjs +2 -0
  87. package/dist/browser/chunk-NTOIVRX3.mjs.map +1 -0
  88. package/dist/browser/chunk-OES2N3X7.mjs +3 -0
  89. package/dist/browser/chunk-OES2N3X7.mjs.map +1 -0
  90. package/dist/browser/chunk-OFKV5GNB.mjs +1 -1
  91. package/dist/browser/chunk-OFKV5GNB.mjs.map +1 -1
  92. package/dist/browser/chunk-OVLM5A32.mjs +3 -0
  93. package/dist/browser/chunk-OVLM5A32.mjs.map +1 -0
  94. package/dist/browser/chunk-QATIN7CO.mjs +1 -1
  95. package/dist/browser/chunk-QATIN7CO.mjs.map +1 -1
  96. package/dist/browser/chunk-QOL7CAUZ.mjs +2 -0
  97. package/dist/browser/chunk-QOL7CAUZ.mjs.map +1 -0
  98. package/dist/browser/chunk-RCB3PX4V.mjs +2 -0
  99. package/dist/browser/chunk-RCB3PX4V.mjs.map +1 -0
  100. package/dist/browser/chunk-RWQSCROK.mjs +3 -0
  101. package/dist/browser/chunk-RWQSCROK.mjs.map +1 -0
  102. package/dist/browser/chunk-TIAUMK2X.mjs +2 -0
  103. package/dist/browser/chunk-TIAUMK2X.mjs.map +1 -0
  104. package/dist/browser/chunk-TQPC5MYM.mjs +3 -0
  105. package/dist/browser/chunk-TQPC5MYM.mjs.map +1 -0
  106. package/dist/browser/chunk-UNIKTCXL.mjs +3 -0
  107. package/dist/browser/chunk-UNIKTCXL.mjs.map +1 -0
  108. package/dist/browser/chunk-UULJJ5C5.mjs +3 -0
  109. package/dist/browser/chunk-UULJJ5C5.mjs.map +1 -0
  110. package/dist/browser/chunk-VSSANMPF.mjs +2 -0
  111. package/dist/browser/chunk-VSSANMPF.mjs.map +1 -0
  112. package/dist/browser/chunk-VW2BZYNY.mjs +2 -0
  113. package/dist/browser/chunk-VW2BZYNY.mjs.map +1 -0
  114. package/dist/browser/chunk-WAXBOWM6.mjs +3 -0
  115. package/dist/browser/chunk-WAXBOWM6.mjs.map +1 -0
  116. package/dist/browser/chunk-WXCQCHAX.mjs +2 -0
  117. package/dist/browser/chunk-WXCQCHAX.mjs.map +1 -0
  118. package/dist/browser/chunk-XKKBIIZG.mjs +3 -0
  119. package/dist/browser/chunk-XKKBIIZG.mjs.map +1 -0
  120. package/dist/browser/chunk-XR7FVA5M.mjs +3 -0
  121. package/dist/browser/chunk-XR7FVA5M.mjs.map +1 -0
  122. package/dist/browser/chunk-YQJFTBGV.mjs +3 -0
  123. package/dist/browser/chunk-YQJFTBGV.mjs.map +1 -0
  124. package/dist/browser/chunk-YTAMZDWC.mjs +3 -0
  125. package/dist/browser/chunk-YTAMZDWC.mjs.map +1 -0
  126. package/dist/browser/chunk-ZEONOTRL.mjs +2 -0
  127. package/dist/browser/chunk-ZEONOTRL.mjs.map +1 -0
  128. package/dist/browser/completion.d.mts +10 -0
  129. package/dist/browser/completion.mjs +2 -0
  130. package/dist/browser/completion.mjs.map +1 -0
  131. package/dist/browser/core.d.mts +8 -7
  132. package/dist/browser/core.mjs +1 -1
  133. package/dist/browser/core.mjs.map +1 -1
  134. package/dist/browser/credentials.d.mts +74 -0
  135. package/dist/browser/credentials.mjs +2 -0
  136. package/dist/browser/credentials.mjs.map +1 -0
  137. package/dist/browser/definition.d.mts +3 -2
  138. package/dist/browser/definition.mjs +1 -1
  139. package/dist/browser/dynamic-content.d.mts +13 -0
  140. package/dist/browser/dynamic-content.mjs +2 -0
  141. package/dist/browser/dynamic-content.mjs.map +1 -0
  142. package/dist/browser/dynamic-feature.d.mts +66 -6
  143. package/dist/browser/dynamic-feature.mjs +3 -1
  144. package/dist/browser/dynamic-feature.mjs.map +1 -1
  145. package/dist/browser/dynamic-structure.d.mts +77 -3
  146. package/dist/browser/dynamic-structure.mjs +1 -1
  147. package/dist/browser/dynamic-structure.mjs.map +1 -1
  148. package/dist/browser/env.d.mts +16 -2
  149. package/dist/browser/env.mjs +1 -1
  150. package/dist/browser/frame-index.d.mts +70 -9
  151. package/dist/browser/frame-index.mjs +1 -1
  152. package/dist/browser/models.d.mts +64 -0
  153. package/dist/browser/models.mjs +2 -0
  154. package/dist/browser/models.mjs.map +1 -0
  155. package/dist/browser/namespace.d.mts +1 -1
  156. package/dist/browser/namespace.mjs +1 -1
  157. package/dist/browser/schema.d.mts +10 -0
  158. package/dist/browser/schema.mjs +2 -0
  159. package/dist/browser/schema.mjs.map +1 -0
  160. package/dist/browser/segment.d.mts +13 -0
  161. package/dist/browser/segment.mjs +2 -0
  162. package/dist/browser/segment.mjs.map +1 -0
  163. package/dist/browser/storage.d.mts +13 -7
  164. package/dist/browser/storage.mjs +1 -1
  165. package/dist/browser/vector.d.mts +7 -0
  166. package/dist/browser/vector.mjs +1 -1
  167. package/dist/cli.cjs +5593 -0
  168. package/dist/cli.cjs.map +1 -0
  169. package/dist/node/A-FrameChannel.component--YErPxf4.d.mts +97 -0
  170. package/dist/node/A-FrameChannel.component-BjgqMh1B.d.ts +97 -0
  171. package/dist/node/A-FrameChannel.component-C0O3TaRD.d.ts +679 -0
  172. package/dist/node/A-FrameChannel.component-CgBZYBz0.d.mts +379 -0
  173. package/dist/node/A-FrameChannel.component-CkZserv3.d.ts +97 -0
  174. package/dist/node/A-FrameChannel.component-DMA-3sUB.d.mts +679 -0
  175. package/dist/node/A-FrameChannel.component-DYV8omYR.d.ts +379 -0
  176. package/dist/node/A-FrameChannel.component-DwgYNfFn.d.mts +97 -0
  177. package/dist/node/A-FrameChannel.types-B3_xWKEO.d.mts +151 -0
  178. package/dist/node/A-FrameChannel.types-BGcVXTqa.d.ts +205 -0
  179. package/dist/node/A-FrameChannel.types-Boi8QqDK.d.mts +205 -0
  180. package/dist/node/A-FrameChannel.types-BsE6bNky.d.mts +205 -0
  181. package/dist/node/A-FrameChannel.types-C-gxXl8m.d.ts +151 -0
  182. package/dist/node/A-FrameChannel.types-DD2B11rf.d.ts +205 -0
  183. package/dist/node/A-FrameChannel.types-DYMgRiCF.d.mts +205 -0
  184. package/dist/node/A-FrameChannel.types-DwyZRsOy.d.ts +205 -0
  185. package/dist/node/A-FrameCompletion.entity-Brx11JMp.d.ts +72 -0
  186. package/dist/node/A-FrameCompletion.entity-Dzy9sIa8.d.mts +72 -0
  187. package/dist/node/A-FrameDefinition.entity-BIF0sclD.d.ts +370 -0
  188. package/dist/node/A-FrameDefinition.entity-Bt9ua6cn.d.ts +358 -0
  189. package/dist/node/A-FrameDefinition.entity-C0kzaGJ0.d.ts +143 -0
  190. package/dist/node/A-FrameDefinition.entity-C1aK-gdl.d.mts +370 -0
  191. package/dist/node/A-FrameDefinition.entity-CKPXsarS.d.mts +358 -0
  192. package/dist/node/A-FrameDefinition.entity-yA0GsBoe.d.mts +143 -0
  193. package/dist/node/A-FrameDefinition.types-BA_pLGpo.d.ts +232 -0
  194. package/dist/node/A-FrameDefinition.types-BT02yAhQ.d.mts +232 -0
  195. package/dist/node/A-FrameDynamicContentOperation.context-C_aH1gEn.d.ts +297 -0
  196. package/dist/node/A-FrameDynamicContentOperation.context-CoViNb19.d.mts +297 -0
  197. package/dist/node/A-FrameDynamicContentOperation.context-DRqH2c3o.d.ts +266 -0
  198. package/dist/node/A-FrameDynamicContentOperation.context-Dd7Lb7X2.d.mts +266 -0
  199. package/dist/node/A-FrameDynamicPatch.entity-BRuF1tqs.d.mts +29 -0
  200. package/dist/node/A-FrameDynamicPatch.entity-BRuF1tqs.d.ts +29 -0
  201. package/dist/node/A-FrameDynamicStructure.entity-BVCbolMd.d.ts +210 -0
  202. package/dist/node/A-FrameDynamicStructure.entity-DMvI_EPT.d.mts +210 -0
  203. package/dist/node/A-FrameDynamicStructure.entity-DxkPP9mR.d.mts +235 -0
  204. package/dist/node/A-FrameDynamicStructure.entity-DxkPP9mR.d.ts +235 -0
  205. package/dist/node/A-FrameLogger.component.env-node-DIDBeuiz.d.mts +114 -0
  206. package/dist/node/A-FrameLogger.component.env-node-DIDBeuiz.d.ts +114 -0
  207. package/dist/node/A-FrameNamespace.entity-BDg1FUgo.d.mts +136 -0
  208. package/dist/node/A-FrameNamespace.entity-HDXcLGcS.d.ts +136 -0
  209. package/dist/node/A-FrameSchema.entity-DjYIhsoj.d.mts +141 -0
  210. package/dist/node/A-FrameSchema.entity-DjYIhsoj.d.ts +141 -0
  211. package/dist/node/A-FrameSegment.entity-C0izuOmC.d.ts +161 -0
  212. package/dist/node/A-FrameSegment.entity-CMCgFCWU.d.ts +146 -0
  213. package/dist/node/A-FrameSegment.entity-D1xjjWvG.d.mts +161 -0
  214. package/dist/node/A-FrameSegment.entity-D7Aj39Wh.d.mts +146 -0
  215. package/dist/node/A-FrameStorage.component-BnNKzvpY.d.mts +107 -0
  216. package/dist/node/A-FrameStorage.component-CDztogHV.d.mts +107 -0
  217. package/dist/node/A-FrameStorage.component-CW0YgKDI.d.mts +107 -0
  218. package/dist/node/A-FrameStorage.component-D4UEkIBx.d.mts +107 -0
  219. package/dist/node/A-FrameStorage.component-DV_jwK6r.d.ts +107 -0
  220. package/dist/node/A-FrameStorage.component-Di4EvbtC.d.ts +107 -0
  221. package/dist/node/A-FrameStorage.component-emIH1a1M.d.ts +107 -0
  222. package/dist/node/A-FrameStorage.component-y-JPiIQ4.d.ts +107 -0
  223. package/dist/node/bundle.cjs +66 -21
  224. package/dist/node/bundle.cjs.map +1 -1
  225. package/dist/node/bundle.d.mts +88 -24
  226. package/dist/node/bundle.d.ts +88 -24
  227. package/dist/node/bundle.mjs +65 -20
  228. package/dist/node/bundle.mjs.map +1 -1
  229. package/dist/node/channel.cjs +33 -26
  230. package/dist/node/channel.d.mts +10 -6
  231. package/dist/node/channel.d.ts +10 -6
  232. package/dist/node/channel.mjs +13 -6
  233. package/dist/node/chunk-2HUSP34L.mjs +55 -0
  234. package/dist/node/chunk-2HUSP34L.mjs.map +1 -0
  235. package/dist/node/chunk-2KXGI2E5.cjs +474 -0
  236. package/dist/node/chunk-2KXGI2E5.cjs.map +1 -0
  237. package/dist/node/chunk-2OQMOIR5.mjs +170 -0
  238. package/dist/node/chunk-2OQMOIR5.mjs.map +1 -0
  239. package/dist/node/chunk-2UI7RJ4Q.mjs +207 -0
  240. package/dist/node/chunk-2UI7RJ4Q.mjs.map +1 -0
  241. package/dist/node/chunk-3SLICJ3L.cjs +265 -0
  242. package/dist/node/chunk-3SLICJ3L.cjs.map +1 -0
  243. package/dist/node/chunk-3ZDHQOIU.cjs +92 -0
  244. package/dist/node/chunk-3ZDHQOIU.cjs.map +1 -0
  245. package/dist/node/chunk-5BKCX2RO.mjs +33 -0
  246. package/dist/node/chunk-5BKCX2RO.mjs.map +1 -0
  247. package/dist/node/chunk-5NCGXLP2.mjs +6 -0
  248. package/dist/node/chunk-5NCGXLP2.mjs.map +1 -0
  249. package/dist/node/chunk-5OTXZ7BB.mjs +53 -0
  250. package/dist/node/chunk-5OTXZ7BB.mjs.map +1 -0
  251. package/dist/node/chunk-5PYIATGT.mjs +469 -0
  252. package/dist/node/chunk-5PYIATGT.mjs.map +1 -0
  253. package/dist/node/chunk-64QCZG53.cjs +57 -0
  254. package/dist/node/chunk-64QCZG53.cjs.map +1 -0
  255. package/dist/node/chunk-652OEICJ.cjs +4 -0
  256. package/dist/node/chunk-652OEICJ.cjs.map +1 -0
  257. package/dist/node/chunk-674ZX6XJ.mjs +187 -0
  258. package/dist/node/chunk-674ZX6XJ.mjs.map +1 -0
  259. package/dist/node/chunk-6ID2IXYX.mjs +6 -0
  260. package/dist/node/chunk-6ID2IXYX.mjs.map +1 -0
  261. package/dist/node/chunk-6KAGWGTE.mjs +529 -0
  262. package/dist/node/chunk-6KAGWGTE.mjs.map +1 -0
  263. package/dist/node/chunk-7EM3Q7HA.mjs +655 -0
  264. package/dist/node/chunk-7EM3Q7HA.mjs.map +1 -0
  265. package/dist/node/chunk-7MVVMISA.cjs +293 -0
  266. package/dist/node/chunk-7MVVMISA.cjs.map +1 -0
  267. package/dist/node/chunk-7NSLGCAZ.mjs +1395 -0
  268. package/dist/node/chunk-7NSLGCAZ.mjs.map +1 -0
  269. package/dist/node/chunk-7OLLATCC.mjs +1289 -0
  270. package/dist/node/chunk-7OLLATCC.mjs.map +1 -0
  271. package/dist/node/chunk-7SEZMRLI.cjs +183 -0
  272. package/dist/node/chunk-7SEZMRLI.cjs.map +1 -0
  273. package/dist/node/chunk-A4CVDMSV.mjs +608 -0
  274. package/dist/node/chunk-A4CVDMSV.mjs.map +1 -0
  275. package/dist/node/chunk-A7CJIUYY.cjs +4 -0
  276. package/dist/node/chunk-A7CJIUYY.cjs.map +1 -0
  277. package/dist/node/chunk-ALFFUJ2J.mjs +163 -0
  278. package/dist/node/chunk-ALFFUJ2J.mjs.map +1 -0
  279. package/dist/node/chunk-AMMQ76RJ.mjs +179 -0
  280. package/dist/node/chunk-AMMQ76RJ.mjs.map +1 -0
  281. package/dist/node/chunk-AUKWKGVA.cjs +688 -0
  282. package/dist/node/chunk-AUKWKGVA.cjs.map +1 -0
  283. package/dist/node/chunk-AY6UMDWD.cjs +270 -0
  284. package/dist/node/chunk-AY6UMDWD.cjs.map +1 -0
  285. package/dist/node/chunk-B7ZDJXD3.cjs +1 -1
  286. package/dist/node/chunk-B7ZDJXD3.cjs.map +1 -1
  287. package/dist/node/chunk-BBYOL3LM.cjs +1308 -0
  288. package/dist/node/chunk-BBYOL3LM.cjs.map +1 -0
  289. package/dist/node/chunk-BINGAHFW.cjs +1308 -0
  290. package/dist/node/chunk-BINGAHFW.cjs.map +1 -0
  291. package/dist/node/chunk-BSBY37MG.cjs +55 -0
  292. package/dist/node/chunk-BSBY37MG.cjs.map +1 -0
  293. package/dist/node/chunk-BWX7HFTH.cjs +209 -0
  294. package/dist/node/chunk-BWX7HFTH.cjs.map +1 -0
  295. package/dist/node/chunk-C37B34MH.cjs +188 -0
  296. package/dist/node/chunk-C37B34MH.cjs.map +1 -0
  297. package/dist/node/chunk-C6BBKHQG.cjs +250 -0
  298. package/dist/node/chunk-C6BBKHQG.cjs.map +1 -0
  299. package/dist/node/chunk-CLCAS67N.cjs +8 -0
  300. package/dist/node/chunk-CLCAS67N.cjs.map +1 -0
  301. package/dist/node/chunk-CNU3CRTR.mjs +43 -0
  302. package/dist/node/chunk-CNU3CRTR.mjs.map +1 -0
  303. package/dist/node/chunk-CV5FPKU6.mjs +6 -0
  304. package/dist/node/chunk-CV5FPKU6.mjs.map +1 -0
  305. package/dist/node/chunk-CZYOAFIR.mjs +129 -0
  306. package/dist/node/chunk-CZYOAFIR.mjs.map +1 -0
  307. package/dist/node/chunk-D2HTYEJZ.cjs +209 -0
  308. package/dist/node/chunk-D2HTYEJZ.cjs.map +1 -0
  309. package/dist/node/chunk-EMLZZPOT.cjs +1446 -0
  310. package/dist/node/chunk-EMLZZPOT.cjs.map +1 -0
  311. package/dist/node/chunk-EOIXXXBV.cjs +55 -0
  312. package/dist/node/chunk-EOIXXXBV.cjs.map +1 -0
  313. package/dist/node/chunk-F46TSY2K.cjs +541 -0
  314. package/dist/node/chunk-F46TSY2K.cjs.map +1 -0
  315. package/dist/node/chunk-F4UCOZW5.mjs +1 -1
  316. package/dist/node/chunk-F4UCOZW5.mjs.map +1 -1
  317. package/dist/node/chunk-F64CK4NI.mjs +53 -0
  318. package/dist/node/chunk-F64CK4NI.mjs.map +1 -0
  319. package/dist/node/chunk-FAV62EUG.cjs +35 -0
  320. package/dist/node/chunk-FAV62EUG.cjs.map +1 -0
  321. package/dist/node/chunk-GHSPKZUN.mjs +529 -0
  322. package/dist/node/chunk-GHSPKZUN.mjs.map +1 -0
  323. package/dist/node/chunk-GRNVK7DW.mjs +97 -0
  324. package/dist/node/chunk-GRNVK7DW.mjs.map +1 -0
  325. package/dist/node/chunk-GRR6NNWY.cjs +688 -0
  326. package/dist/node/chunk-GRR6NNWY.cjs.map +1 -0
  327. package/dist/node/chunk-H5VGRPD5.cjs +8 -0
  328. package/dist/node/chunk-H5VGRPD5.cjs.map +1 -0
  329. package/dist/node/chunk-HAMDDCPS.cjs +8 -0
  330. package/dist/node/chunk-HAMDDCPS.cjs.map +1 -0
  331. package/dist/node/chunk-HAORARSB.cjs +75 -0
  332. package/dist/node/chunk-HAORARSB.cjs.map +1 -0
  333. package/dist/node/chunk-HELNAM5Y.cjs +8 -0
  334. package/dist/node/chunk-HELNAM5Y.cjs.map +1 -0
  335. package/dist/node/chunk-HET6L5PD.mjs +530 -0
  336. package/dist/node/chunk-HET6L5PD.mjs.map +1 -0
  337. package/dist/node/chunk-HI5SEX53.mjs +264 -0
  338. package/dist/node/chunk-HI5SEX53.mjs.map +1 -0
  339. package/dist/node/chunk-HZGFXE4Q.mjs +6 -0
  340. package/dist/node/chunk-HZGFXE4Q.mjs.map +1 -0
  341. package/dist/node/chunk-IAL2NK2V.mjs +73 -0
  342. package/dist/node/chunk-IAL2NK2V.mjs.map +1 -0
  343. package/dist/node/chunk-IHELFDCW.mjs +327 -0
  344. package/dist/node/chunk-IHELFDCW.mjs.map +1 -0
  345. package/dist/node/chunk-ILD6OSYW.mjs +966 -0
  346. package/dist/node/chunk-ILD6OSYW.mjs.map +1 -0
  347. package/dist/node/chunk-IP6DFAO7.mjs +264 -0
  348. package/dist/node/chunk-IP6DFAO7.mjs.map +1 -0
  349. package/dist/node/chunk-IYEDO7OQ.cjs +276 -0
  350. package/dist/node/chunk-IYEDO7OQ.cjs.map +1 -0
  351. package/dist/node/chunk-JFPGFPQD.mjs +1413 -0
  352. package/dist/node/chunk-JFPGFPQD.mjs.map +1 -0
  353. package/dist/node/chunk-JHZGTVYF.cjs +999 -0
  354. package/dist/node/chunk-JHZGTVYF.cjs.map +1 -0
  355. package/dist/node/chunk-JN3UJBUH.mjs +608 -0
  356. package/dist/node/chunk-JN3UJBUH.mjs.map +1 -0
  357. package/dist/node/chunk-JNPDXCCN.mjs +530 -0
  358. package/dist/node/chunk-JNPDXCCN.mjs.map +1 -0
  359. package/dist/node/chunk-JQBYDEMW.mjs +1 -1
  360. package/dist/node/chunk-JQBYDEMW.mjs.map +1 -1
  361. package/dist/node/chunk-JQJ7N4NL.cjs +267 -0
  362. package/dist/node/chunk-JQJ7N4NL.cjs.map +1 -0
  363. package/dist/node/chunk-K4AJBPPY.cjs +174 -0
  364. package/dist/node/chunk-K4AJBPPY.cjs.map +1 -0
  365. package/dist/node/chunk-K7SXPJPK.cjs +131 -0
  366. package/dist/node/chunk-K7SXPJPK.cjs.map +1 -0
  367. package/dist/node/chunk-KFW4GE7H.mjs +1289 -0
  368. package/dist/node/chunk-KFW4GE7H.mjs.map +1 -0
  369. package/dist/node/chunk-KKL2DF2D.cjs +518 -0
  370. package/dist/node/chunk-KKL2DF2D.cjs.map +1 -0
  371. package/dist/node/chunk-KKMKQGTR.cjs +620 -0
  372. package/dist/node/chunk-KKMKQGTR.cjs.map +1 -0
  373. package/dist/node/chunk-KNTO7FCZ.mjs +207 -0
  374. package/dist/node/chunk-KNTO7FCZ.mjs.map +1 -0
  375. package/dist/node/chunk-KTKVW3PH.mjs +286 -0
  376. package/dist/node/chunk-KTKVW3PH.mjs.map +1 -0
  377. package/dist/node/chunk-KZPSF32W.mjs +33 -0
  378. package/dist/node/chunk-KZPSF32W.mjs.map +1 -0
  379. package/dist/node/chunk-LWKFCMA7.mjs +129 -0
  380. package/dist/node/chunk-LWKFCMA7.mjs.map +1 -0
  381. package/dist/node/chunk-M2ZSE6YJ.mjs +512 -0
  382. package/dist/node/chunk-M2ZSE6YJ.mjs.map +1 -0
  383. package/dist/node/chunk-M6DJYGDO.cjs +167 -0
  384. package/dist/node/chunk-M6DJYGDO.cjs.map +1 -0
  385. package/dist/node/chunk-MAHKDTOQ.mjs +3 -0
  386. package/dist/node/chunk-MAHKDTOQ.mjs.map +1 -0
  387. package/dist/node/chunk-MM2R2OM6.cjs +541 -0
  388. package/dist/node/chunk-MM2R2OM6.cjs.map +1 -0
  389. package/dist/node/chunk-MSOD5UQH.cjs +45 -0
  390. package/dist/node/chunk-MSOD5UQH.cjs.map +1 -0
  391. package/dist/node/chunk-MVAWR76Q.cjs +276 -0
  392. package/dist/node/chunk-MVAWR76Q.cjs.map +1 -0
  393. package/dist/node/chunk-MXUO7OR5.cjs +97 -0
  394. package/dist/node/chunk-MXUO7OR5.cjs.map +1 -0
  395. package/dist/node/chunk-N4THTV6P.cjs +131 -0
  396. package/dist/node/chunk-N4THTV6P.cjs.map +1 -0
  397. package/dist/node/chunk-NIXKAQVP.cjs +1 -1
  398. package/dist/node/chunk-NIXKAQVP.cjs.map +1 -1
  399. package/dist/node/chunk-NUPXUUPM.cjs +1428 -0
  400. package/dist/node/chunk-NUPXUUPM.cjs.map +1 -0
  401. package/dist/node/chunk-NWOUVAIS.cjs +45 -0
  402. package/dist/node/chunk-NWOUVAIS.cjs.map +1 -0
  403. package/dist/node/chunk-OK7I5OQ3.mjs +89 -0
  404. package/dist/node/chunk-OK7I5OQ3.mjs.map +1 -0
  405. package/dist/node/chunk-OMGYXCFM.mjs +248 -0
  406. package/dist/node/chunk-OMGYXCFM.mjs.map +1 -0
  407. package/dist/node/chunk-OYC6L5NX.mjs +6 -0
  408. package/dist/node/chunk-OYC6L5NX.mjs.map +1 -0
  409. package/dist/node/chunk-OYZAQMKD.mjs +263 -0
  410. package/dist/node/chunk-OYZAQMKD.mjs.map +1 -0
  411. package/dist/node/chunk-P2LULMNL.cjs +189 -0
  412. package/dist/node/chunk-P2LULMNL.cjs.map +1 -0
  413. package/dist/node/chunk-PABEFHCO.mjs +63 -0
  414. package/dist/node/chunk-PABEFHCO.mjs.map +1 -0
  415. package/dist/node/chunk-Q5NYJQP2.cjs +8 -0
  416. package/dist/node/chunk-Q5NYJQP2.cjs.map +1 -0
  417. package/dist/node/chunk-QCEWWJ3N.cjs +65 -0
  418. package/dist/node/chunk-QCEWWJ3N.cjs.map +1 -0
  419. package/dist/node/chunk-QW4AZ3Z2.cjs +542 -0
  420. package/dist/node/chunk-QW4AZ3Z2.cjs.map +1 -0
  421. package/dist/node/chunk-R2H234YO.cjs +8 -0
  422. package/dist/node/chunk-R2H234YO.cjs.map +1 -0
  423. package/dist/node/chunk-RK5WSZ5J.mjs +43 -0
  424. package/dist/node/chunk-RK5WSZ5J.mjs.map +1 -0
  425. package/dist/node/chunk-RPHYBPXT.mjs +30 -0
  426. package/dist/node/chunk-RPHYBPXT.mjs.map +1 -0
  427. package/dist/node/chunk-RVXASBMQ.mjs +273 -0
  428. package/dist/node/chunk-RVXASBMQ.mjs.map +1 -0
  429. package/dist/node/chunk-RVZTZD32.mjs +187 -0
  430. package/dist/node/chunk-RVZTZD32.mjs.map +1 -0
  431. package/dist/node/chunk-RWLKISZQ.mjs +273 -0
  432. package/dist/node/chunk-RWLKISZQ.mjs.map +1 -0
  433. package/dist/node/chunk-SDKIJDMH.mjs +655 -0
  434. package/dist/node/chunk-SDKIJDMH.mjs.map +1 -0
  435. package/dist/node/chunk-SESXQJDD.cjs +999 -0
  436. package/dist/node/chunk-SESXQJDD.cjs.map +1 -0
  437. package/dist/node/chunk-SKIEPTFS.mjs +6 -0
  438. package/dist/node/chunk-SKIEPTFS.mjs.map +1 -0
  439. package/dist/node/chunk-SL7FT5R5.mjs +94 -0
  440. package/dist/node/chunk-SL7FT5R5.mjs.map +1 -0
  441. package/dist/node/chunk-SXHQW74T.mjs +43 -0
  442. package/dist/node/chunk-SXHQW74T.mjs.map +1 -0
  443. package/dist/node/chunk-TEJKDVNT.cjs +620 -0
  444. package/dist/node/chunk-TEJKDVNT.cjs.map +1 -0
  445. package/dist/node/chunk-TQS5WYND.cjs +352 -0
  446. package/dist/node/chunk-TQS5WYND.cjs.map +1 -0
  447. package/dist/node/chunk-UCAWV2IG.mjs +184 -0
  448. package/dist/node/chunk-UCAWV2IG.mjs.map +1 -0
  449. package/dist/node/chunk-UDUJDEAO.cjs +189 -0
  450. package/dist/node/chunk-UDUJDEAO.cjs.map +1 -0
  451. package/dist/node/chunk-VMJDL4SS.cjs +542 -0
  452. package/dist/node/chunk-VMJDL4SS.cjs.map +1 -0
  453. package/dist/node/chunk-VNOZTB3B.cjs +8 -0
  454. package/dist/node/chunk-VNOZTB3B.cjs.map +1 -0
  455. package/dist/node/chunk-VPMBZGYR.mjs +327 -0
  456. package/dist/node/chunk-VPMBZGYR.mjs.map +1 -0
  457. package/dist/node/chunk-WEPNBKOA.mjs +6 -0
  458. package/dist/node/chunk-WEPNBKOA.mjs.map +1 -0
  459. package/dist/node/chunk-WTBRJXFG.cjs +100 -0
  460. package/dist/node/chunk-WTBRJXFG.cjs.map +1 -0
  461. package/dist/node/chunk-WXCQCHAX.mjs +3 -0
  462. package/dist/node/chunk-WXCQCHAX.mjs.map +1 -0
  463. package/dist/node/chunk-X3TRPYGV.cjs +352 -0
  464. package/dist/node/chunk-X3TRPYGV.cjs.map +1 -0
  465. package/dist/node/chunk-XFUF7SDO.cjs +35 -0
  466. package/dist/node/chunk-XFUF7SDO.cjs.map +1 -0
  467. package/dist/node/chunk-XP2EPEBM.mjs +966 -0
  468. package/dist/node/chunk-XP2EPEBM.mjs.map +1 -0
  469. package/dist/node/chunk-XPIJ6BKP.cjs +45 -0
  470. package/dist/node/chunk-XPIJ6BKP.cjs.map +1 -0
  471. package/dist/node/chunk-YRVBMP7I.cjs +542 -0
  472. package/dist/node/chunk-YRVBMP7I.cjs.map +1 -0
  473. package/dist/node/chunk-ZIHSN5EE.mjs +530 -0
  474. package/dist/node/chunk-ZIHSN5EE.mjs.map +1 -0
  475. package/dist/node/chunk-ZNQMUU7I.cjs +32 -0
  476. package/dist/node/chunk-ZNQMUU7I.cjs.map +1 -0
  477. package/dist/node/completion.cjs +23 -0
  478. package/dist/node/completion.cjs.map +1 -0
  479. package/dist/node/completion.d.mts +10 -0
  480. package/dist/node/completion.d.ts +10 -0
  481. package/dist/node/completion.mjs +6 -0
  482. package/dist/node/completion.mjs.map +1 -0
  483. package/dist/node/core.cjs +69 -42
  484. package/dist/node/core.cjs.map +1 -1
  485. package/dist/node/core.d.mts +14 -9
  486. package/dist/node/core.d.ts +14 -9
  487. package/dist/node/core.mjs +60 -33
  488. package/dist/node/core.mjs.map +1 -1
  489. package/dist/node/credentials.cjs +17 -0
  490. package/dist/node/credentials.cjs.map +1 -0
  491. package/dist/node/credentials.d.mts +74 -0
  492. package/dist/node/credentials.d.ts +74 -0
  493. package/dist/node/credentials.mjs +4 -0
  494. package/dist/node/credentials.mjs.map +1 -0
  495. package/dist/node/definition.cjs +6 -4
  496. package/dist/node/definition.d.mts +3 -2
  497. package/dist/node/definition.d.ts +3 -2
  498. package/dist/node/definition.mjs +4 -2
  499. package/dist/node/dynamic-content.cjs +30 -0
  500. package/dist/node/dynamic-content.cjs.map +1 -0
  501. package/dist/node/dynamic-content.d.mts +13 -0
  502. package/dist/node/dynamic-content.d.ts +13 -0
  503. package/dist/node/dynamic-content.mjs +9 -0
  504. package/dist/node/dynamic-content.mjs.map +1 -0
  505. package/dist/node/dynamic-feature.cjs +41 -7
  506. package/dist/node/dynamic-feature.cjs.map +1 -1
  507. package/dist/node/dynamic-feature.d.mts +66 -6
  508. package/dist/node/dynamic-feature.d.ts +66 -6
  509. package/dist/node/dynamic-feature.mjs +16 -9
  510. package/dist/node/dynamic-feature.mjs.map +1 -1
  511. package/dist/node/dynamic-structure.cjs +45 -136
  512. package/dist/node/dynamic-structure.cjs.map +1 -1
  513. package/dist/node/dynamic-structure.d.mts +77 -3
  514. package/dist/node/dynamic-structure.d.ts +77 -3
  515. package/dist/node/dynamic-structure.mjs +16 -135
  516. package/dist/node/dynamic-structure.mjs.map +1 -1
  517. package/dist/node/env.cjs +3 -3
  518. package/dist/node/env.d.mts +26 -0
  519. package/dist/node/env.d.ts +26 -0
  520. package/dist/node/env.mjs +2 -2
  521. package/dist/node/frame-index.cjs +7 -4
  522. package/dist/node/frame-index.d.mts +70 -9
  523. package/dist/node/frame-index.d.ts +70 -9
  524. package/dist/node/frame-index.mjs +6 -3
  525. package/dist/node/logger.d.mts +4 -113
  526. package/dist/node/logger.d.ts +4 -113
  527. package/dist/node/models.cjs +14 -0
  528. package/dist/node/models.cjs.map +1 -0
  529. package/dist/node/models.d.mts +64 -0
  530. package/dist/node/models.d.ts +64 -0
  531. package/dist/node/models.mjs +5 -0
  532. package/dist/node/models.mjs.map +1 -0
  533. package/dist/node/namespace.cjs +7 -5
  534. package/dist/node/namespace.d.mts +1 -1
  535. package/dist/node/namespace.d.ts +1 -1
  536. package/dist/node/namespace.mjs +4 -2
  537. package/dist/node/schema.cjs +22 -0
  538. package/dist/node/schema.cjs.map +1 -0
  539. package/dist/node/schema.d.mts +10 -0
  540. package/dist/node/schema.d.ts +10 -0
  541. package/dist/node/schema.mjs +5 -0
  542. package/dist/node/schema.mjs.map +1 -0
  543. package/dist/node/segment.cjs +25 -0
  544. package/dist/node/segment.cjs.map +1 -0
  545. package/dist/node/segment.d.mts +13 -0
  546. package/dist/node/segment.d.ts +13 -0
  547. package/dist/node/segment.mjs +8 -0
  548. package/dist/node/segment.mjs.map +1 -0
  549. package/dist/node/storage.cjs +17 -14
  550. package/dist/node/storage.d.mts +18 -6
  551. package/dist/node/storage.d.ts +18 -6
  552. package/dist/node/storage.mjs +11 -8
  553. package/dist/node/vector.cjs +2 -2
  554. package/dist/node/vector.d.mts +7 -0
  555. package/dist/node/vector.d.ts +7 -0
  556. package/dist/node/vector.mjs +1 -1
  557. package/examples/article/main.ts +358 -0
  558. package/examples/components.ts +660 -0
  559. package/examples/feature/file-system.components.ts +211 -0
  560. package/examples/feature/main.ts +374 -0
  561. package/examples/interaction/main.ts +426 -0
  562. package/examples/logger.ts +126 -0
  563. package/examples/structure/main.ts +195 -0
  564. package/examples/structure/renderer.ts +296 -0
  565. package/examples/structure/server-app.components.ts +387 -0
  566. package/jest.config.browser.ts +9 -0
  567. package/jest.config.examples.ts +49 -0
  568. package/jest.config.integration.ts +38 -0
  569. package/jest.config.ts +56 -27
  570. package/jest.config.unit.ts +38 -0
  571. package/package.json +75 -7
  572. package/src/index.ts +13 -0
  573. package/src/lib/A-Frame/A-Frame.component.env-browser.ts +19 -6
  574. package/src/lib/A-Frame/A-Frame.component.env-node.ts +48 -19
  575. package/src/lib/A-Frame/A-Frame.context.ts +9 -8
  576. package/src/lib/A-Frame/decorators/A-FrameDefine.decorator.ts +4 -4
  577. package/src/lib/A-FrameBundle/A-FrameBundle.builder.env-node.ts +95 -25
  578. package/src/lib/A-FrameBundle/A-FrameBundle.constants.ts +1 -1
  579. package/src/lib/A-FrameBundle/A-FrameBundle.types.ts +54 -13
  580. package/src/lib/A-FrameBundle/index.browser.ts +1 -1
  581. package/src/lib/A-FrameBundle/index.ts +1 -1
  582. package/src/lib/A-FrameCLI/A-FrameCLI.container.ts +18 -7
  583. package/src/lib/A-FrameChannel/A-FrameChannel.component.env-browser.ts +0 -2
  584. package/src/lib/A-FrameChannel/A-FrameChannel.component.env-node.ts +14 -15
  585. package/src/lib/A-FrameChannel/A-FrameChannel.component.ts +542 -7
  586. package/src/lib/A-FrameChannel/A-FrameChannel.constants.ts +2 -0
  587. package/src/lib/A-FrameChannel/A-FrameChannel.types.ts +65 -1
  588. package/src/lib/A-FrameChannel/A-FrameChannelDsgStream.entity.ts +112 -0
  589. package/src/lib/A-FrameChannel/A-FrameChannelStream.entity.ts +1 -0
  590. package/src/lib/A-FrameChannel/index.browser.ts +5 -0
  591. package/src/lib/A-FrameCompletion/A-FrameCompletion.constants.ts +3 -0
  592. package/src/lib/A-FrameCompletion/A-FrameCompletion.entity.ts +128 -0
  593. package/src/lib/A-FrameCompletion/A-FrameCompletion.types.ts +40 -0
  594. package/src/lib/A-FrameCompletion/index.ts +3 -0
  595. package/src/lib/A-FrameCredentials/A-FrameCredentials.constants.ts +5 -0
  596. package/src/lib/A-FrameCredentials/A-FrameCredentials.entity.ts +120 -0
  597. package/src/lib/A-FrameCredentials/A-FrameCredentials.types.ts +39 -0
  598. package/src/lib/A-FrameCredentials/index.ts +3 -0
  599. package/src/lib/A-FrameDefinition/A-FrameDefinition.entity.ts +23 -1
  600. package/src/lib/A-FrameDefinition/A-FrameDefinition.types.ts +34 -1
  601. package/src/lib/A-FrameDynamicContent/A-FrameDynamicContent.constants.ts +5 -0
  602. package/src/lib/A-FrameDynamicContent/A-FrameDynamicContent.entity.ts +348 -0
  603. package/src/lib/A-FrameDynamicContent/A-FrameDynamicContent.error.ts +10 -0
  604. package/src/lib/A-FrameDynamicContent/A-FrameDynamicContent.types.ts +116 -0
  605. package/src/lib/A-FrameDynamicContent/A-FrameDynamicContentIndex.context.ts +288 -0
  606. package/src/lib/A-FrameDynamicContent/A-FrameDynamicContentOperation.context.ts +26 -0
  607. package/src/lib/A-FrameDynamicContent/index.ts +5 -0
  608. package/src/lib/A-FrameDynamicFeature/A-FrameDynamicFeature.constants.ts +6 -0
  609. package/src/lib/A-FrameDynamicFeature/A-FrameDynamicFeature.entity.ts +253 -4
  610. package/src/lib/A-FrameDynamicFeature/A-FrameDynamicFeature.error.ts +11 -0
  611. package/src/lib/A-FrameDynamicFeature/A-FrameDynamicFeature.types.ts +188 -4
  612. package/src/lib/A-FrameDynamicFeature/A-FrameDynamicFeatureOperation.context.ts +33 -0
  613. package/src/lib/A-FrameDynamicFeature/A-FrameMethodMapIndex.context.ts +99 -0
  614. package/src/lib/A-FrameDynamicFeature/A-FrameMethodMapper.component.ts +182 -0
  615. package/src/lib/A-FrameDynamicFeature/index.ts +6 -1
  616. package/src/lib/A-FrameDynamicPatch/index.ts +2 -0
  617. package/src/lib/A-FrameDynamicStructure/A-FrameComponentMapIndex.context.ts +99 -0
  618. package/src/lib/A-FrameDynamicStructure/A-FrameComponentMapper.component.ts +320 -0
  619. package/src/lib/A-FrameDynamicStructure/A-FrameDynamicStructure.constants.ts +2 -1
  620. package/src/lib/A-FrameDynamicStructure/A-FrameDynamicStructure.entity.ts +240 -128
  621. package/src/lib/A-FrameDynamicStructure/A-FrameDynamicStructure.types.ts +183 -87
  622. package/src/lib/A-FrameDynamicStructure/index.ts +3 -0
  623. package/src/lib/A-FrameEnv/A-FrameEnv.fragment.env-browser.ts +5 -1
  624. package/src/lib/A-FrameEnv/A-FrameEnv.fragment.env-node.ts +23 -1
  625. package/src/lib/A-FrameEnv/A-FrameEnv.types.ts +12 -0
  626. package/src/lib/A-FrameIndex/A-FrameIndex.context.ts +63 -13
  627. package/src/lib/A-FrameIndex/A-FrameIndex.types.ts +53 -0
  628. package/src/lib/A-FrameModels/A-FrameModels.constants.ts +75 -0
  629. package/src/lib/A-FrameModels/index.ts +1 -0
  630. package/src/lib/A-FrameNamespace/A-FrameNamespace.entity.ts +10 -3
  631. package/src/lib/A-FrameNamespace/A-FrameNamespace.types.ts +5 -0
  632. package/src/lib/A-FrameSchema/A-FrameSchema.constants.ts +4 -0
  633. package/src/lib/A-FrameSchema/A-FrameSchema.entity.ts +154 -0
  634. package/src/lib/A-FrameSchema/A-FrameSchema.types.ts +88 -0
  635. package/src/lib/A-FrameSchema/index.ts +3 -0
  636. package/src/lib/A-FrameSegment/A-FrameSegment.constants.ts +12 -0
  637. package/src/lib/A-FrameSegment/A-FrameSegment.entity.ts +221 -0
  638. package/src/lib/A-FrameSegment/A-FrameSegment.types.ts +91 -0
  639. package/src/lib/A-FrameSegment/index.ts +3 -0
  640. package/src/lib/A-FrameStorage/A-FrameStorage.codec.ts +10 -4
  641. package/src/lib/A-FrameStorage/browser/A-FrameBrowserStorage.component.ts +21 -0
  642. package/src/lib/A-FrameStorage/browser/A-FrameBrowserStorageBlobs.context.ts +39 -21
  643. package/src/lib/A-FrameStorage/node/A-FrameNodeStorage.component.ts +124 -42
  644. package/src/lib/A-FrameVector/A-FrameVector.entity.ts +24 -0
  645. package/tests/A-Frame.browser.test.ts +167 -57
  646. package/tests/A-FrameDynamicContent.browser.test.ts +74 -0
  647. package/tests/integration/A-Frame.integration.test.ts +272 -0
  648. package/tests/integration/A-FrameCompletion.integration.test.ts +88 -0
  649. package/tests/integration/A-FrameContentMapping.integration.test.ts +261 -0
  650. package/tests/integration/A-FrameDefinition.integration.test.ts +154 -0
  651. package/tests/integration/A-FrameDynamicContent.integration.test.ts +126 -0
  652. package/tests/integration/A-FrameDynamicFeature.integration.test.ts +337 -0
  653. package/tests/integration/A-FrameDynamicStructure.integration.test.ts +264 -0
  654. package/tests/integration/A-FrameNamespace.integration.test.ts +109 -0
  655. package/tests/integration/A-FrameSchema.integration.test.ts +74 -0
  656. package/tests/integration/A-FrameSegment.integration.test.ts +102 -0
  657. package/tests/integration/A-FrameStorage.integration.test.ts +598 -0
  658. package/tests/jest.setup.browser.ts +1 -1
  659. package/tests/jest.setup.ts +4 -0
  660. package/tests/jest.setup.unit.ts +30 -0
  661. package/tests/unit/A-FrameChannel.unit.test.ts +124 -0
  662. package/tests/unit/A-FrameCompletion.unit.test.ts +25 -0
  663. package/tests/unit/A-FrameDefinition.unit.test.ts +36 -0
  664. package/tests/unit/A-FrameDynamicContent.unit.test.ts +28 -0
  665. package/tests/unit/A-FrameNamespace.unit.test.ts +35 -0
  666. package/tests/unit/A-FrameSchema.unit.test.ts +31 -0
  667. package/tests/unit/A-FrameSegment.unit.test.ts +20 -0
  668. package/tests/unit/mocks/MockA_FrameChannel.ts +112 -0
  669. package/tsconfig.browser.json +2 -0
  670. package/tsconfig.json +6 -0
  671. package/tsup.config.ts +52 -0
  672. package/tests/A-Frame.test.ts +0 -96
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/lib/A-Frame/A-Frame.context.ts","../../src/lib/A-FrameStorage/A-FrameStorage.constants.ts","../../src/lib/A-FrameStorage/A-FrameStorageOperation.context.ts","../../src/lib/A-FrameStorage/A-FrameStorage.error.ts","../../src/lib/A-FrameStorage/A-FrameStorage.component.ts","../../src/lib/A-FrameStorage/browser/A-FrameBrowserStorageBlobs.context.ts","../../src/lib/A-FrameStorage/A-FrameStorage.codec.ts","../../src/lib/A-FrameStorage/browser/A-FrameBrowserStorage.component.ts"],"names":["A_FrameContext","A_Fragment","credentials","A_FrameStorageFeatures","A_FrameStorageOperation","params","result","error","A_FrameStorageError","A_Error","A_FrameStorage","A_Component","definitions","context","executionScope","A_Scope","A_Context","namespaceId","definitionId","namespaces","namespaceIds","namespacesIds","decodeBase64","b64","bin","out","i","A_FrameBrowserStorageBlobs","_A_FrameBrowserStorageBlobs","bundle","blobs","id","enc","dec","A_FrameStorageCodec","_A_FrameStorageCodec","namespace","records","parts","header","headerView","dims","rec","aseidBytes","nameBytes","metaJson","metaBytes","recSize","recBuf","view","offset","total","s","pos","p","data","magic","version","count","aseidLen","aseid","nameLen","name","embedding","d","metaLen","meta","A_FrameBrowserStorageProvider","scope","env","operation","global","codec","existing","merged","r","payload","A_FrameCrypto","filtered","ids","definition","record","store","encryptionKey","blob","plain","__decorateClass","A_Concept","__decorateParam","A_Inject","A_Feature","A_FrameEnv","A_FrameDefinitionFeatures","A_FrameDefinition","A_Caller","A_FrameNamespaceFeatures","A_FrameNamespace"],"mappings":"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","file":"chunk-GOADBDTE.mjs","sourcesContent":["import { A_Fragment } from \"@adaas/a-concept\"\nimport { A_FrameChannelRequest } from \"../A-FrameChannel/A-FrameChannelRequest.context\";\nimport { A_Frame_CredentialResponse } from \"../A-FrameChannel/A-FrameChannel.types\";\n\n\nexport class A_FrameContext extends A_Fragment {\n\n private credentials?: A_Frame_CredentialResponse;\n\n\n constructor() {\n super({ name: 'a-frame-context' });\n }\n\n\n get encryptionKey(): string | undefined {\n return this.credentials?.encryption_key;\n }\n\n\n get serverVersion(): string | undefined {\n return this.credentials?.server_version;\n }\n\n\n isAuthenticated(): boolean {\n return !!this.credentials;\n }\n\n\n setCredentials(credentials: A_FrameChannelRequest<A_Frame_CredentialResponse>) {\n if (credentials.error) {\n this.credentials = undefined;\n return;\n }\n\n this.credentials = credentials.response || undefined;\n }\n\n}","\n\nexport const A_FrameStorageFeatures = {\n SaveDefinitions: '_A_FRAME_STORAGE_SAVE',\n LoadDefinitions: '_A_FRAME_STORAGE_LOAD',\n DestroyDefinitions: '_A_FRAME_STORAGE_DESTROY',\n \n SaveNamespaces: '_A_FRAME_STORAGE_SAVE_NAMESPACES',\n LoadNamespaces: '_A_FRAME_STORAGE_LOAD_NAMESPACES',\n DestroyNamespaces: '_A_FRAME_STORAGE_DESTROY_NAMESPACES',\n} as const","import { A_Error, A_Fragment } from \"@adaas/a-concept\";\n\n\nexport class A_FrameStorageOperation<\n _ParamsType = any,\n _ResultType = any\n> extends A_Fragment {\n\n protected _result?: _ResultType;\n\n protected _error?: A_Error;\n\n protected _params!: _ParamsType;\n\n\n constructor(\n params: _ParamsType\n ) {\n super({ name: 'a-frame-storage-operation' });\n this._params = params;\n }\n\n\n /**\n * If the operation succeeded, this will contain the result data. If the operation failed, this will be undefined.\n */\n get result(): _ResultType | undefined {\n return this._result;\n }\n /**\n * If the operation failed, this will contain an error object with details about the failure. If the operation succeeded, this will be undefined.\n */\n get error(): A_Error | undefined {\n return this._error;\n }\n /**\n * Parameters used to execute the operation, e.g. definitionId and namespaceId for a saveDefinition operation.\n */\n get params(): _ParamsType {\n return this._params;\n }\n /**\n * Marks the operation as completed successfully with the given result. This will set the `result` property and leave `error` as undefined.\n * \n * @param result \n */\n complete(result: _ResultType): void {\n this._result = result;\n }\n /**\n * Marks the operation as failed with the given error. This will set the `error` property and leave `result` as undefined.\n * \n * @param error \n */\n fail(error: A_Error): void {\n this._error = error;\n }\n\n}\n","import { A_Error } from \"@adaas/a-concept\";\n\n\n\nexport class A_FrameStorageError extends A_Error {\n static readonly SaveDefinitionFailed = 'SaveDefinitionFailed';\n static readonly LoadDefinitionsFailed = 'LoadDefinitionsFailed';\n static readonly DestroyDefinitionsFailed = 'DestroyDefinitionsFailed';\n static readonly SaveNamespaceFailed = 'SaveNamespaceFailed';\n static readonly LoadNamespacesFailed = 'LoadNamespacesFailed';\n static readonly DestroyNamespacesFailed = 'DestroyNamespacesFailed';\n\n}","import { A_Component, A_Context, A_Scope } from '@adaas/a-concept';\nimport { A_FrameNamespace_Serialized } from '../A-FrameNamespace/A-FrameNamespace.types';\nimport { A_FrameStorageFeatures } from './A-FrameStorage.constants';\nimport { A_FrameStorageOperation } from './A-FrameStorageOperation.context';\nimport { A_FrameStorageError } from './A-FrameStorage.error';\nimport { A_FrameStorageDestroyDefinitionsOperation, A_FrameStorageDestroyDefinitionsOperationParams, A_FrameStorageDestroyDefinitionsOperationResult, A_FrameStorageDestroyNamespacesOperation, A_FrameStorageDestroyNamespacesOperationParams, A_FrameStorageDestroyNamespacesOperationResult, A_FrameStorageLoadDefinitionsOperation, A_FrameStorageLoadDefinitionsOperationParams, A_FrameStorageLoadDefinitionsOperationResult, A_FrameStorageLoadNamespacesOperation, A_FrameStorageLoadNamespacesOperationParams, A_FrameStorageLoadNamespacesOperationResult, A_FrameStorageSaveDefinitionOperation, A_FrameStorageSaveDefinitionOperationParams, A_FrameStorageSaveDefinitionOperationResult, A_FrameStorageSaveNamespaceOperation, A_FrameStorageSaveNamespaceOperationParams, A_FrameStorageSaveNamespaceOperationResult } from './A-FrameStorage.types';\nimport { A_FrameDefinition_Serialized } from '../A-FrameDefinition/A-FrameDefinition.types';\n\n\nexport class A_FrameStorage extends A_Component {\n\n async saveDefinitions(definitions: Array<A_FrameDefinition_Serialized>): Promise<A_FrameStorageSaveDefinitionOperation> {\n const context = new A_FrameStorageOperation<A_FrameStorageSaveDefinitionOperationParams, A_FrameStorageSaveDefinitionOperationResult>({\n records: definitions\n });\n\n const executionScope = new A_Scope({\n name: 'A_FrameStorage.saveDefinitions',\n fragments: [context]\n })\n .inherit(A_Context.scope(this));\n\n try {\n await this.call(A_FrameStorageFeatures.SaveDefinitions, executionScope);\n executionScope.destroy();\n\n return context;\n } catch (error) {\n\n context.fail(new A_FrameStorageError({\n title: A_FrameStorageError.SaveDefinitionFailed,\n description: `Failed to save definition records.`,\n }));\n\n executionScope.destroy();\n\n return context;\n }\n }\n\n async loadDefinitions(namespaceId: string, definitionId: string): Promise<A_FrameStorageLoadDefinitionsOperation> {\n const context = new A_FrameStorageOperation<A_FrameStorageLoadDefinitionsOperationParams, A_FrameStorageLoadDefinitionsOperationResult>({\n namespaceId,\n });\n\n const executionScope = new A_Scope({\n name: 'A_FrameStorage.loadDefinitions',\n fragments: [context]\n })\n .inherit(A_Context.scope(this));\n\n try {\n await this.call(A_FrameStorageFeatures.LoadDefinitions, executionScope);\n executionScope.destroy();\n\n return context;\n } catch (error) {\n\n context.fail(new A_FrameStorageError({\n title: A_FrameStorageError.LoadDefinitionsFailed,\n description: `Failed to load definition records.`,\n }));\n\n executionScope.destroy();\n\n return context;\n }\n }\n\n\n async destroyDefinitions(namespaceId: string, definitionId: string): Promise<A_FrameStorageDestroyDefinitionsOperation> {\n const context = new A_FrameStorageOperation<A_FrameStorageDestroyDefinitionsOperationParams, A_FrameStorageDestroyDefinitionsOperationResult>({\n namespaceId,\n definitionId\n });\n\n const executionScope = new A_Scope({\n name: 'A_FrameStorage.destroyDefinitions',\n fragments: [context]\n })\n .inherit(A_Context.scope(this));\n\n try {\n await this.call(A_FrameStorageFeatures.DestroyDefinitions, executionScope);\n executionScope.destroy();\n\n return context;\n } catch (error) {\n\n context.fail(new A_FrameStorageError({\n title: A_FrameStorageError.DestroyDefinitionsFailed,\n description: `Failed to destroy definition records.`,\n }));\n\n executionScope.destroy();\n\n return context;\n }\n }\n\n\n\n async saveNamespaces(namespaces: A_FrameNamespace_Serialized[]): Promise<A_FrameStorageSaveNamespaceOperation> {\n const context = new A_FrameStorageOperation<A_FrameStorageSaveNamespaceOperationParams, A_FrameStorageSaveNamespaceOperationResult>({\n records: namespaces\n });\n\n const executionScope = new A_Scope({\n name: 'A_FrameStorage.saveNamespaces',\n fragments: [context]\n })\n .inherit(A_Context.scope(this));\n\n try {\n await this.call(A_FrameStorageFeatures.SaveNamespaces, executionScope);\n executionScope.destroy();\n\n return context;\n } catch (error) {\n\n context.fail(new A_FrameStorageError({\n title: A_FrameStorageError.SaveNamespaceFailed,\n description: `Failed to save namespace records.`,\n }));\n\n executionScope.destroy();\n\n return context;\n }\n }\n\n async loadNamespaces(\n namespaceIds: string[]\n ): Promise<A_FrameStorageLoadNamespacesOperation> {\n const context = new A_FrameStorageOperation<A_FrameStorageLoadNamespacesOperationParams, A_FrameStorageLoadNamespacesOperationResult>({\n namespaces: namespaceIds\n });\n\n const executionScope = new A_Scope({\n name: 'A_FrameStorage.loadNamespaces',\n fragments: [context]\n })\n .inherit(A_Context.scope(this));\n\n try {\n await this.call(A_FrameStorageFeatures.LoadNamespaces, executionScope);\n executionScope.destroy();\n\n return context;\n } catch (error) {\n\n context.fail(new A_FrameStorageError({\n title: A_FrameStorageError.LoadNamespacesFailed,\n description: `Failed to load namespace records.`,\n }));\n\n executionScope.destroy();\n\n return context;\n }\n }\n\n async destroyNamespaces(namespacesIds: string[]): Promise<A_FrameStorageDestroyNamespacesOperation> {\n const context = new A_FrameStorageOperation<A_FrameStorageDestroyNamespacesOperationParams, A_FrameStorageDestroyNamespacesOperationResult>({\n namespaces: namespacesIds\n });\n\n const executionScope = new A_Scope({\n name: 'A_FrameStorage.destroyNamespaces',\n fragments: [context]\n })\n .inherit(A_Context.scope(this));\n\n try {\n await this.call(A_FrameStorageFeatures.DestroyNamespaces, executionScope);\n executionScope.destroy();\n\n return context;\n } catch (error) {\n\n context.fail(new A_FrameStorageError({\n title: A_FrameStorageError.DestroyNamespacesFailed,\n description: `Failed to destroy namespace records.`,\n }));\n\n executionScope.destroy();\n\n return context;\n }\n }\n}\n","// ─── In-memory blob store (singleton Fragment) ────────────────────────────────\n//\n// A_Component is stateless — persistent session state lives in a Fragment\n// singleton that survives across per-call execution scopes.\n\nimport { A_Fragment } from \"@adaas/a-concept\";\nimport type { A_FrameBundle } from \"@adaas/a-frame/bundle\";\n\n\n/** Browser-safe base64 → Uint8Array (uses globalThis.atob; falls back to Buffer in Node tests). */\nfunction decodeBase64(b64: string): Uint8Array {\n if (typeof atob === 'function') {\n const bin = atob(b64);\n const out = new Uint8Array(bin.length);\n for (let i = 0; i < bin.length; i++) out[i] = bin.charCodeAt(i);\n return out;\n }\n // Node fallback so the same fragment works in Jest/SSR.\n return new Uint8Array(Buffer.from(b64, 'base64'));\n}\n\n\nexport class A_FrameBrowserStorageBlobs extends A_Fragment {\n\n private static _instance: A_FrameBrowserStorageBlobs | undefined;\n\n static get instance(): A_FrameBrowserStorageBlobs {\n if (!A_FrameBrowserStorageBlobs._instance) {\n A_FrameBrowserStorageBlobs._instance = new A_FrameBrowserStorageBlobs();\n }\n return A_FrameBrowserStorageBlobs._instance;\n }\n\n /**\n * Build a singleton blobs store seeded from a prebuilt bundle.\n * Convenience for browser bootstrap.\n */\n static fromBundle(bundle: A_FrameBundle): A_FrameBrowserStorageBlobs {\n const blobs = A_FrameBrowserStorageBlobs.instance;\n blobs.seedFromBundle(bundle);\n return blobs;\n }\n\n constructor() {\n if (A_FrameBrowserStorageBlobs._instance)\n return A_FrameBrowserStorageBlobs._instance;\n\n super({ name: 'a-frame-browser-storage-blobs' });\n }\n\n /** namespace → encrypted definition bytes */\n readonly store = new Map<string, Uint8Array>();\n\n /** encrypted bytes for the namespace index (`__namespaces.aframe` equivalent) */\n namespaceBlob: Uint8Array | null = null;\n\n /** Bundle metadata recorded at seed time, used by A_Frame to validate versions. */\n bundleMeta: { aFrameVersion: string; serverVersion: string; builtAt: string } | null = null;\n\n /**\n * Populate the store from a bundle artifact. Existing entries with the\n * same namespace are overwritten; unrelated entries are preserved.\n */\n seedFromBundle(bundle: A_FrameBundle): void {\n if (bundle.namespaces) {\n this.namespaceBlob = decodeBase64(bundle.namespaces);\n }\n for (const [id, b64] of Object.entries(bundle.definitions)) {\n this.store.set(id, decodeBase64(b64));\n }\n this.bundleMeta = {\n aFrameVersion: bundle.aFrameVersion,\n serverVersion: bundle.serverVersion,\n builtAt: bundle.builtAt,\n };\n }\n}","/**\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","import { A_Caller, A_Concept, A_Feature, A_Inject, A_Scope } from \"@adaas/a-concept\";\nimport { A_FrameStorageFeatures } from \"../A-FrameStorage.constants\";\nimport { A_FrameStorage } from \"../A-FrameStorage.component\";\nimport { A_FrameEnv } from \"../../A-FrameEnv/A-FrameEnv.fragment.env-browser\";\nimport { A_FrameStorageOperation } from \"../A-FrameStorageOperation.context\";\nimport {\n A_FrameStorageDestroyDefinitionsOperation,\n A_FrameStorageDestroyNamespacesOperation,\n A_FrameStorageLoadDefinitionsOperation,\n A_FrameStorageLoadNamespacesOperation,\n A_FrameStorageSaveDefinitionOperation,\n A_FrameStorageSaveNamespaceOperation,\n} from \"../A-FrameStorage.types\";\nimport { A_FrameCrypto } from \"../../A-FrameCrypto/A-FrameCrypto.component.env-browser\";\nimport { A_FrameDefinition_Serialized } from \"../../A-FrameDefinition/A-FrameDefinition.types\";\nimport { A_FrameNamespace_Serialized } from \"../../A-FrameNamespace/A-FrameNamespace.types\";\nimport { A_FrameBrowserStorageBlobs } from \"./A-FrameBrowserStorageBlobs.context\";\nimport { A_FrameStorageCodec } from \"../A-FrameStorage.codec\";\nimport { A_FrameContext } from \"../../A-Frame/A-Frame.context\";\nimport { A_FrameStorageError } from \"../A-FrameStorage.error\";\nimport { A_FrameDefinition } from \"../../A-FrameDefinition\";\nimport { A_FrameDefinitionFeatures } from \"../../A-FrameDefinition/A-FrameDefinition.constants\";\nimport { A_FrameNamespace } from \"../../A-FrameNamespace\";\nimport { A_FrameNamespaceFeatures } from \"../../A-FrameNamespace/A-FrameNamespace.constants\";\n\n\n/**\n * A_FrameBrowserStorageProvider — Browser environment\n *\n * Stores encrypted definition and namespace records entirely in memory.\n * Pre-built .aframe index files should be injected at bundle startup via\n * A_FrameBrowserStorageProvider.loadBlob() so that read-only access works\n * without any network or filesystem calls.\n *\n * Example (Vite):\n * import mathBin from './embed-index/math.aframe?arraybuffer';\n * A_FrameBrowserStorageProvider.loadBlob('math', new Uint8Array(mathBin));\n */\nexport class A_FrameBrowserStorageProvider extends A_FrameStorage {\n\n @A_Concept.Load()\n onLoad(\n @A_Inject(A_Scope) scope: A_Scope,\n @A_Inject(A_FrameBrowserStorageBlobs) blobs?: A_FrameBrowserStorageBlobs,\n ) {\n if (!blobs) {\n scope.register(A_FrameBrowserStorageBlobs.instance);\n }\n }\n\n\n // ---------------------------------------------------------------------------------------\n //--------------------------Storage Features Extensions----------------------------------\n //---------------------------------------------------------------------------------------\n\n @A_Feature.Extend({\n name: A_FrameStorageFeatures.SaveDefinitions,\n scope: [A_FrameStorage],\n })\n async saveDefinitionsToMemory(\n @A_Inject(A_FrameEnv) env: A_FrameEnv,\n @A_Inject(A_FrameStorageOperation) operation: A_FrameStorageSaveDefinitionOperation,\n @A_Inject(A_FrameContext) global: A_FrameContext,\n @A_Inject(A_FrameStorageCodec) codec: A_FrameStorageCodec,\n @A_Inject(A_FrameBrowserStorageBlobs) blobs: A_FrameBrowserStorageBlobs,\n ): Promise<void> {\n const records = operation.params.records;\n const namespace = records[0].namespace;\n\n const existing = await this._loadDefinitionsFromMemory(blobs.store, namespace, global.encryptionKey!, codec);\n\n const merged = new Map<string, A_FrameDefinition_Serialized>();\n for (const r of existing) merged.set(r.aseid, r);\n for (const d of records) merged.set(d.aseid.toString(), d);\n\n const payload = codec.encodePayload(Array.from(merged.values()));\n blobs.store.set(namespace, await A_FrameCrypto.encryptBytes(payload, global.encryptionKey!));\n\n operation.complete({ saved: records.length });\n }\n\n @A_Feature.Extend({\n name: A_FrameStorageFeatures.LoadDefinitions,\n scope: [A_FrameStorage],\n })\n async loadDefinitionsFromMemory(\n @A_Inject(A_FrameEnv) env: A_FrameEnv,\n @A_Inject(A_FrameStorageOperation) operation: A_FrameStorageLoadDefinitionsOperation,\n @A_Inject(A_FrameContext) global: A_FrameContext,\n @A_Inject(A_FrameStorageCodec) codec: A_FrameStorageCodec,\n @A_Inject(A_FrameBrowserStorageBlobs) blobs: A_FrameBrowserStorageBlobs,\n ): Promise<void> {\n const namespace = operation.params.namespaceId;\n const records = await this._loadDefinitionsFromMemory(blobs.store, namespace, global.encryptionKey!, codec);\n operation.complete({ records });\n }\n\n @A_Feature.Extend({\n name: A_FrameStorageFeatures.DestroyDefinitions,\n scope: [A_FrameStorage],\n })\n async destroyDefinitionsFromMemory(\n @A_Inject(A_FrameEnv) env: A_FrameEnv,\n @A_Inject(A_FrameStorageOperation) operation: A_FrameStorageDestroyDefinitionsOperation,\n @A_Inject(A_FrameContext) global: A_FrameContext,\n @A_Inject(A_FrameStorageCodec) codec: A_FrameStorageCodec,\n @A_Inject(A_FrameBrowserStorageBlobs) blobs: A_FrameBrowserStorageBlobs,\n ): Promise<void> {\n const namespace = operation.params.namespaceId;\n const definitionId = operation.params.definitionId;\n\n const existing = await this._loadDefinitionsFromMemory(blobs.store, namespace, global.encryptionKey!, codec);\n const filtered = existing.filter(r => r.aseid !== definitionId);\n\n const payload = codec.encodePayload(filtered);\n blobs.store.set(namespace, await A_FrameCrypto.encryptBytes(payload, global.encryptionKey!));\n\n operation.complete({ records: filtered });\n }\n\n\n // ---------------------------------------------------------------------------------------\n //--------------------------Namespace Features Extensions--------------------------------\n //---------------------------------------------------------------------------------------\n\n @A_Feature.Extend({\n name: A_FrameStorageFeatures.SaveNamespaces,\n scope: [A_FrameStorage],\n })\n async saveNamespacesToMemory(\n @A_Inject(A_FrameEnv) env: A_FrameEnv,\n @A_Inject(A_FrameStorageOperation) operation: A_FrameStorageSaveNamespaceOperation,\n @A_Inject(A_FrameContext) global: A_FrameContext,\n @A_Inject(A_FrameStorageCodec) codec: A_FrameStorageCodec,\n @A_Inject(A_FrameBrowserStorageBlobs) blobs: A_FrameBrowserStorageBlobs,\n ): Promise<void> {\n const records = operation.params.records;\n\n const existing = await this._loadNamespacesFromMemory(blobs, global.encryptionKey!, codec);\n\n const merged = new Map<string, A_FrameNamespace_Serialized>();\n for (const r of existing) merged.set(r.aseid, r);\n for (const d of records) merged.set(d.aseid.toString(), d);\n\n const payload = codec.encodeNamespacePayload(Array.from(merged.values()));\n blobs.namespaceBlob = await A_FrameCrypto.encryptBytes(payload, global.encryptionKey!);\n\n operation.complete({ success: true });\n }\n\n @A_Feature.Extend({\n name: A_FrameStorageFeatures.LoadNamespaces,\n scope: [A_FrameStorage],\n })\n async loadNamespacesFromMemory(\n @A_Inject(A_FrameEnv) env: A_FrameEnv,\n @A_Inject(A_FrameStorageOperation) operation: A_FrameStorageLoadNamespacesOperation,\n @A_Inject(A_FrameContext) global: A_FrameContext,\n @A_Inject(A_FrameStorageCodec) codec: A_FrameStorageCodec,\n @A_Inject(A_FrameBrowserStorageBlobs) blobs: A_FrameBrowserStorageBlobs,\n ): Promise<void> {\n const ids = operation.params.namespaces;\n const records = await this._loadNamespacesFromMemory(blobs, global.encryptionKey!, codec);\n\n operation.complete({\n records: ids ? records.filter(r => ids.includes(r.name)) : records\n });\n }\n\n @A_Feature.Extend({\n name: A_FrameStorageFeatures.DestroyNamespaces,\n scope: [A_FrameStorage],\n })\n async destroyNamespacesFromMemory(\n @A_Inject(A_FrameEnv) env: A_FrameEnv,\n @A_Inject(A_FrameStorageOperation) operation: A_FrameStorageDestroyNamespacesOperation,\n @A_Inject(A_FrameContext) global: A_FrameContext,\n @A_Inject(A_FrameStorageCodec) codec: A_FrameStorageCodec,\n @A_Inject(A_FrameBrowserStorageBlobs) blobs: A_FrameBrowserStorageBlobs,\n ): Promise<void> {\n const ids = operation.params.namespaces;\n\n const existing = await this._loadNamespacesFromMemory(blobs, global.encryptionKey!, codec);\n const filtered = existing.filter(r => !ids.includes(r.aseid));\n\n const payload = codec.encodeNamespacePayload(filtered);\n blobs.namespaceBlob = await A_FrameCrypto.encryptBytes(payload, global.encryptionKey!);\n\n // Drop definition blobs for destroyed namespaces\n try {\n for (const id of ids) {\n blobs.store.delete(id);\n }\n operation.complete({ success: true });\n } catch (error) {\n operation.fail(new A_FrameStorageError({\n title: A_FrameStorageError.DestroyNamespacesFailed,\n description: `Failed to destroy namespace records.`,\n }));\n operation.complete({ success: false });\n }\n }\n\n\n // ---------------------------------------------------------------------------------------\n //--------------------------Definition Entity-level Extensions---------------------------\n //---------------------------------------------------------------------------------------\n\n /**\n * Hydrate a single A_FrameDefinition from the in-memory bundle blobs.\n *\n * Mirrors the Node `loadDefinitionFromDisk` extension. Looks up the\n * namespace's encrypted blob in the singleton blob store, decrypts and\n * decodes it, then calls `definition.fromJSON(record)` only when the\n * stored hash and server version match the live entity.\n *\n * No-op when:\n * - no blob has been seeded for the namespace\n * - decryption fails (wrong key / corrupted blob)\n * - the record is absent or stale\n */\n @A_Feature.Extend({\n name: A_FrameDefinitionFeatures.Load,\n scope: [A_FrameDefinition],\n })\n async loadDefinitionFromBlobs(\n @A_Inject(A_Caller) definition: A_FrameDefinition,\n @A_Inject(A_FrameContext) context: A_FrameContext,\n @A_Inject(A_FrameStorageCodec) codec: A_FrameStorageCodec,\n @A_Inject(A_FrameBrowserStorageBlobs) blobs: A_FrameBrowserStorageBlobs,\n ): Promise<void> {\n if (!context.encryptionKey) return;\n\n const records = await this._loadDefinitionsFromMemory(\n blobs.store, definition.namespace.id, context.encryptionKey, codec\n );\n if (records.length === 0) return;\n\n const record = records.find(r => r.aseid === definition.aseid.toString());\n if (\n record &&\n record.hash === definition.hash &&\n record.aFrameServerVersion === context.serverVersion\n ) {\n definition.fromJSON(record);\n }\n }\n\n\n // ---------------------------------------------------------------------------------------\n //--------------------------Namespace Entity-level Extensions----------------------------\n //---------------------------------------------------------------------------------------\n\n @A_Feature.Extend({\n name: A_FrameNamespaceFeatures.Load,\n scope: [A_FrameNamespace],\n })\n async loadNamespaceFromBlobs(\n @A_Inject(A_Caller) namespace: A_FrameNamespace,\n @A_Inject(A_FrameContext) context: A_FrameContext,\n @A_Inject(A_FrameStorageCodec) codec: A_FrameStorageCodec,\n @A_Inject(A_FrameBrowserStorageBlobs) blobs: A_FrameBrowserStorageBlobs,\n ): Promise<void> {\n if (!context.encryptionKey) return;\n\n const records = await this._loadNamespacesFromMemory(blobs, context.encryptionKey, codec);\n if (records.length === 0) return;\n\n const record = records.find(r => r.aseid === namespace.aseid.toString());\n if (\n record &&\n record.hash === namespace.hash &&\n record.aFrameServerVersion === context.serverVersion\n ) {\n namespace.fromJSON(record);\n }\n }\n\n\n // ─── Internal helpers ──────────────────────────────────────────────────────\n\n private async _loadDefinitionsFromMemory(\n store: Map<string, Uint8Array>,\n namespace: string,\n encryptionKey: string,\n codec: A_FrameStorageCodec,\n ): Promise<A_FrameDefinition_Serialized[]> {\n const blob = store.get(namespace);\n if (!blob) return [];\n try {\n const plain = await A_FrameCrypto.decryptBytes(blob, encryptionKey);\n return codec.decodePayload(plain);\n } catch {\n return [];\n }\n }\n\n private async _loadNamespacesFromMemory(\n blobs: A_FrameBrowserStorageBlobs,\n encryptionKey: string,\n codec: A_FrameStorageCodec,\n ): Promise<A_FrameNamespace_Serialized[]> {\n const blob = blobs.namespaceBlob;\n if (!blob) return [];\n try {\n const plain = await A_FrameCrypto.decryptBytes(blob, encryptionKey);\n return codec.decodeNamespacePayload(plain);\n } catch {\n return [];\n }\n }\n}\n"]}
@@ -0,0 +1,3 @@
1
+ import {a}from'./chunk-H6OZP4ZV.mjs';import {a as a$1}from'./chunk-EJIX7H7A.mjs';import {A_Entity,A_FormatterHelper}from'@adaas/a-concept';var m="default",r={Load:"_A_FRAME_NAMESPACE_LOAD",Save:"_A_FRAME_NAMESPACE_SAVE",Embed:"_A_FRAME_NAMESPACE_EMBED",Destroy:"_A_FRAME_NAMESPACE_DESTROY"};var s=class extends A_Entity{static get concept(){return "a-frame"}get id(){return this.aseid.id}get name(){return this._name}get hash(){return this._hash}get description(){return this._description}get metadata(){return this._metadata||{}}get vector(){return this._vector}get embedding(){return this._vector?.values??null}get aFrameServerVersion(){return this._aFrameServerVersion}get aFrameVersion(){return this._aFrameVersion}get isEmbed(){return this._vector!==void 0}save(e){return this.call(r.Save,e)}destroy(e){return this.call(r.Destroy,e)}async load(e){return this.call(r.Load,e)}update(e){e.name&&(this._name=e.name),e.description!==void 0&&(this._description=e.description),e.metadata!==void 0&&(this._metadata=e.metadata);}embed(e){return console.log(`Embedding namespace "${this._name}"...`),this.call(r.Embed,e)}fromNew(e){this.aseid=this.generateASEID({id:A_FormatterHelper.toKebabCase(e.name),scope:"a-frame"}),this._name=e.name;let t=this._name+(e.description||"")+(e.metadata?JSON.stringify(e.metadata):"");this._hash=a.fnv1a(t),this._description=e.description,this._metadata=e.metadata;}fromJSON(e){this._name=e.name,this._hash=e.hash,this._description=e.description,this._metadata=e.metadata,this._vector=e.embedding?new a$1(e.embedding):void 0,this._embeddedAt=e.embeddedAt,this._embeddingModel=e.embeddingModel,this._credentialId=e.credentialId,this._aFrameVersion=e.aFrameVersion,this._aFrameServerVersion=e.aFrameServerVersion;}toJSON(){return {...super.toJSON(),hash:this._hash,name:this._name,description:this._description,metadata:this._metadata,embedding:this._vector?.values,embeddedAt:this._embeddedAt??Date.now(),embeddingModel:this._embeddingModel,credentialId:this._credentialId,aFrameVersion:this._aFrameVersion,aFrameServerVersion:this._aFrameServerVersion}}hydrateFromRecord(e){if(e.hash!==this._hash)throw new Error(`A_FrameNamespace.hydrateFromRecord: hash mismatch for "${this._name}" (expected ${this._hash}, got ${e.hash})`);this._vector=new a$1(e.embedding),this._embeddedAt=e.embeddedAt;}hydrateFromEmbedding(e,t){this._vector=new a$1(e),this._embeddedAt=Date.now(),t&&(this._embeddingModel=t.model,this._credentialId=t.credentialId??void 0,this._aFrameVersion=t.aFrameVersion,this._aFrameServerVersion=t.aFrameServerVersion);}toString(){let e=[`// namespace: ${this._name}`];return this._description&&e.push(`// ${this._description}`),e.join(`
2
+ `)}};export{m as a,r as b,s as c};//# sourceMappingURL=chunk-GOMJPGVB.mjs.map
3
+ //# sourceMappingURL=chunk-GOMJPGVB.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/lib/A-FrameNamespace/A-FrameNamespace.constants.ts","../../src/lib/A-FrameNamespace/A-FrameNamespace.entity.ts"],"names":["A_FRAME_DEFAULT_NAMESPACE_KEY","A_FrameNamespaceFeatures","A_FrameNamespace","A_Entity","scope","updates","init","A_FormatterHelper","hashSource","A_FrameHashHelper","serialized","A_FrameVector","record","embedding","meta","parts"],"mappings":"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","file":"chunk-GOMJPGVB.mjs","sourcesContent":["import { A_FrameNamespace } from \"./A-FrameNamespace.entity\";\n\n\nexport const A_FRAME_DEFAULT_NAMESPACE_KEY = 'default';\n\n\nexport const A_FrameNamespaceFeatures = {\n Load: '_A_FRAME_NAMESPACE_LOAD',\n Save: '_A_FRAME_NAMESPACE_SAVE',\n Embed: '_A_FRAME_NAMESPACE_EMBED',\n Destroy: '_A_FRAME_NAMESPACE_DESTROY',\n} as const;","import { A_Context, A_Entity, A_FormatterHelper, A_Scope } from \"@adaas/a-concept\";\nimport { A_FrameVector } from \"../A-FrameVector/A-FrameVector.entity\";\nimport {\n A_FrameNamespace_Init,\n A_FrameNamespace_Serialized,\n A_FrameNamespace_Record,\n A_FrameNamespace_EmbeddingMeta,\n} from \"./A-FrameNamespace.types\";\nimport { A_FrameHashHelper } from \"@adaas/a-frame/helpers/Hash.helper\";\nimport { A_FrameNamespaceFeatures } from \"./A-FrameNamespace.constants\";\n\n\nexport class A_FrameNamespace extends A_Entity<A_FrameNamespace_Init, A_FrameNamespace_Serialized> {\n\n static get concept(): string {\n return 'a-frame';\n }\n\n protected _name!: string;\n protected _hash!: string;\n protected _description?: string;\n protected _metadata?: Record<string, any>;\n protected _vector?: A_FrameVector;\n protected _embeddedAt?: number;\n // ─── Provenance ───────────────────────────────────────────────────────────\n protected _embeddingModel?: string;\n protected _credentialId?: string;\n protected _aFrameVersion?: string;\n protected _aFrameServerVersion?: string;\n\n\n // ─── Getters ──────────────────────────────────────────────────────────────\n\n get id(): string {\n return this.aseid.id;\n }\n\n get name(): string {\n return this._name;\n }\n\n get hash(): string {\n return this._hash;\n }\n\n get description(): string | undefined {\n return this._description;\n }\n\n get metadata(): Record<string, any> {\n return this._metadata || {};\n }\n\n get vector(): A_FrameVector | undefined {\n return this._vector;\n }\n\n get embedding(): Float32Array | null {\n return this._vector?.values ?? null;\n }\n\n //-----------------------------------------------------------------------------------------------------\n //--------------------------------------- Computed properties -----------------------------------------\n //-----------------------------------------------------------------------------------------------------\n get aFrameServerVersion(): string | undefined {\n return this._aFrameServerVersion;\n }\n\n get aFrameVersion(): string | undefined {\n return this._aFrameVersion;\n }\n\n get isEmbed(): boolean {\n return this._vector !== undefined;\n }\n /**\n * Saves Namespace to storage. The actual implementation of saving is handled by the A_FrameNamespaceFeatures.Save feature, which can be implemented by the environment to persist the definition to a database, file system, or other storage mechanism.\n * \n * @param scope \n * @returns \n */\n save(scope?: A_Scope): Promise<void> | void {\n return this.call(A_FrameNamespaceFeatures.Save, scope);\n }\n /**\n * Deletes the namespace from storage. The actual implementation of deletion is handled by the A_FrameNamespaceFeatures.Destroy feature, which can be implemented by the environment to remove the namespace from the database, file system, or other storage mechanism.\n * \n * @param scope \n * @returns \n */\n destroy(scope?: A_Scope): Promise<void> | void {\n return this.call(A_FrameNamespaceFeatures.Destroy, scope);\n }\n /**\n * Loads the namespace from storage. The actual implementation of loading is handled by the A_FrameNamespaceFeatures.Load feature, which can be implemented by the environment to retrieve the namespace from the database, file system, or other storage mechanism and populate the entity's properties accordingly.\n * \n * @param scope \n * @returns \n */\n async load(scope?: A_Scope): Promise<void> {\n return this.call(A_FrameNamespaceFeatures.Load, scope);\n }\n /**\n * Updates the definition's properties. This can be used to modify the source code, description, metadata, or namespace of the definition. After updating, you may want to call `embed()` again to refresh the embedding based on the new content.\n * \n * @param updates \n */\n update(updates: Partial<Pick<A_FrameNamespace, 'name' | 'description' | 'metadata'>>): void {\n if (updates.name) this._name = updates.name;\n if (updates.description !== undefined) this._description = updates.description;\n if (updates.metadata !== undefined) this._metadata = updates.metadata;\n }\n /**\n * Generates an embedding vector for the namespace using the A_FrameNamespaceFeatures.Embed feature. This typically involves sending the namespace's content (name + description) to an embedding model and storing the resulting vector in the entity. Once embedded, the namespace can be searched using its vector representation.\n * \n * @param scope \n * @returns \n */\n embed(scope?: A_Scope): Promise<void> | void {\n console.log(`Embedding namespace \"${this._name}\"...`);\n return this.call(A_FrameNamespaceFeatures.Embed, scope);\n }\n\n // ─── A_Entity lifecycle ───────────────────────────────────────────────────\n\n fromNew(init: A_FrameNamespace_Init): void {\n\n this.aseid = this.generateASEID({\n id: A_FormatterHelper.toKebabCase(init.name),\n scope: 'a-frame',\n });\n\n this._name = init.name;\n\n const hashSource = this._name\n + (init.description || '')\n + (init.metadata ? JSON.stringify(init.metadata) : '');\n\n this._hash = A_FrameHashHelper.fnv1a(hashSource);\n this._description = init.description;\n this._metadata = init.metadata;\n }\n\n fromJSON(serialized: A_FrameNamespace_Serialized): void {\n this._name = serialized.name;\n this._hash = serialized.hash;\n this._description = serialized.description;\n this._metadata = serialized.metadata;\n this._vector = serialized.embedding ? new A_FrameVector(serialized.embedding) : undefined;\n this._embeddedAt = serialized.embeddedAt;\n this._embeddingModel = serialized.embeddingModel;\n this._credentialId = serialized.credentialId;\n this._aFrameVersion = serialized.aFrameVersion;\n this._aFrameServerVersion = serialized.aFrameServerVersion;\n }\n\n\n\n toJSON(): A_FrameNamespace_Serialized {\n return {\n ...super.toJSON(),\n hash: this._hash,\n name: this._name,\n description: this._description,\n metadata: this._metadata,\n embedding: this._vector?.values,\n embeddedAt: this._embeddedAt ?? Date.now(),\n embeddingModel: this._embeddingModel,\n credentialId: this._credentialId,\n aFrameVersion: this._aFrameVersion,\n aFrameServerVersion: this._aFrameServerVersion,\n };\n }\n\n\n // ─── Embedding hydration ──────────────────────────────────────────────────\n\n hydrateFromRecord(record: A_FrameNamespace_Record): void {\n if (record.hash !== this._hash) {\n throw new Error(\n `A_FrameNamespace.hydrateFromRecord: hash mismatch for \"${this._name}\" ` +\n `(expected ${this._hash}, got ${record.hash})`\n );\n }\n this._vector = new A_FrameVector(record.embedding);\n this._embeddedAt = record.embeddedAt;\n }\n\n hydrateFromEmbedding(embedding: Float32Array, meta?: A_FrameNamespace_EmbeddingMeta): void {\n this._vector = new A_FrameVector(embedding);\n this._embeddedAt = Date.now();\n if (meta) {\n this._embeddingModel = meta.model;\n this._credentialId = meta.credentialId ?? undefined;\n this._aFrameVersion = meta.aFrameVersion;\n this._aFrameServerVersion = meta.aFrameServerVersion;\n }\n }\n\n /**\n * Build the text string sent to the embedding model.\n * Uses name + description so the vector captures semantic intent.\n */\n toString(): string {\n const parts: string[] = [`// namespace: ${this._name}`];\n if (this._description) parts.push(`// ${this._description}`);\n return parts.join('\\n');\n }\n}\n\n"]}
@@ -0,0 +1,2 @@
1
+ import {b as b$1}from'./chunk-LOGRQOWP.mjs';import {c,b as b$3}from'./chunk-AYN7KUQT.mjs';import {a as a$2}from'./chunk-INS7RO3B.mjs';import {b as b$2,a as a$1}from'./chunk-ZVCTU2DN.mjs';import {a,b}from'./chunk-DMGQW3AO.mjs';import {A_Concept,A_Inject,A_Scope,A_Feature,A_Caller,A_Error,A_Fragment,A_Component,A_Context}from'@adaas/a-concept';var w=class extends A_Fragment{constructor(){super({name:"a-frame-context"});}get encryptionKey(){return this.credentials?.encryption_key}get serverVersion(){return this.credentials?.server_version}isAuthenticated(){return !!this.credentials}setCredentials(s){if(s.error){this.credentials=void 0;return}this.credentials=s.response||void 0;}};var S={SaveDefinitions:"_A_FRAME_STORAGE_SAVE",LoadDefinitions:"_A_FRAME_STORAGE_LOAD",DestroyDefinitions:"_A_FRAME_STORAGE_DESTROY",SaveNamespaces:"_A_FRAME_STORAGE_SAVE_NAMESPACES",LoadNamespaces:"_A_FRAME_STORAGE_LOAD_NAMESPACES",DestroyNamespaces:"_A_FRAME_STORAGE_DESTROY_NAMESPACES"};var g=class extends A_Fragment{constructor(s){super({name:"a-frame-storage-operation"}),this._params=s;}get result(){return this._result}get error(){return this._error}get params(){return this._params}complete(s){this._result=s;}fail(s){this._error=s;}};var _=class extends A_Error{};_.SaveDefinitionFailed="SaveDefinitionFailed",_.LoadDefinitionsFailed="LoadDefinitionsFailed",_.DestroyDefinitionsFailed="DestroyDefinitionsFailed",_.SaveNamespaceFailed="SaveNamespaceFailed",_.LoadNamespacesFailed="LoadNamespacesFailed",_.DestroyNamespacesFailed="DestroyNamespacesFailed";var R=class extends A_Component{async saveDefinitions(s){let e=new g({records:s}),t=new A_Scope({name:"A_FrameStorage.saveDefinitions",fragments:[e]}).inherit(A_Context.scope(this));try{return await this.call(S.SaveDefinitions,t),t.destroy(),e}catch{return e.fail(new _({title:_.SaveDefinitionFailed,description:"Failed to save definition records."})),t.destroy(),e}}async loadDefinitions(s,e){let t=new g({namespaceId:s}),a=new A_Scope({name:"A_FrameStorage.loadDefinitions",fragments:[t]}).inherit(A_Context.scope(this));try{return await this.call(S.LoadDefinitions,a),a.destroy(),t}catch{return t.fail(new _({title:_.LoadDefinitionsFailed,description:"Failed to load definition records."})),a.destroy(),t}}async destroyDefinitions(s,e){let t=new g({namespaceId:s,definitionId:e}),a=new A_Scope({name:"A_FrameStorage.destroyDefinitions",fragments:[t]}).inherit(A_Context.scope(this));try{return await this.call(S.DestroyDefinitions,a),a.destroy(),t}catch{return t.fail(new _({title:_.DestroyDefinitionsFailed,description:"Failed to destroy definition records."})),a.destroy(),t}}async saveNamespaces(s){let e=new g({records:s}),t=new A_Scope({name:"A_FrameStorage.saveNamespaces",fragments:[e]}).inherit(A_Context.scope(this));try{return await this.call(S.SaveNamespaces,t),t.destroy(),e}catch{return e.fail(new _({title:_.SaveNamespaceFailed,description:"Failed to save namespace records."})),t.destroy(),e}}async loadNamespaces(s){let e=new g({namespaces:s}),t=new A_Scope({name:"A_FrameStorage.loadNamespaces",fragments:[e]}).inherit(A_Context.scope(this));try{return await this.call(S.LoadNamespaces,t),t.destroy(),e}catch{return e.fail(new _({title:_.LoadNamespacesFailed,description:"Failed to load namespace records."})),t.destroy(),e}}async destroyNamespaces(s){let e=new g({namespaces:s}),t=new A_Scope({name:"A_FrameStorage.destroyNamespaces",fragments:[e]}).inherit(A_Context.scope(this));try{return await this.call(S.DestroyNamespaces,t),t.destroy(),e}catch{return e.fail(new _({title:_.DestroyNamespacesFailed,description:"Failed to destroy namespace records."})),t.destroy(),e}}};function G(F){if(typeof atob=="function"){let s=atob(F),e=new Uint8Array(s.length);for(let t=0;t<s.length;t++)e[t]=s.charCodeAt(t);return e}return new Uint8Array(Buffer.from(F,"base64"))}var D=class F extends A_Fragment{constructor(){if(F._instance)return F._instance;super({name:"a-frame-browser-storage-blobs"});this.store=new Map;this.namespaceBlob=null;this.bundleMeta=null;}static get instance(){return F._instance||(F._instance=new F),F._instance}static fromBundle(e){let t=F.instance;return t.seedFromBundle(e),t}seedFromBundle(e){e.namespaces&&(this.namespaceBlob=G(e.namespaces));for(let[t,a]of Object.entries(e.definitions))this.store.set(t,G(a));this.bundleMeta={aFrameVersion:e.aFrameVersion,serverVersion:e.serverVersion,builtAt:e.builtAt};}};var I=new TextEncoder,C=new TextDecoder,N=class F extends A_Fragment{constructor(){super(...arguments);this.enc=new TextEncoder;this.dec=new TextDecoder;this.A_FRAME_FILE_MAGIC=1162691147;this.A_FRAME_FILE_VERSION=1;this.A_FRAME_HEADER_SIZE=20;}static get fileExtension(){return ".aframe"}getFileName(e){return `${e}${F.fileExtension}`}getNamespaceFileName(){return `__namespaces${F.fileExtension}`}encodePayload(e){let t=[];if(e.some(r=>!r.embedding))throw new Error("All records must have embeddings to be encoded");let a=new Uint8Array(this.A_FRAME_HEADER_SIZE),i=new DataView(a.buffer);i.setUint32(0,this.A_FRAME_FILE_MAGIC,true),a[4]=this.A_FRAME_FILE_VERSION,i.setUint32(5,e.length,true);let d=e[0]?.embedding.length??0;i.setUint16(9,d,true),t.push(a);for(let r of e){let p=I.encode(r.aseid.toString()),y=I.encode(r.name),x=JSON.stringify({hash:r.hash,source:r.source,type:r.type,description:r.description,metadata:r.metadata,namespace:r.namespace,date:r.date,model:r.model,credentialId:r.credentialId,aFrameVersion:r.aFrameVersion,aFrameServerVersion:r.aFrameServerVersion}),E=I.encode(x),b=2+p.length+2+y.length+r.embedding.length*4+4+E.length,f=new Uint8Array(b),h=new DataView(f.buffer),o=0;h.setUint16(o,p.length,true),o+=2,f.set(p,o),o+=p.length,h.setUint16(o,y.length,true),o+=2,f.set(y,o),o+=y.length;for(let u=0;u<r.embedding.length;u++)h.setFloat32(o,r.embedding[u],true),o+=4;h.setUint32(o,E.length,true),o+=4,f.set(E,o),t.push(f);}let l=t.reduce((r,p)=>r+p.length,0),A=new Uint8Array(l),n=0;for(let r of t)A.set(r,n),n+=r.length;return A}decodePayload(e){if(e.length<this.A_FRAME_HEADER_SIZE)throw new Error("Corrupt index: too short for header");let t=new DataView(e.buffer,e.byteOffset,e.byteLength),a=t.getUint32(0,true);if(a!==this.A_FRAME_FILE_MAGIC)throw new Error(`Corrupt index: bad magic 0x${a.toString(16)}`);let i=e[4];if(i!==this.A_FRAME_FILE_VERSION)throw new Error(`Unsupported index version: ${i}`);let d=t.getUint32(5,true),l=t.getUint16(9,true),A=[],n=this.A_FRAME_HEADER_SIZE;for(let r=0;r<d;r++){let p=t.getUint16(n,true);n+=2;let y=C.decode(e.slice(n,n+p));n+=p;let x=t.getUint16(n,true);n+=2;let E=C.decode(e.slice(n,n+x));n+=x;let b=new Float32Array(l);for(let u=0;u<l;u++)b[u]=t.getFloat32(n,true),n+=4;let f=t.getUint32(n,true);n+=4;let h=C.decode(e.slice(n,n+f));n+=f;let o=JSON.parse(h);A.push({aseid:y,hash:o.hash??y,name:E,type:o.type,embedding:b,source:o.source,description:o.description,metadata:o.metadata,namespace:o.namespace,date:o.date,model:o.model,credentialId:o.credentialId,aFrameVersion:o.aFrameVersion,aFrameServerVersion:o.aFrameServerVersion});}return A}encodeNamespacePayload(e){let t=[];if(e.some(r=>!r.embedding))throw new Error("All records must have embeddings to be encoded");let a=new Uint8Array(this.A_FRAME_HEADER_SIZE),i=new DataView(a.buffer);i.setUint32(0,this.A_FRAME_FILE_MAGIC,true),a[4]=this.A_FRAME_FILE_VERSION,i.setUint32(5,e.length,true);let d=e[0]?.embedding.length??0;i.setUint16(9,d,true),t.push(a);for(let r of e){let p=I.encode(r.aseid.toString()),y=I.encode(r.name),x=JSON.stringify({hash:r.hash,description:r.description,metadata:r.metadata,embeddedAt:r.embeddedAt,embeddingModel:r.embeddingModel,credentialId:r.credentialId,aFrameVersion:r.aFrameVersion,aFrameServerVersion:r.aFrameServerVersion}),E=I.encode(x),b=2+p.length+2+y.length+r.embedding.length*4+4+E.length,f=new Uint8Array(b),h=new DataView(f.buffer),o=0;h.setUint16(o,p.length,true),o+=2,f.set(p,o),o+=p.length,h.setUint16(o,y.length,true),o+=2,f.set(y,o),o+=y.length;for(let u=0;u<r.embedding.length;u++)h.setFloat32(o,r.embedding[u],true),o+=4;h.setUint32(o,E.length,true),o+=4,f.set(E,o),t.push(f);}let l=t.reduce((r,p)=>r+p.length,0),A=new Uint8Array(l),n=0;for(let r of t)A.set(r,n),n+=r.length;return A}decodeNamespacePayload(e){if(e.length<this.A_FRAME_HEADER_SIZE)throw new Error("Corrupt namespace index: too short for header");let t=new DataView(e.buffer,e.byteOffset,e.byteLength),a=t.getUint32(0,true);if(a!==this.A_FRAME_FILE_MAGIC)throw new Error(`Corrupt namespace index: bad magic 0x${a.toString(16)}`);let i=e[4];if(i!==this.A_FRAME_FILE_VERSION)throw new Error(`Unsupported namespace index version: ${i}`);let d=t.getUint32(5,true),l=t.getUint16(9,true),A=[],n=this.A_FRAME_HEADER_SIZE;for(let r=0;r<d;r++){let p=t.getUint16(n,true);n+=2;let y=C.decode(e.slice(n,n+p));n+=p;let x=t.getUint16(n,true);n+=2;let E=C.decode(e.slice(n,n+x));n+=x;let b=new Float32Array(l);for(let u=0;u<l;u++)b[u]=t.getFloat32(n,true),n+=4;let f=t.getUint32(n,true);n+=4;let h=C.decode(e.slice(n,n+f));n+=f;let o=JSON.parse(h);A.push({aseid:y,hash:o.hash??y,name:E,embedding:b,description:o.description,metadata:o.metadata,embeddedAt:o.embeddedAt,embeddingModel:o.embeddingModel,credentialId:o.credentialId,aFrameVersion:o.aFrameVersion,aFrameServerVersion:o.aFrameServerVersion});}return A}};var v=class extends R{onLoad(s,e){e||s.register(D.instance);}async saveDefinitionsToMemory(s,e,t,a,i){let d=e.params.records,l=d[0].namespace,A=await this._loadDefinitionsFromMemory(i.store,l,t.encryptionKey,a),n=new Map;for(let p of A)n.set(p.aseid,p);for(let p of d)n.set(p.aseid.toString(),p);let r=a.encodePayload(Array.from(n.values()));i.store.set(l,await a$2.encryptBytes(r,t.encryptionKey)),e.complete({saved:d.length});}async loadDefinitionsFromMemory(s,e,t,a,i){let d=e.params.namespaceId,l=await this._loadDefinitionsFromMemory(i.store,d,t.encryptionKey,a);e.complete({records:l});}async destroyDefinitionsFromMemory(s,e,t,a,i){let d=e.params.namespaceId,l=e.params.definitionId,n=(await this._loadDefinitionsFromMemory(i.store,d,t.encryptionKey,a)).filter(p=>p.aseid!==l),r=a.encodePayload(n);i.store.set(d,await a$2.encryptBytes(r,t.encryptionKey)),e.complete({records:n});}async saveNamespacesToMemory(s,e,t,a,i){let d=e.params.records,l=await this._loadNamespacesFromMemory(i,t.encryptionKey,a),A=new Map;for(let r of l)A.set(r.aseid,r);for(let r of d)A.set(r.aseid.toString(),r);let n=a.encodeNamespacePayload(Array.from(A.values()));i.namespaceBlob=await a$2.encryptBytes(n,t.encryptionKey),e.complete({success:true});}async loadNamespacesFromMemory(s,e,t,a,i){let d=e.params.namespaces,l=await this._loadNamespacesFromMemory(i,t.encryptionKey,a);e.complete({records:d?l.filter(A=>d.includes(A.name)):l});}async destroyNamespacesFromMemory(s,e,t,a,i){let d=e.params.namespaces,A=(await this._loadNamespacesFromMemory(i,t.encryptionKey,a)).filter(r=>!d.includes(r.aseid)),n=a.encodeNamespacePayload(A);i.namespaceBlob=await a$2.encryptBytes(n,t.encryptionKey);try{for(let r of d)i.store.delete(r);e.complete({success:!0});}catch{e.fail(new _({title:_.DestroyNamespacesFailed,description:"Failed to destroy namespace records."})),e.complete({success:false});}}async loadDefinitionFromBlobs(s,e,t,a){if(!e.encryptionKey)return;let i=await this._loadDefinitionsFromMemory(a.store,s.namespace.id,e.encryptionKey,t);if(i.length===0)return;let d=i.find(l=>l.aseid===s.aseid.toString());d&&d.hash===s.hash&&d.aFrameServerVersion===e.serverVersion&&s.fromJSON(d);}async loadNamespaceFromBlobs(s,e,t,a){if(!e.encryptionKey)return;let i=await this._loadNamespacesFromMemory(a,e.encryptionKey,t);if(i.length===0)return;let d=i.find(l=>l.aseid===s.aseid.toString());d&&d.hash===s.hash&&d.aFrameServerVersion===e.serverVersion&&s.fromJSON(d);}async _loadDefinitionsFromMemory(s,e,t,a){let i=s.get(e);if(!i)return [];try{let d=await a$2.decryptBytes(i,t);return a.decodePayload(d)}catch{return []}}async _loadNamespacesFromMemory(s,e,t){let a=s.namespaceBlob;if(!a)return [];try{let i=await a$2.decryptBytes(a,e);return t.decodeNamespacePayload(i)}catch{return []}}};a([A_Concept.Load(),b(0,A_Inject(A_Scope)),b(1,A_Inject(D))],v.prototype,"onLoad",1),a([A_Feature.Extend({name:S.SaveDefinitions,scope:[R]}),b(0,A_Inject(b$1)),b(1,A_Inject(g)),b(2,A_Inject(w)),b(3,A_Inject(N)),b(4,A_Inject(D))],v.prototype,"saveDefinitionsToMemory",1),a([A_Feature.Extend({name:S.LoadDefinitions,scope:[R]}),b(0,A_Inject(b$1)),b(1,A_Inject(g)),b(2,A_Inject(w)),b(3,A_Inject(N)),b(4,A_Inject(D))],v.prototype,"loadDefinitionsFromMemory",1),a([A_Feature.Extend({name:S.DestroyDefinitions,scope:[R]}),b(0,A_Inject(b$1)),b(1,A_Inject(g)),b(2,A_Inject(w)),b(3,A_Inject(N)),b(4,A_Inject(D))],v.prototype,"destroyDefinitionsFromMemory",1),a([A_Feature.Extend({name:S.SaveNamespaces,scope:[R]}),b(0,A_Inject(b$1)),b(1,A_Inject(g)),b(2,A_Inject(w)),b(3,A_Inject(N)),b(4,A_Inject(D))],v.prototype,"saveNamespacesToMemory",1),a([A_Feature.Extend({name:S.LoadNamespaces,scope:[R]}),b(0,A_Inject(b$1)),b(1,A_Inject(g)),b(2,A_Inject(w)),b(3,A_Inject(N)),b(4,A_Inject(D))],v.prototype,"loadNamespacesFromMemory",1),a([A_Feature.Extend({name:S.DestroyNamespaces,scope:[R]}),b(0,A_Inject(b$1)),b(1,A_Inject(g)),b(2,A_Inject(w)),b(3,A_Inject(N)),b(4,A_Inject(D))],v.prototype,"destroyNamespacesFromMemory",1),a([A_Feature.Extend({name:a$1.Load,scope:[b$2]}),b(0,A_Inject(A_Caller)),b(1,A_Inject(w)),b(2,A_Inject(N)),b(3,A_Inject(D))],v.prototype,"loadDefinitionFromBlobs",1),a([A_Feature.Extend({name:b$3.Load,scope:[c]}),b(0,A_Inject(A_Caller)),b(1,A_Inject(w)),b(2,A_Inject(N)),b(3,A_Inject(D))],v.prototype,"loadNamespaceFromBlobs",1);export{w as a,S as b,g as c,_ as d,R as e,D as f,N as g,v as h};//# sourceMappingURL=chunk-INQV5UZA.mjs.map
2
+ //# sourceMappingURL=chunk-INQV5UZA.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/lib/A-Frame/A-Frame.context.ts","../../src/lib/A-FrameStorage/A-FrameStorage.constants.ts","../../src/lib/A-FrameStorage/A-FrameStorageOperation.context.ts","../../src/lib/A-FrameStorage/A-FrameStorage.error.ts","../../src/lib/A-FrameStorage/A-FrameStorage.component.ts","../../src/lib/A-FrameStorage/browser/A-FrameBrowserStorageBlobs.context.ts","../../src/lib/A-FrameStorage/A-FrameStorage.codec.ts","../../src/lib/A-FrameStorage/browser/A-FrameBrowserStorage.component.ts"],"names":["A_FrameContext","A_Fragment","credentials","A_FrameStorageFeatures","A_FrameStorageOperation","params","result","error","A_FrameStorageError","A_Error","A_FrameStorage","A_Component","definitions","context","executionScope","A_Scope","A_Context","namespaceId","definitionId","namespaces","namespaceIds","namespacesIds","decodeBase64","b64","bin","out","i","A_FrameBrowserStorageBlobs","_A_FrameBrowserStorageBlobs","bundle","blobs","id","enc","dec","A_FrameStorageCodec","_A_FrameStorageCodec","namespace","records","parts","header","headerView","dims","rec","aseidBytes","nameBytes","metaJson","metaBytes","recSize","recBuf","view","offset","total","s","pos","p","data","magic","version","count","aseidLen","aseid","nameLen","name","embedding","d","metaLen","meta","A_FrameBrowserStorageProvider","scope","env","operation","global","codec","existing","merged","r","payload","A_FrameCrypto","filtered","ids","definition","record","store","encryptionKey","blob","plain","__decorateClass","A_Concept","__decorateParam","A_Inject","A_Feature","A_FrameEnv","A_FrameDefinitionFeatures","A_FrameDefinition","A_Caller","A_FrameNamespaceFeatures","A_FrameNamespace"],"mappings":"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","file":"chunk-INQV5UZA.mjs","sourcesContent":["import { A_Fragment } from \"@adaas/a-concept\"\nimport { A_FrameChannelRequest } from \"../A-FrameChannel/A-FrameChannelRequest.context\";\nimport { A_Frame_CredentialResponse } from \"../A-FrameChannel/A-FrameChannel.types\";\n\n\nexport class A_FrameContext extends A_Fragment {\n\n private credentials?: A_Frame_CredentialResponse;\n\n\n constructor() {\n super({ name: 'a-frame-context' });\n }\n\n\n get encryptionKey(): string | undefined {\n return this.credentials?.encryption_key;\n }\n\n\n get serverVersion(): string | undefined {\n return this.credentials?.server_version;\n }\n\n\n isAuthenticated(): boolean {\n return !!this.credentials;\n }\n\n\n setCredentials(credentials: A_FrameChannelRequest<A_Frame_CredentialResponse>) {\n if (credentials.error) {\n this.credentials = undefined;\n return;\n }\n\n this.credentials = credentials.response || undefined;\n }\n\n}","\n\nexport const A_FrameStorageFeatures = {\n SaveDefinitions: '_A_FRAME_STORAGE_SAVE',\n LoadDefinitions: '_A_FRAME_STORAGE_LOAD',\n DestroyDefinitions: '_A_FRAME_STORAGE_DESTROY',\n \n SaveNamespaces: '_A_FRAME_STORAGE_SAVE_NAMESPACES',\n LoadNamespaces: '_A_FRAME_STORAGE_LOAD_NAMESPACES',\n DestroyNamespaces: '_A_FRAME_STORAGE_DESTROY_NAMESPACES',\n} as const","import { A_Error, A_Fragment } from \"@adaas/a-concept\";\n\n\nexport class A_FrameStorageOperation<\n _ParamsType = any,\n _ResultType = any\n> extends A_Fragment {\n\n protected _result?: _ResultType;\n\n protected _error?: A_Error;\n\n protected _params!: _ParamsType;\n\n\n constructor(\n params: _ParamsType\n ) {\n super({ name: 'a-frame-storage-operation' });\n this._params = params;\n }\n\n\n /**\n * If the operation succeeded, this will contain the result data. If the operation failed, this will be undefined.\n */\n get result(): _ResultType | undefined {\n return this._result;\n }\n /**\n * If the operation failed, this will contain an error object with details about the failure. If the operation succeeded, this will be undefined.\n */\n get error(): A_Error | undefined {\n return this._error;\n }\n /**\n * Parameters used to execute the operation, e.g. definitionId and namespaceId for a saveDefinition operation.\n */\n get params(): _ParamsType {\n return this._params;\n }\n /**\n * Marks the operation as completed successfully with the given result. This will set the `result` property and leave `error` as undefined.\n * \n * @param result \n */\n complete(result: _ResultType): void {\n this._result = result;\n }\n /**\n * Marks the operation as failed with the given error. This will set the `error` property and leave `result` as undefined.\n * \n * @param error \n */\n fail(error: A_Error): void {\n this._error = error;\n }\n\n}\n","import { A_Error } from \"@adaas/a-concept\";\n\n\n\nexport class A_FrameStorageError extends A_Error {\n static readonly SaveDefinitionFailed = 'SaveDefinitionFailed';\n static readonly LoadDefinitionsFailed = 'LoadDefinitionsFailed';\n static readonly DestroyDefinitionsFailed = 'DestroyDefinitionsFailed';\n static readonly SaveNamespaceFailed = 'SaveNamespaceFailed';\n static readonly LoadNamespacesFailed = 'LoadNamespacesFailed';\n static readonly DestroyNamespacesFailed = 'DestroyNamespacesFailed';\n\n}","import { A_Component, A_Context, A_Scope } from '@adaas/a-concept';\nimport { A_FrameNamespace_Serialized } from '../A-FrameNamespace/A-FrameNamespace.types';\nimport { A_FrameStorageFeatures } from './A-FrameStorage.constants';\nimport { A_FrameStorageOperation } from './A-FrameStorageOperation.context';\nimport { A_FrameStorageError } from './A-FrameStorage.error';\nimport { A_FrameStorageDestroyDefinitionsOperation, A_FrameStorageDestroyDefinitionsOperationParams, A_FrameStorageDestroyDefinitionsOperationResult, A_FrameStorageDestroyNamespacesOperation, A_FrameStorageDestroyNamespacesOperationParams, A_FrameStorageDestroyNamespacesOperationResult, A_FrameStorageLoadDefinitionsOperation, A_FrameStorageLoadDefinitionsOperationParams, A_FrameStorageLoadDefinitionsOperationResult, A_FrameStorageLoadNamespacesOperation, A_FrameStorageLoadNamespacesOperationParams, A_FrameStorageLoadNamespacesOperationResult, A_FrameStorageSaveDefinitionOperation, A_FrameStorageSaveDefinitionOperationParams, A_FrameStorageSaveDefinitionOperationResult, A_FrameStorageSaveNamespaceOperation, A_FrameStorageSaveNamespaceOperationParams, A_FrameStorageSaveNamespaceOperationResult } from './A-FrameStorage.types';\nimport { A_FrameDefinition_Serialized } from '../A-FrameDefinition/A-FrameDefinition.types';\n\n\nexport class A_FrameStorage extends A_Component {\n\n async saveDefinitions(definitions: Array<A_FrameDefinition_Serialized>): Promise<A_FrameStorageSaveDefinitionOperation> {\n const context = new A_FrameStorageOperation<A_FrameStorageSaveDefinitionOperationParams, A_FrameStorageSaveDefinitionOperationResult>({\n records: definitions\n });\n\n const executionScope = new A_Scope({\n name: 'A_FrameStorage.saveDefinitions',\n fragments: [context]\n })\n .inherit(A_Context.scope(this));\n\n try {\n await this.call(A_FrameStorageFeatures.SaveDefinitions, executionScope);\n executionScope.destroy();\n\n return context;\n } catch (error) {\n\n context.fail(new A_FrameStorageError({\n title: A_FrameStorageError.SaveDefinitionFailed,\n description: `Failed to save definition records.`,\n }));\n\n executionScope.destroy();\n\n return context;\n }\n }\n\n async loadDefinitions(namespaceId: string, definitionId: string): Promise<A_FrameStorageLoadDefinitionsOperation> {\n const context = new A_FrameStorageOperation<A_FrameStorageLoadDefinitionsOperationParams, A_FrameStorageLoadDefinitionsOperationResult>({\n namespaceId,\n });\n\n const executionScope = new A_Scope({\n name: 'A_FrameStorage.loadDefinitions',\n fragments: [context]\n })\n .inherit(A_Context.scope(this));\n\n try {\n await this.call(A_FrameStorageFeatures.LoadDefinitions, executionScope);\n executionScope.destroy();\n\n return context;\n } catch (error) {\n\n context.fail(new A_FrameStorageError({\n title: A_FrameStorageError.LoadDefinitionsFailed,\n description: `Failed to load definition records.`,\n }));\n\n executionScope.destroy();\n\n return context;\n }\n }\n\n\n async destroyDefinitions(namespaceId: string, definitionId: string): Promise<A_FrameStorageDestroyDefinitionsOperation> {\n const context = new A_FrameStorageOperation<A_FrameStorageDestroyDefinitionsOperationParams, A_FrameStorageDestroyDefinitionsOperationResult>({\n namespaceId,\n definitionId\n });\n\n const executionScope = new A_Scope({\n name: 'A_FrameStorage.destroyDefinitions',\n fragments: [context]\n })\n .inherit(A_Context.scope(this));\n\n try {\n await this.call(A_FrameStorageFeatures.DestroyDefinitions, executionScope);\n executionScope.destroy();\n\n return context;\n } catch (error) {\n\n context.fail(new A_FrameStorageError({\n title: A_FrameStorageError.DestroyDefinitionsFailed,\n description: `Failed to destroy definition records.`,\n }));\n\n executionScope.destroy();\n\n return context;\n }\n }\n\n\n\n async saveNamespaces(namespaces: A_FrameNamespace_Serialized[]): Promise<A_FrameStorageSaveNamespaceOperation> {\n const context = new A_FrameStorageOperation<A_FrameStorageSaveNamespaceOperationParams, A_FrameStorageSaveNamespaceOperationResult>({\n records: namespaces\n });\n\n const executionScope = new A_Scope({\n name: 'A_FrameStorage.saveNamespaces',\n fragments: [context]\n })\n .inherit(A_Context.scope(this));\n\n try {\n await this.call(A_FrameStorageFeatures.SaveNamespaces, executionScope);\n executionScope.destroy();\n\n return context;\n } catch (error) {\n\n context.fail(new A_FrameStorageError({\n title: A_FrameStorageError.SaveNamespaceFailed,\n description: `Failed to save namespace records.`,\n }));\n\n executionScope.destroy();\n\n return context;\n }\n }\n\n async loadNamespaces(\n namespaceIds: string[]\n ): Promise<A_FrameStorageLoadNamespacesOperation> {\n const context = new A_FrameStorageOperation<A_FrameStorageLoadNamespacesOperationParams, A_FrameStorageLoadNamespacesOperationResult>({\n namespaces: namespaceIds\n });\n\n const executionScope = new A_Scope({\n name: 'A_FrameStorage.loadNamespaces',\n fragments: [context]\n })\n .inherit(A_Context.scope(this));\n\n try {\n await this.call(A_FrameStorageFeatures.LoadNamespaces, executionScope);\n executionScope.destroy();\n\n return context;\n } catch (error) {\n\n context.fail(new A_FrameStorageError({\n title: A_FrameStorageError.LoadNamespacesFailed,\n description: `Failed to load namespace records.`,\n }));\n\n executionScope.destroy();\n\n return context;\n }\n }\n\n async destroyNamespaces(namespacesIds: string[]): Promise<A_FrameStorageDestroyNamespacesOperation> {\n const context = new A_FrameStorageOperation<A_FrameStorageDestroyNamespacesOperationParams, A_FrameStorageDestroyNamespacesOperationResult>({\n namespaces: namespacesIds\n });\n\n const executionScope = new A_Scope({\n name: 'A_FrameStorage.destroyNamespaces',\n fragments: [context]\n })\n .inherit(A_Context.scope(this));\n\n try {\n await this.call(A_FrameStorageFeatures.DestroyNamespaces, executionScope);\n executionScope.destroy();\n\n return context;\n } catch (error) {\n\n context.fail(new A_FrameStorageError({\n title: A_FrameStorageError.DestroyNamespacesFailed,\n description: `Failed to destroy namespace records.`,\n }));\n\n executionScope.destroy();\n\n return context;\n }\n }\n}\n","// ─── In-memory blob store (singleton Fragment) ────────────────────────────────\n//\n// A_Component is stateless — persistent session state lives in a Fragment\n// singleton that survives across per-call execution scopes.\n\nimport { A_Fragment } from \"@adaas/a-concept\";\nimport type { A_FrameBundle } from \"@adaas/a-frame/bundle\";\n\n\n/** Browser-safe base64 → Uint8Array (uses globalThis.atob; falls back to Buffer in Node tests). */\nfunction decodeBase64(b64: string): Uint8Array {\n if (typeof atob === 'function') {\n const bin = atob(b64);\n const out = new Uint8Array(bin.length);\n for (let i = 0; i < bin.length; i++) out[i] = bin.charCodeAt(i);\n return out;\n }\n // Node fallback so the same fragment works in Jest/SSR.\n return new Uint8Array(Buffer.from(b64, 'base64'));\n}\n\n\nexport class A_FrameBrowserStorageBlobs extends A_Fragment {\n\n private static _instance: A_FrameBrowserStorageBlobs | undefined;\n\n static get instance(): A_FrameBrowserStorageBlobs {\n if (!A_FrameBrowserStorageBlobs._instance) {\n A_FrameBrowserStorageBlobs._instance = new A_FrameBrowserStorageBlobs();\n }\n return A_FrameBrowserStorageBlobs._instance;\n }\n\n /**\n * Build a singleton blobs store seeded from a prebuilt bundle.\n * Convenience for browser bootstrap.\n */\n static fromBundle(bundle: A_FrameBundle): A_FrameBrowserStorageBlobs {\n const blobs = A_FrameBrowserStorageBlobs.instance;\n blobs.seedFromBundle(bundle);\n return blobs;\n }\n\n constructor() {\n if (A_FrameBrowserStorageBlobs._instance)\n return A_FrameBrowserStorageBlobs._instance;\n\n super({ name: 'a-frame-browser-storage-blobs' });\n }\n\n /** namespace → encrypted definition bytes */\n readonly store = new Map<string, Uint8Array>();\n\n /** encrypted bytes for the namespace index (`__namespaces.aframe` equivalent) */\n namespaceBlob: Uint8Array | null = null;\n\n /** Bundle metadata recorded at seed time, used by A_Frame to validate versions. */\n bundleMeta: { aFrameVersion: string; serverVersion: string; builtAt: string } | null = null;\n\n /**\n * Populate the store from a bundle artifact. Existing entries with the\n * same namespace are overwritten; unrelated entries are preserved.\n */\n seedFromBundle(bundle: A_FrameBundle): void {\n if (bundle.namespaces) {\n this.namespaceBlob = decodeBase64(bundle.namespaces);\n }\n for (const [id, b64] of Object.entries(bundle.definitions)) {\n this.store.set(id, decodeBase64(b64));\n }\n this.bundleMeta = {\n aFrameVersion: bundle.aFrameVersion,\n serverVersion: bundle.serverVersion,\n builtAt: bundle.builtAt,\n };\n }\n}","/**\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","import { A_Caller, A_Concept, A_Feature, A_Inject, A_Scope } from \"@adaas/a-concept\";\nimport { A_FrameStorageFeatures } from \"../A-FrameStorage.constants\";\nimport { A_FrameStorage } from \"../A-FrameStorage.component\";\nimport { A_FrameEnv } from \"../../A-FrameEnv/A-FrameEnv.fragment.env-browser\";\nimport { A_FrameStorageOperation } from \"../A-FrameStorageOperation.context\";\nimport {\n A_FrameStorageDestroyDefinitionsOperation,\n A_FrameStorageDestroyNamespacesOperation,\n A_FrameStorageLoadDefinitionsOperation,\n A_FrameStorageLoadNamespacesOperation,\n A_FrameStorageSaveDefinitionOperation,\n A_FrameStorageSaveNamespaceOperation,\n} from \"../A-FrameStorage.types\";\nimport { A_FrameCrypto } from \"../../A-FrameCrypto/A-FrameCrypto.component.env-browser\";\nimport { A_FrameDefinition_Serialized } from \"../../A-FrameDefinition/A-FrameDefinition.types\";\nimport { A_FrameNamespace_Serialized } from \"../../A-FrameNamespace/A-FrameNamespace.types\";\nimport { A_FrameBrowserStorageBlobs } from \"./A-FrameBrowserStorageBlobs.context\";\nimport { A_FrameStorageCodec } from \"../A-FrameStorage.codec\";\nimport { A_FrameContext } from \"../../A-Frame/A-Frame.context\";\nimport { A_FrameStorageError } from \"../A-FrameStorage.error\";\nimport { A_FrameDefinition } from \"../../A-FrameDefinition\";\nimport { A_FrameDefinitionFeatures } from \"../../A-FrameDefinition/A-FrameDefinition.constants\";\nimport { A_FrameNamespace } from \"../../A-FrameNamespace\";\nimport { A_FrameNamespaceFeatures } from \"../../A-FrameNamespace/A-FrameNamespace.constants\";\n\n\n/**\n * A_FrameBrowserStorageProvider — Browser environment\n *\n * Stores encrypted definition and namespace records entirely in memory.\n * Pre-built .aframe index files should be injected at bundle startup via\n * A_FrameBrowserStorageProvider.loadBlob() so that read-only access works\n * without any network or filesystem calls.\n *\n * Example (Vite):\n * import mathBin from './embed-index/math.aframe?arraybuffer';\n * A_FrameBrowserStorageProvider.loadBlob('math', new Uint8Array(mathBin));\n */\nexport class A_FrameBrowserStorageProvider extends A_FrameStorage {\n\n @A_Concept.Load()\n onLoad(\n @A_Inject(A_Scope) scope: A_Scope,\n @A_Inject(A_FrameBrowserStorageBlobs) blobs?: A_FrameBrowserStorageBlobs,\n ) {\n if (!blobs) {\n scope.register(A_FrameBrowserStorageBlobs.instance);\n }\n }\n\n\n // ---------------------------------------------------------------------------------------\n //--------------------------Storage Features Extensions----------------------------------\n //---------------------------------------------------------------------------------------\n\n @A_Feature.Extend({\n name: A_FrameStorageFeatures.SaveDefinitions,\n scope: [A_FrameStorage],\n })\n async saveDefinitionsToMemory(\n @A_Inject(A_FrameEnv) env: A_FrameEnv,\n @A_Inject(A_FrameStorageOperation) operation: A_FrameStorageSaveDefinitionOperation,\n @A_Inject(A_FrameContext) global: A_FrameContext,\n @A_Inject(A_FrameStorageCodec) codec: A_FrameStorageCodec,\n @A_Inject(A_FrameBrowserStorageBlobs) blobs: A_FrameBrowserStorageBlobs,\n ): Promise<void> {\n const records = operation.params.records;\n const namespace = records[0].namespace;\n\n const existing = await this._loadDefinitionsFromMemory(blobs.store, namespace, global.encryptionKey!, codec);\n\n const merged = new Map<string, A_FrameDefinition_Serialized>();\n for (const r of existing) merged.set(r.aseid, r);\n for (const d of records) merged.set(d.aseid.toString(), d);\n\n const payload = codec.encodePayload(Array.from(merged.values()));\n blobs.store.set(namespace, await A_FrameCrypto.encryptBytes(payload, global.encryptionKey!));\n\n operation.complete({ saved: records.length });\n }\n\n @A_Feature.Extend({\n name: A_FrameStorageFeatures.LoadDefinitions,\n scope: [A_FrameStorage],\n })\n async loadDefinitionsFromMemory(\n @A_Inject(A_FrameEnv) env: A_FrameEnv,\n @A_Inject(A_FrameStorageOperation) operation: A_FrameStorageLoadDefinitionsOperation,\n @A_Inject(A_FrameContext) global: A_FrameContext,\n @A_Inject(A_FrameStorageCodec) codec: A_FrameStorageCodec,\n @A_Inject(A_FrameBrowserStorageBlobs) blobs: A_FrameBrowserStorageBlobs,\n ): Promise<void> {\n const namespace = operation.params.namespaceId;\n const records = await this._loadDefinitionsFromMemory(blobs.store, namespace, global.encryptionKey!, codec);\n operation.complete({ records });\n }\n\n @A_Feature.Extend({\n name: A_FrameStorageFeatures.DestroyDefinitions,\n scope: [A_FrameStorage],\n })\n async destroyDefinitionsFromMemory(\n @A_Inject(A_FrameEnv) env: A_FrameEnv,\n @A_Inject(A_FrameStorageOperation) operation: A_FrameStorageDestroyDefinitionsOperation,\n @A_Inject(A_FrameContext) global: A_FrameContext,\n @A_Inject(A_FrameStorageCodec) codec: A_FrameStorageCodec,\n @A_Inject(A_FrameBrowserStorageBlobs) blobs: A_FrameBrowserStorageBlobs,\n ): Promise<void> {\n const namespace = operation.params.namespaceId;\n const definitionId = operation.params.definitionId;\n\n const existing = await this._loadDefinitionsFromMemory(blobs.store, namespace, global.encryptionKey!, codec);\n const filtered = existing.filter(r => r.aseid !== definitionId);\n\n const payload = codec.encodePayload(filtered);\n blobs.store.set(namespace, await A_FrameCrypto.encryptBytes(payload, global.encryptionKey!));\n\n operation.complete({ records: filtered });\n }\n\n\n // ---------------------------------------------------------------------------------------\n //--------------------------Namespace Features Extensions--------------------------------\n //---------------------------------------------------------------------------------------\n\n @A_Feature.Extend({\n name: A_FrameStorageFeatures.SaveNamespaces,\n scope: [A_FrameStorage],\n })\n async saveNamespacesToMemory(\n @A_Inject(A_FrameEnv) env: A_FrameEnv,\n @A_Inject(A_FrameStorageOperation) operation: A_FrameStorageSaveNamespaceOperation,\n @A_Inject(A_FrameContext) global: A_FrameContext,\n @A_Inject(A_FrameStorageCodec) codec: A_FrameStorageCodec,\n @A_Inject(A_FrameBrowserStorageBlobs) blobs: A_FrameBrowserStorageBlobs,\n ): Promise<void> {\n const records = operation.params.records;\n\n const existing = await this._loadNamespacesFromMemory(blobs, global.encryptionKey!, codec);\n\n const merged = new Map<string, A_FrameNamespace_Serialized>();\n for (const r of existing) merged.set(r.aseid, r);\n for (const d of records) merged.set(d.aseid.toString(), d);\n\n const payload = codec.encodeNamespacePayload(Array.from(merged.values()));\n blobs.namespaceBlob = await A_FrameCrypto.encryptBytes(payload, global.encryptionKey!);\n\n operation.complete({ success: true });\n }\n\n @A_Feature.Extend({\n name: A_FrameStorageFeatures.LoadNamespaces,\n scope: [A_FrameStorage],\n })\n async loadNamespacesFromMemory(\n @A_Inject(A_FrameEnv) env: A_FrameEnv,\n @A_Inject(A_FrameStorageOperation) operation: A_FrameStorageLoadNamespacesOperation,\n @A_Inject(A_FrameContext) global: A_FrameContext,\n @A_Inject(A_FrameStorageCodec) codec: A_FrameStorageCodec,\n @A_Inject(A_FrameBrowserStorageBlobs) blobs: A_FrameBrowserStorageBlobs,\n ): Promise<void> {\n const ids = operation.params.namespaces;\n const records = await this._loadNamespacesFromMemory(blobs, global.encryptionKey!, codec);\n\n operation.complete({\n records: ids ? records.filter(r => ids.includes(r.name)) : records\n });\n }\n\n @A_Feature.Extend({\n name: A_FrameStorageFeatures.DestroyNamespaces,\n scope: [A_FrameStorage],\n })\n async destroyNamespacesFromMemory(\n @A_Inject(A_FrameEnv) env: A_FrameEnv,\n @A_Inject(A_FrameStorageOperation) operation: A_FrameStorageDestroyNamespacesOperation,\n @A_Inject(A_FrameContext) global: A_FrameContext,\n @A_Inject(A_FrameStorageCodec) codec: A_FrameStorageCodec,\n @A_Inject(A_FrameBrowserStorageBlobs) blobs: A_FrameBrowserStorageBlobs,\n ): Promise<void> {\n const ids = operation.params.namespaces;\n\n const existing = await this._loadNamespacesFromMemory(blobs, global.encryptionKey!, codec);\n const filtered = existing.filter(r => !ids.includes(r.aseid));\n\n const payload = codec.encodeNamespacePayload(filtered);\n blobs.namespaceBlob = await A_FrameCrypto.encryptBytes(payload, global.encryptionKey!);\n\n // Drop definition blobs for destroyed namespaces\n try {\n for (const id of ids) {\n blobs.store.delete(id);\n }\n operation.complete({ success: true });\n } catch (error) {\n operation.fail(new A_FrameStorageError({\n title: A_FrameStorageError.DestroyNamespacesFailed,\n description: `Failed to destroy namespace records.`,\n }));\n operation.complete({ success: false });\n }\n }\n\n\n // ---------------------------------------------------------------------------------------\n //--------------------------Definition Entity-level Extensions---------------------------\n //---------------------------------------------------------------------------------------\n\n /**\n * Hydrate a single A_FrameDefinition from the in-memory bundle blobs.\n *\n * Mirrors the Node `loadDefinitionFromDisk` extension. Looks up the\n * namespace's encrypted blob in the singleton blob store, decrypts and\n * decodes it, then calls `definition.fromJSON(record)` only when the\n * stored hash and server version match the live entity.\n *\n * No-op when:\n * - no blob has been seeded for the namespace\n * - decryption fails (wrong key / corrupted blob)\n * - the record is absent or stale\n */\n @A_Feature.Extend({\n name: A_FrameDefinitionFeatures.Load,\n scope: [A_FrameDefinition],\n })\n async loadDefinitionFromBlobs(\n @A_Inject(A_Caller) definition: A_FrameDefinition,\n @A_Inject(A_FrameContext) context: A_FrameContext,\n @A_Inject(A_FrameStorageCodec) codec: A_FrameStorageCodec,\n @A_Inject(A_FrameBrowserStorageBlobs) blobs: A_FrameBrowserStorageBlobs,\n ): Promise<void> {\n if (!context.encryptionKey) return;\n\n const records = await this._loadDefinitionsFromMemory(\n blobs.store, definition.namespace.id, context.encryptionKey, codec\n );\n if (records.length === 0) return;\n\n const record = records.find(r => r.aseid === definition.aseid.toString());\n if (\n record &&\n record.hash === definition.hash &&\n record.aFrameServerVersion === context.serverVersion\n ) {\n definition.fromJSON(record);\n }\n }\n\n\n // ---------------------------------------------------------------------------------------\n //--------------------------Namespace Entity-level Extensions----------------------------\n //---------------------------------------------------------------------------------------\n\n @A_Feature.Extend({\n name: A_FrameNamespaceFeatures.Load,\n scope: [A_FrameNamespace],\n })\n async loadNamespaceFromBlobs(\n @A_Inject(A_Caller) namespace: A_FrameNamespace,\n @A_Inject(A_FrameContext) context: A_FrameContext,\n @A_Inject(A_FrameStorageCodec) codec: A_FrameStorageCodec,\n @A_Inject(A_FrameBrowserStorageBlobs) blobs: A_FrameBrowserStorageBlobs,\n ): Promise<void> {\n if (!context.encryptionKey) return;\n\n const records = await this._loadNamespacesFromMemory(blobs, context.encryptionKey, codec);\n if (records.length === 0) return;\n\n const record = records.find(r => r.aseid === namespace.aseid.toString());\n if (\n record &&\n record.hash === namespace.hash &&\n record.aFrameServerVersion === context.serverVersion\n ) {\n namespace.fromJSON(record);\n }\n }\n\n\n // ─── Internal helpers ──────────────────────────────────────────────────────\n\n private async _loadDefinitionsFromMemory(\n store: Map<string, Uint8Array>,\n namespace: string,\n encryptionKey: string,\n codec: A_FrameStorageCodec,\n ): Promise<A_FrameDefinition_Serialized[]> {\n const blob = store.get(namespace);\n if (!blob) return [];\n try {\n const plain = await A_FrameCrypto.decryptBytes(blob, encryptionKey);\n return codec.decodePayload(plain);\n } catch {\n return [];\n }\n }\n\n private async _loadNamespacesFromMemory(\n blobs: A_FrameBrowserStorageBlobs,\n encryptionKey: string,\n codec: A_FrameStorageCodec,\n ): Promise<A_FrameNamespace_Serialized[]> {\n const blob = blobs.namespaceBlob;\n if (!blob) return [];\n try {\n const plain = await A_FrameCrypto.decryptBytes(blob, encryptionKey);\n return codec.decodeNamespacePayload(plain);\n } catch {\n return [];\n }\n }\n}\n"]}
@@ -0,0 +1,2 @@
1
+ import {b as b$1}from'./chunk-OES2N3X7.mjs';import {c,b as b$3}from'./chunk-GOMJPGVB.mjs';import {b as b$4}from'./chunk-VSSANMPF.mjs';import {a as a$2}from'./chunk-INS7RO3B.mjs';import {b as b$2,a as a$1}from'./chunk-OVLM5A32.mjs';import {a,b}from'./chunk-DMGQW3AO.mjs';import {A_Concept,A_Inject,A_Scope,A_Feature,A_Caller,A_Error,A_Fragment,A_Component,A_Context}from'@adaas/a-concept';var w=class extends A_Fragment{constructor(){super({name:"a-frame-context"});}get encryptionKey(){return this._credentials?.encryptionKey}get serverVersion(){return this._credentials?.serverVersion}isAuthenticated(){return !!this._credentials?.isAuthenticated}setCredentials(o){if(o.error||!o.response){this._credentials=void 0;return}this._credentials=new b$4(o.response);}};var u={SaveDefinitions:"_A_FRAME_STORAGE_SAVE",LoadDefinitions:"_A_FRAME_STORAGE_LOAD",DestroyDefinitions:"_A_FRAME_STORAGE_DESTROY",SaveNamespaces:"_A_FRAME_STORAGE_SAVE_NAMESPACES",LoadNamespaces:"_A_FRAME_STORAGE_LOAD_NAMESPACES",DestroyNamespaces:"_A_FRAME_STORAGE_DESTROY_NAMESPACES"};var g=class extends A_Fragment{constructor(o){super({name:"a-frame-storage-operation"}),this._params=o;}get result(){return this._result}get error(){return this._error}get params(){return this._params}complete(o){this._result=o;}fail(o){this._error=o;}};var _=class extends A_Error{};_.SaveDefinitionFailed="SaveDefinitionFailed",_.LoadDefinitionsFailed="LoadDefinitionsFailed",_.DestroyDefinitionsFailed="DestroyDefinitionsFailed",_.SaveNamespaceFailed="SaveNamespaceFailed",_.LoadNamespacesFailed="LoadNamespacesFailed",_.DestroyNamespacesFailed="DestroyNamespacesFailed";var x=class extends A_Component{async saveDefinitions(o){let e=new g({records:o}),t=new A_Scope({name:"A_FrameStorage.saveDefinitions",fragments:[e]}).inherit(A_Context.scope(this));try{return await this.call(u.SaveDefinitions,t),t.destroy(),e}catch{return e.fail(new _({title:_.SaveDefinitionFailed,description:"Failed to save definition records."})),t.destroy(),e}}async loadDefinitions(o,e){let t=new g({namespaceId:o}),a=new A_Scope({name:"A_FrameStorage.loadDefinitions",fragments:[t]}).inherit(A_Context.scope(this));try{return await this.call(u.LoadDefinitions,a),a.destroy(),t}catch{return t.fail(new _({title:_.LoadDefinitionsFailed,description:"Failed to load definition records."})),a.destroy(),t}}async destroyDefinitions(o,e){let t=new g({namespaceId:o,definitionId:e}),a=new A_Scope({name:"A_FrameStorage.destroyDefinitions",fragments:[t]}).inherit(A_Context.scope(this));try{return await this.call(u.DestroyDefinitions,a),a.destroy(),t}catch{return t.fail(new _({title:_.DestroyDefinitionsFailed,description:"Failed to destroy definition records."})),a.destroy(),t}}async saveNamespaces(o){let e=new g({records:o}),t=new A_Scope({name:"A_FrameStorage.saveNamespaces",fragments:[e]}).inherit(A_Context.scope(this));try{return await this.call(u.SaveNamespaces,t),t.destroy(),e}catch{return e.fail(new _({title:_.SaveNamespaceFailed,description:"Failed to save namespace records."})),t.destroy(),e}}async loadNamespaces(o){let e=new g({namespaces:o}),t=new A_Scope({name:"A_FrameStorage.loadNamespaces",fragments:[e]}).inherit(A_Context.scope(this));try{return await this.call(u.LoadNamespaces,t),t.destroy(),e}catch{return e.fail(new _({title:_.LoadNamespacesFailed,description:"Failed to load namespace records."})),t.destroy(),e}}async destroyNamespaces(o){let e=new g({namespaces:o}),t=new A_Scope({name:"A_FrameStorage.destroyNamespaces",fragments:[e]}).inherit(A_Context.scope(this));try{return await this.call(u.DestroyNamespaces,t),t.destroy(),e}catch{return e.fail(new _({title:_.DestroyNamespacesFailed,description:"Failed to destroy namespace records."})),t.destroy(),e}}};function J(F){if(typeof atob=="function"){let o=atob(F),e=new Uint8Array(o.length);for(let t=0;t<o.length;t++)e[t]=o.charCodeAt(t);return e}return new Uint8Array(Buffer.from(F,"base64"))}var D=class F extends A_Fragment{constructor(){if(F._instance)return F._instance;super({name:"a-frame-browser-storage-blobs"});this.store=new Map;this.namespaceBlob=null;this.bundleMeta=null;}static get instance(){return F._instance||(F._instance=new F),F._instance}static fromBundle(e){let t=F.instance;return t.seedFromBundle(e),t}seedFromBundle(e){e.namespaces&&(this.namespaceBlob=J(e.namespaces));for(let[t,a]of Object.entries(e.definitions))this.store.set(t,J(a));this.bundleMeta={aFrameVersion:e.aFrameVersion,serverVersion:e.serverVersion,builtAt:e.builtAt};}};var C=new TextEncoder,I=new TextDecoder,N=class F extends A_Fragment{constructor(){super(...arguments);this.enc=new TextEncoder;this.dec=new TextDecoder;this.A_FRAME_FILE_MAGIC=1162691147;this.A_FRAME_FILE_VERSION=1;this.A_FRAME_HEADER_SIZE=20;}static get fileExtension(){return ".aframe"}getFileName(e){return `${e}${F.fileExtension}`}getNamespaceFileName(){return `__namespaces${F.fileExtension}`}encodePayload(e){let t=[];if(e.some(r=>!r.embedding))throw new Error("All records must have embeddings to be encoded");let a=new Uint8Array(this.A_FRAME_HEADER_SIZE),i=new DataView(a.buffer);i.setUint32(0,this.A_FRAME_FILE_MAGIC,true),a[4]=this.A_FRAME_FILE_VERSION,i.setUint32(5,e.length,true);let d=e[0]?.embedding.length??0;i.setUint16(9,d,true),t.push(a);for(let r of e){let p=C.encode(r.aseid.toString()),y=C.encode(r.name),R=JSON.stringify({hash:r.hash,source:r.source,type:r.type,description:r.description,metadata:r.metadata,namespace:r.namespace,date:r.date,model:r.model,credentialId:r.credentialId,aFrameVersion:r.aFrameVersion,aFrameServerVersion:r.aFrameServerVersion}),E=C.encode(R),b=2+p.length+2+y.length+r.embedding.length*4+4+E.length,f=new Uint8Array(b),h=new DataView(f.buffer),s=0;h.setUint16(s,p.length,true),s+=2,f.set(p,s),s+=p.length,h.setUint16(s,y.length,true),s+=2,f.set(y,s),s+=y.length;for(let S=0;S<r.embedding.length;S++)h.setFloat32(s,r.embedding[S],true),s+=4;h.setUint32(s,E.length,true),s+=4,f.set(E,s),t.push(f);}let l=t.reduce((r,p)=>r+p.length,0),A=new Uint8Array(l),n=0;for(let r of t)A.set(r,n),n+=r.length;return A}decodePayload(e){if(e.length<this.A_FRAME_HEADER_SIZE)throw new Error("Corrupt index: too short for header");let t=new DataView(e.buffer,e.byteOffset,e.byteLength),a=t.getUint32(0,true);if(a!==this.A_FRAME_FILE_MAGIC)throw new Error(`Corrupt index: bad magic 0x${a.toString(16)}`);let i=e[4];if(i!==this.A_FRAME_FILE_VERSION)throw new Error(`Unsupported index version: ${i}`);let d=t.getUint32(5,true),l=t.getUint16(9,true),A=[],n=this.A_FRAME_HEADER_SIZE;for(let r=0;r<d;r++){let p=t.getUint16(n,true);n+=2;let y=I.decode(e.slice(n,n+p));n+=p;let R=t.getUint16(n,true);n+=2;let E=I.decode(e.slice(n,n+R));n+=R;let b=new Float32Array(l);for(let S=0;S<l;S++)b[S]=t.getFloat32(n,true),n+=4;let f=t.getUint32(n,true);n+=4;let h=I.decode(e.slice(n,n+f));n+=f;let s=JSON.parse(h);A.push({aseid:y,hash:s.hash??y,name:E,type:s.type,embedding:b,source:s.source,description:s.description,metadata:s.metadata,namespace:s.namespace,date:s.date,model:s.model,credentialId:s.credentialId,aFrameVersion:s.aFrameVersion,aFrameServerVersion:s.aFrameServerVersion});}return A}encodeNamespacePayload(e){let t=[];if(e.some(r=>!r.embedding))throw new Error("All records must have embeddings to be encoded");let a=new Uint8Array(this.A_FRAME_HEADER_SIZE),i=new DataView(a.buffer);i.setUint32(0,this.A_FRAME_FILE_MAGIC,true),a[4]=this.A_FRAME_FILE_VERSION,i.setUint32(5,e.length,true);let d=e[0]?.embedding.length??0;i.setUint16(9,d,true),t.push(a);for(let r of e){let p=C.encode(r.aseid.toString()),y=C.encode(r.name),R=JSON.stringify({hash:r.hash,description:r.description,metadata:r.metadata,embeddedAt:r.embeddedAt,embeddingModel:r.embeddingModel,credentialId:r.credentialId,aFrameVersion:r.aFrameVersion,aFrameServerVersion:r.aFrameServerVersion}),E=C.encode(R),b=2+p.length+2+y.length+r.embedding.length*4+4+E.length,f=new Uint8Array(b),h=new DataView(f.buffer),s=0;h.setUint16(s,p.length,true),s+=2,f.set(p,s),s+=p.length,h.setUint16(s,y.length,true),s+=2,f.set(y,s),s+=y.length;for(let S=0;S<r.embedding.length;S++)h.setFloat32(s,r.embedding[S],true),s+=4;h.setUint32(s,E.length,true),s+=4,f.set(E,s),t.push(f);}let l=t.reduce((r,p)=>r+p.length,0),A=new Uint8Array(l),n=0;for(let r of t)A.set(r,n),n+=r.length;return A}decodeNamespacePayload(e){if(e.length<this.A_FRAME_HEADER_SIZE)throw new Error("Corrupt namespace index: too short for header");let t=new DataView(e.buffer,e.byteOffset,e.byteLength),a=t.getUint32(0,true);if(a!==this.A_FRAME_FILE_MAGIC)throw new Error(`Corrupt namespace index: bad magic 0x${a.toString(16)}`);let i=e[4];if(i!==this.A_FRAME_FILE_VERSION)throw new Error(`Unsupported namespace index version: ${i}`);let d=t.getUint32(5,true),l=t.getUint16(9,true),A=[],n=this.A_FRAME_HEADER_SIZE;for(let r=0;r<d;r++){let p=t.getUint16(n,true);n+=2;let y=I.decode(e.slice(n,n+p));n+=p;let R=t.getUint16(n,true);n+=2;let E=I.decode(e.slice(n,n+R));n+=R;let b=new Float32Array(l);for(let S=0;S<l;S++)b[S]=t.getFloat32(n,true),n+=4;let f=t.getUint32(n,true);n+=4;let h=I.decode(e.slice(n,n+f));n+=f;let s=JSON.parse(h);A.push({aseid:y,hash:s.hash??y,name:E,embedding:b,description:s.description,metadata:s.metadata,embeddedAt:s.embeddedAt,embeddingModel:s.embeddingModel,credentialId:s.credentialId,aFrameVersion:s.aFrameVersion,aFrameServerVersion:s.aFrameServerVersion});}return A}};var v=class extends x{onLoad(o,e){e||o.register(D.instance);}async saveDefinitionsToMemory(o,e,t,a,i){let d=e.params.records,l=d[0].namespace,A=await this._loadDefinitionsFromMemory(i.store,l,t.encryptionKey,a),n=new Map;for(let p of A)n.set(p.aseid,p);for(let p of d)n.set(p.aseid.toString(),p);let r=a.encodePayload(Array.from(n.values()));i.store.set(l,await a$2.encryptBytes(r,t.encryptionKey)),e.complete({saved:d.length});}async loadDefinitionsFromMemory(o,e,t,a,i){let d=e.params.namespaceId,l=await this._loadDefinitionsFromMemory(i.store,d,t.encryptionKey,a);e.complete({records:l});}async destroyDefinitionsFromMemory(o,e,t,a,i){let d=e.params.namespaceId,l=e.params.definitionId,n=(await this._loadDefinitionsFromMemory(i.store,d,t.encryptionKey,a)).filter(p=>p.aseid!==l),r=a.encodePayload(n);i.store.set(d,await a$2.encryptBytes(r,t.encryptionKey)),e.complete({records:n});}async saveNamespacesToMemory(o,e,t,a,i){let d=e.params.records,l=await this._loadNamespacesFromMemory(i,t.encryptionKey,a),A=new Map;for(let r of l)A.set(r.aseid,r);for(let r of d)A.set(r.aseid.toString(),r);let n=a.encodeNamespacePayload(Array.from(A.values()));i.namespaceBlob=await a$2.encryptBytes(n,t.encryptionKey),e.complete({success:true});}async loadNamespacesFromMemory(o,e,t,a,i){let d=e.params.namespaces,l=await this._loadNamespacesFromMemory(i,t.encryptionKey,a);e.complete({records:d?l.filter(A=>d.includes(A.name)):l});}async destroyNamespacesFromMemory(o,e,t,a,i){let d=e.params.namespaces,A=(await this._loadNamespacesFromMemory(i,t.encryptionKey,a)).filter(r=>!d.includes(r.aseid)),n=a.encodeNamespacePayload(A);i.namespaceBlob=await a$2.encryptBytes(n,t.encryptionKey);try{for(let r of d)i.store.delete(r);e.complete({success:!0});}catch{e.fail(new _({title:_.DestroyNamespacesFailed,description:"Failed to destroy namespace records."})),e.complete({success:false});}}async loadDefinitionFromBlobs(o,e,t,a){if(!e.encryptionKey)return;let i=await this._loadDefinitionsFromMemory(a.store,o.namespace.id,e.encryptionKey,t);if(i.length===0)return;let d=i.find(l=>l.aseid===o.aseid.toString());d&&d.hash===o.hash&&d.aFrameServerVersion===e.serverVersion&&o.fromJSON(d);}async loadNamespaceFromBlobs(o,e,t,a){if(!e.encryptionKey)return;let i=await this._loadNamespacesFromMemory(a,e.encryptionKey,t);if(i.length===0)return;let d=i.find(l=>l.aseid===o.aseid.toString());d&&d.hash===o.hash&&d.aFrameServerVersion===e.serverVersion&&o.fromJSON(d);}async _loadDefinitionsFromMemory(o,e,t,a){let i=o.get(e);if(!i)return [];try{let d=await a$2.decryptBytes(i,t);return a.decodePayload(d)}catch{return []}}async _loadNamespacesFromMemory(o,e,t){let a=o.namespaceBlob;if(!a)return [];try{let i=await a$2.decryptBytes(a,e);return t.decodeNamespacePayload(i)}catch{return []}}};a([A_Concept.Load(),b(0,A_Inject(A_Scope)),b(1,A_Inject(D))],v.prototype,"onLoad",1),a([A_Feature.Extend({name:u.SaveDefinitions,scope:[x]}),b(0,A_Inject(b$1)),b(1,A_Inject(g)),b(2,A_Inject(w)),b(3,A_Inject(N)),b(4,A_Inject(D))],v.prototype,"saveDefinitionsToMemory",1),a([A_Feature.Extend({name:u.LoadDefinitions,scope:[x]}),b(0,A_Inject(b$1)),b(1,A_Inject(g)),b(2,A_Inject(w)),b(3,A_Inject(N)),b(4,A_Inject(D))],v.prototype,"loadDefinitionsFromMemory",1),a([A_Feature.Extend({name:u.DestroyDefinitions,scope:[x]}),b(0,A_Inject(b$1)),b(1,A_Inject(g)),b(2,A_Inject(w)),b(3,A_Inject(N)),b(4,A_Inject(D))],v.prototype,"destroyDefinitionsFromMemory",1),a([A_Feature.Extend({name:u.SaveNamespaces,scope:[x]}),b(0,A_Inject(b$1)),b(1,A_Inject(g)),b(2,A_Inject(w)),b(3,A_Inject(N)),b(4,A_Inject(D))],v.prototype,"saveNamespacesToMemory",1),a([A_Feature.Extend({name:u.LoadNamespaces,scope:[x]}),b(0,A_Inject(b$1)),b(1,A_Inject(g)),b(2,A_Inject(w)),b(3,A_Inject(N)),b(4,A_Inject(D))],v.prototype,"loadNamespacesFromMemory",1),a([A_Feature.Extend({name:u.DestroyNamespaces,scope:[x]}),b(0,A_Inject(b$1)),b(1,A_Inject(g)),b(2,A_Inject(w)),b(3,A_Inject(N)),b(4,A_Inject(D))],v.prototype,"destroyNamespacesFromMemory",1),a([A_Feature.Extend({name:a$1.Load,scope:[b$2]}),b(0,A_Inject(A_Caller)),b(1,A_Inject(w)),b(2,A_Inject(N)),b(3,A_Inject(D))],v.prototype,"loadDefinitionFromBlobs",1),a([A_Feature.Extend({name:b$3.Load,scope:[c]}),b(0,A_Inject(A_Caller)),b(1,A_Inject(w)),b(2,A_Inject(N)),b(3,A_Inject(D))],v.prototype,"loadNamespaceFromBlobs",1);export{w as a,u as b,g as c,_ as d,x as e,D as f,N as g,v as h};//# sourceMappingURL=chunk-INXPVBTZ.mjs.map
2
+ //# sourceMappingURL=chunk-INXPVBTZ.mjs.map