{"version":3,"sources":["../src/tokenize.ts","../src/formats.ts","../src/hash.ts","../src/token-map.ts","../src/grammar-loader.ts","../src/languages/tap.ts","../src/languages/sql.ts","../src/languages/plsql.ts","../src/languages/gdscript.ts","../src/index.ts"],"sourcesContent":["// @ts-ignore\nimport * as reprism from 'reprism';\nimport {FORMATS} from './formats';\nimport {createTokensMaps, TokensMap} from './token-map';\nimport {IOptions, IToken} from '@jscpd/core';\nimport {loadLanguages} from './grammar-loader';\n\nconst ignore = {\n ignore: [\n {\n pattern: /(jscpd:ignore-start)[\\s\\S]*?(?=jscpd:ignore-end)/,\n lookbehind: true,\n greedy: true,\n },\n {\n pattern: /jscpd:ignore-start/,\n greedy: false,\n },\n {\n pattern: /jscpd:ignore-end/,\n greedy: false,\n },\n ],\n};\n\nconst punctuation = {\n // eslint-disable-next-line @typescript-eslint/camelcase\n new_line: /\\n/,\n empty: /\\s+/,\n};\n\n\nconst initializeFormats = (): void => {\n loadLanguages();\n Object\n .keys(reprism.default.languages)\n .forEach((lang: string) => {\n if (lang !== 'extend' && lang !== 'insertBefore' && lang !== 'DFS') {\n reprism.default.languages[lang] = {\n ...ignore,\n ...reprism.default.languages[lang],\n ...punctuation,\n }\n }\n });\n}\n\ninitializeFormats();\n\nfunction getLanguagePrismName(lang: string): string {\n if (lang in FORMATS && FORMATS[lang]?.parent) {\n return FORMATS[lang]?.parent as string;\n }\n return lang;\n}\n\nexport function tokenize(code: string, language: string): IToken[] {\n let length = 0;\n let line = 1;\n let column = 1;\n\n function sanitizeLangName(name: string): string {\n return name && name.replace ? name.replace('language-', '') : 'unknown';\n }\n\n function createTokenFromString(token: string, lang: string): IToken[] {\n return [\n {\n format: lang,\n type: 'default',\n value: token,\n length: token.length,\n } as IToken,\n ];\n }\n\n function calculateLocation(token: IToken, position: number): IToken {\n const result: IToken = token;\n const lines: string[] = typeof result.value === 'string' && result.value.split ? result.value.split('\\n') : [];\n const newLines = lines.length - 1;\n const start = {\n line,\n column,\n position\n };\n column = newLines >= 0 ? Number(lines[lines.length - 1]?.length) + 1 : column;\n const end = {\n line: line + newLines,\n column,\n position\n };\n result.loc = {start, end};\n result.range = [length, length + result.length];\n length += result.length;\n line += newLines;\n return result;\n }\n\n\n function createTokenFromFlatToken(token: any, lang: string): IToken[] {\n return [\n {\n format: lang,\n type: token.type,\n value: token.content,\n length: token.length,\n } as IToken,\n ];\n }\n\n function createTokens(token: reprism.default.Token | string, lang: string): IToken[] {\n if (token.content && typeof token.content === 'string') {\n return createTokenFromFlatToken(token, lang);\n }\n\n if (token.content && Array.isArray(token.content)) {\n let res: IToken[] = [];\n token.content.forEach(\n (t: IToken) => (res = res.concat(createTokens(t, token.alias ? sanitizeLangName(token.alias as string) : lang))),\n );\n return res;\n }\n\n return createTokenFromString(token as string, lang);\n }\n\n\n let tokens: IToken[] = [];\n const grammar = reprism.default.languages[getLanguagePrismName(language)];\n if (!reprism.default.languages[getLanguagePrismName(language)]) {\n console.warn('Warn: jscpd has issue with support of \"' + getLanguagePrismName(language) + '\"')\n return [];\n }\n reprism.default.tokenize(code, grammar)\n .forEach(\n (t: IToken) => (tokens = tokens.concat(createTokens(t, language))),\n );\n return tokens\n .filter((t: IToken) => t.format in FORMATS)\n .map(\n (token, index) => calculateLocation(token, index)\n );\n}\n\nfunction setupIgnorePatterns(format: string, ignorePattern: string[]): void{\n const language = getLanguagePrismName(format);\n const ignorePatterns = ignorePattern.map(pattern=>({\n pattern: new RegExp(pattern),\n greedy: false,\n }))\n\n reprism.default.languages[language] = {\n ...ignorePatterns,\n ...reprism.default.languages[language],\n }\n}\n\nexport function createTokenMapBasedOnCode(id: string, data: string, format: string, options: Partial = {}): TokensMap[] {\n const {mode, ignoreCase, ignorePattern} = options;\n\n const tokens: IToken[] = tokenize(data, format)\n .filter((token) => mode(token, options))\n\n if(ignorePattern) setupIgnorePatterns(format, options.ignorePattern || [] )\n\n if (ignoreCase) {\n return createTokensMaps(id, data, tokens.map(\n (token: IToken): IToken => {\n token.value = token.value.toLocaleLowerCase();\n return token;\n },\n ), options);\n }\n\n return createTokensMaps(id, data, tokens, options);\n}\n","import {extname} from \"path\";\nimport {IFormatMeta} from './interfaces';\n\nexport const FORMATS: {\n\t[key: string]: IFormatMeta;\n} = {\n\tabap: {\n\t\texts: [],\n\t},\n\tactionscript: {\n\t\texts: ['as'],\n\t},\n\tada: {\n\t\texts: ['ada'],\n\t},\n\tapacheconf: {\n\t\texts: [],\n\t},\n\tapl: {\n\t\texts: ['apl'],\n\t},\n\tapplescript: {\n\t\texts: [],\n\t},\n\tarduino: {\n\t\texts: [],\n\t},\n\tarff: {\n\t\texts: [],\n\t},\n\tasciidoc: {\n\t\texts: [],\n\t},\n\tasm6502: {\n\t\texts: [],\n\t},\n\taspnet: {\n\t\texts: ['asp', 'aspx'],\n\t},\n\tautohotkey: {\n\t\texts: [],\n\t},\n\tautoit: {\n\t\texts: [],\n\t},\n\tbash: {\n\t\texts: ['sh', 'ksh', 'bash'],\n\t},\n\tbasic: {\n\t\texts: ['bas'],\n\t},\n\tbatch: {\n\t\texts: [],\n\t},\n\tbison: {\n\t\texts: [],\n\t},\n\tbrainfuck: {\n\t\texts: ['b', 'bf'],\n\t},\n\tbro: {\n\t\texts: [],\n\t},\n\tc: {\n\t\texts: ['c', 'z80'],\n\t},\n\t'c-header': {\n\t\texts: ['h'],\n\t\tparent: 'c',\n\t},\n\tclike: {\n\t\texts: [],\n\t},\n\tclojure: {\n\t\texts: ['cljs', 'clj', 'cljc', 'cljx', 'edn'],\n\t},\n\tcoffeescript: {\n\t\texts: ['coffee'],\n\t},\n\tcomments: {\n\t\texts: []\n\t},\n\tcpp: {\n\t\texts: ['cpp', 'c++', 'cc', 'cxx'],\n\t},\n\t'cpp-header': {\n\t\texts: ['hpp', 'h++', 'hh', 'hxx'],\n\t\tparent: 'cpp',\n\t},\n\tcrystal: {\n\t\texts: ['cr'],\n\t},\n\tcsharp: {\n\t\texts: ['cs'],\n\t},\n\tcsp: {\n\t\texts: [],\n\t},\n\t'css-extras': {\n\t\texts: [],\n\t},\n\tcss: {\n\t\texts: ['css', 'gss'],\n\t},\n\td: {\n\t\texts: ['d'],\n\t},\n\tdart: {\n\t\texts: ['dart'],\n\t},\n\tdiff: {\n\t\texts: ['diff', 'patch'],\n\t},\n\tdjango: {\n\t\texts: [],\n\t},\n\tdocker: {\n\t\texts: [],\n\t},\n\teiffel: {\n\t\texts: ['e'],\n\t},\n\telixir: {\n\t\texts: [],\n\t},\n\telm: {\n\t\texts: ['elm'],\n\t},\n\terb: {\n\t\texts: [],\n\t},\n\terlang: {\n\t\texts: ['erl', 'erlang'],\n\t},\n\tflow: {\n\t\texts: [],\n\t},\n\tfortran: {\n\t\texts: ['f', 'for', 'f77', 'f90'],\n\t},\n\tfsharp: {\n\t\texts: ['fs'],\n\t},\n\tgdscript: {\n\t\texts: ['gd'],\n\t},\n\tgedcom: {\n\t\texts: [],\n\t},\n\tgherkin: {\n\t\texts: ['feature'],\n\t},\n\tgit: {\n\t\texts: [],\n\t},\n\tglsl: {\n\t\texts: [],\n\t},\n\tgo: {\n\t\texts: ['go'],\n\t},\n\tgraphql: {\n\t\texts: ['graphql'],\n\t},\n\tgroovy: {\n\t\texts: ['groovy', 'gradle'],\n\t},\n\thaml: {\n\t\texts: ['haml'],\n\t},\n\thandlebars: {\n\t\texts: ['hb', 'hbs', 'handlebars'],\n\t},\n\thaskell: {\n\t\texts: ['hs', 'lhs '],\n\t},\n\thaxe: {\n\t\texts: ['hx', 'hxml'],\n\t},\n\thpkp: {\n\t\texts: [],\n\t},\n\thsts: {\n\t\texts: [],\n\t},\n\thttp: {\n\t\texts: [],\n\t},\n\tichigojam: {\n\t\texts: [],\n\t},\n\ticon: {\n\t\texts: [],\n\t},\n\tinform7: {\n\t\texts: [],\n\t},\n\tini: {\n\t\texts: ['ini'],\n\t},\n\tio: {\n\t\texts: [],\n\t},\n\tj: {\n\t\texts: [],\n\t},\n\tjava: {\n\t\texts: ['java'],\n\t},\n\tjavascript: {\n\t\texts: ['js', 'es', 'es6', 'mjs', 'cjs'],\n\t},\n\tjolie: {\n\t\texts: [],\n\t},\n\tjson: {\n\t\texts: ['json', 'map', 'jsonld'],\n\t},\n\tjsx: {\n\t\texts: ['jsx'],\n\t},\n\tjulia: {\n\t\texts: ['jl'],\n\t},\n\tkeymap: {\n\t\texts: [],\n\t},\n\tkotlin: {\n\t\texts: ['kt', 'kts'],\n\t},\n\tlatex: {\n\t\texts: ['tex'],\n\t},\n\tless: {\n\t\texts: ['less'],\n\t},\n\tliquid: {\n\t\texts: [],\n\t},\n\tlisp: {\n\t\texts: ['cl', 'lisp', 'el'],\n\t},\n\tlivescript: {\n\t\texts: ['ls'],\n\t},\n\tlolcode: {\n\t\texts: [],\n\t},\n\tlua: {\n\t\texts: ['lua'],\n\t},\n\tmakefile: {\n\t\texts: [],\n\t},\n\tmarkdown: {\n\t\texts: ['md', 'markdown', 'mkd', 'txt'],\n\t},\n\tmarkup: {\n\t\texts: ['html', 'htm', 'xml', 'xsl', 'xslt', 'svg', 'vue', 'ejs', 'jsp'],\n\t},\n\tmatlab: {\n\t\texts: [],\n\t},\n\tmel: {\n\t\texts: [],\n\t},\n\tmizar: {\n\t\texts: [],\n\t},\n\tmonkey: {\n\t\texts: [],\n\t},\n\tn4js: {\n\t\texts: [],\n\t},\n\tnasm: {\n\t\texts: [],\n\t},\n\tnginx: {\n\t\texts: [],\n\t},\n\tnim: {\n\t\texts: [],\n\t},\n\tnix: {\n\t\texts: [],\n\t},\n\tnsis: {\n\t\texts: ['nsh', 'nsi'],\n\t},\n\tobjectivec: {\n\t\texts: ['m', 'mm'],\n\t},\n\tocaml: {\n\t\texts: ['ocaml', 'ml', 'mli', 'mll', 'mly'],\n\t},\n\topencl: {\n\t\texts: [],\n\t},\n\toz: {\n\t\texts: ['oz'],\n\t},\n\tparigp: {\n\t\texts: [],\n\t},\n\tpascal: {\n\t\texts: ['pas', 'p'],\n\t},\n\tperl: {\n\t\texts: ['pl', 'pm'],\n\t},\n\tphp: {\n\t\texts: ['php', 'phtml'],\n\t},\n\tplsql: {\n\t\texts: ['plsql'],\n\t},\n\tpowershell: {\n\t\texts: ['ps1', 'psd1', 'psm1'],\n\t},\n\tprocessing: {\n\t\texts: [],\n\t},\n\tprolog: {\n\t\texts: ['pro'],\n\t},\n\tproperties: {\n\t\texts: ['properties'],\n\t},\n\tprotobuf: {\n\t\texts: ['proto'],\n\t},\n\tpug: {\n\t\texts: ['pug', 'jade'],\n\t},\n\tpuppet: {\n\t\texts: ['pp', 'puppet'],\n\t},\n\tpure: {\n\t\texts: [],\n\t},\n\tpython: {\n\t\texts: ['py', 'pyx', 'pxd', 'pxi'],\n\t},\n\tq: {\n\t\texts: ['q'],\n\t},\n\tqore: {\n\t\texts: [],\n\t},\n\tr: {\n\t\texts: ['r', 'R'],\n\t},\n\treason: {\n\t\texts: [],\n\t},\n\trenpy: {\n\t\texts: [],\n\t},\n\trest: {\n\t\texts: [],\n\t},\n\trip: {\n\t\texts: [],\n\t},\n\troboconf: {\n\t\texts: [],\n\t},\n\truby: {\n\t\texts: ['rb'],\n\t},\n\trust: {\n\t\texts: ['rs'],\n\t},\n\tsas: {\n\t\texts: ['sas'],\n\t},\n\tsass: {\n\t\texts: ['sass'],\n\t},\n\tscala: {\n\t\texts: ['scala'],\n\t},\n\tscheme: {\n\t\texts: ['scm', 'ss'],\n\t},\n\tscss: {\n\t\texts: ['scss'],\n\t},\n\tsmalltalk: {\n\t\texts: ['st'],\n\t},\n\tsmarty: {\n\t\texts: ['smarty', 'tpl'],\n\t},\n\tsoy: {\n\t\texts: ['soy'],\n\t},\n\tsql: {\n\t\texts: ['sql', 'cql'],\n\t},\n\tstylus: {\n\t\texts: ['styl', 'stylus'],\n\t},\n\tswift: {\n\t\texts: ['swift'],\n\t},\n\ttap: {\n\t\texts: ['tap'],\n\t},\n\ttcl: {\n\t\texts: ['tcl'],\n\t},\n\ttextile: {\n\t\texts: ['textile'],\n\t},\n\ttsx: {\n\t\texts: ['tsx'],\n\t},\n\ttt2: {\n\t\texts: ['tt2'],\n\t},\n\ttwig: {\n\t\texts: ['twig'],\n\t},\n\ttypescript: {\n\t\texts: ['ts', 'mts', 'cts'],\n\t},\n\tvbnet: {\n\t\texts: ['vb'],\n\t},\n\tvelocity: {\n\t\texts: ['vtl'],\n\t},\n\tverilog: {\n\t\texts: ['v'],\n\t},\n\tvhdl: {\n\t\texts: ['vhd', 'vhdl'],\n\t},\n\tvim: {\n\t\texts: [],\n\t},\n\t'visual-basic': {\n\t\texts: ['vb'],\n\t},\n\twasm: {\n\t\texts: [],\n\t},\n\turl: {\n\t\texts: [],\n\t},\n\twiki: {\n\t\texts: [],\n\t},\n\txeora: {\n\t\texts: [],\n\t},\n\txojo: {\n\t\texts: [],\n\t},\n\txquery: {\n\t\texts: ['xy', 'xquery'],\n\t},\n\tyaml: {\n\t\texts: ['yaml', 'yml'],\n\t},\n};\n\nexport function getSupportedFormats(): string[] {\n\treturn Object.keys(FORMATS).filter((name) => name !== 'important' && name !== 'url');\n}\n\nexport function getFormatByFile(path: string, formatsExts?: { [key: string]: string[] }): string | undefined {\n\tconst ext: string = extname(path).slice(1);\n\tif (formatsExts && Object.keys(formatsExts).length) {\n\t\treturn Object.keys(formatsExts).find((format) => formatsExts[format]?.includes(ext));\n\t}\n\treturn Object.keys(FORMATS).find((language) => FORMATS[language]?.exts.includes(ext));\n}\n","import SparkMD5 from \"spark-md5\";\n\nexport function hash(value: string): string {\n\treturn SparkMD5.hash(value);\n}\n","// @ts-nocheck\n\nimport {hash} from './hash';\nimport {IMapFrame, IToken, ITokensMap} from '@jscpd/core';\n\nconst TOKEN_HASH_LENGTH = 20;\n\nfunction createTokenHash(token: IToken, hashFunction: (value: string) => string | undefined = undefined): string {\n\treturn hashFunction ?\n\t\thashFunction(token.type + token.value).substr(0, TOKEN_HASH_LENGTH) :\n\t\thash(token.type + token.value).substr(0, TOKEN_HASH_LENGTH);\n}\n\nfunction groupByFormat(tokens: IToken[]): { [key: string]: IToken[] } {\n\tconst result: { [key: string]: IToken[] } = {};\n\t// TODO change to reduce\n\ttokens.forEach((token: IToken) => {\n\t\t(result[token.format] = result[token.format] ? [...result[token.format], token] : [token])\n\t});\n\treturn result;\n}\n\nexport class TokensMap implements ITokensMap, Iterator, Iterable {\n\tprivate position = 0;\n\tprivate hashMap: string;\n\n\tconstructor(\n private readonly id: string,\n private readonly data: string,\n private readonly tokens: IToken[],\n private readonly format: string,\n private readonly options) {\n this.hashMap = this.tokens.map((token) => {\n if (options.ignoreCase) {\n token.value = token.value.toLocaleLowerCase()\n }\n return createTokenHash(token, this.options.hashFunction)\n }).join('');\n }\n\n public getTokensCount(): number {\n return this.tokens[this.tokens.length - 1].loc.end.position - this.tokens[0].loc.start.position;\n }\n\n public getId(): string {\n return this.id;\n }\n\n public getLinesCount(): number {\n return this.tokens[this.tokens.length - 1].loc.end.line - this.tokens[0].loc.start.line;\n }\n\n public getFormat(): string {\n\t\treturn this.format;\n\t}\n\n\tpublic [Symbol.iterator](): Iterator {\n\t\treturn this;\n\t}\n\n\tpublic next(): IteratorResult {\n\t\tconst hashFunction: (value: string) => string = this.options.hashFunction ? this.options.hashFunction : hash;\n\t\tconst mapFrame: string = hashFunction(\n\t\t\tthis.hashMap.substring(\n\t\t\t\tthis.position * TOKEN_HASH_LENGTH,\n\t\t\t\tthis.position * TOKEN_HASH_LENGTH + this.options.minTokens * TOKEN_HASH_LENGTH,\n\t\t\t),\n\t\t).substring(0, TOKEN_HASH_LENGTH);\n\n\t\tif (this.position < this.tokens.length - this.options.minTokens) {\n\t\t\tthis.position++;\n\t\t\treturn {\n\t\t\t\tdone: false,\n\t\t\t\tvalue: {\n\t\t\t\t\tid: mapFrame,\n\t\t\t\t\tsourceId: this.getId(),\n\t\t\t\t\tstart: this.tokens[this.position - 1],\n\t\t\t\t\tend: this.tokens[this.position + this.options.minTokens - 1],\n\t\t\t\t},\n\t\t\t};\n\n\t\t} else {\n\t\t\treturn {\n\t\t\t\tdone: true,\n\t\t\t\tvalue: false,\n\t\t\t};\n\t\t}\n\t}\n}\n\nexport function generateMapsForFormats(id: string, data: string, tokens: IToken[], options): TokensMap[] {\n return Object\n .values(groupByFormat(tokens))\n .map((formatTokens: IToken[]) => new TokensMap(id, data, formatTokens, formatTokens[0].format, options));\n}\n\nexport function createTokensMaps(id: string, data: string, tokens: IToken[], options): TokensMap[] {\n return generateMapsForFormats(id, data, tokens, options);\n}\n","// @ts-nocheck\nimport * as reprism from 'reprism';\nimport * as abap from 'reprism/languages/abap';\nimport * as actionscript from 'reprism/languages/actionscript';\nimport * as ada from 'reprism/languages/ada';\nimport * as apacheconf from 'reprism/languages/apacheconf';\nimport * as apl from 'reprism/languages/apl';\nimport * as applescript from 'reprism/languages/applescript';\nimport * as arff from 'reprism/languages/arff';\nimport * as asciidoc from 'reprism/languages/asciidoc';\nimport * as asm6502 from 'reprism/languages/asm6502';\nimport * as aspnet from 'reprism/languages/aspnet';\nimport * as autohotkey from 'reprism/languages/autohotkey';\nimport * as autoit from 'reprism/languages/autoit';\nimport * as bash from 'reprism/languages/bash';\nimport * as basic from 'reprism/languages/basic';\nimport * as batch from 'reprism/languages/batch';\nimport * as brainfuck from 'reprism/languages/brainfuck';\nimport * as bro from 'reprism/languages/bro';\nimport * as c from 'reprism/languages/c';\nimport * as clike from 'reprism/languages/clike';\nimport * as clojure from 'reprism/languages/clojure';\nimport * as coffeescript from 'reprism/languages/coffeescript';\nimport * as cpp from 'reprism/languages/cpp';\nimport * as csharp from 'reprism/languages/csharp';\nimport * as csp from 'reprism/languages/csp';\nimport * as cssExtras from 'reprism/languages/css-extras';\nimport * as css from 'reprism/languages/css';\nimport * as d from 'reprism/languages/d';\nimport * as dart from 'reprism/languages/dart';\nimport * as diff from 'reprism/languages/diff';\nimport * as django from 'reprism/languages/django';\nimport * as docker from 'reprism/languages/docker';\nimport * as eiffel from 'reprism/languages/eiffel';\nimport * as elixir from 'reprism/languages/elixir';\nimport * as erlang from 'reprism/languages/erlang';\nimport * as flow from 'reprism/languages/flow';\nimport * as fortran from 'reprism/languages/fortran';\nimport * as fsharp from 'reprism/languages/fsharp';\nimport * as gedcom from 'reprism/languages/gedcom';\nimport * as gherkin from 'reprism/languages/gherkin';\nimport * as git from 'reprism/languages/git';\nimport * as glsl from 'reprism/languages/glsl';\nimport * as go from 'reprism/languages/go';\nimport * as graphql from 'reprism/languages/graphql';\nimport * as groovy from 'reprism/languages/groovy';\nimport * as haml from 'reprism/languages/haml';\nimport * as handlebars from 'reprism/languages/handlebars';\nimport * as haskell from 'reprism/languages/haskell';\nimport * as haxe from 'reprism/languages/haxe';\nimport * as hpkp from 'reprism/languages/hpkp';\nimport * as hsts from 'reprism/languages/hsts';\nimport * as http from 'reprism/languages/http';\nimport * as ichigojam from 'reprism/languages/ichigojam';\nimport * as icon from 'reprism/languages/icon';\nimport * as inform7 from 'reprism/languages/inform7';\nimport * as ini from 'reprism/languages/ini';\nimport * as io from 'reprism/languages/io';\nimport * as j from 'reprism/languages/j';\nimport * as java from 'reprism/languages/java';\nimport * as javascript from 'reprism/languages/javascript';\nimport * as jolie from 'reprism/languages/jolie';\nimport * as json from 'reprism/languages/json';\nimport * as jsx from 'reprism/languages/jsx';\nimport * as julia from 'reprism/languages/julia';\nimport * as keyman from 'reprism/languages/keyman';\nimport * as kotlin from 'reprism/languages/kotlin';\nimport * as latex from 'reprism/languages/latex';\nimport * as less from 'reprism/languages/less';\nimport * as liquid from 'reprism/languages/liquid';\nimport * as lisp from 'reprism/languages/lisp';\nimport * as livescript from 'reprism/languages/livescript';\nimport * as lolcode from 'reprism/languages/lolcode';\nimport * as lua from 'reprism/languages/lua';\nimport * as makefile from 'reprism/languages/makefile';\nimport * as markdown from 'reprism/languages/markdown';\nimport * as markupTemplating from 'reprism/languages/markup-templating';\nimport * as markup from 'reprism/languages/markup';\nimport * as matlab from 'reprism/languages/matlab';\nimport * as mel from 'reprism/languages/mel';\nimport * as mizar from 'reprism/languages/mizar';\nimport * as monkey from 'reprism/languages/monkey';\nimport * as n4js from 'reprism/languages/n4js';\nimport * as nasm from 'reprism/languages/nasm';\nimport * as nginx from 'reprism/languages/nginx';\nimport * as nim from 'reprism/languages/nim';\nimport * as nix from 'reprism/languages/nix';\nimport * as nsis from 'reprism/languages/nsis';\nimport * as objectivec from 'reprism/languages/objectivec';\nimport * as ocaml from 'reprism/languages/ocaml';\nimport * as opencl from 'reprism/languages/opencl';\nimport * as oz from 'reprism/languages/oz';\nimport * as parigp from 'reprism/languages/parigp';\nimport * as parser from 'reprism/languages/parser';\nimport * as pascal from 'reprism/languages/pascal';\nimport * as perl from 'reprism/languages/perl';\nimport * as phpExtras from 'reprism/languages/php-extras';\nimport * as php from 'reprism/languages/php';\nimport * as powershell from 'reprism/languages/powershell';\nimport * as processing from 'reprism/languages/processing';\nimport * as prolog from 'reprism/languages/prolog';\nimport * as properties from 'reprism/languages/properties';\nimport * as protobuf from 'reprism/languages/protobuf';\nimport * as pug from 'reprism/languages/pug';\nimport * as puppet from 'reprism/languages/puppet';\nimport * as pure from 'reprism/languages/pure';\nimport * as python from 'reprism/languages/python';\nimport * as q from 'reprism/languages/q';\nimport * as qore from 'reprism/languages/qore';\nimport * as r from 'reprism/languages/r';\nimport * as reason from 'reprism/languages/reason';\nimport * as renpy from 'reprism/languages/renpy';\nimport * as rest from 'reprism/languages/rest';\nimport * as rip from 'reprism/languages/rip';\nimport * as roboconf from 'reprism/languages/roboconf';\nimport * as ruby from 'reprism/languages/ruby';\nimport * as rust from 'reprism/languages/rust';\nimport * as sas from 'reprism/languages/sas';\nimport * as sass from 'reprism/languages/sass';\nimport * as scala from 'reprism/languages/scala';\nimport * as scheme from 'reprism/languages/scheme';\nimport * as scss from 'reprism/languages/scss';\nimport * as smalltalk from 'reprism/languages/smalltalk';\nimport * as smarty from 'reprism/languages/smarty';\nimport * as soy from 'reprism/languages/soy';\nimport * as stylus from 'reprism/languages/stylus';\nimport * as swift from 'reprism/languages/swift';\nimport * as tcl from 'reprism/languages/tcl';\nimport * as textile from 'reprism/languages/textile';\nimport * as tsx from 'reprism/languages/tsx';\nimport * as twig from 'reprism/languages/twig';\nimport * as typescript from 'reprism/languages/typescript';\nimport * as vbnet from 'reprism/languages/vbnet';\nimport * as velocity from 'reprism/languages/velocity';\nimport * as verilog from 'reprism/languages/verilog';\nimport * as vhdl from 'reprism/languages/vhdl';\nimport * as vim from 'reprism/languages/vim';\nimport * as visualBasic from 'reprism/languages/visual-basic';\nimport * as wasm from 'reprism/languages/wasm';\nimport * as wiki from 'reprism/languages/wiki';\nimport * as xeora from 'reprism/languages/xeora';\nimport * as xojo from 'reprism/languages/xojo';\nimport * as yaml from 'reprism/languages/yaml';\nimport * as tap from './languages/tap';\nimport * as sql from './languages/sql';\nimport * as plsql from './languages/plsql';\nimport * as gdscript from './languages/gdscript';\n\nexport const languages = {\n abap, actionscript, ada, apacheconf, apl, applescript, arff,\n asciidoc, asm6502, aspnet, autohotkey, autoit, bash, basic, batch,\n brainfuck, bro, c, clike, clojure, coffeescript, cpp, csharp, csp, cssExtras,\n css, d, dart, diff, django, docker, eiffel, elixir, erlang, flow, fortran, fsharp,\n gedcom, gherkin, git, glsl, go, graphql, groovy, haml, handlebars, haskell, haxe,\n hpkp, hsts, http, ichigojam, icon, inform7, ini, io, j, java, javascript, jolie,\n json, jsx, julia, keyman, kotlin, latex, less, liquid, lisp, livescript,\n lolcode, lua, makefile, markdown, markupTemplating, markup, matlab, mel, mizar,\n monkey, n4js, nasm, nginx, nim, nix, nsis, objectivec, ocaml, opencl, oz, parigp,\n parser, pascal, perl, php, phpExtras, powershell, processing, prolog,\n properties, protobuf, pug, puppet, pure, python, q, qore, r, reason, renpy, rest,\n rip, roboconf, ruby, rust, sas, sass, scala, scheme, scss, smalltalk, smarty, soy,\n stylus, swift, tcl, textile, twig, typescript, vbnet, velocity, verilog, vhdl,\n vim, visualBasic, wasm, wiki, xeora, xojo, yaml, tsx, sql, plsql, tap, gdscript\n};\n\nexport const loadLanguages = (): void => {\n reprism.loadLanguages(Object.values(languages).map(v => v.default));\n}\n\n","const grammar = {\n language: 'tap',\n init(Prism: any) {\n Prism.languages.tap = {\n fail: /not ok[^#{\\n\\r]*/,\n pass: /ok[^#{\\n\\r]*/,\n pragma: /pragma [+-][a-z]+/,\n bailout: /bail out!.*/i,\n version: /TAP version \\d+/i,\n plan: /\\d+\\.\\.\\d+(?: +#.*)?/,\n subtest: {\n pattern: /# Subtest(?:: .*)?/,\n greedy: true\n },\n punctuation: /[{}]/,\n directive: /#.*/,\n yamlish: {\n pattern: /(^[ \\t]*)---[\\s\\S]*?[\\r\\n][ \\t]*\\.\\.\\.$/m,\n lookbehind: true,\n inside: Prism.languages.yaml,\n alias: 'language-yaml'\n }\n };\n },\n}\nexport default grammar;\n","const grammar = {\n language: 'sql',\n init(Prism: any) {\n Prism.languages.sql = {\n 'comment': {\n pattern: /(^|[^\\\\])(?:\\/\\*[\\s\\S]*?\\*\\/|(?:--|\\/\\/|#).*)/,\n lookbehind: true,\n },\n 'variable': [\n {\n pattern: /@([\"'`])(?:\\\\[\\s\\S]|(?!\\1)[^\\\\])+\\1/,\n greedy: true,\n },\n /@[\\w.$]+/,\n ],\n 'string': {\n pattern: /(^|[^@\\\\])(\"|')(?:\\\\[\\s\\S]|(?!\\2)[^\\\\]|\\2\\2)*\\2/,\n greedy: true,\n lookbehind: true,\n },\n 'function': /\\b(?:AVG|COUNT|FIRST|FORMAT|LAST|LCASE|LEN|MAX|MID|MIN|MOD|NOW|ROUND|SUM|UCASE)(?=\\s*\\()/i, // Should we highlight user defined functions too?\n 'keyword': /\\b(?:ACTION|ADD|AFTER|ALGORITHM|ALL|ALTER|ANALYZE|ANY|APPLY|AS|ASC|AUTHORIZATION|AUTO_INCREMENT|BACKUP|BDB|BEGIN|BERKELEYDB|BIGINT|BINARY|BIT|BLOB|BOOL|BOOLEAN|BREAK|BROWSE|BTREE|BULK|BY|CALL|CASCADED?|CASE|CHAIN|CHAR(?:ACTER|SET)?|CHECK(?:POINT)?|CLOSE|CLUSTERED|COALESCE|COLLATE|COLUMNS?|COMMENT|COMMIT(?:TED)?|COMPUTE|CONNECT|CONSISTENT|CONSTRAINT|CONTAINS(?:TABLE)?|CONTINUE|CONVERT|CREATE|CROSS|CURRENT(?:_DATE|_TIME|_TIMESTAMP|_USER)?|CURSOR|CYCLE|DATA(?:BASES?)?|DATE(?:TIME)?|DAY|DBCC|DEALLOCATE|DEC|DECIMAL|DECLARE|DEFAULT|DEFINER|DELAYED|DELETE|DELIMITERS?|DENY|DESC|DESCRIBE|DETERMINISTIC|DISABLE|DISCARD|DISK|DISTINCT|DISTINCTROW|DISTRIBUTED|DO|DOUBLE|DROP|DUMMY|DUMP(?:FILE)?|DUPLICATE|ELSE(?:IF)?|ENABLE|ENCLOSED|END|ENGINE|ENUM|ERRLVL|ERRORS|ESCAPED?|EXCEPT|EXEC(?:UTE)?|EXISTS|EXIT|EXPLAIN|EXTENDED|FETCH|FIELDS|FILE|FILLFACTOR|FIRST|FIXED|FLOAT|FOLLOWING|FOR(?: EACH ROW)?|FORCE|FOREIGN|FREETEXT(?:TABLE)?|FROM|FULL|FUNCTION|GEOMETRY(?:COLLECTION)?|GLOBAL|GOTO|GRANT|GROUP|HANDLER|HASH|HAVING|HOLDLOCK|HOUR|IDENTITY(?:_INSERT|COL)?|IF|IGNORE|IMPORT|INDEX|INFILE|INNER|INNODB|INOUT|INSERT|INT|INTEGER|INTERSECT|INTERVAL|INTO|INVOKER|ISOLATION|ITERATE|JOIN|KEYS?|KILL|LANGUAGE|LAST|LEAVE|LEFT|LEVEL|LIMIT|LINENO|LINES|LINESTRING|LOAD|LOCAL|LOCK|LONG(?:BLOB|TEXT)|LOOP|MATCH(?:ED)?|MEDIUM(?:BLOB|INT|TEXT)|MERGE|MIDDLEINT|MINUTE|MODE|MODIFIES|MODIFY|MONTH|MULTI(?:LINESTRING|POINT|POLYGON)|NATIONAL|NATURAL|NCHAR|NEXT|NO|NONCLUSTERED|NULLIF|NUMERIC|OFF?|OFFSETS?|ON|OPEN(?:DATASOURCE|QUERY|ROWSET)?|OPTIMIZE|OPTION(?:ALLY)?|ORDER|OUT(?:ER|FILE)?|OVER|PARTIAL|PARTITION|PERCENT|PIVOT|PLAN|POINT|POLYGON|PRECEDING|PRECISION|PREPARE|PREV|PRIMARY|PRINT|PRIVILEGES|PROC(?:EDURE)?|PUBLIC|PURGE|QUICK|RAISERROR|READS?|REAL|RECONFIGURE|REFERENCES|RELEASE|RENAME|REPEAT(?:ABLE)?|REPLACE|REPLICATION|REQUIRE|RESIGNAL|RESTORE|RESTRICT|RETURNS?|REVOKE|RIGHT|ROLLBACK|ROUTINE|ROW(?:COUNT|GUIDCOL|S)?|RTREE|RULE|SAVE(?:POINT)?|SCHEMA|SECOND|SELECT|SERIAL(?:IZABLE)?|SESSION(?:_USER)?|SET(?:USER)?|SHARE|SHOW|SHUTDOWN|SIMPLE|SMALLINT|SNAPSHOT|SOME|SONAME|SQL|START(?:ING)?|STATISTICS|STATUS|STRIPED|SYSTEM_USER|TABLES?|TABLESPACE|TEMP(?:ORARY|TABLE)?|TERMINATED|TEXT(?:SIZE)?|THEN|TIME(?:STAMP)?|TINY(?:BLOB|INT|TEXT)|TOP?|TRAN(?:SACTIONS?)?|TRIGGER|TRUNCATE|TSEQUAL|TYPES?|UNBOUNDED|UNCOMMITTED|UNDEFINED|UNION|UNIQUE|UNLOCK|UNPIVOT|UNSIGNED|UPDATE(?:TEXT)?|USAGE|USE|USER|USING|VALUES?|VAR(?:BINARY|CHAR|CHARACTER|YING)|VIEW|WAITFOR|WARNINGS|WHEN|WHERE|WHILE|WITH(?: ROLLUP|IN)?|WORK|WRITE(?:TEXT)?|YEAR)\\b/i,\n 'boolean': /\\b(?:TRUE|FALSE|NULL)\\b/i,\n 'number': /\\b0x[\\da-f]+\\b|\\b\\d+\\.?\\d*|\\B\\.\\d+\\b/i,\n 'operator': /[-+*\\/=%^~]|&&?|\\|\\|?|!=?|<(?:=>?|<|>)?|>[>=]?|\\b(?:AND|BETWEEN|IN|LIKE|NOT|OR|IS|DIV|REGEXP|RLIKE|SOUNDS LIKE|XOR)\\b/i,\n 'punctuation': /[;[\\]()`,.]/,\n };\n },\n}\nexport default grammar;\n","const grammar = {\n language: 'plsql',\n init(Prism: any) {\n Prism.languages.plsql = Prism.languages.extend('sql', {\n comment: [/\\/\\*[\\s\\S]*?\\*\\//, /--.*/],\n });\n\n if (Prism.util.type(Prism.languages.plsql.keyword) !== 'Array') {\n Prism.languages.plsql.keyword = [Prism.languages.plsql.keyword];\n }\n Prism.languages.plsql.keyword.unshift(/\\b(?:ACCESS|AGENT|AGGREGATE|ARRAY|ARROW|AT|ATTRIBUTE|AUDIT|AUTHID|BFILE_BASE|BLOB_BASE|BLOCK|BODY|BOTH|BOUND|BYTE|CALLING|CHAR_BASE|CHARSET(?:FORM|ID)|CLOB_BASE|COLAUTH|COLLECT|CLUSTERS?|COMPILED|COMPRESS|CONSTANT|CONSTRUCTOR|CONTEXT|CRASH|CUSTOMDATUM|DANGLING|DATE_BASE|DEFINE|DETERMINISTIC|DURATION|ELEMENT|EMPTY|EXCEPTIONS?|EXCLUSIVE|EXTERNAL|FINAL|FORALL|FORM|FOUND|GENERAL|HEAP|HIDDEN|IDENTIFIED|IMMEDIATE|INCLUDING|INCREMENT|INDICATOR|INDEXES|INDICES|INFINITE|INITIAL|ISOPEN|INSTANTIABLE|INTERFACE|INVALIDATE|JAVA|LARGE|LEADING|LENGTH|LIBRARY|LIKE[24C]|LIMITED|LONG|LOOP|MAP|MAXEXTENTS|MAXLEN|MEMBER|MINUS|MLSLABEL|MULTISET|NAME|NAN|NATIVE|NEW|NOAUDIT|NOCOMPRESS|NOCOPY|NOTFOUND|NOWAIT|NUMBER(?:_BASE)?|OBJECT|OCI(?:COLL|DATE|DATETIME|DURATION|INTERVAL|LOBLOCATOR|NUMBER|RAW|REF|REFCURSOR|ROWID|STRING|TYPE)|OFFLINE|ONLINE|ONLY|OPAQUE|OPERATOR|ORACLE|ORADATA|ORGANIZATION|ORL(?:ANY|VARY)|OTHERS|OVERLAPS|OVERRIDING|PACKAGE|PARALLEL_ENABLE|PARAMETERS?|PASCAL|PCTFREE|PIPE(?:LINED)?|PRAGMA|PRIOR|PRIVATE|RAISE|RANGE|RAW|RECORD|REF|REFERENCE|REM|REMAINDER|RESULT|RESOURCE|RETURNING|REVERSE|ROW(?:ID|NUM|TYPE)|SAMPLE|SB[124]|SEGMENT|SELF|SEPARATE|SEQUENCE|SHORT|SIZE(?:_T)?|SPARSE|SQL(?:CODE|DATA|NAME|STATE)|STANDARD|STATIC|STDDEV|STORED|STRING|STRUCT|STYLE|SUBMULTISET|SUBPARTITION|SUBSTITUTABLE|SUBTYPE|SUCCESSFUL|SYNONYM|SYSDATE|TABAUTH|TDO|THE|TIMEZONE_(?:ABBR|HOUR|MINUTE|REGION)|TRAILING|TRANSAC(?:TIONAL)?|TRUSTED|UB[124]|UID|UNDER|UNTRUSTED|VALIDATE|VALIST|VARCHAR2|VARIABLE|VARIANCE|VARRAY|VIEWS|VOID|WHENEVER|WRAPPED|ZONE)\\b/i);\n\n if (Prism.util.type(Prism.languages.plsql.operator) !== 'Array') {\n Prism.languages.plsql.operator = [Prism.languages.plsql.operator];\n }\n Prism.languages.plsql.operator.unshift(/:=/);\n },\n}\nexport default grammar;\n","const grammar = {\n language: 'gdscript',\n init(Prism: any) {\n Prism.languages.gdscript = {\n 'string': {\n pattern: /(\"\"\"|''')[\\s\\S]*?\\1|(\"|')(?:\\\\[\\s\\S]|(?!\\2)[^\\\\])*\\2/,\n greedy: true,\n },\n 'comment': {\n pattern: /#.*/,\n greedy: true,\n },\n 'annotation': {\n pattern: /@\\w+/,\n alias: 'decorator',\n },\n 'class-name': {\n pattern: /(\\b(?:class|class_name|extends|is)\\s+)\\w+/,\n lookbehind: true,\n },\n 'keyword': /\\b(?:and|as|assert|await|break|breakpoint|class|class_name|const|continue|elif|else|enum|export|extends|for|func|get|if|in|is|match|not|onready|or|pass|preload|print|remote|return|self|set|setget|signal|static|super|tool|var|while|yield)\\b/,\n 'function': {\n pattern: /(\\bfunc\\s+)\\w+/,\n lookbehind: true,\n },\n 'builtin': /\\b(?:bool|int|float|String|Vector2|Vector2i|Vector3|Vector3i|Vector4|Vector4i|Rect2|Rect2i|Transform2D|Transform3D|Plane|Quaternion|AABB|Basis|Projection|Color|NodePath|RID|Object|Callable|Signal|Dictionary|Array|PackedByteArray|PackedInt32Array|PackedInt64Array|PackedFloat32Array|PackedFloat64Array|PackedStringArray|PackedVector2Array|PackedVector3Array|PackedColorArray|null|true|false|PI|TAU|INF|NAN)\\b/,\n 'number': [\n // Hexadecimal\n /\\b0x[\\da-fA-F]+\\b/,\n // Binary\n /\\b0b[01]+\\b/,\n // Float with exponent or decimal\n /\\b\\d+(?:\\.\\d+)?(?:e[+-]?\\d+)?\\b/i,\n ],\n 'operator': /->|:=|&&|\\|\\||<<|>>|[-+*/%&|^~<>=!]=?|\\.{2,3}/,\n 'punctuation': /[{}[\\]();,.:]/,\n };\n },\n}\nexport default grammar;\n","import {IOptions, ITokenizer, ITokensMap} from '@jscpd/core';\nimport {createTokenMapBasedOnCode} from './tokenize';\n\nexport * from './interfaces';\nexport * from './tokenize';\nexport * from './token-map';\nexport * from './formats';\n\nexport class Tokenizer implements ITokenizer {\n generateMaps(id: string, data: string, format: string, options: Partial): ITokensMap[] {\n return createTokenMapBasedOnCode(id, data, format, options);\n }\n}\n"],"mappings":"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","names":["reprism","grammar","grammar","grammar","loadLanguages","loadLanguages","grammar"]}