@adaas/a-frame 0.0.22 → 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.
Files changed (359) hide show
  1. package/.conf/tsconfig.browser.json +13 -0
  2. package/.conf/tsconfig.node.json +14 -0
  3. package/.env.example +12 -0
  4. package/dist/browser/A-FrameBrowserStorageBlobs.context-OEQr85oq.d.mts +40 -0
  5. package/dist/browser/A-FrameBundle.types-DaaUvViw.d.mts +33 -0
  6. package/dist/browser/A-FrameChannel.types-DWOEUs28.d.mts +142 -0
  7. package/dist/browser/A-FrameDefinition.entity-DWGN_Ujr.d.mts +329 -0
  8. package/dist/browser/A-FrameDynamicStructure.entity-DaBgSRCR.d.mts +188 -0
  9. package/dist/browser/A-FrameLogger.component.env-browser-BIPAP4oQ.d.mts +112 -0
  10. package/dist/browser/A-FrameNamespace.entity-rCm1AavP.d.mts +125 -0
  11. package/dist/browser/bundle.d.mts +8 -0
  12. package/dist/browser/bundle.mjs +2 -0
  13. package/dist/browser/bundle.mjs.map +1 -0
  14. package/dist/browser/channel.d.mts +165 -0
  15. package/dist/browser/channel.mjs +3 -0
  16. package/dist/browser/channel.mjs.map +1 -0
  17. package/dist/browser/chunk-5TTVFB3G.mjs +2 -0
  18. package/dist/browser/chunk-5TTVFB3G.mjs.map +1 -0
  19. package/dist/browser/chunk-AYN7KUQT.mjs +3 -0
  20. package/dist/browser/chunk-AYN7KUQT.mjs.map +1 -0
  21. package/dist/browser/chunk-DMGQW3AO.mjs +2 -0
  22. package/dist/browser/chunk-DMGQW3AO.mjs.map +1 -0
  23. package/dist/browser/chunk-G66IL2DR.mjs +2 -0
  24. package/dist/browser/chunk-G66IL2DR.mjs.map +1 -0
  25. package/dist/browser/chunk-H6OZP4ZV.mjs +2 -0
  26. package/dist/browser/chunk-H6OZP4ZV.mjs.map +1 -0
  27. package/dist/browser/chunk-INS7RO3B.mjs +2 -0
  28. package/dist/browser/chunk-INS7RO3B.mjs.map +1 -0
  29. package/dist/browser/chunk-K4MZY4ME.mjs +2 -0
  30. package/dist/browser/chunk-K4MZY4ME.mjs.map +1 -0
  31. package/dist/browser/chunk-OFKV5GNB.mjs +3 -0
  32. package/dist/browser/chunk-OFKV5GNB.mjs.map +1 -0
  33. package/dist/browser/chunk-QATIN7CO.mjs +3 -0
  34. package/dist/browser/chunk-QATIN7CO.mjs.map +1 -0
  35. package/dist/browser/chunk-QBBQ37P3.mjs +2 -0
  36. package/dist/browser/chunk-QBBQ37P3.mjs.map +1 -0
  37. package/dist/browser/chunk-VDVJWU5T.mjs +2 -0
  38. package/dist/browser/chunk-VDVJWU5T.mjs.map +1 -0
  39. package/dist/browser/chunk-X3C4I6YJ.mjs +2 -0
  40. package/dist/browser/chunk-X3C4I6YJ.mjs.map +1 -0
  41. package/dist/browser/chunk-ZVCTU2DN.mjs +3 -0
  42. package/dist/browser/chunk-ZVCTU2DN.mjs.map +1 -0
  43. package/dist/browser/core.d.mts +97 -0
  44. package/dist/browser/core.mjs +2 -0
  45. package/dist/browser/core.mjs.map +1 -0
  46. package/dist/browser/crypto.d.mts +35 -0
  47. package/dist/browser/crypto.mjs +2 -0
  48. package/dist/browser/crypto.mjs.map +1 -0
  49. package/dist/browser/definition.d.mts +13 -0
  50. package/dist/browser/definition.mjs +2 -0
  51. package/dist/browser/definition.mjs.map +1 -0
  52. package/dist/browser/dynamic-feature.d.mts +10 -0
  53. package/dist/browser/dynamic-feature.mjs +2 -0
  54. package/dist/browser/dynamic-feature.mjs.map +1 -0
  55. package/dist/browser/dynamic-structure.d.mts +12 -0
  56. package/dist/browser/dynamic-structure.mjs +2 -0
  57. package/dist/browser/dynamic-structure.mjs.map +1 -0
  58. package/dist/browser/env.d.mts +2 -0
  59. package/dist/browser/env.mjs +2 -0
  60. package/dist/browser/env.mjs.map +1 -0
  61. package/dist/browser/frame-index.d.mts +95 -0
  62. package/dist/browser/frame-index.mjs +2 -0
  63. package/dist/browser/frame-index.mjs.map +1 -0
  64. package/dist/browser/index.browser-CZlhzfSP.d.mts +22 -0
  65. package/dist/browser/index.d.mts +1 -144
  66. package/dist/browser/index.mjs +1 -1
  67. package/dist/browser/index.mjs.map +1 -1
  68. package/dist/browser/logger.d.mts +41 -0
  69. package/dist/browser/logger.mjs +2 -0
  70. package/dist/browser/logger.mjs.map +1 -0
  71. package/dist/browser/namespace.d.mts +13 -0
  72. package/dist/browser/namespace.mjs +2 -0
  73. package/dist/browser/namespace.mjs.map +1 -0
  74. package/dist/browser/storage.d.mts +194 -0
  75. package/dist/browser/storage.mjs +2 -0
  76. package/dist/browser/storage.mjs.map +1 -0
  77. package/dist/browser/vector.d.mts +15 -0
  78. package/dist/browser/vector.mjs +2 -0
  79. package/dist/browser/vector.mjs.map +1 -0
  80. package/dist/index.cjs +0 -0
  81. package/dist/node/A-FrameChannel.component-BfBcs734.d.ts +62 -0
  82. package/dist/node/A-FrameChannel.component-NNKcFViw.d.mts +62 -0
  83. package/dist/node/A-FrameChannel.types-DQF-IiRq.d.mts +146 -0
  84. package/dist/node/A-FrameChannel.types-DQF-IiRq.d.ts +146 -0
  85. package/dist/node/A-FrameDefinition.entity-CAUOdEvU.d.ts +329 -0
  86. package/dist/node/A-FrameDefinition.entity-DWGN_Ujr.d.mts +329 -0
  87. package/dist/node/A-FrameDynamicStructure.entity-DaBgSRCR.d.mts +188 -0
  88. package/dist/node/A-FrameDynamicStructure.entity-DaBgSRCR.d.ts +188 -0
  89. package/dist/node/A-FrameNamespace.entity-D3fZBGDx.d.ts +125 -0
  90. package/dist/node/A-FrameNamespace.entity-rCm1AavP.d.mts +125 -0
  91. package/dist/node/A-FrameStorage.component-BYjHfHJJ.d.mts +107 -0
  92. package/dist/node/A-FrameStorage.component-CT01fs-t.d.ts +107 -0
  93. package/dist/node/bundle.cjs +101 -0
  94. package/dist/node/bundle.cjs.map +1 -0
  95. package/dist/node/bundle.d.mts +69 -0
  96. package/dist/node/bundle.d.ts +69 -0
  97. package/dist/node/bundle.mjs +76 -0
  98. package/dist/node/bundle.mjs.map +1 -0
  99. package/dist/node/channel.cjs +60 -0
  100. package/dist/node/channel.cjs.map +1 -0
  101. package/dist/node/channel.d.mts +61 -0
  102. package/dist/node/channel.d.ts +61 -0
  103. package/dist/node/channel.mjs +11 -0
  104. package/dist/node/channel.mjs.map +1 -0
  105. package/dist/node/chunk-3LOMGNWA.cjs +8 -0
  106. package/dist/node/chunk-3LOMGNWA.cjs.map +1 -0
  107. package/dist/node/chunk-3ONWH75E.mjs +257 -0
  108. package/dist/node/chunk-3ONWH75E.mjs.map +1 -0
  109. package/dist/node/chunk-3TD2PEDZ.mjs +53 -0
  110. package/dist/node/chunk-3TD2PEDZ.mjs.map +1 -0
  111. package/dist/node/chunk-442DXGOD.mjs +16 -0
  112. package/dist/node/chunk-442DXGOD.mjs.map +1 -0
  113. package/dist/node/chunk-6EFXNUL4.mjs +6 -0
  114. package/dist/node/chunk-6EFXNUL4.mjs.map +1 -0
  115. package/dist/node/chunk-7A6XGT5J.cjs +541 -0
  116. package/dist/node/chunk-7A6XGT5J.cjs.map +1 -0
  117. package/dist/node/chunk-AOQRXZPC.mjs +207 -0
  118. package/dist/node/chunk-AOQRXZPC.mjs.map +1 -0
  119. package/dist/node/chunk-APRYHBEF.mjs +171 -0
  120. package/dist/node/chunk-APRYHBEF.mjs.map +1 -0
  121. package/dist/node/chunk-B7BXP7K4.mjs +253 -0
  122. package/dist/node/chunk-B7BXP7K4.mjs.map +1 -0
  123. package/dist/node/chunk-B7ZDJXD3.cjs +35 -0
  124. package/dist/node/chunk-B7ZDJXD3.cjs.map +1 -0
  125. package/dist/node/chunk-CP6JHUU6.cjs +541 -0
  126. package/dist/node/chunk-CP6JHUU6.cjs.map +1 -0
  127. package/dist/node/chunk-DDCEMKBP.mjs +655 -0
  128. package/dist/node/chunk-DDCEMKBP.mjs.map +1 -0
  129. package/dist/node/chunk-DMY44VUG.mjs +655 -0
  130. package/dist/node/chunk-DMY44VUG.mjs.map +1 -0
  131. package/dist/node/chunk-F4UCOZW5.mjs +33 -0
  132. package/dist/node/chunk-F4UCOZW5.mjs.map +1 -0
  133. package/dist/node/chunk-GBTFMT3K.cjs +256 -0
  134. package/dist/node/chunk-GBTFMT3K.cjs.map +1 -0
  135. package/dist/node/chunk-GNVXVK2B.cjs +8 -0
  136. package/dist/node/chunk-GNVXVK2B.cjs.map +1 -0
  137. package/dist/node/chunk-IIVYTS5M.mjs +239 -0
  138. package/dist/node/chunk-IIVYTS5M.mjs.map +1 -0
  139. package/dist/node/chunk-JQBYDEMW.mjs +33 -0
  140. package/dist/node/chunk-JQBYDEMW.mjs.map +1 -0
  141. package/dist/node/chunk-K4MZY4ME.mjs +3 -0
  142. package/dist/node/chunk-K4MZY4ME.mjs.map +1 -0
  143. package/dist/node/chunk-KK64VLZN.cjs +4 -0
  144. package/dist/node/chunk-KK64VLZN.cjs.map +1 -0
  145. package/dist/node/chunk-KLG6HKFU.cjs +175 -0
  146. package/dist/node/chunk-KLG6HKFU.cjs.map +1 -0
  147. package/dist/node/chunk-LJIZ47HO.cjs +688 -0
  148. package/dist/node/chunk-LJIZ47HO.cjs.map +1 -0
  149. package/dist/node/chunk-NIXKAQVP.cjs +35 -0
  150. package/dist/node/chunk-NIXKAQVP.cjs.map +1 -0
  151. package/dist/node/chunk-OI76LHVT.mjs +21 -0
  152. package/dist/node/chunk-OI76LHVT.mjs.map +1 -0
  153. package/dist/node/chunk-OJGCQNAH.mjs +529 -0
  154. package/dist/node/chunk-OJGCQNAH.mjs.map +1 -0
  155. package/dist/node/chunk-QFHZIG7Y.cjs +25 -0
  156. package/dist/node/chunk-QFHZIG7Y.cjs.map +1 -0
  157. package/dist/node/chunk-QFUZVN4Y.cjs +259 -0
  158. package/dist/node/chunk-QFUZVN4Y.cjs.map +1 -0
  159. package/dist/node/chunk-RRLTGGM7.cjs +209 -0
  160. package/dist/node/chunk-RRLTGGM7.cjs.map +1 -0
  161. package/dist/node/chunk-TO4BPKCY.mjs +6 -0
  162. package/dist/node/chunk-TO4BPKCY.mjs.map +1 -0
  163. package/dist/node/chunk-UKKCN7CQ.cjs +688 -0
  164. package/dist/node/chunk-UKKCN7CQ.cjs.map +1 -0
  165. package/dist/node/chunk-UPA7VN4R.mjs +153 -0
  166. package/dist/node/chunk-UPA7VN4R.mjs.map +1 -0
  167. package/dist/node/chunk-UTJ7CVVB.cjs +248 -0
  168. package/dist/node/chunk-UTJ7CVVB.cjs.map +1 -0
  169. package/dist/node/chunk-YVX4W6SI.cjs +155 -0
  170. package/dist/node/chunk-YVX4W6SI.cjs.map +1 -0
  171. package/dist/node/chunk-YWWGJ6EJ.cjs +55 -0
  172. package/dist/node/chunk-YWWGJ6EJ.cjs.map +1 -0
  173. package/dist/node/chunk-Z4HUCRK2.mjs +529 -0
  174. package/dist/node/chunk-Z4HUCRK2.mjs.map +1 -0
  175. package/dist/node/chunk-ZM2RLVVH.cjs +18 -0
  176. package/dist/node/chunk-ZM2RLVVH.cjs.map +1 -0
  177. package/dist/node/core.cjs +261 -0
  178. package/dist/node/core.cjs.map +1 -0
  179. package/dist/node/core.d.mts +76 -0
  180. package/dist/node/core.d.ts +76 -0
  181. package/dist/node/core.mjs +250 -0
  182. package/dist/node/core.mjs.map +1 -0
  183. package/dist/node/crypto.cjs +13 -0
  184. package/dist/node/crypto.cjs.map +1 -0
  185. package/dist/node/crypto.d.mts +44 -0
  186. package/dist/node/crypto.d.ts +44 -0
  187. package/dist/node/crypto.mjs +4 -0
  188. package/dist/node/crypto.mjs.map +1 -0
  189. package/dist/node/definition.cjs +19 -0
  190. package/dist/node/definition.cjs.map +1 -0
  191. package/dist/node/definition.d.mts +13 -0
  192. package/dist/node/definition.d.ts +13 -0
  193. package/dist/node/definition.mjs +6 -0
  194. package/dist/node/definition.mjs.map +1 -0
  195. package/dist/node/dynamic-feature.cjs +14 -0
  196. package/dist/node/dynamic-feature.cjs.map +1 -0
  197. package/dist/node/dynamic-feature.d.mts +10 -0
  198. package/dist/node/dynamic-feature.d.ts +10 -0
  199. package/dist/node/dynamic-feature.mjs +12 -0
  200. package/dist/node/dynamic-feature.mjs.map +1 -0
  201. package/dist/node/dynamic-structure.cjs +143 -0
  202. package/dist/node/dynamic-structure.cjs.map +1 -0
  203. package/dist/node/dynamic-structure.d.mts +12 -0
  204. package/dist/node/dynamic-structure.d.ts +12 -0
  205. package/dist/node/dynamic-structure.mjs +138 -0
  206. package/dist/node/dynamic-structure.mjs.map +1 -0
  207. package/dist/node/env.cjs +14 -0
  208. package/dist/node/env.cjs.map +1 -0
  209. package/dist/node/env.d.mts +22 -0
  210. package/dist/node/env.d.ts +22 -0
  211. package/dist/node/env.mjs +5 -0
  212. package/dist/node/env.mjs.map +1 -0
  213. package/dist/node/frame-index.cjs +16 -0
  214. package/dist/node/frame-index.cjs.map +1 -0
  215. package/dist/node/frame-index.d.mts +95 -0
  216. package/dist/node/frame-index.d.ts +95 -0
  217. package/dist/node/frame-index.mjs +7 -0
  218. package/dist/node/frame-index.mjs.map +1 -0
  219. package/dist/node/index.cjs +0 -288
  220. package/dist/node/index.cjs.map +1 -1
  221. package/dist/node/index.d.mts +1 -144
  222. package/dist/node/index.d.ts +1 -144
  223. package/dist/node/index.mjs +0 -284
  224. package/dist/node/index.mjs.map +1 -1
  225. package/dist/node/logger.cjs +41 -0
  226. package/dist/node/logger.cjs.map +1 -0
  227. package/dist/node/logger.d.mts +150 -0
  228. package/dist/node/logger.d.ts +150 -0
  229. package/dist/node/logger.mjs +4 -0
  230. package/dist/node/logger.mjs.map +1 -0
  231. package/dist/node/namespace.cjs +24 -0
  232. package/dist/node/namespace.cjs.map +1 -0
  233. package/dist/node/namespace.d.mts +13 -0
  234. package/dist/node/namespace.d.ts +13 -0
  235. package/dist/node/namespace.mjs +7 -0
  236. package/dist/node/namespace.mjs.map +1 -0
  237. package/dist/node/storage.cjs +42 -0
  238. package/dist/node/storage.cjs.map +1 -0
  239. package/dist/node/storage.d.mts +110 -0
  240. package/dist/node/storage.d.ts +110 -0
  241. package/dist/node/storage.mjs +13 -0
  242. package/dist/node/storage.mjs.map +1 -0
  243. package/dist/node/vector.cjs +13 -0
  244. package/dist/node/vector.cjs.map +1 -0
  245. package/dist/node/vector.d.mts +15 -0
  246. package/dist/node/vector.d.ts +15 -0
  247. package/dist/node/vector.mjs +4 -0
  248. package/dist/node/vector.mjs.map +1 -0
  249. package/jest.config.browser.ts +41 -0
  250. package/jest.config.ts +18 -8
  251. package/package.json +125 -13
  252. package/{index.ts → src/concept.ts} +5 -2
  253. package/src/helpers/Hash.helper.ts +14 -0
  254. package/src/index.ts +0 -24
  255. package/src/lib/A-Frame/A-Frame.component.env-browser.ts +124 -0
  256. package/src/lib/A-Frame/A-Frame.component.env-node.ts +106 -0
  257. package/src/lib/A-Frame/A-Frame.component.ts +62 -0
  258. package/src/lib/A-Frame/A-Frame.context.ts +40 -0
  259. package/src/lib/{components/Index.component.ts/Index.error.ts → A-Frame/A-Frame.error.ts} +1 -1
  260. package/src/lib/{components/Index.component.ts/Index.guard.ts → A-Frame/A-Frame.guard.ts} +9 -6
  261. package/src/lib/A-Frame/A-Frame.meta.ts +27 -0
  262. package/src/lib/{components/Index.component.ts/Index.types.ts → A-Frame/A-Frame.types.ts} +52 -17
  263. package/src/lib/A-Frame/decorators/A-FrameDefine.decorator.ts +104 -0
  264. package/src/lib/A-Frame/decorators/A-FrameNamespace.decorator.ts +33 -0
  265. package/src/lib/A-Frame/index.browser.ts +10 -0
  266. package/src/lib/A-Frame/index.ts +10 -0
  267. package/src/lib/A-FrameBundle/A-FrameBundle.builder.env-node.ts +95 -0
  268. package/src/lib/A-FrameBundle/A-FrameBundle.constants.ts +5 -0
  269. package/src/lib/A-FrameBundle/A-FrameBundle.types.ts +31 -0
  270. package/src/lib/A-FrameBundle/index.browser.ts +6 -0
  271. package/src/lib/A-FrameBundle/index.ts +7 -0
  272. package/src/lib/A-FrameCLI/A-FrameCLI.container.ts +333 -0
  273. package/src/lib/A-FrameChannel/A-FrameChannel.component.env-browser.ts +63 -0
  274. package/src/lib/A-FrameChannel/A-FrameChannel.component.env-node.ts +586 -0
  275. package/src/lib/A-FrameChannel/A-FrameChannel.component.ts +273 -0
  276. package/src/lib/A-FrameChannel/A-FrameChannel.constants.ts +39 -0
  277. package/src/lib/A-FrameChannel/A-FrameChannel.error.ts +10 -0
  278. package/src/lib/A-FrameChannel/A-FrameChannel.types.ts +143 -0
  279. package/src/lib/A-FrameChannel/A-FrameChannelEvent.context.ts +28 -0
  280. package/src/lib/A-FrameChannel/A-FrameChannelRequest.context.ts +36 -0
  281. package/src/lib/A-FrameChannel/A-FrameChannelSocket.entity.ts +189 -0
  282. package/src/lib/A-FrameChannel/A-FrameChannelStream.entity.ts +144 -0
  283. package/src/lib/A-FrameChannel/index.browser.ts +3 -0
  284. package/src/lib/A-FrameChannel/index.ts +10 -0
  285. package/src/lib/A-FrameCrypto/A-FrameCrypto.component.env-browser.ts +123 -0
  286. package/src/lib/A-FrameCrypto/A-FrameCrypto.component.env-node.ts +204 -0
  287. package/src/lib/A-FrameCrypto/index.browser.ts +1 -0
  288. package/src/lib/A-FrameCrypto/index.ts +1 -0
  289. package/src/lib/A-FrameDefinition/A-FrameDefinition.constants.ts +8 -0
  290. package/src/lib/A-FrameDefinition/A-FrameDefinition.entity.ts +290 -0
  291. package/src/lib/A-FrameDefinition/A-FrameDefinition.types.ts +109 -0
  292. package/src/lib/A-FrameDefinition/index.ts +3 -0
  293. package/src/lib/A-FrameDynamicFeature/A-FrameDynamicFeature.entity.ts +13 -0
  294. package/src/lib/A-FrameDynamicFeature/A-FrameDynamicFeature.types.ts +10 -0
  295. package/src/lib/A-FrameDynamicFeature/index.ts +2 -0
  296. package/src/lib/A-FrameDynamicPatch/A-FrameDynamicPatch.entity.ts +38 -0
  297. package/src/lib/A-FrameDynamicPatch/A-FrameDynamicPatch.types.ts +20 -0
  298. package/src/lib/A-FrameDynamicSession/A-FrameDynamicSession.constants.ts +9 -0
  299. package/src/lib/A-FrameDynamicSession/A-FrameDynamicSession.entity.ts +91 -0
  300. package/src/lib/A-FrameDynamicSession/A-FrameDynamicSession.types.ts +18 -0
  301. package/src/lib/A-FrameDynamicStructure/A-FrameDynamicStructure.constants.ts +13 -0
  302. package/src/lib/A-FrameDynamicStructure/A-FrameDynamicStructure.entity.ts +187 -0
  303. package/src/lib/A-FrameDynamicStructure/A-FrameDynamicStructure.error.ts +13 -0
  304. package/src/lib/A-FrameDynamicStructure/A-FrameDynamicStructure.types.ts +128 -0
  305. package/src/lib/A-FrameDynamicStructure/A-FrameDynamicStructureOperation.context.ts +32 -0
  306. package/src/lib/A-FrameDynamicStructure/index.ts +5 -0
  307. package/src/lib/A-FrameEnv/A-FrameEnv.fragment.env-browser.ts +31 -0
  308. package/src/lib/A-FrameEnv/A-FrameEnv.fragment.env-node.ts +39 -0
  309. package/src/lib/A-FrameEnv/A-FrameEnv.types.ts +7 -0
  310. package/src/lib/A-FrameEnv/index.browser.ts +1 -0
  311. package/src/lib/A-FrameEnv/index.ts +1 -0
  312. package/src/lib/A-FrameIndex/A-FrameIndex.context.ts +321 -0
  313. package/src/lib/A-FrameIndex/A-FrameIndex.types.ts +63 -0
  314. package/src/lib/A-FrameIndex/index.browser.ts +3 -0
  315. package/src/lib/A-FrameIndex/index.ts +3 -0
  316. package/src/lib/A-FrameLogger/A-FrameLogger.component.env-browser.ts +99 -0
  317. package/src/lib/A-FrameLogger/A-FrameLogger.component.env-node.ts +129 -0
  318. package/src/lib/A-FrameLogger/A-FrameLogger.component.ts +123 -0
  319. package/src/lib/A-FrameLogger/A-FrameLogger.constants.ts +66 -0
  320. package/src/lib/A-FrameLogger/A-FrameLogger.types.ts +67 -0
  321. package/src/lib/A-FrameLogger/index.browser.ts +4 -0
  322. package/src/lib/A-FrameLogger/index.ts +4 -0
  323. package/src/lib/A-FrameNamespace/A-FrameNamespace.constants.ts +12 -0
  324. package/src/lib/A-FrameNamespace/A-FrameNamespace.entity.ts +211 -0
  325. package/src/lib/A-FrameNamespace/A-FrameNamespace.types.ts +72 -0
  326. package/src/lib/A-FrameNamespace/index.ts +3 -0
  327. package/src/lib/A-FrameStorage/A-FrameStorage.codec.ts +338 -0
  328. package/src/lib/A-FrameStorage/A-FrameStorage.component.ts +191 -0
  329. package/src/lib/A-FrameStorage/A-FrameStorage.constants.ts +11 -0
  330. package/src/lib/A-FrameStorage/A-FrameStorage.error.ts +13 -0
  331. package/src/lib/A-FrameStorage/A-FrameStorage.types.ts +98 -0
  332. package/src/lib/A-FrameStorage/A-FrameStorageOperation.context.ts +59 -0
  333. package/src/lib/A-FrameStorage/browser/A-FrameBrowserStorage.component.ts +312 -0
  334. package/src/lib/A-FrameStorage/browser/A-FrameBrowserStorageBlobs.context.ts +77 -0
  335. package/src/lib/A-FrameStorage/index.browser.ts +11 -0
  336. package/src/lib/A-FrameStorage/index.ts +10 -0
  337. package/src/lib/A-FrameStorage/node/A-FrameNodeStorage.component.ts +464 -0
  338. package/src/lib/A-FrameStorage/server/A-FrameServerStorage.component.ts +177 -0
  339. package/src/lib/{entities/A_FrameVector/A_FrameVector.entity.ts → A-FrameVector/A-FrameVector.entity.ts} +10 -0
  340. package/src/lib/A-FrameVector/index.ts +3 -0
  341. package/tests/A-Frame.browser.test.ts +94 -0
  342. package/tests/A-Frame.test.ts +73 -68
  343. package/tests/jest.browser-environment.js +30 -0
  344. package/tests/jest.polyfills.browser.ts +13 -0
  345. package/tests/jest.setup.browser.ts +33 -0
  346. package/tsconfig.browser.json +54 -0
  347. package/tsconfig.json +16 -0
  348. package/tsup.config.ts +32 -2
  349. package/src/lib/components/Builder.component.ts/Builder.component.ts +0 -0
  350. package/src/lib/components/Index.component.ts/Index.component.ts +0 -79
  351. package/src/lib/components/Index.component.ts/Index.constants.ts +0 -0
  352. package/src/lib/components/Index.component.ts/Index.meta.ts +0 -28
  353. package/src/lib/components/Index.component.ts/IndexConfigurations.meta.ts +0 -78
  354. package/src/lib/components/Index.component.ts/decorators/IndexComponent.decorator.ts +0 -97
  355. package/src/lib/components/Index.component.ts/decorators/IndexDescribe.decorator.ts +0 -59
  356. package/src/lib/components/Index.component.ts/decorators/IndexNamespace.decorator.ts +0 -57
  357. package/src/lib/components/Search/A_FrameSearch.component.ts +0 -66
  358. package/src/lib/containers/CLI.container.ts +0 -27
  359. package/src/lib/entities/Namespace/Namespace.entity.ts +0 -8
@@ -0,0 +1,59 @@
1
+ import { A_Error, A_Fragment } from "@adaas/a-concept";
2
+
3
+
4
+ export class A_FrameStorageOperation<
5
+ _ParamsType = any,
6
+ _ResultType = any
7
+ > extends A_Fragment {
8
+
9
+ protected _result?: _ResultType;
10
+
11
+ protected _error?: A_Error;
12
+
13
+ protected _params!: _ParamsType;
14
+
15
+
16
+ constructor(
17
+ params: _ParamsType
18
+ ) {
19
+ super({ name: 'a-frame-storage-operation' });
20
+ this._params = params;
21
+ }
22
+
23
+
24
+ /**
25
+ * If the operation succeeded, this will contain the result data. If the operation failed, this will be undefined.
26
+ */
27
+ get result(): _ResultType | undefined {
28
+ return this._result;
29
+ }
30
+ /**
31
+ * If the operation failed, this will contain an error object with details about the failure. If the operation succeeded, this will be undefined.
32
+ */
33
+ get error(): A_Error | undefined {
34
+ return this._error;
35
+ }
36
+ /**
37
+ * Parameters used to execute the operation, e.g. definitionId and namespaceId for a saveDefinition operation.
38
+ */
39
+ get params(): _ParamsType {
40
+ return this._params;
41
+ }
42
+ /**
43
+ * Marks the operation as completed successfully with the given result. This will set the `result` property and leave `error` as undefined.
44
+ *
45
+ * @param result
46
+ */
47
+ complete(result: _ResultType): void {
48
+ this._result = result;
49
+ }
50
+ /**
51
+ * Marks the operation as failed with the given error. This will set the `error` property and leave `result` as undefined.
52
+ *
53
+ * @param error
54
+ */
55
+ fail(error: A_Error): void {
56
+ this._error = error;
57
+ }
58
+
59
+ }
@@ -0,0 +1,312 @@
1
+ import { A_Caller, A_Concept, A_Feature, A_Inject, A_Scope } from "@adaas/a-concept";
2
+ import { A_FrameStorageFeatures } from "../A-FrameStorage.constants";
3
+ import { A_FrameStorage } from "../A-FrameStorage.component";
4
+ import { A_FrameEnv } from "../../A-FrameEnv/A-FrameEnv.fragment.env-browser";
5
+ import { A_FrameStorageOperation } from "../A-FrameStorageOperation.context";
6
+ import {
7
+ A_FrameStorageDestroyDefinitionsOperation,
8
+ A_FrameStorageDestroyNamespacesOperation,
9
+ A_FrameStorageLoadDefinitionsOperation,
10
+ A_FrameStorageLoadNamespacesOperation,
11
+ A_FrameStorageSaveDefinitionOperation,
12
+ A_FrameStorageSaveNamespaceOperation,
13
+ } from "../A-FrameStorage.types";
14
+ import { A_FrameCrypto } from "../../A-FrameCrypto/A-FrameCrypto.component.env-browser";
15
+ import { A_FrameDefinition_Serialized } from "../../A-FrameDefinition/A-FrameDefinition.types";
16
+ import { A_FrameNamespace_Serialized } from "../../A-FrameNamespace/A-FrameNamespace.types";
17
+ import { A_FrameBrowserStorageBlobs } from "./A-FrameBrowserStorageBlobs.context";
18
+ import { A_FrameStorageCodec } from "../A-FrameStorage.codec";
19
+ import { A_FrameContext } from "../../A-Frame/A-Frame.context";
20
+ import { A_FrameStorageError } from "../A-FrameStorage.error";
21
+ import { A_FrameDefinition } from "../../A-FrameDefinition";
22
+ import { A_FrameDefinitionFeatures } from "../../A-FrameDefinition/A-FrameDefinition.constants";
23
+ import { A_FrameNamespace } from "../../A-FrameNamespace";
24
+ import { A_FrameNamespaceFeatures } from "../../A-FrameNamespace/A-FrameNamespace.constants";
25
+
26
+
27
+ /**
28
+ * A_FrameBrowserStorageProvider — Browser environment
29
+ *
30
+ * Stores encrypted definition and namespace records entirely in memory.
31
+ * Pre-built .aframe index files should be injected at bundle startup via
32
+ * A_FrameBrowserStorageProvider.loadBlob() so that read-only access works
33
+ * without any network or filesystem calls.
34
+ *
35
+ * Example (Vite):
36
+ * import mathBin from './embed-index/math.aframe?arraybuffer';
37
+ * A_FrameBrowserStorageProvider.loadBlob('math', new Uint8Array(mathBin));
38
+ */
39
+ export class A_FrameBrowserStorageProvider extends A_FrameStorage {
40
+
41
+ @A_Concept.Load()
42
+ onLoad(
43
+ @A_Inject(A_Scope) scope: A_Scope,
44
+ @A_Inject(A_FrameBrowserStorageBlobs) blobs?: A_FrameBrowserStorageBlobs,
45
+ ) {
46
+ if (!blobs) {
47
+ scope.register(A_FrameBrowserStorageBlobs.instance);
48
+ }
49
+ }
50
+
51
+
52
+ // ---------------------------------------------------------------------------------------
53
+ //--------------------------Storage Features Extensions----------------------------------
54
+ //---------------------------------------------------------------------------------------
55
+
56
+ @A_Feature.Extend({
57
+ name: A_FrameStorageFeatures.SaveDefinitions,
58
+ scope: [A_FrameStorage],
59
+ })
60
+ async saveDefinitionsToMemory(
61
+ @A_Inject(A_FrameEnv) env: A_FrameEnv,
62
+ @A_Inject(A_FrameStorageOperation) operation: A_FrameStorageSaveDefinitionOperation,
63
+ @A_Inject(A_FrameContext) global: A_FrameContext,
64
+ @A_Inject(A_FrameStorageCodec) codec: A_FrameStorageCodec,
65
+ @A_Inject(A_FrameBrowserStorageBlobs) blobs: A_FrameBrowserStorageBlobs,
66
+ ): Promise<void> {
67
+ const records = operation.params.records;
68
+ const namespace = records[0].namespace;
69
+
70
+ const existing = await this._loadDefinitionsFromMemory(blobs.store, namespace, global.encryptionKey!, codec);
71
+
72
+ const merged = new Map<string, A_FrameDefinition_Serialized>();
73
+ for (const r of existing) merged.set(r.aseid, r);
74
+ for (const d of records) merged.set(d.aseid.toString(), d);
75
+
76
+ const payload = codec.encodePayload(Array.from(merged.values()));
77
+ blobs.store.set(namespace, await A_FrameCrypto.encryptBytes(payload, global.encryptionKey!));
78
+
79
+ operation.complete({ saved: records.length });
80
+ }
81
+
82
+ @A_Feature.Extend({
83
+ name: A_FrameStorageFeatures.LoadDefinitions,
84
+ scope: [A_FrameStorage],
85
+ })
86
+ async loadDefinitionsFromMemory(
87
+ @A_Inject(A_FrameEnv) env: A_FrameEnv,
88
+ @A_Inject(A_FrameStorageOperation) operation: A_FrameStorageLoadDefinitionsOperation,
89
+ @A_Inject(A_FrameContext) global: A_FrameContext,
90
+ @A_Inject(A_FrameStorageCodec) codec: A_FrameStorageCodec,
91
+ @A_Inject(A_FrameBrowserStorageBlobs) blobs: A_FrameBrowserStorageBlobs,
92
+ ): Promise<void> {
93
+ const namespace = operation.params.namespaceId;
94
+ const records = await this._loadDefinitionsFromMemory(blobs.store, namespace, global.encryptionKey!, codec);
95
+ operation.complete({ records });
96
+ }
97
+
98
+ @A_Feature.Extend({
99
+ name: A_FrameStorageFeatures.DestroyDefinitions,
100
+ scope: [A_FrameStorage],
101
+ })
102
+ async destroyDefinitionsFromMemory(
103
+ @A_Inject(A_FrameEnv) env: A_FrameEnv,
104
+ @A_Inject(A_FrameStorageOperation) operation: A_FrameStorageDestroyDefinitionsOperation,
105
+ @A_Inject(A_FrameContext) global: A_FrameContext,
106
+ @A_Inject(A_FrameStorageCodec) codec: A_FrameStorageCodec,
107
+ @A_Inject(A_FrameBrowserStorageBlobs) blobs: A_FrameBrowserStorageBlobs,
108
+ ): Promise<void> {
109
+ const namespace = operation.params.namespaceId;
110
+ const definitionId = operation.params.definitionId;
111
+
112
+ const existing = await this._loadDefinitionsFromMemory(blobs.store, namespace, global.encryptionKey!, codec);
113
+ const filtered = existing.filter(r => r.aseid !== definitionId);
114
+
115
+ const payload = codec.encodePayload(filtered);
116
+ blobs.store.set(namespace, await A_FrameCrypto.encryptBytes(payload, global.encryptionKey!));
117
+
118
+ operation.complete({ records: filtered });
119
+ }
120
+
121
+
122
+ // ---------------------------------------------------------------------------------------
123
+ //--------------------------Namespace Features Extensions--------------------------------
124
+ //---------------------------------------------------------------------------------------
125
+
126
+ @A_Feature.Extend({
127
+ name: A_FrameStorageFeatures.SaveNamespaces,
128
+ scope: [A_FrameStorage],
129
+ })
130
+ async saveNamespacesToMemory(
131
+ @A_Inject(A_FrameEnv) env: A_FrameEnv,
132
+ @A_Inject(A_FrameStorageOperation) operation: A_FrameStorageSaveNamespaceOperation,
133
+ @A_Inject(A_FrameContext) global: A_FrameContext,
134
+ @A_Inject(A_FrameStorageCodec) codec: A_FrameStorageCodec,
135
+ @A_Inject(A_FrameBrowserStorageBlobs) blobs: A_FrameBrowserStorageBlobs,
136
+ ): Promise<void> {
137
+ const records = operation.params.records;
138
+
139
+ const existing = await this._loadNamespacesFromMemory(blobs, global.encryptionKey!, codec);
140
+
141
+ const merged = new Map<string, A_FrameNamespace_Serialized>();
142
+ for (const r of existing) merged.set(r.aseid, r);
143
+ for (const d of records) merged.set(d.aseid.toString(), d);
144
+
145
+ const payload = codec.encodeNamespacePayload(Array.from(merged.values()));
146
+ blobs.namespaceBlob = await A_FrameCrypto.encryptBytes(payload, global.encryptionKey!);
147
+
148
+ operation.complete({ success: true });
149
+ }
150
+
151
+ @A_Feature.Extend({
152
+ name: A_FrameStorageFeatures.LoadNamespaces,
153
+ scope: [A_FrameStorage],
154
+ })
155
+ async loadNamespacesFromMemory(
156
+ @A_Inject(A_FrameEnv) env: A_FrameEnv,
157
+ @A_Inject(A_FrameStorageOperation) operation: A_FrameStorageLoadNamespacesOperation,
158
+ @A_Inject(A_FrameContext) global: A_FrameContext,
159
+ @A_Inject(A_FrameStorageCodec) codec: A_FrameStorageCodec,
160
+ @A_Inject(A_FrameBrowserStorageBlobs) blobs: A_FrameBrowserStorageBlobs,
161
+ ): Promise<void> {
162
+ const ids = operation.params.namespaces;
163
+ const records = await this._loadNamespacesFromMemory(blobs, global.encryptionKey!, codec);
164
+
165
+ operation.complete({
166
+ records: ids ? records.filter(r => ids.includes(r.name)) : records
167
+ });
168
+ }
169
+
170
+ @A_Feature.Extend({
171
+ name: A_FrameStorageFeatures.DestroyNamespaces,
172
+ scope: [A_FrameStorage],
173
+ })
174
+ async destroyNamespacesFromMemory(
175
+ @A_Inject(A_FrameEnv) env: A_FrameEnv,
176
+ @A_Inject(A_FrameStorageOperation) operation: A_FrameStorageDestroyNamespacesOperation,
177
+ @A_Inject(A_FrameContext) global: A_FrameContext,
178
+ @A_Inject(A_FrameStorageCodec) codec: A_FrameStorageCodec,
179
+ @A_Inject(A_FrameBrowserStorageBlobs) blobs: A_FrameBrowserStorageBlobs,
180
+ ): Promise<void> {
181
+ const ids = operation.params.namespaces;
182
+
183
+ const existing = await this._loadNamespacesFromMemory(blobs, global.encryptionKey!, codec);
184
+ const filtered = existing.filter(r => !ids.includes(r.aseid));
185
+
186
+ const payload = codec.encodeNamespacePayload(filtered);
187
+ blobs.namespaceBlob = await A_FrameCrypto.encryptBytes(payload, global.encryptionKey!);
188
+
189
+ // Drop definition blobs for destroyed namespaces
190
+ try {
191
+ for (const id of ids) {
192
+ blobs.store.delete(id);
193
+ }
194
+ operation.complete({ success: true });
195
+ } catch (error) {
196
+ operation.fail(new A_FrameStorageError({
197
+ title: A_FrameStorageError.DestroyNamespacesFailed,
198
+ description: `Failed to destroy namespace records.`,
199
+ }));
200
+ operation.complete({ success: false });
201
+ }
202
+ }
203
+
204
+
205
+ // ---------------------------------------------------------------------------------------
206
+ //--------------------------Definition Entity-level Extensions---------------------------
207
+ //---------------------------------------------------------------------------------------
208
+
209
+ /**
210
+ * Hydrate a single A_FrameDefinition from the in-memory bundle blobs.
211
+ *
212
+ * Mirrors the Node `loadDefinitionFromDisk` extension. Looks up the
213
+ * namespace's encrypted blob in the singleton blob store, decrypts and
214
+ * decodes it, then calls `definition.fromJSON(record)` only when the
215
+ * stored hash and server version match the live entity.
216
+ *
217
+ * No-op when:
218
+ * - no blob has been seeded for the namespace
219
+ * - decryption fails (wrong key / corrupted blob)
220
+ * - the record is absent or stale
221
+ */
222
+ @A_Feature.Extend({
223
+ name: A_FrameDefinitionFeatures.Load,
224
+ scope: [A_FrameDefinition],
225
+ })
226
+ async loadDefinitionFromBlobs(
227
+ @A_Inject(A_Caller) definition: A_FrameDefinition,
228
+ @A_Inject(A_FrameContext) context: A_FrameContext,
229
+ @A_Inject(A_FrameStorageCodec) codec: A_FrameStorageCodec,
230
+ @A_Inject(A_FrameBrowserStorageBlobs) blobs: A_FrameBrowserStorageBlobs,
231
+ ): Promise<void> {
232
+ if (!context.encryptionKey) return;
233
+
234
+ const records = await this._loadDefinitionsFromMemory(
235
+ blobs.store, definition.namespace.id, context.encryptionKey, codec
236
+ );
237
+ if (records.length === 0) return;
238
+
239
+ const record = records.find(r => r.aseid === definition.aseid.toString());
240
+ if (
241
+ record &&
242
+ record.hash === definition.hash &&
243
+ record.aFrameServerVersion === context.serverVersion
244
+ ) {
245
+ definition.fromJSON(record);
246
+ }
247
+ }
248
+
249
+
250
+ // ---------------------------------------------------------------------------------------
251
+ //--------------------------Namespace Entity-level Extensions----------------------------
252
+ //---------------------------------------------------------------------------------------
253
+
254
+ @A_Feature.Extend({
255
+ name: A_FrameNamespaceFeatures.Load,
256
+ scope: [A_FrameNamespace],
257
+ })
258
+ async loadNamespaceFromBlobs(
259
+ @A_Inject(A_Caller) namespace: A_FrameNamespace,
260
+ @A_Inject(A_FrameContext) context: A_FrameContext,
261
+ @A_Inject(A_FrameStorageCodec) codec: A_FrameStorageCodec,
262
+ @A_Inject(A_FrameBrowserStorageBlobs) blobs: A_FrameBrowserStorageBlobs,
263
+ ): Promise<void> {
264
+ if (!context.encryptionKey) return;
265
+
266
+ const records = await this._loadNamespacesFromMemory(blobs, context.encryptionKey, codec);
267
+ if (records.length === 0) return;
268
+
269
+ const record = records.find(r => r.aseid === namespace.aseid.toString());
270
+ if (
271
+ record &&
272
+ record.hash === namespace.hash &&
273
+ record.aFrameServerVersion === context.serverVersion
274
+ ) {
275
+ namespace.fromJSON(record);
276
+ }
277
+ }
278
+
279
+
280
+ // ─── Internal helpers ──────────────────────────────────────────────────────
281
+
282
+ private async _loadDefinitionsFromMemory(
283
+ store: Map<string, Uint8Array>,
284
+ namespace: string,
285
+ encryptionKey: string,
286
+ codec: A_FrameStorageCodec,
287
+ ): Promise<A_FrameDefinition_Serialized[]> {
288
+ const blob = store.get(namespace);
289
+ if (!blob) return [];
290
+ try {
291
+ const plain = await A_FrameCrypto.decryptBytes(blob, encryptionKey);
292
+ return codec.decodePayload(plain);
293
+ } catch {
294
+ return [];
295
+ }
296
+ }
297
+
298
+ private async _loadNamespacesFromMemory(
299
+ blobs: A_FrameBrowserStorageBlobs,
300
+ encryptionKey: string,
301
+ codec: A_FrameStorageCodec,
302
+ ): Promise<A_FrameNamespace_Serialized[]> {
303
+ const blob = blobs.namespaceBlob;
304
+ if (!blob) return [];
305
+ try {
306
+ const plain = await A_FrameCrypto.decryptBytes(blob, encryptionKey);
307
+ return codec.decodeNamespacePayload(plain);
308
+ } catch {
309
+ return [];
310
+ }
311
+ }
312
+ }
@@ -0,0 +1,77 @@
1
+ // ─── In-memory blob store (singleton Fragment) ────────────────────────────────
2
+ //
3
+ // A_Component is stateless — persistent session state lives in a Fragment
4
+ // singleton that survives across per-call execution scopes.
5
+
6
+ import { A_Fragment } from "@adaas/a-concept";
7
+ import type { A_FrameBundle } from "@adaas/a-frame/bundle";
8
+
9
+
10
+ /** Browser-safe base64 → Uint8Array (uses globalThis.atob; falls back to Buffer in Node tests). */
11
+ function decodeBase64(b64: string): Uint8Array {
12
+ if (typeof atob === 'function') {
13
+ const bin = atob(b64);
14
+ const out = new Uint8Array(bin.length);
15
+ for (let i = 0; i < bin.length; i++) out[i] = bin.charCodeAt(i);
16
+ return out;
17
+ }
18
+ // Node fallback so the same fragment works in Jest/SSR.
19
+ return new Uint8Array(Buffer.from(b64, 'base64'));
20
+ }
21
+
22
+
23
+ export class A_FrameBrowserStorageBlobs extends A_Fragment {
24
+
25
+ private static _instance: A_FrameBrowserStorageBlobs | undefined;
26
+
27
+ static get instance(): A_FrameBrowserStorageBlobs {
28
+ if (!A_FrameBrowserStorageBlobs._instance) {
29
+ A_FrameBrowserStorageBlobs._instance = new A_FrameBrowserStorageBlobs();
30
+ }
31
+ return A_FrameBrowserStorageBlobs._instance;
32
+ }
33
+
34
+ /**
35
+ * Build a singleton blobs store seeded from a prebuilt bundle.
36
+ * Convenience for browser bootstrap.
37
+ */
38
+ static fromBundle(bundle: A_FrameBundle): A_FrameBrowserStorageBlobs {
39
+ const blobs = A_FrameBrowserStorageBlobs.instance;
40
+ blobs.seedFromBundle(bundle);
41
+ return blobs;
42
+ }
43
+
44
+ constructor() {
45
+ if (A_FrameBrowserStorageBlobs._instance)
46
+ return A_FrameBrowserStorageBlobs._instance;
47
+
48
+ super({ name: 'a-frame-browser-storage-blobs' });
49
+ }
50
+
51
+ /** namespace → encrypted definition bytes */
52
+ readonly store = new Map<string, Uint8Array>();
53
+
54
+ /** encrypted bytes for the namespace index (`__namespaces.aframe` equivalent) */
55
+ namespaceBlob: Uint8Array | null = null;
56
+
57
+ /** Bundle metadata recorded at seed time, used by A_Frame to validate versions. */
58
+ bundleMeta: { aFrameVersion: string; serverVersion: string; builtAt: string } | null = null;
59
+
60
+ /**
61
+ * Populate the store from a bundle artifact. Existing entries with the
62
+ * same namespace are overwritten; unrelated entries are preserved.
63
+ */
64
+ seedFromBundle(bundle: A_FrameBundle): void {
65
+ if (bundle.namespaces) {
66
+ this.namespaceBlob = decodeBase64(bundle.namespaces);
67
+ }
68
+ for (const [id, b64] of Object.entries(bundle.definitions)) {
69
+ this.store.set(id, decodeBase64(b64));
70
+ }
71
+ this.bundleMeta = {
72
+ aFrameVersion: bundle.aFrameVersion,
73
+ serverVersion: bundle.serverVersion,
74
+ builtAt: bundle.builtAt,
75
+ };
76
+ }
77
+ }
@@ -0,0 +1,11 @@
1
+
2
+
3
+ export * from './A-FrameStorage.component';
4
+ export * from './A-FrameStorage.codec';
5
+ export * from './A-FrameStorageOperation.context';
6
+ export * from './A-FrameStorage.error';
7
+ export * from './A-FrameStorage.types';
8
+ export * from './A-FrameStorage.constants';
9
+
10
+ export * from './browser/A-FrameBrowserStorage.component';
11
+ export * from './browser/A-FrameBrowserStorageBlobs.context';
@@ -0,0 +1,10 @@
1
+
2
+
3
+ export * from './A-FrameStorage.component';
4
+ export * from './A-FrameStorage.codec';
5
+ export * from './A-FrameStorageOperation.context';
6
+ export * from './A-FrameStorage.error';
7
+ export * from './A-FrameStorage.types';
8
+ export * from './A-FrameStorage.constants';
9
+
10
+ export * from './node/A-FrameNodeStorage.component';