{"version":3,"sources":["../../node_modules/codemirror/mode/dockerfile/dockerfile.js"],"names":["mod","exports","module","require","define","amd","CodeMirror","from","fromRegex","RegExp","shells","shellsAsArrayRegex","join","expose","exposeRegex","others","instructions","concat","instructionRegex","instructionOnlyLine","instructionWithArguments","defineSimpleMode","start","regex","sol","token","next","single","pop","double","array","arguments","push","meta","lineComment","defineMIME"],"mappings":"CAGA,SAAUA,GACR,SAAWC,UAAW,gBAAmBC,SAAU,SACjDF,EAAIG,QAAQ,wBAAyBA,QAAQ,gCAC1C,UAAWC,SAAU,YAAcA,OAAOC,IAC7CD,QAAQ,uBAAwB,2BAA4BJ,OAE5DA,GAAIM,cACL,SAASA,GACV,YAEA,IAAIC,GAAO,MACX,IAAIC,GAAY,GAAIC,QAAO,cAAgBF,EAAO,OAAQ,IAE1D,IAAIG,IAAU,MAAO,MAAO,aAAc,QAC1C,IAAIC,GAAqB,GAAIF,QAAO,WAAaC,EAAOE,KAAK,KAAO,aAAc,IAElF,IAAIC,GAAS,QACb,IAAIC,GAAc,GAAIL,QAAO,WAAaI,EAAS,UAAW,IAE9D,IAAIE,IACF,MAAO,OAAQ,aAAc,QAAS,MACtC,MAAO,OAAQ,SAAU,OACzB,UAAW,UAAW,aAAc,cAAe,QAIrD,IAAIC,IAAgBT,EAAMM,GAAQI,OAAOP,GAAQO,OAAOF,GACpDG,EAAmB,IAAMF,EAAaJ,KAAK,KAAO,IAClDO,EAAsB,GAAIV,QAAO,UAAYS,EAAmB,gBAAiB,KACjFE,EAA2B,GAAIX,QAAO,UAAYS,EAAmB,SAAU,IAEnFZ,GAAWe,iBAAiB,cAC1BC,QAGIC,MAAO,WACPC,IAAK,KACLC,MAAO,YAGPF,MAAOf,EACPiB,OAAQ,KAAM,WACdD,IAAK,KACLE,KAAM,SAINH,MAAOJ,EACPM,OAAQ,KAAM,UAAW,KAAM,SAC/BD,IAAK,OAGLD,MAAOZ,EACPc,OAAQ,KAAM,UAAW,MACzBD,IAAK,KACLE,KAAM,UAGNH,MAAOT,EACPW,OAAQ,KAAM,UAAW,MACzBD,IAAK,KACLE,KAAM,WAINH,MAAOH,EACPK,OAAQ,KAAM,UAAW,MACzBD,IAAK,KACLE,KAAM,cAGNH,MAAO,IACPE,MAAO,OAGXlB,OAEIgB,MAAO,OACPE,MAAO,KACPC,KAAM,UAINH,MAAO,cACPE,OAAQ,KAAM,SACdC,KAAM,UAGNH,MAAO,mBACPE,OAAQ,KAAM,WACdC,KAAM,UAIND,MAAO,KACPC,KAAM,UAGVC,SAEIJ,MAAO,iBACPE,MAAO,WAGPF,MAAO,IACPE,MAAO,SACPG,IAAK,OAGTC,WAEIN,MAAO,iBACPE,MAAO,WAGPF,MAAO,IACPE,MAAO,SACPG,IAAK,OAGTE,QAEIP,MAAO,KACPE,MAAO,KACPC,KAAM,UAGNH,MAAO,qBACPE,MAAO,WAGXZ,SAEIU,MAAO,OACPE,MAAO,SACPC,KAAM,UAGNH,MAAO,UACPE,MAAO,KACPC,KAAM,UAGNH,MAAO,MACPE,MAAO,WAGPF,MAAO,SACPE,MAAO,OAIPA,MAAO,KACPC,KAAM,UAGVK,YAEIR,MAAO,WACPC,IAAK,KACLC,MAAO,YAGPF,MAAO,sBACPE,MAAO,SACPC,KAAM,UAGNH,MAAO,IACPE,MAAO,SACPO,KAAM,WAGNT,MAAO,sBACPE,MAAO,SACPC,KAAM,UAGNH,MAAO,IACPE,MAAO,SACPO,KAAM,WAGNT,MAAO,gBACPE,MAAO,OAGPF,MAAO,WACPE,MAAO,KACPC,KAAM,UAGNH,MAAO,UACPE,MAAO,OAIPA,MAAO,KACPC,KAAM,UAGVO,MACEC,YAAa,MAIjB5B,GAAW6B,WAAW,oBAAqB","file":"dockerfile.min.js","sourcesContent":["// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/LICENSE\n\n(function(mod) {\n if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n mod(require(\"../../lib/codemirror\"), require(\"../../addon/mode/simple\"));\n else if (typeof define == \"function\" && define.amd) // AMD\n define([\"../../lib/codemirror\", \"../../addon/mode/simple\"], mod);\n else // Plain browser env\n mod(CodeMirror);\n})(function(CodeMirror) {\n \"use strict\";\n\n var from = \"from\";\n var fromRegex = new RegExp(\"^(\\\\s*)\\\\b(\" + from + \")\\\\b\", \"i\");\n\n var shells = [\"run\", \"cmd\", \"entrypoint\", \"shell\"];\n var shellsAsArrayRegex = new RegExp(\"^(\\\\s*)(\" + shells.join('|') + \")(\\\\s+\\\\[)\", \"i\");\n\n var expose = \"expose\";\n var exposeRegex = new RegExp(\"^(\\\\s*)(\" + expose + \")(\\\\s+)\", \"i\");\n\n var others = [\n \"arg\", \"from\", \"maintainer\", \"label\", \"env\",\n \"add\", \"copy\", \"volume\", \"user\",\n \"workdir\", \"onbuild\", \"stopsignal\", \"healthcheck\", \"shell\"\n ];\n\n // Collect all Dockerfile directives\n var instructions = [from, expose].concat(shells).concat(others),\n instructionRegex = \"(\" + instructions.join('|') + \")\",\n instructionOnlyLine = new RegExp(\"^(\\\\s*)\" + instructionRegex + \"(\\\\s*)(#.*)?$\", \"i\"),\n instructionWithArguments = new RegExp(\"^(\\\\s*)\" + instructionRegex + \"(\\\\s+)\", \"i\");\n\n CodeMirror.defineSimpleMode(\"dockerfile\", {\n start: [\n // Block comment: This is a line starting with a comment\n {\n regex: /^\\s*#.*$/,\n sol: true,\n token: \"comment\"\n },\n {\n regex: fromRegex,\n token: [null, \"keyword\"],\n sol: true,\n next: \"from\"\n },\n // Highlight an instruction without any arguments (for convenience)\n {\n regex: instructionOnlyLine,\n token: [null, \"keyword\", null, \"error\"],\n sol: true\n },\n {\n regex: shellsAsArrayRegex,\n token: [null, \"keyword\", null],\n sol: true,\n next: \"array\"\n },\n {\n regex: exposeRegex,\n token: [null, \"keyword\", null],\n sol: true,\n next: \"expose\"\n },\n // Highlight an instruction followed by arguments\n {\n regex: instructionWithArguments,\n token: [null, \"keyword\", null],\n sol: true,\n next: \"arguments\"\n },\n {\n regex: /./,\n token: null\n }\n ],\n from: [\n {\n regex: /\\s*$/,\n token: null,\n next: \"start\"\n },\n {\n // Line comment without instruction arguments is an error\n regex: /(\\s*)(#.*)$/,\n token: [null, \"error\"],\n next: \"start\"\n },\n {\n regex: /(\\s*\\S+\\s+)(as)/i,\n token: [null, \"keyword\"],\n next: \"start\"\n },\n // Fail safe return to start\n {\n token: null,\n next: \"start\"\n }\n ],\n single: [\n {\n regex: /(?:[^\\\\']|\\\\.)/,\n token: \"string\"\n },\n {\n regex: /'/,\n token: \"string\",\n pop: true\n }\n ],\n double: [\n {\n regex: /(?:[^\\\\\"]|\\\\.)/,\n token: \"string\"\n },\n {\n regex: /\"/,\n token: \"string\",\n pop: true\n }\n ],\n array: [\n {\n regex: /\\]/,\n token: null,\n next: \"start\"\n },\n {\n regex: /\"(?:[^\\\\\"]|\\\\.)*\"?/,\n token: \"string\"\n }\n ],\n expose: [\n {\n regex: /\\d+$/,\n token: \"number\",\n next: \"start\"\n },\n {\n regex: /[^\\d]+$/,\n token: null,\n next: \"start\"\n },\n {\n regex: /\\d+/,\n token: \"number\"\n },\n {\n regex: /[^\\d]+/,\n token: null\n },\n // Fail safe return to start\n {\n token: null,\n next: \"start\"\n }\n ],\n arguments: [\n {\n regex: /^\\s*#.*$/,\n sol: true,\n token: \"comment\"\n },\n {\n regex: /\"(?:[^\\\\\"]|\\\\.)*\"?$/,\n token: \"string\",\n next: \"start\"\n },\n {\n regex: /\"/,\n token: \"string\",\n push: \"double\"\n },\n {\n regex: /'(?:[^\\\\']|\\\\.)*'?$/,\n token: \"string\",\n next: \"start\"\n },\n {\n regex: /'/,\n token: \"string\",\n push: \"single\"\n },\n {\n regex: /[^#\"']+[\\\\`]$/,\n token: null\n },\n {\n regex: /[^#\"']+$/,\n token: null,\n next: \"start\"\n },\n {\n regex: /[^#\"']+/,\n token: null\n },\n // Fail safe return to start\n {\n token: null,\n next: \"start\"\n }\n ],\n meta: {\n lineComment: \"#\"\n }\n });\n\n CodeMirror.defineMIME(\"text/x-dockerfile\", \"dockerfile\");\n});\n"]}