[{"/home/oliver/git-repos/keycloak-theme-vuejs/src/components/ErrorBox.vue":"1","/home/oliver/git-repos/keycloak-theme-vuejs/src/components/Layout.vue":"2","/home/oliver/git-repos/keycloak-theme-vuejs/src/shims-vue.d.ts":"3","/home/oliver/git-repos/keycloak-theme-vuejs/src/types/context.ts":"4","/home/oliver/git-repos/keycloak-theme-vuejs/src/views/login/index.ts":"5","/home/oliver/git-repos/keycloak-theme-vuejs/src/views/login/index.vue":"6","/home/oliver/git-repos/keycloak-theme-vuejs/src/views/webauthn-authenticate/index.ts":"7","/home/oliver/git-repos/keycloak-theme-vuejs/src/views/webauthn-authenticate/index.vue":"8","/home/oliver/git-repos/keycloak-theme-vuejs/tailwind.config.js":"9","/home/oliver/git-repos/keycloak-theme-vuejs/webpack.config.js":"10"},{"size":334,"mtime":1676764735273,"results":"11","hashOfConfig":"12"},{"size":703,"mtime":1676744043737,"results":"13","hashOfConfig":"12"},{"size":146,"mtime":1676768217528,"results":"14","hashOfConfig":"12"},{"size":10105,"mtime":1676767602409,"results":"15","hashOfConfig":"12"},{"size":155,"mtime":1676744043933,"results":"16","hashOfConfig":"12"},{"size":3456,"mtime":1676764735457,"results":"17","hashOfConfig":"12"},{"size":155,"mtime":1676744043997,"results":"18","hashOfConfig":"12"},{"size":6913,"mtime":1676768178300,"results":"19","hashOfConfig":"12"},{"size":144,"mtime":1676744044069,"results":"20","hashOfConfig":"12"},{"size":3277,"mtime":1676767942024,"results":"21","hashOfConfig":"12"},{"filePath":"22","messages":"23","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},"yepsnx",{"filePath":"24","messages":"25","errorCount":2,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"source":"26"},{"filePath":"27","messages":"28","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"29","messages":"30","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"31","messages":"32","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"33","messages":"34","errorCount":5,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"source":"35"},{"filePath":"36","messages":"37","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"38","messages":"39","errorCount":12,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"source":"40"},{"filePath":"41","messages":"42","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"43","messages":"44","errorCount":1,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"source":"45"},"/home/oliver/git-repos/keycloak-theme-vuejs/src/components/ErrorBox.vue",[],"/home/oliver/git-repos/keycloak-theme-vuejs/src/components/Layout.vue",["46","47"],"\n\n","/home/oliver/git-repos/keycloak-theme-vuejs/src/shims-vue.d.ts",[],"/home/oliver/git-repos/keycloak-theme-vuejs/src/types/context.ts",[],"/home/oliver/git-repos/keycloak-theme-vuejs/src/views/login/index.ts",[],"/home/oliver/git-repos/keycloak-theme-vuejs/src/views/login/index.vue",["48","49","50","51","52"],"\n\n\n","/home/oliver/git-repos/keycloak-theme-vuejs/src/views/webauthn-authenticate/index.ts",[],"/home/oliver/git-repos/keycloak-theme-vuejs/src/views/webauthn-authenticate/index.vue",["53","54","55","56","57","58","59","60","61","62","63","64"],"\n\n\n","/home/oliver/git-repos/keycloak-theme-vuejs/tailwind.config.js",[],"/home/oliver/git-repos/keycloak-theme-vuejs/webpack.config.js",["65"],"const path = require(\"path\");\nconst { VueLoaderPlugin } = require(\"vue-loader\");\nconst HtmlWebpackPlugin = require(\"html-webpack-plugin\");\nconst { CleanWebpackPlugin } = require(\"clean-webpack-plugin\");\nconst CopyWebpackPlugin = require(\"copy-webpack-plugin\");\n\nconst THEME_NAME = \"modern-login\";\nconst customPages = [\"login\", \"webauthn-authenticate\"];\n\nmodule.exports = function (env, argv) {\n const isDevelopment = argv.mode !== \"production\";\n return {\n entry: () => {\n const entryList = {};\n for (const entry of customPages) {\n entryList[entry] = path.resolve(\n __dirname,\n \"src\",\n \"views\",\n entry,\n \"index.ts\"\n );\n }\n return entryList;\n },\n output: {\n path: path.resolve(__dirname, \"dist\", \"theme\", THEME_NAME, \"login\"),\n filename: \"resources/js/[name].js\",\n publicPath: \"/\",\n },\n devtool: \"inline-cheap-module-source-map\",\n resolve: {\n extensions: [\".ts\", \".tsx\", \".js\", \".vue\", \".json\", \".scss\"],\n alias: {\n \"~\": path.resolve(__dirname, \"src\"),\n },\n },\n mode: isDevelopment ? \"development\" : \"production\",\n watch: isDevelopment,\n module: {\n rules: [\n {\n test: /\\.vue$/,\n loader: \"vue-loader\",\n options: {\n sourceMap: isDevelopment,\n extract: false,\n },\n },\n {\n test: /\\.(ts|tsx)$/,\n exclude: /node_modules/,\n use: {\n loader: \"babel-loader\",\n options: {\n presets: [\"@babel/preset-env\", \"@babel/preset-typescript\"],\n plugins: [\n \"@babel/plugin-transform-runtime\",\n \"@babel/plugin-transform-typescript\",\n ],\n },\n },\n },\n {\n test: /\\.css$/,\n use: [\n \"style-loader\",\n \"css-loader\",\n {\n loader: \"postcss-loader\",\n options: {\n postcssOptions: {\n plugins: {\n tailwindcss: {},\n autoprefixer: {},\n },\n },\n },\n },\n ],\n },\n ],\n },\n plugins: [\n new CleanWebpackPlugin(),\n new VueLoaderPlugin(),\n ...customPages.map(\n entry =>\n new HtmlWebpackPlugin({\n inject: false,\n template: path.resolve(\n __dirname,\n \"src\",\n \"views\",\n entry,\n \"index.ftl\"\n ),\n filename: `${entry}.ftl`,\n minify: false,\n })\n ),\n new CopyWebpackPlugin({\n patterns: [\n {\n from: path.resolve(__dirname, \"src\", \"static\", \"login\"),\n to: path.resolve(__dirname, \"dist\", \"theme\", THEME_NAME, \"login\"),\n },\n {\n from: path.resolve(__dirname, \"src\", \"static\", \"jar\"),\n to: path.resolve(__dirname, \"dist\"),\n },\n ],\n }),\n ],\n ...(isDevelopment\n ? {}\n : {\n optimization: {\n removeAvailableModules: false,\n removeEmptyChunks: false,\n splitChunks: false,\n },\n }),\n };\n};\n",{"ruleId":"66","severity":2,"message":"67","line":4,"column":1,"nodeType":"68","messageId":"69","endLine":4,"endColumn":136},{"ruleId":"70","severity":2,"message":"71","line":18,"column":9,"nodeType":"72","messageId":"73","endLine":18,"endColumn":17},{"ruleId":"66","severity":2,"message":"74","line":36,"column":1,"nodeType":"68","messageId":"69","endLine":36,"endColumn":187},{"ruleId":"66","severity":2,"message":"75","line":47,"column":1,"nodeType":"68","messageId":"69","endLine":47,"endColumn":189},{"ruleId":"66","severity":2,"message":"76","line":62,"column":1,"nodeType":"68","messageId":"69","endLine":62,"endColumn":143},{"ruleId":"66","severity":2,"message":"77","line":74,"column":1,"nodeType":"68","messageId":"69","endLine":74,"endColumn":183},{"ruleId":"70","severity":2,"message":"78","line":87,"column":9,"nodeType":"72","messageId":"73","endLine":87,"endColumn":16},{"ruleId":"66","severity":2,"message":"79","line":27,"column":1,"nodeType":"68","messageId":"69","endLine":27,"endColumn":174},{"ruleId":"66","severity":2,"message":"80","line":38,"column":1,"nodeType":"68","messageId":"69","endLine":38,"endColumn":178},{"ruleId":"66","severity":2,"message":"77","line":65,"column":1,"nodeType":"68","messageId":"69","endLine":65,"endColumn":183},{"ruleId":"66","severity":2,"message":"77","line":75,"column":1,"nodeType":"68","messageId":"69","endLine":75,"endColumn":183},{"ruleId":"70","severity":2,"message":"78","line":89,"column":9,"nodeType":"72","messageId":"73","endLine":89,"endColumn":16},{"ruleId":"81","severity":2,"message":"82","line":115,"column":36,"nodeType":"83","messageId":"84","endLine":115,"endColumn":78},{"ruleId":"85","severity":2,"message":"86","line":115,"column":46,"nodeType":"87","messageId":"88","endLine":115,"endColumn":75},{"ruleId":"89","severity":2,"message":"90","line":127,"column":5,"nodeType":"91","messageId":"92","endLine":173,"endColumn":6},{"ruleId":"85","severity":2,"message":"86","line":128,"column":36,"nodeType":"87","messageId":"88","endLine":128,"endColumn":65},{"ruleId":"85","severity":2,"message":"93","line":130,"column":24,"nodeType":"87","messageId":"88","endLine":130,"endColumn":57},{"ruleId":"85","severity":2,"message":"94","line":144,"column":37,"nodeType":"87","messageId":"88","endLine":144,"endColumn":56},{"ruleId":"85","severity":2,"message":"95","line":146,"column":45,"nodeType":"87","messageId":"88","endLine":146,"endColumn":75},{"ruleId":"89","severity":2,"message":"96","line":10,"column":18,"nodeType":"97","messageId":"92","endLine":125,"endColumn":2},"max-len","This line has a length of 135. Maximum allowed is 120.","Program","max","vue/multi-word-component-names","Component name \"Layout\" should always be multi-word.","Literal","unexpected","This line has a length of 186. Maximum allowed is 120.","This line has a length of 188. Maximum allowed is 120.","This line has a length of 142. Maximum allowed is 120.","This line has a length of 182. Maximum allowed is 120.","Component name \"Login\" should always be multi-word.","This line has a length of 173. Maximum allowed is 120.","This line has a length of 177. Maximum allowed is 120.","no-array-constructor","The array literal notation [] is preferable.","NewExpression","preferLiteral","no-undef","'PublicKeyCredentialDescriptor' is not defined.","Identifier","undef","max-lines-per-function","Async method 'authenticate' has too many lines (44). Maximum allowed is 30.","Property","exceed","'PublicKeyCredentialRequestOptions' is not defined.","'PublicKeyCredential' is not defined.","'AuthenticatorAssertionResponse' is not defined.","Function has too many lines (116). Maximum allowed is 30.","FunctionExpression"]