{"remainingRequest":"/data/node_modules/babel-loader/lib/index.js!/data/node_modules/typescript-logging/dist/commonjs/extension/ExtensionHelper.js","dependencies":[{"path":"/data/node_modules/typescript-logging/dist/commonjs/extension/ExtensionHelper.js","mtime":1553611387932},{"path":"/data/.babelrc","mtime":1553611371556},{"path":"/data/node_modules/cache-loader/dist/cjs.js","mtime":1553611387012},{"path":"/data/node_modules/babel-loader/lib/index.js","mtime":1553611386992}],"contextDependencies":[],"result":["\"use strict\";\n\nvar CategoryService_1 = require(\"../log/category/CategoryService\");\nvar LoggerOptions_1 = require(\"../log/LoggerOptions\");\nvar MessageUtils_1 = require(\"../utils/MessageUtils\");\nvar ExtensionHelper = function () {\n    function ExtensionHelper() {}\n    // Private constructor\n\n    /**\n     * Enables the window event listener to listen to messages (from extensions).\n     * Can be registered/enabled only once.\n     */\n    ExtensionHelper.register = function () {\n        if (!ExtensionHelper.registered) {\n            ExtensionHelper.registered = true;\n            var listener = function listener(evt) {\n                var msg = evt.data;\n                if (msg !== null) {\n                    ExtensionHelper.processMessageFromExtension(msg);\n                }\n            };\n            if (typeof window !== \"undefined\") {\n                window.removeEventListener(\"message\", listener);\n                window.addEventListener(\"message\", listener);\n            }\n        }\n    };\n    ExtensionHelper.processMessageFromExtension = function (msg) {\n        if (!ExtensionHelper.registered) {\n            return;\n        }\n        /* tslint:disable:no-console */\n        if (msg.from === \"tsl-extension\") {\n            var data = msg.data;\n            switch (data.type) {\n                case \"register\":\n                    ExtensionHelper.enableExtensionIntegration();\n                    break;\n                case \"request-change-loglevel\":\n                    var valueRequest = data.value;\n                    var catsApplied = ExtensionHelper.applyLogLevel(valueRequest.categoryId, valueRequest.logLevel, valueRequest.recursive);\n                    if (catsApplied.length > 0) {\n                        // Send changes back\n                        ExtensionHelper.sendCategoriesRuntimeUpdateMessage(catsApplied);\n                    }\n                    break;\n                default:\n                    console.log(\"Unknown command to process message from extension, command was: \" + data.type);\n                    break;\n            }\n        }\n        /* tslint:enable:no-console */\n    };\n    ExtensionHelper.sendCategoryLogMessage = function (msg) {\n        if (!ExtensionHelper.registered) {\n            return;\n        }\n        var categoryIds = msg.getCategories().map(function (cat) {\n            return cat.id;\n        });\n        var content = {\n            type: \"log-message\",\n            value: {\n                categories: categoryIds,\n                errorAsStack: msg.getErrorAsStack(),\n                formattedMessage: MessageUtils_1.MessageFormatUtils.renderDefaultMessage(msg, false),\n                logLevel: LoggerOptions_1.LogLevel[msg.getLevel()].toString(),\n                message: msg.getMessage(),\n                resolvedErrorMessage: msg.isResolvedErrorMessage()\n            }\n        };\n        var message = {\n            data: content,\n            from: \"tsl-logging\"\n        };\n        ExtensionHelper.sendMessage(message);\n    };\n    ExtensionHelper.sendCategoriesRuntimeUpdateMessage = function (categories) {\n        if (!ExtensionHelper.registered) {\n            return;\n        }\n        var service = CategoryService_1.CategoryServiceImpl.getInstance();\n        var catLevels = { categories: Array() };\n        categories.forEach(function (cat) {\n            var catSettings = service.getCategorySettings(cat);\n            if (catSettings != null) {\n                catLevels.categories.push({ id: cat.id, logLevel: LoggerOptions_1.LogLevel[catSettings.logLevel].toString() });\n            }\n        });\n        var content = {\n            type: \"categories-rt-update\",\n            value: catLevels\n        };\n        var message = {\n            data: content,\n            from: \"tsl-logging\"\n        };\n        ExtensionHelper.sendMessage(message);\n    };\n    ExtensionHelper.sendRootCategoriesToExtension = function () {\n        if (!ExtensionHelper.registered) {\n            return;\n        }\n        var categories = CategoryService_1.CategoryServiceImpl.getInstance().getRootCategories().map(function (cat) {\n            return ExtensionHelper.getCategoryAsJSON(cat);\n        });\n        var content = {\n            type: \"root-categories-tree\",\n            value: categories\n        };\n        var message = {\n            data: content,\n            from: \"tsl-logging\"\n        };\n        ExtensionHelper.sendMessage(message);\n    };\n    /**\n     * If extension integration is enabled, will send the root categories over to the extension.\n     * Otherwise does nothing.\n     */\n    ExtensionHelper.getCategoryAsJSON = function (cat) {\n        var childCategories = cat.children.map(function (child) {\n            return ExtensionHelper.getCategoryAsJSON(child);\n        });\n        return {\n            children: childCategories,\n            id: cat.id,\n            logLevel: LoggerOptions_1.LogLevel[cat.logLevel].toString(),\n            name: cat.name,\n            parentId: cat.parent != null ? cat.parent.id : null\n        };\n    };\n    ExtensionHelper.applyLogLevel = function (categoryId, logLevel, recursive) {\n        var cats = [];\n        var category = CategoryService_1.CategoryServiceImpl.getInstance().getCategoryById(categoryId);\n        if (category != null) {\n            ExtensionHelper._applyLogLevelRecursive(category, LoggerOptions_1.LogLevel.fromString(logLevel), recursive, cats);\n        } else {\n            /* tslint:disable:no-console */\n            console.log(\"Could not change log level, failed to find category with id: \" + categoryId);\n        }\n        return cats;\n    };\n    ExtensionHelper._applyLogLevelRecursive = function (category, logLevel, recursive, cats) {\n        var categorySettings = CategoryService_1.CategoryServiceImpl.getInstance().getCategorySettings(category);\n        if (categorySettings != null) {\n            categorySettings.logLevel = logLevel;\n            cats.push(category);\n            if (recursive) {\n                category.children.forEach(function (child) {\n                    ExtensionHelper._applyLogLevelRecursive(child, logLevel, recursive, cats);\n                });\n            }\n        }\n    };\n    ExtensionHelper.getAllCategories = function () {\n        var cats = [];\n        var addCats = function addCats(cat, allCats) {\n            allCats.push(cat);\n            cat.children.forEach(function (catChild) {\n                addCats(catChild, allCats);\n            });\n        };\n        CategoryService_1.CategoryServiceImpl.getInstance().getRootCategories().forEach(function (cat) {\n            addCats(cat, cats);\n        });\n        return cats;\n    };\n    ExtensionHelper.sendMessage = function (msg) {\n        if (!ExtensionHelper.registered) {\n            return;\n        }\n        if (typeof window !== \"undefined\") {\n            window.postMessage(msg, \"*\");\n        }\n    };\n    /**\n     *  Extension framework will call this to enable the integration between two,\n     *  after this call the framework will respond with postMessage() messages.\n     */\n    ExtensionHelper.enableExtensionIntegration = function () {\n        if (!ExtensionHelper.registered) {\n            return;\n        }\n        var instance = CategoryService_1.CategoryServiceImpl.getInstance();\n        instance.enableExtensionIntegration();\n        // Send over all categories\n        ExtensionHelper.sendRootCategoriesToExtension();\n        // Send over the current runtime levels\n        var cats = ExtensionHelper.getAllCategories();\n        ExtensionHelper.sendCategoriesRuntimeUpdateMessage(cats);\n    };\n    return ExtensionHelper;\n}();\nExtensionHelper.registered = false;\nexports.ExtensionHelper = ExtensionHelper;\n//# sourceMappingURL=ExtensionHelper.js.map",{"version":3,"sources":["node_modules/typescript-logging/dist/commonjs/extension/ExtensionHelper.js"],"names":["CategoryService_1","require","LoggerOptions_1","MessageUtils_1","ExtensionHelper","register","registered","listener","evt","msg","data","processMessageFromExtension","window","removeEventListener","addEventListener","from","type","enableExtensionIntegration","valueRequest","value","catsApplied","applyLogLevel","categoryId","logLevel","recursive","length","sendCategoriesRuntimeUpdateMessage","console","log","sendCategoryLogMessage","categoryIds","getCategories","map","cat","id","content","categories","errorAsStack","getErrorAsStack","formattedMessage","MessageFormatUtils","renderDefaultMessage","LogLevel","getLevel","toString","message","getMessage","resolvedErrorMessage","isResolvedErrorMessage","sendMessage","service","CategoryServiceImpl","getInstance","catLevels","Array","forEach","catSettings","getCategorySettings","push","sendRootCategoriesToExtension","getRootCategories","getCategoryAsJSON","childCategories","children","child","name","parentId","parent","cats","category","getCategoryById","_applyLogLevelRecursive","fromString","categorySettings","getAllCategories","addCats","allCats","catChild","postMessage","instance","exports"],"mappings":"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","file":"ExtensionHelper.js","sourceRoot":"/data","sourcesContent":["\"use strict\";\nvar CategoryService_1 = require(\"../log/category/CategoryService\");\nvar LoggerOptions_1 = require(\"../log/LoggerOptions\");\nvar MessageUtils_1 = require(\"../utils/MessageUtils\");\nvar ExtensionHelper = (function () {\n    function ExtensionHelper() {\n        // Private constructor\n    }\n    /**\n     * Enables the window event listener to listen to messages (from extensions).\n     * Can be registered/enabled only once.\n     */\n    ExtensionHelper.register = function () {\n        if (!ExtensionHelper.registered) {\n            ExtensionHelper.registered = true;\n            var listener = function (evt) {\n                var msg = evt.data;\n                if (msg !== null) {\n                    ExtensionHelper.processMessageFromExtension(msg);\n                }\n            };\n            if (typeof window !== \"undefined\") {\n                window.removeEventListener(\"message\", listener);\n                window.addEventListener(\"message\", listener);\n            }\n        }\n    };\n    ExtensionHelper.processMessageFromExtension = function (msg) {\n        if (!ExtensionHelper.registered) {\n            return;\n        }\n        /* tslint:disable:no-console */\n        if (msg.from === \"tsl-extension\") {\n            var data = msg.data;\n            switch (data.type) {\n                case \"register\":\n                    ExtensionHelper.enableExtensionIntegration();\n                    break;\n                case \"request-change-loglevel\":\n                    var valueRequest = data.value;\n                    var catsApplied = ExtensionHelper.applyLogLevel(valueRequest.categoryId, valueRequest.logLevel, valueRequest.recursive);\n                    if (catsApplied.length > 0) {\n                        // Send changes back\n                        ExtensionHelper.sendCategoriesRuntimeUpdateMessage(catsApplied);\n                    }\n                    break;\n                default:\n                    console.log(\"Unknown command to process message from extension, command was: \" + data.type);\n                    break;\n            }\n        }\n        /* tslint:enable:no-console */\n    };\n    ExtensionHelper.sendCategoryLogMessage = function (msg) {\n        if (!ExtensionHelper.registered) {\n            return;\n        }\n        var categoryIds = msg.getCategories().map(function (cat) {\n            return cat.id;\n        });\n        var content = {\n            type: \"log-message\",\n            value: {\n                categories: categoryIds,\n                errorAsStack: msg.getErrorAsStack(),\n                formattedMessage: MessageUtils_1.MessageFormatUtils.renderDefaultMessage(msg, false),\n                logLevel: LoggerOptions_1.LogLevel[msg.getLevel()].toString(),\n                message: msg.getMessage(),\n                resolvedErrorMessage: msg.isResolvedErrorMessage()\n            }\n        };\n        var message = {\n            data: content,\n            from: \"tsl-logging\",\n        };\n        ExtensionHelper.sendMessage(message);\n    };\n    ExtensionHelper.sendCategoriesRuntimeUpdateMessage = function (categories) {\n        if (!ExtensionHelper.registered) {\n            return;\n        }\n        var service = CategoryService_1.CategoryServiceImpl.getInstance();\n        var catLevels = { categories: Array() };\n        categories.forEach(function (cat) {\n            var catSettings = service.getCategorySettings(cat);\n            if (catSettings != null) {\n                catLevels.categories.push({ id: cat.id, logLevel: LoggerOptions_1.LogLevel[catSettings.logLevel].toString() });\n            }\n        });\n        var content = {\n            type: \"categories-rt-update\",\n            value: catLevels,\n        };\n        var message = {\n            data: content,\n            from: \"tsl-logging\"\n        };\n        ExtensionHelper.sendMessage(message);\n    };\n    ExtensionHelper.sendRootCategoriesToExtension = function () {\n        if (!ExtensionHelper.registered) {\n            return;\n        }\n        var categories = CategoryService_1.CategoryServiceImpl.getInstance().getRootCategories().map(function (cat) {\n            return ExtensionHelper.getCategoryAsJSON(cat);\n        });\n        var content = {\n            type: \"root-categories-tree\",\n            value: categories\n        };\n        var message = {\n            data: content,\n            from: \"tsl-logging\"\n        };\n        ExtensionHelper.sendMessage(message);\n    };\n    /**\n     * If extension integration is enabled, will send the root categories over to the extension.\n     * Otherwise does nothing.\n     */\n    ExtensionHelper.getCategoryAsJSON = function (cat) {\n        var childCategories = cat.children.map(function (child) {\n            return ExtensionHelper.getCategoryAsJSON(child);\n        });\n        return {\n            children: childCategories,\n            id: cat.id,\n            logLevel: LoggerOptions_1.LogLevel[cat.logLevel].toString(),\n            name: cat.name,\n            parentId: (cat.parent != null ? cat.parent.id : null),\n        };\n    };\n    ExtensionHelper.applyLogLevel = function (categoryId, logLevel, recursive) {\n        var cats = [];\n        var category = CategoryService_1.CategoryServiceImpl.getInstance().getCategoryById(categoryId);\n        if (category != null) {\n            ExtensionHelper._applyLogLevelRecursive(category, LoggerOptions_1.LogLevel.fromString(logLevel), recursive, cats);\n        }\n        else {\n            /* tslint:disable:no-console */\n            console.log(\"Could not change log level, failed to find category with id: \" + categoryId);\n        }\n        return cats;\n    };\n    ExtensionHelper._applyLogLevelRecursive = function (category, logLevel, recursive, cats) {\n        var categorySettings = CategoryService_1.CategoryServiceImpl.getInstance().getCategorySettings(category);\n        if (categorySettings != null) {\n            categorySettings.logLevel = logLevel;\n            cats.push(category);\n            if (recursive) {\n                category.children.forEach(function (child) {\n                    ExtensionHelper._applyLogLevelRecursive(child, logLevel, recursive, cats);\n                });\n            }\n        }\n    };\n    ExtensionHelper.getAllCategories = function () {\n        var cats = [];\n        var addCats = function (cat, allCats) {\n            allCats.push(cat);\n            cat.children.forEach(function (catChild) {\n                addCats(catChild, allCats);\n            });\n        };\n        CategoryService_1.CategoryServiceImpl.getInstance().getRootCategories().forEach(function (cat) {\n            addCats(cat, cats);\n        });\n        return cats;\n    };\n    ExtensionHelper.sendMessage = function (msg) {\n        if (!ExtensionHelper.registered) {\n            return;\n        }\n        if (typeof window !== \"undefined\") {\n            window.postMessage(msg, \"*\");\n        }\n    };\n    /**\n     *  Extension framework will call this to enable the integration between two,\n     *  after this call the framework will respond with postMessage() messages.\n     */\n    ExtensionHelper.enableExtensionIntegration = function () {\n        if (!ExtensionHelper.registered) {\n            return;\n        }\n        var instance = CategoryService_1.CategoryServiceImpl.getInstance();\n        instance.enableExtensionIntegration();\n        // Send over all categories\n        ExtensionHelper.sendRootCategoriesToExtension();\n        // Send over the current runtime levels\n        var cats = ExtensionHelper.getAllCategories();\n        ExtensionHelper.sendCategoriesRuntimeUpdateMessage(cats);\n    };\n    return ExtensionHelper;\n}());\nExtensionHelper.registered = false;\nexports.ExtensionHelper = ExtensionHelper;\n//# sourceMappingURL=ExtensionHelper.js.map"]}]}