{"version":3,"sources":["../../../packages/core/data/gateway-url-translator.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,cAAc;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;CACpB;AAED,qBAAa,oBAAoB;IAC7B,OAAO,CAAC,MAAM,CAAC,YAAY,CAQzB;IACF;;;;;;OAMG;WACW,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,cAAc;IAgCpD,OAAO,CAAC,MAAM,CAAC,0BAA0B;IAazC,OAAO,CAAC,MAAM,CAAC,mBAAmB;IAalC,OAAO,CAAC,MAAM,CAAC,mBAAmB;IAalC,OAAO,CAAC,MAAM,CAAC,4BAA4B;IAa3C,OAAO,CAAC,MAAM,CAAC,oBAAoB;IAanC,OAAO,CAAC,MAAM,CAAC,uBAAuB;IAatC,OAAO,CAAC,MAAM,CAAC,0BAA0B;CAY5C","file":"gateway-url-translator.d.ts","sourcesContent":["import { Net } from './net';\r\n\r\nexport interface UrlTranslation {\r\n    newUrl: string;\r\n    startUrl: string;\r\n}\r\n\r\nexport class GatewayUrlTranslator {\r\n    private static translations = {\r\n        powerShellTranslationMatcher: /features\\/powershellApi\\/(.*)/i,\r\n        cimTranslationMatcher: /features\\/cim\\/(.*)/i,\r\n        wdacMatcher: /features\\/wdac\\/(.*)/i,\r\n        jeaMatcher: /features\\/jea\\/(.*)/i,\r\n        fileTransferMatcher: /features\\/fileTransfer\\/(.*)/i,\r\n        counterMatcher: /counter\\/(.*)/i,\r\n        extensionsTranslationMatcher: /features\\/extensions\\/(.*)/i\r\n    };\r\n    /**\r\n     * Given url return a gateway v2 translation object that will work well with\r\n     * nodes/node api.\r\n     *\r\n     * @param url a gateway v1 url\r\n     * @returns\r\n     */\r\n    public static translate(url: string): UrlTranslation {\r\n        if (this.translations.powerShellTranslationMatcher.test(url)) {\r\n            return this.translatePowerShellRequest(url);\r\n        }\r\n\r\n        if (this.translations.cimTranslationMatcher.test(url)) {\r\n            return this.translateCimRequest(url);\r\n        }\r\n\r\n        if (this.translations.jeaMatcher.test(url)) {\r\n            return this.translateJeaRequest(url);\r\n        }\r\n\r\n        if (this.translations.wdacMatcher.test(url)) {\r\n            return this.translateWdacRequest(url);\r\n        }\r\n\r\n        if (this.translations.fileTransferMatcher.test(url)) {\r\n            return this.translateFileTransferRequest(url);\r\n        }\r\n\r\n        if (this.translations.counterMatcher.test(url)) {\r\n            return this.translateCounterRequest(url);\r\n        }\r\n\r\n        if (this.translations.extensionsTranslationMatcher.test(url)) {\r\n            return this.translateExtensionsRequest(url);\r\n        }\r\n\r\n        return null;\r\n    }\r\n\r\n    private static translatePowerShellRequest(url: string): UrlTranslation {\r\n        const matches = url.match(this.translations.powerShellTranslationMatcher);\r\n        if (matches) {\r\n            const restOfString = matches[1];\r\n            return {\r\n                newUrl: restOfString,\r\n                startUrl: `services/${Net.serviceWinRest}/${Net.controllerPowerShell}`\r\n            };\r\n        }\r\n\r\n        return null;\r\n    }\r\n\r\n    private static translateCimRequest(url: string): UrlTranslation {\r\n        const matches = url.match(this.translations.cimTranslationMatcher);\r\n        if (matches) {\r\n            const restOfString = matches[1];\r\n            return {\r\n                newUrl: restOfString,\r\n                startUrl: `services/${Net.serviceWinRest}/${Net.controllerCim}`\r\n            };\r\n        }\r\n\r\n        return null;\r\n    }\r\n\r\n    private static translateJeaRequest(url: string): UrlTranslation {\r\n        const matches = url.match(this.translations.jeaMatcher);\r\n        if (matches) {\r\n            const restOfString = matches[1];\r\n            return {\r\n                newUrl: restOfString,\r\n                startUrl: `services/${Net.serviceWinRest}/${Net.controllerJea}`\r\n            };\r\n        }\r\n\r\n        return null;\r\n    }\r\n\r\n    private static translateFileTransferRequest(url: string): UrlTranslation {\r\n        const matches = url.match(this.translations.fileTransferMatcher);\r\n        if (matches) {\r\n            const restOfString = matches[1];\r\n            return {\r\n                newUrl: restOfString,\r\n                startUrl: `services/${Net.serviceWinRest}/${Net.controllerFileTransfer}`\r\n            };\r\n        }\r\n\r\n        return null;\r\n    }\r\n\r\n    private static translateWdacRequest(url: string): UrlTranslation {\r\n        const matches = url.match(this.translations.wdacMatcher);\r\n        if (matches) {\r\n            const restOfString = matches[1];\r\n            return {\r\n                newUrl: restOfString,\r\n                startUrl: `services/${Net.serviceWinRest}/${Net.controllerWdac}`\r\n            };\r\n        }\r\n\r\n        return null;\r\n    }\r\n\r\n    private static translateCounterRequest(url: string): UrlTranslation {\r\n        const matches = url.match(this.translations.counterMatcher);\r\n        if (matches) {\r\n            const restOfString = matches[1];\r\n            return {\r\n                newUrl: restOfString,\r\n                startUrl: `services/${Net.serviceWinRest}/${Net.controllerPerformanceCounter}`\r\n            };\r\n        }\r\n\r\n        return null;\r\n    }\r\n\r\n    private static translateExtensionsRequest(url: string): UrlTranslation {\r\n        const matches = url.match(this.translations.extensionsTranslationMatcher);\r\n        if (matches) {\r\n            const restOfString = `extensions/${matches[1]}`;\r\n            return {\r\n                newUrl: restOfString,\r\n                startUrl: `services/${Net.serviceWinRest}/${Net.controllerExtensions}`\r\n            };\r\n        }\r\n\r\n        return null;\r\n    }\r\n}\r\n"]}