{"version":3,"sources":["../../../../src/lib/AreComponent/Are.container.ts"],"names":[],"mappings":";;;;;;;;AAAA,IAAA,EAAA;AASO,MAAM,qBAAqB,SAAA,CAAU;AAAA,EAGxC,OAAiB,EAAA,GAAA,iBAAA,CAAkB,OAAO,EAEjB,MAAA,EAGC,OAAA,EAIA,UAEF,MAAA,EACP;AACb,IAAA,IAAI;AAEA,MAAA,KAAA,MAAW,OAAA,IAAW,QAAA,IAAY,EAAC,EAAG;AAClC,QAAA,MAAM,QAAQ,IAAA,EAAK;AAAA,MACvB;AAEA,MAAA,MAAM,OAAO,IAAA,EAAK;AAClB,MAAA,MAAM,OAAO,KAAA,EAAM;AACnB,MAAA,MAAM,OAAO,OAAA,EAAQ;AAErB,MAAA,KAAA,MAAW,OAAA,IAAW,QAAA,IAAY,EAAC,EAAG;AAClC,QAAA,MAAM,QAAQ,KAAA,EAAM;AAAA,MACxB;AAEA,MAAA,MAAA,EAAQ,KAAK,MAAA,EAAQ,CAAA,2BAAA,EAA8B,QAAQ,KAAA,CAAM,GAAA,CAAI,UAAQ,IAAA,CAAK,KAAA,CAAM,EAAE,CAAA,CAAE,KAAK,IAAI,CAAC,UAAU,OAAA,CAAQ,KAAA,CAAM,MAAM,CAAA,YAAA,CAAc,CAAA;AAElJ,MAAA,MAAA,EAAQ,KAAA;AAAA,QAAM,MAAA;AAAA,QACV,cAAA;AAAA,QACA,mCAAA;AAAA,QACA,GAAG,OAAA,CAAQ,WAAA;AAAA,QACX,mCAAA;AAAA,QACA,QAAA;AAAA,QACA,mCAAA;AAAA,QACA,GAAG,OAAA,CAAQ;AAAA,OACf;AAAA,IAEJ,SAAS,KAAA,EAAO;AACZ,MAAA,MAAA,EAAQ,MAAM,KAAK,CAAA;AAAA,IACvB;AAAA,EACJ;AACJ;AA3CqB,eAAA,CAAA;AAAA,EADhB,UAAU,MAAA,EAAO;AAAA,EAEb,gCAAa,QAAA,EAAS,CAAA;AAAA,EACtB,4BAAS,SAAS,CAAA,CAAA;AAAA,EAElB,gCAAa,QAAA,EAAS,CAAA;AAAA,EACtB,4BAAS,UAAU,CAAA,CAAA;AAAA,EAEnB,gCAAa,GAAA,EAAI,CAAA;AAAA,EACjB,gCAAa,IAAA,EAAK,CAAA;AAAA,EAClB,4BAAS,UAAU,CAAA,CAAA;AAAA,EAEnB,4BAAS,QAAQ,CAAA;AAAA,CAAA,EAdb,YAAA,CAGQ,SAAA,EAAA,EAAA,EAAA,CAAA,CAAA","file":"Are.container.mjs","sourcesContent":["import { A_Dependency, A_Feature, A_Inject } from \"@adaas/a-concept\";\nimport { A_Service, A_ServiceFeatures } from \"@adaas/a-utils/a-service\";\nimport { A_Logger } from \"@adaas/a-utils/a-logger\";\nimport { AreContext } from \"@adaas/are/component/Are.context\";\nimport { AreEngine } from \"@adaas/are/engine/AreEngine.component\";\nimport { AreWatcher } from \"@adaas/are/watcher/AreWatcher.component\";\n\n\n\nexport class AreContainer extends A_Service {\n\n    @A_Feature.Extend()\n    protected async [A_ServiceFeatures.onStart](\n        @A_Dependency.Required()\n        @A_Inject(AreEngine) engine: AreEngine,\n\n        @A_Dependency.Required()\n        @A_Inject(AreContext) context: AreContext,\n\n        @A_Dependency.All()\n        @A_Dependency.Flat()\n        @A_Inject(AreWatcher) watchers?: AreWatcher[],\n\n        @A_Inject(A_Logger) logger?: A_Logger,\n    ): Promise<void> {\n        try {\n\n            for (const watcher of watchers ?? []) {\n                await watcher.init();\n            }\n\n            await engine.load();\n            await engine.build();\n            await engine.execute();\n\n            for (const watcher of watchers ?? []) {\n                await watcher.watch();\n            }\n\n            logger?.info('cyan', `UI Application started at <${context.roots.map(root => root.aseid.id).join(', ')}> with ${context.roots.length} root nodes.`);\n\n            logger?.debug('cyan',\n                'Performance:',\n                '------------------------------ \\n',\n                ...context.performance,\n                '------------------------------ \\n',\n                'Stats:',\n                '------------------------------ \\n',\n                ...context.stats\n            );\n\n        } catch (error) {\n            logger?.error(error);\n        }\n    }\n}"]}