{"version":3,"sources":["webpack:///./node_modules/highlight.js/lib/languages/accesslog.js"],"names":["source","re","concat","args","map","x","join","either","module","exports","_hljs","HTTP_VERBS","name","contains","className","begin","relevance","end","keywords","illegal"],"mappings":"kGASA,SAASA,EAAOC,GACd,OAAKA,EACa,iBAAPA,EAAwBA,EAE5BA,EAAGD,OAHM,KAUlB,SAASE,KAAUC,GAEjB,OADeA,EAAKC,IAAKC,GAAML,EAAOK,IAAIC,KAAK,IAWjD,SAASC,KAAUJ,GAEjB,MADe,IAAMA,EAAKC,IAAKC,GAAML,EAAOK,IAAIC,KAAK,KAAO,IA6F9DE,EAAOC,QAhFP,SAAmBC,GAEjB,MAAMC,EAAa,CACjB,MACA,OACA,OACA,MACA,SACA,UACA,UACA,QACA,SAEF,MAAO,CACLC,KAAM,oBACNC,SAAU,CAER,CACEC,UAAW,SACXC,MAAO,mDACPC,UAAW,GAGb,CACEF,UAAW,SACXC,MAAO,UACPC,UAAW,GAGb,CACEF,UAAW,SACXC,MAAOb,EAAO,IAAKK,KAAUI,IAC7BM,IAAK,IACLC,SAAUP,EACVQ,QAAS,KACTH,UAAW,EACXH,SAAU,CACR,CACEE,MAAO,kBACPC,UAAW,KAKjB,CACEF,UAAW,SAIXC,MAAO,oBACPI,QAAS,KACTH,UAAW,GAEb,CACEF,UAAW,SACXC,MAAO,KACPE,IAAK,KACLE,QAAS,KACTH,UAAW,GAGb,CACEF,UAAW,SACXC,MAAO,sBACPE,IAAK,IACLE,QAAS,KACTH,UAAW,GAGb,CACEF,UAAW,SACXC,MAAO,IACPE,IAAK,IACLE,QAAS,KACTH,UAAW","file":"highlight/accesslog.js?v=8f0ce5c5847c988153b9","sourcesContent":["/**\n * @param {string} value\n * @returns {RegExp}\n * */\n\n/**\n * @param {RegExp | string } re\n * @returns {string}\n */\nfunction source(re) {\n if (!re) return null;\n if (typeof re === \"string\") return re;\n\n return re.source;\n}\n\n/**\n * @param {...(RegExp | string) } args\n * @returns {string}\n */\nfunction concat(...args) {\n const joined = args.map((x) => source(x)).join(\"\");\n return joined;\n}\n\n/**\n * Any of the passed expresssions may match\n *\n * Creates a huge this | this | that | that match\n * @param {(RegExp | string)[] } args\n * @returns {string}\n */\nfunction either(...args) {\n const joined = '(' + args.map((x) => source(x)).join(\"|\") + \")\";\n return joined;\n}\n\n/*\n Language: Apache Access Log\n Author: Oleg Efimov \n Description: Apache/Nginx Access Logs\n Website: https://httpd.apache.org/docs/2.4/logs.html#accesslog\n Audit: 2020\n */\n\n/** @type LanguageFn */\nfunction accesslog(_hljs) {\n // https://developer.mozilla.org/en-US/docs/Web/HTTP/Methods\n const HTTP_VERBS = [\n \"GET\",\n \"POST\",\n \"HEAD\",\n \"PUT\",\n \"DELETE\",\n \"CONNECT\",\n \"OPTIONS\",\n \"PATCH\",\n \"TRACE\"\n ];\n return {\n name: 'Apache Access Log',\n contains: [\n // IP\n {\n className: 'number',\n begin: /^\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}(:\\d{1,5})?\\b/,\n relevance: 5\n },\n // Other numbers\n {\n className: 'number',\n begin: /\\b\\d+\\b/,\n relevance: 0\n },\n // Requests\n {\n className: 'string',\n begin: concat(/\"/, either(...HTTP_VERBS)),\n end: /\"/,\n keywords: HTTP_VERBS,\n illegal: /\\n/,\n relevance: 5,\n contains: [\n {\n begin: /HTTP\\/[12]\\.\\d'/,\n relevance: 5\n }\n ]\n },\n // Dates\n {\n className: 'string',\n // dates must have a certain length, this prevents matching\n // simple array accesses a[123] and [] and other common patterns\n // found in other languages\n begin: /\\[\\d[^\\]\\n]{8,}\\]/,\n illegal: /\\n/,\n relevance: 1\n },\n {\n className: 'string',\n begin: /\\[/,\n end: /\\]/,\n illegal: /\\n/,\n relevance: 0\n },\n // User agent / relevance boost\n {\n className: 'string',\n begin: /\"Mozilla\\/\\d\\.\\d \\(/,\n end: /\"/,\n illegal: /\\n/,\n relevance: 3\n },\n // Strings\n {\n className: 'string',\n begin: /\"/,\n end: /\"/,\n illegal: /\\n/,\n relevance: 0\n }\n ]\n };\n}\n\nmodule.exports = accesslog;\n"],"sourceRoot":""}