{"version":3,"sources":["../../../../src/lib/AreEngine/AreEngine.component.ts"],"names":[],"mappings":"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","file":"AreEngine.component.mjs","sourcesContent":["import { A_CommonHelper, A_Component, A_Context, A_Dependency, A_Feature, A_FormatterHelper, A_Inject, A_Scope, A_TYPES__A_DependencyInjectable, A_TYPES__Ctor } from \"@adaas/a-concept\";\nimport { AreSyntax } from \"@adaas/are/syntax/AreSyntax.context\";\nimport { A_Logger } from \"@adaas/a-utils/a-logger\";\nimport { AreCompiler } from \"@adaas/are/compiler/AreCompiler.component\";\nimport { AreTransformer } from \"@adaas/are/transformer/AreTransformer.component\";\nimport { AreLoader } from \"@adaas/are/loader/AreLoader.component\";\nimport { AreInterpreter } from \"@adaas/are/interpreter/AreInterpreter.component\";\nimport { AreEngineError } from \"./AreEngine.error\";\nimport { AreLifecycle } from \"@adaas/are/lifecycle/AreLifecycle.component\";\nimport { AreEngineFeatures } from \"./AreEngine.constants\";\nimport { AreContext } from \"@adaas/are/component/Are.context\";\nimport { A_Frame } from \"@adaas/a-frame/core\";\nimport { AreTokenizer } from \"@adaas/are/tokenizer/AreTokenizer.component\";\nimport { AreEngineDependencies } from \"./AreEngine.types\";\nimport { AreSignals } from \"@adaas/are/signals/AreSignals.component\";\nimport { AreInit } from \"@adaas/are/signals/entities/AreInit.signal\";\nimport { A_SignalBus } from \"@adaas/a-utils/a-signal\";\nimport { Are } from \"@adaas/are/component/Are.component\";\n\n\n\n\n@A_Frame.Define({\n    namespace: 'A-ARE',\n    description: 'Core rendering engine for A-Concept Rendering Engine (ARE), responsible for orchestrating the loading, building, and execution of the rendering process. It manages the lifecycle of root nodes, coordinates the interactions between syntax, transformer, loader, compiler, and interpreter components, and ensures the proper initialization and mounting of the UI application.'\n})\nexport class AreEngine extends A_Component {\n\n    /**\n     * Feature decorator for the load method, which is responsible for the initial loading phase of the engine. This method is where the engine reads the source template, tokenizes it, and prepares the initial context for building the scene. The decorator allows for extending or overriding the default loading behavior by attaching additional functionality before or after the load process.\n     */\n    static get Load() {\n        return (target: any, propertyKey: string, descriptor: PropertyDescriptor) => {\n            return A_Feature.Extend({\n                name: AreEngineFeatures.Load,\n                scope: [target.constructor],\n                override: ['defaultLoad']\n            })(target, propertyKey, descriptor);\n        }\n    }\n    /**\n     * Feature decorator for the build method, which is responsible for constructing the scene based on the loaded context. This method typically involves initializing root nodes, applying transformations, and compiling the scene into a format that can be executed by the interpreter. The decorator allows for customizing the build process by adding additional steps or modifying the existing behavior.\n     */\n    static get Build() {\n        return (target: any, propertyKey: string, descriptor: PropertyDescriptor) => {\n            return A_Feature.Extend({\n                name: AreEngineFeatures.Build,\n                scope: [target.constructor],\n                override: ['defaultBuild']\n            })(target, propertyKey, descriptor);\n        }\n    }\n    /**\n     * Feature decorator for the execute method, which is responsible for the final execution phase of the engine. This method typically involves mounting the root nodes to the DOM and starting the reactive update cycle based on signals and state changes. The decorator allows for customizing the execution process by adding additional steps or modifying the existing behavior.\n     */\n    static get Execute() {\n        return (target: any, propertyKey: string, descriptor: PropertyDescriptor) => {\n            return A_Feature.Extend({\n                name: AreEngineFeatures.Execute,\n                scope: [target.constructor],\n                override: ['defaultExecute']\n            })(target, propertyKey, descriptor);\n        }\n    }\n\n\n    // ==========================================================================================\n    // -----------------------------------ARE Engine Features------------------------------------\n    // ==========================================================================================\n\n    /**\n     * Method to start the engine, which involves loading necessary resources, building the scene, and executing the rendering process. It accepts an optional scope parameter that can be used to provide a custom scope for the engine's operations, allowing for greater flexibility in how dependencies are managed and accessed during the rendering lifecycle.\n     * \n     * @param scope \n     * @returns \n     */\n    @A_Frame.Define({\n        description: 'Method does engine loading, first read of the source and tokenization.'\n    })\n    async load(scope?: A_Scope) {\n        const context = scope?.resolve(AreContext) || A_Context.scope(this).resolve(AreContext);\n\n        context?.startPerformance();\n\n        await this.call(AreEngineFeatures.Load, scope || A_Context.scope(this));\n    }\n\n    /**\n     * Method responsible for building the scene, which includes initializing root nodes, loading necessary data, applying transformations, and compiling the scene into a format that can be executed by the interpreter.\n     * \n     * @param context \n     * @param logger \n     */\n    @A_Frame.Define({\n        description: 'Method responsible for building the scene, which includes initializing root nodes, loading necessary data, applying transformations, and compiling the scene into a format that can be executed by the interpreter.'\n    })\n    async build(scope?: A_Scope) {\n        const context = scope?.resolve(AreContext) || A_Context.scope(this).resolve(AreContext);\n        context?.startPerformance('Build Total');\n\n        await this.call(AreEngineFeatures.Build, scope || A_Context.scope(this));\n\n        context?.endPerformance('Build Total');\n    }\n\n    /**\n     * Method responsible for executing the rendering process, which involves mounting the root nodes to the DOM and starting the reactive update cycle based on signals and state changes.\n     * \n     * @param context \n     * @param logger \n     */\n    @A_Frame.Define({\n        description: 'Method responsible for executing the rendering process, which involves mounting the root nodes to the DOM and starting the reactive update cycle based on signals and state changes.'\n    })\n    async execute(scope?: A_Scope) {\n        const context = scope?.resolve(AreContext) || A_Context.scope(this).resolve(AreContext);\n\n        context?.startPerformance('Execute Total');\n\n        await this.call(AreEngineFeatures.Execute, scope || A_Context.scope(this));\n\n        context?.endPerformance('Execute Total');\n        context?.endPerformance('Total');\n    }\n\n    // ==========================================================================================\n    // ----------------------------ARE Engine Default Methods------------------------------------\n    // ==========================================================================================\n    @A_Feature.Extend({\n        name: AreEngineFeatures.Build,\n        before: /.*/\n    })\n    protected async defaultBuild(\n        @A_Dependency.Required()\n        @A_Inject(AreContext) context: AreContext,\n        @A_Inject(A_Logger) logger?: A_Logger,\n    ) {\n        logger?.debug('cyan', 'Starting to build the scene...');\n\n        for (const root of context.roots) {\n\n            context.startPerformance(`Init root <${root.aseid.id}>`);\n            root.init();\n            context.endPerformance(`Init root <${root.aseid.id}>`);\n\n            context.startPerformance(`Load root <${root.aseid.id}>`);\n            await root.load();\n            context.endPerformance(`Load root <${root.aseid.id}>`);\n\n            context.startPerformance(`Transform root <${root.aseid.id}>`);\n            root.transform();\n            context.endPerformance(`Transform root <${root.aseid.id}>`);\n\n            context.startPerformance(`Compile root <${root.aseid.id}>`);\n            root.compile();\n            context.endPerformance(`Compile root <${root.aseid.id}>`);\n\n            context.endPerformance(`Root <${root.aseid.id}> Total`);\n        }\n    }\n    @A_Feature.Extend({\n        name: AreEngineFeatures.Execute,\n        before: /.*/\n    })\n    protected async defaultExecute(\n        @A_Dependency.Required()\n        @A_Inject(AreContext) context: AreContext,\n        @A_Inject(A_SignalBus) bus?: A_SignalBus,\n        @A_Inject(A_Logger) logger?: A_Logger,\n    ) {\n        logger?.debug('cyan', 'Starting to execute the scene and mount root nodes...');\n\n        for (const root of context.roots) {\n\n            // Skip roots that are not backed by a real Are component. Stray\n            // top-level template nodes (whitespace text, HTML comments, a\n            // <script> tag, etc.) are tokenized as roots but own no managed\n            // outlet — mounting them only triggers an interpret that fails its\n            // mount-point lookup. They remain roots of the template, they are\n            // simply not mounted/notified. Note: `node.component` resolves the\n            // PascalCase entity name and for primitive nodes (are-text,\n            // are-comment) returns the node's own class instance, which is NOT\n            // an `Are` component — so an `instanceof Are` check is required to\n            // distinguish real component roots (are-root → AreRoot) from these.\n            if (!(root.component instanceof Are)) continue;\n\n            context.startPerformance(`Mount root <${root.aseid.id}>`);\n\n            // The initial mount is atomic (synchronous) so the page never\n            // appears in a partial state; `mount()` resolves immediately. The\n            // await is kept for forward-compatibility and is a no-op here.\n            await root.mount();\n\n            context.endPerformance(`Mount root <${root.aseid.id}>`);\n        }\n\n        logger?.debug('cyan', 'Emitting AreInit signal to start the reactive update cycle...');\n\n        await bus?.next(new AreInit())\n    }\n\n    @A_Feature.Extend({\n        name: AreEngineFeatures.Load,\n        before: /.*/\n    })\n    async init(\n        @A_Inject(A_Scope) scope: A_Scope,\n    ) {\n        this.package(scope);\n    }\n\n    @A_Feature.Extend({\n        name: AreEngineFeatures.Load,\n        before: /.*/\n    })\n    async verify(\n        @A_Inject(A_Scope) scope: A_Scope,\n        @A_Inject(AreSyntax) syntax?: AreSyntax,\n        @A_Inject(AreSyntax) syntaxContext?: AreSyntax,\n        @A_Inject(AreTransformer) transformer?: AreTransformer,\n        @A_Inject(AreLoader) loader?: AreLoader,\n        @A_Inject(AreCompiler) compiler?: AreCompiler,\n        @A_Inject(AreInterpreter) interpreter?: AreInterpreter,\n        @A_Inject(AreLifecycle) lifecycle?: AreLifecycle,\n        @A_Inject(A_Logger) logger?: A_Logger,\n    ) {\n        if (!syntax)\n            throw new AreEngineError({\n                title: AreEngineError.MissedRequiredDependency,\n                description: `AreSyntax or its inherited variation is a required dependency for ${this.constructor.name}. Please ensure that it is registered in the container scope before starting the engine.`\n            });\n\n        if (!syntaxContext)\n            throw new AreEngineError({\n                title: AreEngineError.MissedRequiredDependency,\n                description: `AreSyntax or its inherited variation is a required dependency for ${this.constructor.name}. Please ensure that it is registered in the container scope before starting the engine.`\n            });\n\n\n        if (!loader)\n            throw new AreEngineError({\n                title: AreEngineError.MissedRequiredDependency,\n                description: `AreLoader or its inherited variation is a required dependency for ${this.constructor.name}. Please ensure that it is registered in the container scope before starting the engine.`\n            });\n\n        if (!transformer)\n            throw new AreEngineError({\n                title: AreEngineError.MissedRequiredDependency,\n                description: `AreTransformer or its inherited variation is a required dependency for ${this.constructor.name}. Please ensure that it is registered in the container scope before starting the engine.`\n            });\n\n        if (!compiler)\n            throw new AreEngineError({\n                title: AreEngineError.MissedRequiredDependency,\n                description: `AreCompiler or its inherited variation is a required dependency for ${this.constructor.name}. Please ensure that it is registered in the container scope before starting the engine.`\n            });\n\n        if (!interpreter)\n            throw new AreEngineError({\n                title: AreEngineError.MissedRequiredDependency,\n                description: `AreInterpreter or its inherited variation is a required dependency for ${this.constructor.name}. Please ensure that it is registered in the container scope before starting the engine.`\n            });\n\n        if (!lifecycle)\n            throw new AreEngineError({\n                title: AreEngineError.MissedRequiredDependency,\n                description: `AreLifecycle or its inherited variation is a required dependency for ${this.constructor.name}. Please ensure that it is registered in the container scope before starting the engine.`\n            });\n    }\n\n\n    /**\n     * Method to pack all necessary dependencies for the engine. This method is called during the initialization phase of the engine and ensures that all required components are registered in the container scope, allowing for proper dependency injection and management throughout the engine's lifecycle.\n     * \n     * @param scope \n     * @param dependencies \n     */\n    @A_Frame.Define({\n        description: 'Method to pack all necessary dependencies for the engine. This method is called during the initialization phase of the engine and ensures that all required components are registered in the container scope, allowing for proper dependency injection and management throughout the engine\\'s lifecycle.'\n    })\n    protected package(\n        scope: A_Scope,\n        dependencies?: Partial<AreEngineDependencies>\n    ) {\n        const { context, syntax, loader, tokenizer, compiler, transformer, interpreter, lifecycle, signals } = dependencies || {};\n        const existedContext = scope.resolveConstructor(AreContext);\n        const existedSyntax = scope.resolveConstructor(AreSyntax);\n        const existedLoader = scope.resolveConstructor(AreLoader);\n        const existedTokenizer = scope.resolveConstructor(AreTokenizer);\n        const existedCompiler = scope.resolveConstructor(AreCompiler);\n        const existedInterpreter = scope.resolveConstructor(AreInterpreter);\n        const existedLifecycle = scope.resolveConstructor(AreLifecycle);\n        const existedTransformer = scope.resolveConstructor(AreTransformer);\n        const existedSignals = scope.resolveConstructor(AreSignals);\n\n\n        this.packDependency(scope, context || AreContext, existedContext);\n        this.packDependency(scope, syntax || AreSyntax, existedSyntax);\n        this.packDependency(scope, tokenizer || AreTokenizer, existedTokenizer);\n        this.packDependency(scope, loader || AreLoader, existedLoader);\n        this.packDependency(scope, compiler || AreCompiler, existedCompiler);\n        this.packDependency(scope, transformer || AreTransformer, existedTransformer);\n        this.packDependency(scope, interpreter || AreInterpreter, existedInterpreter);\n        this.packDependency(scope, lifecycle || AreLifecycle, existedLifecycle);\n        this.packDependency(scope, signals || AreSignals, existedSignals);\n\n    }\n\n    protected packDependency<T extends A_TYPES__A_DependencyInjectable>(\n        scope: A_Scope,\n        dependency: T | A_TYPES__Ctor<T>,\n        existed?: A_TYPES__Ctor<T>\n    ) {\n        const logger = scope.resolve(A_Logger);\n        const thisName = A_CommonHelper.getComponentName(this);\n        const scopeIssuerName = A_CommonHelper.getComponentName(scope.issuer());\n        const dependencyName = A_CommonHelper.getComponentName(dependency);\n\n        if (existed) {\n            logger?.debug('cyan', `Dependency ${dependencyName} already exists in ${scopeIssuerName} scope. Skipping injection.`);\n\n            return existed;\n        } else {\n            logger?.debug('cyan', `Injecting ${dependencyName} into ${scopeIssuerName} scope for ${thisName}...`);\n            scope.register(dependency);\n\n            return dependency;\n        }\n    }\n\n}"]}