{"version":3,"file":"validator.js","sourceRoot":"","sources":["../../src/bundler/validator.ts"],"names":[],"mappings":";;AAAA,6BAA+B;AAC/B,uBAAyB;AAIzB;IAEI,mBAAoB,MAAqB;QAArB,WAAM,GAAN,MAAM,CAAe;IAAG,CAAC;IAEtC,4BAAQ,GAAf,UAAgB,MAAc,EAAE,QAAgB;QAE5C,IAAI,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,cAAc,EAAE;YAE3C,IAAI;gBACA,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;aACvB;YACD,OAAO,KAAK,EAAE;gBAEV,IAAI,WAAW,GAAG,EAAE,CAAC;gBAErB,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,wDAAwD,CAAC,KAAK,CAAC,CAAC,EAAE;oBACxF,WAAW,GAAG,sDAAsD;wBACpD,iDAAiD,CAAC;iBACrE;gBAED,MAAM,IAAI,KAAK,CAAC,4BAA4B,GAAG,KAAK,CAAC,OAAO,GAAG,EAAE,CAAC,GAAG;oBACjE,KAAK,GAAG,QAAQ,GAAG,EAAE,CAAC,GAAG;oBACzB,UAAU,GAAG,KAAK,CAAC,GAAG,CAAC,IAAI,GAAG,WAAW,GAAG,KAAK,CAAC,GAAG,CAAC,MAAM,GAAG,GAAG,GAAG,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,GAAG;oBACpF,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,GAAG,EAAE,CAAC,GAAG,MAAM,GAAG,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,GAAG;oBAC3E,WAAW,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;aAClD;SACJ;IACL,CAAC;IACL,gBAAC;AAAD,CAAC,AA5BD,IA4BC;AA5BY,8BAAS","sourcesContent":["import * as acorn from \"acorn\";\nimport * as os from \"os\";\n\nimport { Configuration } from \"../shared/configuration\";\n\nexport class Validator {\n\n    constructor(private config: Configuration) {}\n\n    public validate(bundle: string, filename: string) {\n\n        if (this.config.bundlerOptions.validateSyntax) {\n\n            try {\n                acorn.parse(bundle);\n            }\n            catch (error) {\n\n                let possibleFix = \"\";\n\n                if (error.message.indexOf(\"'import' and 'export' may only appear at the top level\") !== -1) {\n                    possibleFix = \"Possible fix: configure karma-typescript to compile \" +\n                                    \"es6 modules with karma-typescript-es6-transform\";\n                }\n\n                throw new Error(\"Invalid syntax in bundle: \" + error.message + os.EOL +\n                    \"in \" + filename + os.EOL +\n                    \"at line \" + error.loc.line + \", column \" + error.loc.column + \":\" + os.EOL + os.EOL +\n                    \"... \" + bundle.slice(error.pos, error.pos + 50) + \" ...\" + os.EOL + os.EOL +\n                    possibleFix + (possibleFix ? os.EOL : \"\"));\n            }\n        }\n    }\n}\n"]}