@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
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/lib/A-FrameChannel/A-FrameChannel.constants.ts","../../src/lib/A-FrameChannel/A-FrameChannelRequest.context.ts","../../src/lib/A-FrameChannel/A-FrameChannel.error.ts","../../src/lib/A-FrameDynamicSession/A-FrameDynamicSession.constants.ts","../../src/lib/A-FrameDynamicSession/A-FrameDynamicSession.entity.ts","../../src/lib/A-FrameDynamicStructure/A-FrameDynamicStructureOperation.context.ts","../../src/lib/A-FrameChannel/A-FrameChannel.component.ts","../../src/lib/A-FrameChannel/A-FrameChannelEvent.context.ts","../../src/lib/A-FrameChannel/A-FrameChannelStream.entity.ts","../../src/lib/A-FrameChannel/A-FrameChannel.component.env-node.ts"],"names":["A_Error","A_Fragment","A_Scope","A_Context","A_Entity","A_Feature","A_Inject"],"mappings":"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","file":"chunk-SDKIJDMH.mjs","sourcesContent":["\n\nexport const A_FrameFeatures = {\n Request: '_A_FRAME_REQUEST',\n Socket: '_A_FRAME_SOCKET',\n} as const;\n\n\n\nexport const A_FrameChannelStreamStatuses = {\n Open: 'open',\n Closed: 'closed',\n} as const;\n\n\nexport const A_FrameChannelStreamFeatures = {\n open: '_A_FRAME_CHANNEL_STREAM_OPEN',\n send: '_A_FRAME_CHANNEL_STREAM_SEND',\n onEvent: '_A_FRAME_CHANNEL_STREAM_ON_EVENT',\n onError: '_A_FRAME_CHANNEL_STREAM_ON_ERROR',\n onComplete: '_A_FRAME_CHANNEL_STREAM_ON_COMPLETE',\n onClose: '_A_FRAME_CHANNEL_STREAM_ON_CLOSE',\n} as const;\n\n\n// ─── WebSocket socket entity constants ───────────────────────────────────────\n\nexport const A_FrameChannelSocketStatuses = {\n Connecting: 'connecting',\n Open: 'open',\n Closed: 'closed',\n} as const;\n\nexport const A_FrameChannelSocketFeatures = {\n onEvent: '_A_FRAME_CHANNEL_SOCKET_ON_EVENT',\n onError: '_A_FRAME_CHANNEL_SOCKET_ON_ERROR',\n onOpen: '_A_FRAME_CHANNEL_SOCKET_ON_OPEN',\n onClose: '_A_FRAME_CHANNEL_SOCKET_ON_CLOSE',\n} as const;\n","import { A_Error, A_Fragment } from \"@adaas/a-concept\";\n\n\nexport class A_FrameChannelRequest<\n _Response = any\n> extends A_Fragment {\n\n protected _response?: _Response;\n\n protected _error?: A_Error;\n\n\n constructor(\n public method: string,\n public path: string,\n public body?: unknown\n ) {\n super({ name: 'a-frame-channel-request' });\n }\n\n complete(response: _Response): void {\n this._response = response;\n }\n\n fail(error: A_Error): void {\n this._error = error;\n }\n\n get response(): _Response | undefined {\n return this._response;\n }\n\n get error(): A_Error | undefined {\n return this._error;\n }\n}\n","import { A_Error } from \"@adaas/a-concept\";\n\n\n\nexport class A_FrameChannelError extends A_Error{\n static readonly InvalidRequest = 'InvalidRequest';\n static readonly Timeout = 'Timeout';\n static readonly RequestFailed = 'RequestFailed';\n}\n ","\n\n\nexport const A_FrameDynamicSessionFeatures = {\n Init: '_A_FRAME_DYNAMIC_SESSION_INIT',\n Question: '_A_FRAME_DYNAMIC_SESSION_QUESTION',\n Answer: '_A_FRAME_DYNAMIC_SESSION_ANSWER',\n Destroy: '_A_FRAME_DYNAMIC_SESSION_DESTROY',\n} as const;","import { A_Context, A_Entity, A_Scope } from \"@adaas/a-concept\"\nimport { A_FrameDynamicSession_Init, A_FrameDynamicSession_Serialized } from \"./A-FrameDynamicSession.types\";\nimport { A_FrameDynamicSessionFeatures } from \"./A-FrameDynamicSession.constants\";\n\n\nexport class A_FrameDynamicSession extends A_Entity<A_FrameDynamicSession_Init, A_FrameDynamicSession_Serialized> {\n static get concept(): string {\n return 'a-frame';\n }\n\n /**\n * \n */\n protected _scope!: A_Scope\n\n protected _turnsCount!: number;\n protected _currentTurn!: number;\n protected _initDate!: string;\n\n /**\n * \n */\n get scope(): A_Scope {\n\n if (!this._scope) {\n this._scope = A_Context.allocate(this, new A_Scope({ name: `${this.aseid.id}-scope` }));\n }\n\n return this._scope;\n }\n\n get currentTurn(): number {\n return this._currentTurn;\n }\n\n get initDate(): Date {\n return new Date(this._initDate);\n }\n\n\n static onQuestion() {\n return;\n }\n\n static onAnswer() {\n return;\n }\n\n\n fromNew(newEntity: A_FrameDynamicSession_Init): void {\n this._turnsCount = newEntity.turnsCount || 5;\n this._currentTurn = 0;\n this._initDate = new Date().toISOString();\n\n }\n\n fromJSON(serialized: A_FrameDynamicSession_Serialized): void {\n this._turnsCount = serialized.turnsCount;\n this._currentTurn = serialized.currentTurn;\n this._initDate = serialized.initDate;\n }\n\n\n async init() {\n await this.call(A_FrameDynamicSessionFeatures.Init)\n }\n\n async destroy(scope?: A_Scope): Promise<void> {\n await this.call(A_FrameDynamicSessionFeatures.Destroy, scope);\n }\n\n\n async question() {\n this._currentTurn++;\n await this.call(A_FrameDynamicSessionFeatures.Question);\n }\n\n async answer() {\n await this.call(A_FrameDynamicSessionFeatures.Answer);\n }\n\n\n toJSON(): A_FrameDynamicSession_Serialized {\n return {\n ...super.toJSON(),\n turnsCount: this._turnsCount,\n currentTurn: this._currentTurn,\n initDate: this._initDate,\n }\n }\n}","import { A_Fragment } from \"@adaas/a-concept\"\n\n\nexport class A_FrameDynamicStructureOperation<\n _InputParams = any,\n> extends A_Fragment {\n\n protected _meta: Map<string, any> = new Map();\n\n constructor(\n params: _InputParams = {} as _InputParams\n ) {\n super({ name: 'a-frame-dynamic-structure-operation-context' });\n this._meta.set('params', params);\n\n }\n\n get params(): _InputParams {\n return this._meta.get('params');\n }\n\n\n get(key: string) {\n return this._meta.get(key);\n }\n\n\n set(key: string, value: any) {\n this._meta.set(key, value);\n }\n\n}\n","import { A_Caller, A_Component, A_Context, A_Feature, A_Inject, A_Scope } from \"@adaas/a-concept\";\nimport { IA_Frame_Channel, A_Frame_EmbedResponse, A_Frame_GenerateResponse, A_Frame_CredentialResponse } from \"./A-FrameChannel.types\";\nimport { A_FrameEnv } from \"../A-FrameEnv/A-FrameEnv.fragment.env-node\";\nimport { A_FrameFeatures } from \"./A-FrameChannel.constants\";\nimport { A_FrameChannelRequest } from \"./A-FrameChannelRequest.context\";\nimport { A_FrameChannelError } from \"./A-FrameChannel.error\";\nimport { A_FrameDefinition } from \"../A-FrameDefinition\";\nimport { A_FrameDefinitionFeatures } from \"../A-FrameDefinition/A-FrameDefinition.constants\";\nimport { A_FrameNamespaceFeatures } from \"../A-FrameNamespace/A-FrameNamespace.constants\";\nimport { A_FrameNamespace } from \"../A-FrameNamespace\";\nimport { A_FrameDynamicStructure } from \"../A-FrameDynamicStructure/A-FrameDynamicStructure.entity\";\nimport { A_FrameDynamicSession } from \"../A-FrameDynamicSession/A-FrameDynamicSession.entity\";\nimport { A_FrameDynamicStructureOperation } from \"../A-FrameDynamicStructure/A-FrameDynamicStructureOperation.context\";\nimport { A_FrameChannelSocket } from \"./A-FrameChannelSocket.entity\";\n\n/**\n * A_FrameChannel — Node.js environment\n *\n * HTTP client for the embed-server API.\n * Configuration is resolved from process.env via A_FrameEnv injected at\n * feature execution time — no state is stored on the component itself.\n *\n * Uses the global fetch (available in Node 18+; no extra dependency needed).\n */\nexport class A_FrameChannel extends A_Component implements IA_Frame_Channel {\n\n async generate(prompt: string): Promise<A_FrameChannelRequest<A_Frame_GenerateResponse>> {\n const request = new A_FrameChannelRequest<A_Frame_GenerateResponse>('POST', '/api/completions', { prompt, max_tokens: 512 });\n\n const executionScope = new A_Scope({\n name: 'A_FrameChannel.generate',\n fragments: [request],\n })\n .inherit(A_Context.scope(this));\n\n\n try {\n await this.call(A_FrameFeatures.Request, executionScope);\n executionScope.destroy();\n\n return request;\n } catch (err) {\n executionScope.destroy();\n throw new A_FrameChannelError({\n title: A_FrameChannelError.RequestFailed,\n description: `Failed to generate completion: ${err instanceof Error ? err.message : String(err)}`,\n });\n }\n }\n\n async embed(input: string | string[]): Promise<A_FrameChannelRequest<A_Frame_EmbedResponse>> {\n const request = new A_FrameChannelRequest<A_Frame_EmbedResponse>('POST', '/api/embeddings', { input });\n\n const executionScope = new A_Scope({\n name: 'A_FrameChannel.embed',\n fragments: [request],\n })\n .inherit(A_Context.scope(this));\n\n try {\n await this.call(A_FrameFeatures.Request, executionScope);\n executionScope.destroy();\n\n return request;\n } catch (err) {\n executionScope.destroy();\n throw new A_FrameChannelError({\n title: A_FrameChannelError.RequestFailed,\n description: `Failed to embed input: ${err instanceof Error ? err.message : String(err)}`,\n });\n }\n }\n\n async getCredentials(): Promise<A_FrameChannelRequest<A_Frame_CredentialResponse>> {\n const request = new A_FrameChannelRequest<A_Frame_CredentialResponse>('GET', '/api/credentials/me');\n\n const executionScope = new A_Scope({\n name: 'A_FrameChannel.getCredentials',\n fragments: [request],\n })\n .inherit(A_Context.scope(this));\n\n try {\n await this.call(A_FrameFeatures.Request, executionScope);\n executionScope.destroy();\n\n return request;\n } catch (err) {\n executionScope.destroy();\n throw new A_FrameChannelError({\n title: A_FrameChannelError.RequestFailed,\n description: `Failed to get credentials: ${err instanceof Error ? err.message : String(err)}`,\n });\n }\n }\n\n async ping(): Promise<A_FrameChannelRequest<boolean>> {\n const request = new A_FrameChannelRequest<boolean>('GET', '/health');\n\n const executionScope = new A_Scope({\n name: 'A_FrameChannel.ping',\n fragments: [request],\n })\n .inherit(A_Context.scope(this));\n\n try {\n await this.call(A_FrameFeatures.Request, executionScope);\n executionScope.destroy();\n\n return request;\n\n } catch {\n executionScope.destroy();\n\n return request;\n }\n }\n\n\n\n // ─── Feature implementation ───────────────────────────────────────────────\n @A_Feature.Extend({\n name: A_FrameDefinitionFeatures.Embed,\n scope: [A_FrameDefinition],\n })\n async embedDefinition(\n @A_Inject(A_Caller) definition: A_FrameDefinition,\n @A_Inject(A_FrameEnv) env: A_FrameEnv,\n ) {\n const request = new A_FrameChannelRequest<A_Frame_EmbedResponse>('POST', '/api/v1/definition/embed', {\n definition: definition.toJSON(),\n });\n\n const executionScope = new A_Scope({\n name: 'A_FrameChannel.embedDefinition',\n fragments: [request]\n })\n .inherit(A_Context.scope(this));\n\n try {\n await this.call(A_FrameFeatures.Request, executionScope) as A_Frame_EmbedResponse;\n executionScope.destroy();\n\n const response = request.response!;\n if (!response.data || !response.data[0] || !response.data[0].embedding) {\n throw new A_FrameChannelError({\n title: A_FrameChannelError.InvalidRequest,\n description: `Invalid embedding response for definition \"${definition.name}\"`,\n });\n }\n\n const vector = new Float32Array(response.data[0].embedding);\n\n definition.hydrateFromEmbedding(vector, {\n model: response.model,\n dimensions: response.meta.dimensions,\n inputCount: response.meta.input_count,\n aFrameServerVersion: response.meta.server_version!,\n aFrameVersion: env.A_FRAME_VERSION!,\n credentialId: response.meta.credential_id!,\n date: response.date,\n });\n } catch (err) {\n throw new A_FrameChannelError({\n title: A_FrameChannelError.RequestFailed,\n description: `Failed to embed definition \"${definition.name}\": ${err instanceof Error ? err.message : String(err)}`,\n });\n }\n\n }\n\n\n\n @A_Feature.Extend({\n name: A_FrameNamespaceFeatures.Embed,\n scope: [A_FrameNamespace],\n })\n async embedNamespace(\n @A_Inject(A_Caller) namespace: A_FrameNamespace,\n @A_Inject(A_FrameEnv) env: A_FrameEnv,\n ) {\n\n const request = new A_FrameChannelRequest<A_Frame_EmbedResponse>('POST', '/api/v1/namespace/embed', {\n namespace: namespace.toJSON(),\n });\n\n const executionScope = new A_Scope({\n name: 'A_FrameChannel.embedNamespace',\n fragments: [request]\n })\n .inherit(A_Context.scope(this));\n\n\n try {\n await this.call(A_FrameFeatures.Request, executionScope) as A_Frame_EmbedResponse;\n executionScope.destroy();\n\n const response = request.response!;\n if (!response.data || !response.data[0] || !response.data[0].embedding) {\n throw new A_FrameChannelError({\n title: A_FrameChannelError.InvalidRequest,\n description: `Invalid embedding response for namespace \"${namespace.name}\"`,\n });\n }\n\n const vector = new Float32Array(response.data[0].embedding);\n\n namespace.hydrateFromEmbedding(vector, {\n model: response.model,\n dimensions: response.meta.dimensions,\n inputCount: response.meta.input_count,\n aFrameServerVersion: response.meta.server_version!,\n aFrameVersion: env.A_FRAME_VERSION!,\n credentialId: response.meta.credential_id!,\n date: response.date,\n });\n } catch (err) {\n throw new A_FrameChannelError({\n title: A_FrameChannelError.RequestFailed,\n description: `Failed to embed namespace \"${namespace.name}\": ${err instanceof Error ? err.message : String(err)}`,\n });\n }\n\n }\n\n\n\n\n\n\n async generateDynamicStructure(\n @A_Inject(A_Caller) structure: A_FrameDynamicStructure,\n @A_Inject(A_FrameDynamicSession) session: A_FrameDynamicSession,\n @A_Inject(A_FrameDynamicStructureOperation) operation: A_FrameDynamicStructureOperation,\n ) {\n\n }\n\n\n // /**\n // * Open a bidirectional WebSocket connection to the server.\n // *\n // * The method resolves once the connection is closed (server close frame or\n // * transport end). While it is pending, call `socket.send(event)` to push\n // * frames to the server. Incoming frames are dispatched automatically to\n // * any `@A_FrameChannelSocket.onEvent()` handlers registered on `socket`.\n // *\n // * @param socket - Pre-configured socket entity (optionally a subclass with\n // * event handlers pre-registered via `@onEvent` decorators).\n // */\n // async connect(socket: A_FrameChannelSocket): Promise<void> {\n // const executionScope = new A_Scope({\n // name: 'A_FrameChannel.connect',\n // entities: [socket],\n // }).inherit(A_Context.scope(this));\n\n // try {\n // await this.call(A_FrameFeatures.Socket, executionScope);\n // executionScope.destroy();\n // } catch (err) {\n // executionScope.destroy();\n // throw new A_FrameChannelError({\n // title: A_FrameChannelError.RequestFailed,\n // description: `WebSocket connection to ${socket.path} failed: ${err instanceof Error ? err.message : String(err)}`,\n // });\n // }\n // }\n\n}\n\n\n\n\n","import { A_Error, A_Fragment } from \"@adaas/a-concept\";\n\n\nexport class A_FrameChannelEvent<\n T extends Record<string, any> = any,\n> extends A_Fragment {\n\n protected _data?: T;\n protected _eventName!: string;\n\n constructor(\n name: string,\n data?: T\n ) {\n super({ name: 'a-frame-channel-event-' + name });\n this._data = data as T;\n this._eventName = name;\n }\n\n get name(): string {\n return this._eventName;\n }\n\n get data(): T | undefined {\n return this._data;\n }\n\n}\n","import { A_Context, A_Entity, A_Error, A_Feature, A_Scope } from \"@adaas/a-concept\";\nimport { A_FrameChannelStream_Init, A_FrameChannelStream_Serialized, A_FrameChannelStreamStatusNames } from \"./A-FrameChannel.types\";\nimport { A_FrameChannelStreamFeatures, A_FrameChannelStreamStatuses } from \"./A-FrameChannel.constants\";\nimport { A_FrameChannelEvent } from \"./A-FrameChannelEvent.context\";\n\n\n\nexport class A_FrameChannelStream<\n T extends Record<string, any> = Record<string, any>\n> extends A_Entity<\n A_FrameChannelStream_Init<T>,\n A_FrameChannelStream_Serialized<T>\n> {\n\n\n static onEvent(name?: string) {\n\n const eventName = (name || 'all') + A_FrameChannelStreamFeatures.onEvent;\n\n\n return (target: any, propertyKey: string, descriptor: PropertyDescriptor) => {\n return A_Feature.Extend({\n name: eventName,\n scope: [target.constructor],\n })(target, propertyKey, descriptor);\n }\n }\n\n\n protected _method!: string;\n protected _path!: string;\n protected _body?: T;\n protected _scope!: A_Scope\n protected _error?: A_Error;\n protected _status!: A_FrameChannelStreamStatusNames;\n protected _initDate!: string;\n\n /**\n * The scope of the session, Will be destroyed after the session is closed.\n */\n get scope(): A_Scope {\n\n if (!this._scope) {\n this._scope = A_Context.allocate(this, new A_Scope({ name: `${this.aseid.id}-scope` }));\n }\n\n return this._scope;\n }\n\n get method(): string {\n return this._method;\n }\n\n get path(): string {\n return this._path;\n }\n\n get body(): T | undefined {\n return this._body;\n }\n\n get status(): A_FrameChannelStreamStatusNames {\n return this._status;\n }\n\n get error(): A_Error | undefined {\n return this._error;\n }\n\n get initDate(): Date {\n return new Date(this._initDate);\n }\n\n complete(): void {\n this._status = A_FrameChannelStreamStatuses.Closed;\n }\n\n fail(error: A_Error): void {\n this._status = A_FrameChannelStreamStatuses.Closed;\n this._error = error;\n }\n\n destroy(): Promise<void> | void {\n this.scope.destroy();\n }\n\n async open(){\n await this.call(A_FrameChannelStreamFeatures.open);\n }\n\n async send(){\n await this.call(A_FrameChannelStreamFeatures.send);\n }\n\n\n async propagate<T extends Record<string, any>>(name: string, data?: T): Promise<void> {\n const request = new A_FrameChannelEvent<T>(name, data);\n\n const executionScope = new A_Scope({\n name: 'A_FrameChannelStream.propagate',\n fragments: [request],\n })\n .inherit(this.scope);\n\n try {\n\n const callName = (name || 'all') + A_FrameChannelStreamFeatures.onEvent;\n\n await this.call(callName, executionScope);\n executionScope.destroy();\n\n } catch {\n executionScope.destroy();\n }\n }\n\n fromNew(newEntity: A_FrameChannelStream_Init<T>): void {\n this._method = newEntity.method;\n this._path = newEntity.path;\n this._body = newEntity.body;\n this._initDate = new Date().toISOString();\n }\n\n fromJSON(serialized: A_FrameChannelStream_Serialized<T>): void {\n this._method = serialized.method;\n this._path = serialized.path;\n this._body = serialized.body;\n this._initDate = serialized.initDate;\n }\n\n\n toJSON(): A_FrameChannelStream_Serialized<T> {\n return {\n ...super.toJSON(),\n initDate: this._initDate,\n status: this._status,\n error: this._error ? this._error.toJSON() : undefined,\n method: this._method,\n path: this._path,\n body: this._body,\n }\n }\n\n}","import { A_Feature, A_Inject } from \"@adaas/a-concept\";\nimport { A_FrameFeatures } from \"./A-FrameChannel.constants\";\nimport { A_FrameChannelRequest } from \"./A-FrameChannelRequest.context\";\nimport { A_FrameEnv } from \"../A-FrameEnv/A-FrameEnv.fragment.env-node\";\nimport { A_FrameChannelError } from \"./A-FrameChannel.error\";\nimport { A_FrameChannel } from \"./A-FrameChannel.component\";\nimport * as http from \"http\";\nimport * as https from \"https\";\n// import * as crypto from \"crypto\";\n// import * as net from \"net\";\n// import * as tls from \"tls\";\nimport { A_FrameChannelStream } from \"./A-FrameChannelStream.entity\";\nimport { A_FrameChannelEvent } from \"./A-FrameChannelEvent.context\";\n\nexport class A_FrameNodeChannel extends A_FrameChannel {\n\n @A_Feature.Extend({\n name: A_FrameFeatures.Request,\n scope: [A_FrameChannel],\n })\n async request(\n @A_Inject(A_FrameChannelRequest) context: A_FrameChannelRequest,\n @A_Inject(A_FrameEnv) env: A_FrameEnv,\n ) {\n const url = `${env.A_FRAME_SERVER_URL}${context.path}`;\n const parsedUrl = new URL(url);\n const client = parsedUrl.protocol === \"https:\" ? https : http;\n const payload = context.body !== undefined ? JSON.stringify(context.body) : undefined;\n\n const result = await new Promise<unknown>((resolve, reject) => {\n const req = client.request(\n {\n protocol: parsedUrl.protocol,\n hostname: parsedUrl.hostname,\n port: parsedUrl.port,\n path: `${parsedUrl.pathname}${parsedUrl.search}`,\n method: context.method,\n headers: {\n \"Content-Type\": \"application/json\",\n Authorization: `Bearer ${env.A_FRAME_SERVER_API_KEY}`,\n ...(payload ? { \"Content-Length\": Buffer.byteLength(payload) } : {}),\n },\n },\n (res) => {\n const chunks: Buffer[] = [];\n\n res.on(\"data\", (chunk) => chunks.push(Buffer.isBuffer(chunk) ? chunk : Buffer.from(chunk)));\n res.on(\"end\", () => {\n const raw = Buffer.concat(chunks).toString(\"utf8\");\n\n if ((res.statusCode ?? 500) >= 400) {\n console.error(`[A-FrameChannel] <-- ${res.statusCode} ${context.method} ${url}`);\n reject(\n new A_FrameChannelError({\n title: A_FrameChannelError.RequestFailed,\n description: `Request to ${context.path} failed with status ${res.statusCode}`,\n }),\n );\n return;\n }\n\n if (!raw) {\n console.log(`[A-FrameChannel] <-- ${res.statusCode} ${context.method} ${url} (empty)`);\n resolve(undefined);\n return;\n }\n\n try {\n const parsed = JSON.parse(raw);\n console.log(`[A-FrameChannel] <-- ${res.statusCode} ${context.method} ${url}`);\n resolve(parsed);\n } catch {\n console.error(`[A-FrameChannel] <-- ${res.statusCode} ${context.method} ${url} (invalid JSON)`);\n reject(\n new A_FrameChannelError({\n title: A_FrameChannelError.RequestFailed,\n description: `Invalid JSON response from ${context.path}`,\n }),\n );\n }\n });\n },\n );\n\n req.setTimeout(15_000, () => {\n console.error(`[A-FrameChannel] TIMEOUT ${context.method} ${url}`);\n req.destroy(\n new A_FrameChannelError({\n title: A_FrameChannelError.Timeout,\n description: `Request to ${context.path} timed out after 15 seconds`,\n }),\n );\n });\n\n req.on(\"error\", (err) => reject(err));\n\n if (payload) req.write(payload);\n req.end();\n });\n\n context.complete(result);\n\n }\n\n\n\n\n async stream(\n @A_Inject(A_FrameChannelStream) stream: A_FrameChannelStream,\n @A_Inject(A_FrameEnv) env: A_FrameEnv,\n ) {\n const url = `${env.A_FRAME_SERVER_URL}${stream.path}`;\n const parsedUrl = new URL(url);\n const client = parsedUrl.protocol === \"https:\" ? https : http;\n const payload = stream.body !== undefined ? JSON.stringify(stream.body) : undefined;\n\n await new Promise<void>((resolve, reject) => {\n\n const req = client.request(\n {\n protocol: parsedUrl.protocol,\n hostname: parsedUrl.hostname,\n port: parsedUrl.port,\n path: `${parsedUrl.pathname}${parsedUrl.search}`,\n method: stream.method,\n headers: {\n \"Content-Type\": \"application/json\",\n Accept: \"text/event-stream\",\n Authorization: `Bearer ${env.A_FRAME_SERVER_API_KEY}`,\n ...(payload ? { \"Content-Length\": Buffer.byteLength(payload) } : {}),\n },\n },\n (res) => {\n if ((res.statusCode ?? 500) >= 400) {\n console.error(`[A-FrameChannel] <-- ${res.statusCode} ${stream.method} ${url}`);\n reject(\n new A_FrameChannelError({\n title: A_FrameChannelError.RequestFailed,\n description: `Stream request to ${stream.path} failed with status ${res.statusCode}`,\n }),\n );\n return;\n }\n\n let buffer = '';\n\n res.on(\"data\", async (chunk) => {\n buffer += Buffer.isBuffer(chunk) ? chunk.toString(\"utf8\") : String(chunk);\n const lines = buffer.split('\\n');\n // Keep the last incomplete line in the buffer for the next chunk\n buffer = lines.pop() || '';\n\n for (const line of lines) {\n // SSE spec: only lines prefixed with \"data: \" carry event payloads\n if (!line.startsWith('data: ')) continue;\n\n const data = line.slice(6).trim();\n\n // SSE end-of-stream sentinel — no payload to process\n if (data === '[DONE]') continue;\n\n // ──────────────────────────────────────────────────\n // SERVER ACTION DISPATCH\n // Each parsed event is expected to carry a `type`\n // field that identifies the action sent by the server.\n //\n // Add new cases here as the server-side action set\n // grows. The raw event is also pushed to `events` so\n // callers receive the full history via context.complete.\n //\n // Example shape: { type: 'some_action', data: { ... } }\n // ──────────────────────────────────────────────────\n try {\n const event = JSON.parse(data);\n\n await stream.propagate(event.type, event.data);\n } catch {\n console.error(`[A-FrameChannel] Invalid SSE payload from ${stream.path}: ${data}`);\n }\n }\n });\n\n res.on(\"end\", () => {\n console.log(`[A-FrameChannel] <-- ${res.statusCode} ${stream.method} ${url} (stream complete)`);\n resolve();\n });\n\n res.on(\"error\", (err) => reject(err));\n },\n );\n\n req.setTimeout(60_000, () => {\n console.error(`[A-FrameChannel] TIMEOUT ${stream.method} ${url}`);\n req.destroy(\n new A_FrameChannelError({\n title: A_FrameChannelError.Timeout,\n description: `Stream request to ${stream.path} timed out after 60 seconds`,\n }),\n );\n });\n\n req.on(\"error\", (err) => reject(err));\n\n if (payload) req.write(payload);\n req.end();\n });\n\n stream.complete();\n }\n\n\n async send(\n @A_Inject(A_FrameChannelStream) stream: A_FrameChannelStream,\n @A_Inject(A_FrameChannelEvent) event: A_FrameChannelEvent,\n @A_Inject(A_FrameEnv) env: A_FrameEnv,\n ) {\n // SSE is server-to-client only; to push data back to the server\n // during an active stream session we make a separate HTTP POST to\n // a companion endpoint.\n //\n // Convention: same base path as the stream with \"/send\" appended —\n // adjust to match your server-side routing.\n const url = `${env.A_FRAME_SERVER_URL}${stream.path}/send`;\n const parsedUrl = new URL(url);\n const client = parsedUrl.protocol === \"https:\" ? https : http;\n\n // Always serialise as { type, data } so the server can dispatch\n // the same way it dispatches events back to the client.\n const payload = JSON.stringify({ type: event.name, data: event.data });\n\n await new Promise<void>((resolve, reject) => {\n const req = client.request(\n {\n protocol: parsedUrl.protocol,\n hostname: parsedUrl.hostname,\n port: parsedUrl.port,\n path: `${parsedUrl.pathname}${parsedUrl.search}`,\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\",\n Authorization: `Bearer ${env.A_FRAME_SERVER_API_KEY}`,\n \"Content-Length\": Buffer.byteLength(payload),\n },\n },\n (res) => {\n // Drain the response so the socket can be freed/reused.\n res.resume();\n\n res.on(\"end\", () => {\n if ((res.statusCode ?? 500) >= 400) {\n console.error(`[A-FrameChannel] <-- ${res.statusCode} POST ${url}`);\n reject(\n new A_FrameChannelError({\n title: A_FrameChannelError.RequestFailed,\n description: `Send event \"${event.name}\" to ${stream.path} failed with status ${res.statusCode}`,\n }),\n );\n return;\n }\n\n console.log(`[A-FrameChannel] --> ${res.statusCode} POST ${url} (event: ${event.name})`);\n resolve();\n });\n },\n );\n\n req.setTimeout(15_000, () => {\n console.error(`[A-FrameChannel] TIMEOUT POST ${url}`);\n req.destroy(\n new A_FrameChannelError({\n title: A_FrameChannelError.Timeout,\n description: `Send event \"${event.name}\" to ${stream.path} timed out after 15 seconds`,\n }),\n );\n });\n\n req.on(\"error\", (err) => reject(err));\n\n req.write(payload);\n req.end();\n });\n }\n}\n\n// // ─── WebSocket feature ────────────────────────────────────────────────────\n\n// @A_Feature.Extend({\n// name: A_FrameFeatures.Socket,\n// scope: [A_FrameChannel],\n// })\n// async socket(\n// @A_Inject(A_FrameChannelSocket) socket: A_FrameChannelSocket,\n// @A_Inject(A_FrameEnv) env: A_FrameEnv,\n// ) {\n// const url = `${env.A_FRAME_SERVER_URL}${socket.path}`;\n// const parsedUrl = new URL(url);\n\n// // Both http→ws and https→wss are TLS-detected the same way\n// const isSecure =\n// parsedUrl.protocol === \"https:\" || parsedUrl.protocol === \"wss:\";\n\n// const hostname = parsedUrl.hostname;\n// const port = parsedUrl.port\n// ? parseInt(parsedUrl.port, 10)\n// : isSecure ? 443 : 80;\n// const wsPath = `${parsedUrl.pathname}${parsedUrl.search}`;\n// const hostHeader = parsedUrl.port ? `${hostname}:${parsedUrl.port}` : hostname;\n\n// // ── WebSocket opening handshake (RFC 6455 §4.1) ─────────────────────\n// // Generate a fresh 16-byte random key. The server must echo it back\n// // as SHA-1(\"key\" + magic) in Sec-WebSocket-Accept, which we verify to\n// // guard against accidental plain-HTTP responses being accepted as WS.\n// const wsKey = crypto.randomBytes(16).toString(\"base64\");\n// const expectedAccept = crypto\n// .createHash(\"sha1\")\n// .update(wsKey + \"258EAFA5-E914-47DA-95CA-C5AB0DC85B11\")\n// .digest(\"base64\");\n\n// await new Promise<void>((resolve, reject) => {\n// // Establish raw TCP (or TLS) transport without HTTP machinery\n// const rawSocket: net.Socket = isSecure\n// ? tls.connect({ host: hostname, port, servername: hostname })\n// : net.connect({ host: hostname, port });\n\n// let handshakeDone = false;\n// let frameBuffer = Buffer.alloc(0);\n\n// // ── Send the HTTP/1.1 Upgrade request once transport is ready ────\n// function sendHandshake() {\n// // If the caller provided a body, encode it in a custom header so\n// // it survives the GET-only WebSocket upgrade request.\n// const initHeader = socket.body !== undefined\n// ? [`X-A-Frame-Init: ${Buffer.from(JSON.stringify(socket.body)).toString(\"base64\")}`]\n// : [];\n\n// const lines = [\n// `GET ${wsPath} HTTP/1.1`,\n// `Host: ${hostHeader}`,\n// \"Upgrade: websocket\",\n// \"Connection: Upgrade\",\n// `Sec-WebSocket-Key: ${wsKey}`,\n// \"Sec-WebSocket-Version: 13\",\n// // Auth header — same Bearer token used by all other methods\n// `Authorization: Bearer ${env.A_FRAME_SERVER_API_KEY}`,\n// ...initHeader,\n// \"\", // produces the mandatory blank CRLF line\n// \"\",\n// ];\n\n// rawSocket.write(lines.join(\"\\r\\n\"));\n// }\n\n// // For TLS, wait until the TLS handshake finishes before writing\n// if (isSecure) {\n// (rawSocket as tls.TLSSocket).once(\"secureConnect\", sendHandshake);\n// } else {\n// rawSocket.once(\"connect\", sendHandshake);\n// }\n\n// rawSocket.on(\"data\", async (chunk: Buffer) => {\n// frameBuffer = Buffer.concat([frameBuffer, chunk]);\n\n// // ── Phase 1: wait for the HTTP 101 response header block ─────\n// if (!handshakeDone) {\n// const headEnd = frameBuffer.indexOf(\"\\r\\n\\r\\n\");\n// if (headEnd === -1) return; // headers still arriving\n\n// const statusBlock = frameBuffer.slice(0, headEnd).toString(\"utf8\");\n// frameBuffer = frameBuffer.slice(headEnd + 4);\n\n// // Reject anything that isn't a 101 Switching Protocols\n// const statusLine = statusBlock.split(\"\\r\\n\")[0];\n// if (!statusLine.includes(\"101\")) {\n// rawSocket.destroy();\n// reject(\n// new A_FrameChannelError({\n// title: A_FrameChannelError.RequestFailed,\n// description: `WebSocket upgrade rejected: ${statusLine}`,\n// }),\n// );\n// return;\n// }\n\n// // ── Sec-WebSocket-Accept verification ────────────────────\n// // Confirms the server is a genuine WebSocket endpoint and not\n// // an HTTP proxy replaying our request unchanged.\n// const acceptMatch = statusBlock.match(/Sec-WebSocket-Accept:\\s*([^\\r\\n]+)/i);\n// if (!acceptMatch || acceptMatch[1].trim() !== expectedAccept) {\n// rawSocket.destroy();\n// reject(\n// new A_FrameChannelError({\n// title: A_FrameChannelError.RequestFailed,\n// description:\n// \"WebSocket handshake failed: invalid Sec-WebSocket-Accept — possible MITM or non-WS endpoint\",\n// }),\n// );\n// return;\n// }\n\n// handshakeDone = true;\n\n// // Attach the send capability now that the socket is open\n// socket.attachSendFn((data: string) => {\n// rawSocket.write(encodeWebSocketFrame(data));\n// });\n\n// console.log(`[A-FrameChannel] WS OPEN ${url}`);\n// }\n\n// // ── Phase 2: parse and dispatch complete WS frames ───────────\n// while (frameBuffer.length >= 2) {\n// const { frame, consumed } = tryParseWebSocketFrame(frameBuffer);\n// if (!frame || consumed === 0) break; // incomplete frame — wait for more data\n\n// frameBuffer = frameBuffer.slice(consumed);\n\n// switch (frame.opcode) {\n// case 0x8: {\n// // Close frame — echo it back and tear down gracefully\n// rawSocket.write(encodeWebSocketFrame(\"\", 0x8));\n// rawSocket.end();\n// socket.complete();\n// console.log(`[A-FrameChannel] WS CLOSE ${url}`);\n// resolve();\n// return;\n// }\n\n// case 0x9: {\n// // Ping — must reply with Pong carrying the same payload (RFC 6455 §5.5.2)\n// rawSocket.write(encodeWebSocketFrame(frame.payload.toString(\"utf8\"), 0xa));\n// break;\n// }\n\n// case 0x1:\n// case 0x2: {\n// // ──────────────────────────────────────────────────\n// // SERVER ACTION DISPATCH\n// // Each text/binary frame carries a JSON payload shaped\n// // as { type: string, data: any }.\n// //\n// // Add new cases in a subclass via:\n// // @A_FrameChannelSocket.onEvent('type_name')\n// // async onTypeName(@A_Inject(A_FrameChannelEvent) event) { ... }\n// // ──────────────────────────────────────────────────\n// const text = frame.payload.toString(\"utf8\");\n// try {\n// const event = JSON.parse(text);\n// await socket.propagate(event.type, event.data);\n// } catch {\n// console.error(\n// `[A-FrameChannel] Invalid WS payload from ${socket.path}: ${text}`,\n// );\n// }\n// break;\n// }\n// }\n// }\n// });\n\n// rawSocket.on(\"end\", () => {\n// socket.complete();\n// resolve();\n// });\n\n// rawSocket.on(\"error\", (err) => {\n// socket.fail(\n// new A_FrameChannelError({\n// title: A_FrameChannelError.RequestFailed,\n// description: `WebSocket error on ${socket.path}: ${err.message}`,\n// }),\n// );\n// reject(err);\n// });\n\n// // 60 s idle timeout — same as stream; adjust per use-case\n// rawSocket.setTimeout(60_000, () => {\n// console.error(`[A-FrameChannel] WS TIMEOUT ${url}`);\n// rawSocket.destroy(\n// new A_FrameChannelError({\n// title: A_FrameChannelError.Timeout,\n// description: `WebSocket connection to ${socket.path} timed out after 60 seconds`,\n// }),\n// );\n// });\n// });\n// }\n// }\n\n\n// // =============================================================================\n// // WebSocket frame helpers (RFC 6455)\n// // Module-level pure functions — no external dependencies required.\n// // =============================================================================\n\n// /**\n// * Encode `data` as a masked WebSocket text frame (opcode 0x1).\n// * Client → server frames MUST be masked per RFC 6455 §5.3.\n// * Pass opcode 0x8 for a close frame, 0xa for pong, etc.\n// */\n// function encodeWebSocketFrame(data: string, opcode: number = 0x1): Buffer {\n// const payload = Buffer.from(data, \"utf8\");\n// const len = payload.length;\n\n// // 4-byte random masking key — new key per frame (RFC 6455 §10.3)\n// const mask = crypto.randomBytes(4);\n\n// // Header size: 2 base bytes + 0/2/8 extended length bytes + 4 mask bytes\n// let headerLen = 6;\n// if (len > 65535) headerLen += 8;\n// else if (len > 125) headerLen += 2;\n\n// const frame = Buffer.allocUnsafe(headerLen + len);\n// frame[0] = 0x80 | (opcode & 0x0f); // FIN=1, opcode\n\n// let offset = 1;\n// if (len <= 125) {\n// frame[offset++] = 0x80 | len; // MASK=1, 7-bit length\n// } else if (len <= 65535) {\n// frame[offset++] = 0x80 | 126; // MASK=1, 16-bit extended length\n// frame.writeUInt16BE(len, offset);\n// offset += 2;\n// } else {\n// frame[offset++] = 0x80 | 127; // MASK=1, 64-bit extended length\n// frame.writeBigUInt64BE(BigInt(len), offset);\n// offset += 8;\n// }\n\n// mask.copy(frame, offset);\n// offset += 4;\n\n// for (let i = 0; i < len; i++) {\n// frame[offset + i] = payload[i] ^ mask[i % 4];\n// }\n\n// return frame;\n// }\n\n// /**\n// * Attempt to parse one complete WebSocket frame from `buf`.\n// * Returns `{ frame: null, consumed: 0 }` if the buffer does not yet contain a\n// * complete frame — the caller should buffer more data and retry.\n// *\n// * Server → client frames are never masked, so no unmasking is needed here.\n// * If the server incorrectly sends a masked frame it is unmasked anyway.\n// */\n// function tryParseWebSocketFrame(\n// buf: Buffer,\n// ): { frame: { opcode: number; payload: Buffer; fin: boolean } | null; consumed: number } {\n// if (buf.length < 2) return { frame: null, consumed: 0 };\n\n// const fin = (buf[0] & 0x80) !== 0;\n// const opcode = buf[0] & 0x0f;\n// const masked = (buf[1] & 0x80) !== 0;\n// let payloadLen = buf[1] & 0x7f;\n// let offset = 2;\n\n// if (payloadLen === 126) {\n// if (buf.length < 4) return { frame: null, consumed: 0 };\n// payloadLen = buf.readUInt16BE(2);\n// offset = 4;\n// } else if (payloadLen === 127) {\n// if (buf.length < 10) return { frame: null, consumed: 0 };\n// payloadLen = Number(buf.readBigUInt64BE(2));\n// offset = 10;\n// }\n\n// const maskBytes = masked ? 4 : 0;\n// if (buf.length < offset + maskBytes + payloadLen) {\n// return { frame: null, consumed: 0 };\n// }\n\n// let maskKey: Buffer | null = null;\n// if (masked) {\n// maskKey = buf.slice(offset, offset + 4);\n// offset += 4;\n// }\n\n// const payload = Buffer.from(buf.slice(offset, offset + payloadLen));\n// if (masked && maskKey) {\n// for (let i = 0; i < payload.length; i++) {\n// payload[i] ^= maskKey[i % 4];\n// }\n// }\n\n// return { frame: { opcode, payload, fin }, consumed: offset + payloadLen };\n// }\n"]}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var chunkR2H234YO_cjs = require('./chunk-R2H234YO.cjs');
|
|
4
|
+
var aConcept = require('@adaas/a-concept');
|
|
5
|
+
|
|
6
|
+
var A_FrameEnv = class extends aConcept.A_Fragment {
|
|
7
|
+
get A_FRAME_FILE_EXTENSION() {
|
|
8
|
+
return ".aframe";
|
|
9
|
+
}
|
|
10
|
+
get A_FRAME_NAMESPACES_BIN() {
|
|
11
|
+
return `__namespaces${this.A_FRAME_FILE_EXTENSION}`;
|
|
12
|
+
}
|
|
13
|
+
get A_FRAME_SYNC() {
|
|
14
|
+
return process.env.A_FRAME_SYNC === "false" ? false : true;
|
|
15
|
+
}
|
|
16
|
+
get A_FRAME_TOKEN() {
|
|
17
|
+
return process.env.A_FRAME_TOKEN || "";
|
|
18
|
+
}
|
|
19
|
+
get A_FRAME_SERVER_URL() {
|
|
20
|
+
return process.env.A_FRAME_SERVER_URL || "http://localhost:3663";
|
|
21
|
+
}
|
|
22
|
+
get A_FRAME_SERVER_API_KEY() {
|
|
23
|
+
return process.env.A_FRAME_SERVER_API_KEY || "";
|
|
24
|
+
}
|
|
25
|
+
get A_FRAME_STORAGE_DIR() {
|
|
26
|
+
return process.env.A_FRAME_STORAGE_DIR || ".aframestr";
|
|
27
|
+
}
|
|
28
|
+
get A_FRAME_VERSION() {
|
|
29
|
+
return chunkR2H234YO_cjs.version || "0.0.1";
|
|
30
|
+
}
|
|
31
|
+
};
|
|
32
|
+
|
|
33
|
+
exports.A_FrameEnv = A_FrameEnv;
|
|
34
|
+
//# sourceMappingURL=chunk-XFUF7SDO.cjs.map
|
|
35
|
+
//# sourceMappingURL=chunk-XFUF7SDO.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/lib/A-FrameEnv/A-FrameEnv.fragment.env-node.ts"],"names":["A_Fragment","version"],"mappings":";;;;;AAKO,IAAM,UAAA,GAAN,cAAyBA,mBAAA,CAAkC;AAAA,EAE9D,IAAI,sBAAA,GAAyB;AACzB,IAAA,OAAO,SAAA;AAAA,EACX;AAAA,EAEA,IAAI,sBAAA,GAAyB;AACzB,IAAA,OAAO,CAAA,YAAA,EAAe,KAAK,sBAAsB,CAAA,CAAA;AAAA,EACrD;AAAA,EAEA,IAAI,YAAA,GAAe;AACf,IAAA,OAAO,OAAA,CAAQ,GAAA,CAAI,YAAA,KAAiB,OAAA,GAAU,KAAA,GAAQ,IAAA;AAAA,EAC1D;AAAA,EAEA,IAAI,aAAA,GAAgB;AAChB,IAAA,OAAO,OAAA,CAAQ,IAAI,aAAA,IAAiB,EAAA;AAAA,EACxC;AAAA,EAEA,IAAI,kBAAA,GAAqB;AACrB,IAAA,OAAO,OAAA,CAAQ,IAAI,kBAAA,IAAsB,uBAAA;AAAA,EAC7C;AAAA,EAEA,IAAI,sBAAA,GAAyB;AACzB,IAAA,OAAO,OAAA,CAAQ,IAAI,sBAAA,IAA0B,EAAA;AAAA,EACjD;AAAA,EAEA,IAAI,mBAAA,GAAsB;AACtB,IAAA,OAAO,OAAA,CAAQ,IAAI,mBAAA,IAAuB,YAAA;AAAA,EAC9C;AAAA,EAEA,IAAI,eAAA,GAAkB;AAClB,IAAA,OAAWC,yBAAA,IAAW,OAAA;AAAA,EAC1B;AACJ","file":"chunk-XFUF7SDO.cjs","sourcesContent":["import { A_Fragment } from \"@adaas/a-concept\";\nimport * as pkg from '../../../package.json';\nimport { IA_FrameEnv } from \"./A-FrameEnv.types\";\n\n\nexport class A_FrameEnv extends A_Fragment implements IA_FrameEnv {\n\n get A_FRAME_FILE_EXTENSION() {\n return '.aframe';\n }\n\n get A_FRAME_NAMESPACES_BIN() {\n return `__namespaces${this.A_FRAME_FILE_EXTENSION}`;\n }\n\n get A_FRAME_SYNC() {\n return process.env.A_FRAME_SYNC === 'false' ? false : true;\n }\n\n get A_FRAME_TOKEN() {\n return process.env.A_FRAME_TOKEN || '';\n }\n\n get A_FRAME_SERVER_URL() {\n return process.env.A_FRAME_SERVER_URL || 'http://localhost:3663';\n }\n\n get A_FRAME_SERVER_API_KEY() {\n return process.env.A_FRAME_SERVER_API_KEY || '';\n }\n\n get A_FRAME_STORAGE_DIR() {\n return process.env.A_FRAME_STORAGE_DIR || '.aframestr';\n }\n\n get A_FRAME_VERSION() {\n return pkg.version || '0.0.1';\n }\n}"]}
|
package/dist/node/core.cjs
CHANGED
|
@@ -2,13 +2,13 @@
|
|
|
2
2
|
|
|
3
3
|
var chunkRRLTGGM7_cjs = require('./chunk-RRLTGGM7.cjs');
|
|
4
4
|
var chunkUTJ7CVVB_cjs = require('./chunk-UTJ7CVVB.cjs');
|
|
5
|
-
var
|
|
5
|
+
var chunkF46TSY2K_cjs = require('./chunk-F46TSY2K.cjs');
|
|
6
6
|
var chunkQFUZVN4Y_cjs = require('./chunk-QFUZVN4Y.cjs');
|
|
7
|
-
var
|
|
8
|
-
var
|
|
7
|
+
var chunkGRR6NNWY_cjs = require('./chunk-GRR6NNWY.cjs');
|
|
8
|
+
var chunkXFUF7SDO_cjs = require('./chunk-XFUF7SDO.cjs');
|
|
9
9
|
require('./chunk-KK64VLZN.cjs');
|
|
10
10
|
var chunkKLG6HKFU_cjs = require('./chunk-KLG6HKFU.cjs');
|
|
11
|
-
require('./chunk-
|
|
11
|
+
require('./chunk-R2H234YO.cjs');
|
|
12
12
|
var chunkYVX4W6SI_cjs = require('./chunk-YVX4W6SI.cjs');
|
|
13
13
|
var chunkGBTFMT3K_cjs = require('./chunk-GBTFMT3K.cjs');
|
|
14
14
|
require('./chunk-ZM2RLVVH.cjs');
|
|
@@ -178,19 +178,18 @@ var A_FrameBase = class extends aConcept.A_Component {
|
|
|
178
178
|
}
|
|
179
179
|
};
|
|
180
180
|
var _A_Frame = class _A_Frame extends A_FrameBase {
|
|
181
|
-
async injectDependencies(
|
|
182
|
-
console.log("A_Frame injecting dependencies...");
|
|
181
|
+
async injectDependencies() {
|
|
183
182
|
const index = new chunkRRLTGGM7_cjs.A_FrameIndex();
|
|
184
|
-
index.inherit(
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
183
|
+
index.inherit(aConcept.A_Context.root);
|
|
184
|
+
aConcept.A_Context.root.register(index);
|
|
185
|
+
aConcept.A_Context.root.register(new chunkXFUF7SDO_cjs.A_FrameEnv());
|
|
186
|
+
aConcept.A_Context.root.register(new chunkQFUZVN4Y_cjs.A_FrameStorageCodec());
|
|
187
|
+
aConcept.A_Context.root.register(chunkF46TSY2K_cjs.A_FrameNodeStorage);
|
|
188
|
+
aConcept.A_Context.root.register(chunkGRR6NNWY_cjs.A_FrameNodeChannel);
|
|
189
|
+
aConcept.A_Context.root.register(chunkYVX4W6SI_cjs.A_FrameCrypto);
|
|
190
|
+
aConcept.A_Context.root.register(new chunkUTJ7CVVB_cjs.A_FrameLogger());
|
|
191
|
+
aConcept.A_Context.root.register(_A_Frame);
|
|
192
|
+
aConcept.A_Context.root.register(new chunkF46TSY2K_cjs.A_FrameContext());
|
|
194
193
|
}
|
|
195
194
|
async load(scope, index, storage, context, channel, env) {
|
|
196
195
|
const credentials = await channel.getCredentials();
|
|
@@ -232,23 +231,22 @@ var _A_Frame = class _A_Frame extends A_FrameBase {
|
|
|
232
231
|
}
|
|
233
232
|
};
|
|
234
233
|
chunkQFHZIG7Y_cjs.__decorateClass([
|
|
235
|
-
aConcept.A_Concept.Load()
|
|
236
|
-
chunkQFHZIG7Y_cjs.__decorateParam(0, aConcept.A_Inject(aConcept.A_Scope))
|
|
234
|
+
aConcept.A_Concept.Load()
|
|
237
235
|
], _A_Frame.prototype, "injectDependencies", 1);
|
|
238
236
|
chunkQFHZIG7Y_cjs.__decorateClass([
|
|
239
237
|
aConcept.A_Concept.Load(),
|
|
240
238
|
chunkQFHZIG7Y_cjs.__decorateParam(0, aConcept.A_Inject(aConcept.A_Scope)),
|
|
241
239
|
chunkQFHZIG7Y_cjs.__decorateParam(1, aConcept.A_Inject(chunkRRLTGGM7_cjs.A_FrameIndex)),
|
|
242
|
-
chunkQFHZIG7Y_cjs.__decorateParam(2, aConcept.A_Inject(
|
|
243
|
-
chunkQFHZIG7Y_cjs.__decorateParam(3, aConcept.A_Inject(
|
|
244
|
-
chunkQFHZIG7Y_cjs.__decorateParam(4, aConcept.A_Inject(
|
|
245
|
-
chunkQFHZIG7Y_cjs.__decorateParam(5, aConcept.A_Inject(
|
|
240
|
+
chunkQFHZIG7Y_cjs.__decorateParam(2, aConcept.A_Inject(chunkF46TSY2K_cjs.A_FrameStorage)),
|
|
241
|
+
chunkQFHZIG7Y_cjs.__decorateParam(3, aConcept.A_Inject(chunkF46TSY2K_cjs.A_FrameContext)),
|
|
242
|
+
chunkQFHZIG7Y_cjs.__decorateParam(4, aConcept.A_Inject(chunkGRR6NNWY_cjs.A_FrameChannel)),
|
|
243
|
+
chunkQFHZIG7Y_cjs.__decorateParam(5, aConcept.A_Inject(chunkXFUF7SDO_cjs.A_FrameEnv))
|
|
246
244
|
], _A_Frame.prototype, "load", 1);
|
|
247
245
|
var A_Frame = _A_Frame;
|
|
248
246
|
|
|
249
247
|
Object.defineProperty(exports, "A_FrameContext", {
|
|
250
248
|
enumerable: true,
|
|
251
|
-
get: function () { return
|
|
249
|
+
get: function () { return chunkF46TSY2K_cjs.A_FrameContext; }
|
|
252
250
|
});
|
|
253
251
|
exports.A_Frame = A_Frame;
|
|
254
252
|
exports.A_FrameBase = A_FrameBase;
|
package/dist/node/core.cjs.map
CHANGED
|
@@ -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-node.ts"],"names":["A_FrameTargetType","A_TypeGuards","A_CommonHelper","A_Error","A_FrameNamespace","A_FrameIndex","targetClass","source","A_FrameDefinition","A_Component","A_FrameEnv","A_FrameStorageCodec","A_FrameNodeStorage","A_FrameNodeChannel","A_FrameCrypto","A_FrameLogger","A_FrameContext","__decorateClass","A_Concept","__decorateParam","A_Scope","A_FrameStorage","A_FrameChannel"],"mappings":"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","file":"core.cjs","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_Inject, A_Scope } from \"@adaas/a-concept\";\nimport { A_FrameBase } from \"./A-Frame.component\";\nimport { A_FrameIndex } from \"../A-FrameIndex\";\nimport { A_FrameStorage } from \"../A-FrameStorage/A-FrameStorage.component\";\nimport { A_FrameChannel } from \"../A-FrameChannel/A-FrameChannel.component\";\nimport { A_FrameContext } from \"./A-Frame.context\";\nimport { A_FrameNodeChannel } from \"../A-FrameChannel/A-FrameChannel.component.env-node\";\nimport { A_FrameNodeStorage } from \"../A-FrameStorage/node/A-FrameNodeStorage.component\";\nimport { A_FrameEnv } from \"../A-FrameEnv/A-FrameEnv.fragment.env-node\";\nimport { A_FrameStorageCodec } from \"../A-FrameStorage/A-FrameStorage.codec\";\nimport { A_FrameCrypto } from \"../A-FrameCrypto/A-FrameCrypto.component.env-node\";\nimport { A_FrameLogger } from \"../A-FrameLogger/A-FrameLogger.component.env-node\";\n\n\n\nexport class A_Frame extends A_FrameBase {\n\n @A_Concept.Load()\n async injectDependencies(\n @A_Inject(A_Scope) scope: A_Scope,\n ) {\n console.log(\"A_Frame injecting dependencies...\");\n\n const index = new A_FrameIndex();\n index.inherit(scope);\n\n scope.register(index);\n scope.register(new A_FrameEnv());\n scope.register(new A_FrameStorageCodec());\n scope.register(A_FrameNodeStorage)\n scope.register(A_FrameNodeChannel);\n scope.register(A_FrameCrypto)\n scope.register(new A_FrameLogger());\n scope.register(A_Frame);\n scope.register(new A_FrameContext());\n }\n\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_FrameStorage) storage: A_FrameStorage,\n @A_Inject(A_FrameContext) context: A_FrameContext,\n @A_Inject(A_FrameChannel) channel: A_FrameChannel,\n @A_Inject(A_FrameEnv) env: A_FrameEnv,\n ) {\n // 1. Authenticate — required before any storage or embedding operations\n const credentials = await channel.getCredentials();\n context.setCredentials(credentials);\n\n const definedNameSpaces = index.listNamespaces();\n const definedDefinitions = index.listDefinitions();\n\n // 2. Hydrate all from storage in parallel.\n // Storage load only calls fromJSON when hash AND aFrameServerVersion match,\n // so items with a stale/missing cache remain un-embedded (isEmbed === false).\n await Promise.all([\n ...definedNameSpaces.map(ns => ns.load()),\n ...definedDefinitions.map(def => def.load()),\n ]);\n\n // 3. Skip embedding API calls entirely when sync is disabled\n if (!env.A_FRAME_SYNC) return;\n\n // 4. Re-embed and persist items whose cache is missing or stale\n const namespacesNeedEmbed = definedNameSpaces.filter(ns => !ns.isEmbed\n || (ns.aFrameServerVersion !== context.serverVersion)\n || (ns.aFrameVersion !== env.A_FRAME_VERSION) // re-embed if the client version has changed since last embed, as it may affect embedding results\n );\n const definitionsNeedEmbed = definedDefinitions.filter(def => !def.isEmbed\n || (def.aFrameServerVersion !== context.serverVersion)\n || (def.aFrameVersion !== env.A_FRAME_VERSION) // re-embed if the client version has changed since last embed, as it may affect embedding results\n );\n\n for (const batch of this.chunkArray(namespacesNeedEmbed, 10)) {\n // Embed in parallel — each namespace hits its own API call independently\n await Promise.all(batch.map(ns => ns.embed()));\n // Save sequentially — all namespaces write to the same __namespaces.aframe file;\n // parallel writes would race and the last writer would overwrite the others\n for (const ns of batch) {\n await ns.save();\n }\n }\n\n for (const batch of this.chunkArray(definitionsNeedEmbed, 10)) {\n // Embed in parallel — each definition hits its own API call independently\n await Promise.all(batch.map(def => def.embed()));\n // Save sequentially within a namespace — definitions in the same namespace share\n // one file; parallel writes would race and overwrite each other's records\n for (const def of batch) {\n await def.save();\n }\n }\n }\n\n\n chunkArray<T>(array: T[], size: number): T[][] {\n const result: T[][] = [];\n for (let i = 0; i < array.length; i += size) {\n result.push(array.slice(i, i + size));\n }\n return result;\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-node.ts"],"names":["A_FrameTargetType","A_TypeGuards","A_CommonHelper","A_Error","A_FrameNamespace","A_FrameIndex","targetClass","source","A_FrameDefinition","A_Component","A_Context","A_FrameEnv","A_FrameStorageCodec","A_FrameNodeStorage","A_FrameNodeChannel","A_FrameCrypto","A_FrameLogger","A_FrameContext","__decorateClass","A_Concept","__decorateParam","A_Scope","A_FrameStorage","A_FrameChannel"],"mappings":"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","file":"core.cjs","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_Inject, A_Scope } from \"@adaas/a-concept\";\nimport { A_FrameBase } from \"./A-Frame.component\";\nimport { A_FrameIndex } from \"../A-FrameIndex\";\nimport { A_FrameStorage } from \"../A-FrameStorage/A-FrameStorage.component\";\nimport { A_FrameChannel } from \"../A-FrameChannel/A-FrameChannel.component\";\nimport { A_FrameContext } from \"./A-Frame.context\";\nimport { A_FrameNodeChannel } from \"../A-FrameChannel/A-FrameChannel.component.env-node\";\nimport { A_FrameNodeStorage } from \"../A-FrameStorage/node/A-FrameNodeStorage.component\";\nimport { A_FrameEnv } from \"../A-FrameEnv/A-FrameEnv.fragment.env-node\";\nimport { A_FrameStorageCodec } from \"../A-FrameStorage/A-FrameStorage.codec\";\nimport { A_FrameCrypto } from \"../A-FrameCrypto/A-FrameCrypto.component.env-node\";\nimport { A_FrameLogger } from \"../A-FrameLogger/A-FrameLogger.component.env-node\";\n\n\n\nexport class A_Frame extends A_FrameBase {\n\n @A_Concept.Load()\n async injectDependencies(\n ) {\n\n const index = new A_FrameIndex();\n index.inherit(A_Context.root);\n\n\n A_Context.root.register(index);\n A_Context.root.register(new A_FrameEnv());\n A_Context.root.register(new A_FrameStorageCodec());\n A_Context.root.register(A_FrameNodeStorage)\n A_Context.root.register(A_FrameNodeChannel);\n A_Context.root.register(A_FrameCrypto)\n A_Context.root.register(new A_FrameLogger());\n A_Context.root.register(A_Frame);\n A_Context.root.register(new A_FrameContext());\n }\n\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_FrameStorage) storage: A_FrameStorage,\n @A_Inject(A_FrameContext) context: A_FrameContext,\n @A_Inject(A_FrameChannel) channel: A_FrameChannel,\n @A_Inject(A_FrameEnv) env: A_FrameEnv,\n ) {\n // 1. Authenticate — required before any storage or embedding operations\n const credentials = await channel.getCredentials();\n context.setCredentials(credentials);\n\n const definedNameSpaces = index.listNamespaces();\n const definedDefinitions = index.listDefinitions();\n\n // 2. Hydrate all from storage in parallel.\n // Storage load only calls fromJSON when hash AND aFrameServerVersion match,\n // so items with a stale/missing cache remain un-embedded (isEmbed === false).\n await Promise.all([\n ...definedNameSpaces.map(ns => ns.load()),\n ...definedDefinitions.map(def => def.load()),\n ]);\n\n // 3. Skip embedding API calls entirely when sync is disabled\n if (!env.A_FRAME_SYNC) return;\n\n // 4. Re-embed and persist items whose cache is missing or stale\n const namespacesNeedEmbed = definedNameSpaces.filter(ns => !ns.isEmbed\n || (ns.aFrameServerVersion !== context.serverVersion)\n || (ns.aFrameVersion !== env.A_FRAME_VERSION) // re-embed if the client version has changed since last embed, as it may affect embedding results\n );\n const definitionsNeedEmbed = definedDefinitions.filter(def => !def.isEmbed\n || (def.aFrameServerVersion !== context.serverVersion)\n || (def.aFrameVersion !== env.A_FRAME_VERSION) // re-embed if the client version has changed since last embed, as it may affect embedding results\n );\n\n for (const batch of this.chunkArray(namespacesNeedEmbed, 10)) {\n // Embed in parallel — each namespace hits its own API call independently\n await Promise.all(batch.map(ns => ns.embed()));\n // Save sequentially — all namespaces write to the same __namespaces.aframe file;\n // parallel writes would race and the last writer would overwrite the others\n for (const ns of batch) {\n await ns.save();\n }\n }\n\n for (const batch of this.chunkArray(definitionsNeedEmbed, 10)) {\n // Embed in parallel — each definition hits its own API call independently\n await Promise.all(batch.map(def => def.embed()));\n // Save sequentially within a namespace — definitions in the same namespace share\n // one file; parallel writes would race and overwrite each other's records\n for (const def of batch) {\n await def.save();\n }\n }\n }\n\n\n chunkArray<T>(array: T[], size: number): T[][] {\n const result: T[][] = [];\n for (let i = 0; i < array.length; i += size) {\n result.push(array.slice(i, i + size));\n }\n return result;\n }\n\n}\n"]}
|
package/dist/node/core.d.mts
CHANGED
|
@@ -68,7 +68,7 @@ declare function A_FrameDefineDecorator(config: A_FrameDefineOptions): (target:
|
|
|
68
68
|
declare function A_FrameNamespaceDecorator(config?: Partial<A_FrameNamespaceOptions>): (target: A_FrameDecoratorTarget, propertyKey?: string | symbol, descriptor?: A_FrameDecoratorDescriptor) => any;
|
|
69
69
|
|
|
70
70
|
declare class A_Frame extends A_FrameBase {
|
|
71
|
-
injectDependencies(
|
|
71
|
+
injectDependencies(): Promise<void>;
|
|
72
72
|
load(scope: A_Scope, index: A_FrameIndex, storage: A_FrameStorage, context: A_FrameContext, channel: A_FrameChannel, env: A_FrameEnv): Promise<void>;
|
|
73
73
|
chunkArray<T>(array: T[], size: number): T[][];
|
|
74
74
|
}
|
package/dist/node/core.d.ts
CHANGED
|
@@ -68,7 +68,7 @@ declare function A_FrameDefineDecorator(config: A_FrameDefineOptions): (target:
|
|
|
68
68
|
declare function A_FrameNamespaceDecorator(config?: Partial<A_FrameNamespaceOptions>): (target: A_FrameDecoratorTarget, propertyKey?: string | symbol, descriptor?: A_FrameDecoratorDescriptor) => any;
|
|
69
69
|
|
|
70
70
|
declare class A_Frame extends A_FrameBase {
|
|
71
|
-
injectDependencies(
|
|
71
|
+
injectDependencies(): Promise<void>;
|
|
72
72
|
load(scope: A_Scope, index: A_FrameIndex, storage: A_FrameStorage, context: A_FrameContext, channel: A_FrameChannel, env: A_FrameEnv): Promise<void>;
|
|
73
73
|
chunkArray<T>(array: T[], size: number): T[][];
|
|
74
74
|
}
|
package/dist/node/core.mjs
CHANGED
|
@@ -1,19 +1,19 @@
|
|
|
1
1
|
import { A_FrameIndex } from './chunk-AOQRXZPC.mjs';
|
|
2
2
|
import { A_FrameLogger } from './chunk-IIVYTS5M.mjs';
|
|
3
|
-
import { A_FrameStorage, A_FrameContext, A_FrameNodeStorage } from './chunk-
|
|
4
|
-
export { A_FrameContext } from './chunk-
|
|
3
|
+
import { A_FrameStorage, A_FrameContext, A_FrameNodeStorage } from './chunk-6KAGWGTE.mjs';
|
|
4
|
+
export { A_FrameContext } from './chunk-6KAGWGTE.mjs';
|
|
5
5
|
import { A_FrameStorageCodec } from './chunk-3ONWH75E.mjs';
|
|
6
|
-
import { A_FrameChannel, A_FrameNodeChannel } from './chunk-
|
|
7
|
-
import { A_FrameEnv } from './chunk-
|
|
6
|
+
import { A_FrameChannel, A_FrameNodeChannel } from './chunk-SDKIJDMH.mjs';
|
|
7
|
+
import { A_FrameEnv } from './chunk-5BKCX2RO.mjs';
|
|
8
8
|
import './chunk-K4MZY4ME.mjs';
|
|
9
9
|
import { A_FrameNamespace } from './chunk-APRYHBEF.mjs';
|
|
10
|
-
import './chunk-
|
|
10
|
+
import './chunk-OYC6L5NX.mjs';
|
|
11
11
|
import { A_FrameCrypto } from './chunk-UPA7VN4R.mjs';
|
|
12
12
|
import { A_FrameDefinition } from './chunk-B7BXP7K4.mjs';
|
|
13
13
|
import './chunk-442DXGOD.mjs';
|
|
14
14
|
import './chunk-3TD2PEDZ.mjs';
|
|
15
15
|
import { __decorateClass, __decorateParam } from './chunk-OI76LHVT.mjs';
|
|
16
|
-
import { A_Concept, A_Inject, A_Scope, A_Error, A_Component, A_TypeGuards, A_CommonHelper } from '@adaas/a-concept';
|
|
16
|
+
import { A_Concept, A_Inject, A_Scope, A_Error, A_Context, A_Component, A_TypeGuards, A_CommonHelper } from '@adaas/a-concept';
|
|
17
17
|
|
|
18
18
|
// src/lib/A-Frame/A-Frame.types.ts
|
|
19
19
|
var A_FrameTargetType = /* @__PURE__ */ ((A_FrameTargetType2) => {
|
|
@@ -177,19 +177,18 @@ var A_FrameBase = class extends A_Component {
|
|
|
177
177
|
}
|
|
178
178
|
};
|
|
179
179
|
var _A_Frame = class _A_Frame extends A_FrameBase {
|
|
180
|
-
async injectDependencies(
|
|
181
|
-
console.log("A_Frame injecting dependencies...");
|
|
180
|
+
async injectDependencies() {
|
|
182
181
|
const index = new A_FrameIndex();
|
|
183
|
-
index.inherit(
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
182
|
+
index.inherit(A_Context.root);
|
|
183
|
+
A_Context.root.register(index);
|
|
184
|
+
A_Context.root.register(new A_FrameEnv());
|
|
185
|
+
A_Context.root.register(new A_FrameStorageCodec());
|
|
186
|
+
A_Context.root.register(A_FrameNodeStorage);
|
|
187
|
+
A_Context.root.register(A_FrameNodeChannel);
|
|
188
|
+
A_Context.root.register(A_FrameCrypto);
|
|
189
|
+
A_Context.root.register(new A_FrameLogger());
|
|
190
|
+
A_Context.root.register(_A_Frame);
|
|
191
|
+
A_Context.root.register(new A_FrameContext());
|
|
193
192
|
}
|
|
194
193
|
async load(scope, index, storage, context, channel, env) {
|
|
195
194
|
const credentials = await channel.getCredentials();
|
|
@@ -231,8 +230,7 @@ var _A_Frame = class _A_Frame extends A_FrameBase {
|
|
|
231
230
|
}
|
|
232
231
|
};
|
|
233
232
|
__decorateClass([
|
|
234
|
-
A_Concept.Load()
|
|
235
|
-
__decorateParam(0, A_Inject(A_Scope))
|
|
233
|
+
A_Concept.Load()
|
|
236
234
|
], _A_Frame.prototype, "injectDependencies", 1);
|
|
237
235
|
__decorateClass([
|
|
238
236
|
A_Concept.Load(),
|