"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.LogProvider = void 0;
const extension_provider_1 = require("../../integration/extension.provider");
const root_config_const_1 = require("../../services/root-config/root-config.const");
const root_config_provider_1 = require("../../services/root-config/root-config.provider");
const content_encrypted_object_provider_1 = require("../content-encrypted-object/content-encrypted-object.provider");
const server_config_provider_1 = require("../server-config/server-config.provider");
const log_const_1 = require("./log.const");
const log_service_1 = require("./log.service");
class LogProvider extends extension_provider_1.ExtensionProvider {
    constructor(app) {
        super(log_const_1.LOG_PROVIDER, app);
        this.app = app;
        this.requiredProviders.push(content_encrypted_object_provider_1.ContentEncryptedObjectProvider, root_config_provider_1.RootConfigProvider, server_config_provider_1.ServerConfigProvider);
        this.services.push({ cls: log_service_1.LogService });
        this.objectTypes.push(log_const_1.LOGS_TYPE);
        this.objectSubTypes.push(log_const_1.ROOT_CONFIGURATION_LOGS_SUBTYPE);
        this.objectTrees.logs = {
            parentNode: () => this.appCtx.getExtensionContext(root_config_const_1.ROOT_CONFIG_PROVIDER).nodes
                .rootConfiguration.value,
            treeNodeTypeId: log_const_1.LOGS_TYPE.name,
            treeNodeName: log_const_1.LOGS_TYPE.name,
            tree: { treeNode: {}, children: {} },
        };
    }
    async boot() {
        await super.boot();
    }
}
exports.LogProvider = LogProvider;
//# sourceMappingURL=log.provider.js.map