1{"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"]}