@adaas/a-frame 0.1.1 → 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.
- package/.conf/tsconfig.browser.json +7 -1
- package/.conf/tsconfig.node.json +7 -1
- package/dist/browser/A-FrameBrowserStorageBlobs.context-CZTTvpn2.d.mts +53 -0
- package/dist/browser/A-FrameBrowserStorageBlobs.context-CaGTyatz.d.mts +40 -0
- package/dist/browser/A-FrameBrowserStorageBlobs.context-DjeEH8cn.d.mts +53 -0
- package/dist/browser/A-FrameBrowserStorageBlobs.context-vCsuTea9.d.mts +40 -0
- package/dist/browser/A-FrameBundle.types-LzfgdMiQ.d.mts +71 -0
- package/dist/browser/A-FrameChannel.component-4mTNctXL.d.mts +704 -0
- package/dist/browser/A-FrameChannel.types-BXEKJK9t.d.mts +205 -0
- package/dist/browser/A-FrameChannel.types-Ba3wgUZj.d.mts +199 -0
- package/dist/browser/A-FrameChannel.types-BfINhQZe.d.mts +145 -0
- package/dist/browser/A-FrameChannel.types-DfacgYL1.d.mts +199 -0
- package/dist/browser/A-FrameCompletion.entity-Dzy9sIa8.d.mts +72 -0
- package/dist/browser/A-FrameDefinition.entity-C1aK-gdl.d.mts +370 -0
- package/dist/browser/A-FrameDefinition.entity-CKPXsarS.d.mts +358 -0
- package/dist/browser/A-FrameDefinition.entity-yA0GsBoe.d.mts +143 -0
- package/dist/browser/A-FrameDefinition.types-BT02yAhQ.d.mts +232 -0
- package/dist/browser/A-FrameDynamicContentOperation.context-CoViNb19.d.mts +297 -0
- package/dist/browser/A-FrameDynamicContentOperation.context-Dd7Lb7X2.d.mts +266 -0
- package/dist/browser/A-FrameDynamicPatch.entity-BRuF1tqs.d.mts +29 -0
- package/dist/browser/A-FrameDynamicStructure.entity-DMvI_EPT.d.mts +210 -0
- package/dist/browser/A-FrameDynamicStructure.entity-DxkPP9mR.d.mts +235 -0
- package/dist/browser/A-FrameEnv.types-DnK-CYVk.d.mts +21 -0
- package/dist/browser/A-FrameNamespace.entity-BDg1FUgo.d.mts +136 -0
- package/dist/browser/A-FrameSchema.entity-DjYIhsoj.d.mts +141 -0
- package/dist/browser/A-FrameSegment.entity-D1xjjWvG.d.mts +161 -0
- package/dist/browser/A-FrameSegment.entity-D7Aj39Wh.d.mts +146 -0
- package/dist/browser/bundle.d.mts +6 -2
- package/dist/browser/bundle.mjs +1 -1
- package/dist/browser/bundle.mjs.map +1 -1
- package/dist/browser/channel.d.mts +51 -74
- package/dist/browser/channel.mjs +1 -2
- package/dist/browser/channel.mjs.map +1 -1
- package/dist/browser/chunk-2RNFZSBL.mjs +2 -0
- package/dist/browser/chunk-2RNFZSBL.mjs.map +1 -0
- package/dist/browser/chunk-46LRNZRG.mjs +2 -0
- package/dist/browser/chunk-46LRNZRG.mjs.map +1 -0
- package/dist/browser/chunk-52HFO3OY.mjs +2 -0
- package/dist/browser/chunk-52HFO3OY.mjs.map +1 -0
- package/dist/browser/chunk-643KGQKR.mjs +3 -0
- package/dist/browser/chunk-643KGQKR.mjs.map +1 -0
- package/dist/browser/chunk-66BBIZAM.mjs +3 -0
- package/dist/browser/chunk-66BBIZAM.mjs.map +1 -0
- package/dist/browser/chunk-6NPQURSO.mjs +2 -0
- package/dist/browser/chunk-6NPQURSO.mjs.map +1 -0
- package/dist/browser/chunk-6WAOMX7M.mjs +2 -0
- package/dist/browser/chunk-6WAOMX7M.mjs.map +1 -0
- package/dist/browser/chunk-77HU5SRQ.mjs +2 -0
- package/dist/browser/chunk-77HU5SRQ.mjs.map +1 -0
- package/dist/browser/chunk-AET6XULU.mjs +2 -0
- package/dist/browser/chunk-AET6XULU.mjs.map +1 -0
- package/dist/browser/chunk-BIBPE2GT.mjs +3 -0
- package/dist/browser/chunk-BIBPE2GT.mjs.map +1 -0
- package/dist/browser/chunk-CDJKU4DK.mjs +2 -0
- package/dist/browser/chunk-CDJKU4DK.mjs.map +1 -0
- package/dist/browser/chunk-CT67Y46H.mjs +3 -0
- package/dist/browser/chunk-CT67Y46H.mjs.map +1 -0
- package/dist/browser/chunk-EFC7OUNO.mjs +2 -0
- package/dist/browser/chunk-EFC7OUNO.mjs.map +1 -0
- package/dist/browser/chunk-EJIX7H7A.mjs +2 -0
- package/dist/browser/chunk-EJIX7H7A.mjs.map +1 -0
- package/dist/browser/chunk-FHJ5ATND.mjs +3 -0
- package/dist/browser/chunk-FHJ5ATND.mjs.map +1 -0
- package/dist/browser/chunk-FVH2EEVP.mjs +3 -0
- package/dist/browser/chunk-FVH2EEVP.mjs.map +1 -0
- package/dist/browser/chunk-G6ULYKSU.mjs +2 -0
- package/dist/browser/chunk-G6ULYKSU.mjs.map +1 -0
- package/dist/browser/chunk-G7MKGKG5.mjs +2 -0
- package/dist/browser/chunk-G7MKGKG5.mjs.map +1 -0
- package/dist/browser/chunk-GOMJPGVB.mjs +3 -0
- package/dist/browser/chunk-GOMJPGVB.mjs.map +1 -0
- package/dist/browser/chunk-INQV5UZA.mjs +2 -0
- package/dist/browser/chunk-INQV5UZA.mjs.map +1 -0
- package/dist/browser/chunk-INXPVBTZ.mjs +2 -0
- package/dist/browser/chunk-INXPVBTZ.mjs.map +1 -0
- package/dist/browser/chunk-KFMVTZ7T.mjs +2 -0
- package/dist/browser/chunk-KFMVTZ7T.mjs.map +1 -0
- package/dist/browser/chunk-LK6C7C3S.mjs +2 -0
- package/dist/browser/chunk-LK6C7C3S.mjs.map +1 -0
- package/dist/browser/chunk-LOGRQOWP.mjs +3 -0
- package/dist/browser/chunk-LOGRQOWP.mjs.map +1 -0
- package/dist/browser/chunk-LZACYSUC.mjs +3 -0
- package/dist/browser/chunk-LZACYSUC.mjs.map +1 -0
- package/dist/browser/chunk-NTOIVRX3.mjs +2 -0
- package/dist/browser/chunk-NTOIVRX3.mjs.map +1 -0
- package/dist/browser/chunk-OES2N3X7.mjs +3 -0
- package/dist/browser/chunk-OES2N3X7.mjs.map +1 -0
- package/dist/browser/chunk-OFKV5GNB.mjs +1 -1
- package/dist/browser/chunk-OFKV5GNB.mjs.map +1 -1
- package/dist/browser/chunk-OVLM5A32.mjs +3 -0
- package/dist/browser/chunk-OVLM5A32.mjs.map +1 -0
- package/dist/browser/chunk-QATIN7CO.mjs +1 -1
- package/dist/browser/chunk-QATIN7CO.mjs.map +1 -1
- package/dist/browser/chunk-QOL7CAUZ.mjs +2 -0
- package/dist/browser/chunk-QOL7CAUZ.mjs.map +1 -0
- package/dist/browser/chunk-RCB3PX4V.mjs +2 -0
- package/dist/browser/chunk-RCB3PX4V.mjs.map +1 -0
- package/dist/browser/chunk-RWQSCROK.mjs +3 -0
- package/dist/browser/chunk-RWQSCROK.mjs.map +1 -0
- package/dist/browser/chunk-TIAUMK2X.mjs +2 -0
- package/dist/browser/chunk-TIAUMK2X.mjs.map +1 -0
- package/dist/browser/chunk-TQPC5MYM.mjs +3 -0
- package/dist/browser/chunk-TQPC5MYM.mjs.map +1 -0
- package/dist/browser/chunk-UNIKTCXL.mjs +3 -0
- package/dist/browser/chunk-UNIKTCXL.mjs.map +1 -0
- package/dist/browser/chunk-UULJJ5C5.mjs +3 -0
- package/dist/browser/chunk-UULJJ5C5.mjs.map +1 -0
- package/dist/browser/chunk-VSSANMPF.mjs +2 -0
- package/dist/browser/chunk-VSSANMPF.mjs.map +1 -0
- package/dist/browser/chunk-VW2BZYNY.mjs +2 -0
- package/dist/browser/chunk-VW2BZYNY.mjs.map +1 -0
- package/dist/browser/chunk-WAXBOWM6.mjs +3 -0
- package/dist/browser/chunk-WAXBOWM6.mjs.map +1 -0
- package/dist/browser/chunk-WXCQCHAX.mjs +2 -0
- package/dist/browser/chunk-WXCQCHAX.mjs.map +1 -0
- package/dist/browser/chunk-XKKBIIZG.mjs +3 -0
- package/dist/browser/chunk-XKKBIIZG.mjs.map +1 -0
- package/dist/browser/chunk-XR7FVA5M.mjs +3 -0
- package/dist/browser/chunk-XR7FVA5M.mjs.map +1 -0
- package/dist/browser/chunk-YQJFTBGV.mjs +1 -1
- package/dist/browser/chunk-YQJFTBGV.mjs.map +1 -1
- package/dist/browser/chunk-YTAMZDWC.mjs +3 -0
- package/dist/browser/chunk-YTAMZDWC.mjs.map +1 -0
- package/dist/browser/chunk-ZEONOTRL.mjs +2 -0
- package/dist/browser/chunk-ZEONOTRL.mjs.map +1 -0
- package/dist/browser/completion.d.mts +10 -0
- package/dist/browser/completion.mjs +2 -0
- package/dist/browser/completion.mjs.map +1 -0
- package/dist/browser/core.d.mts +7 -6
- package/dist/browser/core.mjs +1 -1
- package/dist/browser/core.mjs.map +1 -1
- package/dist/browser/credentials.d.mts +74 -0
- package/dist/browser/credentials.mjs +2 -0
- package/dist/browser/credentials.mjs.map +1 -0
- package/dist/browser/definition.d.mts +3 -2
- package/dist/browser/definition.mjs +1 -1
- package/dist/browser/dynamic-content.d.mts +13 -0
- package/dist/browser/dynamic-content.mjs +2 -0
- package/dist/browser/dynamic-content.mjs.map +1 -0
- package/dist/browser/dynamic-feature.d.mts +66 -6
- package/dist/browser/dynamic-feature.mjs +3 -1
- package/dist/browser/dynamic-feature.mjs.map +1 -1
- package/dist/browser/dynamic-structure.d.mts +77 -3
- package/dist/browser/dynamic-structure.mjs +1 -1
- package/dist/browser/dynamic-structure.mjs.map +1 -1
- package/dist/browser/env.d.mts +16 -2
- package/dist/browser/env.mjs +1 -1
- package/dist/browser/frame-index.d.mts +70 -9
- package/dist/browser/frame-index.mjs +1 -1
- package/dist/browser/models.d.mts +64 -0
- package/dist/browser/models.mjs +2 -0
- package/dist/browser/models.mjs.map +1 -0
- package/dist/browser/namespace.d.mts +1 -1
- package/dist/browser/namespace.mjs +1 -1
- package/dist/browser/schema.d.mts +10 -0
- package/dist/browser/schema.mjs +2 -0
- package/dist/browser/schema.mjs.map +1 -0
- package/dist/browser/segment.d.mts +13 -0
- package/dist/browser/segment.mjs +2 -0
- package/dist/browser/segment.mjs.map +1 -0
- package/dist/browser/storage.d.mts +13 -7
- package/dist/browser/storage.mjs +1 -1
- package/dist/browser/vector.d.mts +7 -0
- package/dist/browser/vector.mjs +1 -1
- package/dist/cli.cjs +5593 -0
- package/dist/cli.cjs.map +1 -0
- package/dist/node/A-FrameChannel.component--YErPxf4.d.mts +97 -0
- package/dist/node/A-FrameChannel.component-BjgqMh1B.d.ts +97 -0
- package/dist/node/A-FrameChannel.component-C0O3TaRD.d.ts +679 -0
- package/dist/node/A-FrameChannel.component-CgBZYBz0.d.mts +379 -0
- package/dist/node/A-FrameChannel.component-CkZserv3.d.ts +97 -0
- package/dist/node/A-FrameChannel.component-DMA-3sUB.d.mts +679 -0
- package/dist/node/A-FrameChannel.component-DYV8omYR.d.ts +379 -0
- package/dist/node/A-FrameChannel.component-DwgYNfFn.d.mts +97 -0
- package/dist/node/A-FrameChannel.types-B3_xWKEO.d.mts +151 -0
- package/dist/node/A-FrameChannel.types-BGcVXTqa.d.ts +205 -0
- package/dist/node/A-FrameChannel.types-Boi8QqDK.d.mts +205 -0
- package/dist/node/A-FrameChannel.types-BsE6bNky.d.mts +205 -0
- package/dist/node/A-FrameChannel.types-C-gxXl8m.d.ts +151 -0
- package/dist/node/A-FrameChannel.types-DD2B11rf.d.ts +205 -0
- package/dist/node/A-FrameChannel.types-DYMgRiCF.d.mts +205 -0
- package/dist/node/A-FrameChannel.types-DwyZRsOy.d.ts +205 -0
- package/dist/node/A-FrameCompletion.entity-Brx11JMp.d.ts +72 -0
- package/dist/node/A-FrameCompletion.entity-Dzy9sIa8.d.mts +72 -0
- package/dist/node/A-FrameDefinition.entity-BIF0sclD.d.ts +370 -0
- package/dist/node/A-FrameDefinition.entity-Bt9ua6cn.d.ts +358 -0
- package/dist/node/A-FrameDefinition.entity-C0kzaGJ0.d.ts +143 -0
- package/dist/node/A-FrameDefinition.entity-C1aK-gdl.d.mts +370 -0
- package/dist/node/A-FrameDefinition.entity-CKPXsarS.d.mts +358 -0
- package/dist/node/A-FrameDefinition.entity-yA0GsBoe.d.mts +143 -0
- package/dist/node/A-FrameDefinition.types-BA_pLGpo.d.ts +232 -0
- package/dist/node/A-FrameDefinition.types-BT02yAhQ.d.mts +232 -0
- package/dist/node/A-FrameDynamicContentOperation.context-C_aH1gEn.d.ts +297 -0
- package/dist/node/A-FrameDynamicContentOperation.context-CoViNb19.d.mts +297 -0
- package/dist/node/A-FrameDynamicContentOperation.context-DRqH2c3o.d.ts +266 -0
- package/dist/node/A-FrameDynamicContentOperation.context-Dd7Lb7X2.d.mts +266 -0
- package/dist/node/A-FrameDynamicPatch.entity-BRuF1tqs.d.mts +29 -0
- package/dist/node/A-FrameDynamicPatch.entity-BRuF1tqs.d.ts +29 -0
- package/dist/node/A-FrameDynamicStructure.entity-BVCbolMd.d.ts +210 -0
- package/dist/node/A-FrameDynamicStructure.entity-DMvI_EPT.d.mts +210 -0
- package/dist/node/A-FrameDynamicStructure.entity-DxkPP9mR.d.mts +235 -0
- package/dist/node/A-FrameDynamicStructure.entity-DxkPP9mR.d.ts +235 -0
- package/dist/node/A-FrameLogger.component.env-node-DIDBeuiz.d.mts +114 -0
- package/dist/node/A-FrameLogger.component.env-node-DIDBeuiz.d.ts +114 -0
- package/dist/node/A-FrameNamespace.entity-BDg1FUgo.d.mts +136 -0
- package/dist/node/A-FrameNamespace.entity-HDXcLGcS.d.ts +136 -0
- package/dist/node/A-FrameSchema.entity-DjYIhsoj.d.mts +141 -0
- package/dist/node/A-FrameSchema.entity-DjYIhsoj.d.ts +141 -0
- package/dist/node/A-FrameSegment.entity-C0izuOmC.d.ts +161 -0
- package/dist/node/A-FrameSegment.entity-CMCgFCWU.d.ts +146 -0
- package/dist/node/A-FrameSegment.entity-D1xjjWvG.d.mts +161 -0
- package/dist/node/A-FrameSegment.entity-D7Aj39Wh.d.mts +146 -0
- package/dist/node/A-FrameStorage.component-BnNKzvpY.d.mts +107 -0
- package/dist/node/A-FrameStorage.component-CDztogHV.d.mts +107 -0
- package/dist/node/A-FrameStorage.component-CW0YgKDI.d.mts +107 -0
- package/dist/node/A-FrameStorage.component-D4UEkIBx.d.mts +107 -0
- package/dist/node/A-FrameStorage.component-DV_jwK6r.d.ts +107 -0
- package/dist/node/A-FrameStorage.component-Di4EvbtC.d.ts +107 -0
- package/dist/node/A-FrameStorage.component-emIH1a1M.d.ts +107 -0
- package/dist/node/A-FrameStorage.component-y-JPiIQ4.d.ts +107 -0
- package/dist/node/bundle.cjs +66 -21
- package/dist/node/bundle.cjs.map +1 -1
- package/dist/node/bundle.d.mts +88 -24
- package/dist/node/bundle.d.ts +88 -24
- package/dist/node/bundle.mjs +65 -20
- package/dist/node/bundle.mjs.map +1 -1
- package/dist/node/channel.cjs +33 -26
- package/dist/node/channel.d.mts +10 -6
- package/dist/node/channel.d.ts +10 -6
- package/dist/node/channel.mjs +13 -6
- package/dist/node/chunk-2HUSP34L.mjs +55 -0
- package/dist/node/chunk-2HUSP34L.mjs.map +1 -0
- package/dist/node/chunk-2KXGI2E5.cjs +474 -0
- package/dist/node/chunk-2KXGI2E5.cjs.map +1 -0
- package/dist/node/chunk-2OQMOIR5.mjs +170 -0
- package/dist/node/chunk-2OQMOIR5.mjs.map +1 -0
- package/dist/node/chunk-2UI7RJ4Q.mjs +207 -0
- package/dist/node/chunk-2UI7RJ4Q.mjs.map +1 -0
- package/dist/node/chunk-3SLICJ3L.cjs +265 -0
- package/dist/node/chunk-3SLICJ3L.cjs.map +1 -0
- package/dist/node/chunk-3ZDHQOIU.cjs +92 -0
- package/dist/node/chunk-3ZDHQOIU.cjs.map +1 -0
- package/dist/node/chunk-5BKCX2RO.mjs +1 -1
- package/dist/node/chunk-5BKCX2RO.mjs.map +1 -1
- package/dist/node/chunk-5NCGXLP2.mjs +6 -0
- package/dist/node/chunk-5NCGXLP2.mjs.map +1 -0
- package/dist/node/chunk-5OTXZ7BB.mjs +53 -0
- package/dist/node/chunk-5OTXZ7BB.mjs.map +1 -0
- package/dist/node/chunk-5PYIATGT.mjs +469 -0
- package/dist/node/chunk-5PYIATGT.mjs.map +1 -0
- package/dist/node/chunk-64QCZG53.cjs +57 -0
- package/dist/node/chunk-64QCZG53.cjs.map +1 -0
- package/dist/node/chunk-652OEICJ.cjs +4 -0
- package/dist/node/chunk-652OEICJ.cjs.map +1 -0
- package/dist/node/chunk-674ZX6XJ.mjs +187 -0
- package/dist/node/chunk-674ZX6XJ.mjs.map +1 -0
- package/dist/node/chunk-6ID2IXYX.mjs +6 -0
- package/dist/node/chunk-6ID2IXYX.mjs.map +1 -0
- package/dist/node/chunk-7EM3Q7HA.mjs +655 -0
- package/dist/node/chunk-7EM3Q7HA.mjs.map +1 -0
- package/dist/node/chunk-7MVVMISA.cjs +293 -0
- package/dist/node/chunk-7MVVMISA.cjs.map +1 -0
- package/dist/node/chunk-7NSLGCAZ.mjs +1395 -0
- package/dist/node/chunk-7NSLGCAZ.mjs.map +1 -0
- package/dist/node/chunk-7OLLATCC.mjs +1289 -0
- package/dist/node/chunk-7OLLATCC.mjs.map +1 -0
- package/dist/node/chunk-7SEZMRLI.cjs +183 -0
- package/dist/node/chunk-7SEZMRLI.cjs.map +1 -0
- package/dist/node/chunk-A4CVDMSV.mjs +608 -0
- package/dist/node/chunk-A4CVDMSV.mjs.map +1 -0
- package/dist/node/chunk-A7CJIUYY.cjs +4 -0
- package/dist/node/chunk-A7CJIUYY.cjs.map +1 -0
- package/dist/node/chunk-ALFFUJ2J.mjs +163 -0
- package/dist/node/chunk-ALFFUJ2J.mjs.map +1 -0
- package/dist/node/chunk-AMMQ76RJ.mjs +179 -0
- package/dist/node/chunk-AMMQ76RJ.mjs.map +1 -0
- package/dist/node/chunk-AUKWKGVA.cjs +688 -0
- package/dist/node/chunk-AUKWKGVA.cjs.map +1 -0
- package/dist/node/chunk-AY6UMDWD.cjs +270 -0
- package/dist/node/chunk-AY6UMDWD.cjs.map +1 -0
- package/dist/node/chunk-B7ZDJXD3.cjs +1 -1
- package/dist/node/chunk-B7ZDJXD3.cjs.map +1 -1
- package/dist/node/chunk-BBYOL3LM.cjs +1308 -0
- package/dist/node/chunk-BBYOL3LM.cjs.map +1 -0
- package/dist/node/chunk-BINGAHFW.cjs +1308 -0
- package/dist/node/chunk-BINGAHFW.cjs.map +1 -0
- package/dist/node/chunk-BSBY37MG.cjs +55 -0
- package/dist/node/chunk-BSBY37MG.cjs.map +1 -0
- package/dist/node/chunk-BWX7HFTH.cjs +209 -0
- package/dist/node/chunk-BWX7HFTH.cjs.map +1 -0
- package/dist/node/chunk-C37B34MH.cjs +188 -0
- package/dist/node/chunk-C37B34MH.cjs.map +1 -0
- package/dist/node/chunk-C6BBKHQG.cjs +250 -0
- package/dist/node/chunk-C6BBKHQG.cjs.map +1 -0
- package/dist/node/chunk-CLCAS67N.cjs +8 -0
- package/dist/node/chunk-CLCAS67N.cjs.map +1 -0
- package/dist/node/chunk-CNU3CRTR.mjs +43 -0
- package/dist/node/chunk-CNU3CRTR.mjs.map +1 -0
- package/dist/node/chunk-CV5FPKU6.mjs +6 -0
- package/dist/node/chunk-CV5FPKU6.mjs.map +1 -0
- package/dist/node/chunk-CZYOAFIR.mjs +129 -0
- package/dist/node/chunk-CZYOAFIR.mjs.map +1 -0
- package/dist/node/chunk-D2HTYEJZ.cjs +209 -0
- package/dist/node/chunk-D2HTYEJZ.cjs.map +1 -0
- package/dist/node/chunk-EMLZZPOT.cjs +1446 -0
- package/dist/node/chunk-EMLZZPOT.cjs.map +1 -0
- package/dist/node/chunk-EOIXXXBV.cjs +55 -0
- package/dist/node/chunk-EOIXXXBV.cjs.map +1 -0
- package/dist/node/chunk-F4UCOZW5.mjs +1 -1
- package/dist/node/chunk-F4UCOZW5.mjs.map +1 -1
- package/dist/node/chunk-F64CK4NI.mjs +53 -0
- package/dist/node/chunk-F64CK4NI.mjs.map +1 -0
- package/dist/node/chunk-FAV62EUG.cjs +35 -0
- package/dist/node/chunk-FAV62EUG.cjs.map +1 -0
- package/dist/node/chunk-GHSPKZUN.mjs +529 -0
- package/dist/node/chunk-GHSPKZUN.mjs.map +1 -0
- package/dist/node/chunk-GRNVK7DW.mjs +97 -0
- package/dist/node/chunk-GRNVK7DW.mjs.map +1 -0
- package/dist/node/chunk-H5VGRPD5.cjs +8 -0
- package/dist/node/chunk-H5VGRPD5.cjs.map +1 -0
- package/dist/node/chunk-HAMDDCPS.cjs +8 -0
- package/dist/node/chunk-HAMDDCPS.cjs.map +1 -0
- package/dist/node/chunk-HAORARSB.cjs +75 -0
- package/dist/node/chunk-HAORARSB.cjs.map +1 -0
- package/dist/node/chunk-HELNAM5Y.cjs +8 -0
- package/dist/node/chunk-HELNAM5Y.cjs.map +1 -0
- package/dist/node/chunk-HET6L5PD.mjs +530 -0
- package/dist/node/chunk-HET6L5PD.mjs.map +1 -0
- package/dist/node/chunk-HI5SEX53.mjs +264 -0
- package/dist/node/chunk-HI5SEX53.mjs.map +1 -0
- package/dist/node/chunk-HZGFXE4Q.mjs +6 -0
- package/dist/node/chunk-HZGFXE4Q.mjs.map +1 -0
- package/dist/node/chunk-IAL2NK2V.mjs +73 -0
- package/dist/node/chunk-IAL2NK2V.mjs.map +1 -0
- package/dist/node/chunk-IHELFDCW.mjs +327 -0
- package/dist/node/chunk-IHELFDCW.mjs.map +1 -0
- package/dist/node/chunk-ILD6OSYW.mjs +966 -0
- package/dist/node/chunk-ILD6OSYW.mjs.map +1 -0
- package/dist/node/chunk-IP6DFAO7.mjs +264 -0
- package/dist/node/chunk-IP6DFAO7.mjs.map +1 -0
- package/dist/node/chunk-IYEDO7OQ.cjs +276 -0
- package/dist/node/chunk-IYEDO7OQ.cjs.map +1 -0
- package/dist/node/chunk-JFPGFPQD.mjs +1413 -0
- package/dist/node/chunk-JFPGFPQD.mjs.map +1 -0
- package/dist/node/chunk-JHZGTVYF.cjs +999 -0
- package/dist/node/chunk-JHZGTVYF.cjs.map +1 -0
- package/dist/node/chunk-JN3UJBUH.mjs +608 -0
- package/dist/node/chunk-JN3UJBUH.mjs.map +1 -0
- package/dist/node/chunk-JNPDXCCN.mjs +530 -0
- package/dist/node/chunk-JNPDXCCN.mjs.map +1 -0
- package/dist/node/chunk-JQBYDEMW.mjs +1 -1
- package/dist/node/chunk-JQBYDEMW.mjs.map +1 -1
- package/dist/node/chunk-JQJ7N4NL.cjs +267 -0
- package/dist/node/chunk-JQJ7N4NL.cjs.map +1 -0
- package/dist/node/chunk-K4AJBPPY.cjs +174 -0
- package/dist/node/chunk-K4AJBPPY.cjs.map +1 -0
- package/dist/node/chunk-K7SXPJPK.cjs +131 -0
- package/dist/node/chunk-K7SXPJPK.cjs.map +1 -0
- package/dist/node/chunk-KFW4GE7H.mjs +1289 -0
- package/dist/node/chunk-KFW4GE7H.mjs.map +1 -0
- package/dist/node/chunk-KKL2DF2D.cjs +518 -0
- package/dist/node/chunk-KKL2DF2D.cjs.map +1 -0
- package/dist/node/chunk-KKMKQGTR.cjs +620 -0
- package/dist/node/chunk-KKMKQGTR.cjs.map +1 -0
- package/dist/node/chunk-KNTO7FCZ.mjs +207 -0
- package/dist/node/chunk-KNTO7FCZ.mjs.map +1 -0
- package/dist/node/chunk-KTKVW3PH.mjs +286 -0
- package/dist/node/chunk-KTKVW3PH.mjs.map +1 -0
- package/dist/node/chunk-KZPSF32W.mjs +33 -0
- package/dist/node/chunk-KZPSF32W.mjs.map +1 -0
- package/dist/node/chunk-LWKFCMA7.mjs +129 -0
- package/dist/node/chunk-LWKFCMA7.mjs.map +1 -0
- package/dist/node/chunk-M2ZSE6YJ.mjs +512 -0
- package/dist/node/chunk-M2ZSE6YJ.mjs.map +1 -0
- package/dist/node/chunk-M6DJYGDO.cjs +167 -0
- package/dist/node/chunk-M6DJYGDO.cjs.map +1 -0
- package/dist/node/chunk-MAHKDTOQ.mjs +3 -0
- package/dist/node/chunk-MAHKDTOQ.mjs.map +1 -0
- package/dist/node/chunk-MM2R2OM6.cjs +541 -0
- package/dist/node/chunk-MM2R2OM6.cjs.map +1 -0
- package/dist/node/chunk-MSOD5UQH.cjs +45 -0
- package/dist/node/chunk-MSOD5UQH.cjs.map +1 -0
- package/dist/node/chunk-MVAWR76Q.cjs +276 -0
- package/dist/node/chunk-MVAWR76Q.cjs.map +1 -0
- package/dist/node/chunk-MXUO7OR5.cjs +97 -0
- package/dist/node/chunk-MXUO7OR5.cjs.map +1 -0
- package/dist/node/chunk-N4THTV6P.cjs +131 -0
- package/dist/node/chunk-N4THTV6P.cjs.map +1 -0
- package/dist/node/chunk-NIXKAQVP.cjs +1 -1
- package/dist/node/chunk-NIXKAQVP.cjs.map +1 -1
- package/dist/node/chunk-NUPXUUPM.cjs +1428 -0
- package/dist/node/chunk-NUPXUUPM.cjs.map +1 -0
- package/dist/node/chunk-NWOUVAIS.cjs +45 -0
- package/dist/node/chunk-NWOUVAIS.cjs.map +1 -0
- package/dist/node/chunk-OK7I5OQ3.mjs +89 -0
- package/dist/node/chunk-OK7I5OQ3.mjs.map +1 -0
- package/dist/node/chunk-OMGYXCFM.mjs +248 -0
- package/dist/node/chunk-OMGYXCFM.mjs.map +1 -0
- package/dist/node/chunk-OYZAQMKD.mjs +263 -0
- package/dist/node/chunk-OYZAQMKD.mjs.map +1 -0
- package/dist/node/chunk-P2LULMNL.cjs +189 -0
- package/dist/node/chunk-P2LULMNL.cjs.map +1 -0
- package/dist/node/chunk-PABEFHCO.mjs +63 -0
- package/dist/node/chunk-PABEFHCO.mjs.map +1 -0
- package/dist/node/chunk-Q5NYJQP2.cjs +8 -0
- package/dist/node/chunk-Q5NYJQP2.cjs.map +1 -0
- package/dist/node/chunk-QCEWWJ3N.cjs +65 -0
- package/dist/node/chunk-QCEWWJ3N.cjs.map +1 -0
- package/dist/node/chunk-QW4AZ3Z2.cjs +542 -0
- package/dist/node/chunk-QW4AZ3Z2.cjs.map +1 -0
- package/dist/node/chunk-RK5WSZ5J.mjs +43 -0
- package/dist/node/chunk-RK5WSZ5J.mjs.map +1 -0
- package/dist/node/chunk-RPHYBPXT.mjs +30 -0
- package/dist/node/chunk-RPHYBPXT.mjs.map +1 -0
- package/dist/node/chunk-RVXASBMQ.mjs +273 -0
- package/dist/node/chunk-RVXASBMQ.mjs.map +1 -0
- package/dist/node/chunk-RVZTZD32.mjs +187 -0
- package/dist/node/chunk-RVZTZD32.mjs.map +1 -0
- package/dist/node/chunk-RWLKISZQ.mjs +273 -0
- package/dist/node/chunk-RWLKISZQ.mjs.map +1 -0
- package/dist/node/chunk-SESXQJDD.cjs +999 -0
- package/dist/node/chunk-SESXQJDD.cjs.map +1 -0
- package/dist/node/chunk-SKIEPTFS.mjs +6 -0
- package/dist/node/chunk-SKIEPTFS.mjs.map +1 -0
- package/dist/node/chunk-SL7FT5R5.mjs +94 -0
- package/dist/node/chunk-SL7FT5R5.mjs.map +1 -0
- package/dist/node/chunk-SXHQW74T.mjs +43 -0
- package/dist/node/chunk-SXHQW74T.mjs.map +1 -0
- package/dist/node/chunk-TEJKDVNT.cjs +620 -0
- package/dist/node/chunk-TEJKDVNT.cjs.map +1 -0
- package/dist/node/chunk-TQS5WYND.cjs +352 -0
- package/dist/node/chunk-TQS5WYND.cjs.map +1 -0
- package/dist/node/chunk-UCAWV2IG.mjs +184 -0
- package/dist/node/chunk-UCAWV2IG.mjs.map +1 -0
- package/dist/node/chunk-UDUJDEAO.cjs +189 -0
- package/dist/node/chunk-UDUJDEAO.cjs.map +1 -0
- package/dist/node/chunk-VMJDL4SS.cjs +542 -0
- package/dist/node/chunk-VMJDL4SS.cjs.map +1 -0
- package/dist/node/chunk-VNOZTB3B.cjs +8 -0
- package/dist/node/chunk-VNOZTB3B.cjs.map +1 -0
- package/dist/node/chunk-VPMBZGYR.mjs +327 -0
- package/dist/node/chunk-VPMBZGYR.mjs.map +1 -0
- package/dist/node/chunk-WEPNBKOA.mjs +6 -0
- package/dist/node/chunk-WEPNBKOA.mjs.map +1 -0
- package/dist/node/chunk-WTBRJXFG.cjs +100 -0
- package/dist/node/chunk-WTBRJXFG.cjs.map +1 -0
- package/dist/node/chunk-WXCQCHAX.mjs +3 -0
- package/dist/node/chunk-WXCQCHAX.mjs.map +1 -0
- package/dist/node/chunk-X3TRPYGV.cjs +352 -0
- package/dist/node/chunk-X3TRPYGV.cjs.map +1 -0
- package/dist/node/chunk-XFUF7SDO.cjs +1 -1
- package/dist/node/chunk-XFUF7SDO.cjs.map +1 -1
- package/dist/node/chunk-XP2EPEBM.mjs +966 -0
- package/dist/node/chunk-XP2EPEBM.mjs.map +1 -0
- package/dist/node/chunk-XPIJ6BKP.cjs +45 -0
- package/dist/node/chunk-XPIJ6BKP.cjs.map +1 -0
- package/dist/node/chunk-YRVBMP7I.cjs +542 -0
- package/dist/node/chunk-YRVBMP7I.cjs.map +1 -0
- package/dist/node/chunk-ZIHSN5EE.mjs +530 -0
- package/dist/node/chunk-ZIHSN5EE.mjs.map +1 -0
- package/dist/node/chunk-ZNQMUU7I.cjs +32 -0
- package/dist/node/chunk-ZNQMUU7I.cjs.map +1 -0
- package/dist/node/completion.cjs +23 -0
- package/dist/node/completion.cjs.map +1 -0
- package/dist/node/completion.d.mts +10 -0
- package/dist/node/completion.d.ts +10 -0
- package/dist/node/completion.mjs +6 -0
- package/dist/node/completion.mjs.map +1 -0
- package/dist/node/core.cjs +67 -38
- package/dist/node/core.cjs.map +1 -1
- package/dist/node/core.d.mts +13 -8
- package/dist/node/core.d.ts +13 -8
- package/dist/node/core.mjs +58 -29
- package/dist/node/core.mjs.map +1 -1
- package/dist/node/credentials.cjs +17 -0
- package/dist/node/credentials.cjs.map +1 -0
- package/dist/node/credentials.d.mts +74 -0
- package/dist/node/credentials.d.ts +74 -0
- package/dist/node/credentials.mjs +4 -0
- package/dist/node/credentials.mjs.map +1 -0
- package/dist/node/definition.cjs +6 -4
- package/dist/node/definition.d.mts +3 -2
- package/dist/node/definition.d.ts +3 -2
- package/dist/node/definition.mjs +4 -2
- package/dist/node/dynamic-content.cjs +30 -0
- package/dist/node/dynamic-content.cjs.map +1 -0
- package/dist/node/dynamic-content.d.mts +13 -0
- package/dist/node/dynamic-content.d.ts +13 -0
- package/dist/node/dynamic-content.mjs +9 -0
- package/dist/node/dynamic-content.mjs.map +1 -0
- package/dist/node/dynamic-feature.cjs +41 -7
- package/dist/node/dynamic-feature.cjs.map +1 -1
- package/dist/node/dynamic-feature.d.mts +66 -6
- package/dist/node/dynamic-feature.d.ts +66 -6
- package/dist/node/dynamic-feature.mjs +16 -9
- package/dist/node/dynamic-feature.mjs.map +1 -1
- package/dist/node/dynamic-structure.cjs +45 -136
- package/dist/node/dynamic-structure.cjs.map +1 -1
- package/dist/node/dynamic-structure.d.mts +77 -3
- package/dist/node/dynamic-structure.d.ts +77 -3
- package/dist/node/dynamic-structure.mjs +16 -135
- package/dist/node/dynamic-structure.mjs.map +1 -1
- package/dist/node/env.cjs +3 -3
- package/dist/node/env.d.mts +26 -0
- package/dist/node/env.d.ts +26 -0
- package/dist/node/env.mjs +2 -2
- package/dist/node/frame-index.cjs +7 -4
- package/dist/node/frame-index.d.mts +70 -9
- package/dist/node/frame-index.d.ts +70 -9
- package/dist/node/frame-index.mjs +6 -3
- package/dist/node/logger.d.mts +4 -113
- package/dist/node/logger.d.ts +4 -113
- package/dist/node/models.cjs +14 -0
- package/dist/node/models.cjs.map +1 -0
- package/dist/node/models.d.mts +64 -0
- package/dist/node/models.d.ts +64 -0
- package/dist/node/models.mjs +5 -0
- package/dist/node/models.mjs.map +1 -0
- package/dist/node/namespace.cjs +7 -5
- package/dist/node/namespace.d.mts +1 -1
- package/dist/node/namespace.d.ts +1 -1
- package/dist/node/namespace.mjs +4 -2
- package/dist/node/schema.cjs +22 -0
- package/dist/node/schema.cjs.map +1 -0
- package/dist/node/schema.d.mts +10 -0
- package/dist/node/schema.d.ts +10 -0
- package/dist/node/schema.mjs +5 -0
- package/dist/node/schema.mjs.map +1 -0
- package/dist/node/segment.cjs +25 -0
- package/dist/node/segment.cjs.map +1 -0
- package/dist/node/segment.d.mts +13 -0
- package/dist/node/segment.d.ts +13 -0
- package/dist/node/segment.mjs +8 -0
- package/dist/node/segment.mjs.map +1 -0
- package/dist/node/storage.cjs +17 -14
- package/dist/node/storage.d.mts +18 -6
- package/dist/node/storage.d.ts +18 -6
- package/dist/node/storage.mjs +11 -8
- package/dist/node/vector.cjs +2 -2
- package/dist/node/vector.d.mts +7 -0
- package/dist/node/vector.d.ts +7 -0
- package/dist/node/vector.mjs +1 -1
- package/examples/article/main.ts +358 -0
- package/examples/components.ts +660 -0
- package/examples/feature/file-system.components.ts +211 -0
- package/examples/feature/main.ts +374 -0
- package/examples/interaction/main.ts +426 -0
- package/examples/logger.ts +126 -0
- package/examples/structure/main.ts +195 -0
- package/examples/structure/renderer.ts +296 -0
- package/examples/structure/server-app.components.ts +387 -0
- package/jest.config.browser.ts +9 -0
- package/jest.config.examples.ts +49 -0
- package/jest.config.integration.ts +38 -0
- package/jest.config.ts +56 -27
- package/jest.config.unit.ts +38 -0
- package/package.json +75 -7
- package/src/index.ts +13 -0
- package/src/lib/A-Frame/A-Frame.component.env-browser.ts +14 -3
- package/src/lib/A-Frame/A-Frame.component.env-node.ts +45 -15
- package/src/lib/A-Frame/A-Frame.context.ts +9 -8
- package/src/lib/A-Frame/decorators/A-FrameDefine.decorator.ts +4 -4
- package/src/lib/A-FrameBundle/A-FrameBundle.builder.env-node.ts +95 -25
- package/src/lib/A-FrameBundle/A-FrameBundle.constants.ts +1 -1
- package/src/lib/A-FrameBundle/A-FrameBundle.types.ts +54 -13
- package/src/lib/A-FrameBundle/index.browser.ts +1 -1
- package/src/lib/A-FrameBundle/index.ts +1 -1
- package/src/lib/A-FrameCLI/A-FrameCLI.container.ts +18 -7
- package/src/lib/A-FrameChannel/A-FrameChannel.component.env-browser.ts +0 -2
- package/src/lib/A-FrameChannel/A-FrameChannel.component.env-node.ts +14 -15
- package/src/lib/A-FrameChannel/A-FrameChannel.component.ts +542 -7
- package/src/lib/A-FrameChannel/A-FrameChannel.constants.ts +2 -0
- package/src/lib/A-FrameChannel/A-FrameChannel.types.ts +65 -1
- package/src/lib/A-FrameChannel/A-FrameChannelDsgStream.entity.ts +112 -0
- package/src/lib/A-FrameChannel/A-FrameChannelStream.entity.ts +1 -0
- package/src/lib/A-FrameChannel/index.browser.ts +5 -0
- package/src/lib/A-FrameCompletion/A-FrameCompletion.constants.ts +3 -0
- package/src/lib/A-FrameCompletion/A-FrameCompletion.entity.ts +128 -0
- package/src/lib/A-FrameCompletion/A-FrameCompletion.types.ts +40 -0
- package/src/lib/A-FrameCompletion/index.ts +3 -0
- package/src/lib/A-FrameCredentials/A-FrameCredentials.constants.ts +5 -0
- package/src/lib/A-FrameCredentials/A-FrameCredentials.entity.ts +120 -0
- package/src/lib/A-FrameCredentials/A-FrameCredentials.types.ts +39 -0
- package/src/lib/A-FrameCredentials/index.ts +3 -0
- package/src/lib/A-FrameDefinition/A-FrameDefinition.entity.ts +23 -1
- package/src/lib/A-FrameDefinition/A-FrameDefinition.types.ts +34 -1
- package/src/lib/A-FrameDynamicContent/A-FrameDynamicContent.constants.ts +5 -0
- package/src/lib/A-FrameDynamicContent/A-FrameDynamicContent.entity.ts +348 -0
- package/src/lib/A-FrameDynamicContent/A-FrameDynamicContent.error.ts +10 -0
- package/src/lib/A-FrameDynamicContent/A-FrameDynamicContent.types.ts +116 -0
- package/src/lib/A-FrameDynamicContent/A-FrameDynamicContentIndex.context.ts +288 -0
- package/src/lib/A-FrameDynamicContent/A-FrameDynamicContentOperation.context.ts +26 -0
- package/src/lib/A-FrameDynamicContent/index.ts +5 -0
- package/src/lib/A-FrameDynamicFeature/A-FrameDynamicFeature.constants.ts +6 -0
- package/src/lib/A-FrameDynamicFeature/A-FrameDynamicFeature.entity.ts +253 -4
- package/src/lib/A-FrameDynamicFeature/A-FrameDynamicFeature.error.ts +11 -0
- package/src/lib/A-FrameDynamicFeature/A-FrameDynamicFeature.types.ts +188 -4
- package/src/lib/A-FrameDynamicFeature/A-FrameDynamicFeatureOperation.context.ts +33 -0
- package/src/lib/A-FrameDynamicFeature/A-FrameMethodMapIndex.context.ts +99 -0
- package/src/lib/A-FrameDynamicFeature/A-FrameMethodMapper.component.ts +182 -0
- package/src/lib/A-FrameDynamicFeature/index.ts +6 -1
- package/src/lib/A-FrameDynamicPatch/index.ts +2 -0
- package/src/lib/A-FrameDynamicStructure/A-FrameComponentMapIndex.context.ts +99 -0
- package/src/lib/A-FrameDynamicStructure/A-FrameComponentMapper.component.ts +320 -0
- package/src/lib/A-FrameDynamicStructure/A-FrameDynamicStructure.constants.ts +2 -1
- package/src/lib/A-FrameDynamicStructure/A-FrameDynamicStructure.entity.ts +240 -128
- package/src/lib/A-FrameDynamicStructure/A-FrameDynamicStructure.types.ts +183 -87
- package/src/lib/A-FrameDynamicStructure/index.ts +3 -0
- package/src/lib/A-FrameEnv/A-FrameEnv.fragment.env-browser.ts +5 -1
- package/src/lib/A-FrameEnv/A-FrameEnv.fragment.env-node.ts +23 -1
- package/src/lib/A-FrameEnv/A-FrameEnv.types.ts +12 -0
- package/src/lib/A-FrameIndex/A-FrameIndex.context.ts +63 -13
- package/src/lib/A-FrameIndex/A-FrameIndex.types.ts +53 -0
- package/src/lib/A-FrameModels/A-FrameModels.constants.ts +75 -0
- package/src/lib/A-FrameModels/index.ts +1 -0
- package/src/lib/A-FrameNamespace/A-FrameNamespace.entity.ts +10 -3
- package/src/lib/A-FrameNamespace/A-FrameNamespace.types.ts +5 -0
- package/src/lib/A-FrameSchema/A-FrameSchema.constants.ts +4 -0
- package/src/lib/A-FrameSchema/A-FrameSchema.entity.ts +154 -0
- package/src/lib/A-FrameSchema/A-FrameSchema.types.ts +88 -0
- package/src/lib/A-FrameSchema/index.ts +3 -0
- package/src/lib/A-FrameSegment/A-FrameSegment.constants.ts +12 -0
- package/src/lib/A-FrameSegment/A-FrameSegment.entity.ts +221 -0
- package/src/lib/A-FrameSegment/A-FrameSegment.types.ts +91 -0
- package/src/lib/A-FrameSegment/index.ts +3 -0
- package/src/lib/A-FrameStorage/A-FrameStorage.codec.ts +10 -4
- package/src/lib/A-FrameStorage/browser/A-FrameBrowserStorage.component.ts +21 -0
- package/src/lib/A-FrameStorage/browser/A-FrameBrowserStorageBlobs.context.ts +39 -21
- package/src/lib/A-FrameStorage/node/A-FrameNodeStorage.component.ts +124 -42
- package/src/lib/A-FrameVector/A-FrameVector.entity.ts +24 -0
- package/tests/A-Frame.browser.test.ts +167 -57
- package/tests/A-FrameDynamicContent.browser.test.ts +74 -0
- package/tests/integration/A-Frame.integration.test.ts +272 -0
- package/tests/integration/A-FrameCompletion.integration.test.ts +88 -0
- package/tests/integration/A-FrameContentMapping.integration.test.ts +261 -0
- package/tests/integration/A-FrameDefinition.integration.test.ts +154 -0
- package/tests/integration/A-FrameDynamicContent.integration.test.ts +126 -0
- package/tests/integration/A-FrameDynamicFeature.integration.test.ts +337 -0
- package/tests/integration/A-FrameDynamicStructure.integration.test.ts +264 -0
- package/tests/integration/A-FrameNamespace.integration.test.ts +109 -0
- package/tests/integration/A-FrameSchema.integration.test.ts +74 -0
- package/tests/integration/A-FrameSegment.integration.test.ts +102 -0
- package/tests/integration/A-FrameStorage.integration.test.ts +598 -0
- package/tests/jest.setup.browser.ts +1 -1
- package/tests/jest.setup.ts +4 -0
- package/tests/jest.setup.unit.ts +30 -0
- package/tests/unit/A-FrameChannel.unit.test.ts +124 -0
- package/tests/unit/A-FrameCompletion.unit.test.ts +25 -0
- package/tests/unit/A-FrameDefinition.unit.test.ts +36 -0
- package/tests/unit/A-FrameDynamicContent.unit.test.ts +28 -0
- package/tests/unit/A-FrameNamespace.unit.test.ts +35 -0
- package/tests/unit/A-FrameSchema.unit.test.ts +31 -0
- package/tests/unit/A-FrameSegment.unit.test.ts +20 -0
- package/tests/unit/mocks/MockA_FrameChannel.ts +112 -0
- package/tsconfig.browser.json +2 -0
- package/tsconfig.json +6 -0
- package/tsup.config.ts +52 -0
- package/tests/A-Frame.test.ts +0 -98
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
import { A_Concept, A_Container, A_Error } from '@adaas/a-concept';
|
|
2
|
+
import { A_Frame } from '@adaas/a-frame/core';
|
|
3
|
+
import { config } from 'dotenv';
|
|
4
|
+
import { A_FrameCompletion } from '@adaas/a-frame/completion';
|
|
5
|
+
import { A_FRAME_MODELS } from '@adaas/a-frame/models';
|
|
6
|
+
|
|
7
|
+
config();
|
|
8
|
+
|
|
9
|
+
jest.setTimeout(60_000);
|
|
10
|
+
|
|
11
|
+
// ─── Helpers ──────────────────────────────────────────────────────────────────
|
|
12
|
+
|
|
13
|
+
async function buildConcept() {
|
|
14
|
+
const container = new A_Container({
|
|
15
|
+
name: 'Completion Test Container',
|
|
16
|
+
components: [],
|
|
17
|
+
});
|
|
18
|
+
const concept = new A_Concept({
|
|
19
|
+
name: 'Test Concept',
|
|
20
|
+
components: [A_Frame],
|
|
21
|
+
containers: [container],
|
|
22
|
+
});
|
|
23
|
+
await concept.load();
|
|
24
|
+
return { concept, container };
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
// ─── Tests ────────────────────────────────────────────────────────────────────
|
|
28
|
+
|
|
29
|
+
describe('A-Frame Completion Tests', () => {
|
|
30
|
+
|
|
31
|
+
describe('Integration — text generation', () => {
|
|
32
|
+
|
|
33
|
+
let container: A_Container;
|
|
34
|
+
|
|
35
|
+
beforeEach(async () => {
|
|
36
|
+
({ container } = await buildConcept());
|
|
37
|
+
});
|
|
38
|
+
|
|
39
|
+
it('produces text and an embedding vector', async () => {
|
|
40
|
+
try {
|
|
41
|
+
const completion = new A_FrameCompletion({
|
|
42
|
+
prompt: 'Write one sentence explaining what an embedding vector is.',
|
|
43
|
+
});
|
|
44
|
+
expect(completion.options?.model).toBe(A_FRAME_MODELS.RIGEL);
|
|
45
|
+
|
|
46
|
+
container.scope.register(completion);
|
|
47
|
+
await completion.generate();
|
|
48
|
+
|
|
49
|
+
expect(completion.isGenerated).toBe(true);
|
|
50
|
+
expect(typeof completion.text).toBe('string');
|
|
51
|
+
expect(completion.text!.length).toBeGreaterThan(0);
|
|
52
|
+
expect(completion.vector).toBeDefined();
|
|
53
|
+
expect(completion.vector!.values.length).toBeGreaterThan(0);
|
|
54
|
+
expect(typeof completion.model).toBe('string');
|
|
55
|
+
expect(completion.model!.length).toBeGreaterThan(0);
|
|
56
|
+
} catch (error) {
|
|
57
|
+
if (error instanceof A_Error) console.error('A_Error:', error.toJSON());
|
|
58
|
+
else console.error('Unexpected error:', error);
|
|
59
|
+
throw error;
|
|
60
|
+
}
|
|
61
|
+
});
|
|
62
|
+
|
|
63
|
+
it('different prompts produce different vectors', async () => {
|
|
64
|
+
try {
|
|
65
|
+
const c1 = new A_FrameCompletion({
|
|
66
|
+
prompt: 'Write one sentence explaining what an embedding vector is.',
|
|
67
|
+
});
|
|
68
|
+
const c2 = new A_FrameCompletion({
|
|
69
|
+
prompt: 'Describe the lifecycle of a butterfly in one sentence.',
|
|
70
|
+
});
|
|
71
|
+
container.scope.register(c1);
|
|
72
|
+
container.scope.register(c2);
|
|
73
|
+
await c1.generate();
|
|
74
|
+
await c2.generate();
|
|
75
|
+
|
|
76
|
+
expect(c1.vector).toBeDefined();
|
|
77
|
+
expect(c2.vector).toBeDefined();
|
|
78
|
+
expect(c2.vector!.isEqualTo(c1.vector!)).toBe(false);
|
|
79
|
+
} catch (error) {
|
|
80
|
+
if (error instanceof A_Error) console.error('A_Error:', error.toJSON());
|
|
81
|
+
else console.error('Unexpected error:', error);
|
|
82
|
+
throw error;
|
|
83
|
+
}
|
|
84
|
+
});
|
|
85
|
+
|
|
86
|
+
});
|
|
87
|
+
|
|
88
|
+
});
|
|
@@ -0,0 +1,261 @@
|
|
|
1
|
+
import { A_Component, A_Concept, A_Container, A_Error } from "@adaas/a-concept";
|
|
2
|
+
import { A_Frame } from "@adaas/a-frame/core";
|
|
3
|
+
import { A_FrameIndex } from "@adaas/a-frame/index";
|
|
4
|
+
import { A_FrameDynamicContent } from "@adaas/a-frame/dynamic-content";
|
|
5
|
+
import { A_FrameCompletion } from "@adaas/a-frame/completion";
|
|
6
|
+
import { config } from 'dotenv';
|
|
7
|
+
|
|
8
|
+
config();
|
|
9
|
+
|
|
10
|
+
jest.setTimeout(5 * 60 * 1000);
|
|
11
|
+
|
|
12
|
+
// ─── UI Component Definitions ─────────────────────────────────────────────────
|
|
13
|
+
// These represent the available components in an article renderer.
|
|
14
|
+
// @A_Frame.Define() stores a semantic description in the index so that
|
|
15
|
+
// any content segment can be matched to the right component via vector search.
|
|
16
|
+
|
|
17
|
+
@A_Frame.Define({
|
|
18
|
+
description: 'Renders the main title or headline of an article. Use for the primary H1 heading at the top of the page.',
|
|
19
|
+
})
|
|
20
|
+
class TitleComponent extends A_Component {}
|
|
21
|
+
|
|
22
|
+
@A_Frame.Define({
|
|
23
|
+
description: 'Renders a section heading (H2/H3). Use for sub-headings that introduce a new topic or group of content within the article.',
|
|
24
|
+
})
|
|
25
|
+
class SectionHeadingComponent extends A_Component {}
|
|
26
|
+
|
|
27
|
+
@A_Frame.Define({
|
|
28
|
+
description: 'Renders a block of descriptive text or a paragraph. Use for general narrative content, explanations, introductions, or conclusions.',
|
|
29
|
+
})
|
|
30
|
+
class TextParagraphComponent extends A_Component {}
|
|
31
|
+
|
|
32
|
+
@A_Frame.Define({
|
|
33
|
+
description: 'Renders a clickable hyperlink. Use when content references an external resource, source, or URL.',
|
|
34
|
+
})
|
|
35
|
+
class LinkComponent extends A_Component {}
|
|
36
|
+
|
|
37
|
+
@A_Frame.Define({
|
|
38
|
+
description: 'Renders an interactive button element. Use for calls-to-action such as "Learn More", "View Details", or "Compare".',
|
|
39
|
+
})
|
|
40
|
+
class ButtonComponent extends A_Component {}
|
|
41
|
+
|
|
42
|
+
@A_Frame.Define({
|
|
43
|
+
description: 'Renders a bar chart that compares numerical values across categories. Use for comparing statistics, counts, or measurements between multiple items (e.g. average weight by breed).',
|
|
44
|
+
})
|
|
45
|
+
class BarChartComponent extends A_Component {}
|
|
46
|
+
|
|
47
|
+
@A_Frame.Define({
|
|
48
|
+
description: 'Renders a pie chart showing proportional data or percentage breakdowns. Use when the content describes how a total is distributed across categories (e.g. popularity share by breed).',
|
|
49
|
+
})
|
|
50
|
+
class PieChartComponent extends A_Component {}
|
|
51
|
+
|
|
52
|
+
@A_Frame.Define({
|
|
53
|
+
description: 'Renders a data table with rows and columns. Use for structured tabular data such as side-by-side breed comparisons, trait lists, or statistical tables.',
|
|
54
|
+
})
|
|
55
|
+
class DataTableComponent extends A_Component {}
|
|
56
|
+
|
|
57
|
+
@A_Frame.Define({
|
|
58
|
+
description: 'Renders an image or photo with an optional caption. Use when the content references a visual, illustration, or photo of a dog breed.',
|
|
59
|
+
})
|
|
60
|
+
class ImageComponent extends A_Component {}
|
|
61
|
+
|
|
62
|
+
@A_Frame.Define({
|
|
63
|
+
description: 'Renders a highlighted fact or key statistic in a prominent callout box. Use for single notable numbers or fun facts (e.g. "The Labrador has ranked #1 in popularity for 30 years").',
|
|
64
|
+
})
|
|
65
|
+
class StatCalloutComponent extends A_Component {}
|
|
66
|
+
|
|
67
|
+
@A_Frame.Define({
|
|
68
|
+
description: 'Renders a bullet-point or numbered list. Use when the content enumerates traits, characteristics, or steps (e.g. "Top 5 most popular breeds: ...").',
|
|
69
|
+
})
|
|
70
|
+
class ListComponent extends A_Component {}
|
|
71
|
+
|
|
72
|
+
@A_Frame.Define({
|
|
73
|
+
description: 'Renders a breed profile card showing key attributes such as origin, size, temperament, and lifespan in a compact summary format.',
|
|
74
|
+
})
|
|
75
|
+
class BreedProfileCardComponent extends A_Component {}
|
|
76
|
+
|
|
77
|
+
|
|
78
|
+
// ─── Bridge prompt ─────────────────────────────────────────────────────────────
|
|
79
|
+
|
|
80
|
+
const BRIDGE_SYSTEM = [
|
|
81
|
+
'You are a UI layout assistant. Given a piece of article content, your only job is to',
|
|
82
|
+
'describe which single UI component from a standard article renderer would best',
|
|
83
|
+
'visualise that content. Be specific: mention the visual form (chart, card, table, heading,',
|
|
84
|
+
'paragraph, list, etc.) and what data it would show. Keep the answer to 1-2 sentences.',
|
|
85
|
+
].join(' ');
|
|
86
|
+
|
|
87
|
+
// ─── Types ────────────────────────────────────────────────────────────────────
|
|
88
|
+
|
|
89
|
+
type SegmentMapping = {
|
|
90
|
+
segmentIndex: number;
|
|
91
|
+
segmentSnippet: string;
|
|
92
|
+
bridgeDescription: string;
|
|
93
|
+
componentName: string;
|
|
94
|
+
score: number;
|
|
95
|
+
};
|
|
96
|
+
|
|
97
|
+
// ─── Pipeline helper ──────────────────────────────────────────────────────────
|
|
98
|
+
|
|
99
|
+
async function buildMappings(): Promise<{
|
|
100
|
+
index: A_FrameIndex;
|
|
101
|
+
article: A_FrameDynamicContent;
|
|
102
|
+
mappings: SegmentMapping[];
|
|
103
|
+
}> {
|
|
104
|
+
const container = new A_Container({
|
|
105
|
+
name: 'Article Container',
|
|
106
|
+
components: [
|
|
107
|
+
TitleComponent,
|
|
108
|
+
SectionHeadingComponent,
|
|
109
|
+
TextParagraphComponent,
|
|
110
|
+
LinkComponent,
|
|
111
|
+
ButtonComponent,
|
|
112
|
+
BarChartComponent,
|
|
113
|
+
PieChartComponent,
|
|
114
|
+
DataTableComponent,
|
|
115
|
+
ImageComponent,
|
|
116
|
+
StatCalloutComponent,
|
|
117
|
+
ListComponent,
|
|
118
|
+
BreedProfileCardComponent,
|
|
119
|
+
],
|
|
120
|
+
});
|
|
121
|
+
|
|
122
|
+
const concept = new A_Concept({
|
|
123
|
+
name: 'Test Concept',
|
|
124
|
+
components: [A_Frame],
|
|
125
|
+
containers: [container],
|
|
126
|
+
});
|
|
127
|
+
|
|
128
|
+
await concept.load();
|
|
129
|
+
|
|
130
|
+
const index = concept.scope.resolve(A_FrameIndex)!;
|
|
131
|
+
|
|
132
|
+
// Embed all component definitions explicitly (A_FRAME_SYNC is disabled in jest.setup.ts)
|
|
133
|
+
const definitions = index.listDefinitions();
|
|
134
|
+
await Promise.all(definitions.map(def => def.embed()));
|
|
135
|
+
|
|
136
|
+
console.log(`\n=== Index loaded: ${index.indexSize} component definitions ===\n`);
|
|
137
|
+
|
|
138
|
+
// Generate a short article — keep the prompt concise so that even a
|
|
139
|
+
const article = new A_FrameDynamicContent({
|
|
140
|
+
prompt: [
|
|
141
|
+
'Write a short article about web development. Include:',
|
|
142
|
+
'- A title',
|
|
143
|
+
'- An introduction paragraph',
|
|
144
|
+
'- A section listing 3 popular frontend frameworks with brief descriptions',
|
|
145
|
+
'- A comparison table of those frameworks',
|
|
146
|
+
'- A conclusion paragraph',
|
|
147
|
+
].join('\n'),
|
|
148
|
+
});
|
|
149
|
+
|
|
150
|
+
container.scope.register(article);
|
|
151
|
+
await article.generate();
|
|
152
|
+
|
|
153
|
+
console.log(`=== Article generated: ${article.segments.length} segments ===\n`);
|
|
154
|
+
|
|
155
|
+
// Map each segment to a component via bridge completion
|
|
156
|
+
const mappings: SegmentMapping[] = [];
|
|
157
|
+
|
|
158
|
+
for (let i = 0; i < article.segments.length; i++) {
|
|
159
|
+
const segment = article.segments[i];
|
|
160
|
+
const contentSnippet = segment.content.slice(0, 500);
|
|
161
|
+
|
|
162
|
+
const bridge = new A_FrameCompletion({
|
|
163
|
+
prompt: `Content segment:\n"""\n${contentSnippet}\n"""\n\nDescribe which UI component should render this content.`,
|
|
164
|
+
options: {
|
|
165
|
+
system: BRIDGE_SYSTEM,
|
|
166
|
+
max_tokens: 80,
|
|
167
|
+
},
|
|
168
|
+
});
|
|
169
|
+
|
|
170
|
+
container.scope.register(bridge);
|
|
171
|
+
|
|
172
|
+
let searchVector = segment.vector;
|
|
173
|
+
|
|
174
|
+
try {
|
|
175
|
+
await bridge.generate();
|
|
176
|
+
searchVector = bridge.vector ?? searchVector;
|
|
177
|
+
} catch (bridgeErr) {
|
|
178
|
+
console.warn(
|
|
179
|
+
`[${i}] Bridge completion failed, using segment embedding as fallback:`,
|
|
180
|
+
bridgeErr instanceof Error ? bridgeErr.message : String(bridgeErr),
|
|
181
|
+
);
|
|
182
|
+
}
|
|
183
|
+
|
|
184
|
+
if (!searchVector) {
|
|
185
|
+
console.warn(`[${i}] No embedding available — skipping`);
|
|
186
|
+
continue;
|
|
187
|
+
}
|
|
188
|
+
|
|
189
|
+
const results = index.search(searchVector, { topK: 1 });
|
|
190
|
+
const best = results[0];
|
|
191
|
+
|
|
192
|
+
const mapping: SegmentMapping = {
|
|
193
|
+
segmentIndex: i,
|
|
194
|
+
segmentSnippet: segment.content.slice(0, 80).replace(/\n/g, ' '),
|
|
195
|
+
bridgeDescription: (bridge.text ?? '(segment embedding fallback)').slice(0, 120).replace(/\n/g, ' '),
|
|
196
|
+
componentName: best?.record.name ?? '(no match)',
|
|
197
|
+
score: best?.score ?? 0,
|
|
198
|
+
};
|
|
199
|
+
|
|
200
|
+
mappings.push(mapping);
|
|
201
|
+
|
|
202
|
+
console.log(
|
|
203
|
+
`[${String(i).padStart(2)}] ${mapping.componentName.padEnd(28)} score=${mapping.score.toFixed(3)}\n` +
|
|
204
|
+
` content : ${mapping.segmentSnippet}\n` +
|
|
205
|
+
` bridge : ${mapping.bridgeDescription}\n`,
|
|
206
|
+
);
|
|
207
|
+
}
|
|
208
|
+
|
|
209
|
+
return { index, article, mappings };
|
|
210
|
+
}
|
|
211
|
+
|
|
212
|
+
// ─── Tests ────────────────────────────────────────────────────────────────────
|
|
213
|
+
|
|
214
|
+
describe('A-Frame Content Mapping Tests', () => {
|
|
215
|
+
|
|
216
|
+
// ── Integration: content-to-component pipeline ────────────────────────
|
|
217
|
+
|
|
218
|
+
describe('Integration — content-to-component pipeline', () => {
|
|
219
|
+
|
|
220
|
+
let index: A_FrameIndex;
|
|
221
|
+
let article: A_FrameDynamicContent;
|
|
222
|
+
let mappings: SegmentMapping[];
|
|
223
|
+
|
|
224
|
+
beforeAll(async () => {
|
|
225
|
+
try {
|
|
226
|
+
({ index, article, mappings } = await buildMappings());
|
|
227
|
+
} catch (error) {
|
|
228
|
+
if (error instanceof A_Error) console.error('A_Error:', error.toJSON());
|
|
229
|
+
else console.error('Unexpected error:', error);
|
|
230
|
+
throw error;
|
|
231
|
+
}
|
|
232
|
+
});
|
|
233
|
+
|
|
234
|
+
it('index contains all component definitions', () => {
|
|
235
|
+
expect(index.indexSize).toBeGreaterThan(0);
|
|
236
|
+
});
|
|
237
|
+
|
|
238
|
+
it('article generates at least one segment', () => {
|
|
239
|
+
expect(article.segments.length).toBeGreaterThan(0);
|
|
240
|
+
});
|
|
241
|
+
|
|
242
|
+
it('every segment is mapped to a named component', () => {
|
|
243
|
+
expect(mappings.length).toBeGreaterThan(0);
|
|
244
|
+
for (const m of mappings) {
|
|
245
|
+
expect(m.componentName).toBeTruthy();
|
|
246
|
+
}
|
|
247
|
+
});
|
|
248
|
+
|
|
249
|
+
it('multiple distinct component types are used across the article', () => {
|
|
250
|
+
const distinctComponents = new Set(mappings.map(m => m.componentName));
|
|
251
|
+
console.log('\n=== Component usage summary ===');
|
|
252
|
+
for (const name of distinctComponents) {
|
|
253
|
+
const count = mappings.filter(m => m.componentName === name).length;
|
|
254
|
+
console.log(` ${name}: ${count}`);
|
|
255
|
+
}
|
|
256
|
+
expect(distinctComponents.size).toBeGreaterThan(1);
|
|
257
|
+
});
|
|
258
|
+
|
|
259
|
+
});
|
|
260
|
+
|
|
261
|
+
});
|
|
@@ -0,0 +1,154 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* A-FrameDefinition.integration.test.ts — integration test for the A_FrameDefinition
|
|
3
|
+
* embedding round-trip.
|
|
4
|
+
*
|
|
5
|
+
* Connects to a running adaas-a-frame-mcp server (env vars required).
|
|
6
|
+
*
|
|
7
|
+
* Required env vars:
|
|
8
|
+
* A_FRAME_SERVER_URL — e.g. http://localhost:3000
|
|
9
|
+
* A_FRAME_VERSION — semver of the client library, e.g. 0.1.1
|
|
10
|
+
*/
|
|
11
|
+
|
|
12
|
+
import { config } from 'dotenv';
|
|
13
|
+
import { A_Concept, A_Container } from '@adaas/a-concept';
|
|
14
|
+
import { A_Frame } from '@adaas/a-frame/core';
|
|
15
|
+
import { A_FrameDefinition } from '@adaas/a-frame/definition';
|
|
16
|
+
import { A_FrameNamespace } from '@adaas/a-frame/namespace';
|
|
17
|
+
import { A_FrameTargetType } from '@adaas/a-frame/core';
|
|
18
|
+
import { A_FRAME_MODELS } from '@adaas/a-frame/models';
|
|
19
|
+
|
|
20
|
+
config();
|
|
21
|
+
|
|
22
|
+
jest.setTimeout(60_000);
|
|
23
|
+
|
|
24
|
+
// ─── sample component source to embed ────────────────────────────────────────
|
|
25
|
+
|
|
26
|
+
const SAMPLE_SOURCE = `
|
|
27
|
+
import { A_Component, A_Feature, A_Inject } from '@adaas/a-concept';
|
|
28
|
+
import { AuthService } from './AuthService';
|
|
29
|
+
import { UserRepository } from './UserRepository';
|
|
30
|
+
|
|
31
|
+
export class UserController extends A_Component {
|
|
32
|
+
|
|
33
|
+
@A_Feature.Extend({ name: 'getUser', scope: 'user-read' })
|
|
34
|
+
async getUser(
|
|
35
|
+
@A_Inject(AuthService) auth: AuthService,
|
|
36
|
+
@A_Inject(UserRepository) repo: UserRepository,
|
|
37
|
+
) {
|
|
38
|
+
await auth.verify();
|
|
39
|
+
return repo.findById(1);
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
@A_Feature.Extend({ name: 'createUser', scope: 'user-write' })
|
|
43
|
+
async createUser(
|
|
44
|
+
@A_Inject(UserRepository) repo: UserRepository,
|
|
45
|
+
) {
|
|
46
|
+
return repo.create({ name: 'test' });
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
lookup(id: number): string {
|
|
50
|
+
return \`user:\${id}\`;
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
`.trim();
|
|
54
|
+
|
|
55
|
+
// ─── helpers ──────────────────────────────────────────────────────────────────
|
|
56
|
+
|
|
57
|
+
function makeDefinition(ns: A_FrameNamespace) {
|
|
58
|
+
return new A_FrameDefinition({
|
|
59
|
+
name: 'UserController',
|
|
60
|
+
dependency: 'UserController',
|
|
61
|
+
description: 'Handles user CRUD operations',
|
|
62
|
+
source: SAMPLE_SOURCE,
|
|
63
|
+
type: A_FrameTargetType.COMPONENT,
|
|
64
|
+
namespace: ns,
|
|
65
|
+
});
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
async function setup() {
|
|
69
|
+
const ns = new A_FrameNamespace({ name: 'test' });
|
|
70
|
+
const def = makeDefinition(ns);
|
|
71
|
+
const container = new A_Container({ name: 'test-container', components: [] });
|
|
72
|
+
const concept = new A_Concept({
|
|
73
|
+
name: 'Test Concept',
|
|
74
|
+
components: [A_Frame],
|
|
75
|
+
containers: [container],
|
|
76
|
+
});
|
|
77
|
+
container.scope.register(ns);
|
|
78
|
+
container.scope.register(def);
|
|
79
|
+
await concept.load();
|
|
80
|
+
return def;
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
// ─── tests ────────────────────────────────────────────────────────────────────
|
|
84
|
+
|
|
85
|
+
describe('A-Frame Definition Tests', () => {
|
|
86
|
+
|
|
87
|
+
// A single embed() call is shared across all assertions via beforeAll.
|
|
88
|
+
// This avoids 6 independent network round-trips while still exercising
|
|
89
|
+
// the full embedding pipeline exactly once per test run.
|
|
90
|
+
|
|
91
|
+
describe('Integration — embed() round-trip', () => {
|
|
92
|
+
|
|
93
|
+
let definition: A_FrameDefinition;
|
|
94
|
+
|
|
95
|
+
beforeAll(async () => {
|
|
96
|
+
definition = await setup();
|
|
97
|
+
await definition.embed();
|
|
98
|
+
});
|
|
99
|
+
|
|
100
|
+
it('populates vector after embed()', () => {
|
|
101
|
+
expect(definition.vector).toBeDefined();
|
|
102
|
+
expect(definition.vector!.values.length).toBeGreaterThan(0);
|
|
103
|
+
expect(typeof definition.model).toBe('string');
|
|
104
|
+
expect(definition.model.length).toBeGreaterThan(0);
|
|
105
|
+
});
|
|
106
|
+
|
|
107
|
+
it('populates aFrameMeta with extracted className', () => {
|
|
108
|
+
expect(definition.aFrameMeta).toBeDefined();
|
|
109
|
+
expect(definition.aFrameMeta!.className).toBe('UserController');
|
|
110
|
+
});
|
|
111
|
+
|
|
112
|
+
it('aFrameMeta.methods includes expected public methods', () => {
|
|
113
|
+
const methods = definition.aFrameMeta!.methods;
|
|
114
|
+
expect(methods).toContain('getUser');
|
|
115
|
+
expect(methods).toContain('createUser');
|
|
116
|
+
expect(methods).toContain('lookup');
|
|
117
|
+
});
|
|
118
|
+
|
|
119
|
+
it('aFrameMeta.injectDeps includes @A_Inject dependencies', () => {
|
|
120
|
+
const deps = definition.aFrameMeta!.injectDeps;
|
|
121
|
+
expect(deps).toContain('AuthService');
|
|
122
|
+
expect(deps).toContain('UserRepository');
|
|
123
|
+
});
|
|
124
|
+
|
|
125
|
+
it('aFrameMeta.features includes @A_Feature.Extend names', () => {
|
|
126
|
+
const features = definition.aFrameMeta!.features;
|
|
127
|
+
expect(features).toContain('getUser');
|
|
128
|
+
expect(features).toContain('createUser');
|
|
129
|
+
});
|
|
130
|
+
|
|
131
|
+
it('preserves aFrameMeta through toJSON / fromJSON round-trip', () => {
|
|
132
|
+
const serialized = definition.toJSON();
|
|
133
|
+
expect(serialized.aFrameMeta).toBeDefined();
|
|
134
|
+
expect(serialized.aFrameMeta!.className).toBe('UserController');
|
|
135
|
+
|
|
136
|
+
const ns = new A_FrameNamespace({ name: 'test' });
|
|
137
|
+
const restored = new A_FrameDefinition({
|
|
138
|
+
name: 'UserController',
|
|
139
|
+
dependency: 'UserController',
|
|
140
|
+
source: '',
|
|
141
|
+
type: A_FrameTargetType.COMPONENT,
|
|
142
|
+
namespace: ns,
|
|
143
|
+
});
|
|
144
|
+
restored.fromJSON(serialized);
|
|
145
|
+
|
|
146
|
+
expect(restored.aFrameMeta).toBeDefined();
|
|
147
|
+
expect(restored.aFrameMeta!.methods).toEqual(definition.aFrameMeta!.methods);
|
|
148
|
+
expect(restored.aFrameMeta!.injectDeps).toEqual(definition.aFrameMeta!.injectDeps);
|
|
149
|
+
expect(restored.aFrameMeta!.features).toEqual(definition.aFrameMeta!.features);
|
|
150
|
+
});
|
|
151
|
+
|
|
152
|
+
});
|
|
153
|
+
|
|
154
|
+
});
|
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
import { A_Concept, A_Container, A_Error } from '@adaas/a-concept';
|
|
2
|
+
import { A_Frame } from '@adaas/a-frame/core';
|
|
3
|
+
import { config } from 'dotenv';
|
|
4
|
+
import { A_FrameDynamicContent } from '@adaas/a-frame/dynamic-content';
|
|
5
|
+
import { A_FRAME_MODELS } from '@adaas/a-frame/models';
|
|
6
|
+
|
|
7
|
+
config();
|
|
8
|
+
|
|
9
|
+
jest.setTimeout(60 * 60 * 1000);
|
|
10
|
+
|
|
11
|
+
// ─── Helpers ──────────────────────────────────────────────────────────────────
|
|
12
|
+
|
|
13
|
+
async function buildConcept() {
|
|
14
|
+
const container = new A_Container({ name: 'DynamicContent Test Container', components: [] });
|
|
15
|
+
const concept = new A_Concept({
|
|
16
|
+
name: 'Test Concept',
|
|
17
|
+
components: [A_Frame],
|
|
18
|
+
containers: [container],
|
|
19
|
+
});
|
|
20
|
+
await concept.load();
|
|
21
|
+
return { concept, container };
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
// ─── Tests ────────────────────────────────────────────────────────────────────
|
|
25
|
+
|
|
26
|
+
describe('A-Frame DynamicContent Tests', () => {
|
|
27
|
+
|
|
28
|
+
describe('Integration — generate and patch', () => {
|
|
29
|
+
|
|
30
|
+
let container: A_Container;
|
|
31
|
+
|
|
32
|
+
beforeEach(async () => {
|
|
33
|
+
({ container } = await buildConcept());
|
|
34
|
+
});
|
|
35
|
+
|
|
36
|
+
it('generates content and applies sequential patches', async () => {
|
|
37
|
+
try {
|
|
38
|
+
const newContent = new A_FrameDynamicContent({
|
|
39
|
+
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.",
|
|
40
|
+
});
|
|
41
|
+
|
|
42
|
+
|
|
43
|
+
container.scope.register(newContent);
|
|
44
|
+
await newContent.generate();
|
|
45
|
+
|
|
46
|
+
console.log('=== Generated article ===');
|
|
47
|
+
console.log(newContent.text);
|
|
48
|
+
|
|
49
|
+
await newContent.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.");
|
|
50
|
+
|
|
51
|
+
console.log('\n=== After adding examples ===');
|
|
52
|
+
console.log(newContent.text);
|
|
53
|
+
|
|
54
|
+
await newContent.patch("Remove all the example sentences that were added (the ones describing real-world examples for each pattern).");
|
|
55
|
+
|
|
56
|
+
console.log('\n=== After removing examples ===');
|
|
57
|
+
console.log(newContent.text);
|
|
58
|
+
|
|
59
|
+
const textBeforeModify = newContent.text;
|
|
60
|
+
|
|
61
|
+
await newContent.patch("Rewrite the paragraph about key principles to also mention the DRY (Don't Repeat Yourself) principle. Keep the paragraph roughly the same length.");
|
|
62
|
+
|
|
63
|
+
const textAfterModify = newContent.text;
|
|
64
|
+
|
|
65
|
+
console.log('\n=== After modifying key principles paragraph ===');
|
|
66
|
+
console.log(newContent.text);
|
|
67
|
+
|
|
68
|
+
expect(textAfterModify).not.toBe(textBeforeModify);
|
|
69
|
+
} catch (error) {
|
|
70
|
+
if (error instanceof A_Error) console.error('A_Error:', error.toJSON());
|
|
71
|
+
else console.error('Unexpected error:', error);
|
|
72
|
+
throw error;
|
|
73
|
+
}
|
|
74
|
+
});
|
|
75
|
+
|
|
76
|
+
});
|
|
77
|
+
|
|
78
|
+
describe('Integration — semantic comparison', () => {
|
|
79
|
+
|
|
80
|
+
let container: A_Container;
|
|
81
|
+
|
|
82
|
+
beforeEach(async () => {
|
|
83
|
+
({ container } = await buildConcept());
|
|
84
|
+
});
|
|
85
|
+
|
|
86
|
+
it('related topics score higher than unrelated topics', async () => {
|
|
87
|
+
try {
|
|
88
|
+
const cats1 = new A_FrameDynamicContent({
|
|
89
|
+
prompt: 'Write a short article about cats: their behaviour, habits, and why people love them as pets.',
|
|
90
|
+
});
|
|
91
|
+
const cats2 = new A_FrameDynamicContent({
|
|
92
|
+
prompt: 'Write a short article about kittens: how they grow, play, and become adult cats.',
|
|
93
|
+
});
|
|
94
|
+
const cars = new A_FrameDynamicContent({
|
|
95
|
+
prompt: 'Write a short article about racing cars: engine specifications, speed records, and Formula 1.',
|
|
96
|
+
});
|
|
97
|
+
|
|
98
|
+
container.scope.register(cats1);
|
|
99
|
+
container.scope.register(cats2);
|
|
100
|
+
container.scope.register(cars);
|
|
101
|
+
|
|
102
|
+
await cats1.generate();
|
|
103
|
+
await cats2.generate();
|
|
104
|
+
await cars.generate();
|
|
105
|
+
|
|
106
|
+
const relatedScore = cats1.compareTo(cats2);
|
|
107
|
+
const unrelatedScore = cats1.compareTo(cars);
|
|
108
|
+
|
|
109
|
+
console.log(`Related score (cats vs kittens): ${relatedScore.toFixed(4)}`);
|
|
110
|
+
console.log(`Unrelated score (cats vs cars): ${unrelatedScore.toFixed(4)}`);
|
|
111
|
+
|
|
112
|
+
expect(relatedScore).toBeGreaterThanOrEqual(0);
|
|
113
|
+
expect(relatedScore).toBeLessThanOrEqual(1);
|
|
114
|
+
expect(unrelatedScore).toBeGreaterThanOrEqual(0);
|
|
115
|
+
expect(unrelatedScore).toBeLessThanOrEqual(1);
|
|
116
|
+
expect(relatedScore).toBeGreaterThan(unrelatedScore);
|
|
117
|
+
} catch (error) {
|
|
118
|
+
if (error instanceof A_Error) console.error('A_Error:', error.toJSON());
|
|
119
|
+
else console.error('Unexpected error:', error);
|
|
120
|
+
throw error;
|
|
121
|
+
}
|
|
122
|
+
});
|
|
123
|
+
|
|
124
|
+
});
|
|
125
|
+
|
|
126
|
+
});
|