@adaas/a-frame 0.0.21 → 0.0.23
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.conf/tsconfig.browser.json +13 -0
- package/.conf/tsconfig.node.json +14 -0
- package/.env.example +12 -0
- package/dist/browser/A-FrameBrowserStorageBlobs.context-OEQr85oq.d.mts +40 -0
- package/dist/browser/A-FrameBundle.types-DaaUvViw.d.mts +33 -0
- package/dist/browser/A-FrameChannel.types-DWOEUs28.d.mts +142 -0
- package/dist/browser/A-FrameDefinition.entity-DWGN_Ujr.d.mts +329 -0
- package/dist/browser/A-FrameDynamicStructure.entity-DaBgSRCR.d.mts +188 -0
- package/dist/browser/A-FrameLogger.component.env-browser-BIPAP4oQ.d.mts +112 -0
- package/dist/browser/A-FrameNamespace.entity-rCm1AavP.d.mts +125 -0
- package/dist/browser/bundle.d.mts +8 -0
- package/dist/browser/bundle.mjs +2 -0
- package/dist/browser/bundle.mjs.map +1 -0
- package/dist/browser/channel.d.mts +165 -0
- package/dist/browser/channel.mjs +3 -0
- package/dist/browser/channel.mjs.map +1 -0
- package/dist/browser/chunk-5TTVFB3G.mjs +2 -0
- package/dist/browser/chunk-5TTVFB3G.mjs.map +1 -0
- package/dist/browser/chunk-AYN7KUQT.mjs +3 -0
- package/dist/browser/chunk-AYN7KUQT.mjs.map +1 -0
- package/dist/browser/chunk-DMGQW3AO.mjs +2 -0
- package/dist/browser/chunk-DMGQW3AO.mjs.map +1 -0
- package/dist/browser/chunk-G66IL2DR.mjs +2 -0
- package/dist/browser/chunk-G66IL2DR.mjs.map +1 -0
- package/dist/browser/chunk-H6OZP4ZV.mjs +2 -0
- package/dist/browser/chunk-H6OZP4ZV.mjs.map +1 -0
- package/dist/browser/chunk-INS7RO3B.mjs +2 -0
- package/dist/browser/chunk-INS7RO3B.mjs.map +1 -0
- package/dist/browser/chunk-K4MZY4ME.mjs +2 -0
- package/dist/browser/chunk-K4MZY4ME.mjs.map +1 -0
- package/dist/browser/chunk-OFKV5GNB.mjs +3 -0
- package/dist/browser/chunk-OFKV5GNB.mjs.map +1 -0
- package/dist/browser/chunk-QATIN7CO.mjs +3 -0
- package/dist/browser/chunk-QATIN7CO.mjs.map +1 -0
- package/dist/browser/chunk-QBBQ37P3.mjs +2 -0
- package/dist/browser/chunk-QBBQ37P3.mjs.map +1 -0
- package/dist/browser/chunk-VDVJWU5T.mjs +2 -0
- package/dist/browser/chunk-VDVJWU5T.mjs.map +1 -0
- package/dist/browser/chunk-X3C4I6YJ.mjs +2 -0
- package/dist/browser/chunk-X3C4I6YJ.mjs.map +1 -0
- package/dist/browser/chunk-ZVCTU2DN.mjs +3 -0
- package/dist/browser/chunk-ZVCTU2DN.mjs.map +1 -0
- package/dist/browser/core.d.mts +97 -0
- package/dist/browser/core.mjs +2 -0
- package/dist/browser/core.mjs.map +1 -0
- package/dist/browser/crypto.d.mts +35 -0
- package/dist/browser/crypto.mjs +2 -0
- package/dist/browser/crypto.mjs.map +1 -0
- package/dist/browser/definition.d.mts +13 -0
- package/dist/browser/definition.mjs +2 -0
- package/dist/browser/definition.mjs.map +1 -0
- package/dist/browser/dynamic-feature.d.mts +10 -0
- package/dist/browser/dynamic-feature.mjs +2 -0
- package/dist/browser/dynamic-feature.mjs.map +1 -0
- package/dist/browser/dynamic-structure.d.mts +12 -0
- package/dist/browser/dynamic-structure.mjs +2 -0
- package/dist/browser/dynamic-structure.mjs.map +1 -0
- package/dist/browser/env.d.mts +2 -0
- package/dist/browser/env.mjs +2 -0
- package/dist/browser/env.mjs.map +1 -0
- package/dist/browser/frame-index.d.mts +95 -0
- package/dist/browser/frame-index.mjs +2 -0
- package/dist/browser/frame-index.mjs.map +1 -0
- package/dist/browser/index.browser-CZlhzfSP.d.mts +22 -0
- package/dist/browser/index.d.mts +1 -144
- package/dist/browser/index.mjs +1 -1
- package/dist/browser/index.mjs.map +1 -1
- package/dist/browser/logger.d.mts +41 -0
- package/dist/browser/logger.mjs +2 -0
- package/dist/browser/logger.mjs.map +1 -0
- package/dist/browser/namespace.d.mts +13 -0
- package/dist/browser/namespace.mjs +2 -0
- package/dist/browser/namespace.mjs.map +1 -0
- package/dist/browser/storage.d.mts +194 -0
- package/dist/browser/storage.mjs +2 -0
- package/dist/browser/storage.mjs.map +1 -0
- package/dist/browser/vector.d.mts +15 -0
- package/dist/browser/vector.mjs +2 -0
- package/dist/browser/vector.mjs.map +1 -0
- package/dist/index.cjs +0 -0
- package/dist/node/A-FrameChannel.component-BfBcs734.d.ts +62 -0
- package/dist/node/A-FrameChannel.component-NNKcFViw.d.mts +62 -0
- package/dist/node/A-FrameChannel.types-DQF-IiRq.d.mts +146 -0
- package/dist/node/A-FrameChannel.types-DQF-IiRq.d.ts +146 -0
- package/dist/node/A-FrameDefinition.entity-CAUOdEvU.d.ts +329 -0
- package/dist/node/A-FrameDefinition.entity-DWGN_Ujr.d.mts +329 -0
- package/dist/node/A-FrameDynamicStructure.entity-DaBgSRCR.d.mts +188 -0
- package/dist/node/A-FrameDynamicStructure.entity-DaBgSRCR.d.ts +188 -0
- package/dist/node/A-FrameNamespace.entity-D3fZBGDx.d.ts +125 -0
- package/dist/node/A-FrameNamespace.entity-rCm1AavP.d.mts +125 -0
- package/dist/node/A-FrameStorage.component-BYjHfHJJ.d.mts +107 -0
- package/dist/node/A-FrameStorage.component-CT01fs-t.d.ts +107 -0
- package/dist/node/bundle.cjs +101 -0
- package/dist/node/bundle.cjs.map +1 -0
- package/dist/node/bundle.d.mts +69 -0
- package/dist/node/bundle.d.ts +69 -0
- package/dist/node/bundle.mjs +76 -0
- package/dist/node/bundle.mjs.map +1 -0
- package/dist/node/channel.cjs +60 -0
- package/dist/node/channel.cjs.map +1 -0
- package/dist/node/channel.d.mts +61 -0
- package/dist/node/channel.d.ts +61 -0
- package/dist/node/channel.mjs +11 -0
- package/dist/node/channel.mjs.map +1 -0
- package/dist/node/chunk-3LOMGNWA.cjs +8 -0
- package/dist/node/chunk-3LOMGNWA.cjs.map +1 -0
- package/dist/node/chunk-3ONWH75E.mjs +257 -0
- package/dist/node/chunk-3ONWH75E.mjs.map +1 -0
- package/dist/node/chunk-3TD2PEDZ.mjs +53 -0
- package/dist/node/chunk-3TD2PEDZ.mjs.map +1 -0
- package/dist/node/chunk-442DXGOD.mjs +16 -0
- package/dist/node/chunk-442DXGOD.mjs.map +1 -0
- package/dist/node/chunk-6EFXNUL4.mjs +6 -0
- package/dist/node/chunk-6EFXNUL4.mjs.map +1 -0
- package/dist/node/chunk-7A6XGT5J.cjs +541 -0
- package/dist/node/chunk-7A6XGT5J.cjs.map +1 -0
- package/dist/node/chunk-AOQRXZPC.mjs +207 -0
- package/dist/node/chunk-AOQRXZPC.mjs.map +1 -0
- package/dist/node/chunk-APRYHBEF.mjs +171 -0
- package/dist/node/chunk-APRYHBEF.mjs.map +1 -0
- package/dist/node/chunk-B7BXP7K4.mjs +253 -0
- package/dist/node/chunk-B7BXP7K4.mjs.map +1 -0
- package/dist/node/chunk-B7ZDJXD3.cjs +35 -0
- package/dist/node/chunk-B7ZDJXD3.cjs.map +1 -0
- package/dist/node/chunk-CP6JHUU6.cjs +541 -0
- package/dist/node/chunk-CP6JHUU6.cjs.map +1 -0
- package/dist/node/chunk-DDCEMKBP.mjs +655 -0
- package/dist/node/chunk-DDCEMKBP.mjs.map +1 -0
- package/dist/node/chunk-DMY44VUG.mjs +655 -0
- package/dist/node/chunk-DMY44VUG.mjs.map +1 -0
- package/dist/node/chunk-F4UCOZW5.mjs +33 -0
- package/dist/node/chunk-F4UCOZW5.mjs.map +1 -0
- package/dist/node/chunk-GBTFMT3K.cjs +256 -0
- package/dist/node/chunk-GBTFMT3K.cjs.map +1 -0
- package/dist/node/chunk-GNVXVK2B.cjs +8 -0
- package/dist/node/chunk-GNVXVK2B.cjs.map +1 -0
- package/dist/node/chunk-IIVYTS5M.mjs +239 -0
- package/dist/node/chunk-IIVYTS5M.mjs.map +1 -0
- package/dist/node/chunk-JQBYDEMW.mjs +33 -0
- package/dist/node/chunk-JQBYDEMW.mjs.map +1 -0
- package/dist/node/chunk-K4MZY4ME.mjs +3 -0
- package/dist/node/chunk-K4MZY4ME.mjs.map +1 -0
- package/dist/node/chunk-KK64VLZN.cjs +4 -0
- package/dist/node/chunk-KK64VLZN.cjs.map +1 -0
- package/dist/node/chunk-KLG6HKFU.cjs +175 -0
- package/dist/node/chunk-KLG6HKFU.cjs.map +1 -0
- package/dist/node/chunk-LJIZ47HO.cjs +688 -0
- package/dist/node/chunk-LJIZ47HO.cjs.map +1 -0
- package/dist/node/chunk-NIXKAQVP.cjs +35 -0
- package/dist/node/chunk-NIXKAQVP.cjs.map +1 -0
- package/dist/node/chunk-OI76LHVT.mjs +21 -0
- package/dist/node/chunk-OI76LHVT.mjs.map +1 -0
- package/dist/node/chunk-OJGCQNAH.mjs +529 -0
- package/dist/node/chunk-OJGCQNAH.mjs.map +1 -0
- package/dist/node/chunk-QFHZIG7Y.cjs +25 -0
- package/dist/node/chunk-QFHZIG7Y.cjs.map +1 -0
- package/dist/node/chunk-QFUZVN4Y.cjs +259 -0
- package/dist/node/chunk-QFUZVN4Y.cjs.map +1 -0
- package/dist/node/chunk-RRLTGGM7.cjs +209 -0
- package/dist/node/chunk-RRLTGGM7.cjs.map +1 -0
- package/dist/node/chunk-TO4BPKCY.mjs +6 -0
- package/dist/node/chunk-TO4BPKCY.mjs.map +1 -0
- package/dist/node/chunk-UKKCN7CQ.cjs +688 -0
- package/dist/node/chunk-UKKCN7CQ.cjs.map +1 -0
- package/dist/node/chunk-UPA7VN4R.mjs +153 -0
- package/dist/node/chunk-UPA7VN4R.mjs.map +1 -0
- package/dist/node/chunk-UTJ7CVVB.cjs +248 -0
- package/dist/node/chunk-UTJ7CVVB.cjs.map +1 -0
- package/dist/node/chunk-YVX4W6SI.cjs +155 -0
- package/dist/node/chunk-YVX4W6SI.cjs.map +1 -0
- package/dist/node/chunk-YWWGJ6EJ.cjs +55 -0
- package/dist/node/chunk-YWWGJ6EJ.cjs.map +1 -0
- package/dist/node/chunk-Z4HUCRK2.mjs +529 -0
- package/dist/node/chunk-Z4HUCRK2.mjs.map +1 -0
- package/dist/node/chunk-ZM2RLVVH.cjs +18 -0
- package/dist/node/chunk-ZM2RLVVH.cjs.map +1 -0
- package/dist/node/core.cjs +261 -0
- package/dist/node/core.cjs.map +1 -0
- package/dist/node/core.d.mts +76 -0
- package/dist/node/core.d.ts +76 -0
- package/dist/node/core.mjs +250 -0
- package/dist/node/core.mjs.map +1 -0
- package/dist/node/crypto.cjs +13 -0
- package/dist/node/crypto.cjs.map +1 -0
- package/dist/node/crypto.d.mts +44 -0
- package/dist/node/crypto.d.ts +44 -0
- package/dist/node/crypto.mjs +4 -0
- package/dist/node/crypto.mjs.map +1 -0
- package/dist/node/definition.cjs +19 -0
- package/dist/node/definition.cjs.map +1 -0
- package/dist/node/definition.d.mts +13 -0
- package/dist/node/definition.d.ts +13 -0
- package/dist/node/definition.mjs +6 -0
- package/dist/node/definition.mjs.map +1 -0
- package/dist/node/dynamic-feature.cjs +14 -0
- package/dist/node/dynamic-feature.cjs.map +1 -0
- package/dist/node/dynamic-feature.d.mts +10 -0
- package/dist/node/dynamic-feature.d.ts +10 -0
- package/dist/node/dynamic-feature.mjs +12 -0
- package/dist/node/dynamic-feature.mjs.map +1 -0
- package/dist/node/dynamic-structure.cjs +143 -0
- package/dist/node/dynamic-structure.cjs.map +1 -0
- package/dist/node/dynamic-structure.d.mts +12 -0
- package/dist/node/dynamic-structure.d.ts +12 -0
- package/dist/node/dynamic-structure.mjs +138 -0
- package/dist/node/dynamic-structure.mjs.map +1 -0
- package/dist/node/env.cjs +14 -0
- package/dist/node/env.cjs.map +1 -0
- package/dist/node/env.d.mts +22 -0
- package/dist/node/env.d.ts +22 -0
- package/dist/node/env.mjs +5 -0
- package/dist/node/env.mjs.map +1 -0
- package/dist/node/frame-index.cjs +16 -0
- package/dist/node/frame-index.cjs.map +1 -0
- package/dist/node/frame-index.d.mts +95 -0
- package/dist/node/frame-index.d.ts +95 -0
- package/dist/node/frame-index.mjs +7 -0
- package/dist/node/frame-index.mjs.map +1 -0
- package/dist/node/index.cjs +0 -288
- package/dist/node/index.cjs.map +1 -1
- package/dist/node/index.d.mts +1 -144
- package/dist/node/index.d.ts +1 -144
- package/dist/node/index.mjs +0 -284
- package/dist/node/index.mjs.map +1 -1
- package/dist/node/logger.cjs +41 -0
- package/dist/node/logger.cjs.map +1 -0
- package/dist/node/logger.d.mts +150 -0
- package/dist/node/logger.d.ts +150 -0
- package/dist/node/logger.mjs +4 -0
- package/dist/node/logger.mjs.map +1 -0
- package/dist/node/namespace.cjs +24 -0
- package/dist/node/namespace.cjs.map +1 -0
- package/dist/node/namespace.d.mts +13 -0
- package/dist/node/namespace.d.ts +13 -0
- package/dist/node/namespace.mjs +7 -0
- package/dist/node/namespace.mjs.map +1 -0
- package/dist/node/storage.cjs +42 -0
- package/dist/node/storage.cjs.map +1 -0
- package/dist/node/storage.d.mts +110 -0
- package/dist/node/storage.d.ts +110 -0
- package/dist/node/storage.mjs +13 -0
- package/dist/node/storage.mjs.map +1 -0
- package/dist/node/vector.cjs +13 -0
- package/dist/node/vector.cjs.map +1 -0
- package/dist/node/vector.d.mts +15 -0
- package/dist/node/vector.d.ts +15 -0
- package/dist/node/vector.mjs +4 -0
- package/dist/node/vector.mjs.map +1 -0
- package/jest.config.browser.ts +41 -0
- package/jest.config.ts +18 -8
- package/package.json +125 -13
- package/{index.ts → src/concept.ts} +5 -2
- package/src/helpers/Hash.helper.ts +14 -0
- package/src/index.ts +0 -24
- package/src/lib/A-Frame/A-Frame.component.env-browser.ts +124 -0
- package/src/lib/A-Frame/A-Frame.component.env-node.ts +106 -0
- package/src/lib/A-Frame/A-Frame.component.ts +62 -0
- package/src/lib/A-Frame/A-Frame.context.ts +40 -0
- package/src/lib/{components/Index.component.ts/Index.error.ts → A-Frame/A-Frame.error.ts} +1 -1
- package/src/lib/{components/Index.component.ts/Index.guard.ts → A-Frame/A-Frame.guard.ts} +9 -6
- package/src/lib/A-Frame/A-Frame.meta.ts +27 -0
- package/src/lib/{components/Index.component.ts/Index.types.ts → A-Frame/A-Frame.types.ts} +52 -17
- package/src/lib/A-Frame/decorators/A-FrameDefine.decorator.ts +104 -0
- package/src/lib/A-Frame/decorators/A-FrameNamespace.decorator.ts +33 -0
- package/src/lib/A-Frame/index.browser.ts +10 -0
- package/src/lib/A-Frame/index.ts +10 -0
- package/src/lib/A-FrameBundle/A-FrameBundle.builder.env-node.ts +95 -0
- package/src/lib/A-FrameBundle/A-FrameBundle.constants.ts +5 -0
- package/src/lib/A-FrameBundle/A-FrameBundle.types.ts +31 -0
- package/src/lib/A-FrameBundle/index.browser.ts +6 -0
- package/src/lib/A-FrameBundle/index.ts +7 -0
- package/src/lib/A-FrameCLI/A-FrameCLI.container.ts +333 -0
- package/src/lib/A-FrameChannel/A-FrameChannel.component.env-browser.ts +63 -0
- package/src/lib/A-FrameChannel/A-FrameChannel.component.env-node.ts +586 -0
- package/src/lib/A-FrameChannel/A-FrameChannel.component.ts +273 -0
- package/src/lib/A-FrameChannel/A-FrameChannel.constants.ts +39 -0
- package/src/lib/A-FrameChannel/A-FrameChannel.error.ts +10 -0
- package/src/lib/A-FrameChannel/A-FrameChannel.types.ts +143 -0
- package/src/lib/A-FrameChannel/A-FrameChannelEvent.context.ts +28 -0
- package/src/lib/A-FrameChannel/A-FrameChannelRequest.context.ts +36 -0
- package/src/lib/A-FrameChannel/A-FrameChannelSocket.entity.ts +189 -0
- package/src/lib/A-FrameChannel/A-FrameChannelStream.entity.ts +144 -0
- package/src/lib/A-FrameChannel/index.browser.ts +3 -0
- package/src/lib/A-FrameChannel/index.ts +10 -0
- package/src/lib/A-FrameCrypto/A-FrameCrypto.component.env-browser.ts +123 -0
- package/src/lib/A-FrameCrypto/A-FrameCrypto.component.env-node.ts +204 -0
- package/src/lib/A-FrameCrypto/index.browser.ts +1 -0
- package/src/lib/A-FrameCrypto/index.ts +1 -0
- package/src/lib/A-FrameDefinition/A-FrameDefinition.constants.ts +8 -0
- package/src/lib/A-FrameDefinition/A-FrameDefinition.entity.ts +290 -0
- package/src/lib/A-FrameDefinition/A-FrameDefinition.types.ts +109 -0
- package/src/lib/A-FrameDefinition/index.ts +3 -0
- package/src/lib/A-FrameDynamicFeature/A-FrameDynamicFeature.entity.ts +13 -0
- package/src/lib/A-FrameDynamicFeature/A-FrameDynamicFeature.types.ts +10 -0
- package/src/lib/A-FrameDynamicFeature/index.ts +2 -0
- package/src/lib/A-FrameDynamicPatch/A-FrameDynamicPatch.entity.ts +38 -0
- package/src/lib/A-FrameDynamicPatch/A-FrameDynamicPatch.types.ts +20 -0
- package/src/lib/A-FrameDynamicSession/A-FrameDynamicSession.constants.ts +9 -0
- package/src/lib/A-FrameDynamicSession/A-FrameDynamicSession.entity.ts +91 -0
- package/src/lib/A-FrameDynamicSession/A-FrameDynamicSession.types.ts +18 -0
- package/src/lib/A-FrameDynamicStructure/A-FrameDynamicStructure.constants.ts +13 -0
- package/src/lib/A-FrameDynamicStructure/A-FrameDynamicStructure.entity.ts +187 -0
- package/src/lib/A-FrameDynamicStructure/A-FrameDynamicStructure.error.ts +13 -0
- package/src/lib/A-FrameDynamicStructure/A-FrameDynamicStructure.types.ts +128 -0
- package/src/lib/A-FrameDynamicStructure/A-FrameDynamicStructureOperation.context.ts +32 -0
- package/src/lib/A-FrameDynamicStructure/index.ts +5 -0
- package/src/lib/A-FrameEnv/A-FrameEnv.fragment.env-browser.ts +31 -0
- package/src/lib/A-FrameEnv/A-FrameEnv.fragment.env-node.ts +39 -0
- package/src/lib/A-FrameEnv/A-FrameEnv.types.ts +7 -0
- package/src/lib/A-FrameEnv/index.browser.ts +1 -0
- package/src/lib/A-FrameEnv/index.ts +1 -0
- package/src/lib/A-FrameIndex/A-FrameIndex.context.ts +321 -0
- package/src/lib/A-FrameIndex/A-FrameIndex.types.ts +63 -0
- package/src/lib/A-FrameIndex/index.browser.ts +3 -0
- package/src/lib/A-FrameIndex/index.ts +3 -0
- package/src/lib/A-FrameLogger/A-FrameLogger.component.env-browser.ts +99 -0
- package/src/lib/A-FrameLogger/A-FrameLogger.component.env-node.ts +129 -0
- package/src/lib/A-FrameLogger/A-FrameLogger.component.ts +123 -0
- package/src/lib/A-FrameLogger/A-FrameLogger.constants.ts +66 -0
- package/src/lib/A-FrameLogger/A-FrameLogger.types.ts +67 -0
- package/src/lib/A-FrameLogger/index.browser.ts +4 -0
- package/src/lib/A-FrameLogger/index.ts +4 -0
- package/src/lib/A-FrameNamespace/A-FrameNamespace.constants.ts +12 -0
- package/src/lib/A-FrameNamespace/A-FrameNamespace.entity.ts +211 -0
- package/src/lib/A-FrameNamespace/A-FrameNamespace.types.ts +72 -0
- package/src/lib/A-FrameNamespace/index.ts +3 -0
- package/src/lib/A-FrameStorage/A-FrameStorage.codec.ts +338 -0
- package/src/lib/A-FrameStorage/A-FrameStorage.component.ts +191 -0
- package/src/lib/A-FrameStorage/A-FrameStorage.constants.ts +11 -0
- package/src/lib/A-FrameStorage/A-FrameStorage.error.ts +13 -0
- package/src/lib/A-FrameStorage/A-FrameStorage.types.ts +98 -0
- package/src/lib/A-FrameStorage/A-FrameStorageOperation.context.ts +59 -0
- package/src/lib/A-FrameStorage/browser/A-FrameBrowserStorage.component.ts +312 -0
- package/src/lib/A-FrameStorage/browser/A-FrameBrowserStorageBlobs.context.ts +77 -0
- package/src/lib/A-FrameStorage/index.browser.ts +11 -0
- package/src/lib/A-FrameStorage/index.ts +10 -0
- package/src/lib/A-FrameStorage/node/A-FrameNodeStorage.component.ts +464 -0
- package/src/lib/A-FrameStorage/server/A-FrameServerStorage.component.ts +177 -0
- package/src/lib/{entities/A_FrameVector/A_FrameVector.entity.ts → A-FrameVector/A-FrameVector.entity.ts} +10 -0
- package/src/lib/A-FrameVector/index.ts +3 -0
- package/tests/A-Frame.browser.test.ts +94 -0
- package/tests/A-Frame.test.ts +73 -68
- package/tests/jest.browser-environment.js +30 -0
- package/tests/jest.polyfills.browser.ts +13 -0
- package/tests/jest.setup.browser.ts +33 -0
- package/tsconfig.browser.json +54 -0
- package/tsconfig.json +16 -0
- package/tsup.config.ts +32 -2
- package/src/lib/components/Builder.component.ts/Builder.component.ts +0 -0
- package/src/lib/components/Index.component.ts/Index.component.ts +0 -79
- package/src/lib/components/Index.component.ts/Index.constants.ts +0 -0
- package/src/lib/components/Index.component.ts/Index.meta.ts +0 -28
- package/src/lib/components/Index.component.ts/IndexConfigurations.meta.ts +0 -78
- package/src/lib/components/Index.component.ts/decorators/IndexComponent.decorator.ts +0 -97
- package/src/lib/components/Index.component.ts/decorators/IndexDescribe.decorator.ts +0 -59
- package/src/lib/components/Index.component.ts/decorators/IndexNamespace.decorator.ts +0 -57
- package/src/lib/components/Search/A_FrameSearch.component.ts +0 -66
- package/src/lib/containers/CLI.container.ts +0 -27
- package/src/lib/entities/Namespace/Namespace.entity.ts +0 -8
|
@@ -0,0 +1,239 @@
|
|
|
1
|
+
import { A_Component } from '@adaas/a-concept';
|
|
2
|
+
|
|
3
|
+
// src/lib/A-FrameLogger/A-FrameLogger.constants.ts
|
|
4
|
+
var A_FrameLogLevel = {
|
|
5
|
+
Debug: "debug",
|
|
6
|
+
Info: "info",
|
|
7
|
+
Success: "success",
|
|
8
|
+
Warn: "warn",
|
|
9
|
+
Error: "error"
|
|
10
|
+
};
|
|
11
|
+
var A_FRAME_LOG_LEVEL_PRIORITY = {
|
|
12
|
+
debug: 10,
|
|
13
|
+
info: 20,
|
|
14
|
+
success: 20,
|
|
15
|
+
warn: 30,
|
|
16
|
+
error: 40
|
|
17
|
+
};
|
|
18
|
+
var A_FrameLogIcon = {
|
|
19
|
+
debug: "\xB7",
|
|
20
|
+
info: "\u2139",
|
|
21
|
+
success: "\u2714",
|
|
22
|
+
warn: "\u26A0",
|
|
23
|
+
error: "\u2716"
|
|
24
|
+
};
|
|
25
|
+
var A_FRAME_ANSI = {
|
|
26
|
+
reset: "\x1B[0m",
|
|
27
|
+
bold: "\x1B[1m",
|
|
28
|
+
dim: "\x1B[2m",
|
|
29
|
+
gray: "\x1B[90m",
|
|
30
|
+
red: "\x1B[31m",
|
|
31
|
+
green: "\x1B[32m",
|
|
32
|
+
yellow: "\x1B[33m",
|
|
33
|
+
blue: "\x1B[34m",
|
|
34
|
+
cyan: "\x1B[36m"
|
|
35
|
+
};
|
|
36
|
+
var A_FRAME_BROWSER_CSS = {
|
|
37
|
+
debug: "color: #888;",
|
|
38
|
+
info: "color: #06b;",
|
|
39
|
+
success: "color: #2a7; font-weight: bold;",
|
|
40
|
+
warn: "color: #c80;",
|
|
41
|
+
error: "color: #c33; font-weight: bold;"
|
|
42
|
+
};
|
|
43
|
+
var A_FRAME_LOG_DEFAULTS = {
|
|
44
|
+
progressBarWidth: 24,
|
|
45
|
+
summaryTitle: "Summary",
|
|
46
|
+
/** Update progress at most this often (ms) for non-TTY/browser output. */
|
|
47
|
+
progressThrottleMs: 250
|
|
48
|
+
};
|
|
49
|
+
var A_FrameLoggerBase = class extends A_Component {
|
|
50
|
+
constructor(config = {}) {
|
|
51
|
+
super();
|
|
52
|
+
this.counters = /* @__PURE__ */ new Map();
|
|
53
|
+
this.startTime = Date.now();
|
|
54
|
+
this.level = config.level ?? "debug";
|
|
55
|
+
this.prefix = config.prefix ?? "";
|
|
56
|
+
}
|
|
57
|
+
// ─── Configuration ───────────────────────────────────────────────────────
|
|
58
|
+
setLevel(level) {
|
|
59
|
+
this.level = level;
|
|
60
|
+
}
|
|
61
|
+
/** Returns true when the entry passes the current level filter. */
|
|
62
|
+
shouldEmit(level) {
|
|
63
|
+
return A_FRAME_LOG_LEVEL_PRIORITY[level] >= A_FRAME_LOG_LEVEL_PRIORITY[this.level];
|
|
64
|
+
}
|
|
65
|
+
// ─── Level methods (shared) ──────────────────────────────────────────────
|
|
66
|
+
emit(level, message, metadata) {
|
|
67
|
+
if (!this.shouldEmit(level)) return;
|
|
68
|
+
this.write({
|
|
69
|
+
level,
|
|
70
|
+
message: this.prefix ? `${this.prefix} ${message}` : message,
|
|
71
|
+
timestamp: Date.now(),
|
|
72
|
+
metadata
|
|
73
|
+
});
|
|
74
|
+
}
|
|
75
|
+
debug(msg, meta) {
|
|
76
|
+
this.emit("debug", msg, meta);
|
|
77
|
+
}
|
|
78
|
+
info(msg, meta) {
|
|
79
|
+
this.emit("info", msg, meta);
|
|
80
|
+
}
|
|
81
|
+
success(msg, meta) {
|
|
82
|
+
this.emit("success", msg, meta);
|
|
83
|
+
}
|
|
84
|
+
warn(msg, meta) {
|
|
85
|
+
this.emit("warn", msg, meta);
|
|
86
|
+
}
|
|
87
|
+
error(msg, meta) {
|
|
88
|
+
this.emit("error", msg, meta);
|
|
89
|
+
}
|
|
90
|
+
/** Default implementation that subclasses may override for nicer headings. */
|
|
91
|
+
section(title) {
|
|
92
|
+
this.info(`\u2500\u2500 ${title} \u2500\u2500`);
|
|
93
|
+
}
|
|
94
|
+
divider() {
|
|
95
|
+
this.info("\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500");
|
|
96
|
+
}
|
|
97
|
+
// ─── Counters / timing ───────────────────────────────────────────────────
|
|
98
|
+
increment(key, by = 1) {
|
|
99
|
+
this.counters.set(key, (this.counters.get(key) ?? 0) + by);
|
|
100
|
+
}
|
|
101
|
+
set(key, value) {
|
|
102
|
+
this.counters.set(key, value);
|
|
103
|
+
}
|
|
104
|
+
get(key) {
|
|
105
|
+
return this.counters.get(key) ?? 0;
|
|
106
|
+
}
|
|
107
|
+
resetTimer() {
|
|
108
|
+
this.startTime = Date.now();
|
|
109
|
+
this.counters.clear();
|
|
110
|
+
}
|
|
111
|
+
elapsed() {
|
|
112
|
+
const ms = Date.now() - this.startTime;
|
|
113
|
+
if (ms < 1e3) return `${ms}ms`;
|
|
114
|
+
const s = ms / 1e3;
|
|
115
|
+
if (s < 60) return `${s.toFixed(2)}s`;
|
|
116
|
+
const m = Math.floor(s / 60);
|
|
117
|
+
return `${m}m ${(s - m * 60).toFixed(1)}s`;
|
|
118
|
+
}
|
|
119
|
+
/**
|
|
120
|
+
* Print a left-aligned table of all counters plus elapsed time.
|
|
121
|
+
* Concrete subclasses can override for richer rendering.
|
|
122
|
+
*/
|
|
123
|
+
summary(title = A_FRAME_LOG_DEFAULTS.summaryTitle) {
|
|
124
|
+
this.section(title);
|
|
125
|
+
const keys = [...this.counters.keys()];
|
|
126
|
+
const pad = keys.reduce((m, k) => Math.max(m, k.length), "elapsed".length);
|
|
127
|
+
for (const key of keys) {
|
|
128
|
+
this.info(` ${key.padEnd(pad)} ${this.counters.get(key)}`);
|
|
129
|
+
}
|
|
130
|
+
this.info(` ${"elapsed".padEnd(pad)} ${this.elapsed()}`);
|
|
131
|
+
this.divider();
|
|
132
|
+
}
|
|
133
|
+
};
|
|
134
|
+
|
|
135
|
+
// src/lib/A-FrameLogger/A-FrameLogger.component.env-node.ts
|
|
136
|
+
var ICON_COLOR = {
|
|
137
|
+
debug: A_FRAME_ANSI.gray,
|
|
138
|
+
info: A_FRAME_ANSI.cyan,
|
|
139
|
+
success: A_FRAME_ANSI.green,
|
|
140
|
+
warn: A_FRAME_ANSI.yellow,
|
|
141
|
+
error: A_FRAME_ANSI.red
|
|
142
|
+
};
|
|
143
|
+
var A_FrameLogger = class extends A_FrameLoggerBase {
|
|
144
|
+
constructor(config = {}) {
|
|
145
|
+
super(config);
|
|
146
|
+
this.useColor = config.color ?? !!(process.stdout && process.stdout.isTTY);
|
|
147
|
+
}
|
|
148
|
+
c(code, str) {
|
|
149
|
+
return this.useColor ? `${code}${str}${A_FRAME_ANSI.reset}` : str;
|
|
150
|
+
}
|
|
151
|
+
write(entry) {
|
|
152
|
+
const icon = this.c(ICON_COLOR[entry.level], A_FrameLogIcon[entry.level]);
|
|
153
|
+
const line = `${icon} ${entry.message}`;
|
|
154
|
+
if (entry.level === "error") console.error(line);
|
|
155
|
+
else if (entry.level === "warn") console.warn(line);
|
|
156
|
+
else console.log(line);
|
|
157
|
+
if (entry.metadata && Object.keys(entry.metadata).length > 0) {
|
|
158
|
+
console.log(this.c(A_FRAME_ANSI.gray, ` ${JSON.stringify(entry.metadata)}`));
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
section(title) {
|
|
162
|
+
const line = "\u2500".repeat(Math.max(2, 60 - title.length - 4));
|
|
163
|
+
const heading = `\u2504 ${title} ${line}`;
|
|
164
|
+
console.log("\n" + this.c(A_FRAME_ANSI.bold + A_FRAME_ANSI.cyan, heading));
|
|
165
|
+
}
|
|
166
|
+
divider() {
|
|
167
|
+
console.log(this.c(A_FRAME_ANSI.gray, "\u2500".repeat(60)));
|
|
168
|
+
}
|
|
169
|
+
summary(title = A_FRAME_LOG_DEFAULTS.summaryTitle) {
|
|
170
|
+
this.section(title);
|
|
171
|
+
const keys = [...this.counters.keys()];
|
|
172
|
+
const pad = keys.reduce((m, k) => Math.max(m, k.length), "elapsed".length);
|
|
173
|
+
for (const key of keys) {
|
|
174
|
+
console.log(` ${this.c(A_FRAME_ANSI.gray, key.padEnd(pad))} ${this.c(A_FRAME_ANSI.bold, String(this.counters.get(key)))}`);
|
|
175
|
+
}
|
|
176
|
+
console.log(` ${this.c(A_FRAME_ANSI.gray, "elapsed".padEnd(pad))} ${this.c(A_FRAME_ANSI.bold, this.elapsed())}`);
|
|
177
|
+
this.divider();
|
|
178
|
+
}
|
|
179
|
+
// ─── Progress bar ────────────────────────────────────────────────────────
|
|
180
|
+
progress(label, total) {
|
|
181
|
+
const isTTY = this.useColor;
|
|
182
|
+
const width = A_FRAME_LOG_DEFAULTS.progressBarWidth;
|
|
183
|
+
const start = Date.now();
|
|
184
|
+
let current = 0;
|
|
185
|
+
let lastLabel = "";
|
|
186
|
+
const render = (status) => {
|
|
187
|
+
if (total === 0) {
|
|
188
|
+
if (status === "done") console.log(`${this.c(A_FRAME_ANSI.green, "\u2714")} ${label} (0/0)`);
|
|
189
|
+
return;
|
|
190
|
+
}
|
|
191
|
+
const pct = Math.min(1, current / total);
|
|
192
|
+
const filled = Math.round(pct * width);
|
|
193
|
+
if (isTTY) {
|
|
194
|
+
const bar = this.c(A_FRAME_ANSI.green, "\u2588".repeat(filled)) + this.c(A_FRAME_ANSI.gray, "\u2591".repeat(width - filled));
|
|
195
|
+
const head = status === "done" ? this.c(A_FRAME_ANSI.green, "\u2714") : status === "fail" ? this.c(A_FRAME_ANSI.red, "\u2716") : this.c(A_FRAME_ANSI.cyan, "\u27F3");
|
|
196
|
+
const tail = lastLabel ? this.c(A_FRAME_ANSI.dim, ` \u2014 ${lastLabel}`) : "";
|
|
197
|
+
process.stdout.write(`\r\x1B[2K${head} ${label} ${bar} ${current}/${total} (${(pct * 100).toFixed(0)}%)${tail}`);
|
|
198
|
+
if (status) process.stdout.write("\n");
|
|
199
|
+
} else {
|
|
200
|
+
if (status === "done") {
|
|
201
|
+
console.log(`[${label}] done ${current}/${total} in ${((Date.now() - start) / 1e3).toFixed(2)}s`);
|
|
202
|
+
} else if (status === "fail") {
|
|
203
|
+
console.log(`[${label}] FAILED at ${current}/${total}`);
|
|
204
|
+
} else {
|
|
205
|
+
const step = Math.max(1, Math.floor(total / 10));
|
|
206
|
+
if (current === total || current % step === 0) {
|
|
207
|
+
console.log(`[${label}] ${current}/${total}${lastLabel ? ` \u2014 ${lastLabel}` : ""}`);
|
|
208
|
+
}
|
|
209
|
+
}
|
|
210
|
+
}
|
|
211
|
+
};
|
|
212
|
+
render();
|
|
213
|
+
return {
|
|
214
|
+
tick: (l) => {
|
|
215
|
+
current = Math.min(total, current + 1);
|
|
216
|
+
if (l) lastLabel = l;
|
|
217
|
+
render();
|
|
218
|
+
},
|
|
219
|
+
succeed: (l) => {
|
|
220
|
+
if (l) lastLabel = l;
|
|
221
|
+
current = total;
|
|
222
|
+
render("done");
|
|
223
|
+
},
|
|
224
|
+
fail: (l) => {
|
|
225
|
+
if (l) lastLabel = l;
|
|
226
|
+
render("fail");
|
|
227
|
+
},
|
|
228
|
+
update: (n, l) => {
|
|
229
|
+
current = Math.min(total, Math.max(0, n));
|
|
230
|
+
if (l) lastLabel = l;
|
|
231
|
+
render();
|
|
232
|
+
}
|
|
233
|
+
};
|
|
234
|
+
}
|
|
235
|
+
};
|
|
236
|
+
|
|
237
|
+
export { A_FRAME_ANSI, A_FRAME_BROWSER_CSS, A_FRAME_LOG_DEFAULTS, A_FRAME_LOG_LEVEL_PRIORITY, A_FrameLogIcon, A_FrameLogLevel, A_FrameLogger, A_FrameLoggerBase };
|
|
238
|
+
//# sourceMappingURL=chunk-IIVYTS5M.mjs.map
|
|
239
|
+
//# sourceMappingURL=chunk-IIVYTS5M.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/lib/A-FrameLogger/A-FrameLogger.constants.ts","../../src/lib/A-FrameLogger/A-FrameLogger.component.ts","../../src/lib/A-FrameLogger/A-FrameLogger.component.env-node.ts"],"names":[],"mappings":"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","file":"chunk-IIVYTS5M.mjs","sourcesContent":["import { A_FrameLogLevelType } from \"./A-FrameLogger.types\";\n\n\nexport const A_FrameLogLevel = {\n Debug: 'debug',\n Info: 'info',\n Success: 'success',\n Warn: 'warn',\n Error: 'error',\n} as const satisfies Record<string, A_FrameLogLevelType>;\n\n\n/** Numeric priority used for level filtering. Higher = more severe. */\nexport const A_FRAME_LOG_LEVEL_PRIORITY: Record<A_FrameLogLevelType, number> = {\n debug: 10,\n info: 20,\n success: 20,\n warn: 30,\n error: 40,\n};\n\n\n/** Glyphs used as the leading symbol for each log level. */\nexport const A_FrameLogIcon: Record<A_FrameLogLevelType, string> = {\n debug: '·',\n info: 'ℹ',\n success: '✔',\n warn: '⚠',\n error: '✖',\n};\n\n\n/** ANSI escape sequences. Used by the Node implementation only. */\nexport const A_FRAME_ANSI = {\n reset: '\\x1b[0m',\n bold: '\\x1b[1m',\n dim: '\\x1b[2m',\n gray: '\\x1b[90m',\n red: '\\x1b[31m',\n green: '\\x1b[32m',\n yellow: '\\x1b[33m',\n blue: '\\x1b[34m',\n cyan: '\\x1b[36m',\n} as const;\n\n\n/**\n * Browser console CSS — used with `console.log('%c...', style)` for coloured\n * output in DevTools. Mirrors the ANSI palette by intent.\n */\nexport const A_FRAME_BROWSER_CSS: Record<A_FrameLogLevelType, string> = {\n debug: 'color: #888;',\n info: 'color: #06b;',\n success: 'color: #2a7; font-weight: bold;',\n warn: 'color: #c80;',\n error: 'color: #c33; font-weight: bold;',\n};\n\n\n/** Defaults applied when building a logger without explicit options. */\nexport const A_FRAME_LOG_DEFAULTS = {\n progressBarWidth: 24,\n summaryTitle: 'Summary',\n /** Update progress at most this often (ms) for non-TTY/browser output. */\n progressThrottleMs: 250,\n} as const;\n","import { A_Component } from \"@adaas/a-concept\";\nimport {\n A_FrameLogEntry,\n A_FrameLogLevelType,\n A_FrameLoggerConfig,\n A_FrameProgressBar,\n IA_FrameLogger,\n} from \"./A-FrameLogger.types\";\nimport {\n A_FRAME_LOG_LEVEL_PRIORITY,\n A_FRAME_LOG_DEFAULTS,\n} from \"./A-FrameLogger.constants\";\n\n\n/**\n * Abstract base for `A_FrameLogger` — environment-agnostic state and behaviour.\n *\n * Concrete subclasses (`A-FrameLogger.component.env-node` and\n * `A-FrameLogger.component.env-browser`) implement `write()` and `progress()`\n * since each runtime renders to a different surface (TTY vs DevTools console).\n */\nexport abstract class A_FrameLoggerBase extends A_Component implements IA_FrameLogger {\n\n protected level: A_FrameLogLevelType;\n protected prefix: string;\n protected counters: Map<string, number> = new Map();\n protected startTime: number = Date.now();\n\n constructor(config: A_FrameLoggerConfig = {}) {\n super();\n this.level = config.level ?? 'debug';\n this.prefix = config.prefix ?? '';\n }\n\n // ─── Subclass hooks ──────────────────────────────────────────────────────\n\n /** Render a fully-built log entry to the runtime-specific output. */\n protected abstract write(entry: A_FrameLogEntry): void;\n\n /** Create a runtime-specific progress bar. */\n abstract progress(label: string, total: number): A_FrameProgressBar;\n\n // ─── Configuration ───────────────────────────────────────────────────────\n\n setLevel(level: A_FrameLogLevelType): void {\n this.level = level;\n }\n\n /** Returns true when the entry passes the current level filter. */\n protected shouldEmit(level: A_FrameLogLevelType): boolean {\n return A_FRAME_LOG_LEVEL_PRIORITY[level] >= A_FRAME_LOG_LEVEL_PRIORITY[this.level];\n }\n\n // ─── Level methods (shared) ──────────────────────────────────────────────\n\n private emit(level: A_FrameLogLevelType, message: string, metadata?: Record<string, unknown>): void {\n if (!this.shouldEmit(level)) return;\n this.write({\n level,\n message: this.prefix ? `${this.prefix} ${message}` : message,\n timestamp: Date.now(),\n metadata,\n });\n }\n\n debug(msg: string, meta?: Record<string, unknown>): void { this.emit('debug', msg, meta); }\n info(msg: string, meta?: Record<string, unknown>): void { this.emit('info', msg, meta); }\n success(msg: string, meta?: Record<string, unknown>): void { this.emit('success', msg, meta); }\n warn(msg: string, meta?: Record<string, unknown>): void { this.emit('warn', msg, meta); }\n error(msg: string, meta?: Record<string, unknown>): void { this.emit('error', msg, meta); }\n\n /** Default implementation that subclasses may override for nicer headings. */\n section(title: string): void {\n this.info(`── ${title} ──`);\n }\n\n divider(): void {\n this.info('────────────────────────────────────────────────────────');\n }\n\n // ─── Counters / timing ───────────────────────────────────────────────────\n\n increment(key: string, by = 1): void {\n this.counters.set(key, (this.counters.get(key) ?? 0) + by);\n }\n\n set(key: string, value: number): void {\n this.counters.set(key, value);\n }\n\n get(key: string): number {\n return this.counters.get(key) ?? 0;\n }\n\n resetTimer(): void {\n this.startTime = Date.now();\n this.counters.clear();\n }\n\n elapsed(): string {\n const ms = Date.now() - this.startTime;\n if (ms < 1000) return `${ms}ms`;\n const s = ms / 1000;\n if (s < 60) return `${s.toFixed(2)}s`;\n const m = Math.floor(s / 60);\n return `${m}m ${(s - m * 60).toFixed(1)}s`;\n }\n\n /**\n * Print a left-aligned table of all counters plus elapsed time.\n * Concrete subclasses can override for richer rendering.\n */\n summary(title: string = A_FRAME_LOG_DEFAULTS.summaryTitle): void {\n this.section(title);\n const keys = [...this.counters.keys()];\n const pad = keys.reduce((m, k) => Math.max(m, k.length), 'elapsed'.length);\n for (const key of keys) {\n this.info(` ${key.padEnd(pad)} ${this.counters.get(key)}`);\n }\n this.info(` ${'elapsed'.padEnd(pad)} ${this.elapsed()}`);\n this.divider();\n }\n}\n","import { A_FrameLoggerBase } from \"./A-FrameLogger.component\";\nimport {\n A_FrameLogEntry,\n A_FrameLogLevelType,\n A_FrameLoggerConfig,\n A_FrameProgressBar,\n} from \"./A-FrameLogger.types\";\nimport {\n A_FRAME_ANSI,\n A_FRAME_LOG_DEFAULTS,\n A_FrameLogIcon,\n} from \"./A-FrameLogger.constants\";\n\n\n/** Map a level → ANSI colour code for its leading icon. */\nconst ICON_COLOR: Record<A_FrameLogLevelType, string> = {\n debug: A_FRAME_ANSI.gray,\n info: A_FRAME_ANSI.cyan,\n success: A_FRAME_ANSI.green,\n warn: A_FRAME_ANSI.yellow,\n error: A_FRAME_ANSI.red,\n};\n\n\n/**\n * A_FrameLogger — Node.js environment.\n *\n * Renders to stdout with ANSI colour codes and inline progress bars when\n * stdout is a TTY. Falls back to plain text otherwise (CI, log files).\n */\nexport class A_FrameLogger extends A_FrameLoggerBase {\n\n private readonly useColor: boolean;\n\n constructor(config: A_FrameLoggerConfig = {}) {\n super(config);\n this.useColor = config.color ?? !!(process.stdout && process.stdout.isTTY);\n }\n\n private c(code: string, str: string): string {\n return this.useColor ? `${code}${str}${A_FRAME_ANSI.reset}` : str;\n }\n\n protected write(entry: A_FrameLogEntry): void {\n const icon = this.c(ICON_COLOR[entry.level], A_FrameLogIcon[entry.level]);\n const line = `${icon} ${entry.message}`;\n if (entry.level === 'error') console.error(line);\n else if (entry.level === 'warn') console.warn(line);\n else console.log(line);\n\n if (entry.metadata && Object.keys(entry.metadata).length > 0) {\n console.log(this.c(A_FRAME_ANSI.gray, ` ${JSON.stringify(entry.metadata)}`));\n }\n }\n\n section(title: string): void {\n const line = '─'.repeat(Math.max(2, 60 - title.length - 4));\n const heading = `┄ ${title} ${line}`;\n console.log('\\n' + this.c(A_FRAME_ANSI.bold + A_FRAME_ANSI.cyan, heading));\n }\n\n divider(): void {\n console.log(this.c(A_FRAME_ANSI.gray, '─'.repeat(60)));\n }\n\n summary(title: string = A_FRAME_LOG_DEFAULTS.summaryTitle): void {\n this.section(title);\n const keys = [...this.counters.keys()];\n const pad = keys.reduce((m, k) => Math.max(m, k.length), 'elapsed'.length);\n for (const key of keys) {\n console.log(` ${this.c(A_FRAME_ANSI.gray, key.padEnd(pad))} ${this.c(A_FRAME_ANSI.bold, String(this.counters.get(key)))}`);\n }\n console.log(` ${this.c(A_FRAME_ANSI.gray, 'elapsed'.padEnd(pad))} ${this.c(A_FRAME_ANSI.bold, this.elapsed())}`);\n this.divider();\n }\n\n // ─── Progress bar ────────────────────────────────────────────────────────\n\n progress(label: string, total: number): A_FrameProgressBar {\n const isTTY = this.useColor; // colour ⟺ TTY by default\n const width = A_FRAME_LOG_DEFAULTS.progressBarWidth;\n const start = Date.now();\n\n let current = 0;\n let lastLabel = '';\n\n const render = (status?: 'done' | 'fail') => {\n if (total === 0) {\n if (status === 'done') console.log(`${this.c(A_FRAME_ANSI.green, '✔')} ${label} (0/0)`);\n return;\n }\n const pct = Math.min(1, current / total);\n const filled = Math.round(pct * width);\n\n if (isTTY) {\n const bar =\n this.c(A_FRAME_ANSI.green, '█'.repeat(filled)) +\n this.c(A_FRAME_ANSI.gray, '░'.repeat(width - filled));\n const head = status === 'done' ? this.c(A_FRAME_ANSI.green, '✔')\n : status === 'fail' ? this.c(A_FRAME_ANSI.red, '✖')\n : this.c(A_FRAME_ANSI.cyan, '⟳');\n const tail = lastLabel ? this.c(A_FRAME_ANSI.dim, ` — ${lastLabel}`) : '';\n process.stdout.write(`\\r\\x1b[2K${head} ${label} ${bar} ${current}/${total} (${(pct * 100).toFixed(0)}%)${tail}`);\n if (status) process.stdout.write('\\n');\n } else {\n if (status === 'done') {\n console.log(`[${label}] done ${current}/${total} in ${((Date.now() - start) / 1000).toFixed(2)}s`);\n } else if (status === 'fail') {\n console.log(`[${label}] FAILED at ${current}/${total}`);\n } else {\n // Throttle: only print at 10% boundaries when not on a TTY\n const step = Math.max(1, Math.floor(total / 10));\n if (current === total || current % step === 0) {\n console.log(`[${label}] ${current}/${total}${lastLabel ? ` — ${lastLabel}` : ''}`);\n }\n }\n }\n };\n\n render();\n\n return {\n tick: (l?: string) => { current = Math.min(total, current + 1); if (l) lastLabel = l; render(); },\n succeed: (l?: string) => { if (l) lastLabel = l; current = total; render('done'); },\n fail: (l?: string) => { if (l) lastLabel = l; render('fail'); },\n update: (n: number, l?: string) => { current = Math.min(total, Math.max(0, n)); if (l) lastLabel = l; render(); },\n };\n }\n}\n"]}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { version } from './chunk-TO4BPKCY.mjs';
|
|
2
|
+
import { A_Fragment } from '@adaas/a-concept';
|
|
3
|
+
|
|
4
|
+
var A_FrameEnv = class extends A_Fragment {
|
|
5
|
+
get A_FRAME_FILE_EXTENSION() {
|
|
6
|
+
return ".aframe";
|
|
7
|
+
}
|
|
8
|
+
get A_FRAME_NAMESPACES_BIN() {
|
|
9
|
+
return `__namespaces${this.A_FRAME_FILE_EXTENSION}`;
|
|
10
|
+
}
|
|
11
|
+
get A_FRAME_SYNC() {
|
|
12
|
+
return process.env.A_FRAME_SYNC === "false" ? false : true;
|
|
13
|
+
}
|
|
14
|
+
get A_FRAME_TOKEN() {
|
|
15
|
+
return process.env.A_FRAME_TOKEN || "";
|
|
16
|
+
}
|
|
17
|
+
get A_FRAME_SERVER_URL() {
|
|
18
|
+
return process.env.A_FRAME_SERVER_URL || "http://localhost:3663";
|
|
19
|
+
}
|
|
20
|
+
get A_FRAME_SERVER_API_KEY() {
|
|
21
|
+
return process.env.A_FRAME_SERVER_API_KEY || "";
|
|
22
|
+
}
|
|
23
|
+
get A_FRAME_STORAGE_DIR() {
|
|
24
|
+
return process.env.A_FRAME_STORAGE_DIR || ".aframestr";
|
|
25
|
+
}
|
|
26
|
+
get A_FRAME_VERSION() {
|
|
27
|
+
return version || "0.0.1";
|
|
28
|
+
}
|
|
29
|
+
};
|
|
30
|
+
|
|
31
|
+
export { A_FrameEnv };
|
|
32
|
+
//# sourceMappingURL=chunk-JQBYDEMW.mjs.map
|
|
33
|
+
//# sourceMappingURL=chunk-JQBYDEMW.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/lib/A-FrameEnv/A-FrameEnv.fragment.env-node.ts"],"names":[],"mappings":";;;AAKO,IAAM,UAAA,GAAN,cAAyB,UAAA,CAAkC;AAAA,EAE9D,IAAI,sBAAA,GAAyB;AACzB,IAAA,OAAO,SAAA;AAAA,EACX;AAAA,EAEA,IAAI,sBAAA,GAAyB;AACzB,IAAA,OAAO,CAAA,YAAA,EAAe,KAAK,sBAAsB,CAAA,CAAA;AAAA,EACrD;AAAA,EAEA,IAAI,YAAA,GAAe;AACf,IAAA,OAAO,OAAA,CAAQ,GAAA,CAAI,YAAA,KAAiB,OAAA,GAAU,KAAA,GAAQ,IAAA;AAAA,EAC1D;AAAA,EAEA,IAAI,aAAA,GAAgB;AAChB,IAAA,OAAO,OAAA,CAAQ,IAAI,aAAA,IAAiB,EAAA;AAAA,EACxC;AAAA,EAEA,IAAI,kBAAA,GAAqB;AACrB,IAAA,OAAO,OAAA,CAAQ,IAAI,kBAAA,IAAsB,uBAAA;AAAA,EAC7C;AAAA,EAEA,IAAI,sBAAA,GAAyB;AACzB,IAAA,OAAO,OAAA,CAAQ,IAAI,sBAAA,IAA0B,EAAA;AAAA,EACjD;AAAA,EAEA,IAAI,mBAAA,GAAsB;AACtB,IAAA,OAAO,OAAA,CAAQ,IAAI,mBAAA,IAAuB,YAAA;AAAA,EAC9C;AAAA,EAEA,IAAI,eAAA,GAAkB;AAClB,IAAA,OAAW,OAAA,IAAW,OAAA;AAAA,EAC1B;AACJ","file":"chunk-JQBYDEMW.mjs","sourcesContent":["import { A_Fragment } from \"@adaas/a-concept\";\nimport * as pkg from '../../../package.json';\nimport { IA_FrameEnv } from \"./A-FrameEnv.types\";\n\n\nexport class A_FrameEnv extends A_Fragment implements IA_FrameEnv {\n\n get A_FRAME_FILE_EXTENSION() {\n return '.aframe';\n }\n\n get A_FRAME_NAMESPACES_BIN() {\n return `__namespaces${this.A_FRAME_FILE_EXTENSION}`;\n }\n\n get A_FRAME_SYNC() {\n return process.env.A_FRAME_SYNC === 'false' ? false : true;\n }\n\n get A_FRAME_TOKEN() {\n return process.env.A_FRAME_TOKEN || '';\n }\n\n get A_FRAME_SERVER_URL() {\n return process.env.A_FRAME_SERVER_URL || 'http://localhost:3663';\n }\n\n get A_FRAME_SERVER_API_KEY() {\n return process.env.A_FRAME_SERVER_API_KEY || '';\n }\n\n get A_FRAME_STORAGE_DIR() {\n return process.env.A_FRAME_STORAGE_DIR || '.aframestr';\n }\n\n get A_FRAME_VERSION() {\n return pkg.version || '0.0.1';\n }\n}"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"names":[],"mappings":"","file":"chunk-K4MZY4ME.mjs"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"names":[],"mappings":"","file":"chunk-KK64VLZN.cjs"}
|
|
@@ -0,0 +1,175 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var chunkZM2RLVVH_cjs = require('./chunk-ZM2RLVVH.cjs');
|
|
4
|
+
var chunkYWWGJ6EJ_cjs = require('./chunk-YWWGJ6EJ.cjs');
|
|
5
|
+
var aConcept = require('@adaas/a-concept');
|
|
6
|
+
|
|
7
|
+
// src/lib/A-FrameNamespace/A-FrameNamespace.constants.ts
|
|
8
|
+
var A_FRAME_DEFAULT_NAMESPACE_KEY = "default";
|
|
9
|
+
var A_FrameNamespaceFeatures = {
|
|
10
|
+
Load: "_A_FRAME_NAMESPACE_LOAD",
|
|
11
|
+
Save: "_A_FRAME_NAMESPACE_SAVE",
|
|
12
|
+
Embed: "_A_FRAME_NAMESPACE_EMBED",
|
|
13
|
+
Destroy: "_A_FRAME_NAMESPACE_DESTROY"
|
|
14
|
+
};
|
|
15
|
+
var A_FrameNamespace = class extends aConcept.A_Entity {
|
|
16
|
+
static get concept() {
|
|
17
|
+
return "a-frame";
|
|
18
|
+
}
|
|
19
|
+
// ─── Getters ──────────────────────────────────────────────────────────────
|
|
20
|
+
get id() {
|
|
21
|
+
return this.aseid.id;
|
|
22
|
+
}
|
|
23
|
+
get name() {
|
|
24
|
+
return this._name;
|
|
25
|
+
}
|
|
26
|
+
get hash() {
|
|
27
|
+
return this._hash;
|
|
28
|
+
}
|
|
29
|
+
get description() {
|
|
30
|
+
return this._description;
|
|
31
|
+
}
|
|
32
|
+
get metadata() {
|
|
33
|
+
return this._metadata || {};
|
|
34
|
+
}
|
|
35
|
+
get vector() {
|
|
36
|
+
return this._vector;
|
|
37
|
+
}
|
|
38
|
+
get embedding() {
|
|
39
|
+
return this._vector?.values ?? null;
|
|
40
|
+
}
|
|
41
|
+
//-----------------------------------------------------------------------------------------------------
|
|
42
|
+
//--------------------------------------- Computed properties -----------------------------------------
|
|
43
|
+
//-----------------------------------------------------------------------------------------------------
|
|
44
|
+
get aFrameServerVersion() {
|
|
45
|
+
return this._aFrameServerVersion;
|
|
46
|
+
}
|
|
47
|
+
get aFrameVersion() {
|
|
48
|
+
return this._aFrameVersion;
|
|
49
|
+
}
|
|
50
|
+
get isEmbed() {
|
|
51
|
+
return this._vector !== void 0;
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Saves Namespace to storage. The actual implementation of saving is handled by the A_FrameNamespaceFeatures.Save feature, which can be implemented by the environment to persist the definition to a database, file system, or other storage mechanism.
|
|
55
|
+
*
|
|
56
|
+
* @param scope
|
|
57
|
+
* @returns
|
|
58
|
+
*/
|
|
59
|
+
save(scope) {
|
|
60
|
+
console.log(`Saving namespace "${this._name}"...`);
|
|
61
|
+
return this.call(A_FrameNamespaceFeatures.Save, scope);
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Deletes the namespace from storage. The actual implementation of deletion is handled by the A_FrameNamespaceFeatures.Destroy feature, which can be implemented by the environment to remove the namespace from the database, file system, or other storage mechanism.
|
|
65
|
+
*
|
|
66
|
+
* @param scope
|
|
67
|
+
* @returns
|
|
68
|
+
*/
|
|
69
|
+
destroy(scope) {
|
|
70
|
+
return this.call(A_FrameNamespaceFeatures.Destroy, scope);
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* Loads the namespace from storage. The actual implementation of loading is handled by the A_FrameNamespaceFeatures.Load feature, which can be implemented by the environment to retrieve the namespace from the database, file system, or other storage mechanism and populate the entity's properties accordingly.
|
|
74
|
+
*
|
|
75
|
+
* @param scope
|
|
76
|
+
* @returns
|
|
77
|
+
*/
|
|
78
|
+
async load(scope) {
|
|
79
|
+
return this.call(A_FrameNamespaceFeatures.Load, scope);
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* Updates the definition's properties. This can be used to modify the source code, description, metadata, or namespace of the definition. After updating, you may want to call `embed()` again to refresh the embedding based on the new content.
|
|
83
|
+
*
|
|
84
|
+
* @param updates
|
|
85
|
+
*/
|
|
86
|
+
update(updates) {
|
|
87
|
+
if (updates.name) this._name = updates.name;
|
|
88
|
+
if (updates.description !== void 0) this._description = updates.description;
|
|
89
|
+
if (updates.metadata !== void 0) this._metadata = updates.metadata;
|
|
90
|
+
}
|
|
91
|
+
/**
|
|
92
|
+
* Generates an embedding vector for the namespace using the A_FrameNamespaceFeatures.Embed feature. This typically involves sending the namespace's content (name + description) to an embedding model and storing the resulting vector in the entity. Once embedded, the namespace can be searched using its vector representation.
|
|
93
|
+
*
|
|
94
|
+
* @param scope
|
|
95
|
+
* @returns
|
|
96
|
+
*/
|
|
97
|
+
embed(scope) {
|
|
98
|
+
console.log(`Embedding namespace "${this._name}"...`);
|
|
99
|
+
return this.call(A_FrameNamespaceFeatures.Embed, scope);
|
|
100
|
+
}
|
|
101
|
+
// ─── A_Entity lifecycle ───────────────────────────────────────────────────
|
|
102
|
+
fromNew(init) {
|
|
103
|
+
this.aseid = this.generateASEID({
|
|
104
|
+
id: aConcept.A_FormatterHelper.toKebabCase(init.name),
|
|
105
|
+
scope: "a-frame"
|
|
106
|
+
});
|
|
107
|
+
this._name = init.name;
|
|
108
|
+
const hashSource = this._name + (init.description || "") + (init.metadata ? JSON.stringify(init.metadata) : "");
|
|
109
|
+
this._hash = chunkZM2RLVVH_cjs.A_FrameHashHelper.fnv1a(hashSource);
|
|
110
|
+
this._description = init.description;
|
|
111
|
+
this._metadata = init.metadata;
|
|
112
|
+
}
|
|
113
|
+
fromJSON(serialized) {
|
|
114
|
+
this._name = serialized.name;
|
|
115
|
+
this._hash = serialized.hash;
|
|
116
|
+
this._description = serialized.description;
|
|
117
|
+
this._metadata = serialized.metadata;
|
|
118
|
+
this._vector = serialized.embedding ? new chunkYWWGJ6EJ_cjs.A_FrameVector(serialized.embedding) : void 0;
|
|
119
|
+
this._embeddedAt = serialized.embeddedAt;
|
|
120
|
+
this._embeddingModel = serialized.embeddingModel;
|
|
121
|
+
this._credentialId = serialized.credentialId;
|
|
122
|
+
this._aFrameVersion = serialized.aFrameVersion;
|
|
123
|
+
this._aFrameServerVersion = serialized.aFrameServerVersion;
|
|
124
|
+
}
|
|
125
|
+
toJSON() {
|
|
126
|
+
return {
|
|
127
|
+
...super.toJSON(),
|
|
128
|
+
hash: this._hash,
|
|
129
|
+
name: this._name,
|
|
130
|
+
description: this._description,
|
|
131
|
+
metadata: this._metadata,
|
|
132
|
+
embedding: this._vector?.values,
|
|
133
|
+
embeddedAt: this._embeddedAt ?? Date.now(),
|
|
134
|
+
embeddingModel: this._embeddingModel,
|
|
135
|
+
credentialId: this._credentialId,
|
|
136
|
+
aFrameVersion: this._aFrameVersion,
|
|
137
|
+
aFrameServerVersion: this._aFrameServerVersion
|
|
138
|
+
};
|
|
139
|
+
}
|
|
140
|
+
// ─── Embedding hydration ──────────────────────────────────────────────────
|
|
141
|
+
hydrateFromRecord(record) {
|
|
142
|
+
if (record.hash !== this._hash) {
|
|
143
|
+
throw new Error(
|
|
144
|
+
`A_FrameNamespace.hydrateFromRecord: hash mismatch for "${this._name}" (expected ${this._hash}, got ${record.hash})`
|
|
145
|
+
);
|
|
146
|
+
}
|
|
147
|
+
this._vector = new chunkYWWGJ6EJ_cjs.A_FrameVector(record.embedding);
|
|
148
|
+
this._embeddedAt = record.embeddedAt;
|
|
149
|
+
}
|
|
150
|
+
hydrateFromEmbedding(embedding, meta) {
|
|
151
|
+
this._vector = new chunkYWWGJ6EJ_cjs.A_FrameVector(embedding);
|
|
152
|
+
this._embeddedAt = Date.now();
|
|
153
|
+
if (meta) {
|
|
154
|
+
this._embeddingModel = meta.model;
|
|
155
|
+
this._credentialId = meta.credentialId ?? void 0;
|
|
156
|
+
this._aFrameVersion = meta.aFrameVersion;
|
|
157
|
+
this._aFrameServerVersion = meta.aFrameServerVersion;
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
/**
|
|
161
|
+
* Build the text string sent to the embedding model.
|
|
162
|
+
* Uses name + description so the vector captures semantic intent.
|
|
163
|
+
*/
|
|
164
|
+
toString() {
|
|
165
|
+
const parts = [`// namespace: ${this._name}`];
|
|
166
|
+
if (this._description) parts.push(`// ${this._description}`);
|
|
167
|
+
return parts.join("\n");
|
|
168
|
+
}
|
|
169
|
+
};
|
|
170
|
+
|
|
171
|
+
exports.A_FRAME_DEFAULT_NAMESPACE_KEY = A_FRAME_DEFAULT_NAMESPACE_KEY;
|
|
172
|
+
exports.A_FrameNamespace = A_FrameNamespace;
|
|
173
|
+
exports.A_FrameNamespaceFeatures = A_FrameNamespaceFeatures;
|
|
174
|
+
//# sourceMappingURL=chunk-KLG6HKFU.cjs.map
|
|
175
|
+
//# sourceMappingURL=chunk-KLG6HKFU.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/lib/A-FrameNamespace/A-FrameNamespace.constants.ts","../../src/lib/A-FrameNamespace/A-FrameNamespace.entity.ts"],"names":["A_Entity","A_FormatterHelper","A_FrameHashHelper","A_FrameVector"],"mappings":"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","file":"chunk-KLG6HKFU.cjs","sourcesContent":["import { A_FrameNamespace } from \"./A-FrameNamespace.entity\";\n\n\nexport const A_FRAME_DEFAULT_NAMESPACE_KEY = 'default';\n\n\nexport const A_FrameNamespaceFeatures = {\n Load: '_A_FRAME_NAMESPACE_LOAD',\n Save: '_A_FRAME_NAMESPACE_SAVE',\n Embed: '_A_FRAME_NAMESPACE_EMBED',\n Destroy: '_A_FRAME_NAMESPACE_DESTROY',\n} as const;","import { A_Context, A_Entity, A_FormatterHelper, A_Scope } from \"@adaas/a-concept\";\nimport { A_FrameVector } from \"../A-FrameVector/A-FrameVector.entity\";\nimport {\n A_FrameNamespace_Init,\n A_FrameNamespace_Serialized,\n A_FrameNamespace_Record,\n A_FrameNamespace_EmbeddingMeta,\n} from \"./A-FrameNamespace.types\";\nimport { A_FrameHashHelper } from \"@adaas/a-frame/helpers/Hash.helper\";\nimport { A_FrameNamespaceFeatures } from \"./A-FrameNamespace.constants\";\n\n\nexport class A_FrameNamespace extends A_Entity<A_FrameNamespace_Init, A_FrameNamespace_Serialized> {\n\n static get concept(): string {\n return 'a-frame';\n }\n\n protected _name!: string;\n protected _hash!: string;\n protected _description?: string;\n protected _metadata?: Record<string, any>;\n protected _vector?: A_FrameVector;\n protected _embeddedAt?: number;\n // ─── Provenance ───────────────────────────────────────────────────────────\n protected _embeddingModel?: string;\n protected _credentialId?: string;\n protected _aFrameVersion?: string;\n protected _aFrameServerVersion?: string;\n\n\n // ─── Getters ──────────────────────────────────────────────────────────────\n\n get id(): string {\n return this.aseid.id;\n }\n\n get name(): string {\n return this._name;\n }\n\n get hash(): string {\n return this._hash;\n }\n\n get description(): string | undefined {\n return this._description;\n }\n\n get metadata(): Record<string, any> {\n return this._metadata || {};\n }\n\n get vector(): A_FrameVector | undefined {\n return this._vector;\n }\n\n get embedding(): Float32Array | null {\n return this._vector?.values ?? null;\n }\n\n //-----------------------------------------------------------------------------------------------------\n //--------------------------------------- Computed properties -----------------------------------------\n //-----------------------------------------------------------------------------------------------------\n get aFrameServerVersion(): string | undefined {\n return this._aFrameServerVersion;\n }\n\n get aFrameVersion(): string | undefined {\n return this._aFrameVersion;\n }\n\n get isEmbed(): boolean {\n return this._vector !== undefined;\n }\n /**\n * Saves Namespace to storage. The actual implementation of saving is handled by the A_FrameNamespaceFeatures.Save feature, which can be implemented by the environment to persist the definition to a database, file system, or other storage mechanism.\n * \n * @param scope \n * @returns \n */\n save(scope?: A_Scope): Promise<void> | void {\n console.log(`Saving namespace \"${this._name}\"...`);\n return this.call(A_FrameNamespaceFeatures.Save, scope);\n }\n /**\n * Deletes the namespace from storage. The actual implementation of deletion is handled by the A_FrameNamespaceFeatures.Destroy feature, which can be implemented by the environment to remove the namespace from the database, file system, or other storage mechanism.\n * \n * @param scope \n * @returns \n */\n destroy(scope?: A_Scope): Promise<void> | void {\n return this.call(A_FrameNamespaceFeatures.Destroy, scope);\n }\n /**\n * Loads the namespace from storage. The actual implementation of loading is handled by the A_FrameNamespaceFeatures.Load feature, which can be implemented by the environment to retrieve the namespace from the database, file system, or other storage mechanism and populate the entity's properties accordingly.\n * \n * @param scope \n * @returns \n */\n async load(scope?: A_Scope): Promise<void> {\n return this.call(A_FrameNamespaceFeatures.Load, scope);\n }\n /**\n * Updates the definition's properties. This can be used to modify the source code, description, metadata, or namespace of the definition. After updating, you may want to call `embed()` again to refresh the embedding based on the new content.\n * \n * @param updates \n */\n update(updates: Partial<Pick<A_FrameNamespace, 'name' | 'description' | 'metadata'>>): void {\n if (updates.name) this._name = updates.name;\n if (updates.description !== undefined) this._description = updates.description;\n if (updates.metadata !== undefined) this._metadata = updates.metadata;\n }\n /**\n * Generates an embedding vector for the namespace using the A_FrameNamespaceFeatures.Embed feature. This typically involves sending the namespace's content (name + description) to an embedding model and storing the resulting vector in the entity. Once embedded, the namespace can be searched using its vector representation.\n * \n * @param scope \n * @returns \n */\n embed(scope?: A_Scope): Promise<void> | void {\n console.log(`Embedding namespace \"${this._name}\"...`);\n return this.call(A_FrameNamespaceFeatures.Embed, scope);\n }\n\n // ─── A_Entity lifecycle ───────────────────────────────────────────────────\n\n fromNew(init: A_FrameNamespace_Init): void {\n\n this.aseid = this.generateASEID({\n id: A_FormatterHelper.toKebabCase(init.name),\n scope: 'a-frame',\n });\n\n this._name = init.name;\n\n const hashSource = this._name\n + (init.description || '')\n + (init.metadata ? JSON.stringify(init.metadata) : '');\n\n this._hash = A_FrameHashHelper.fnv1a(hashSource);\n this._description = init.description;\n this._metadata = init.metadata;\n }\n\n fromJSON(serialized: A_FrameNamespace_Serialized): void {\n this._name = serialized.name;\n this._hash = serialized.hash;\n this._description = serialized.description;\n this._metadata = serialized.metadata;\n this._vector = serialized.embedding ? new A_FrameVector(serialized.embedding) : undefined;\n this._embeddedAt = serialized.embeddedAt;\n this._embeddingModel = serialized.embeddingModel;\n this._credentialId = serialized.credentialId;\n this._aFrameVersion = serialized.aFrameVersion;\n this._aFrameServerVersion = serialized.aFrameServerVersion;\n }\n\n\n\n toJSON(): A_FrameNamespace_Serialized {\n return {\n ...super.toJSON(),\n hash: this._hash,\n name: this._name,\n description: this._description,\n metadata: this._metadata,\n embedding: this._vector?.values,\n embeddedAt: this._embeddedAt ?? Date.now(),\n embeddingModel: this._embeddingModel,\n credentialId: this._credentialId,\n aFrameVersion: this._aFrameVersion,\n aFrameServerVersion: this._aFrameServerVersion,\n };\n }\n\n\n // ─── Embedding hydration ──────────────────────────────────────────────────\n\n hydrateFromRecord(record: A_FrameNamespace_Record): void {\n if (record.hash !== this._hash) {\n throw new Error(\n `A_FrameNamespace.hydrateFromRecord: hash mismatch for \"${this._name}\" ` +\n `(expected ${this._hash}, got ${record.hash})`\n );\n }\n this._vector = new A_FrameVector(record.embedding);\n this._embeddedAt = record.embeddedAt;\n }\n\n hydrateFromEmbedding(embedding: Float32Array, meta?: A_FrameNamespace_EmbeddingMeta): void {\n this._vector = new A_FrameVector(embedding);\n this._embeddedAt = Date.now();\n if (meta) {\n this._embeddingModel = meta.model;\n this._credentialId = meta.credentialId ?? undefined;\n this._aFrameVersion = meta.aFrameVersion;\n this._aFrameServerVersion = meta.aFrameServerVersion;\n }\n }\n\n /**\n * Build the text string sent to the embedding model.\n * Uses name + description so the vector captures semantic intent.\n */\n toString(): string {\n const parts: string[] = [`// namespace: ${this._name}`];\n if (this._description) parts.push(`// ${this._description}`);\n return parts.join('\\n');\n }\n}\n\n"]}
|