@adaas/a-frame 0.0.23 → 0.1.1
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/dist/browser/channel.mjs +1 -1
- package/dist/browser/chunk-GOADBDTE.mjs +2 -0
- package/dist/browser/chunk-GOADBDTE.mjs.map +1 -0
- package/dist/browser/chunk-YQJFTBGV.mjs +3 -0
- package/dist/browser/chunk-YQJFTBGV.mjs.map +1 -0
- package/dist/browser/core.d.mts +1 -1
- package/dist/browser/core.mjs +1 -1
- package/dist/browser/core.mjs.map +1 -1
- package/dist/browser/env.mjs +1 -1
- package/dist/browser/storage.mjs +1 -1
- package/dist/node/bundle.cjs +2 -2
- package/dist/node/bundle.mjs +1 -1
- package/dist/node/channel.cjs +14 -14
- package/dist/node/channel.mjs +3 -3
- package/dist/node/chunk-5BKCX2RO.mjs +33 -0
- package/dist/node/chunk-5BKCX2RO.mjs.map +1 -0
- package/dist/node/chunk-6KAGWGTE.mjs +529 -0
- package/dist/node/chunk-6KAGWGTE.mjs.map +1 -0
- package/dist/node/chunk-F46TSY2K.cjs +541 -0
- package/dist/node/chunk-F46TSY2K.cjs.map +1 -0
- package/dist/node/chunk-GRR6NNWY.cjs +688 -0
- package/dist/node/chunk-GRR6NNWY.cjs.map +1 -0
- package/dist/node/chunk-OYC6L5NX.mjs +6 -0
- package/dist/node/chunk-OYC6L5NX.mjs.map +1 -0
- package/dist/node/chunk-R2H234YO.cjs +8 -0
- package/dist/node/chunk-R2H234YO.cjs.map +1 -0
- package/dist/node/chunk-SDKIJDMH.mjs +655 -0
- package/dist/node/chunk-SDKIJDMH.mjs.map +1 -0
- package/dist/node/chunk-XFUF7SDO.cjs +35 -0
- package/dist/node/chunk-XFUF7SDO.cjs.map +1 -0
- package/dist/node/core.cjs +21 -23
- package/dist/node/core.cjs.map +1 -1
- package/dist/node/core.d.mts +1 -1
- package/dist/node/core.d.ts +1 -1
- package/dist/node/core.mjs +18 -20
- package/dist/node/core.mjs.map +1 -1
- package/dist/node/env.cjs +3 -3
- package/dist/node/env.mjs +2 -2
- package/dist/node/storage.cjs +8 -8
- package/dist/node/storage.mjs +3 -3
- package/package.json +2 -2
- package/src/lib/A-Frame/A-Frame.component.env-browser.ts +5 -3
- package/src/lib/A-Frame/A-Frame.component.env-node.ts +13 -14
- package/tests/A-Frame.test.ts +2 -0
package/dist/browser/channel.mjs
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import {b as b$3,a as a$2}from'./chunk-
|
|
1
|
+
import {b as b$3,a as a$2}from'./chunk-YQJFTBGV.mjs';import'./chunk-K4MZY4ME.mjs';import {c,b as b$2}from'./chunk-AYN7KUQT.mjs';import {b,a as a$1}from'./chunk-ZVCTU2DN.mjs';import'./chunk-H6OZP4ZV.mjs';import'./chunk-VDVJWU5T.mjs';import {a,b as b$1}from'./chunk-DMGQW3AO.mjs';import {A_Feature,A_Inject,A_Caller,A_Error,A_Fragment,A_Component,A_Scope,A_Context,A_Entity}from'@adaas/a-concept';var m={Request:"_A_FRAME_REQUEST",Socket:"_A_FRAME_SOCKET"};var A={Connecting:"connecting",Open:"open",Closed:"closed"},f={onEvent:"_A_FRAME_CHANNEL_SOCKET_ON_EVENT",onError:"_A_FRAME_CHANNEL_SOCKET_ON_ERROR",onOpen:"_A_FRAME_CHANNEL_SOCKET_ON_OPEN",onClose:"_A_FRAME_CHANNEL_SOCKET_ON_CLOSE"};var i=class extends A_Fragment{constructor(e,s,a){super({name:"a-frame-channel-request"});this.method=e;this.path=s;this.body=a;}complete(e){this._response=e;}fail(e){this._error=e;}get response(){return this._response}get error(){return this._error}};var n=class extends A_Error{};n.InvalidRequest="InvalidRequest",n.Timeout="Timeout",n.RequestFailed="RequestFailed";var E=class extends A_Fragment{get A_FRAME_FILE_EXTENSION(){return ".aframe"}get A_FRAME_NAMESPACES_BIN(){return `__namespaces${this.A_FRAME_FILE_EXTENSION}`}get A_FRAME_SYNC(){return process.env.A_FRAME_SYNC!=="false"}get A_FRAME_TOKEN(){return process.env.A_FRAME_TOKEN||""}get A_FRAME_SERVER_URL(){return process.env.A_FRAME_SERVER_URL||"http://localhost:3663"}get A_FRAME_SERVER_API_KEY(){return process.env.A_FRAME_SERVER_API_KEY||""}get A_FRAME_STORAGE_DIR(){return process.env.A_FRAME_STORAGE_DIR||".aframestr"}get A_FRAME_VERSION(){return a$2||"0.0.1"}};var F={Init:"_A_FRAME_DYNAMIC_SESSION_INIT",Question:"_A_FRAME_DYNAMIC_SESSION_QUESTION",Answer:"_A_FRAME_DYNAMIC_SESSION_ANSWER",Destroy:"_A_FRAME_DYNAMIC_SESSION_DESTROY"};var S=class extends A_Entity{static get concept(){return "a-frame"}get scope(){return this._scope||(this._scope=A_Context.allocate(this,new A_Scope({name:`${this.aseid.id}-scope`}))),this._scope}get currentTurn(){return this._currentTurn}get initDate(){return new Date(this._initDate)}static onQuestion(){}static onAnswer(){}fromNew(t){this._turnsCount=t.turnsCount||5,this._currentTurn=0,this._initDate=new Date().toISOString();}fromJSON(t){this._turnsCount=t.turnsCount,this._currentTurn=t.currentTurn,this._initDate=t.initDate;}async init(){await this.call(F.Init);}async destroy(t){await this.call(F.Destroy,t);}async question(){this._currentTurn++,await this.call(F.Question);}async answer(){await this.call(F.Answer);}toJSON(){return {...super.toJSON(),turnsCount:this._turnsCount,currentTurn:this._currentTurn,initDate:this._initDate}}};var R=class extends A_Fragment{constructor(e={}){super({name:"a-frame-dynamic-structure-operation-context"});this._meta=new Map;this._meta.set("params",e);}get params(){return this._meta.get("params")}get(e){return this._meta.get(e)}set(e,s){this._meta.set(e,s);}};var d=class extends A_Component{async generate(t){let e=new i("POST","/api/completions",{prompt:t,max_tokens:512}),s=new A_Scope({name:"A_FrameChannel.generate",fragments:[e]}).inherit(A_Context.scope(this));try{return await this.call(m.Request,s),s.destroy(),e}catch(a){throw s.destroy(),new n({title:n.RequestFailed,description:`Failed to generate completion: ${a instanceof Error?a.message:String(a)}`})}}async embed(t){let e=new i("POST","/api/embeddings",{input:t}),s=new A_Scope({name:"A_FrameChannel.embed",fragments:[e]}).inherit(A_Context.scope(this));try{return await this.call(m.Request,s),s.destroy(),e}catch(a){throw s.destroy(),new n({title:n.RequestFailed,description:`Failed to embed input: ${a instanceof Error?a.message:String(a)}`})}}async getCredentials(){let t=new i("GET","/api/credentials/me"),e=new A_Scope({name:"A_FrameChannel.getCredentials",fragments:[t]}).inherit(A_Context.scope(this));try{return await this.call(m.Request,e),e.destroy(),t}catch(s){throw e.destroy(),new n({title:n.RequestFailed,description:`Failed to get credentials: ${s instanceof Error?s.message:String(s)}`})}}async ping(){let t=new i("GET","/health"),e=new A_Scope({name:"A_FrameChannel.ping",fragments:[t]}).inherit(A_Context.scope(this));try{return await this.call(m.Request,e),e.destroy(),t}catch{return e.destroy(),t}}async embedDefinition(t,e){let s=new i("POST","/api/v1/definition/embed",{definition:t.toJSON()}),a=new A_Scope({name:"A_FrameChannel.embedDefinition",fragments:[s]}).inherit(A_Context.scope(this));try{await this.call(m.Request,a),a.destroy();let r=s.response;if(!r.data||!r.data[0]||!r.data[0].embedding)throw new n({title:n.InvalidRequest,description:`Invalid embedding response for definition "${t.name}"`});let _=new Float32Array(r.data[0].embedding);t.hydrateFromEmbedding(_,{model:r.model,dimensions:r.meta.dimensions,inputCount:r.meta.input_count,aFrameServerVersion:r.meta.server_version,aFrameVersion:e.A_FRAME_VERSION,credentialId:r.meta.credential_id,date:r.date});}catch(r){throw new n({title:n.RequestFailed,description:`Failed to embed definition "${t.name}": ${r instanceof Error?r.message:String(r)}`})}}async embedNamespace(t,e){let s=new i("POST","/api/v1/namespace/embed",{namespace:t.toJSON()}),a=new A_Scope({name:"A_FrameChannel.embedNamespace",fragments:[s]}).inherit(A_Context.scope(this));try{await this.call(m.Request,a),a.destroy();let r=s.response;if(!r.data||!r.data[0]||!r.data[0].embedding)throw new n({title:n.InvalidRequest,description:`Invalid embedding response for namespace "${t.name}"`});let _=new Float32Array(r.data[0].embedding);t.hydrateFromEmbedding(_,{model:r.model,dimensions:r.meta.dimensions,inputCount:r.meta.input_count,aFrameServerVersion:r.meta.server_version,aFrameVersion:e.A_FRAME_VERSION,credentialId:r.meta.credential_id,date:r.date});}catch(r){throw new n({title:n.RequestFailed,description:`Failed to embed namespace "${t.name}": ${r instanceof Error?r.message:String(r)}`})}}async generateDynamicStructure(t,e,s){}};a([A_Feature.Extend({name:a$1.Embed,scope:[b]}),b$1(0,A_Inject(A_Caller)),b$1(1,A_Inject(E))],d.prototype,"embedDefinition",1),a([A_Feature.Extend({name:b$2.Embed,scope:[c]}),b$1(0,A_Inject(A_Caller)),b$1(1,A_Inject(E))],d.prototype,"embedNamespace",1),a([b$1(0,A_Inject(A_Caller)),b$1(1,A_Inject(S)),b$1(2,A_Inject(R))],d.prototype,"generateDynamicStructure",1);var C=class extends d{async request(t,e){let s=`${e.A_FRAME_SERVER_URL}${t.path}`,a=new AbortController,r=setTimeout(()=>{a.abort(),t.fail(new n({title:n.Timeout,description:`Request to ${t.path} timed out after 15 seconds`}));},15e3);try{let _=await fetch(s,{method:t.method,headers:{"Content-Type":"application/json",Authorization:`Bearer ${e.A_FRAME_SERVER_API_KEY}`},body:t.body!==void 0?JSON.stringify(t.body):void 0,signal:a.signal});t.complete(await _.json());}catch{t.fail(new n({title:n.RequestFailed,description:`Request to ${t.path} failed or timed out`}));}finally{clearTimeout(r);}}};a([A_Feature.Extend({name:m.Request,scope:[d]}),b$1(0,A_Inject(i)),b$1(1,A_Inject(b$3))],C.prototype,"request",1);var g=class extends A_Fragment{constructor(t,e){super({name:"a-frame-channel-event-"+t}),this._data=e,this._eventName=t;}get name(){return this._eventName}get data(){return this._data}};var N=class extends A_Entity{constructor(){super(...arguments);this._sendFn=null;}static onEvent(e){let s=(e||"all")+f.onEvent;return (a,r,_)=>A_Feature.Extend({name:s,scope:[a.constructor]})(a,r,_)}get scope(){return this._scope||(this._scope=A_Context.allocate(this,new A_Scope({name:`${this.aseid.id}-scope`}))),this._scope}get method(){return this._method}get path(){return this._path}get body(){return this._body}get status(){return this._status}get error(){return this._error}get initDate(){return new Date(this._initDate)}attachSendFn(e){this._sendFn=e,this._status=A.Open;}send(e){if(!this._sendFn||this._status!==A.Open)throw new n({title:n.InvalidRequest,description:`Cannot send event "${e.name}": WebSocket is not open (status: ${this._status})`});this._sendFn(JSON.stringify({type:e.name,data:e.data}));}complete(){this._sendFn=null,this._status=A.Closed;}fail(e){this._sendFn=null,this._status=A.Closed,this._error=e;}destroy(){this.scope.destroy();}async propagate(e,s){let a=new g(e,s),r=new A_Scope({name:"A_FrameChannelSocket.propagate",fragments:[a]}).inherit(A_Context.scope(this));try{let _=(e||"all")+f.onEvent;await this.call(_,r),r.destroy();}catch{r.destroy();}}fromNew(e){this._method=e.method,this._path=e.path,this._body=e.body,this._status=A.Connecting,this._initDate=new Date().toISOString();}fromJSON(e){this._method=e.method,this._path=e.path,this._body=e.body,this._status=e.status,this._initDate=e.initDate;}toJSON(){return {...super.toJSON(),initDate:this._initDate,status:this._status,error:this._error?this._error.toJSON():void 0,method:this._method,path:this._path,body:this._body}}};
|
|
2
2
|
export{C as A_FrameBrowserChannel,N as A_FrameChannelSocket};//# sourceMappingURL=channel.mjs.map
|
|
3
3
|
//# sourceMappingURL=channel.mjs.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import {b as b$1}from'./chunk-YQJFTBGV.mjs';import {c,b as b$3}from'./chunk-AYN7KUQT.mjs';import {a as a$2}from'./chunk-INS7RO3B.mjs';import {b as b$2,a as a$1}from'./chunk-ZVCTU2DN.mjs';import {a,b}from'./chunk-DMGQW3AO.mjs';import {A_Concept,A_Inject,A_Scope,A_Feature,A_Caller,A_Error,A_Fragment,A_Component,A_Context}from'@adaas/a-concept';var w=class extends A_Fragment{constructor(){super({name:"a-frame-context"});}get encryptionKey(){return this.credentials?.encryption_key}get serverVersion(){return this.credentials?.server_version}isAuthenticated(){return !!this.credentials}setCredentials(s){if(s.error){this.credentials=void 0;return}this.credentials=s.response||void 0;}};var S={SaveDefinitions:"_A_FRAME_STORAGE_SAVE",LoadDefinitions:"_A_FRAME_STORAGE_LOAD",DestroyDefinitions:"_A_FRAME_STORAGE_DESTROY",SaveNamespaces:"_A_FRAME_STORAGE_SAVE_NAMESPACES",LoadNamespaces:"_A_FRAME_STORAGE_LOAD_NAMESPACES",DestroyNamespaces:"_A_FRAME_STORAGE_DESTROY_NAMESPACES"};var g=class extends A_Fragment{constructor(s){super({name:"a-frame-storage-operation"}),this._params=s;}get result(){return this._result}get error(){return this._error}get params(){return this._params}complete(s){this._result=s;}fail(s){this._error=s;}};var _=class extends A_Error{};_.SaveDefinitionFailed="SaveDefinitionFailed",_.LoadDefinitionsFailed="LoadDefinitionsFailed",_.DestroyDefinitionsFailed="DestroyDefinitionsFailed",_.SaveNamespaceFailed="SaveNamespaceFailed",_.LoadNamespacesFailed="LoadNamespacesFailed",_.DestroyNamespacesFailed="DestroyNamespacesFailed";var R=class extends A_Component{async saveDefinitions(s){let e=new g({records:s}),t=new A_Scope({name:"A_FrameStorage.saveDefinitions",fragments:[e]}).inherit(A_Context.scope(this));try{return await this.call(S.SaveDefinitions,t),t.destroy(),e}catch{return e.fail(new _({title:_.SaveDefinitionFailed,description:"Failed to save definition records."})),t.destroy(),e}}async loadDefinitions(s,e){let t=new g({namespaceId:s}),a=new A_Scope({name:"A_FrameStorage.loadDefinitions",fragments:[t]}).inherit(A_Context.scope(this));try{return await this.call(S.LoadDefinitions,a),a.destroy(),t}catch{return t.fail(new _({title:_.LoadDefinitionsFailed,description:"Failed to load definition records."})),a.destroy(),t}}async destroyDefinitions(s,e){let t=new g({namespaceId:s,definitionId:e}),a=new A_Scope({name:"A_FrameStorage.destroyDefinitions",fragments:[t]}).inherit(A_Context.scope(this));try{return await this.call(S.DestroyDefinitions,a),a.destroy(),t}catch{return t.fail(new _({title:_.DestroyDefinitionsFailed,description:"Failed to destroy definition records."})),a.destroy(),t}}async saveNamespaces(s){let e=new g({records:s}),t=new A_Scope({name:"A_FrameStorage.saveNamespaces",fragments:[e]}).inherit(A_Context.scope(this));try{return await this.call(S.SaveNamespaces,t),t.destroy(),e}catch{return e.fail(new _({title:_.SaveNamespaceFailed,description:"Failed to save namespace records."})),t.destroy(),e}}async loadNamespaces(s){let e=new g({namespaces:s}),t=new A_Scope({name:"A_FrameStorage.loadNamespaces",fragments:[e]}).inherit(A_Context.scope(this));try{return await this.call(S.LoadNamespaces,t),t.destroy(),e}catch{return e.fail(new _({title:_.LoadNamespacesFailed,description:"Failed to load namespace records."})),t.destroy(),e}}async destroyNamespaces(s){let e=new g({namespaces:s}),t=new A_Scope({name:"A_FrameStorage.destroyNamespaces",fragments:[e]}).inherit(A_Context.scope(this));try{return await this.call(S.DestroyNamespaces,t),t.destroy(),e}catch{return e.fail(new _({title:_.DestroyNamespacesFailed,description:"Failed to destroy namespace records."})),t.destroy(),e}}};function G(F){if(typeof atob=="function"){let s=atob(F),e=new Uint8Array(s.length);for(let t=0;t<s.length;t++)e[t]=s.charCodeAt(t);return e}return new Uint8Array(Buffer.from(F,"base64"))}var D=class F extends A_Fragment{constructor(){if(F._instance)return F._instance;super({name:"a-frame-browser-storage-blobs"});this.store=new Map;this.namespaceBlob=null;this.bundleMeta=null;}static get instance(){return F._instance||(F._instance=new F),F._instance}static fromBundle(e){let t=F.instance;return t.seedFromBundle(e),t}seedFromBundle(e){e.namespaces&&(this.namespaceBlob=G(e.namespaces));for(let[t,a]of Object.entries(e.definitions))this.store.set(t,G(a));this.bundleMeta={aFrameVersion:e.aFrameVersion,serverVersion:e.serverVersion,builtAt:e.builtAt};}};var I=new TextEncoder,C=new TextDecoder,N=class F extends A_Fragment{constructor(){super(...arguments);this.enc=new TextEncoder;this.dec=new TextDecoder;this.A_FRAME_FILE_MAGIC=1162691147;this.A_FRAME_FILE_VERSION=1;this.A_FRAME_HEADER_SIZE=20;}static get fileExtension(){return ".aframe"}getFileName(e){return `${e}${F.fileExtension}`}getNamespaceFileName(){return `__namespaces${F.fileExtension}`}encodePayload(e){let t=[];if(e.some(r=>!r.embedding))throw new Error("All records must have embeddings to be encoded");let a=new Uint8Array(this.A_FRAME_HEADER_SIZE),i=new DataView(a.buffer);i.setUint32(0,this.A_FRAME_FILE_MAGIC,true),a[4]=this.A_FRAME_FILE_VERSION,i.setUint32(5,e.length,true);let d=e[0]?.embedding.length??0;i.setUint16(9,d,true),t.push(a);for(let r of e){let p=I.encode(r.aseid.toString()),y=I.encode(r.name),x=JSON.stringify({hash:r.hash,source:r.source,type:r.type,description:r.description,metadata:r.metadata,namespace:r.namespace,date:r.date,model:r.model,credentialId:r.credentialId,aFrameVersion:r.aFrameVersion,aFrameServerVersion:r.aFrameServerVersion}),E=I.encode(x),b=2+p.length+2+y.length+r.embedding.length*4+4+E.length,f=new Uint8Array(b),h=new DataView(f.buffer),o=0;h.setUint16(o,p.length,true),o+=2,f.set(p,o),o+=p.length,h.setUint16(o,y.length,true),o+=2,f.set(y,o),o+=y.length;for(let u=0;u<r.embedding.length;u++)h.setFloat32(o,r.embedding[u],true),o+=4;h.setUint32(o,E.length,true),o+=4,f.set(E,o),t.push(f);}let l=t.reduce((r,p)=>r+p.length,0),A=new Uint8Array(l),n=0;for(let r of t)A.set(r,n),n+=r.length;return A}decodePayload(e){if(e.length<this.A_FRAME_HEADER_SIZE)throw new Error("Corrupt index: too short for header");let t=new DataView(e.buffer,e.byteOffset,e.byteLength),a=t.getUint32(0,true);if(a!==this.A_FRAME_FILE_MAGIC)throw new Error(`Corrupt index: bad magic 0x${a.toString(16)}`);let i=e[4];if(i!==this.A_FRAME_FILE_VERSION)throw new Error(`Unsupported index version: ${i}`);let d=t.getUint32(5,true),l=t.getUint16(9,true),A=[],n=this.A_FRAME_HEADER_SIZE;for(let r=0;r<d;r++){let p=t.getUint16(n,true);n+=2;let y=C.decode(e.slice(n,n+p));n+=p;let x=t.getUint16(n,true);n+=2;let E=C.decode(e.slice(n,n+x));n+=x;let b=new Float32Array(l);for(let u=0;u<l;u++)b[u]=t.getFloat32(n,true),n+=4;let f=t.getUint32(n,true);n+=4;let h=C.decode(e.slice(n,n+f));n+=f;let o=JSON.parse(h);A.push({aseid:y,hash:o.hash??y,name:E,type:o.type,embedding:b,source:o.source,description:o.description,metadata:o.metadata,namespace:o.namespace,date:o.date,model:o.model,credentialId:o.credentialId,aFrameVersion:o.aFrameVersion,aFrameServerVersion:o.aFrameServerVersion});}return A}encodeNamespacePayload(e){let t=[];if(e.some(r=>!r.embedding))throw new Error("All records must have embeddings to be encoded");let a=new Uint8Array(this.A_FRAME_HEADER_SIZE),i=new DataView(a.buffer);i.setUint32(0,this.A_FRAME_FILE_MAGIC,true),a[4]=this.A_FRAME_FILE_VERSION,i.setUint32(5,e.length,true);let d=e[0]?.embedding.length??0;i.setUint16(9,d,true),t.push(a);for(let r of e){let p=I.encode(r.aseid.toString()),y=I.encode(r.name),x=JSON.stringify({hash:r.hash,description:r.description,metadata:r.metadata,embeddedAt:r.embeddedAt,embeddingModel:r.embeddingModel,credentialId:r.credentialId,aFrameVersion:r.aFrameVersion,aFrameServerVersion:r.aFrameServerVersion}),E=I.encode(x),b=2+p.length+2+y.length+r.embedding.length*4+4+E.length,f=new Uint8Array(b),h=new DataView(f.buffer),o=0;h.setUint16(o,p.length,true),o+=2,f.set(p,o),o+=p.length,h.setUint16(o,y.length,true),o+=2,f.set(y,o),o+=y.length;for(let u=0;u<r.embedding.length;u++)h.setFloat32(o,r.embedding[u],true),o+=4;h.setUint32(o,E.length,true),o+=4,f.set(E,o),t.push(f);}let l=t.reduce((r,p)=>r+p.length,0),A=new Uint8Array(l),n=0;for(let r of t)A.set(r,n),n+=r.length;return A}decodeNamespacePayload(e){if(e.length<this.A_FRAME_HEADER_SIZE)throw new Error("Corrupt namespace index: too short for header");let t=new DataView(e.buffer,e.byteOffset,e.byteLength),a=t.getUint32(0,true);if(a!==this.A_FRAME_FILE_MAGIC)throw new Error(`Corrupt namespace index: bad magic 0x${a.toString(16)}`);let i=e[4];if(i!==this.A_FRAME_FILE_VERSION)throw new Error(`Unsupported namespace index version: ${i}`);let d=t.getUint32(5,true),l=t.getUint16(9,true),A=[],n=this.A_FRAME_HEADER_SIZE;for(let r=0;r<d;r++){let p=t.getUint16(n,true);n+=2;let y=C.decode(e.slice(n,n+p));n+=p;let x=t.getUint16(n,true);n+=2;let E=C.decode(e.slice(n,n+x));n+=x;let b=new Float32Array(l);for(let u=0;u<l;u++)b[u]=t.getFloat32(n,true),n+=4;let f=t.getUint32(n,true);n+=4;let h=C.decode(e.slice(n,n+f));n+=f;let o=JSON.parse(h);A.push({aseid:y,hash:o.hash??y,name:E,embedding:b,description:o.description,metadata:o.metadata,embeddedAt:o.embeddedAt,embeddingModel:o.embeddingModel,credentialId:o.credentialId,aFrameVersion:o.aFrameVersion,aFrameServerVersion:o.aFrameServerVersion});}return A}};var v=class extends R{onLoad(s,e){e||s.register(D.instance);}async saveDefinitionsToMemory(s,e,t,a,i){let d=e.params.records,l=d[0].namespace,A=await this._loadDefinitionsFromMemory(i.store,l,t.encryptionKey,a),n=new Map;for(let p of A)n.set(p.aseid,p);for(let p of d)n.set(p.aseid.toString(),p);let r=a.encodePayload(Array.from(n.values()));i.store.set(l,await a$2.encryptBytes(r,t.encryptionKey)),e.complete({saved:d.length});}async loadDefinitionsFromMemory(s,e,t,a,i){let d=e.params.namespaceId,l=await this._loadDefinitionsFromMemory(i.store,d,t.encryptionKey,a);e.complete({records:l});}async destroyDefinitionsFromMemory(s,e,t,a,i){let d=e.params.namespaceId,l=e.params.definitionId,n=(await this._loadDefinitionsFromMemory(i.store,d,t.encryptionKey,a)).filter(p=>p.aseid!==l),r=a.encodePayload(n);i.store.set(d,await a$2.encryptBytes(r,t.encryptionKey)),e.complete({records:n});}async saveNamespacesToMemory(s,e,t,a,i){let d=e.params.records,l=await this._loadNamespacesFromMemory(i,t.encryptionKey,a),A=new Map;for(let r of l)A.set(r.aseid,r);for(let r of d)A.set(r.aseid.toString(),r);let n=a.encodeNamespacePayload(Array.from(A.values()));i.namespaceBlob=await a$2.encryptBytes(n,t.encryptionKey),e.complete({success:true});}async loadNamespacesFromMemory(s,e,t,a,i){let d=e.params.namespaces,l=await this._loadNamespacesFromMemory(i,t.encryptionKey,a);e.complete({records:d?l.filter(A=>d.includes(A.name)):l});}async destroyNamespacesFromMemory(s,e,t,a,i){let d=e.params.namespaces,A=(await this._loadNamespacesFromMemory(i,t.encryptionKey,a)).filter(r=>!d.includes(r.aseid)),n=a.encodeNamespacePayload(A);i.namespaceBlob=await a$2.encryptBytes(n,t.encryptionKey);try{for(let r of d)i.store.delete(r);e.complete({success:!0});}catch{e.fail(new _({title:_.DestroyNamespacesFailed,description:"Failed to destroy namespace records."})),e.complete({success:false});}}async loadDefinitionFromBlobs(s,e,t,a){if(!e.encryptionKey)return;let i=await this._loadDefinitionsFromMemory(a.store,s.namespace.id,e.encryptionKey,t);if(i.length===0)return;let d=i.find(l=>l.aseid===s.aseid.toString());d&&d.hash===s.hash&&d.aFrameServerVersion===e.serverVersion&&s.fromJSON(d);}async loadNamespaceFromBlobs(s,e,t,a){if(!e.encryptionKey)return;let i=await this._loadNamespacesFromMemory(a,e.encryptionKey,t);if(i.length===0)return;let d=i.find(l=>l.aseid===s.aseid.toString());d&&d.hash===s.hash&&d.aFrameServerVersion===e.serverVersion&&s.fromJSON(d);}async _loadDefinitionsFromMemory(s,e,t,a){let i=s.get(e);if(!i)return [];try{let d=await a$2.decryptBytes(i,t);return a.decodePayload(d)}catch{return []}}async _loadNamespacesFromMemory(s,e,t){let a=s.namespaceBlob;if(!a)return [];try{let i=await a$2.decryptBytes(a,e);return t.decodeNamespacePayload(i)}catch{return []}}};a([A_Concept.Load(),b(0,A_Inject(A_Scope)),b(1,A_Inject(D))],v.prototype,"onLoad",1),a([A_Feature.Extend({name:S.SaveDefinitions,scope:[R]}),b(0,A_Inject(b$1)),b(1,A_Inject(g)),b(2,A_Inject(w)),b(3,A_Inject(N)),b(4,A_Inject(D))],v.prototype,"saveDefinitionsToMemory",1),a([A_Feature.Extend({name:S.LoadDefinitions,scope:[R]}),b(0,A_Inject(b$1)),b(1,A_Inject(g)),b(2,A_Inject(w)),b(3,A_Inject(N)),b(4,A_Inject(D))],v.prototype,"loadDefinitionsFromMemory",1),a([A_Feature.Extend({name:S.DestroyDefinitions,scope:[R]}),b(0,A_Inject(b$1)),b(1,A_Inject(g)),b(2,A_Inject(w)),b(3,A_Inject(N)),b(4,A_Inject(D))],v.prototype,"destroyDefinitionsFromMemory",1),a([A_Feature.Extend({name:S.SaveNamespaces,scope:[R]}),b(0,A_Inject(b$1)),b(1,A_Inject(g)),b(2,A_Inject(w)),b(3,A_Inject(N)),b(4,A_Inject(D))],v.prototype,"saveNamespacesToMemory",1),a([A_Feature.Extend({name:S.LoadNamespaces,scope:[R]}),b(0,A_Inject(b$1)),b(1,A_Inject(g)),b(2,A_Inject(w)),b(3,A_Inject(N)),b(4,A_Inject(D))],v.prototype,"loadNamespacesFromMemory",1),a([A_Feature.Extend({name:S.DestroyNamespaces,scope:[R]}),b(0,A_Inject(b$1)),b(1,A_Inject(g)),b(2,A_Inject(w)),b(3,A_Inject(N)),b(4,A_Inject(D))],v.prototype,"destroyNamespacesFromMemory",1),a([A_Feature.Extend({name:a$1.Load,scope:[b$2]}),b(0,A_Inject(A_Caller)),b(1,A_Inject(w)),b(2,A_Inject(N)),b(3,A_Inject(D))],v.prototype,"loadDefinitionFromBlobs",1),a([A_Feature.Extend({name:b$3.Load,scope:[c]}),b(0,A_Inject(A_Caller)),b(1,A_Inject(w)),b(2,A_Inject(N)),b(3,A_Inject(D))],v.prototype,"loadNamespaceFromBlobs",1);export{w as a,S as b,g as c,_ as d,R as e,D as f,N as g,v as h};//# sourceMappingURL=chunk-GOADBDTE.mjs.map
|
|
2
|
+
//# sourceMappingURL=chunk-GOADBDTE.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/lib/A-Frame/A-Frame.context.ts","../../src/lib/A-FrameStorage/A-FrameStorage.constants.ts","../../src/lib/A-FrameStorage/A-FrameStorageOperation.context.ts","../../src/lib/A-FrameStorage/A-FrameStorage.error.ts","../../src/lib/A-FrameStorage/A-FrameStorage.component.ts","../../src/lib/A-FrameStorage/browser/A-FrameBrowserStorageBlobs.context.ts","../../src/lib/A-FrameStorage/A-FrameStorage.codec.ts","../../src/lib/A-FrameStorage/browser/A-FrameBrowserStorage.component.ts"],"names":["A_FrameContext","A_Fragment","credentials","A_FrameStorageFeatures","A_FrameStorageOperation","params","result","error","A_FrameStorageError","A_Error","A_FrameStorage","A_Component","definitions","context","executionScope","A_Scope","A_Context","namespaceId","definitionId","namespaces","namespaceIds","namespacesIds","decodeBase64","b64","bin","out","i","A_FrameBrowserStorageBlobs","_A_FrameBrowserStorageBlobs","bundle","blobs","id","enc","dec","A_FrameStorageCodec","_A_FrameStorageCodec","namespace","records","parts","header","headerView","dims","rec","aseidBytes","nameBytes","metaJson","metaBytes","recSize","recBuf","view","offset","total","s","pos","p","data","magic","version","count","aseidLen","aseid","nameLen","name","embedding","d","metaLen","meta","A_FrameBrowserStorageProvider","scope","env","operation","global","codec","existing","merged","r","payload","A_FrameCrypto","filtered","ids","definition","record","store","encryptionKey","blob","plain","__decorateClass","A_Concept","__decorateParam","A_Inject","A_Feature","A_FrameEnv","A_FrameDefinitionFeatures","A_FrameDefinition","A_Caller","A_FrameNamespaceFeatures","A_FrameNamespace"],"mappings":"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","file":"chunk-GOADBDTE.mjs","sourcesContent":["import { A_Fragment } from \"@adaas/a-concept\"\nimport { A_FrameChannelRequest } from \"../A-FrameChannel/A-FrameChannelRequest.context\";\nimport { A_Frame_CredentialResponse } from \"../A-FrameChannel/A-FrameChannel.types\";\n\n\nexport class A_FrameContext extends A_Fragment {\n\n private credentials?: A_Frame_CredentialResponse;\n\n\n constructor() {\n super({ name: 'a-frame-context' });\n }\n\n\n get encryptionKey(): string | undefined {\n return this.credentials?.encryption_key;\n }\n\n\n get serverVersion(): string | undefined {\n return this.credentials?.server_version;\n }\n\n\n isAuthenticated(): boolean {\n return !!this.credentials;\n }\n\n\n setCredentials(credentials: A_FrameChannelRequest<A_Frame_CredentialResponse>) {\n if (credentials.error) {\n this.credentials = undefined;\n return;\n }\n\n this.credentials = credentials.response || undefined;\n }\n\n}","\n\nexport const A_FrameStorageFeatures = {\n SaveDefinitions: '_A_FRAME_STORAGE_SAVE',\n LoadDefinitions: '_A_FRAME_STORAGE_LOAD',\n DestroyDefinitions: '_A_FRAME_STORAGE_DESTROY',\n \n SaveNamespaces: '_A_FRAME_STORAGE_SAVE_NAMESPACES',\n LoadNamespaces: '_A_FRAME_STORAGE_LOAD_NAMESPACES',\n DestroyNamespaces: '_A_FRAME_STORAGE_DESTROY_NAMESPACES',\n} as const","import { A_Error, A_Fragment } from \"@adaas/a-concept\";\n\n\nexport class A_FrameStorageOperation<\n _ParamsType = any,\n _ResultType = any\n> extends A_Fragment {\n\n protected _result?: _ResultType;\n\n protected _error?: A_Error;\n\n protected _params!: _ParamsType;\n\n\n constructor(\n params: _ParamsType\n ) {\n super({ name: 'a-frame-storage-operation' });\n this._params = params;\n }\n\n\n /**\n * If the operation succeeded, this will contain the result data. If the operation failed, this will be undefined.\n */\n get result(): _ResultType | undefined {\n return this._result;\n }\n /**\n * If the operation failed, this will contain an error object with details about the failure. If the operation succeeded, this will be undefined.\n */\n get error(): A_Error | undefined {\n return this._error;\n }\n /**\n * Parameters used to execute the operation, e.g. definitionId and namespaceId for a saveDefinition operation.\n */\n get params(): _ParamsType {\n return this._params;\n }\n /**\n * Marks the operation as completed successfully with the given result. This will set the `result` property and leave `error` as undefined.\n * \n * @param result \n */\n complete(result: _ResultType): void {\n this._result = result;\n }\n /**\n * Marks the operation as failed with the given error. This will set the `error` property and leave `result` as undefined.\n * \n * @param error \n */\n fail(error: A_Error): void {\n this._error = error;\n }\n\n}\n","import { A_Error } from \"@adaas/a-concept\";\n\n\n\nexport class A_FrameStorageError extends A_Error {\n static readonly SaveDefinitionFailed = 'SaveDefinitionFailed';\n static readonly LoadDefinitionsFailed = 'LoadDefinitionsFailed';\n static readonly DestroyDefinitionsFailed = 'DestroyDefinitionsFailed';\n static readonly SaveNamespaceFailed = 'SaveNamespaceFailed';\n static readonly LoadNamespacesFailed = 'LoadNamespacesFailed';\n static readonly DestroyNamespacesFailed = 'DestroyNamespacesFailed';\n\n}","import { A_Component, A_Context, A_Scope } from '@adaas/a-concept';\nimport { A_FrameNamespace_Serialized } from '../A-FrameNamespace/A-FrameNamespace.types';\nimport { A_FrameStorageFeatures } from './A-FrameStorage.constants';\nimport { A_FrameStorageOperation } from './A-FrameStorageOperation.context';\nimport { A_FrameStorageError } from './A-FrameStorage.error';\nimport { A_FrameStorageDestroyDefinitionsOperation, A_FrameStorageDestroyDefinitionsOperationParams, A_FrameStorageDestroyDefinitionsOperationResult, A_FrameStorageDestroyNamespacesOperation, A_FrameStorageDestroyNamespacesOperationParams, A_FrameStorageDestroyNamespacesOperationResult, A_FrameStorageLoadDefinitionsOperation, A_FrameStorageLoadDefinitionsOperationParams, A_FrameStorageLoadDefinitionsOperationResult, A_FrameStorageLoadNamespacesOperation, A_FrameStorageLoadNamespacesOperationParams, A_FrameStorageLoadNamespacesOperationResult, A_FrameStorageSaveDefinitionOperation, A_FrameStorageSaveDefinitionOperationParams, A_FrameStorageSaveDefinitionOperationResult, A_FrameStorageSaveNamespaceOperation, A_FrameStorageSaveNamespaceOperationParams, A_FrameStorageSaveNamespaceOperationResult } from './A-FrameStorage.types';\nimport { A_FrameDefinition_Serialized } from '../A-FrameDefinition/A-FrameDefinition.types';\n\n\nexport class A_FrameStorage extends A_Component {\n\n async saveDefinitions(definitions: Array<A_FrameDefinition_Serialized>): Promise<A_FrameStorageSaveDefinitionOperation> {\n const context = new A_FrameStorageOperation<A_FrameStorageSaveDefinitionOperationParams, A_FrameStorageSaveDefinitionOperationResult>({\n records: definitions\n });\n\n const executionScope = new A_Scope({\n name: 'A_FrameStorage.saveDefinitions',\n fragments: [context]\n })\n .inherit(A_Context.scope(this));\n\n try {\n await this.call(A_FrameStorageFeatures.SaveDefinitions, executionScope);\n executionScope.destroy();\n\n return context;\n } catch (error) {\n\n context.fail(new A_FrameStorageError({\n title: A_FrameStorageError.SaveDefinitionFailed,\n description: `Failed to save definition records.`,\n }));\n\n executionScope.destroy();\n\n return context;\n }\n }\n\n async loadDefinitions(namespaceId: string, definitionId: string): Promise<A_FrameStorageLoadDefinitionsOperation> {\n const context = new A_FrameStorageOperation<A_FrameStorageLoadDefinitionsOperationParams, A_FrameStorageLoadDefinitionsOperationResult>({\n namespaceId,\n });\n\n const executionScope = new A_Scope({\n name: 'A_FrameStorage.loadDefinitions',\n fragments: [context]\n })\n .inherit(A_Context.scope(this));\n\n try {\n await this.call(A_FrameStorageFeatures.LoadDefinitions, executionScope);\n executionScope.destroy();\n\n return context;\n } catch (error) {\n\n context.fail(new A_FrameStorageError({\n title: A_FrameStorageError.LoadDefinitionsFailed,\n description: `Failed to load definition records.`,\n }));\n\n executionScope.destroy();\n\n return context;\n }\n }\n\n\n async destroyDefinitions(namespaceId: string, definitionId: string): Promise<A_FrameStorageDestroyDefinitionsOperation> {\n const context = new A_FrameStorageOperation<A_FrameStorageDestroyDefinitionsOperationParams, A_FrameStorageDestroyDefinitionsOperationResult>({\n namespaceId,\n definitionId\n });\n\n const executionScope = new A_Scope({\n name: 'A_FrameStorage.destroyDefinitions',\n fragments: [context]\n })\n .inherit(A_Context.scope(this));\n\n try {\n await this.call(A_FrameStorageFeatures.DestroyDefinitions, executionScope);\n executionScope.destroy();\n\n return context;\n } catch (error) {\n\n context.fail(new A_FrameStorageError({\n title: A_FrameStorageError.DestroyDefinitionsFailed,\n description: `Failed to destroy definition records.`,\n }));\n\n executionScope.destroy();\n\n return context;\n }\n }\n\n\n\n async saveNamespaces(namespaces: A_FrameNamespace_Serialized[]): Promise<A_FrameStorageSaveNamespaceOperation> {\n const context = new A_FrameStorageOperation<A_FrameStorageSaveNamespaceOperationParams, A_FrameStorageSaveNamespaceOperationResult>({\n records: namespaces\n });\n\n const executionScope = new A_Scope({\n name: 'A_FrameStorage.saveNamespaces',\n fragments: [context]\n })\n .inherit(A_Context.scope(this));\n\n try {\n await this.call(A_FrameStorageFeatures.SaveNamespaces, executionScope);\n executionScope.destroy();\n\n return context;\n } catch (error) {\n\n context.fail(new A_FrameStorageError({\n title: A_FrameStorageError.SaveNamespaceFailed,\n description: `Failed to save namespace records.`,\n }));\n\n executionScope.destroy();\n\n return context;\n }\n }\n\n async loadNamespaces(\n namespaceIds: string[]\n ): Promise<A_FrameStorageLoadNamespacesOperation> {\n const context = new A_FrameStorageOperation<A_FrameStorageLoadNamespacesOperationParams, A_FrameStorageLoadNamespacesOperationResult>({\n namespaces: namespaceIds\n });\n\n const executionScope = new A_Scope({\n name: 'A_FrameStorage.loadNamespaces',\n fragments: [context]\n })\n .inherit(A_Context.scope(this));\n\n try {\n await this.call(A_FrameStorageFeatures.LoadNamespaces, executionScope);\n executionScope.destroy();\n\n return context;\n } catch (error) {\n\n context.fail(new A_FrameStorageError({\n title: A_FrameStorageError.LoadNamespacesFailed,\n description: `Failed to load namespace records.`,\n }));\n\n executionScope.destroy();\n\n return context;\n }\n }\n\n async destroyNamespaces(namespacesIds: string[]): Promise<A_FrameStorageDestroyNamespacesOperation> {\n const context = new A_FrameStorageOperation<A_FrameStorageDestroyNamespacesOperationParams, A_FrameStorageDestroyNamespacesOperationResult>({\n namespaces: namespacesIds\n });\n\n const executionScope = new A_Scope({\n name: 'A_FrameStorage.destroyNamespaces',\n fragments: [context]\n })\n .inherit(A_Context.scope(this));\n\n try {\n await this.call(A_FrameStorageFeatures.DestroyNamespaces, executionScope);\n executionScope.destroy();\n\n return context;\n } catch (error) {\n\n context.fail(new A_FrameStorageError({\n title: A_FrameStorageError.DestroyNamespacesFailed,\n description: `Failed to destroy namespace records.`,\n }));\n\n executionScope.destroy();\n\n return context;\n }\n }\n}\n","// ─── In-memory blob store (singleton Fragment) ────────────────────────────────\n//\n// A_Component is stateless — persistent session state lives in a Fragment\n// singleton that survives across per-call execution scopes.\n\nimport { A_Fragment } from \"@adaas/a-concept\";\nimport type { A_FrameBundle } from \"@adaas/a-frame/bundle\";\n\n\n/** Browser-safe base64 → Uint8Array (uses globalThis.atob; falls back to Buffer in Node tests). */\nfunction decodeBase64(b64: string): Uint8Array {\n if (typeof atob === 'function') {\n const bin = atob(b64);\n const out = new Uint8Array(bin.length);\n for (let i = 0; i < bin.length; i++) out[i] = bin.charCodeAt(i);\n return out;\n }\n // Node fallback so the same fragment works in Jest/SSR.\n return new Uint8Array(Buffer.from(b64, 'base64'));\n}\n\n\nexport class A_FrameBrowserStorageBlobs extends A_Fragment {\n\n private static _instance: A_FrameBrowserStorageBlobs | undefined;\n\n static get instance(): A_FrameBrowserStorageBlobs {\n if (!A_FrameBrowserStorageBlobs._instance) {\n A_FrameBrowserStorageBlobs._instance = new A_FrameBrowserStorageBlobs();\n }\n return A_FrameBrowserStorageBlobs._instance;\n }\n\n /**\n * Build a singleton blobs store seeded from a prebuilt bundle.\n * Convenience for browser bootstrap.\n */\n static fromBundle(bundle: A_FrameBundle): A_FrameBrowserStorageBlobs {\n const blobs = A_FrameBrowserStorageBlobs.instance;\n blobs.seedFromBundle(bundle);\n return blobs;\n }\n\n constructor() {\n if (A_FrameBrowserStorageBlobs._instance)\n return A_FrameBrowserStorageBlobs._instance;\n\n super({ name: 'a-frame-browser-storage-blobs' });\n }\n\n /** namespace → encrypted definition bytes */\n readonly store = new Map<string, Uint8Array>();\n\n /** encrypted bytes for the namespace index (`__namespaces.aframe` equivalent) */\n namespaceBlob: Uint8Array | null = null;\n\n /** Bundle metadata recorded at seed time, used by A_Frame to validate versions. */\n bundleMeta: { aFrameVersion: string; serverVersion: string; builtAt: string } | null = null;\n\n /**\n * Populate the store from a bundle artifact. Existing entries with the\n * same namespace are overwritten; unrelated entries are preserved.\n */\n seedFromBundle(bundle: A_FrameBundle): void {\n if (bundle.namespaces) {\n this.namespaceBlob = decodeBase64(bundle.namespaces);\n }\n for (const [id, b64] of Object.entries(bundle.definitions)) {\n this.store.set(id, decodeBase64(b64));\n }\n this.bundleMeta = {\n aFrameVersion: bundle.aFrameVersion,\n serverVersion: bundle.serverVersion,\n builtAt: bundle.builtAt,\n };\n }\n}","/**\n * A-FrameStorage binary codec — shared between node and browser environments.\n *\n * Binary payload format (decrypted) — used for BOTH definition records and namespace records:\n * [HEADER 20B]\n * magic 4B = 0x454D424B (\"EMBK\")\n * version 1B = 0x01\n * count 4B (uint32 LE)\n * dims 2B (uint16 LE)\n * reserved 9B\n * [RECORD × count]\n * aseidLen 2B (uint16 LE)\n * aseid NB utf-8 (primary entity ID, e.g. \"app@root:123@v2\")\n * nameLen 2B (uint16 LE)\n * name NB utf-8\n * vector dims×4B Float32 LE\n * metaLen 4B (uint32 LE)\n * meta NB JSON\n */\n\nimport { A_Fragment } from '@adaas/a-concept';\n\nimport type { A_FrameNamespace_Serialized } from '../A-FrameNamespace/A-FrameNamespace.types';\nimport { A_FrameDefinition_Serialized } from '../A-FrameDefinition/A-FrameDefinition.types';\nimport { A_FrameTargetType } from '../A-Frame/A-Frame.types';\n\nconst enc = new TextEncoder();\nconst dec = new TextDecoder();\n\n\nexport class A_FrameStorageCodec extends A_Fragment {\n\n protected enc = new TextEncoder();\n protected dec = new TextDecoder();\n\n // ─── Binary file format constants ────────────────────────────────────────────\n // FILE LAYOUT (all multi-byte values are little-endian):\n // [HEADER 20B]\n // magic 4B = 0x454D424B (\"EMBK\")\n // version 1B = 0x01\n // count 4B (uint32)\n // dims 2B (uint16)\n // reserved 9B\n // [RECORD × count]\n // aseidLen 2B (uint16) — variable-length primary entity ID\n // aseid NB utf-8\n // nameLen 2B (uint16)\n // name NB utf-8\n // vector dims×4B Float32 LE\n // metaLen 4B (uint32)\n // meta NB JSON\n // Encrypted on disk: [IV 12B][AuthTag 16B][Ciphertext]\n A_FRAME_FILE_MAGIC = 0x454d424b;\n A_FRAME_FILE_VERSION = 0x01;\n A_FRAME_HEADER_SIZE = 20;\n\n\n\n static get fileExtension() {\n return '.aframe';\n }\n\n\n getFileName(namespace: string) {\n return `${namespace}${A_FrameStorageCodec.fileExtension}`;\n }\n\n getNamespaceFileName() {\n return `__namespaces${A_FrameStorageCodec.fileExtension}`;\n }\n\n\n encodePayload(records: A_FrameDefinition_Serialized[]): Uint8Array {\n const parts: Uint8Array[] = [];\n\n if (records.some(r => !r.embedding)) {\n throw new Error('All records must have embeddings to be encoded');\n }\n\n const header = new Uint8Array(this.A_FRAME_HEADER_SIZE);\n const headerView = new DataView(header.buffer);\n headerView.setUint32(0, this.A_FRAME_FILE_MAGIC, true);\n header[4] = this.A_FRAME_FILE_VERSION;\n headerView.setUint32(5, records.length, true);\n const dims = records[0]?.embedding!.length ?? 0;\n headerView.setUint16(9, dims, true);\n // bytes 11-19: reserved (zeroed)\n parts.push(header);\n\n for (const rec of records) {\n const aseidBytes = enc.encode(rec.aseid.toString());\n const nameBytes = enc.encode(rec.name);\n const metaJson = JSON.stringify({\n hash: rec.hash,\n source: rec.source,\n type: rec.type,\n description: rec.description,\n metadata: rec.metadata,\n namespace: rec.namespace,\n date: rec.date,\n model: rec.model,\n credentialId: rec.credentialId,\n aFrameVersion: rec.aFrameVersion,\n aFrameServerVersion: rec.aFrameServerVersion,\n });\n const metaBytes = enc.encode(metaJson);\n\n const recSize =\n 2 + aseidBytes.length +\n 2 + nameBytes.length +\n rec.embedding!.length * 4 +\n 4 + metaBytes.length;\n\n const recBuf = new Uint8Array(recSize);\n const view = new DataView(recBuf.buffer);\n let offset = 0;\n\n view.setUint16(offset, aseidBytes.length, true); offset += 2;\n recBuf.set(aseidBytes, offset); offset += aseidBytes.length;\n\n view.setUint16(offset, nameBytes.length, true); offset += 2;\n recBuf.set(nameBytes, offset); offset += nameBytes.length;\n\n for (let i = 0; i < rec.embedding!.length; i++) {\n view.setFloat32(offset, rec.embedding![i], true);\n offset += 4;\n }\n\n view.setUint32(offset, metaBytes.length, true); offset += 4;\n recBuf.set(metaBytes, offset);\n\n parts.push(recBuf);\n }\n\n const total = parts.reduce((s, p) => s + p.length, 0);\n const out = new Uint8Array(total);\n let pos = 0;\n for (const p of parts) { out.set(p, pos); pos += p.length; }\n return out;\n }\n\n decodePayload(data: Uint8Array): A_FrameDefinition_Serialized[] {\n if (data.length < this.A_FRAME_HEADER_SIZE) throw new Error('Corrupt index: too short for header');\n\n const view = new DataView(data.buffer, data.byteOffset, data.byteLength);\n\n const magic = view.getUint32(0, true);\n if (magic !== this.A_FRAME_FILE_MAGIC) throw new Error(`Corrupt index: bad magic 0x${magic.toString(16)}`);\n\n const version = data[4];\n if (version !== this.A_FRAME_FILE_VERSION) throw new Error(`Unsupported index version: ${version}`);\n\n const count = view.getUint32(5, true);\n const dims = view.getUint16(9, true);\n\n const records: A_FrameDefinition_Serialized[] = [];\n let offset = this.A_FRAME_HEADER_SIZE;\n\n for (let i = 0; i < count; i++) {\n const aseidLen = view.getUint16(offset, true); offset += 2;\n const aseid = dec.decode(data.slice(offset, offset + aseidLen)); offset += aseidLen;\n\n const nameLen = view.getUint16(offset, true); offset += 2;\n const name = dec.decode(data.slice(offset, offset + nameLen)); offset += nameLen;\n\n const embedding = new Float32Array(dims);\n for (let d = 0; d < dims; d++) {\n embedding[d] = view.getFloat32(offset, true);\n offset += 4;\n }\n\n const metaLen = view.getUint32(offset, true); offset += 4;\n const metaJson = dec.decode(data.slice(offset, offset + metaLen)); offset += metaLen;\n const meta = JSON.parse(metaJson) as {\n hash?: string;\n source: string;\n description?: string;\n type: A_FrameTargetType;\n metadata?: Record<string, unknown>;\n namespace: string;\n date: string;\n model: string;\n credentialId: string;\n aFrameVersion: string;\n aFrameServerVersion: string;\n };\n\n records.push({\n aseid,\n hash: meta.hash ?? aseid,\n name,\n type: meta.type,\n embedding,\n source: meta.source,\n description: meta.description,\n metadata: meta.metadata,\n namespace: meta.namespace,\n date: meta.date,\n model: meta.model,\n credentialId: meta.credentialId,\n aFrameVersion: meta.aFrameVersion,\n aFrameServerVersion: meta.aFrameServerVersion,\n });\n }\n\n return records;\n }\n\n\n encodeNamespacePayload(records: A_FrameNamespace_Serialized[]): Uint8Array {\n const parts: Uint8Array[] = [];\n\n if (records.some(r => !r.embedding)) {\n throw new Error('All records must have embeddings to be encoded');\n }\n\n const header = new Uint8Array(this.A_FRAME_HEADER_SIZE);\n const headerView = new DataView(header.buffer);\n headerView.setUint32(0, this.A_FRAME_FILE_MAGIC, true);\n header[4] = this.A_FRAME_FILE_VERSION;\n headerView.setUint32(5, records.length, true);\n const dims = records[0]?.embedding!.length ?? 0;\n headerView.setUint16(9, dims, true);\n parts.push(header);\n\n for (const rec of records) {\n const aseidBytes = enc.encode(rec.aseid.toString());\n const nameBytes = enc.encode(rec.name);\n const metaJson = JSON.stringify({\n hash: rec.hash,\n description: rec.description,\n metadata: rec.metadata,\n embeddedAt: rec.embeddedAt,\n embeddingModel: rec.embeddingModel,\n credentialId: rec.credentialId,\n aFrameVersion: rec.aFrameVersion,\n aFrameServerVersion: rec.aFrameServerVersion,\n });\n const metaBytes = enc.encode(metaJson);\n\n const recSize =\n 2 + aseidBytes.length +\n 2 + nameBytes.length +\n rec.embedding!.length * 4 +\n 4 + metaBytes.length;\n\n const recBuf = new Uint8Array(recSize);\n const view = new DataView(recBuf.buffer);\n let offset = 0;\n\n view.setUint16(offset, aseidBytes.length, true); offset += 2;\n recBuf.set(aseidBytes, offset); offset += aseidBytes.length;\n\n view.setUint16(offset, nameBytes.length, true); offset += 2;\n recBuf.set(nameBytes, offset); offset += nameBytes.length;\n\n for (let i = 0; i < rec.embedding!.length; i++) {\n view.setFloat32(offset, rec.embedding![i], true);\n offset += 4;\n }\n\n view.setUint32(offset, metaBytes.length, true); offset += 4;\n recBuf.set(metaBytes, offset);\n\n parts.push(recBuf);\n }\n\n const total = parts.reduce((s, p) => s + p.length, 0);\n const out = new Uint8Array(total);\n let pos = 0;\n for (const p of parts) { out.set(p, pos); pos += p.length; }\n return out;\n }\n\n decodeNamespacePayload(data: Uint8Array): A_FrameNamespace_Serialized[] {\n if (data.length < this.A_FRAME_HEADER_SIZE) throw new Error('Corrupt namespace index: too short for header');\n\n const view = new DataView(data.buffer, data.byteOffset, data.byteLength);\n\n const magic = view.getUint32(0, true);\n if (magic !== this.A_FRAME_FILE_MAGIC) throw new Error(`Corrupt namespace index: bad magic 0x${magic.toString(16)}`);\n\n const version = data[4];\n if (version !== this.A_FRAME_FILE_VERSION) throw new Error(`Unsupported namespace index version: ${version}`);\n\n const count = view.getUint32(5, true);\n const dims = view.getUint16(9, true);\n\n const records: A_FrameNamespace_Serialized[] = [];\n let offset = this.A_FRAME_HEADER_SIZE;\n\n for (let i = 0; i < count; i++) {\n const aseidLen = view.getUint16(offset, true); offset += 2;\n const aseid = dec.decode(data.slice(offset, offset + aseidLen)); offset += aseidLen;\n\n const nameLen = view.getUint16(offset, true); offset += 2;\n const name = dec.decode(data.slice(offset, offset + nameLen)); offset += nameLen;\n\n const embedding = new Float32Array(dims);\n for (let d = 0; d < dims; d++) {\n embedding[d] = view.getFloat32(offset, true);\n offset += 4;\n }\n\n const metaLen = view.getUint32(offset, true); offset += 4;\n const metaJson = dec.decode(data.slice(offset, offset + metaLen)); offset += metaLen;\n const meta = JSON.parse(metaJson) as {\n hash?: string;\n description?: string;\n metadata?: Record<string, unknown>;\n embeddedAt: number;\n embeddingModel?: string;\n credentialId?: string;\n aFrameVersion?: string;\n aFrameServerVersion?: string;\n };\n\n records.push({\n aseid,\n hash: meta.hash ?? aseid,\n name,\n embedding,\n description: meta.description,\n metadata: meta.metadata,\n embeddedAt: meta.embeddedAt,\n embeddingModel: meta.embeddingModel,\n credentialId: meta.credentialId,\n aFrameVersion: meta.aFrameVersion,\n aFrameServerVersion: meta.aFrameServerVersion,\n });\n }\n\n return records;\n }\n\n}\n\n\n","import { A_Caller, A_Concept, A_Feature, A_Inject, A_Scope } from \"@adaas/a-concept\";\nimport { A_FrameStorageFeatures } from \"../A-FrameStorage.constants\";\nimport { A_FrameStorage } from \"../A-FrameStorage.component\";\nimport { A_FrameEnv } from \"../../A-FrameEnv/A-FrameEnv.fragment.env-browser\";\nimport { A_FrameStorageOperation } from \"../A-FrameStorageOperation.context\";\nimport {\n A_FrameStorageDestroyDefinitionsOperation,\n A_FrameStorageDestroyNamespacesOperation,\n A_FrameStorageLoadDefinitionsOperation,\n A_FrameStorageLoadNamespacesOperation,\n A_FrameStorageSaveDefinitionOperation,\n A_FrameStorageSaveNamespaceOperation,\n} from \"../A-FrameStorage.types\";\nimport { A_FrameCrypto } from \"../../A-FrameCrypto/A-FrameCrypto.component.env-browser\";\nimport { A_FrameDefinition_Serialized } from \"../../A-FrameDefinition/A-FrameDefinition.types\";\nimport { A_FrameNamespace_Serialized } from \"../../A-FrameNamespace/A-FrameNamespace.types\";\nimport { A_FrameBrowserStorageBlobs } from \"./A-FrameBrowserStorageBlobs.context\";\nimport { A_FrameStorageCodec } from \"../A-FrameStorage.codec\";\nimport { A_FrameContext } from \"../../A-Frame/A-Frame.context\";\nimport { A_FrameStorageError } from \"../A-FrameStorage.error\";\nimport { A_FrameDefinition } from \"../../A-FrameDefinition\";\nimport { A_FrameDefinitionFeatures } from \"../../A-FrameDefinition/A-FrameDefinition.constants\";\nimport { A_FrameNamespace } from \"../../A-FrameNamespace\";\nimport { A_FrameNamespaceFeatures } from \"../../A-FrameNamespace/A-FrameNamespace.constants\";\n\n\n/**\n * A_FrameBrowserStorageProvider — Browser environment\n *\n * Stores encrypted definition and namespace records entirely in memory.\n * Pre-built .aframe index files should be injected at bundle startup via\n * A_FrameBrowserStorageProvider.loadBlob() so that read-only access works\n * without any network or filesystem calls.\n *\n * Example (Vite):\n * import mathBin from './embed-index/math.aframe?arraybuffer';\n * A_FrameBrowserStorageProvider.loadBlob('math', new Uint8Array(mathBin));\n */\nexport class A_FrameBrowserStorageProvider extends A_FrameStorage {\n\n @A_Concept.Load()\n onLoad(\n @A_Inject(A_Scope) scope: A_Scope,\n @A_Inject(A_FrameBrowserStorageBlobs) blobs?: A_FrameBrowserStorageBlobs,\n ) {\n if (!blobs) {\n scope.register(A_FrameBrowserStorageBlobs.instance);\n }\n }\n\n\n // ---------------------------------------------------------------------------------------\n //--------------------------Storage Features Extensions----------------------------------\n //---------------------------------------------------------------------------------------\n\n @A_Feature.Extend({\n name: A_FrameStorageFeatures.SaveDefinitions,\n scope: [A_FrameStorage],\n })\n async saveDefinitionsToMemory(\n @A_Inject(A_FrameEnv) env: A_FrameEnv,\n @A_Inject(A_FrameStorageOperation) operation: A_FrameStorageSaveDefinitionOperation,\n @A_Inject(A_FrameContext) global: A_FrameContext,\n @A_Inject(A_FrameStorageCodec) codec: A_FrameStorageCodec,\n @A_Inject(A_FrameBrowserStorageBlobs) blobs: A_FrameBrowserStorageBlobs,\n ): Promise<void> {\n const records = operation.params.records;\n const namespace = records[0].namespace;\n\n const existing = await this._loadDefinitionsFromMemory(blobs.store, namespace, global.encryptionKey!, codec);\n\n const merged = new Map<string, A_FrameDefinition_Serialized>();\n for (const r of existing) merged.set(r.aseid, r);\n for (const d of records) merged.set(d.aseid.toString(), d);\n\n const payload = codec.encodePayload(Array.from(merged.values()));\n blobs.store.set(namespace, await A_FrameCrypto.encryptBytes(payload, global.encryptionKey!));\n\n operation.complete({ saved: records.length });\n }\n\n @A_Feature.Extend({\n name: A_FrameStorageFeatures.LoadDefinitions,\n scope: [A_FrameStorage],\n })\n async loadDefinitionsFromMemory(\n @A_Inject(A_FrameEnv) env: A_FrameEnv,\n @A_Inject(A_FrameStorageOperation) operation: A_FrameStorageLoadDefinitionsOperation,\n @A_Inject(A_FrameContext) global: A_FrameContext,\n @A_Inject(A_FrameStorageCodec) codec: A_FrameStorageCodec,\n @A_Inject(A_FrameBrowserStorageBlobs) blobs: A_FrameBrowserStorageBlobs,\n ): Promise<void> {\n const namespace = operation.params.namespaceId;\n const records = await this._loadDefinitionsFromMemory(blobs.store, namespace, global.encryptionKey!, codec);\n operation.complete({ records });\n }\n\n @A_Feature.Extend({\n name: A_FrameStorageFeatures.DestroyDefinitions,\n scope: [A_FrameStorage],\n })\n async destroyDefinitionsFromMemory(\n @A_Inject(A_FrameEnv) env: A_FrameEnv,\n @A_Inject(A_FrameStorageOperation) operation: A_FrameStorageDestroyDefinitionsOperation,\n @A_Inject(A_FrameContext) global: A_FrameContext,\n @A_Inject(A_FrameStorageCodec) codec: A_FrameStorageCodec,\n @A_Inject(A_FrameBrowserStorageBlobs) blobs: A_FrameBrowserStorageBlobs,\n ): Promise<void> {\n const namespace = operation.params.namespaceId;\n const definitionId = operation.params.definitionId;\n\n const existing = await this._loadDefinitionsFromMemory(blobs.store, namespace, global.encryptionKey!, codec);\n const filtered = existing.filter(r => r.aseid !== definitionId);\n\n const payload = codec.encodePayload(filtered);\n blobs.store.set(namespace, await A_FrameCrypto.encryptBytes(payload, global.encryptionKey!));\n\n operation.complete({ records: filtered });\n }\n\n\n // ---------------------------------------------------------------------------------------\n //--------------------------Namespace Features Extensions--------------------------------\n //---------------------------------------------------------------------------------------\n\n @A_Feature.Extend({\n name: A_FrameStorageFeatures.SaveNamespaces,\n scope: [A_FrameStorage],\n })\n async saveNamespacesToMemory(\n @A_Inject(A_FrameEnv) env: A_FrameEnv,\n @A_Inject(A_FrameStorageOperation) operation: A_FrameStorageSaveNamespaceOperation,\n @A_Inject(A_FrameContext) global: A_FrameContext,\n @A_Inject(A_FrameStorageCodec) codec: A_FrameStorageCodec,\n @A_Inject(A_FrameBrowserStorageBlobs) blobs: A_FrameBrowserStorageBlobs,\n ): Promise<void> {\n const records = operation.params.records;\n\n const existing = await this._loadNamespacesFromMemory(blobs, global.encryptionKey!, codec);\n\n const merged = new Map<string, A_FrameNamespace_Serialized>();\n for (const r of existing) merged.set(r.aseid, r);\n for (const d of records) merged.set(d.aseid.toString(), d);\n\n const payload = codec.encodeNamespacePayload(Array.from(merged.values()));\n blobs.namespaceBlob = await A_FrameCrypto.encryptBytes(payload, global.encryptionKey!);\n\n operation.complete({ success: true });\n }\n\n @A_Feature.Extend({\n name: A_FrameStorageFeatures.LoadNamespaces,\n scope: [A_FrameStorage],\n })\n async loadNamespacesFromMemory(\n @A_Inject(A_FrameEnv) env: A_FrameEnv,\n @A_Inject(A_FrameStorageOperation) operation: A_FrameStorageLoadNamespacesOperation,\n @A_Inject(A_FrameContext) global: A_FrameContext,\n @A_Inject(A_FrameStorageCodec) codec: A_FrameStorageCodec,\n @A_Inject(A_FrameBrowserStorageBlobs) blobs: A_FrameBrowserStorageBlobs,\n ): Promise<void> {\n const ids = operation.params.namespaces;\n const records = await this._loadNamespacesFromMemory(blobs, global.encryptionKey!, codec);\n\n operation.complete({\n records: ids ? records.filter(r => ids.includes(r.name)) : records\n });\n }\n\n @A_Feature.Extend({\n name: A_FrameStorageFeatures.DestroyNamespaces,\n scope: [A_FrameStorage],\n })\n async destroyNamespacesFromMemory(\n @A_Inject(A_FrameEnv) env: A_FrameEnv,\n @A_Inject(A_FrameStorageOperation) operation: A_FrameStorageDestroyNamespacesOperation,\n @A_Inject(A_FrameContext) global: A_FrameContext,\n @A_Inject(A_FrameStorageCodec) codec: A_FrameStorageCodec,\n @A_Inject(A_FrameBrowserStorageBlobs) blobs: A_FrameBrowserStorageBlobs,\n ): Promise<void> {\n const ids = operation.params.namespaces;\n\n const existing = await this._loadNamespacesFromMemory(blobs, global.encryptionKey!, codec);\n const filtered = existing.filter(r => !ids.includes(r.aseid));\n\n const payload = codec.encodeNamespacePayload(filtered);\n blobs.namespaceBlob = await A_FrameCrypto.encryptBytes(payload, global.encryptionKey!);\n\n // Drop definition blobs for destroyed namespaces\n try {\n for (const id of ids) {\n blobs.store.delete(id);\n }\n operation.complete({ success: true });\n } catch (error) {\n operation.fail(new A_FrameStorageError({\n title: A_FrameStorageError.DestroyNamespacesFailed,\n description: `Failed to destroy namespace records.`,\n }));\n operation.complete({ success: false });\n }\n }\n\n\n // ---------------------------------------------------------------------------------------\n //--------------------------Definition Entity-level Extensions---------------------------\n //---------------------------------------------------------------------------------------\n\n /**\n * Hydrate a single A_FrameDefinition from the in-memory bundle blobs.\n *\n * Mirrors the Node `loadDefinitionFromDisk` extension. Looks up the\n * namespace's encrypted blob in the singleton blob store, decrypts and\n * decodes it, then calls `definition.fromJSON(record)` only when the\n * stored hash and server version match the live entity.\n *\n * No-op when:\n * - no blob has been seeded for the namespace\n * - decryption fails (wrong key / corrupted blob)\n * - the record is absent or stale\n */\n @A_Feature.Extend({\n name: A_FrameDefinitionFeatures.Load,\n scope: [A_FrameDefinition],\n })\n async loadDefinitionFromBlobs(\n @A_Inject(A_Caller) definition: A_FrameDefinition,\n @A_Inject(A_FrameContext) context: A_FrameContext,\n @A_Inject(A_FrameStorageCodec) codec: A_FrameStorageCodec,\n @A_Inject(A_FrameBrowserStorageBlobs) blobs: A_FrameBrowserStorageBlobs,\n ): Promise<void> {\n if (!context.encryptionKey) return;\n\n const records = await this._loadDefinitionsFromMemory(\n blobs.store, definition.namespace.id, context.encryptionKey, codec\n );\n if (records.length === 0) return;\n\n const record = records.find(r => r.aseid === definition.aseid.toString());\n if (\n record &&\n record.hash === definition.hash &&\n record.aFrameServerVersion === context.serverVersion\n ) {\n definition.fromJSON(record);\n }\n }\n\n\n // ---------------------------------------------------------------------------------------\n //--------------------------Namespace Entity-level Extensions----------------------------\n //---------------------------------------------------------------------------------------\n\n @A_Feature.Extend({\n name: A_FrameNamespaceFeatures.Load,\n scope: [A_FrameNamespace],\n })\n async loadNamespaceFromBlobs(\n @A_Inject(A_Caller) namespace: A_FrameNamespace,\n @A_Inject(A_FrameContext) context: A_FrameContext,\n @A_Inject(A_FrameStorageCodec) codec: A_FrameStorageCodec,\n @A_Inject(A_FrameBrowserStorageBlobs) blobs: A_FrameBrowserStorageBlobs,\n ): Promise<void> {\n if (!context.encryptionKey) return;\n\n const records = await this._loadNamespacesFromMemory(blobs, context.encryptionKey, codec);\n if (records.length === 0) return;\n\n const record = records.find(r => r.aseid === namespace.aseid.toString());\n if (\n record &&\n record.hash === namespace.hash &&\n record.aFrameServerVersion === context.serverVersion\n ) {\n namespace.fromJSON(record);\n }\n }\n\n\n // ─── Internal helpers ──────────────────────────────────────────────────────\n\n private async _loadDefinitionsFromMemory(\n store: Map<string, Uint8Array>,\n namespace: string,\n encryptionKey: string,\n codec: A_FrameStorageCodec,\n ): Promise<A_FrameDefinition_Serialized[]> {\n const blob = store.get(namespace);\n if (!blob) return [];\n try {\n const plain = await A_FrameCrypto.decryptBytes(blob, encryptionKey);\n return codec.decodePayload(plain);\n } catch {\n return [];\n }\n }\n\n private async _loadNamespacesFromMemory(\n blobs: A_FrameBrowserStorageBlobs,\n encryptionKey: string,\n codec: A_FrameStorageCodec,\n ): Promise<A_FrameNamespace_Serialized[]> {\n const blob = blobs.namespaceBlob;\n if (!blob) return [];\n try {\n const plain = await A_FrameCrypto.decryptBytes(blob, encryptionKey);\n return codec.decodeNamespacePayload(plain);\n } catch {\n return [];\n }\n }\n}\n"]}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import {A_Fragment}from'@adaas/a-concept';var e="0.1.0";var s=class extends A_Fragment{get A_FRAME_TOKEN(){return window.A_FRAME_TOKEN||""}get A_FRAME_SERVER_URL(){return window.A_FRAME_SERVER_URL||"http://localhost:3000"}get A_FRAME_VERSION(){return e}get A_FRAME_SERVER_API_KEY(){return window.A_FRAME_SERVER_API_KEY||""}get A_FRAME_STORAGE_DIR(){return window.A_FRAME_STORAGE_DIR||".aframestr"}};
|
|
2
|
+
export{e as a,s as b};//# sourceMappingURL=chunk-YQJFTBGV.mjs.map
|
|
3
|
+
//# sourceMappingURL=chunk-YQJFTBGV.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../package.json","../../src/lib/A-FrameEnv/A-FrameEnv.fragment.env-browser.ts"],"names":["version","A_FrameEnv","A_Fragment"],"mappings":"0CAEE,IAAAA,EAAW,QCON,IAAMC,CAAAA,CAAN,cAAyBC,UAAkC,CAE9D,IAAI,aAAA,EAAgB,CAChB,OAAQ,MAAA,CAAe,aAAA,EAAiB,EAC5C,CAEA,IAAI,kBAAA,EAAqB,CACrB,OAAQ,MAAA,CAAe,oBAAsB,uBACjD,CAEA,IAAI,eAAA,EAAkB,CAClB,OAAWF,CACf,CAEA,IAAI,sBAAA,EAAyB,CACzB,OAAQ,MAAA,CAAe,sBAAA,EAA0B,EACrD,CAEA,IAAI,mBAAA,EAAsB,CACtB,OAAQ,MAAA,CAAe,mBAAA,EAAuB,YAClD,CACJ","file":"chunk-YQJFTBGV.mjs","sourcesContent":["{\n \"name\": \"@adaas/a-frame\",\n \"version\": \"0.1.0\",\n \"description\": \"A-frame is index build engine for A-Concept ecosystem. It provides a way to build index structures for A-Concept basics\",\n \"license\": \"Apache-2.0\",\n \"author\": {\n \"name\": \"ADAAS YAZILIM LİMİTED ŞİRKETİ\",\n \"email\": \"contact-us@adaas.org\"\n },\n \"bugs\": {\n \"url\": \"https://github.com/ADAAS-org/adaas-a-frame/issues\"\n },\n \"homepage\": \"https://github.com/ADAAS-org/adaas-a-frame#readme\",\n \"repository\": {\n \"type\": \"git\",\n \"url\": \"git+https://github.com/ADAAS-org/adaas-a-frame.git\"\n },\n \"bin\": {\n \"a-frame\": \"./dist/index.cjs\"\n },\n \"exports\": {\n \".\": {\n \"browser\": {\n \"types\": \"./dist/browser/index.d.mts\",\n \"import\": \"./dist/browser/index.mjs\"\n },\n \"types\": \"./dist/node/index.d.ts\",\n \"import\": \"./dist/node/index.mjs\",\n \"require\": \"./dist/node/index.cjs\"\n },\n \"./core\": {\n \"browser\": {\n \"types\": \"./dist/browser/core.d.mts\",\n \"import\": \"./dist/browser/core.mjs\"\n },\n \"types\": \"./dist/node/core.d.ts\",\n \"import\": \"./dist/node/core.mjs\",\n \"require\": \"./dist/node/core.cjs\"\n },\n \"./bundle\": {\n \"browser\": {\n \"types\": \"./dist/browser/bundle.d.mts\",\n \"import\": \"./dist/browser/bundle.mjs\"\n },\n \"types\": \"./dist/node/bundle.d.ts\",\n \"import\": \"./dist/node/bundle.mjs\",\n \"require\": \"./dist/node/bundle.cjs\"\n },\n \"./channel\": {\n \"browser\": {\n \"types\": \"./dist/browser/channel.d.mts\",\n \"import\": \"./dist/browser/channel.mjs\"\n },\n \"types\": \"./dist/node/channel.d.ts\",\n \"import\": \"./dist/node/channel.mjs\",\n \"require\": \"./dist/node/channel.cjs\"\n },\n \"./crypto\": {\n \"browser\": {\n \"types\": \"./dist/browser/crypto.d.mts\",\n \"import\": \"./dist/browser/crypto.mjs\"\n },\n \"types\": \"./dist/node/crypto.d.ts\",\n \"import\": \"./dist/node/crypto.mjs\",\n \"require\": \"./dist/node/crypto.cjs\"\n },\n \"./definition\": {\n \"browser\": {\n \"types\": \"./dist/browser/definition.d.mts\",\n \"import\": \"./dist/browser/definition.mjs\"\n },\n \"types\": \"./dist/node/definition.d.ts\",\n \"import\": \"./dist/node/definition.mjs\",\n \"require\": \"./dist/node/definition.cjs\"\n },\n \"./dynamic-feature\": {\n \"browser\": {\n \"types\": \"./dist/browser/dynamic-feature.d.mts\",\n \"import\": \"./dist/browser/dynamic-feature.mjs\"\n },\n \"types\": \"./dist/node/dynamic-feature.d.ts\",\n \"import\": \"./dist/node/dynamic-feature.mjs\",\n \"require\": \"./dist/node/dynamic-feature.cjs\"\n },\n \"./dynamic-structure\": {\n \"browser\": {\n \"types\": \"./dist/browser/dynamic-structure.d.mts\",\n \"import\": \"./dist/browser/dynamic-structure.mjs\"\n },\n \"types\": \"./dist/node/dynamic-structure.d.ts\",\n \"import\": \"./dist/node/dynamic-structure.mjs\",\n \"require\": \"./dist/node/dynamic-structure.cjs\"\n },\n \"./env\": {\n \"browser\": {\n \"types\": \"./dist/browser/env.d.mts\",\n \"import\": \"./dist/browser/env.mjs\"\n },\n \"types\": \"./dist/node/env.d.ts\",\n \"import\": \"./dist/node/env.mjs\",\n \"require\": \"./dist/node/env.cjs\"\n },\n \"./index\": {\n \"browser\": {\n \"types\": \"./dist/browser/frame-index.d.mts\",\n \"import\": \"./dist/browser/frame-index.mjs\"\n },\n \"types\": \"./dist/node/frame-index.d.ts\",\n \"import\": \"./dist/node/frame-index.mjs\",\n \"require\": \"./dist/node/frame-index.cjs\"\n },\n \"./logger\": {\n \"browser\": {\n \"types\": \"./dist/browser/logger.d.mts\",\n \"import\": \"./dist/browser/logger.mjs\"\n },\n \"types\": \"./dist/node/logger.d.ts\",\n \"import\": \"./dist/node/logger.mjs\",\n \"require\": \"./dist/node/logger.cjs\"\n },\n \"./namespace\": {\n \"browser\": {\n \"types\": \"./dist/browser/namespace.d.mts\",\n \"import\": \"./dist/browser/namespace.mjs\"\n },\n \"types\": \"./dist/node/namespace.d.ts\",\n \"import\": \"./dist/node/namespace.mjs\",\n \"require\": \"./dist/node/namespace.cjs\"\n },\n \"./storage\": {\n \"browser\": {\n \"types\": \"./dist/browser/storage.d.mts\",\n \"import\": \"./dist/browser/storage.mjs\"\n },\n \"types\": \"./dist/node/storage.d.ts\",\n \"import\": \"./dist/node/storage.mjs\",\n \"require\": \"./dist/node/storage.cjs\"\n },\n \"./vector\": {\n \"browser\": {\n \"types\": \"./dist/browser/vector.d.mts\",\n \"import\": \"./dist/browser/vector.mjs\"\n },\n \"types\": \"./dist/node/vector.d.ts\",\n \"import\": \"./dist/node/vector.mjs\",\n \"require\": \"./dist/node/vector.cjs\"\n }\n },\n \"keywords\": [\n \"adaas\",\n \"a-frame\",\n \"ai index\",\n \"embeddings\",\n \"a-concept\",\n \"rag\"\n ],\n \"sideEffects\": false,\n \"nodemonConfig\": {\n \"ignore\": [\n \"**/*.test.ts\",\n \"**/*.spec.ts\",\n \".git\",\n \"node_modules\"\n ],\n \"watch\": [\n \"src\",\n \"examples\"\n ],\n \"exec\": \"node -r tsconfig-paths/register -r ts-node/register \",\n \"ext\": \"ts, js\"\n },\n \"scripts\": {\n \"test\": \"jest --detectOpenHandles\",\n \"test:browser\": \"jest --config jest.config.browser.ts --detectOpenHandles\",\n \"start\": \"nodemon ./tests/example-usage.ts\",\n \"start:test\": \"node -r tsconfig-paths/register -r ts-node/register ./index.ts\",\n \"release\": \"npm run test && npm run build && git add . && git commit -m \\\"new version created :: $(cat package.json | grep version | head -1 | awk -F: '{ print $2 }' | sed 's/[\\\",]//g')\\\" && npm version patch && npm publish --access public\",\n \"version\": \"echo git add .\",\n \"postversion\": \"git push --no-verify && git push --tags --no-verify && echo \\\"\\n======Version Pushed Successfully=====\\n\\\" \",\n \"echo-version\": \"echo $npm_package_version\",\n \"build\": \"tsup --config tsup.config.ts\"\n },\n \"dependencies\": {\n \"@adaas/a-concept\": \"^0.3.15\"\n },\n \"devDependencies\": {\n \"@types/chai\": \"^4.3.14\",\n \"@types/jest\": \"^29.5.12\",\n \"@types/mocha\": \"^10.0.6\",\n \"@types/node\": \"^24.9.1\",\n \"chai\": \"^5.1.0\",\n \"dotenv\": \"^16.6.1\",\n \"jest\": \"^29.7.0\",\n \"jest-environment-jsdom\": \"^29.7.0\",\n \"mocha\": \"^10.4.0\",\n \"nodemon\": \"^3.1.4\",\n \"ts-jest\": \"^29.1.2\",\n \"ts-node\": \"^10.9.2\",\n \"tsconfig-paths\": \"^4.2.0\",\n \"tscpaths\": \"^0.0.9\",\n \"tsup\": \"^8.5.0\"\n },\n \"directories\": {\n \"doc\": \"docs\",\n \"test\": \"tests\"\n }\n}\n","import { A_Fragment } from \"@adaas/a-concept\";\nimport * as pkg from '../../../package.json';\nimport { IA_FrameEnv } from \"./A-FrameEnv.types\";\n\n\n\n/**\n * This class tailored from browser environment and it is used to get the env variables from the global scope and make them available for the A_FrameTask to use them in the task execution.\n */\nexport class A_FrameEnv extends A_Fragment implements IA_FrameEnv {\n\n get A_FRAME_TOKEN() {\n return (window as any).A_FRAME_TOKEN || '';\n }\n\n get A_FRAME_SERVER_URL() {\n return (window as any).A_FRAME_SERVER_URL || 'http://localhost:3000';\n }\n\n get A_FRAME_VERSION() {\n return pkg.version || '0.0.1';\n }\n\n get A_FRAME_SERVER_API_KEY() {\n return (window as any).A_FRAME_SERVER_API_KEY || '';\n }\n\n get A_FRAME_STORAGE_DIR() {\n return (window as any).A_FRAME_STORAGE_DIR || '.aframestr';\n }\n}"]}
|
package/dist/browser/core.d.mts
CHANGED
|
@@ -79,7 +79,7 @@ declare class A_Frame extends A_FrameBase {
|
|
|
79
79
|
ctor: A_TYPES__Component_Constructor<any> | A_TYPES__Fragment_Constructor<any>;
|
|
80
80
|
instance: any;
|
|
81
81
|
}>;
|
|
82
|
-
injectDependencies(
|
|
82
|
+
injectDependencies(): Promise<void>;
|
|
83
83
|
/**
|
|
84
84
|
* Hydrate all known namespaces and definitions from the in-memory bundle
|
|
85
85
|
* blobs. Read-only — never calls embed (no network in the browser).
|
package/dist/browser/core.mjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import {a as a$1}from'./chunk-G66IL2DR.mjs';import {h}from'./chunk-5TTVFB3G.mjs';import {a as a$2,f,g,h as h$1}from'./chunk-
|
|
1
|
+
import {a as a$1}from'./chunk-G66IL2DR.mjs';import {h}from'./chunk-5TTVFB3G.mjs';import {a as a$2,f,g,h as h$1}from'./chunk-GOADBDTE.mjs';export{a as A_FrameContext}from'./chunk-GOADBDTE.mjs';import {b as b$2}from'./chunk-YQJFTBGV.mjs';import'./chunk-K4MZY4ME.mjs';import {c}from'./chunk-AYN7KUQT.mjs';import'./chunk-INS7RO3B.mjs';import {b as b$3}from'./chunk-ZVCTU2DN.mjs';import'./chunk-H6OZP4ZV.mjs';import'./chunk-VDVJWU5T.mjs';import {a,b as b$1}from'./chunk-DMGQW3AO.mjs';import {A_Concept,A_Inject,A_Scope,A_Error,A_Context,A_Component,A_TypeGuards,A_CommonHelper}from'@adaas/a-concept';var v=(s=>(s.COMPONENT="component",s.ENTITY="entity",s.CONTAINER="container",s.FRAGMENT="fragment",s.METHOD="method",s))(v||{});var C=class{static isAllowedTarget(e){return A_TypeGuards.isEntityConstructor(e)||A_TypeGuards.isComponentConstructor(e)||A_TypeGuards.isContainerConstructor(e)||A_TypeGuards.isFragmentConstructor(e)||A_TypeGuards.isComponentInstance(e)||A_TypeGuards.isContainerInstance(e)||A_TypeGuards.isEntityInstance(e)||A_TypeGuards.isFragmentInstance(e)}static getTargetName(e){return A_CommonHelper.getComponentName(e)}static getTargetConstructor(e){return typeof e=="function"?e:e.constructor}};var t=class extends A_Error{};t.InvalidTarget="A-Frame Index Invalid Target Error",t.InvalidConfiguration="A-Frame Index Invalid Configuration Error",t.IndexDefinitionError="A-Frame Index Definition Error",t.IndexMetadataError="A-Frame Index Metadata Error",t.IndexRegistryError="A-Frame Index Registry Error",t.IndexComponentNotFoundError="A-Frame Index Component Not Found Error";function b(r){return function(e,o,n){let a;switch(true){case(!!o&&!!n):a="method";break;case(A_TypeGuards.isComponentConstructor(e)||A_TypeGuards.isComponentInstance(e)):a="component";break;case(A_TypeGuards.isContainerConstructor(e)||A_TypeGuards.isContainerInstance(e)):a="container";break;case(A_TypeGuards.isEntityConstructor(e)||A_TypeGuards.isEntityInstance(e)):a="entity";break;case(A_TypeGuards.isFragmentConstructor(e)||A_TypeGuards.isFragmentInstance(e)):a="fragment";break;default:throw new t(t.InvalidTarget,"@A_Frame.Define decorator cannot be applied to the target.")}let s=r.namespace?r.namespace instanceof c?r.namespace:a$1.getNamespace(r.namespace)||new c({name:r.namespace}):a$1.getDefaultNamespace();if(o&&n){let m=e.constructor,h=String(o),w=n.value.toString();return a$1.addDefinition(new b$3({name:h,dependency:m.name,description:r.description,source:w,metadata:r.metadata,type:"method",namespace:s})),n}if(!C.isAllowedTarget(e))throw new t(t.InvalidTarget,`@A_Frame.${a} decorator can only be applied to allowed targets.`);let F=A_CommonHelper.getComponentName(e),g=C.getTargetConstructor(e),y=e.toString();return a$1.addDefinition(new b$3({name:F,description:r.description,dependency:g.name,source:y,metadata:r.metadata,type:a,namespace:s})),e}}function Y(r={}){return function(e,o,n){if(!r.name)throw new t(t.InvalidConfiguration,"@A_Frame.Namespace decorator requires a name in the configuration.");let a=new c({name:r.name,description:r.description});a$1.addNamespace(a);}}var D=class extends A_Component{static Define(e){return b(e)}static NameSpace(e){return Y(e)}get package(){return []}packDependency(e,o,n){e.resolve(o)||e.register(n);}};var A=class extends D{get package(){return [{ctor:a$2,instance:new a$2},{ctor:b$2,instance:new b$2},{ctor:g,instance:new g},{ctor:h$1,instance:h$1},{ctor:h,instance:new h}]}async injectDependencies(){let e=A_Context.root;if(this.package.forEach(({ctor:o,instance:n})=>this.packDependency(e,o,n)),!e.resolve(a$1)){let o=new a$1;o.inherit(e),e.register(o);}}async load(e,o,n,a,s){if(!n.encryptionKey){a.warn("A_Frame (browser): no encryption key on context \u2014 blobs cannot be decrypted. Call A_FrameContext.setCredentials({...}) before concept.load().");return}s.bundleMeta&&n.serverVersion&&s.bundleMeta.serverVersion!==n.serverVersion&&a.warn(`A_Frame bundle was built against server v${s.bundleMeta.serverVersion} but the current credentials report v${n.serverVersion}. Hydration may skip records \u2014 rebuild the bundle.`);let F=o.listNamespaces(),g=o.listDefinitions();await Promise.all([...F.map(m=>Promise.resolve(m.load()).catch(()=>{})),...g.map(m=>Promise.resolve(m.load()).catch(()=>{}))]);let y=F.filter(m=>!m.isEmbed).length+g.filter(m=>!m.isEmbed).length;y>0&&a.warn(`${y} A-Frame entit${y===1?"y":"ies"} could not be hydrated from the bundle. Rebuild the bundle on the Node side to include them.`);}async build(e){}async start(e){}};a([A_Concept.Load()],A.prototype,"injectDependencies",1),a([A_Concept.Load(),b$1(0,A_Inject(A_Scope)),b$1(1,A_Inject(a$1)),b$1(2,A_Inject(a$2)),b$1(3,A_Inject(h)),b$1(4,A_Inject(f))],A.prototype,"load",1),a([A_Concept.Build(),b$1(0,A_Inject(A_Scope))],A.prototype,"build",1),a([A_Concept.Start(),b$1(0,A_Inject(A_Scope))],A.prototype,"start",1);export{A as A_Frame,D as A_FrameBase,b as A_FrameDefineDecorator,t as A_FrameError,Y as A_FrameNamespaceDecorator,v as A_FrameTargetType,C as A_FrameTypeGuard};//# sourceMappingURL=core.mjs.map
|
|
2
2
|
//# sourceMappingURL=core.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/lib/A-Frame/A-Frame.types.ts","../../src/lib/A-Frame/A-Frame.guard.ts","../../src/lib/A-Frame/A-Frame.error.ts","../../src/lib/A-Frame/decorators/A-FrameDefine.decorator.ts","../../src/lib/A-Frame/decorators/A-FrameNamespace.decorator.ts","../../src/lib/A-Frame/A-Frame.component.ts","../../src/lib/A-Frame/A-Frame.component.env-browser.ts"],"names":["A_FrameTargetType","A_FrameTypeGuard","target","A_TypeGuards","A_CommonHelper","A_FrameError","A_Error","A_FrameDefineDecorator","config","propertyKey","descriptor","componentType","namespace","A_FrameNamespace","A_FrameIndex","targetClass","methodName","source","A_FrameDefinition","componentName","A_FrameNamespaceDecorator","A_FrameBase","A_Component","options","scope","def","A_Frame","A_FrameContext","A_FrameEnv","A_FrameStorageCodec","A_FrameBrowserStorageProvider","A_FrameLogger","ctor","instance","index","context","logger","blobs","namespaces","definitions","ns","unloaded","__decorateClass","A_Concept","__decorateParam","A_Inject","A_Scope","A_FrameBrowserStorageBlobs"],"mappings":"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","file":"core.mjs","sourcesContent":["import { A_Component, A_Container, A_Entity, A_Fragment, A_TYPES__Component_Constructor, A_TYPES__Container_Constructor, A_TYPES__Entity_Constructor, A_TYPES__Fragment_Constructor, A_TYPES__Required } from \"@adaas/a-concept\"\nimport { A_FrameNamespace } from \"../A-FrameNamespace\"\n\n\nexport type A_FrameOptions = {\n namespace?: string\n description?: string\n}\n\n\nexport type A_FrameDefineOptions<T extends Record<string, any> = Record<string, any>> = {\n /**\n * The description of the Method or Class to be indexed. Uses for the better explanation and retrieval strategy \n */\n description?: string,\n /**\n * Define Namespace to separate and group together related components, entities and containers.\n * \n * [!] Namespace is a hard separation between groups.\n */\n namespace?: string | A_FrameNamespace\n /***\n * Optional parameters that can be used to store any additional information about the component, entity or container.\n * This information can be used for the better retrieval strategy or for the better explanation of the component, entity or container.\n */\n metadata?: T,\n /**\n * Can add a custom way of explaining the component, entity or container, so it can be used in the better retrieval strategy.\n */\n examples?: string[]\n}\n\n\nexport type A_FrameMetaTarget = A_TYPES__Container_Constructor\n | A_TYPES__Entity_Constructor\n | A_TYPES__Component_Constructor\n | A_TYPES__Fragment_Constructor\n\n\n// ===========================================================================\n// --------------------------- Decorator Types -------------------------------\n// ===========================================================================\n// ---------------------------------------------------------------------------\n// -------------------- A-Frame Index Decorator Types-------------------------\n// ---------------------------------------------------------------------------\n/**\n * Indicates a type of Feature Define decorator\n */\nexport type A_FrameDecoratorDescriptor =\n TypedPropertyDescriptor<(...args: any[]) => any>\n | TypedPropertyDescriptor<(...args: any[]) => any>\n | TypedPropertyDescriptor<(...args: any[]) => Promise<any>>\n | TypedPropertyDescriptor<(...args: any[]) => Promise<any>>\n\n\n/**\n * Describes a target where Feature Define decorator can be applied\n * \n * [!] The feature can be defined on Container, Entity, Component or Command\n */\nexport type A_FrameDecoratorTarget = A_FrameMetaTarget\n | A_Component\n | A_Container\n | A_Entity\n | A_Fragment\n/**\n * Targets types that can be indexed\n */\nexport enum A_FrameTargetType {\n COMPONENT = 'component',\n ENTITY = 'entity',\n CONTAINER = 'container',\n FRAGMENT = 'fragment',\n METHOD = 'method'\n}\n\n/**\n * A type of Meta information stored by Index decorator\n * This information is used by A-Context to build a proper index structure\n */\nexport type A_FrameDecoratorMeta = {\n /**\n * Component name\n */\n name: string,\n /**\n * Component description\n */\n description?: string,\n /**\n * Type of the component\n */\n type: A_FrameTargetType,\n /**\n * Namespace for the component\n */\n namespace?: string | A_FrameNamespace\n /**\n * Constructor reference\n */\n constructor: A_FrameDecoratorTarget\n}\n\n\n// ---------------------------------------------------------------------------\n// -------------------- A-Frame Index Decorator Types-------------------------\n// ---------------------------------------------------------------------------\n/**\n * Indicates a type of Feature Define decorator\n */\nexport type A_FrameNamespaceDecoratorDescriptor =\n TypedPropertyDescriptor<(...args: any[]) => any>\n | TypedPropertyDescriptor<(...args: any[]) => any>\n | TypedPropertyDescriptor<(...args: any[]) => Promise<any>>\n | TypedPropertyDescriptor<(...args: any[]) => Promise<any>>\n\n\n/**\n * Describes a target where Feature Define decorator can be applied\n * \n * [!] The feature can be defined on Container, Entity, Component or Command\n */\nexport type A_FrameNamespaceDecoratorTarget = A_Container\n | A_Entity\n | A_Component\n | A_Fragment\n | A_TYPES__Fragment_Constructor\n | A_TYPES__Component_Constructor\n | A_TYPES__Container_Constructor\n | A_TYPES__Entity_Constructor\n\n\n\n\n// ---------------------------------------------------------------------------\n// ------------- A-Frame Index Configurations Meta Types----------------------\n// ---------------------------------------------------------------------------\n\n\nexport type A_FrameIndexMetaType = {\n namespaces: string,\n descriptions: string,\n type: string,\n name: string,\n methods: Map<string, A_FrameIndexMetaMethodMeta>\n}\n\n\nexport type A_FrameIndexMetaMethodMeta = {\n name: string,\n description?: string,\n methodName: string\n}\n\n\n\n\nexport type A_FrameNamespaceOptions = {\n /**\n * Must have UNIQUE name of the Namespace. This is used for the indexing and retrieval strategy. It should be descriptive and concise.\n */\n name: string,\n /**\n * The description of the Namespace to be indexed. Uses for the better explanation and retrieval strategy\n */\n description?: string,\n}","import { A_CommonHelper, A_TypeGuards } from \"@adaas/a-concept\";\nimport { A_FrameDecoratorTarget, A_FrameMetaTarget } from \"./A-Frame.types\";\nimport { A_FrameIndexTarget } from \"../A-FrameIndex/A-FrameIndex.types\";\n\n\n\nexport class A_FrameTypeGuard {\n /**\n * Determines if the target is an allowed type for indexing\n * \n * @param target \n * @returns \n */\n static isAllowedTarget(target: any): target is A_FrameDecoratorTarget {\n return A_TypeGuards.isEntityConstructor(target)\n || A_TypeGuards.isComponentConstructor(target)\n || A_TypeGuards.isContainerConstructor(target)\n || A_TypeGuards.isFragmentConstructor(target)\n || A_TypeGuards.isComponentInstance(target)\n || A_TypeGuards.isContainerInstance(target)\n || A_TypeGuards.isEntityInstance(target)\n || A_TypeGuards.isFragmentInstance(target);\n }\n\n\n\n static getTargetName(target: A_FrameDecoratorTarget): string {\n return A_CommonHelper.getComponentName(target);\n }\n\n\n static getTargetConstructor(target: A_FrameDecoratorTarget): A_FrameIndexTarget {\n return typeof target === 'function' ? target : target.constructor as A_FrameIndexTarget;\n }\n\n\n}","import { A_Error } from \"@adaas/a-concept\";\n\n\nexport class A_FrameError extends A_Error {\n\n static readonly InvalidTarget = 'A-Frame Index Invalid Target Error';\n\n static readonly InvalidConfiguration = 'A-Frame Index Invalid Configuration Error';\n\n static readonly IndexDefinitionError = 'A-Frame Index Definition Error';\n static readonly IndexMetadataError = 'A-Frame Index Metadata Error';\n static readonly IndexRegistryError = 'A-Frame Index Registry Error';\n static readonly IndexComponentNotFoundError = 'A-Frame Index Component Not Found Error';\n}","import { A_CommonHelper, A_Context, A_Meta, A_TypeGuards } from \"@adaas/a-concept\";\nimport { A_FrameDecoratorTarget, A_FrameTargetType, A_FrameDecoratorDescriptor, A_FrameMetaTarget, A_FrameDefineOptions } from \"../A-Frame.types\";\nimport { A_FrameTypeGuard } from \"../A-Frame.guard\";\nimport { A_FrameError } from \"../A-Frame.error\";\nimport { A_FrameIndex } from \"@adaas/a-frame/index\";\nimport { A_FrameDefinition } from \"@adaas/a-frame/definition\";\nimport { A_FrameNamespace } from \"@adaas/a-frame/namespace\";\n\nexport function A_FrameDefineDecorator(\n config: A_FrameDefineOptions\n) {\n return function (\n target: A_FrameDecoratorTarget,\n propertyKey?: string | symbol,\n descriptor?: A_FrameDecoratorDescriptor\n ): any {\n let componentType: A_FrameTargetType;\n\n switch (true) {\n case !!propertyKey && !!descriptor:\n componentType = A_FrameTargetType.METHOD;\n break;\n case A_TypeGuards.isComponentConstructor(target) || A_TypeGuards.isComponentInstance(target):\n componentType = A_FrameTargetType.COMPONENT;\n break;\n case A_TypeGuards.isContainerConstructor(target) || A_TypeGuards.isContainerInstance(target):\n componentType = A_FrameTargetType.CONTAINER;\n break;\n case A_TypeGuards.isEntityConstructor(target) || A_TypeGuards.isEntityInstance(target):\n componentType = A_FrameTargetType.ENTITY;\n break;\n case A_TypeGuards.isFragmentConstructor(target) || A_TypeGuards.isFragmentInstance(target):\n componentType = A_FrameTargetType.FRAGMENT;\n break;\n default:\n throw new A_FrameError(\n A_FrameError.InvalidTarget,\n `@A_Frame.Define decorator cannot be applied to the target.`\n );\n }\n const namespace = config.namespace\n ? config.namespace instanceof A_FrameNamespace\n ? config.namespace\n : A_FrameIndex.getNamespace(config.namespace) || new A_FrameNamespace({\n name: config.namespace,\n })\n : A_FrameIndex.getDefaultNamespace();\n\n\n // Handle method decorator case\n if (!!propertyKey && !!descriptor) {\n // For methods, target is the class prototype\n const targetClass = target.constructor as A_FrameMetaTarget;\n const methodName = String(propertyKey);\n\n const source = (descriptor.value as Function).toString();\n\n // Add to methods array\n A_FrameIndex.addDefinition(new A_FrameDefinition({\n name: methodName,\n dependency: targetClass.name,\n description: config.description,\n source: source,\n metadata: config.metadata,\n type: A_FrameTargetType.METHOD,\n namespace: namespace\n }));\n\n return descriptor;\n }\n\n // Handle class decorator case\n if (!A_FrameTypeGuard.isAllowedTarget(target)) {\n throw new A_FrameError(\n A_FrameError.InvalidTarget,\n `@A_Frame.${componentType} decorator can only be applied to allowed targets.`\n );\n }\n\n // for error messages\n const componentName = A_CommonHelper.getComponentName(target);\n\n const targetClass = A_FrameTypeGuard.getTargetConstructor(target);\n\n // Check for pending namespace and description from other decorators\n const source = target.toString();\n\n A_FrameIndex.addDefinition(new A_FrameDefinition({\n name: componentName,\n description: config.description,\n dependency: targetClass.name,\n source: source,\n metadata: config.metadata,\n type: componentType,\n namespace: namespace\n }));\n\n return target;\n\n };\n}\n\n\n\n","import { A_CommonHelper, A_Context, A_Meta, A_TypeGuards } from \"@adaas/a-concept\";\nimport { A_FrameDecoratorTarget, A_FrameTargetType, A_FrameDecoratorDescriptor, A_FrameMetaTarget, A_FrameNamespaceOptions } from \"../A-Frame.types\";\nimport { A_FrameError } from \"../A-Frame.error\";\nimport { A_FrameIndex } from \"@adaas/a-frame/index\";\nimport { A_FrameNamespace } from \"@adaas/a-frame/namespace\";\n\nexport function A_FrameNamespaceDecorator(\n config: Partial<A_FrameNamespaceOptions> = {}\n) {\n return function (\n target: A_FrameDecoratorTarget,\n propertyKey?: string | symbol,\n descriptor?: A_FrameDecoratorDescriptor\n ): any {\n\n if (!config.name)\n throw new A_FrameError(\n A_FrameError.InvalidConfiguration,\n `@A_Frame.Namespace decorator requires a name in the configuration.`\n );\n\n const namespace = new A_FrameNamespace({\n name: config.name,\n description: config.description,\n });\n\n\n A_FrameIndex.addNamespace(namespace);\n };\n}\n\n\n\n","import { A_Component, A_Scope, A_TYPES__A_DependencyInjectable, A_TYPES__Component_Constructor, A_TYPES__Ctor, A_TYPES__Fragment_Constructor } from \"@adaas/a-concept\";\nimport { A_FrameDefineOptions, A_FrameNamespaceOptions } from \"./A-Frame.types\";\nimport { A_FrameDefineDecorator } from \"./decorators/A-FrameDefine.decorator\";\nimport { A_FrameNamespaceDecorator } from \"./decorators/A-FrameNamespace.decorator\";\n\n\n\nexport class A_FrameBase extends A_Component {\n /**\n * Primary Decorator to define and index components, containers, entities, fragments and methods in the A-Frame Index structure\n * \n * Those components will participate in AI indexing and retrieval strategy, so they can be used in the better way to build new features and components.\n * \n * @param options \n * @returns \n */\n static Define(options: A_FrameDefineOptions) {\n return A_FrameDefineDecorator(options) as ClassDecorator & MethodDecorator;\n\n }\n /**\n * Allows to define a namespace for grouping related components, containers, entities, fragments and methods together in the A-Frame Index structure. This is useful for better organization and retrieval strategy.\n * \n * @param options \n * @returns \n */\n static NameSpace(options: A_FrameNamespaceOptions) {\n return A_FrameNamespaceDecorator(options) as ClassDecorator & MethodDecorator;\n }\n\n\n\n /**\n * Default per-instance dependencies registered on first build. The blob\n * store is intentionally omitted here — the user is expected to seed and\n * register `A_FrameBrowserStorageBlobs` themselves (typically via\n * `A_FrameBrowserStorageBlobs.fromBundle(bundle)` before `concept.load()`).\n * If they don't, `A_FrameBrowserStorageProvider.onLoad()` falls back to the\n * empty singleton.\n */\n get package(): Array<{ ctor: A_TYPES__Component_Constructor<any> | A_TYPES__Fragment_Constructor<any>; instance: any }> {\n return [\n // { ctor: A_FrameContext, instance: new A_FrameContext() },\n // { ctor: A_FrameEnv, instance: new A_FrameEnv() },\n // { ctor: A_FrameStorageCodec, instance: new A_FrameStorageCodec() },\n // { ctor: A_FrameBrowserStorageProvider, instance: A_FrameBrowserStorageProvider },\n // { ctor: A_FrameLogger, instance: new A_FrameLogger() },\n ];\n }\n\n\n protected packDependency<T extends A_TYPES__A_DependencyInjectable>(\n scope: A_Scope,\n target: A_TYPES__Ctor<T> | T,\n def: A_TYPES__Ctor<T> | T,\n ) {\n const existing = scope.resolve(target as any);\n if (!existing) scope.register(def);\n }\n\n\n}","import { A_Concept, A_Fragment, A_Inject, A_Scope, A_TYPES__A_DependencyInjectable, A_TYPES__Component_Constructor, A_TYPES__Ctor, A_TYPES__Fragment_Constructor } from \"@adaas/a-concept\";\nimport { A_FrameBase } from \"./A-Frame.component\";\nimport { A_FrameBrowserStorageProvider } from \"../A-FrameStorage/browser/A-FrameBrowserStorage.component\";\nimport { A_FrameBrowserStorageBlobs } from \"../A-FrameStorage/browser/A-FrameBrowserStorageBlobs.context\";\nimport { A_FrameStorageCodec } from \"../A-FrameStorage/A-FrameStorage.codec\";\nimport { A_FrameIndex } from \"../A-FrameIndex\";\nimport { A_FrameContext } from \"./A-Frame.context\";\nimport { A_FrameLogger } from \"../A-FrameLogger/A-FrameLogger.component.env-browser\";\nimport { A_FrameEnv } from \"../A-FrameEnv/A-FrameEnv.fragment.env-browser\";\n\n\n\nexport class A_Frame extends A_FrameBase {\n\n /**\n * Default per-instance dependencies registered on first build. The blob\n * store is intentionally omitted here — the user is expected to seed and\n * register `A_FrameBrowserStorageBlobs` themselves (typically via\n * `A_FrameBrowserStorageBlobs.fromBundle(bundle)` before `concept.load()`).\n * If they don't, `A_FrameBrowserStorageProvider.onLoad()` falls back to the\n * empty singleton.\n */\n get package(): Array<{ ctor: A_TYPES__Component_Constructor<any> | A_TYPES__Fragment_Constructor<any>; instance: any }> {\n return [\n { ctor: A_FrameContext, instance: new A_FrameContext() },\n { ctor: A_FrameEnv, instance: new A_FrameEnv() },\n { ctor: A_FrameStorageCodec, instance: new A_FrameStorageCodec() },\n { ctor: A_FrameBrowserStorageProvider, instance: A_FrameBrowserStorageProvider },\n { ctor: A_FrameLogger, instance: new A_FrameLogger() },\n ];\n }\n\n\n @A_Concept.Load()\n async injectDependencies(\n @A_Inject(A_Scope) scope: A_Scope,\n ) {\n // Register every package dep that isn't already in scope.\n this.package.forEach(({ ctor, instance }) => this.packDependency(scope, ctor, instance));\n\n // A_FrameIndex needs to inherit the scope so its registry is visible\n // to all later resolutions (entities query it during load).\n if (!scope.resolve(A_FrameIndex)) {\n const index = new A_FrameIndex();\n index.inherit(scope);\n scope.register(index);\n }\n }\n\n\n /**\n * Hydrate all known namespaces and definitions from the in-memory bundle\n * blobs. Read-only — never calls embed (no network in the browser).\n *\n * The caller is responsible for:\n * 1. Seeding `A_FrameBrowserStorageBlobs` from a prebuilt `A_FrameBundle`.\n * 2. Setting `A_FrameContext.encryptionKey` and `serverVersion` so blobs\n * can be decrypted and validated.\n */\n @A_Concept.Load()\n async load(\n @A_Inject(A_Scope) scope: A_Scope,\n @A_Inject(A_FrameIndex) index: A_FrameIndex,\n @A_Inject(A_FrameContext) context: A_FrameContext,\n @A_Inject(A_FrameLogger) logger: A_FrameLogger,\n @A_Inject(A_FrameBrowserStorageBlobs) blobs: A_FrameBrowserStorageBlobs,\n ) {\n if (!context.encryptionKey) {\n logger.warn(\n 'A_Frame (browser): no encryption key on context — blobs cannot be decrypted. ' +\n 'Call A_FrameContext.setCredentials({...}) before concept.load().'\n );\n return;\n }\n\n // Surface a soft mismatch warning when the bundle was built against a\n // different server version than the one the user has authenticated with.\n if (blobs.bundleMeta && context.serverVersion && blobs.bundleMeta.serverVersion !== context.serverVersion) {\n logger.warn(\n `A_Frame bundle was built against server v${blobs.bundleMeta.serverVersion} ` +\n `but the current credentials report v${context.serverVersion}. ` +\n `Hydration may skip records — rebuild the bundle.`\n );\n }\n\n const namespaces = index.listNamespaces();\n const definitions = index.listDefinitions();\n\n await Promise.all([\n ...namespaces.map(ns => Promise.resolve(ns.load()).catch(() => { })),\n ...definitions.map(def => Promise.resolve(def.load()).catch(() => { })),\n ]);\n\n const unloaded =\n namespaces.filter(ns => !ns.isEmbed).length +\n definitions.filter(def => !def.isEmbed).length;\n if (unloaded > 0) {\n logger.warn(\n `${unloaded} A-Frame entit${unloaded === 1 ? 'y' : 'ies'} could not be hydrated from the bundle. ` +\n `Rebuild the bundle on the Node side to include them.`\n );\n }\n }\n\n\n @A_Concept.Build()\n async build(\n @A_Inject(A_Scope) scope: A_Scope,\n ) {\n // Build phase is now redundant for registration (handled in @Load above)\n // but kept as a hook for downstream extensions.\n }\n\n\n @A_Concept.Start()\n async start(\n @A_Inject(A_Scope) scope: A_Scope,\n ) {\n // Start logic here\n }\n\n\n\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../../src/lib/A-Frame/A-Frame.types.ts","../../src/lib/A-Frame/A-Frame.guard.ts","../../src/lib/A-Frame/A-Frame.error.ts","../../src/lib/A-Frame/decorators/A-FrameDefine.decorator.ts","../../src/lib/A-Frame/decorators/A-FrameNamespace.decorator.ts","../../src/lib/A-Frame/A-Frame.component.ts","../../src/lib/A-Frame/A-Frame.component.env-browser.ts"],"names":["A_FrameTargetType","A_FrameTypeGuard","target","A_TypeGuards","A_CommonHelper","A_FrameError","A_Error","A_FrameDefineDecorator","config","propertyKey","descriptor","componentType","namespace","A_FrameNamespace","A_FrameIndex","targetClass","methodName","source","A_FrameDefinition","componentName","A_FrameNamespaceDecorator","A_FrameBase","A_Component","options","scope","def","A_Frame","A_FrameContext","A_FrameEnv","A_FrameStorageCodec","A_FrameBrowserStorageProvider","A_FrameLogger","A_Context","ctor","instance","index","context","logger","blobs","namespaces","definitions","ns","unloaded","__decorateClass","A_Concept","__decorateParam","A_Inject","A_Scope","A_FrameBrowserStorageBlobs"],"mappings":"mlBAoEO,IAAKA,CAAAA,CAAAA,CAAAA,CAAAA,GACRA,EAAA,SAAA,CAAY,WAAA,CACZA,EAAA,MAAA,CAAS,QAAA,CACTA,EAAA,SAAA,CAAY,WAAA,CACZA,CAAAA,CAAA,QAAA,CAAW,WACXA,CAAAA,CAAA,MAAA,CAAS,SALDA,CAAAA,CAAAA,EAAAA,CAAAA,EAAA,EAAA,EC9DL,IAAMC,CAAAA,CAAN,KAAuB,CAO1B,OAAO,gBAAgBC,CAAAA,CAA+C,CAClE,OAAOC,YAAAA,CAAa,oBAAoBD,CAAM,CAAA,EACvCC,aAAa,sBAAA,CAAuBD,CAAM,GAC1CC,YAAAA,CAAa,sBAAA,CAAuBD,CAAM,CAAA,EAC1CC,aAAa,qBAAA,CAAsBD,CAAM,GACzCC,YAAAA,CAAa,mBAAA,CAAoBD,CAAM,CAAA,EACvCC,YAAAA,CAAa,mBAAA,CAAoBD,CAAM,GACvCC,YAAAA,CAAa,gBAAA,CAAiBD,CAAM,CAAA,EACpCC,YAAAA,CAAa,mBAAmBD,CAAM,CACjD,CAIA,OAAO,aAAA,CAAcA,EAAwC,CACzD,OAAOE,eAAe,gBAAA,CAAiBF,CAAM,CACjD,CAGA,OAAO,oBAAA,CAAqBA,CAAAA,CAAoD,CAC5E,OAAO,OAAOA,GAAW,UAAA,CAAaA,CAAAA,CAASA,EAAO,WAC1D,CAGJ,MCjCaG,CAAAA,CAAN,cAA2BC,OAAQ,GAA7BD,CAAAA,CAEO,aAAA,CAAgB,qCAFvBA,CAAAA,CAIO,oBAAA,CAAuB,4CAJ9BA,CAAAA,CAMO,oBAAA,CAAuB,iCAN9BA,CAAAA,CAOO,kBAAA,CAAqB,+BAP5BA,CAAAA,CAQO,kBAAA,CAAqB,+BAR5BA,CAAAA,CASO,2BAAA,CAA8B,0CCJ3C,SAASE,CAAAA,CACZC,EACF,CACE,OAAO,SACHN,CAAAA,CACAO,EACAC,CAAAA,CACG,CACH,IAAIC,CAAAA,CAEJ,OAAQ,MACJ,KAAK,CAAC,CAACF,GAAe,CAAC,CAACC,GACpBC,CAAAA,CAAgB,QAAA,CAChB,MACJ,KAAKR,YAAAA,CAAa,sBAAA,CAAuBD,CAAM,GAAKC,YAAAA,CAAa,mBAAA,CAAoBD,CAAM,CAAA,EACvFS,CAAAA,CAAgB,YAChB,MACJ,KAAKR,aAAa,sBAAA,CAAuBD,CAAM,GAAKC,YAAAA,CAAa,mBAAA,CAAoBD,CAAM,CAAA,EACvFS,CAAAA,CAAgB,YAChB,MACJ,KAAKR,YAAAA,CAAa,mBAAA,CAAoBD,CAAM,CAAA,EAAKC,YAAAA,CAAa,iBAAiBD,CAAM,CAAA,EACjFS,EAAgB,QAAA,CAChB,MACJ,KAAKR,YAAAA,CAAa,sBAAsBD,CAAM,CAAA,EAAKC,aAAa,kBAAA,CAAmBD,CAAM,GACrFS,CAAAA,CAAgB,UAAA,CAChB,MACJ,QACI,MAAM,IAAIN,CAAAA,CACNA,EAAa,aAAA,CACb,4DACJ,CACR,CACA,IAAMO,EAAYJ,CAAAA,CAAO,SAAA,CACnBA,EAAO,SAAA,YAAqBK,CAAAA,CACxBL,EAAO,SAAA,CACPM,GAAAA,CAAa,aAAaN,CAAAA,CAAO,SAAS,CAAA,EAAK,IAAIK,EAAiB,CAClE,IAAA,CAAML,EAAO,SACjB,CAAC,EACHM,GAAAA,CAAa,mBAAA,EAAoB,CAIvC,GAAML,GAAiBC,CAAAA,CAAY,CAE/B,IAAMK,CAAAA,CAAcb,CAAAA,CAAO,YACrBc,CAAAA,CAAa,MAAA,CAAOP,CAAW,CAAA,CAE/BQ,EAAUP,CAAAA,CAAW,KAAA,CAAmB,UAAS,CAGvD,OAAAI,IAAa,aAAA,CAAc,IAAII,IAAkB,CAC7C,IAAA,CAAMF,EACN,UAAA,CAAYD,CAAAA,CAAY,KACxB,WAAA,CAAaP,CAAAA,CAAO,YACpB,MAAA,CAAQS,CAAAA,CACR,QAAA,CAAUT,CAAAA,CAAO,SACjB,IAAA,CAAA,QAAA,CACA,SAAA,CAAWI,CACf,CAAC,CAAC,EAEKF,CACX,CAGA,GAAI,CAACT,EAAiB,eAAA,CAAgBC,CAAM,EACxC,MAAM,IAAIG,EACNA,CAAAA,CAAa,aAAA,CACb,CAAA,SAAA,EAAYM,CAAa,oDAC7B,CAAA,CAIJ,IAAMQ,EAAgBf,cAAAA,CAAe,gBAAA,CAAiBF,CAAM,CAAA,CAEtDa,CAAAA,CAAcd,EAAiB,oBAAA,CAAqBC,CAAM,EAG1De,CAAAA,CAASf,CAAAA,CAAO,UAAS,CAE/B,OAAAY,IAAa,aAAA,CAAc,IAAII,GAAAA,CAAkB,CAC7C,KAAMC,CAAAA,CACN,WAAA,CAAaX,EAAO,WAAA,CACpB,UAAA,CAAYO,EAAY,IAAA,CACxB,MAAA,CAAQE,CAAAA,CACR,QAAA,CAAUT,EAAO,QAAA,CACjB,IAAA,CAAMG,EACN,SAAA,CAAWC,CACf,CAAC,CAAC,CAAA,CAEKV,CAEX,CACJ,CC9FO,SAASkB,CAAAA,CACZZ,EAA2C,EAAC,CAC9C,CACE,OAAO,SACHN,EACAO,CAAAA,CACAC,CAAAA,CACG,CAEH,GAAI,CAACF,EAAO,IAAA,CACR,MAAM,IAAIH,CAAAA,CACNA,CAAAA,CAAa,oBAAA,CACb,oEACJ,EAEJ,IAAMO,CAAAA,CAAY,IAAIC,CAAAA,CAAiB,CACnC,KAAML,CAAAA,CAAO,IAAA,CACb,WAAA,CAAaA,CAAAA,CAAO,WACxB,CAAC,CAAA,CAGDM,IAAa,YAAA,CAAaF,CAAS,EACvC,CACJ,CCtBO,IAAMS,CAAAA,CAAN,cAA0BC,WAAY,CASzC,OAAO,MAAA,CAAOC,CAAAA,CAA+B,CACzC,OAAOhB,CAAAA,CAAuBgB,CAAO,CAEzC,CAOA,OAAO,SAAA,CAAUA,CAAAA,CAAkC,CAC/C,OAAOH,CAAAA,CAA0BG,CAAO,CAC5C,CAYA,IAAI,OAAA,EAAoH,CACpH,OAAO,EAOX,CAGU,cAAA,CACNC,EACAtB,CAAAA,CACAuB,CAAAA,CACF,CACmBD,CAAAA,CAAM,QAAQtB,CAAa,CAAA,EAC7BsB,EAAM,QAAA,CAASC,CAAG,EACrC,CAGJ,ECjDO,IAAMC,EAAN,cAAsBL,CAAY,CAUrC,IAAI,OAAA,EAAoH,CACpH,OAAO,CACH,CAAE,IAAA,CAAMM,GAAAA,CAAgB,QAAA,CAAU,IAAIA,GAAiB,CAAA,CACvD,CAAE,KAAMC,GAAAA,CAAY,QAAA,CAAU,IAAIA,GAAa,CAAA,CAC/C,CAAE,IAAA,CAAMC,EAAqB,QAAA,CAAU,IAAIA,CAAsB,CAAA,CACjE,CAAE,KAAMC,GAAAA,CAA+B,QAAA,CAAUA,GAA8B,CAAA,CAC/E,CAAE,IAAA,CAAMC,CAAAA,CAAe,SAAU,IAAIA,CAAgB,CACzD,CACJ,CAIA,MAAM,kBAAA,EACJ,CACE,IAAMP,CAAAA,CAAQQ,SAAAA,CAAU,KAQxB,GAJA,IAAA,CAAK,QAAQ,OAAA,CAAQ,CAAC,CAAE,IAAA,CAAAC,EAAM,QAAA,CAAAC,CAAS,IAAM,IAAA,CAAK,cAAA,CAAeV,EAAOS,CAAAA,CAAMC,CAAQ,CAAC,CAAA,CAInF,CAACV,CAAAA,CAAM,OAAA,CAAQV,GAAY,CAAA,CAAG,CAC9B,IAAMqB,CAAAA,CAAQ,IAAIrB,GAAAA,CAClBqB,CAAAA,CAAM,QAAQX,CAAK,CAAA,CACnBA,EAAM,QAAA,CAASW,CAAK,EACxB,CACJ,CAaA,MAAM,IAAA,CACiBX,CAAAA,CACKW,EACEC,CAAAA,CACDC,CAAAA,CACaC,EACxC,CACE,GAAI,CAACF,CAAAA,CAAQ,aAAA,CAAe,CACxBC,CAAAA,CAAO,KACH,oJAEJ,CAAA,CACA,MACJ,CAIIC,CAAAA,CAAM,YAAcF,CAAAA,CAAQ,aAAA,EAAiBE,CAAAA,CAAM,UAAA,CAAW,gBAAkBF,CAAAA,CAAQ,aAAA,EACxFC,EAAO,IAAA,CACH,CAAA,yCAAA,EAA4CC,EAAM,UAAA,CAAW,aAAa,CAAA,qCAAA,EACnCF,CAAAA,CAAQ,aAAa,CAAA,uDAAA,CAEhE,CAAA,CAGJ,IAAMG,CAAAA,CAAaJ,CAAAA,CAAM,gBAAe,CAClCK,CAAAA,CAAcL,EAAM,eAAA,EAAgB,CAE1C,MAAM,OAAA,CAAQ,GAAA,CAAI,CACd,GAAGI,CAAAA,CAAW,IAAIE,CAAAA,EAAM,OAAA,CAAQ,OAAA,CAAQA,CAAAA,CAAG,MAAM,CAAA,CAAE,MAAM,IAAM,CAAE,CAAC,CAAC,CAAA,CACnE,GAAGD,CAAAA,CAAY,IAAIf,CAAAA,EAAO,OAAA,CAAQ,QAAQA,CAAAA,CAAI,IAAA,EAAM,CAAA,CAAE,KAAA,CAAM,IAAM,CAAE,CAAC,CAAC,CAC1E,CAAC,CAAA,CAED,IAAMiB,EACFH,CAAAA,CAAW,MAAA,CAAOE,GAAM,CAACA,CAAAA,CAAG,OAAO,CAAA,CAAE,MAAA,CACrCD,EAAY,MAAA,CAAOf,CAAAA,EAAO,CAACA,CAAAA,CAAI,OAAO,CAAA,CAAE,MAAA,CACxCiB,EAAW,CAAA,EACXL,CAAAA,CAAO,KACH,CAAA,EAAGK,CAAQ,iBAAiBA,CAAAA,GAAa,CAAA,CAAI,GAAA,CAAM,KAAK,8FAE5D,EAER,CAIA,MAAM,KAAA,CACiBlB,CAAAA,CACrB,CAGF,CAIA,MAAM,KAAA,CACiBA,CAAAA,CACrB,CAEF,CAIJ,EA3FUmB,EAAA,CADLC,SAAAA,CAAU,MAAK,CAAA,CArBPlB,CAAAA,CAsBH,kCA4BAiB,CAAAA,CAAA,CADLC,UAAU,IAAA,EAAK,CAEXC,IAAA,CAAA,CAAAC,QAAAA,CAASC,OAAO,CAAA,CAAA,CAChBF,GAAAA,CAAA,CAAA,CAAAC,QAAAA,CAAShC,GAAY,CAAA,CAAA,CACrB+B,GAAAA,CAAA,EAAAC,QAAAA,CAASnB,GAAc,GACvBkB,GAAAA,CAAA,CAAA,CAAAC,QAAAA,CAASf,CAAa,GACtBc,GAAAA,CAAA,CAAA,CAAAC,SAASE,CAA0B,CAAA,CAAA,CAAA,CAvD/BtB,EAkDH,SAAA,CAAA,MAAA,CAAA,CAAA,CAAA,CA8CAiB,CAAAA,CAAA,CADLC,SAAAA,CAAU,OAAM,CAEZC,GAAAA,CAAA,EAAAC,QAAAA,CAASC,OAAO,IAjGZrB,CAAAA,CAgGH,SAAA,CAAA,OAAA,CAAA,CAAA,CAAA,CASAiB,EAAA,CADLC,SAAAA,CAAU,OAAM,CAEZC,GAAAA,CAAA,EAAAC,QAAAA,CAASC,OAAO,IA1GZrB,CAAAA,CAyGH,SAAA,CAAA,OAAA,CAAA,CAAA,CAAA","file":"core.mjs","sourcesContent":["import { A_Component, A_Container, A_Entity, A_Fragment, A_TYPES__Component_Constructor, A_TYPES__Container_Constructor, A_TYPES__Entity_Constructor, A_TYPES__Fragment_Constructor, A_TYPES__Required } from \"@adaas/a-concept\"\nimport { A_FrameNamespace } from \"../A-FrameNamespace\"\n\n\nexport type A_FrameOptions = {\n namespace?: string\n description?: string\n}\n\n\nexport type A_FrameDefineOptions<T extends Record<string, any> = Record<string, any>> = {\n /**\n * The description of the Method or Class to be indexed. Uses for the better explanation and retrieval strategy \n */\n description?: string,\n /**\n * Define Namespace to separate and group together related components, entities and containers.\n * \n * [!] Namespace is a hard separation between groups.\n */\n namespace?: string | A_FrameNamespace\n /***\n * Optional parameters that can be used to store any additional information about the component, entity or container.\n * This information can be used for the better retrieval strategy or for the better explanation of the component, entity or container.\n */\n metadata?: T,\n /**\n * Can add a custom way of explaining the component, entity or container, so it can be used in the better retrieval strategy.\n */\n examples?: string[]\n}\n\n\nexport type A_FrameMetaTarget = A_TYPES__Container_Constructor\n | A_TYPES__Entity_Constructor\n | A_TYPES__Component_Constructor\n | A_TYPES__Fragment_Constructor\n\n\n// ===========================================================================\n// --------------------------- Decorator Types -------------------------------\n// ===========================================================================\n// ---------------------------------------------------------------------------\n// -------------------- A-Frame Index Decorator Types-------------------------\n// ---------------------------------------------------------------------------\n/**\n * Indicates a type of Feature Define decorator\n */\nexport type A_FrameDecoratorDescriptor =\n TypedPropertyDescriptor<(...args: any[]) => any>\n | TypedPropertyDescriptor<(...args: any[]) => any>\n | TypedPropertyDescriptor<(...args: any[]) => Promise<any>>\n | TypedPropertyDescriptor<(...args: any[]) => Promise<any>>\n\n\n/**\n * Describes a target where Feature Define decorator can be applied\n * \n * [!] The feature can be defined on Container, Entity, Component or Command\n */\nexport type A_FrameDecoratorTarget = A_FrameMetaTarget\n | A_Component\n | A_Container\n | A_Entity\n | A_Fragment\n/**\n * Targets types that can be indexed\n */\nexport enum A_FrameTargetType {\n COMPONENT = 'component',\n ENTITY = 'entity',\n CONTAINER = 'container',\n FRAGMENT = 'fragment',\n METHOD = 'method'\n}\n\n/**\n * A type of Meta information stored by Index decorator\n * This information is used by A-Context to build a proper index structure\n */\nexport type A_FrameDecoratorMeta = {\n /**\n * Component name\n */\n name: string,\n /**\n * Component description\n */\n description?: string,\n /**\n * Type of the component\n */\n type: A_FrameTargetType,\n /**\n * Namespace for the component\n */\n namespace?: string | A_FrameNamespace\n /**\n * Constructor reference\n */\n constructor: A_FrameDecoratorTarget\n}\n\n\n// ---------------------------------------------------------------------------\n// -------------------- A-Frame Index Decorator Types-------------------------\n// ---------------------------------------------------------------------------\n/**\n * Indicates a type of Feature Define decorator\n */\nexport type A_FrameNamespaceDecoratorDescriptor =\n TypedPropertyDescriptor<(...args: any[]) => any>\n | TypedPropertyDescriptor<(...args: any[]) => any>\n | TypedPropertyDescriptor<(...args: any[]) => Promise<any>>\n | TypedPropertyDescriptor<(...args: any[]) => Promise<any>>\n\n\n/**\n * Describes a target where Feature Define decorator can be applied\n * \n * [!] The feature can be defined on Container, Entity, Component or Command\n */\nexport type A_FrameNamespaceDecoratorTarget = A_Container\n | A_Entity\n | A_Component\n | A_Fragment\n | A_TYPES__Fragment_Constructor\n | A_TYPES__Component_Constructor\n | A_TYPES__Container_Constructor\n | A_TYPES__Entity_Constructor\n\n\n\n\n// ---------------------------------------------------------------------------\n// ------------- A-Frame Index Configurations Meta Types----------------------\n// ---------------------------------------------------------------------------\n\n\nexport type A_FrameIndexMetaType = {\n namespaces: string,\n descriptions: string,\n type: string,\n name: string,\n methods: Map<string, A_FrameIndexMetaMethodMeta>\n}\n\n\nexport type A_FrameIndexMetaMethodMeta = {\n name: string,\n description?: string,\n methodName: string\n}\n\n\n\n\nexport type A_FrameNamespaceOptions = {\n /**\n * Must have UNIQUE name of the Namespace. This is used for the indexing and retrieval strategy. It should be descriptive and concise.\n */\n name: string,\n /**\n * The description of the Namespace to be indexed. Uses for the better explanation and retrieval strategy\n */\n description?: string,\n}","import { A_CommonHelper, A_TypeGuards } from \"@adaas/a-concept\";\nimport { A_FrameDecoratorTarget, A_FrameMetaTarget } from \"./A-Frame.types\";\nimport { A_FrameIndexTarget } from \"../A-FrameIndex/A-FrameIndex.types\";\n\n\n\nexport class A_FrameTypeGuard {\n /**\n * Determines if the target is an allowed type for indexing\n * \n * @param target \n * @returns \n */\n static isAllowedTarget(target: any): target is A_FrameDecoratorTarget {\n return A_TypeGuards.isEntityConstructor(target)\n || A_TypeGuards.isComponentConstructor(target)\n || A_TypeGuards.isContainerConstructor(target)\n || A_TypeGuards.isFragmentConstructor(target)\n || A_TypeGuards.isComponentInstance(target)\n || A_TypeGuards.isContainerInstance(target)\n || A_TypeGuards.isEntityInstance(target)\n || A_TypeGuards.isFragmentInstance(target);\n }\n\n\n\n static getTargetName(target: A_FrameDecoratorTarget): string {\n return A_CommonHelper.getComponentName(target);\n }\n\n\n static getTargetConstructor(target: A_FrameDecoratorTarget): A_FrameIndexTarget {\n return typeof target === 'function' ? target : target.constructor as A_FrameIndexTarget;\n }\n\n\n}","import { A_Error } from \"@adaas/a-concept\";\n\n\nexport class A_FrameError extends A_Error {\n\n static readonly InvalidTarget = 'A-Frame Index Invalid Target Error';\n\n static readonly InvalidConfiguration = 'A-Frame Index Invalid Configuration Error';\n\n static readonly IndexDefinitionError = 'A-Frame Index Definition Error';\n static readonly IndexMetadataError = 'A-Frame Index Metadata Error';\n static readonly IndexRegistryError = 'A-Frame Index Registry Error';\n static readonly IndexComponentNotFoundError = 'A-Frame Index Component Not Found Error';\n}","import { A_CommonHelper, A_Context, A_Meta, A_TypeGuards } from \"@adaas/a-concept\";\nimport { A_FrameDecoratorTarget, A_FrameTargetType, A_FrameDecoratorDescriptor, A_FrameMetaTarget, A_FrameDefineOptions } from \"../A-Frame.types\";\nimport { A_FrameTypeGuard } from \"../A-Frame.guard\";\nimport { A_FrameError } from \"../A-Frame.error\";\nimport { A_FrameIndex } from \"@adaas/a-frame/index\";\nimport { A_FrameDefinition } from \"@adaas/a-frame/definition\";\nimport { A_FrameNamespace } from \"@adaas/a-frame/namespace\";\n\nexport function A_FrameDefineDecorator(\n config: A_FrameDefineOptions\n) {\n return function (\n target: A_FrameDecoratorTarget,\n propertyKey?: string | symbol,\n descriptor?: A_FrameDecoratorDescriptor\n ): any {\n let componentType: A_FrameTargetType;\n\n switch (true) {\n case !!propertyKey && !!descriptor:\n componentType = A_FrameTargetType.METHOD;\n break;\n case A_TypeGuards.isComponentConstructor(target) || A_TypeGuards.isComponentInstance(target):\n componentType = A_FrameTargetType.COMPONENT;\n break;\n case A_TypeGuards.isContainerConstructor(target) || A_TypeGuards.isContainerInstance(target):\n componentType = A_FrameTargetType.CONTAINER;\n break;\n case A_TypeGuards.isEntityConstructor(target) || A_TypeGuards.isEntityInstance(target):\n componentType = A_FrameTargetType.ENTITY;\n break;\n case A_TypeGuards.isFragmentConstructor(target) || A_TypeGuards.isFragmentInstance(target):\n componentType = A_FrameTargetType.FRAGMENT;\n break;\n default:\n throw new A_FrameError(\n A_FrameError.InvalidTarget,\n `@A_Frame.Define decorator cannot be applied to the target.`\n );\n }\n const namespace = config.namespace\n ? config.namespace instanceof A_FrameNamespace\n ? config.namespace\n : A_FrameIndex.getNamespace(config.namespace) || new A_FrameNamespace({\n name: config.namespace,\n })\n : A_FrameIndex.getDefaultNamespace();\n\n\n // Handle method decorator case\n if (!!propertyKey && !!descriptor) {\n // For methods, target is the class prototype\n const targetClass = target.constructor as A_FrameMetaTarget;\n const methodName = String(propertyKey);\n\n const source = (descriptor.value as Function).toString();\n\n // Add to methods array\n A_FrameIndex.addDefinition(new A_FrameDefinition({\n name: methodName,\n dependency: targetClass.name,\n description: config.description,\n source: source,\n metadata: config.metadata,\n type: A_FrameTargetType.METHOD,\n namespace: namespace\n }));\n\n return descriptor;\n }\n\n // Handle class decorator case\n if (!A_FrameTypeGuard.isAllowedTarget(target)) {\n throw new A_FrameError(\n A_FrameError.InvalidTarget,\n `@A_Frame.${componentType} decorator can only be applied to allowed targets.`\n );\n }\n\n // for error messages\n const componentName = A_CommonHelper.getComponentName(target);\n\n const targetClass = A_FrameTypeGuard.getTargetConstructor(target);\n\n // Check for pending namespace and description from other decorators\n const source = target.toString();\n\n A_FrameIndex.addDefinition(new A_FrameDefinition({\n name: componentName,\n description: config.description,\n dependency: targetClass.name,\n source: source,\n metadata: config.metadata,\n type: componentType,\n namespace: namespace\n }));\n\n return target;\n\n };\n}\n\n\n\n","import { A_CommonHelper, A_Context, A_Meta, A_TypeGuards } from \"@adaas/a-concept\";\nimport { A_FrameDecoratorTarget, A_FrameTargetType, A_FrameDecoratorDescriptor, A_FrameMetaTarget, A_FrameNamespaceOptions } from \"../A-Frame.types\";\nimport { A_FrameError } from \"../A-Frame.error\";\nimport { A_FrameIndex } from \"@adaas/a-frame/index\";\nimport { A_FrameNamespace } from \"@adaas/a-frame/namespace\";\n\nexport function A_FrameNamespaceDecorator(\n config: Partial<A_FrameNamespaceOptions> = {}\n) {\n return function (\n target: A_FrameDecoratorTarget,\n propertyKey?: string | symbol,\n descriptor?: A_FrameDecoratorDescriptor\n ): any {\n\n if (!config.name)\n throw new A_FrameError(\n A_FrameError.InvalidConfiguration,\n `@A_Frame.Namespace decorator requires a name in the configuration.`\n );\n\n const namespace = new A_FrameNamespace({\n name: config.name,\n description: config.description,\n });\n\n\n A_FrameIndex.addNamespace(namespace);\n };\n}\n\n\n\n","import { A_Component, A_Scope, A_TYPES__A_DependencyInjectable, A_TYPES__Component_Constructor, A_TYPES__Ctor, A_TYPES__Fragment_Constructor } from \"@adaas/a-concept\";\nimport { A_FrameDefineOptions, A_FrameNamespaceOptions } from \"./A-Frame.types\";\nimport { A_FrameDefineDecorator } from \"./decorators/A-FrameDefine.decorator\";\nimport { A_FrameNamespaceDecorator } from \"./decorators/A-FrameNamespace.decorator\";\n\n\n\nexport class A_FrameBase extends A_Component {\n /**\n * Primary Decorator to define and index components, containers, entities, fragments and methods in the A-Frame Index structure\n * \n * Those components will participate in AI indexing and retrieval strategy, so they can be used in the better way to build new features and components.\n * \n * @param options \n * @returns \n */\n static Define(options: A_FrameDefineOptions) {\n return A_FrameDefineDecorator(options) as ClassDecorator & MethodDecorator;\n\n }\n /**\n * Allows to define a namespace for grouping related components, containers, entities, fragments and methods together in the A-Frame Index structure. This is useful for better organization and retrieval strategy.\n * \n * @param options \n * @returns \n */\n static NameSpace(options: A_FrameNamespaceOptions) {\n return A_FrameNamespaceDecorator(options) as ClassDecorator & MethodDecorator;\n }\n\n\n\n /**\n * Default per-instance dependencies registered on first build. The blob\n * store is intentionally omitted here — the user is expected to seed and\n * register `A_FrameBrowserStorageBlobs` themselves (typically via\n * `A_FrameBrowserStorageBlobs.fromBundle(bundle)` before `concept.load()`).\n * If they don't, `A_FrameBrowserStorageProvider.onLoad()` falls back to the\n * empty singleton.\n */\n get package(): Array<{ ctor: A_TYPES__Component_Constructor<any> | A_TYPES__Fragment_Constructor<any>; instance: any }> {\n return [\n // { ctor: A_FrameContext, instance: new A_FrameContext() },\n // { ctor: A_FrameEnv, instance: new A_FrameEnv() },\n // { ctor: A_FrameStorageCodec, instance: new A_FrameStorageCodec() },\n // { ctor: A_FrameBrowserStorageProvider, instance: A_FrameBrowserStorageProvider },\n // { ctor: A_FrameLogger, instance: new A_FrameLogger() },\n ];\n }\n\n\n protected packDependency<T extends A_TYPES__A_DependencyInjectable>(\n scope: A_Scope,\n target: A_TYPES__Ctor<T> | T,\n def: A_TYPES__Ctor<T> | T,\n ) {\n const existing = scope.resolve(target as any);\n if (!existing) scope.register(def);\n }\n\n\n}","import { A_Concept, A_Context, A_Fragment, A_Inject, A_Scope, A_TYPES__A_DependencyInjectable, A_TYPES__Component_Constructor, A_TYPES__Ctor, A_TYPES__Fragment_Constructor } from \"@adaas/a-concept\";\nimport { A_FrameBase } from \"./A-Frame.component\";\nimport { A_FrameBrowserStorageProvider } from \"../A-FrameStorage/browser/A-FrameBrowserStorage.component\";\nimport { A_FrameBrowserStorageBlobs } from \"../A-FrameStorage/browser/A-FrameBrowserStorageBlobs.context\";\nimport { A_FrameStorageCodec } from \"../A-FrameStorage/A-FrameStorage.codec\";\nimport { A_FrameIndex } from \"../A-FrameIndex\";\nimport { A_FrameContext } from \"./A-Frame.context\";\nimport { A_FrameLogger } from \"../A-FrameLogger/A-FrameLogger.component.env-browser\";\nimport { A_FrameEnv } from \"../A-FrameEnv/A-FrameEnv.fragment.env-browser\";\n\n\n\nexport class A_Frame extends A_FrameBase {\n\n /**\n * Default per-instance dependencies registered on first build. The blob\n * store is intentionally omitted here — the user is expected to seed and\n * register `A_FrameBrowserStorageBlobs` themselves (typically via\n * `A_FrameBrowserStorageBlobs.fromBundle(bundle)` before `concept.load()`).\n * If they don't, `A_FrameBrowserStorageProvider.onLoad()` falls back to the\n * empty singleton.\n */\n get package(): Array<{ ctor: A_TYPES__Component_Constructor<any> | A_TYPES__Fragment_Constructor<any>; instance: any }> {\n return [\n { ctor: A_FrameContext, instance: new A_FrameContext() },\n { ctor: A_FrameEnv, instance: new A_FrameEnv() },\n { ctor: A_FrameStorageCodec, instance: new A_FrameStorageCodec() },\n { ctor: A_FrameBrowserStorageProvider, instance: A_FrameBrowserStorageProvider },\n { ctor: A_FrameLogger, instance: new A_FrameLogger() },\n ];\n }\n\n\n @A_Concept.Load()\n async injectDependencies(\n ) {\n const scope = A_Context.root\n\n // Register \n // every package dep that isn't already in scope.\n this.package.forEach(({ ctor, instance }) => this.packDependency(scope, ctor, instance));\n\n // A_FrameIndex needs to inherit the scope so its registry is visible\n // to all later resolutions (entities query it during load).\n if (!scope.resolve(A_FrameIndex)) {\n const index = new A_FrameIndex();\n index.inherit(scope);\n scope.register(index);\n }\n }\n\n\n /**\n * Hydrate all known namespaces and definitions from the in-memory bundle\n * blobs. Read-only — never calls embed (no network in the browser).\n *\n * The caller is responsible for:\n * 1. Seeding `A_FrameBrowserStorageBlobs` from a prebuilt `A_FrameBundle`.\n * 2. Setting `A_FrameContext.encryptionKey` and `serverVersion` so blobs\n * can be decrypted and validated.\n */\n @A_Concept.Load()\n async load(\n @A_Inject(A_Scope) scope: A_Scope,\n @A_Inject(A_FrameIndex) index: A_FrameIndex,\n @A_Inject(A_FrameContext) context: A_FrameContext,\n @A_Inject(A_FrameLogger) logger: A_FrameLogger,\n @A_Inject(A_FrameBrowserStorageBlobs) blobs: A_FrameBrowserStorageBlobs,\n ) {\n if (!context.encryptionKey) {\n logger.warn(\n 'A_Frame (browser): no encryption key on context — blobs cannot be decrypted. ' +\n 'Call A_FrameContext.setCredentials({...}) before concept.load().'\n );\n return;\n }\n\n // Surface a soft mismatch warning when the bundle was built against a\n // different server version than the one the user has authenticated with.\n if (blobs.bundleMeta && context.serverVersion && blobs.bundleMeta.serverVersion !== context.serverVersion) {\n logger.warn(\n `A_Frame bundle was built against server v${blobs.bundleMeta.serverVersion} ` +\n `but the current credentials report v${context.serverVersion}. ` +\n `Hydration may skip records — rebuild the bundle.`\n );\n }\n\n const namespaces = index.listNamespaces();\n const definitions = index.listDefinitions();\n\n await Promise.all([\n ...namespaces.map(ns => Promise.resolve(ns.load()).catch(() => { })),\n ...definitions.map(def => Promise.resolve(def.load()).catch(() => { })),\n ]);\n\n const unloaded =\n namespaces.filter(ns => !ns.isEmbed).length +\n definitions.filter(def => !def.isEmbed).length;\n if (unloaded > 0) {\n logger.warn(\n `${unloaded} A-Frame entit${unloaded === 1 ? 'y' : 'ies'} could not be hydrated from the bundle. ` +\n `Rebuild the bundle on the Node side to include them.`\n );\n }\n }\n\n\n @A_Concept.Build()\n async build(\n @A_Inject(A_Scope) scope: A_Scope,\n ) {\n // Build phase is now redundant for registration (handled in @Load above)\n // but kept as a hook for downstream extensions.\n }\n\n\n @A_Concept.Start()\n async start(\n @A_Inject(A_Scope) scope: A_Scope,\n ) {\n // Start logic here\n }\n\n\n\n}\n"]}
|
package/dist/browser/env.mjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export{b as A_FrameEnv}from'./chunk-
|
|
1
|
+
export{b as A_FrameEnv}from'./chunk-YQJFTBGV.mjs';import'./chunk-DMGQW3AO.mjs';//# sourceMappingURL=env.mjs.map
|
|
2
2
|
//# sourceMappingURL=env.mjs.map
|
package/dist/browser/storage.mjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export{f as A_FrameBrowserStorageBlobs,h as A_FrameBrowserStorageProvider,e as A_FrameStorage,g as A_FrameStorageCodec,d as A_FrameStorageError,b as A_FrameStorageFeatures,c as A_FrameStorageOperation}from'./chunk-
|
|
1
|
+
export{f as A_FrameBrowserStorageBlobs,h as A_FrameBrowserStorageProvider,e as A_FrameStorage,g as A_FrameStorageCodec,d as A_FrameStorageError,b as A_FrameStorageFeatures,c as A_FrameStorageOperation}from'./chunk-GOADBDTE.mjs';import'./chunk-YQJFTBGV.mjs';import'./chunk-K4MZY4ME.mjs';import'./chunk-AYN7KUQT.mjs';import'./chunk-INS7RO3B.mjs';import'./chunk-ZVCTU2DN.mjs';import'./chunk-H6OZP4ZV.mjs';import'./chunk-VDVJWU5T.mjs';import'./chunk-DMGQW3AO.mjs';//# sourceMappingURL=storage.mjs.map
|
|
2
2
|
//# sourceMappingURL=storage.mjs.map
|
package/dist/node/bundle.cjs
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
3
|
var chunkQFUZVN4Y_cjs = require('./chunk-QFUZVN4Y.cjs');
|
|
4
|
-
var
|
|
4
|
+
var chunkR2H234YO_cjs = require('./chunk-R2H234YO.cjs');
|
|
5
5
|
require('./chunk-QFHZIG7Y.cjs');
|
|
6
6
|
var fs = require('fs/promises');
|
|
7
7
|
var path = require('path');
|
|
@@ -62,7 +62,7 @@ var A_FrameBundleBuilder = class extends aConcept.A_Component {
|
|
|
62
62
|
}
|
|
63
63
|
return {
|
|
64
64
|
bundleVersion: A_FRAME_BUNDLE_VERSION,
|
|
65
|
-
aFrameVersion:
|
|
65
|
+
aFrameVersion: chunkR2H234YO_cjs.version || "0.0.0",
|
|
66
66
|
serverVersion: opts.serverVersion,
|
|
67
67
|
builtAt: (/* @__PURE__ */ new Date()).toISOString(),
|
|
68
68
|
namespaces,
|
package/dist/node/bundle.mjs
CHANGED
package/dist/node/channel.cjs
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
4
|
-
require('./chunk-
|
|
3
|
+
var chunkGRR6NNWY_cjs = require('./chunk-GRR6NNWY.cjs');
|
|
4
|
+
require('./chunk-XFUF7SDO.cjs');
|
|
5
5
|
require('./chunk-KK64VLZN.cjs');
|
|
6
6
|
require('./chunk-KLG6HKFU.cjs');
|
|
7
|
-
require('./chunk-
|
|
7
|
+
require('./chunk-R2H234YO.cjs');
|
|
8
8
|
require('./chunk-GBTFMT3K.cjs');
|
|
9
9
|
require('./chunk-ZM2RLVVH.cjs');
|
|
10
10
|
require('./chunk-YWWGJ6EJ.cjs');
|
|
@@ -14,47 +14,47 @@ require('./chunk-QFHZIG7Y.cjs');
|
|
|
14
14
|
|
|
15
15
|
Object.defineProperty(exports, "A_FrameChannel", {
|
|
16
16
|
enumerable: true,
|
|
17
|
-
get: function () { return
|
|
17
|
+
get: function () { return chunkGRR6NNWY_cjs.A_FrameChannel; }
|
|
18
18
|
});
|
|
19
19
|
Object.defineProperty(exports, "A_FrameChannelError", {
|
|
20
20
|
enumerable: true,
|
|
21
|
-
get: function () { return
|
|
21
|
+
get: function () { return chunkGRR6NNWY_cjs.A_FrameChannelError; }
|
|
22
22
|
});
|
|
23
23
|
Object.defineProperty(exports, "A_FrameChannelEvent", {
|
|
24
24
|
enumerable: true,
|
|
25
|
-
get: function () { return
|
|
25
|
+
get: function () { return chunkGRR6NNWY_cjs.A_FrameChannelEvent; }
|
|
26
26
|
});
|
|
27
27
|
Object.defineProperty(exports, "A_FrameChannelRequest", {
|
|
28
28
|
enumerable: true,
|
|
29
|
-
get: function () { return
|
|
29
|
+
get: function () { return chunkGRR6NNWY_cjs.A_FrameChannelRequest; }
|
|
30
30
|
});
|
|
31
31
|
Object.defineProperty(exports, "A_FrameChannelSocketFeatures", {
|
|
32
32
|
enumerable: true,
|
|
33
|
-
get: function () { return
|
|
33
|
+
get: function () { return chunkGRR6NNWY_cjs.A_FrameChannelSocketFeatures; }
|
|
34
34
|
});
|
|
35
35
|
Object.defineProperty(exports, "A_FrameChannelSocketStatuses", {
|
|
36
36
|
enumerable: true,
|
|
37
|
-
get: function () { return
|
|
37
|
+
get: function () { return chunkGRR6NNWY_cjs.A_FrameChannelSocketStatuses; }
|
|
38
38
|
});
|
|
39
39
|
Object.defineProperty(exports, "A_FrameChannelStream", {
|
|
40
40
|
enumerable: true,
|
|
41
|
-
get: function () { return
|
|
41
|
+
get: function () { return chunkGRR6NNWY_cjs.A_FrameChannelStream; }
|
|
42
42
|
});
|
|
43
43
|
Object.defineProperty(exports, "A_FrameChannelStreamFeatures", {
|
|
44
44
|
enumerable: true,
|
|
45
|
-
get: function () { return
|
|
45
|
+
get: function () { return chunkGRR6NNWY_cjs.A_FrameChannelStreamFeatures; }
|
|
46
46
|
});
|
|
47
47
|
Object.defineProperty(exports, "A_FrameChannelStreamStatuses", {
|
|
48
48
|
enumerable: true,
|
|
49
|
-
get: function () { return
|
|
49
|
+
get: function () { return chunkGRR6NNWY_cjs.A_FrameChannelStreamStatuses; }
|
|
50
50
|
});
|
|
51
51
|
Object.defineProperty(exports, "A_FrameFeatures", {
|
|
52
52
|
enumerable: true,
|
|
53
|
-
get: function () { return
|
|
53
|
+
get: function () { return chunkGRR6NNWY_cjs.A_FrameFeatures; }
|
|
54
54
|
});
|
|
55
55
|
Object.defineProperty(exports, "A_FrameNodeChannel", {
|
|
56
56
|
enumerable: true,
|
|
57
|
-
get: function () { return
|
|
57
|
+
get: function () { return chunkGRR6NNWY_cjs.A_FrameNodeChannel; }
|
|
58
58
|
});
|
|
59
59
|
//# sourceMappingURL=channel.cjs.map
|
|
60
60
|
//# sourceMappingURL=channel.cjs.map
|
package/dist/node/channel.mjs
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
export { A_FrameChannel, A_FrameChannelError, A_FrameChannelEvent, A_FrameChannelRequest, A_FrameChannelSocketFeatures, A_FrameChannelSocketStatuses, A_FrameChannelStream, A_FrameChannelStreamFeatures, A_FrameChannelStreamStatuses, A_FrameFeatures, A_FrameNodeChannel } from './chunk-
|
|
2
|
-
import './chunk-
|
|
1
|
+
export { A_FrameChannel, A_FrameChannelError, A_FrameChannelEvent, A_FrameChannelRequest, A_FrameChannelSocketFeatures, A_FrameChannelSocketStatuses, A_FrameChannelStream, A_FrameChannelStreamFeatures, A_FrameChannelStreamStatuses, A_FrameFeatures, A_FrameNodeChannel } from './chunk-SDKIJDMH.mjs';
|
|
2
|
+
import './chunk-5BKCX2RO.mjs';
|
|
3
3
|
import './chunk-K4MZY4ME.mjs';
|
|
4
4
|
import './chunk-APRYHBEF.mjs';
|
|
5
|
-
import './chunk-
|
|
5
|
+
import './chunk-OYC6L5NX.mjs';
|
|
6
6
|
import './chunk-B7BXP7K4.mjs';
|
|
7
7
|
import './chunk-442DXGOD.mjs';
|
|
8
8
|
import './chunk-3TD2PEDZ.mjs';
|