@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
@@ -1,94 +1,204 @@
1
- import { A_Component, A_Concept, A_Container, A_Error } from "@adaas/a-concept";
1
+ /**
2
+ * A-Frame Browser Bundle Tests
3
+ *
4
+ * Validates the pre-built bundle flow:
5
+ * 1. Build an in-memory A_FrameBundle with synthetic (but valid) vectors.
6
+ * 2. Seed A_FrameBrowserStorageBlobs from the bundle (no server needed).
7
+ * 3. Load the concept — definitions are hydrated from the plain record store.
8
+ * 4. Run a cosine-similarity search against the hydrated index.
9
+ *
10
+ * No network calls, no encryption key, no server required.
11
+ */
12
+ import { A_Component, A_Concept, A_Container, A_Context, A_Error } from "@adaas/a-concept";
2
13
  import { A_Frame } from "@adaas/a-frame/core";
3
- import { config } from 'dotenv';
4
14
  import { A_FrameIndex } from "@adaas/a-frame/index";
5
- import { A_FrameBrowserChannel } from "@adaas/a-frame/channel";
6
15
  import { A_FrameVector } from "@adaas/a-frame/vector";
7
-
8
- config();
9
-
10
- describe('A-Frame Browser Tests', () => {
11
- @A_Frame.Define({
12
- description: 'Handles HTTP requests and response formatting for the REST API layer. Use this for routing, middleware, request validation, and sending responses.',
13
- })
14
- class ComponentA extends A_Component {
16
+ import { A_FrameBrowserStorageBlobs } from '../src/lib/A-FrameStorage/browser/A-FrameBrowserStorageBlobs.context';
17
+ import type { A_FrameBundle } from "@adaas/a-frame/bundle";
18
+ import { A_FRAME_BUNDLE_VERSION } from "@adaas/a-frame/bundle";
19
+ import { A_FrameTargetType } from '../src/lib/A-Frame/A-Frame.types';
20
+
21
+ // ─── Helpers ──────────────────────────────────────────────────────────────────
22
+
23
+ /** Generate a normalised random unit vector of a given dimension. */
24
+ function makeVector(dims: number, seed: number): number[] {
25
+ const v = Array.from({ length: dims }, (_, i) => Math.sin(seed * 13.7 + i * 0.37));
26
+ const norm = Math.sqrt(v.reduce((s, x) => s + x * x, 0));
27
+ return v.map(x => x / norm);
28
+ }
29
+
30
+ /** Build a synthetic A_FrameBundle with the supplied definition descriptors. */
31
+ function makeSyntheticBundle(
32
+ defs: Array<{ aseid: string; name: string; description: string; namespace: string; hash: string; seed: number }>,
33
+ dims = 64,
34
+ ): A_FrameBundle {
35
+ const records: A_FrameBundle['records'] = {};
36
+
37
+ for (const d of defs) {
38
+ const rec = {
39
+ aseid: d.aseid,
40
+ name: d.name,
41
+ hash: d.hash,
42
+ type: A_FrameTargetType.COMPONENT,
43
+ description: d.description,
44
+ namespace: d.namespace,
45
+ embedding: makeVector(dims, d.seed),
46
+ date: new Date().toISOString(),
47
+ model: 'adaas-antares-v1',
48
+ credentialId: 'test-cred',
49
+ aFrameVersion: '0.1.1',
50
+ aFrameServerVersion: '1.0.0',
51
+ };
52
+ (records[d.namespace] ??= []).push(rec);
15
53
  }
16
54
 
17
- @A_Frame.Define({
18
- description: 'Manages database connections and performs CRUD operations on persistent storage. Use this for querying, inserting, updating, and deleting records.',
19
- })
20
- class ComponentB extends A_Component {
55
+ return {
56
+ bundleVersion: A_FRAME_BUNDLE_VERSION,
57
+ aFrameVersion: '0.1.1',
58
+ serverVersion: '1.0.0',
59
+ builtAt: new Date().toISOString(),
60
+ records,
61
+ namespaceRecords: [],
62
+ };
63
+ }
64
+
65
+ // ─── Component definitions ────────────────────────────────────────────────────
66
+
67
+ @A_Frame.Define({
68
+ description: 'Handles HTTP requests and response formatting for the REST API layer. Use this for routing, middleware, request validation, and sending responses.',
69
+ })
70
+ class ComponentA extends A_Component { }
71
+
72
+ @A_Frame.Define({
73
+ description: 'Manages database connections and performs CRUD operations on persistent storage. Use this for querying, inserting, updating, and deleting records.',
74
+ })
75
+ class ComponentB extends A_Component { }
76
+
77
+ @A_Frame.Define({
78
+ description: 'Orchestrates business logic and coordinates between the HTTP layer and the database layer. Use this for processing rules, validation, and transformations.',
79
+ })
80
+ class ComponentC extends A_Component { }
81
+
82
+ // ─── Tests ────────────────────────────────────────────────────────────────────
83
+
84
+ describe('A-Frame Browser Bundle Tests', () => {
85
+
86
+ let bundle: A_FrameBundle;
87
+
88
+ beforeAll(() => {
89
+ // Definitions are registered in A_FrameIndex.instance at class-decoration
90
+ // time (when @A_Frame.Define runs). Use the singleton directly — no DI
91
+ // resolution needed; no concept.load() required.
92
+ const defs = A_FrameIndex.instance.listDefinitions();
93
+
94
+ // Build bundle records using the real hash so the hash-check inside
95
+ // loadDefinitionFromBlobs() succeeds and fromJSON() is actually called.
96
+ const bundleDefs = defs.map((def, i) => ({
97
+ aseid: def.aseid.toString(),
98
+ name: def.name,
99
+ description: def.description ?? '',
100
+ namespace: def.namespace.id,
101
+ hash: def.hash,
102
+ seed: i + 1,
103
+ }));
104
+
105
+ bundle = makeSyntheticBundle(bundleDefs);
106
+ });
21
107
 
22
- }
108
+ it('Bundle is seeded correctly into BrowserStorageBlobs', () => {
109
+ // Seed and verify plain store is populated
110
+ const blobs = A_FrameBrowserStorageBlobs.fromBundle(bundle);
23
111
 
24
- @A_Frame.Define({
25
- description: 'Orchestrates business logic and coordinates between the HTTP layer and the database layer. Use this for processing rules, validation, and transformations.',
26
- })
27
- class ComponentC extends A_Component {
112
+ expect(blobs.hasBundleData).toBe(true);
28
113
 
29
- }
114
+ const nsKeys = Array.from(blobs.plainStore.keys());
115
+ expect(nsKeys.length).toBeGreaterThan(0);
30
116
 
31
- it('Standard basic test', async () => {
117
+ for (const [ns, recs] of blobs.plainStore) {
118
+ for (const r of recs) {
119
+ expect(r.embedding).toBeInstanceOf(Float32Array);
120
+ expect((r.embedding as Float32Array).length).toBe(64);
121
+ }
122
+ }
123
+ });
124
+
125
+ it('Definitions are hydrated from bundle on concept.load()', async () => {
32
126
  try {
127
+ // Seed blobs before creating the concept
128
+ A_FrameBrowserStorageBlobs.fromBundle(bundle);
129
+
33
130
  const concept = new A_Concept({
34
- name: 'Test Concept',
35
- components: [A_Frame, A_FrameBrowserChannel],
131
+ name: 'BundleTest',
132
+ components: [A_Frame],
36
133
  containers: [
37
134
  new A_Container({
38
- name: 'Container A',
39
- components: [ComponentA, ComponentB, ComponentC]
40
- })
41
- ]
42
- })
135
+ name: 'Container',
136
+ components: [ComponentA, ComponentB, ComponentC],
137
+ }),
138
+ ],
139
+ });
43
140
 
44
141
  await concept.load();
45
- } catch (error) {
46
- if (error instanceof A_Error) {
47
- console.error("A_Error occurred:", error.toJSON());
48
- } else {
49
- console.error("Unexpected error occurred:", error);
142
+
143
+ const index = concept.scope.resolve(A_FrameIndex)!;
144
+ const definitions = index.listDefinitions();
145
+
146
+ console.log(`\n [bundle] ${definitions.length} definition(s) indexed`);
147
+ for (const def of definitions) {
148
+ console.log(` • ${def.name}: isEmbed=${def.isEmbed} dims=${def.vector?.dimensions ?? 'NONE'}`);
149
+ }
150
+
151
+ expect(definitions.length).toBe(3);
152
+ for (const def of definitions) {
153
+ expect(def.isEmbed).toBe(true);
154
+ expect(def.vector).toBeDefined();
155
+ expect(def.vector!.dimensions).toBe(64);
50
156
  }
157
+ } catch (error) {
158
+ if (error instanceof A_Error) console.error('A_Error:', error.toJSON());
51
159
  throw error;
52
160
  }
53
161
  });
54
162
 
55
- it('Should Allow to do search in index', async () => {
163
+ it('Index search returns results after bundle hydration', async () => {
56
164
  try {
165
+ A_FrameBrowserStorageBlobs.fromBundle(bundle);
166
+
57
167
  const concept = new A_Concept({
58
- name: 'Test Concept',
59
- components: [A_Frame, A_FrameBrowserChannel],
168
+ name: 'BundleSearchTest',
169
+ components: [A_Frame],
60
170
  containers: [
61
171
  new A_Container({
62
- name: 'Container A',
63
- components: [ComponentA, ComponentB, ComponentC]
64
- })
65
- ]
66
- })
172
+ name: 'Container',
173
+ components: [ComponentA, ComponentB, ComponentC],
174
+ }),
175
+ ],
176
+ });
67
177
 
68
178
  await concept.load();
69
179
 
70
180
  const index = concept.scope.resolve(A_FrameIndex)!;
71
- const channel = concept.scope.resolve(A_FrameBrowserChannel)!;
72
-
73
- const query = "I need to apply some business rules and validate data before saving";
74
-
75
- const result = await channel.embed(query);
76
181
 
77
- const vector = new A_FrameVector(result.response!.data[0].embedding);
182
+ // Use ComponentA's own vector as query — it should rank first
183
+ const compA = index.listDefinitions().find(d => d.name === ComponentA.name)!;
184
+ expect(compA).toBeDefined();
78
185
 
79
- const indexResult = index.search(vector, {
80
- topK: 1,
81
- });
186
+ const queryVector = new A_FrameVector(compA.vector!.values.slice());
187
+ const results = index.search(queryVector, { topK: 3 });
82
188
 
83
- console.log("Search results:", indexResult);
189
+ console.log('\n [search]');
190
+ results.forEach((r, i) =>
191
+ console.log(` [${i + 1}] ${r.record.name} score=${r.score.toFixed(4)}`),
192
+ );
84
193
 
194
+ expect(results.length).toBeGreaterThan(0);
195
+ // The top result must be ComponentA itself (cosine = 1.0)
196
+ expect(results[0].record.name).toBe(ComponentA.name);
197
+ expect(results[0].score).toBeCloseTo(1.0, 5);
85
198
  } catch (error) {
86
- if (error instanceof A_Error) {
87
- console.error("A_Error occurred:", error.toJSON());
88
- } else {
89
- console.error("Unexpected error occurred:", error);
90
- }
199
+ if (error instanceof A_Error) console.error('A_Error:', error.toJSON());
91
200
  throw error;
92
201
  }
93
202
  });
94
203
  });
204
+
@@ -0,0 +1,74 @@
1
+ import { A_Concept, A_Container, A_Error } from "@adaas/a-concept";
2
+ import { A_Frame } from "@adaas/a-frame/core";
3
+ import { A_FrameDynamicContent } from "@adaas/a-frame/dynamic-content";
4
+ import { config } from 'dotenv';
5
+
6
+ config();
7
+
8
+ describe('A-Frame DynamicContent Browser Tests', () => {
9
+
10
+ it('Dynamic article generation and editing (browser channel)', async () => {
11
+ try {
12
+ const container = new A_Container({
13
+ name: 'Container A',
14
+ components: []
15
+ });
16
+
17
+ const concept = new A_Concept({
18
+ name: 'Test Concept',
19
+ components: [A_Frame, ],
20
+ containers: [container]
21
+ });
22
+
23
+ await concept.load();
24
+
25
+ const article = new A_FrameDynamicContent({
26
+ prompt: "Write a concise article about software architecture. Cover: what it is, key principles (separation of concerns, modularity, scalability), and common patterns (layered, microservices, event-driven). Keep each section brief — 2-3 sentences.",
27
+ });
28
+
29
+ container.scope.register(article);
30
+
31
+ // ── Step 1: Generate ───────────────────────────────────────────────
32
+ await article.generate();
33
+
34
+ console.log("=== Generated article ===");
35
+ console.log(article.text);
36
+
37
+ expect(article.segments.length).toBeGreaterThan(0);
38
+ expect(article.text.length).toBeGreaterThan(0);
39
+
40
+ const generatedText = article.text;
41
+
42
+ // ── Step 2: Add examples ───────────────────────────────────────────
43
+ await article.patch("Add a concrete real-world example for each architectural pattern mentioned (layered, microservices, event-driven). Insert each example directly after the section it illustrates.");
44
+
45
+ console.log("\n=== After adding examples ===");
46
+ console.log(article.text);
47
+
48
+ expect(article.text.length).toBeGreaterThan(generatedText.length);
49
+ expect(article.segments.length).toBeGreaterThanOrEqual(article.segments.length);
50
+
51
+ // ── Step 3: Modify a segment ───────────────────────────────────────
52
+ const textBeforeModify = article.text;
53
+
54
+ await article.patch("Rewrite the paragraph about key principles to also mention the DRY (Don't Repeat Yourself) principle. Keep the paragraph roughly the same length.");
55
+
56
+ console.log("\n=== After modifying key principles paragraph ===");
57
+ console.log(article.text);
58
+
59
+ const modified = article.text !== textBeforeModify;
60
+ console.log(`\n=== Modification verified: ${modified ? 'YES — content changed' : 'NO — unchanged (unexpected)'} ===`);
61
+ expect(modified).toBe(true);
62
+ expect(article.text.toLowerCase()).toContain('dry');
63
+
64
+ } catch (error) {
65
+ if (error instanceof A_Error) {
66
+ console.error("A_Error occurred:", error.toJSON());
67
+ } else {
68
+ console.error("Unexpected error occurred:", error);
69
+ }
70
+ throw error;
71
+ }
72
+
73
+ }, 60 * 60 * 1000);
74
+ });
@@ -0,0 +1,272 @@
1
+ import { A_Component, A_Concept, A_Container, A_Context, A_Entity, A_Error, A_Fragment, A_Scope } from "@adaas/a-concept";
2
+ import { A_Frame } from "@adaas/a-frame/core";
3
+ import { config } from 'dotenv';
4
+ import { A_FrameIndex } from "@adaas/a-frame/index";
5
+ import { A_FrameChannel } from "@adaas/a-frame/channel";
6
+ import { A_FrameSegment } from "@adaas/a-frame/segment";
7
+ import { A_FrameVector } from "@adaas/a-frame/vector";
8
+ import { A_FRAME_MODELS } from "@adaas/a-frame/models";
9
+
10
+ config();
11
+
12
+ // Embedding 10 components via Ollama takes ~30 s on the very first run.
13
+ // Subsequent runs are fast: definitions are loaded from the local .aframe
14
+ // storage cache and re-embedding is skipped automatically.
15
+ // The storage layer compares hash + server version on load; if either changes
16
+ // (e.g. description edited or server upgraded) only the affected definitions
17
+ // are re-embedded — no manual cache purge needed.
18
+ jest.setTimeout(180_000);
19
+
20
+ // ---------------------------------------------------------------------------
21
+ // Component definitions — each covers a clearly distinct domain so that
22
+ // cosine-similarity search should unambiguously rank the correct one first.
23
+ // ---------------------------------------------------------------------------
24
+
25
+ @A_Frame.Define({
26
+ description: 'Handles HTTP requests and response formatting for the REST API layer. Use this for routing, middleware, request validation, and sending HTTP responses.',
27
+ })
28
+ class ComponentA extends A_Component { } // HTTP / REST routing
29
+
30
+ @A_Frame.Define({
31
+ description: 'Manages database connections and performs CRUD operations on persistent storage. Use this for querying, inserting, updating, and deleting records in a relational or NoSQL database.',
32
+ })
33
+ class ComponentB extends A_Component { } // Database / persistence
34
+
35
+ @A_Frame.Define({
36
+ description: 'Orchestrates business logic and coordinates between the HTTP layer and the database layer. Use this for applying processing rules, data validation, and domain-level transformations.',
37
+ })
38
+ class ComponentC extends A_Component { } // Business logic
39
+
40
+ @A_Frame.Define({
41
+ description: 'Handles user authentication, session management, and JWT token verification. Use this for login, logout, password hashing, token issuance, and access-control checks.',
42
+ })
43
+ class ComponentD extends A_Component { } // Auth / JWT
44
+
45
+ @A_Frame.Define({
46
+ description: 'Sends transactional and marketing emails, push notifications, and SMS messages to users. Use this whenever you need to notify a user via any messaging channel.',
47
+ })
48
+ class ComponentE extends A_Component { } // Notifications / Email
49
+
50
+ @A_Frame.Define({
51
+ description: 'Manages file uploads, downloads, and cloud blob storage operations. Use this for persisting binary assets, generating pre-signed URLs, and streaming files to/from object storage.',
52
+ })
53
+ class ComponentF extends A_Component { } // File / blob storage
54
+
55
+ @A_Frame.Define({
56
+ description: 'Provides in-memory and Redis-based caching to reduce latency for expensive computations. Use this to store, retrieve, and invalidate cached data with configurable TTL.',
57
+ })
58
+ class ComponentG extends A_Component { } // Cache / Redis
59
+
60
+ @A_Frame.Define({
61
+ description: 'Schedules and executes background jobs, recurring cron tasks, and deferred work. Use this to offload long-running processing from the request cycle.',
62
+ })
63
+ class ComponentH extends A_Component { } // Background jobs / scheduling
64
+
65
+ @A_Frame.Define({
66
+ description: 'Records structured audit logs, application traces, and observability events. Use this to persist user-action history, system events, and debug traces to a log store.',
67
+ })
68
+ class ComponentI extends A_Component { } // Logging / audit
69
+
70
+ @A_Frame.Define({
71
+ description: 'Processes payments, manages billing plans, and integrates with payment gateways such as Stripe or PayPal. Use this to charge customers, issue refunds, and handle subscription lifecycles.',
72
+ })
73
+ class ComponentJ extends A_Component { } // Payments / billing
74
+
75
+
76
+ // ---------------------------------------------------------------------------
77
+ // Helpers
78
+ // ---------------------------------------------------------------------------
79
+
80
+ async function buildConcept() {
81
+ const concept = new A_Concept({
82
+ name: 'Test Concept',
83
+ components: [A_Frame],
84
+ containers: [
85
+ new A_Container({
86
+ name: 'Container A',
87
+ components: [
88
+ ComponentA, ComponentB, ComponentC,
89
+ ComponentD, ComponentE, ComponentF,
90
+ ComponentG, ComponentH, ComponentI, ComponentJ,
91
+ ],
92
+ }),
93
+ ],
94
+ });
95
+ await concept.load();
96
+ return concept;
97
+ }
98
+
99
+ async function searchTop1(
100
+ scope: A_Scope,
101
+ index: A_FrameIndex,
102
+ query: string,
103
+ ) {
104
+ // Wrap the query in an A_FrameSegment with task:'query' so nomic-embed-text
105
+ // uses its "search_query:" prefix — matching the "search_document:" prefix
106
+ // applied when the definitions were embedded.
107
+ const segment = new A_FrameSegment({ content: query, options: { task: 'query' } });
108
+ await segment.embed(scope);
109
+
110
+ if (!segment.vector || segment.vector.dimensions === 0) {
111
+ throw new Error(`Segment embedding is empty for query: "${query}".`);
112
+ }
113
+ // Query segments default to Antares model, task forced to 'query'
114
+ expect(segment.options?.model).toBe(A_FRAME_MODELS.ANTARES);
115
+ expect(segment.options?.task).toBe('query');
116
+ console.log(`\n [embed] model="${segment['_model'] ?? 'unknown'}" dims=${segment.vector.dimensions} task=query`);
117
+
118
+ const results = index.search(segment.vector, { topK: 3 });
119
+
120
+ console.log(` Query: "${query}"`);
121
+ results.forEach((r, i) =>
122
+ console.log(` [${i + 1}] ${r.record.name} (score: ${r.score.toFixed(4)}) — ${r.record.description?.slice(0, 60)}...`),
123
+ );
124
+
125
+ return results;
126
+ }
127
+
128
+
129
+ // ---------------------------------------------------------------------------
130
+ // Tests
131
+ // ---------------------------------------------------------------------------
132
+
133
+ describe('A-Frame Tests', () => {
134
+
135
+ // The suite needs A_FRAME_SYNC enabled so that missing or stale
136
+ // definitions are embedded and saved on the first run.
137
+ // The storage layer's hash + server-version check handles all staleness
138
+ // automatically — no manual cache wipe is ever needed.
139
+ beforeAll(() => {
140
+ process.env.A_FRAME_SYNC = 'true';
141
+ });
142
+
143
+ afterAll(() => {
144
+ // Restore the default (jest.setup.ts value) so other test files
145
+ // are not affected when the suite runs in watch mode.
146
+ process.env.A_FRAME_SYNC = 'false';
147
+ });
148
+
149
+ it('Standard basic test — concept loads without errors', async () => {
150
+ try {
151
+ const concept = await buildConcept();
152
+
153
+ // Verify every definition was embedded (non-zero vector)
154
+ const index = concept.scope.resolve(A_FrameIndex)!;
155
+ const definitions = index.listDefinitions();
156
+
157
+ console.log(`\n [index] ${definitions.length} definition(s) loaded`);
158
+ for (const def of definitions) {
159
+ console.log(` • ${def.name}: vector dims=${def.vector?.dimensions ?? 'MISSING'} model="${def.model ?? 'N/A'}"`);
160
+ expect(def.vector).toBeDefined();
161
+ expect(def.vector!.dimensions).toBeGreaterThan(0);
162
+ // After embedding the server returns the physical model name
163
+ expect(typeof def.model).toBe('string');
164
+ expect(def.model.length).toBeGreaterThan(0);
165
+ // The logical model requested at definition-creation time should be Antares
166
+ expect(def.requestedModel).toBe(A_FRAME_MODELS.ANTARES);
167
+ }
168
+ } catch (error) {
169
+ if (error instanceof A_Error) console.error("A_Error:", error.toJSON());
170
+ else console.error("Unexpected error:", error);
171
+ throw error;
172
+ }
173
+ });
174
+
175
+ it('Should allow to do search in index', async () => {
176
+ try {
177
+ const concept = await buildConcept();
178
+ const index = concept.scope.resolve(A_FrameIndex)!;
179
+
180
+ const results = await searchTop1(
181
+ concept.scope, index,
182
+ "I need to apply some business rules and validate data before saving",
183
+ );
184
+
185
+ expect(results.length).toBeGreaterThan(0);
186
+ expect(results[0].record.name).toBe('ComponentC');
187
+ } catch (error) {
188
+ if (error instanceof A_Error) console.error("A_Error:", error.toJSON());
189
+ else console.error("Unexpected error:", error);
190
+ throw error;
191
+ }
192
+ });
193
+
194
+ // -----------------------------------------------------------------------
195
+ // Parametrised search-accuracy cases
196
+ // -----------------------------------------------------------------------
197
+
198
+ const searchCases: Array<{ query: string; expectedComponent: string }> = [
199
+ {
200
+ query: "Route an incoming HTTP POST request and send a JSON response",
201
+ expectedComponent: 'ComponentA',
202
+ },
203
+ {
204
+ query: "Insert a new record into the database and query existing ones",
205
+ expectedComponent: 'ComponentB',
206
+ },
207
+ {
208
+ query: "Apply domain validation rules and orchestrate the processing pipeline",
209
+ expectedComponent: 'ComponentC',
210
+ },
211
+ {
212
+ query: "Verify a JWT token and check whether the user is authorised to access this resource",
213
+ expectedComponent: 'ComponentD',
214
+ },
215
+ {
216
+ query: "Send a welcome email and a push notification to a newly registered user",
217
+ expectedComponent: 'ComponentE',
218
+ },
219
+ {
220
+ query: "Upload an image to cloud object storage and generate a pre-signed download URL",
221
+ expectedComponent: 'ComponentF',
222
+ },
223
+ {
224
+ query: "Reduce latency by serving hot data from an in-memory Redis cache with TTL-based eviction",
225
+ expectedComponent: 'ComponentG',
226
+ },
227
+ {
228
+ query: "Schedule a background task to process a report asynchronously after midnight",
229
+ expectedComponent: 'ComponentH',
230
+ },
231
+ {
232
+ query: "Record an audit trail entry whenever a user modifies sensitive data",
233
+ expectedComponent: 'ComponentI',
234
+ },
235
+ {
236
+ query: "Charge a customer's credit card and handle a payment failure with a refund",
237
+ expectedComponent: 'ComponentJ',
238
+ },
239
+ ];
240
+
241
+ describe('Search accuracy — each query should return the correct component as the top result', () => {
242
+
243
+ // jest.setup.ts calls A_Context.reset() BEFORE EACH test, which wipes
244
+ // the root scope. We rebuild the concept in beforeEach so the index
245
+ // and channel are re-registered. Subsequent buildConcept() calls are
246
+ // fast because A_FrameNodeStorage loads definitions from the .aframe
247
+ // cache files on disk and skips the embedding API call entirely.
248
+ let index: A_FrameIndex;
249
+ let scope: A_Scope;
250
+
251
+ beforeEach(async () => {
252
+ const concept = await buildConcept();
253
+ index = concept.scope.resolve(A_FrameIndex)!;
254
+ scope = concept.scope;
255
+ });
256
+
257
+ test.each(searchCases)(
258
+ '$query → $expectedComponent',
259
+ async ({ query, expectedComponent }) => {
260
+ const results = await searchTop1(scope, index, query);
261
+
262
+ expect(results.length).toBeGreaterThan(0);
263
+
264
+ const topResult = results[0];
265
+ expect(topResult.record.name).toBe(expectedComponent);
266
+
267
+ // Sanity-check: top score should be meaningfully higher than 0
268
+ expect(topResult.score).toBeGreaterThan(0.1);
269
+ },
270
+ );
271
+ });
272
+ });