@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 @@
|
|
|
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":["A_Component"],"mappings":"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","file":"chunk-UTJ7CVVB.cjs","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,155 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var chunkQFHZIG7Y_cjs = require('./chunk-QFHZIG7Y.cjs');
|
|
4
|
+
var aConcept = require('@adaas/a-concept');
|
|
5
|
+
|
|
6
|
+
var A_FrameCrypto = class _A_FrameCrypto extends aConcept.A_Component {
|
|
7
|
+
// ─── Internal helpers ─────────────────────────────────────────────────────
|
|
8
|
+
static getSubtle() {
|
|
9
|
+
if (typeof globalThis.crypto?.subtle !== "undefined") {
|
|
10
|
+
return globalThis.crypto.subtle;
|
|
11
|
+
}
|
|
12
|
+
const nodeCrypto = chunkQFHZIG7Y_cjs.__require("crypto");
|
|
13
|
+
return nodeCrypto.webcrypto.subtle;
|
|
14
|
+
}
|
|
15
|
+
static getRandomBytes(n) {
|
|
16
|
+
const buf = new Uint8Array(n);
|
|
17
|
+
if (typeof globalThis.crypto?.getRandomValues !== "undefined") {
|
|
18
|
+
globalThis.crypto.getRandomValues(buf);
|
|
19
|
+
} else {
|
|
20
|
+
const nodeCrypto = chunkQFHZIG7Y_cjs.__require("crypto");
|
|
21
|
+
buf.set(nodeCrypto.randomBytes(n));
|
|
22
|
+
}
|
|
23
|
+
return buf;
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Ensure a Uint8Array is backed by a plain ArrayBuffer and return it.
|
|
27
|
+
* SubtleCrypto rejects ArrayBufferLike (e.g. SharedArrayBuffer) on strict TS targets.
|
|
28
|
+
*/
|
|
29
|
+
static bytes(u) {
|
|
30
|
+
if (u.buffer instanceof ArrayBuffer && u.byteOffset === 0 && u.byteLength === u.buffer.byteLength) {
|
|
31
|
+
return u.buffer;
|
|
32
|
+
}
|
|
33
|
+
return new Uint8Array(u).buffer;
|
|
34
|
+
}
|
|
35
|
+
static async importKey(keyBase64) {
|
|
36
|
+
const raw = _A_FrameCrypto.base64ToBytes(keyBase64);
|
|
37
|
+
return _A_FrameCrypto.getSubtle().importKey(
|
|
38
|
+
"raw",
|
|
39
|
+
raw.buffer,
|
|
40
|
+
{ name: "AES-GCM", length: 256 },
|
|
41
|
+
false,
|
|
42
|
+
["encrypt", "decrypt"]
|
|
43
|
+
);
|
|
44
|
+
}
|
|
45
|
+
// ─── Encrypt ──────────────────────────────────────────────────────────────
|
|
46
|
+
/** Encrypt a Uint8Array → IV(12) + AuthTag(16) + Ciphertext */
|
|
47
|
+
static async encryptBytes(plain, keyBase64) {
|
|
48
|
+
const key = await _A_FrameCrypto.importKey(keyBase64);
|
|
49
|
+
const iv = _A_FrameCrypto.getRandomBytes(12);
|
|
50
|
+
const cipherWithTag = new Uint8Array(
|
|
51
|
+
await _A_FrameCrypto.getSubtle().encrypt({ name: "AES-GCM", iv: _A_FrameCrypto.bytes(iv), tagLength: 128 }, key, _A_FrameCrypto.bytes(plain))
|
|
52
|
+
);
|
|
53
|
+
const ciphertext = cipherWithTag.slice(0, cipherWithTag.length - 16);
|
|
54
|
+
const authTag = cipherWithTag.slice(cipherWithTag.length - 16);
|
|
55
|
+
const out = new Uint8Array(12 + 16 + ciphertext.length);
|
|
56
|
+
out.set(iv, 0);
|
|
57
|
+
out.set(authTag, 12);
|
|
58
|
+
out.set(ciphertext, 28);
|
|
59
|
+
return out;
|
|
60
|
+
}
|
|
61
|
+
/** Encrypt a UTF-8 string → base64 payload string */
|
|
62
|
+
static async encrypt(plain, keyBase64) {
|
|
63
|
+
const bytes = new TextEncoder().encode(plain);
|
|
64
|
+
const encrypted = await _A_FrameCrypto.encryptBytes(bytes, keyBase64);
|
|
65
|
+
return _A_FrameCrypto.bytesToBase64(encrypted);
|
|
66
|
+
}
|
|
67
|
+
// ─── Decrypt ─────────────────────────────────────────────────────────────
|
|
68
|
+
/** Decrypt a Uint8Array payload produced by encryptBytes() */
|
|
69
|
+
static async decryptBytes(payload, keyBase64) {
|
|
70
|
+
if (payload.length < 28) throw new Error("Payload too short to decrypt");
|
|
71
|
+
const key = await _A_FrameCrypto.importKey(keyBase64);
|
|
72
|
+
const iv = payload.slice(0, 12);
|
|
73
|
+
const authTag = payload.slice(12, 28);
|
|
74
|
+
const ciphertext = payload.slice(28);
|
|
75
|
+
const cipherWithTag = new Uint8Array(ciphertext.length + 16);
|
|
76
|
+
cipherWithTag.set(ciphertext, 0);
|
|
77
|
+
cipherWithTag.set(authTag, ciphertext.length);
|
|
78
|
+
const plain = await _A_FrameCrypto.getSubtle().decrypt(
|
|
79
|
+
{ name: "AES-GCM", iv: _A_FrameCrypto.bytes(iv), tagLength: 128 },
|
|
80
|
+
key,
|
|
81
|
+
_A_FrameCrypto.bytes(cipherWithTag)
|
|
82
|
+
);
|
|
83
|
+
return new Uint8Array(plain);
|
|
84
|
+
}
|
|
85
|
+
/** Decrypt a base64 payload string → UTF-8 string */
|
|
86
|
+
static async decrypt(payloadBase64, keyBase64) {
|
|
87
|
+
const payload = _A_FrameCrypto.base64ToBytes(payloadBase64);
|
|
88
|
+
const plain = await _A_FrameCrypto.decryptBytes(payload, keyBase64);
|
|
89
|
+
return new TextDecoder().decode(plain);
|
|
90
|
+
}
|
|
91
|
+
// ─── Hashing ──────────────────────────────────────────────────────────────
|
|
92
|
+
/** SHA-256 of a string → hex string */
|
|
93
|
+
static async sha256hex(input) {
|
|
94
|
+
const data = new TextEncoder().encode(input);
|
|
95
|
+
try {
|
|
96
|
+
const hashBuffer = await _A_FrameCrypto.getSubtle().digest("SHA-256", _A_FrameCrypto.bytes(data));
|
|
97
|
+
return _A_FrameCrypto.bytesToHex(new Uint8Array(hashBuffer));
|
|
98
|
+
} catch {
|
|
99
|
+
const nodeCrypto = chunkQFHZIG7Y_cjs.__require("crypto");
|
|
100
|
+
return nodeCrypto.createHash("sha256").update(input).digest("hex");
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
// ─── Encode helpers ───────────────────────────────────────────────────────
|
|
104
|
+
static bytesToBase64(bytes) {
|
|
105
|
+
if (typeof Buffer !== "undefined") {
|
|
106
|
+
return Buffer.from(bytes).toString("base64");
|
|
107
|
+
}
|
|
108
|
+
let bin = "";
|
|
109
|
+
for (const b of bytes) bin += String.fromCharCode(b);
|
|
110
|
+
return btoa(bin);
|
|
111
|
+
}
|
|
112
|
+
static base64ToBytes(b64) {
|
|
113
|
+
if (typeof Buffer !== "undefined") {
|
|
114
|
+
return new Uint8Array(Buffer.from(b64, "base64"));
|
|
115
|
+
}
|
|
116
|
+
const bin = atob(b64);
|
|
117
|
+
const bytes = new Uint8Array(bin.length);
|
|
118
|
+
for (let i = 0; i < bin.length; i++) bytes[i] = bin.charCodeAt(i);
|
|
119
|
+
return bytes;
|
|
120
|
+
}
|
|
121
|
+
static bytesToHex(bytes) {
|
|
122
|
+
return Array.from(bytes).map((b) => b.toString(16).padStart(2, "0")).join("");
|
|
123
|
+
}
|
|
124
|
+
// =================================================================================
|
|
125
|
+
// Instance methods just call the static versions for convenient injection into other components
|
|
126
|
+
// =================================================================================
|
|
127
|
+
encryptBytes(plain, keyBase64) {
|
|
128
|
+
return _A_FrameCrypto.encryptBytes(plain, keyBase64);
|
|
129
|
+
}
|
|
130
|
+
encrypt(plain, keyBase64) {
|
|
131
|
+
return _A_FrameCrypto.encrypt(plain, keyBase64);
|
|
132
|
+
}
|
|
133
|
+
decryptBytes(payload, keyBase64) {
|
|
134
|
+
return _A_FrameCrypto.decryptBytes(payload, keyBase64);
|
|
135
|
+
}
|
|
136
|
+
decrypt(payloadBase64, keyBase64) {
|
|
137
|
+
return _A_FrameCrypto.decrypt(payloadBase64, keyBase64);
|
|
138
|
+
}
|
|
139
|
+
sha256hex(input) {
|
|
140
|
+
return _A_FrameCrypto.sha256hex(input);
|
|
141
|
+
}
|
|
142
|
+
bytesToBase64(bytes) {
|
|
143
|
+
return _A_FrameCrypto.bytesToBase64(bytes);
|
|
144
|
+
}
|
|
145
|
+
base64ToBytes(b64) {
|
|
146
|
+
return _A_FrameCrypto.base64ToBytes(b64);
|
|
147
|
+
}
|
|
148
|
+
bytesToHex(bytes) {
|
|
149
|
+
return _A_FrameCrypto.bytesToHex(bytes);
|
|
150
|
+
}
|
|
151
|
+
};
|
|
152
|
+
|
|
153
|
+
exports.A_FrameCrypto = A_FrameCrypto;
|
|
154
|
+
//# sourceMappingURL=chunk-YVX4W6SI.cjs.map
|
|
155
|
+
//# sourceMappingURL=chunk-YVX4W6SI.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/lib/A-FrameCrypto/A-FrameCrypto.component.env-node.ts"],"names":["A_Component","__require"],"mappings":";;;;;AAWO,IAAM,aAAA,GAAN,MAAM,cAAA,SAAsBA,oBAAA,CAAY;AAAA;AAAA,EAI3C,OAAe,SAAA,GAA0B;AACrC,IAAA,IAAI,OAAO,UAAA,CAAW,MAAA,EAAQ,MAAA,KAAW,WAAA,EAAa;AAClD,MAAA,OAAO,WAAW,MAAA,CAAO,MAAA;AAAA,IAC7B;AAEA,IAAA,MAAM,UAAA,GAAaC,4BAAQ,QAAa,CAAA;AACxC,IAAA,OAAO,WAAW,SAAA,CAAU,MAAA;AAAA,EAChC;AAAA,EAEA,OAAe,eAAe,CAAA,EAAuB;AACjD,IAAA,MAAM,GAAA,GAAM,IAAI,UAAA,CAAW,CAAC,CAAA;AAC5B,IAAA,IAAI,OAAO,UAAA,CAAW,MAAA,EAAQ,eAAA,KAAoB,WAAA,EAAa;AAC3D,MAAA,UAAA,CAAW,MAAA,CAAO,gBAAgB,GAAG,CAAA;AAAA,IACzC,CAAA,MAAO;AAEH,MAAA,MAAM,UAAA,GAAaA,4BAAQ,QAAa,CAAA;AACxC,MAAA,GAAA,CAAI,GAAA,CAAI,UAAA,CAAW,WAAA,CAAY,CAAC,CAAC,CAAA;AAAA,IACrC;AACA,IAAA,OAAO,GAAA;AAAA,EACX;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,OAAe,MAAM,CAAA,EAA4B;AAC7C,IAAA,IAAI,CAAA,CAAE,MAAA,YAAkB,WAAA,IAAe,CAAA,CAAE,UAAA,KAAe,KAAK,CAAA,CAAE,UAAA,KAAe,CAAA,CAAE,MAAA,CAAO,UAAA,EAAY;AAC/F,MAAA,OAAO,CAAA,CAAE,MAAA;AAAA,IACb;AACA,IAAA,OAAO,IAAI,UAAA,CAAW,CAAC,CAAA,CAAE,MAAA;AAAA,EAC7B;AAAA,EAEA,aAAqB,UAAU,SAAA,EAAuC;AAClE,IAAA,MAAM,GAAA,GAAM,cAAA,CAAc,aAAA,CAAc,SAAS,CAAA;AACjD,IAAA,OAAO,cAAA,CAAc,WAAU,CAAE,SAAA;AAAA,MAC7B,KAAA;AAAA,MAAO,GAAA,CAAI,MAAA;AAAA,MAAuB,EAAE,IAAA,EAAM,SAAA,EAAW,MAAA,EAAQ,GAAA,EAAI;AAAA,MAAG,KAAA;AAAA,MAAO,CAAC,WAAW,SAAS;AAAA,KACpG;AAAA,EACJ;AAAA;AAAA;AAAA,EAMA,aAAa,YAAA,CAAa,KAAA,EAAmB,SAAA,EAAwC;AACjF,IAAA,MAAM,GAAA,GAAM,MAAM,cAAA,CAAc,SAAA,CAAU,SAAS,CAAA;AACnD,IAAA,MAAM,EAAA,GAAK,cAAA,CAAc,cAAA,CAAe,EAAE,CAAA;AAE1C,IAAA,MAAM,gBAAgB,IAAI,UAAA;AAAA,MACtB,MAAM,eAAc,SAAA,EAAU,CAAE,QAAQ,EAAE,IAAA,EAAM,WAAW,EAAA,EAAI,cAAA,CAAc,MAAM,EAAE,CAAA,EAAG,WAAW,GAAA,EAAI,EAAG,KAAK,cAAA,CAAc,KAAA,CAAM,KAAK,CAAC;AAAA,KAC7I;AACA,IAAA,MAAM,aAAa,aAAA,CAAc,KAAA,CAAM,CAAA,EAAG,aAAA,CAAc,SAAS,EAAE,CAAA;AACnE,IAAA,MAAM,OAAA,GAAU,aAAA,CAAc,KAAA,CAAM,aAAA,CAAc,SAAS,EAAE,CAAA;AAE7D,IAAA,MAAM,MAAM,IAAI,UAAA,CAAW,EAAA,GAAK,EAAA,GAAK,WAAW,MAAM,CAAA;AACtD,IAAA,GAAA,CAAI,GAAA,CAAI,IAAI,CAAC,CAAA;AACb,IAAA,GAAA,CAAI,GAAA,CAAI,SAAS,EAAE,CAAA;AACnB,IAAA,GAAA,CAAI,GAAA,CAAI,YAAY,EAAE,CAAA;AACtB,IAAA,OAAO,GAAA;AAAA,EACX;AAAA;AAAA,EAIA,aAAa,OAAA,CAAQ,KAAA,EAAe,SAAA,EAAoC;AACpE,IAAA,MAAM,KAAA,GAAQ,IAAI,WAAA,EAAY,CAAE,OAAO,KAAK,CAAA;AAC5C,IAAA,MAAM,SAAA,GAAY,MAAM,cAAA,CAAc,YAAA,CAAa,OAAO,SAAS,CAAA;AACnE,IAAA,OAAO,cAAA,CAAc,cAAc,SAAS,CAAA;AAAA,EAChD;AAAA;AAAA;AAAA,EAMA,aAAa,YAAA,CAAa,OAAA,EAAqB,SAAA,EAAwC;AACnF,IAAA,IAAI,QAAQ,MAAA,GAAS,EAAA,EAAI,MAAM,IAAI,MAAM,8BAA8B,CAAA;AAEvE,IAAA,MAAM,GAAA,GAAM,MAAM,cAAA,CAAc,SAAA,CAAU,SAAS,CAAA;AACnD,IAAA,MAAM,EAAA,GAAK,OAAA,CAAQ,KAAA,CAAM,CAAA,EAAG,EAAE,CAAA;AAC9B,IAAA,MAAM,OAAA,GAAU,OAAA,CAAQ,KAAA,CAAM,EAAA,EAAI,EAAE,CAAA;AACpC,IAAA,MAAM,UAAA,GAAa,OAAA,CAAQ,KAAA,CAAM,EAAE,CAAA;AAEnC,IAAA,MAAM,aAAA,GAAgB,IAAI,UAAA,CAAW,UAAA,CAAW,SAAS,EAAE,CAAA;AAC3D,IAAA,aAAA,CAAc,GAAA,CAAI,YAAY,CAAC,CAAA;AAC/B,IAAA,aAAA,CAAc,GAAA,CAAI,OAAA,EAAS,UAAA,CAAW,MAAM,CAAA;AAE5C,IAAA,MAAM,KAAA,GAAQ,MAAM,cAAA,CAAc,SAAA,EAAU,CAAE,OAAA;AAAA,MAC1C,EAAE,MAAM,SAAA,EAAW,EAAA,EAAI,eAAc,KAAA,CAAM,EAAE,CAAA,EAAG,SAAA,EAAW,GAAA,EAAI;AAAA,MAAG,GAAA;AAAA,MAAK,cAAA,CAAc,MAAM,aAAa;AAAA,KAC5G;AACA,IAAA,OAAO,IAAI,WAAW,KAAK,CAAA;AAAA,EAC/B;AAAA;AAAA,EAIA,aAAa,OAAA,CAAQ,aAAA,EAAuB,SAAA,EAAoC;AAC5E,IAAA,MAAM,OAAA,GAAU,cAAA,CAAc,aAAA,CAAc,aAAa,CAAA;AACzD,IAAA,MAAM,KAAA,GAAQ,MAAM,cAAA,CAAc,YAAA,CAAa,SAAS,SAAS,CAAA;AACjE,IAAA,OAAO,IAAI,WAAA,EAAY,CAAE,MAAA,CAAO,KAAK,CAAA;AAAA,EACzC;AAAA;AAAA;AAAA,EAQA,aAAa,UAAU,KAAA,EAAgC;AACnD,IAAA,MAAM,IAAA,GAAO,IAAI,WAAA,EAAY,CAAE,OAAO,KAAK,CAAA;AAC3C,IAAA,IAAI;AACA,MAAA,MAAM,UAAA,GAAa,MAAM,cAAA,CAAc,SAAA,EAAU,CAAE,OAAO,SAAA,EAAW,cAAA,CAAc,KAAA,CAAM,IAAI,CAAC,CAAA;AAC9F,MAAA,OAAO,cAAA,CAAc,UAAA,CAAW,IAAI,UAAA,CAAW,UAAU,CAAC,CAAA;AAAA,IAC9D,CAAA,CAAA,MAAQ;AAEJ,MAAA,MAAM,UAAA,GAAaA,4BAAQ,QAAa,CAAA;AACxC,MAAA,OAAO,UAAA,CAAW,WAAW,QAAQ,CAAA,CAAE,OAAO,KAAK,CAAA,CAAE,OAAO,KAAK,CAAA;AAAA,IACrE;AAAA,EACJ;AAAA;AAAA,EAOA,OAAO,cAAc,KAAA,EAA2B;AAC5C,IAAA,IAAI,OAAO,WAAW,WAAA,EAAa;AAC/B,MAAA,OAAO,MAAA,CAAO,IAAA,CAAK,KAAK,CAAA,CAAE,SAAS,QAAQ,CAAA;AAAA,IAC/C;AACA,IAAA,IAAI,GAAA,GAAM,EAAA;AACV,IAAA,KAAA,MAAW,CAAA,IAAK,KAAA,EAAO,GAAA,IAAO,MAAA,CAAO,aAAa,CAAC,CAAA;AACnD,IAAA,OAAO,KAAK,GAAG,CAAA;AAAA,EACnB;AAAA,EAKA,OAAO,cAAc,GAAA,EAAyB;AAC1C,IAAA,IAAI,OAAO,WAAW,WAAA,EAAa;AAC/B,MAAA,OAAO,IAAI,UAAA,CAAW,MAAA,CAAO,IAAA,CAAK,GAAA,EAAK,QAAQ,CAAC,CAAA;AAAA,IACpD;AACA,IAAA,MAAM,GAAA,GAAM,KAAK,GAAG,CAAA;AACpB,IAAA,MAAM,KAAA,GAAQ,IAAI,UAAA,CAAW,GAAA,CAAI,MAAM,CAAA;AACvC,IAAA,KAAA,IAAS,CAAA,GAAI,CAAA,EAAG,CAAA,GAAI,GAAA,CAAI,MAAA,EAAQ,CAAA,EAAA,EAAK,KAAA,CAAM,CAAC,CAAA,GAAI,GAAA,CAAI,UAAA,CAAW,CAAC,CAAA;AAChE,IAAA,OAAO,KAAA;AAAA,EACX;AAAA,EAKA,OAAO,WAAW,KAAA,EAA2B;AACzC,IAAA,OAAO,MAAM,IAAA,CAAK,KAAK,CAAA,CAAE,GAAA,CAAI,OAAK,CAAA,CAAE,QAAA,CAAS,EAAE,CAAA,CAAE,SAAS,CAAA,EAAG,GAAG,CAAC,CAAA,CAAE,KAAK,EAAE,CAAA;AAAA,EAC9E;AAAA;AAAA;AAAA;AAAA,EAOA,YAAA,CAAa,OAAmB,SAAA,EAAwC;AACpE,IAAA,OAAO,cAAA,CAAc,YAAA,CAAa,KAAA,EAAO,SAAS,CAAA;AAAA,EACtD;AAAA,EAGA,OAAA,CAAQ,OAAe,SAAA,EAAoC;AACvD,IAAA,OAAO,cAAA,CAAc,OAAA,CAAQ,KAAA,EAAO,SAAS,CAAA;AAAA,EACjD;AAAA,EAEA,YAAA,CAAa,SAAqB,SAAA,EAAwC;AACtE,IAAA,OAAO,cAAA,CAAc,YAAA,CAAa,OAAA,EAAS,SAAS,CAAA;AAAA,EACxD;AAAA,EAGA,OAAA,CAAQ,eAAuB,SAAA,EAAoC;AAC/D,IAAA,OAAO,cAAA,CAAc,OAAA,CAAQ,aAAA,EAAe,SAAS,CAAA;AAAA,EACzD;AAAA,EAEA,UAAU,KAAA,EAAgC;AACtC,IAAA,OAAO,cAAA,CAAc,UAAU,KAAK,CAAA;AAAA,EACxC;AAAA,EAEA,cAAc,KAAA,EAA2B;AACrC,IAAA,OAAO,cAAA,CAAc,cAAc,KAAK,CAAA;AAAA,EAC5C;AAAA,EAEA,cAAc,GAAA,EAAyB;AACnC,IAAA,OAAO,cAAA,CAAc,cAAc,GAAG,CAAA;AAAA,EAC1C;AAAA,EAEA,WAAW,KAAA,EAA2B;AAClC,IAAA,OAAO,cAAA,CAAc,WAAW,KAAK,CAAA;AAAA,EACzC;AACJ","file":"chunk-YVX4W6SI.cjs","sourcesContent":["import { A_Component } from \"@adaas/a-concept\";\n\n/**\n * A_FrameCrypto — Node.js environment\n *\n * AES-256-GCM encryption + SHA-256 hashing via the Web Crypto API.\n * Falls back to node:crypto for Node < 19 that lack globalThis.crypto.\n *\n * Binary payload format on disk:\n * IV (12B) + AuthTag (16B) + Ciphertext (NB)\n */\nexport class A_FrameCrypto extends A_Component {\n\n // ─── Internal helpers ─────────────────────────────────────────────────────\n\n private static getSubtle(): SubtleCrypto {\n if (typeof globalThis.crypto?.subtle !== 'undefined') {\n return globalThis.crypto.subtle;\n }\n // eslint-disable-next-line @typescript-eslint/no-var-requires\n const nodeCrypto = require('node:crypto') as typeof import('node:crypto');\n return nodeCrypto.webcrypto.subtle as unknown as SubtleCrypto;\n }\n\n private static getRandomBytes(n: number): Uint8Array {\n const buf = new Uint8Array(n);\n if (typeof globalThis.crypto?.getRandomValues !== 'undefined') {\n globalThis.crypto.getRandomValues(buf);\n } else {\n // eslint-disable-next-line @typescript-eslint/no-var-requires\n const nodeCrypto = require('node:crypto') as typeof import('node:crypto');\n buf.set(nodeCrypto.randomBytes(n));\n }\n return buf;\n }\n\n /**\n * Ensure a Uint8Array is backed by a plain ArrayBuffer and return it.\n * SubtleCrypto rejects ArrayBufferLike (e.g. SharedArrayBuffer) on strict TS targets.\n */\n private static bytes(u: Uint8Array): ArrayBuffer {\n if (u.buffer instanceof ArrayBuffer && u.byteOffset === 0 && u.byteLength === u.buffer.byteLength) {\n return u.buffer as ArrayBuffer;\n }\n return new Uint8Array(u).buffer as ArrayBuffer;\n }\n\n private static async importKey(keyBase64: string): Promise<CryptoKey> {\n const raw = A_FrameCrypto.base64ToBytes(keyBase64);\n return A_FrameCrypto.getSubtle().importKey(\n 'raw', raw.buffer as ArrayBuffer, { name: 'AES-GCM', length: 256 }, false, ['encrypt', 'decrypt']\n );\n }\n\n\n // ─── Encrypt ──────────────────────────────────────────────────────────────\n\n /** Encrypt a Uint8Array → IV(12) + AuthTag(16) + Ciphertext */\n static async encryptBytes(plain: Uint8Array, keyBase64: string): Promise<Uint8Array> {\n const key = await A_FrameCrypto.importKey(keyBase64);\n const iv = A_FrameCrypto.getRandomBytes(12);\n\n const cipherWithTag = new Uint8Array(\n await A_FrameCrypto.getSubtle().encrypt({ name: 'AES-GCM', iv: A_FrameCrypto.bytes(iv), tagLength: 128 }, key, A_FrameCrypto.bytes(plain))\n );\n const ciphertext = cipherWithTag.slice(0, cipherWithTag.length - 16);\n const authTag = cipherWithTag.slice(cipherWithTag.length - 16);\n\n const out = new Uint8Array(12 + 16 + ciphertext.length);\n out.set(iv, 0);\n out.set(authTag, 12);\n out.set(ciphertext, 28);\n return out;\n }\n\n\n /** Encrypt a UTF-8 string → base64 payload string */\n static async encrypt(plain: string, keyBase64: string): Promise<string> {\n const bytes = new TextEncoder().encode(plain);\n const encrypted = await A_FrameCrypto.encryptBytes(bytes, keyBase64);\n return A_FrameCrypto.bytesToBase64(encrypted);\n }\n\n\n // ─── Decrypt ─────────────────────────────────────────────────────────────\n\n /** Decrypt a Uint8Array payload produced by encryptBytes() */\n static async decryptBytes(payload: Uint8Array, keyBase64: string): Promise<Uint8Array> {\n if (payload.length < 28) throw new Error('Payload too short to decrypt');\n\n const key = await A_FrameCrypto.importKey(keyBase64);\n const iv = payload.slice(0, 12);\n const authTag = payload.slice(12, 28);\n const ciphertext = payload.slice(28);\n\n const cipherWithTag = new Uint8Array(ciphertext.length + 16);\n cipherWithTag.set(ciphertext, 0);\n cipherWithTag.set(authTag, ciphertext.length);\n\n const plain = await A_FrameCrypto.getSubtle().decrypt(\n { name: 'AES-GCM', iv: A_FrameCrypto.bytes(iv), tagLength: 128 }, key, A_FrameCrypto.bytes(cipherWithTag)\n );\n return new Uint8Array(plain);\n }\n\n\n /** Decrypt a base64 payload string → UTF-8 string */\n static async decrypt(payloadBase64: string, keyBase64: string): Promise<string> {\n const payload = A_FrameCrypto.base64ToBytes(payloadBase64);\n const plain = await A_FrameCrypto.decryptBytes(payload, keyBase64);\n return new TextDecoder().decode(plain);\n }\n\n\n\n\n // ─── Hashing ──────────────────────────────────────────────────────────────\n\n /** SHA-256 of a string → hex string */\n static async sha256hex(input: string): Promise<string> {\n const data = new TextEncoder().encode(input);\n try {\n const hashBuffer = await A_FrameCrypto.getSubtle().digest('SHA-256', A_FrameCrypto.bytes(data));\n return A_FrameCrypto.bytesToHex(new Uint8Array(hashBuffer));\n } catch {\n // eslint-disable-next-line @typescript-eslint/no-var-requires\n const nodeCrypto = require('node:crypto') as typeof import('node:crypto');\n return nodeCrypto.createHash('sha256').update(input).digest('hex');\n }\n }\n\n\n\n\n // ─── Encode helpers ───────────────────────────────────────────────────────\n\n static bytesToBase64(bytes: Uint8Array): string {\n if (typeof Buffer !== 'undefined') {\n return Buffer.from(bytes).toString('base64');\n }\n let bin = '';\n for (const b of bytes) bin += String.fromCharCode(b);\n return btoa(bin);\n }\n\n\n\n\n static base64ToBytes(b64: string): Uint8Array {\n if (typeof Buffer !== 'undefined') {\n return new Uint8Array(Buffer.from(b64, 'base64'));\n }\n const bin = atob(b64);\n const bytes = new Uint8Array(bin.length);\n for (let i = 0; i < bin.length; i++) bytes[i] = bin.charCodeAt(i);\n return bytes;\n }\n\n\n\n\n static bytesToHex(bytes: Uint8Array): string {\n return Array.from(bytes).map(b => b.toString(16).padStart(2, '0')).join('');\n }\n\n // =================================================================================\n // Instance methods just call the static versions for convenient injection into other components\n // =================================================================================\n\n\n encryptBytes(plain: Uint8Array, keyBase64: string): Promise<Uint8Array> {\n return A_FrameCrypto.encryptBytes(plain, keyBase64);\n }\n\n\n encrypt(plain: string, keyBase64: string): Promise<string> {\n return A_FrameCrypto.encrypt(plain, keyBase64);\n }\n\n decryptBytes(payload: Uint8Array, keyBase64: string): Promise<Uint8Array> {\n return A_FrameCrypto.decryptBytes(payload, keyBase64);\n }\n\n\n decrypt(payloadBase64: string, keyBase64: string): Promise<string> {\n return A_FrameCrypto.decrypt(payloadBase64, keyBase64);\n }\n\n sha256hex(input: string): Promise<string> {\n return A_FrameCrypto.sha256hex(input);\n }\n\n bytesToBase64(bytes: Uint8Array): string {\n return A_FrameCrypto.bytesToBase64(bytes);\n }\n\n base64ToBytes(b64: string): Uint8Array {\n return A_FrameCrypto.base64ToBytes(b64);\n }\n\n bytesToHex(bytes: Uint8Array): string {\n return A_FrameCrypto.bytesToHex(bytes);\n }\n}\n"]}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var aConcept = require('@adaas/a-concept');
|
|
4
|
+
|
|
5
|
+
// src/lib/A-FrameVector/A-FrameVector.entity.ts
|
|
6
|
+
var A_FrameVector = class _A_FrameVector extends aConcept.A_Entity {
|
|
7
|
+
static get concept() {
|
|
8
|
+
return "a-frame";
|
|
9
|
+
}
|
|
10
|
+
constructor(values) {
|
|
11
|
+
super();
|
|
12
|
+
this.values = values instanceof Float32Array ? values : new Float32Array(values);
|
|
13
|
+
}
|
|
14
|
+
get length() {
|
|
15
|
+
return this.values.length;
|
|
16
|
+
}
|
|
17
|
+
magnitude() {
|
|
18
|
+
let sum = 0;
|
|
19
|
+
for (let i = 0; i < this.values.length; i++) {
|
|
20
|
+
sum += this.values[i] ** 2;
|
|
21
|
+
}
|
|
22
|
+
return Math.sqrt(sum);
|
|
23
|
+
}
|
|
24
|
+
normalize() {
|
|
25
|
+
const mag = this.magnitude();
|
|
26
|
+
if (mag === 0) return this;
|
|
27
|
+
const normalized = new Float32Array(this.length);
|
|
28
|
+
for (let i = 0; i < this.length; i++) {
|
|
29
|
+
normalized[i] = this.values[i] / mag;
|
|
30
|
+
}
|
|
31
|
+
return new _A_FrameVector(normalized);
|
|
32
|
+
}
|
|
33
|
+
dot(other) {
|
|
34
|
+
this.assertSameLength(other);
|
|
35
|
+
let sum = 0;
|
|
36
|
+
for (let i = 0; i < this.length; i++) {
|
|
37
|
+
sum += this.values[i] * other.values[i];
|
|
38
|
+
}
|
|
39
|
+
return sum;
|
|
40
|
+
}
|
|
41
|
+
assertSameLength(other) {
|
|
42
|
+
if (this.length !== other.length) {
|
|
43
|
+
throw new Error(
|
|
44
|
+
`Embedding dimension mismatch: ${this.length} vs ${other.length}`
|
|
45
|
+
);
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
toArray() {
|
|
49
|
+
return Array.from(this.values);
|
|
50
|
+
}
|
|
51
|
+
};
|
|
52
|
+
|
|
53
|
+
exports.A_FrameVector = A_FrameVector;
|
|
54
|
+
//# sourceMappingURL=chunk-YWWGJ6EJ.cjs.map
|
|
55
|
+
//# sourceMappingURL=chunk-YWWGJ6EJ.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/lib/A-FrameVector/A-FrameVector.entity.ts"],"names":["A_Entity"],"mappings":";;;;;AAEO,IAAM,aAAA,GAAN,MAAM,cAAA,SAAsBA,iBAAA,CAAS;AAAA,EAExC,WAAW,OAAA,GAAkB;AACzB,IAAA,OAAO,SAAA;AAAA,EACX;AAAA,EAIA,YAAY,MAAA,EAAiC;AACzC,IAAA,KAAA,EAAM;AACN,IAAA,IAAA,CAAK,SAAS,MAAA,YAAkB,YAAA,GAC1B,MAAA,GACA,IAAI,aAAa,MAAM,CAAA;AAAA,EACjC;AAAA,EAEA,IAAI,MAAA,GAAiB;AACjB,IAAA,OAAO,KAAK,MAAA,CAAO,MAAA;AAAA,EACvB;AAAA,EAEA,SAAA,GAAoB;AAChB,IAAA,IAAI,GAAA,GAAM,CAAA;AACV,IAAA,KAAA,IAAS,IAAI,CAAA,EAAG,CAAA,GAAI,IAAA,CAAK,MAAA,CAAO,QAAQ,CAAA,EAAA,EAAK;AACzC,MAAA,GAAA,IAAO,IAAA,CAAK,MAAA,CAAO,CAAC,CAAA,IAAK,CAAA;AAAA,IAC7B;AACA,IAAA,OAAO,IAAA,CAAK,KAAK,GAAG,CAAA;AAAA,EACxB;AAAA,EAEA,SAAA,GAA2B;AACvB,IAAA,MAAM,GAAA,GAAM,KAAK,SAAA,EAAU;AAC3B,IAAA,IAAI,GAAA,KAAQ,GAAG,OAAO,IAAA;AAEtB,IAAA,MAAM,UAAA,GAAa,IAAI,YAAA,CAAa,IAAA,CAAK,MAAM,CAAA;AAC/C,IAAA,KAAA,IAAS,CAAA,GAAI,CAAA,EAAG,CAAA,GAAI,IAAA,CAAK,QAAQ,CAAA,EAAA,EAAK;AAClC,MAAA,UAAA,CAAW,CAAC,CAAA,GAAI,IAAA,CAAK,MAAA,CAAO,CAAC,CAAA,GAAI,GAAA;AAAA,IACrC;AAEA,IAAA,OAAO,IAAI,eAAc,UAAU,CAAA;AAAA,EACvC;AAAA,EAEA,IAAI,KAAA,EAA8B;AAC9B,IAAA,IAAA,CAAK,iBAAiB,KAAK,CAAA;AAE3B,IAAA,IAAI,GAAA,GAAM,CAAA;AACV,IAAA,KAAA,IAAS,CAAA,GAAI,CAAA,EAAG,CAAA,GAAI,IAAA,CAAK,QAAQ,CAAA,EAAA,EAAK;AAClC,MAAA,GAAA,IAAO,KAAK,MAAA,CAAO,CAAC,CAAA,GAAI,KAAA,CAAM,OAAO,CAAC,CAAA;AAAA,IAC1C;AACA,IAAA,OAAO,GAAA;AAAA,EACX;AAAA,EAEQ,iBAAiB,KAAA,EAAsB;AAC3C,IAAA,IAAI,IAAA,CAAK,MAAA,KAAW,KAAA,CAAM,MAAA,EAAQ;AAC9B,MAAA,MAAM,IAAI,KAAA;AAAA,QACN,CAAA,8BAAA,EAAiC,IAAA,CAAK,MAAM,CAAA,IAAA,EAAO,MAAM,MAAM,CAAA;AAAA,OACnE;AAAA,IACJ;AAAA,EACJ;AAAA,EAGA,OAAA,GAAoB;AAChB,IAAA,OAAO,KAAA,CAAM,IAAA,CAAK,IAAA,CAAK,MAAM,CAAA;AAAA,EACjC;AACJ","file":"chunk-YWWGJ6EJ.cjs","sourcesContent":["import { A_Entity } from \"@adaas/a-concept\"\n\nexport class A_FrameVector extends A_Entity {\n\n static get concept(): string {\n return 'a-frame';\n }\n\n readonly values: Float32Array\n\n constructor(values: number[] | Float32Array) {\n super();\n this.values = values instanceof Float32Array\n ? values\n : new Float32Array(values)\n }\n\n get length(): number {\n return this.values.length\n }\n\n magnitude(): number {\n let sum = 0\n for (let i = 0; i < this.values.length; i++) {\n sum += this.values[i] ** 2\n }\n return Math.sqrt(sum)\n }\n\n normalize(): A_FrameVector {\n const mag = this.magnitude()\n if (mag === 0) return this\n\n const normalized = new Float32Array(this.length)\n for (let i = 0; i < this.length; i++) {\n normalized[i] = this.values[i] / mag\n }\n\n return new A_FrameVector(normalized)\n }\n\n dot(other: A_FrameVector): number {\n this.assertSameLength(other)\n\n let sum = 0\n for (let i = 0; i < this.length; i++) {\n sum += this.values[i] * other.values[i]\n }\n return sum\n }\n\n private assertSameLength(other: A_FrameVector) {\n if (this.length !== other.length) {\n throw new Error(\n `Embedding dimension mismatch: ${this.length} vs ${other.length}`\n )\n }\n }\n\n\n toArray(): number[] {\n return Array.from(this.values)\n }\n}\n"]}
|