@exercode/problem-utils 1.16.6 → 1.16.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/_virtual/_rolldown/runtime.cjs +1 -0
- package/dist/helpers/checkProblemDirIsolation.cjs +2 -2
- package/dist/helpers/checkProblemDirIsolation.cjs.map +1 -1
- package/dist/helpers/checkProblemDirIsolation.js +2 -2
- package/dist/helpers/checkProblemDirIsolation.js.map +1 -1
- package/dist/helpers/cleanWorkingDirectory.cjs +2 -2
- package/dist/helpers/cleanWorkingDirectory.cjs.map +1 -1
- package/dist/helpers/cleanWorkingDirectory.js +2 -2
- package/dist/helpers/cleanWorkingDirectory.js.map +1 -1
- package/dist/helpers/compareStdoutAsSpaceSeparatedTokens.cjs +2 -2
- package/dist/helpers/compareStdoutAsSpaceSeparatedTokens.cjs.map +1 -1
- package/dist/helpers/compareStdoutAsSpaceSeparatedTokens.js +2 -2
- package/dist/helpers/compareStdoutAsSpaceSeparatedTokens.js.map +1 -1
- package/dist/helpers/copyTestCaseFileInput.cjs +2 -2
- package/dist/helpers/copyTestCaseFileInput.cjs.map +1 -1
- package/dist/helpers/copyTestCaseFileInput.js +2 -2
- package/dist/helpers/copyTestCaseFileInput.js.map +1 -1
- package/dist/helpers/findEntryPointFile.cjs +2 -2
- package/dist/helpers/findEntryPointFile.cjs.map +1 -1
- package/dist/helpers/findEntryPointFile.js +2 -2
- package/dist/helpers/findEntryPointFile.js.map +1 -1
- package/dist/helpers/findLanguageDefinitionByPath.cjs +2 -2
- package/dist/helpers/findLanguageDefinitionByPath.cjs.map +1 -1
- package/dist/helpers/findLanguageDefinitionByPath.js +2 -2
- package/dist/helpers/findLanguageDefinitionByPath.js.map +1 -1
- package/dist/helpers/findModelAnswerDirs.cjs +2 -2
- package/dist/helpers/findModelAnswerDirs.cjs.map +1 -1
- package/dist/helpers/findModelAnswerDirs.js +2 -2
- package/dist/helpers/findModelAnswerDirs.js.map +1 -1
- package/dist/helpers/judgeByStaticAnalysis.cjs +19 -2
- package/dist/helpers/judgeByStaticAnalysis.cjs.map +1 -1
- package/dist/helpers/judgeByStaticAnalysis.js +19 -2
- package/dist/helpers/judgeByStaticAnalysis.js.map +1 -1
- package/dist/helpers/parseArgs.cjs +2 -2
- package/dist/helpers/parseArgs.cjs.map +1 -1
- package/dist/helpers/parseArgs.js +2 -2
- package/dist/helpers/parseArgs.js.map +1 -1
- package/dist/helpers/printDebugBanner.cjs +3 -2
- package/dist/helpers/printDebugBanner.cjs.map +1 -1
- package/dist/helpers/printDebugBanner.js +3 -2
- package/dist/helpers/printDebugBanner.js.map +1 -1
- package/dist/helpers/printTestCaseResult.cjs +2 -2
- package/dist/helpers/printTestCaseResult.cjs.map +1 -1
- package/dist/helpers/printTestCaseResult.js +2 -2
- package/dist/helpers/printTestCaseResult.js.map +1 -1
- package/dist/helpers/readOutputFiles.cjs +2 -2
- package/dist/helpers/readOutputFiles.cjs.map +1 -1
- package/dist/helpers/readOutputFiles.js +2 -2
- package/dist/helpers/readOutputFiles.js.map +1 -1
- package/dist/helpers/readProblemMarkdownFrontMatter.cjs +2 -2
- package/dist/helpers/readProblemMarkdownFrontMatter.cjs.map +1 -1
- package/dist/helpers/readProblemMarkdownFrontMatter.js +2 -2
- package/dist/helpers/readProblemMarkdownFrontMatter.js.map +1 -1
- package/dist/helpers/readTestCases.cjs +2 -2
- package/dist/helpers/readTestCases.cjs.map +1 -1
- package/dist/helpers/readTestCases.js +2 -2
- package/dist/helpers/readTestCases.js.map +1 -1
- package/dist/helpers/removeCommentsInSourceCode.cjs +6 -2
- package/dist/helpers/removeCommentsInSourceCode.cjs.map +1 -1
- package/dist/helpers/removeCommentsInSourceCode.js +6 -2
- package/dist/helpers/removeCommentsInSourceCode.js.map +1 -1
- package/dist/helpers/resolveCwds.cjs +2 -2
- package/dist/helpers/resolveCwds.cjs.map +1 -1
- package/dist/helpers/resolveCwds.js +2 -2
- package/dist/helpers/resolveCwds.js.map +1 -1
- package/dist/helpers/runCommandInTemporaryPackageManagerProject.cjs +2 -2
- package/dist/helpers/runCommandInTemporaryPackageManagerProject.cjs.map +1 -1
- package/dist/helpers/runCommandInTemporaryPackageManagerProject.js +2 -2
- package/dist/helpers/runCommandInTemporaryPackageManagerProject.js.map +1 -1
- package/dist/helpers/runPythonInTemporaryUvProject.cjs +2 -2
- package/dist/helpers/runPythonInTemporaryUvProject.cjs.map +1 -1
- package/dist/helpers/runPythonInTemporaryUvProject.js +2 -2
- package/dist/helpers/runPythonInTemporaryUvProject.js.map +1 -1
- package/dist/helpers/sourceCodeGrammars.cjs +2 -2
- package/dist/helpers/sourceCodeGrammars.cjs.map +1 -1
- package/dist/helpers/sourceCodeGrammars.js +2 -2
- package/dist/helpers/sourceCodeGrammars.js.map +1 -1
- package/dist/helpers/spawnSyncWithTimeout.cjs +2 -2
- package/dist/helpers/spawnSyncWithTimeout.cjs.map +1 -1
- package/dist/helpers/spawnSyncWithTimeout.js +2 -2
- package/dist/helpers/spawnSyncWithTimeout.js.map +1 -1
- package/dist/helpers/startHttpServer.cjs +2 -2
- package/dist/helpers/startHttpServer.cjs.map +1 -1
- package/dist/helpers/startHttpServer.js +2 -2
- package/dist/helpers/startHttpServer.js.map +1 -1
- package/dist/index.cjs +1 -2
- package/dist/index.js +1 -2
- package/dist/presets/command.cjs +2 -2
- package/dist/presets/command.cjs.map +1 -1
- package/dist/presets/command.js +2 -2
- package/dist/presets/command.js.map +1 -1
- package/dist/presets/guiCommand.cjs +4 -2
- package/dist/presets/guiCommand.cjs.map +1 -1
- package/dist/presets/guiCommand.js +4 -2
- package/dist/presets/guiCommand.js.map +1 -1
- package/dist/presets/llm.cjs +2 -2
- package/dist/presets/llm.cjs.map +1 -1
- package/dist/presets/llm.js +2 -2
- package/dist/presets/llm.js.map +1 -1
- package/dist/presets/stdio.cjs +2 -2
- package/dist/presets/stdio.cjs.map +1 -1
- package/dist/presets/stdio.js +2 -2
- package/dist/presets/stdio.js.map +1 -1
- package/dist/types/decisionCode.cjs +2 -2
- package/dist/types/decisionCode.cjs.map +1 -1
- package/dist/types/decisionCode.js +2 -2
- package/dist/types/decisionCode.js.map +1 -1
- package/dist/types/language.cjs +11 -2
- package/dist/types/language.cjs.map +1 -1
- package/dist/types/language.js +11 -2
- package/dist/types/language.js.map +1 -1
- package/dist/types/problem.cjs +2 -2
- package/dist/types/problem.cjs.map +1 -1
- package/dist/types/problem.js +2 -2
- package/dist/types/problem.js.map +1 -1
- package/dist/types/testCaseResult.cjs +2 -2
- package/dist/types/testCaseResult.cjs.map +1 -1
- package/dist/types/testCaseResult.js +2 -2
- package/dist/types/testCaseResult.js.map +1 -1
- package/package.json +16 -16
- package/dist/_virtual/_rollupPluginBabelHelpers.cjs +0 -4
- package/dist/_virtual/_rollupPluginBabelHelpers.cjs.map +0 -1
- package/dist/_virtual/_rollupPluginBabelHelpers.js +0 -4
- package/dist/_virtual/_rollupPluginBabelHelpers.js.map +0 -1
- package/dist/index.cjs.map +0 -1
- package/dist/index.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"language.cjs","sources":["../../src/types/language.ts"],"sourcesContent":["import fs from 'node:fs';\nimport path from 'node:path';\n\nimport { removeCommentsInSourceCode } from '../helpers/removeCommentsInSourceCode.js';\n\nexport interface LanguageDefinition {\n /** File extensions to judge with this config. */\n fileExtensions: readonly string[];\n\n /** Function executed before the build. */\n prebuild?(cwd: string): Promise<void>;\n\n /** Returns the command to build a user program. */\n buildCommand?(filePath: string): [string, ...string[]];\n\n /** Returns the command to run a user program. */\n command(filePath: string): [string, ...string[]];\n\n /** Grammer definition for static analysis. */\n grammer?: {\n strings?: readonly { open: RegExp; close: RegExp }[];\n comments?: readonly { open: RegExp; close?: RegExp }[];\n };\n}\n\nconst cLikeGrammer = {\n strings: [\n { open: /'/, close: /(?<!\\\\)(?:\\\\{2})*'/ },\n { open: /\"/, close: /(?<!\\\\)(?:\\\\{2})*\"/ },\n ],\n comments: [{ open: /\\n?[ \\t]*\\/\\*/, close: /\\*\\// }, { open: /\\n?[ \\t]*\\/\\// }],\n} as const satisfies LanguageDefinition['grammer'];\n\nconst javaScriptLikeGrammer = {\n strings: [\n { open: /'/, close: /(?<!\\\\)(?:\\\\{2})*'/ },\n { open: /\"/, close: /(?<!\\\\)(?:\\\\{2})*\"/ },\n { open: /`/, close: /(?<!\\\\)(?:\\\\{2})*`/ },\n ],\n comments: [{ open: /\\n?[ \\t]*\\/\\*/, close: /\\*\\// }, { open: /\\n?[ \\t]*\\/\\// }],\n} as const satisfies LanguageDefinition['grammer'];\n\nexport const languageIdToDefinition: Readonly<Record<string, Readonly<LanguageDefinition>>> = {\n c: {\n fileExtensions: ['.c'],\n buildCommand: (filePath) => ['gcc', '--std=c17', '-O2', filePath, '-o', 'main'],\n command: () => ['./main'],\n grammer: cLikeGrammer,\n },\n\n cpp: {\n fileExtensions: ['.cpp'],\n buildCommand: (filePath) => ['g++', '--std=c++20', '-O2', filePath, '-o', 'main'],\n command: () => ['./main'],\n grammer: cLikeGrammer,\n },\n\n csharp: {\n fileExtensions: ['.cs'],\n prebuild: async (cwd) => {\n await fs.promises.writeFile(\n path.join(cwd, 'Main.csproj'),\n `<Project Sdk=\"Microsoft.NET.Sdk\">\n <PropertyGroup>\n <OutputType>Exe</OutputType>\n <TargetFramework>net8.0</TargetFramework>\n <ImplicitUsings>enable</ImplicitUsings>\n <Nullable>enable</Nullable>\n <AllowUnsafeBlocks>true</AllowUnsafeBlocks>\n <AssemblyName>Main</AssemblyName>\n </PropertyGroup>\n</Project>`\n );\n },\n buildCommand: () => ['dotnet', 'build', 'Main.csproj', '--configuration', 'Release', '--verbosity', 'quiet'],\n command: () => ['dotnet', 'bin/Release/net8.0/Main.dll'],\n grammer: cLikeGrammer,\n },\n\n css: {\n fileExtensions: ['.css'],\n command: () => ['echo', ''],\n grammer: {\n strings: [\n { open: /'/, close: /(?<!\\\\)(?:\\\\{2})*'/ },\n { open: /\"/, close: /(?<!\\\\)(?:\\\\{2})*\"/ },\n ],\n comments: [{ open: /\\n?[ \\t]*\\/\\*/, close: /\\*\\// }],\n },\n },\n\n dart: {\n fileExtensions: ['.dart'],\n buildCommand: (filePath) => ['dart', 'compile', 'exe', filePath, '-o', 'main'],\n command: () => ['./main'],\n grammer: cLikeGrammer,\n },\n\n java: {\n fileExtensions: ['.java'],\n prebuild: async (cwd) => {\n const publicClassRegex = /\\bpublic\\s+class\\s+(\\w+)\\b/;\n for (const dirent of await fs.promises.readdir(cwd, { withFileTypes: true })) {\n if (!dirent.isFile() || !dirent.name.endsWith('.java')) continue;\n const data = await fs.promises.readFile(path.join(cwd, dirent.name), 'utf8');\n const [, className] = publicClassRegex.exec(removeCommentsInSourceCode(cLikeGrammer, data)) ?? [];\n if (className) await fs.promises.rename(path.join(cwd, dirent.name), path.join(cwd, `${className}.java`));\n }\n },\n buildCommand: (fileName) => ['javac', fileName],\n // For example, Problem 7-3 in WillBooster's Java lecture uses at least 256MB.\n command: (fileName) => ['java', '-Xmx1024m', fileName.replace(/\\.java$/, '')],\n grammer: cLikeGrammer,\n },\n\n javascript: {\n fileExtensions: ['.js', '.cjs', '.mjs'],\n command: (fileName) => ['bun', fileName],\n grammer: javaScriptLikeGrammer,\n },\n\n jsp: {\n fileExtensions: ['.jsp'],\n command: () => ['echo', ''],\n grammer: {\n strings: [\n { open: /'/, close: /(?<!\\\\)(?:\\\\{2})*'/ },\n { open: /\"/, close: /(?<!\\\\)(?:\\\\{2})*\"/ },\n ],\n comments: [\n { open: /\\n?[ \\t]*<!--/, close: /-->/ },\n { open: /\\n?[ \\t]*<%--/, close: /--%>/ },\n { open: /\\n?[ \\t]*\\/\\*/, close: /\\*\\// },\n { open: /\\n?[ \\t]*\\/\\// },\n ],\n },\n },\n\n haskell: {\n fileExtensions: ['.hs'],\n buildCommand: (filePath) => ['ghc', '-o', 'main', filePath],\n command: () => ['./main'],\n grammer: {\n strings: [\n { open: /'/, close: /(?<!\\\\)(?:\\\\{2})*'/ },\n { open: /\"/, close: /(?<!\\\\)(?:\\\\{2})*\"/ },\n ],\n comments: [{ open: /\\n?[ \\t]*\\{-/, close: /-\\}/ }, { open: /\\n?[ \\t]*--/ }],\n },\n },\n\n html: {\n fileExtensions: ['.html'],\n command: () => ['echo', ''],\n grammer: {\n strings: [\n { open: /'/, close: /(?<!\\\\)(?:\\\\{2})*'/ },\n { open: /\"/, close: /(?<!\\\\)(?:\\\\{2})*\"/ },\n ],\n comments: [{ open: /\\n?[ \\t]*<!--/, close: /-->/ }],\n },\n },\n\n php: {\n fileExtensions: ['.php'],\n command: (fileName) => ['php', fileName],\n grammer: {\n strings: [\n { open: /'/, close: /(?<!\\\\)(?:\\\\{2})*'/ },\n { open: /\"/, close: /(?<!\\\\)(?:\\\\{2})*\"/ },\n ],\n comments: [{ open: /\\n?[ \\t]*\\/\\*/, close: /\\*\\// }, { open: /\\n?[ \\t]*\\/\\// }, { open: /\\n?[ \\t]*#/ }],\n },\n },\n\n python: {\n fileExtensions: ['.py'],\n command: (fileName) => ['python3', fileName],\n grammer: {\n strings: [\n { open: /'''/, close: /(?<!\\\\)(?:\\\\{2})*'''/ },\n { open: /\"\"\"/, close: /(?<!\\\\)(?:\\\\{2})*\"\"\"/ },\n { open: /'/, close: /(?<!\\\\)(?:\\\\{2})*'/ },\n { open: /\"/, close: /(?<!\\\\)(?:\\\\{2})*\"/ },\n ],\n comments: [\n { open: /\\n?[ \\t]*'''/, close: /'''/ },\n { open: /\\n?[ \\t]*\"\"\"/, close: /\"\"\"/ },\n { open: /\\n?[ \\t]*#/ },\n ],\n },\n },\n\n ruby: {\n fileExtensions: ['.rb'],\n buildCommand: (fileName) => ['ruby', '-c', fileName],\n command: (fileName) => ['ruby', '--jit', fileName],\n grammer: {\n strings: [\n { open: /'/, close: /(?<!\\\\)(?:\\\\{2})*'/ },\n { open: /\"/, close: /(?<!\\\\)(?:\\\\{2})*\"/ },\n ],\n comments: [{ open: /\\n?[ \\t]*=begin/, close: /=end/ }, { open: /\\n?[ \\t]*#/ }],\n },\n },\n\n rust: {\n fileExtensions: ['.rs'],\n buildCommand: (filePath) => ['rustc', filePath, '-o', 'main'],\n command: () => ['./main'],\n grammer: cLikeGrammer,\n },\n\n zig: {\n fileExtensions: ['.zig'],\n buildCommand: (filePath) => ['zig', 'build-exe', filePath],\n command: (filePath) => ['./' + filePath.replace(/\\.zig$/, '')],\n grammer: cLikeGrammer,\n },\n\n typescript: {\n fileExtensions: ['.ts', '.cts', '.mts'],\n command: (fileName) => ['bun', fileName],\n grammer: javaScriptLikeGrammer,\n },\n\n text: {\n fileExtensions: ['.txt'],\n command: (fileName) => ['cat', fileName],\n },\n} as const;\n"],"names":["_prebuild2","_prebuild","cLikeGrammer","strings","open","close","comments","javaScriptLikeGrammer","languageIdToDefinition","c","fileExtensions","buildCommand","filePath","command","grammer","cpp","csharp","prebuild","_asyncToGenerator","_regenerator","m","_callee","cwd","w","_context","n","fs","promises","writeFile","path","join","a","_x","apply","this","arguments","css","dart","java","_callee2","publicClassRegex","_iterator","_step","_publicClassRegex$exe","dirent","data","_ref","_ref2","className","_t","_t2","_context2","p","_createForOfIteratorHelper","readdir","withFileTypes","v","s","done","value","isFile","name","endsWith","readFile","exec","removeCommentsInSourceCode","_slicedToArray","rename","concat","e","f","_x2","fileName","replace","javascript","jsp","haskell","html","php","python","ruby","rust","zig","typescript","text"],"mappings":"iBAoGYA,EAzCAC,4JAlCNC,EAAe,CACnBC,QAAS,CACP,CAAEC,KAAM,IAAKC,MAAO,sBACpB,CAAED,KAAM,IAAKC,MAAO,uBAEtBC,SAAU,CAAC,CAAEF,KAAM,gBAAiBC,MAAO,QAAU,CAAED,KAAM,mBAGzDG,EAAwB,CAC5BJ,QAAS,CACP,CAAEC,KAAM,IAAKC,MAAO,sBACpB,CAAED,KAAM,IAAKC,MAAO,sBACpB,CAAED,KAAM,IAAKC,MAAO,uBAEtBC,SAAU,CAAC,CAAEF,KAAM,gBAAiBC,MAAO,QAAU,CAAED,KAAM,mBAGlDI,EAAiF,CAC5FC,EAAG,CACDC,eAAgB,CAAC,MACjBC,aAAc,SAACC,GAAQ,MAAK,CAAC,MAAO,YAAa,MAAOA,EAAU,KAAM,OAAO,EAC/EC,QAAS,WAAF,MAAQ,CAAC,SAAS,EACzBC,QAASZ,GAGXa,IAAK,CACHL,eAAgB,CAAC,QACjBC,aAAc,SAACC,GAAQ,MAAK,CAAC,MAAO,cAAe,MAAOA,EAAU,KAAM,OAAO,EACjFC,QAAS,WAAF,MAAQ,CAAC,SAAS,EACzBC,QAASZ,GAGXc,OAAQ,CACNN,eAAgB,CAAC,OACjBO,UAAQhB,EAAAiB,EAAAA,iBAAAC,EAAAA,cAAAC,EAAE,SAAAC,EAAOC,GAAG,OAAAH,gBAAAI,EAAA,SAAAC,GAAA,cAAAA,EAAAC,GAAA,KAAA,EAAA,OAAAD,EAAAC,EAAA,EACZC,EAAGC,SAASC,UAChBC,EAAKC,KAAKR,EAAK,8VAWhB,KAAA,EAAA,OAAAE,EAAAO,EAAA,GAAA,EAAAV,EAAA,IACF,SAdOW,GAAA,OAAA/B,EAAAgC,MAAAC,KAAAC,UAAA,GAeRxB,aAAc,WAAF,MAAQ,CAAC,SAAU,QAAS,cAAe,kBAAmB,UAAW,cAAe,QAAQ,EAC5GE,QAAS,WAAF,MAAQ,CAAC,SAAU,8BAA8B,EACxDC,QAASZ,GAGXkC,IAAK,CACH1B,eAAgB,CAAC,QACjBG,QAAS,WAAF,MAAQ,CAAC,OAAQ,GAAG,EAC3BC,QAAS,CACPX,QAAS,CACP,CAAEC,KAAM,IAAKC,MAAO,sBACpB,CAAED,KAAM,IAAKC,MAAO,uBAEtBC,SAAU,CAAC,CAAEF,KAAM,gBAAiBC,MAAO,WAI/CgC,KAAM,CACJ3B,eAAgB,CAAC,SACjBC,aAAc,SAACC,GAAQ,MAAK,CAAC,OAAQ,UAAW,MAAOA,EAAU,KAAM,OAAO,EAC9EC,QAAS,WAAF,MAAQ,CAAC,SAAS,EACzBC,QAASZ,GAGXoC,KAAM,CACJ5B,eAAgB,CAAC,SACjBO,UAAQjB,EAAAkB,EAAAA,iBAAAC,EAAAA,cAAAC,EAAE,SAAAmB,EAAOjB,GAAG,IAAAkB,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAA,OAAA/B,gBAAAI,EAAA,SAAA4B,GAAA,cAAAA,EAAAC,EAAAD,EAAA1B,GAAA,KAAA,EACmC,OAA/Ce,EAAmB,6BAA4BS,EAAAI,EAAAA,0BAAAF,EAAA1B,EAAA,EAC1BC,EAAGC,SAAS2B,QAAQhC,EAAK,CAAEiC,eAAe,IAAO,KAAA,EAAAd,EAAAQ,EAAAE,EAAAK,GAAAL,EAAAC,EAAA,EAAAX,EAAAgB,IAAA,KAAA,EAAA,IAAAf,EAAAD,EAAAhB,KAAAiC,KAAA,CAAAP,EAAA1B,EAAA,EAAA,KAAA,CAA3D,IAANmB,EAAMF,EAAAiB,OACHC,UAAahB,EAAOiB,KAAKC,SAAS,SAAQ,CAAAX,EAAA1B,EAAA,EAAA,KAAA,CAAA,OAAA0B,EAAApB,EAAA,EAAA,GAAA,KAAA,EAAA,OAAAoB,EAAA1B,EAAA,EACnCC,EAAGC,SAASoC,SAASlC,EAAKC,KAAKR,EAAKsB,EAAOiB,MAAO,QAAO,KAAA,EAC1D,GADZhB,EAAIM,EAAAK,EAAAV,EACiF,OADjFH,EACYH,EAAiBwB,KAAKC,EAAAA,2BAA2B/D,EAAc2C,KAAMF,EAAI,GAAEI,EAAAmB,gBAAApB,EAAA,KAAxFE,EAASD,EAAA,IACL,CAAAI,EAAA1B,EAAA,EAAA,KAAA,CAAA,OAAA0B,EAAA1B,EAAA,EAAQC,EAAGC,SAASwC,OAAOtC,EAAKC,KAAKR,EAAKsB,EAAOiB,MAAOhC,EAAKC,KAAKR,EAAG,GAAA8C,OAAKpB,EAAS,WAAS,KAAA,EAAAG,EAAA1B,EAAA,EAAA,MAAA,KAAA,EAAA0B,EAAA1B,EAAA,EAAA,MAAA,KAAA,EAAA0B,EAAAC,EAAA,EAAAF,EAAAC,EAAAK,EAAAf,EAAA4B,EAAAnB,GAAA,KAAA,EAAA,OAAAC,EAAAC,EAAA,EAAAX,EAAA6B,IAAAnB,EAAAmB,EAAA,GAAA,KAAA,GAAA,OAAAnB,EAAApB,EAAA,GAAA,EAAAQ,EAAA,KAAA,CAAA,CAAA,EAAA,EAAA,EAAA,KAAA,IAE5G,SAROgC,GAAA,OAAAvE,EAAAiC,MAAAC,KAAAC,UAAA,GASRxB,aAAc,SAAC6D,GAAQ,MAAK,CAAC,QAASA,EAAS,EAE/C3D,QAAS,SAAC2D,GAAQ,MAAK,CAAC,OAAQ,YAAaA,EAASC,QAAQ,UAAW,IAAI,EAC7E3D,QAASZ,GAGXwE,WAAY,CACVhE,eAAgB,CAAC,MAAO,OAAQ,QAChCG,QAAS,SAAC2D,GAAQ,MAAK,CAAC,MAAOA,EAAS,EACxC1D,QAASP,GAGXoE,IAAK,CACHjE,eAAgB,CAAC,QACjBG,QAAS,WAAF,MAAQ,CAAC,OAAQ,GAAG,EAC3BC,QAAS,CACPX,QAAS,CACP,CAAEC,KAAM,IAAKC,MAAO,sBACpB,CAAED,KAAM,IAAKC,MAAO,uBAEtBC,SAAU,CACR,CAAEF,KAAM,gBAAiBC,MAAO,OAChC,CAAED,KAAM,gBAAiBC,MAAO,QAChC,CAAED,KAAM,gBAAiBC,MAAO,QAChC,CAAED,KAAM,oBAKdwE,QAAS,CACPlE,eAAgB,CAAC,OACjBC,aAAc,SAACC,GAAQ,MAAK,CAAC,MAAO,KAAM,OAAQA,EAAS,EAC3DC,QAAS,WAAF,MAAQ,CAAC,SAAS,EACzBC,QAAS,CACPX,QAAS,CACP,CAAEC,KAAM,IAAKC,MAAO,sBACpB,CAAED,KAAM,IAAKC,MAAO,uBAEtBC,SAAU,CAAC,CAAEF,KAAM,eAAgBC,MAAO,OAAS,CAAED,KAAM,kBAI/DyE,KAAM,CACJnE,eAAgB,CAAC,SACjBG,QAAS,WAAF,MAAQ,CAAC,OAAQ,GAAG,EAC3BC,QAAS,CACPX,QAAS,CACP,CAAEC,KAAM,IAAKC,MAAO,sBACpB,CAAED,KAAM,IAAKC,MAAO,uBAEtBC,SAAU,CAAC,CAAEF,KAAM,gBAAiBC,MAAO,UAI/CyE,IAAK,CACHpE,eAAgB,CAAC,QACjBG,QAAS,SAAC2D,GAAQ,MAAK,CAAC,MAAOA,EAAS,EACxC1D,QAAS,CACPX,QAAS,CACP,CAAEC,KAAM,IAAKC,MAAO,sBACpB,CAAED,KAAM,IAAKC,MAAO,uBAEtBC,SAAU,CAAC,CAAEF,KAAM,gBAAiBC,MAAO,QAAU,CAAED,KAAM,iBAAmB,CAAEA,KAAM,iBAI5F2E,OAAQ,CACNrE,eAAgB,CAAC,OACjBG,QAAS,SAAC2D,GAAQ,MAAK,CAAC,UAAWA,EAAS,EAC5C1D,QAAS,CACPX,QAAS,CACP,CAAEC,KAAM,MAAOC,MAAO,wBACtB,CAAED,KAAM,MAAOC,MAAO,wBACtB,CAAED,KAAM,IAAKC,MAAO,sBACpB,CAAED,KAAM,IAAKC,MAAO,uBAEtBC,SAAU,CACR,CAAEF,KAAM,eAAgBC,MAAO,OAC/B,CAAED,KAAM,eAAgBC,MAAO,OAC/B,CAAED,KAAM,iBAKd4E,KAAM,CACJtE,eAAgB,CAAC,OACjBC,aAAc,SAAC6D,GAAQ,MAAK,CAAC,OAAQ,KAAMA,EAAS,EACpD3D,QAAS,SAAC2D,GAAQ,MAAK,CAAC,OAAQ,QAASA,EAAS,EAClD1D,QAAS,CACPX,QAAS,CACP,CAAEC,KAAM,IAAKC,MAAO,sBACpB,CAAED,KAAM,IAAKC,MAAO,uBAEtBC,SAAU,CAAC,CAAEF,KAAM,kBAAmBC,MAAO,QAAU,CAAED,KAAM,iBAInE6E,KAAM,CACJvE,eAAgB,CAAC,OACjBC,aAAc,SAACC,GAAQ,MAAK,CAAC,QAASA,EAAU,KAAM,OAAO,EAC7DC,QAAS,WAAF,MAAQ,CAAC,SAAS,EACzBC,QAASZ,GAGXgF,IAAK,CACHxE,eAAgB,CAAC,QACjBC,aAAc,SAACC,GAAQ,MAAK,CAAC,MAAO,YAAaA,EAAS,EAC1DC,QAAS,SAACD,GAAQ,MAAK,CAAC,KAAOA,EAAS6D,QAAQ,SAAU,IAAI,EAC9D3D,QAASZ,GAGXiF,WAAY,CACVzE,eAAgB,CAAC,MAAO,OAAQ,QAChCG,QAAS,SAAC2D,GAAQ,MAAK,CAAC,MAAOA,EAAS,EACxC1D,QAASP,GAGX6E,KAAM,CACJ1E,eAAgB,CAAC,QACjBG,QAAS,SAAC2D,GAAQ,MAAK,CAAC,MAAOA,EAAS"}
|
|
1
|
+
{"version":3,"file":"language.cjs","names":["fs","path","removeCommentsInSourceCode"],"sources":["../../src/types/language.ts"],"sourcesContent":["import fs from 'node:fs';\nimport path from 'node:path';\n\nimport { removeCommentsInSourceCode } from '../helpers/removeCommentsInSourceCode.js';\n\nexport interface LanguageDefinition {\n /** File extensions to judge with this config. */\n fileExtensions: readonly string[];\n\n /** Function executed before the build. */\n prebuild?(cwd: string): Promise<void>;\n\n /** Returns the command to build a user program. */\n buildCommand?(filePath: string): [string, ...string[]];\n\n /** Returns the command to run a user program. */\n command(filePath: string): [string, ...string[]];\n\n /** Grammer definition for static analysis. */\n grammer?: {\n strings?: readonly { open: RegExp; close: RegExp }[];\n comments?: readonly { open: RegExp; close?: RegExp }[];\n };\n}\n\nconst cLikeGrammer = {\n strings: [\n { open: /'/, close: /(?<!\\\\)(?:\\\\{2})*'/ },\n { open: /\"/, close: /(?<!\\\\)(?:\\\\{2})*\"/ },\n ],\n comments: [{ open: /\\n?[ \\t]*\\/\\*/, close: /\\*\\// }, { open: /\\n?[ \\t]*\\/\\// }],\n} as const satisfies LanguageDefinition['grammer'];\n\nconst javaScriptLikeGrammer = {\n strings: [\n { open: /'/, close: /(?<!\\\\)(?:\\\\{2})*'/ },\n { open: /\"/, close: /(?<!\\\\)(?:\\\\{2})*\"/ },\n { open: /`/, close: /(?<!\\\\)(?:\\\\{2})*`/ },\n ],\n comments: [{ open: /\\n?[ \\t]*\\/\\*/, close: /\\*\\// }, { open: /\\n?[ \\t]*\\/\\// }],\n} as const satisfies LanguageDefinition['grammer'];\n\nexport const languageIdToDefinition: Readonly<Record<string, Readonly<LanguageDefinition>>> = {\n c: {\n fileExtensions: ['.c'],\n buildCommand: (filePath) => ['gcc', '--std=c17', '-O2', filePath, '-o', 'main'],\n command: () => ['./main'],\n grammer: cLikeGrammer,\n },\n\n cpp: {\n fileExtensions: ['.cpp'],\n buildCommand: (filePath) => ['g++', '--std=c++20', '-O2', filePath, '-o', 'main'],\n command: () => ['./main'],\n grammer: cLikeGrammer,\n },\n\n csharp: {\n fileExtensions: ['.cs'],\n prebuild: async (cwd) => {\n await fs.promises.writeFile(\n path.join(cwd, 'Main.csproj'),\n `<Project Sdk=\"Microsoft.NET.Sdk\">\n <PropertyGroup>\n <OutputType>Exe</OutputType>\n <TargetFramework>net8.0</TargetFramework>\n <ImplicitUsings>enable</ImplicitUsings>\n <Nullable>enable</Nullable>\n <AllowUnsafeBlocks>true</AllowUnsafeBlocks>\n <AssemblyName>Main</AssemblyName>\n </PropertyGroup>\n</Project>`\n );\n },\n buildCommand: () => ['dotnet', 'build', 'Main.csproj', '--configuration', 'Release', '--verbosity', 'quiet'],\n command: () => ['dotnet', 'bin/Release/net8.0/Main.dll'],\n grammer: cLikeGrammer,\n },\n\n css: {\n fileExtensions: ['.css'],\n command: () => ['echo', ''],\n grammer: {\n strings: [\n { open: /'/, close: /(?<!\\\\)(?:\\\\{2})*'/ },\n { open: /\"/, close: /(?<!\\\\)(?:\\\\{2})*\"/ },\n ],\n comments: [{ open: /\\n?[ \\t]*\\/\\*/, close: /\\*\\// }],\n },\n },\n\n dart: {\n fileExtensions: ['.dart'],\n buildCommand: (filePath) => ['dart', 'compile', 'exe', filePath, '-o', 'main'],\n command: () => ['./main'],\n grammer: cLikeGrammer,\n },\n\n java: {\n fileExtensions: ['.java'],\n prebuild: async (cwd) => {\n const publicClassRegex = /\\bpublic\\s+class\\s+(\\w+)\\b/;\n for (const dirent of await fs.promises.readdir(cwd, { withFileTypes: true })) {\n if (!dirent.isFile() || !dirent.name.endsWith('.java')) continue;\n const data = await fs.promises.readFile(path.join(cwd, dirent.name), 'utf8');\n const [, className] = publicClassRegex.exec(removeCommentsInSourceCode(cLikeGrammer, data)) ?? [];\n if (className) await fs.promises.rename(path.join(cwd, dirent.name), path.join(cwd, `${className}.java`));\n }\n },\n buildCommand: (fileName) => ['javac', fileName],\n // For example, Problem 7-3 in WillBooster's Java lecture uses at least 256MB.\n command: (fileName) => ['java', '-Xmx1024m', fileName.replace(/\\.java$/, '')],\n grammer: cLikeGrammer,\n },\n\n javascript: {\n fileExtensions: ['.js', '.cjs', '.mjs'],\n command: (fileName) => ['bun', fileName],\n grammer: javaScriptLikeGrammer,\n },\n\n jsp: {\n fileExtensions: ['.jsp'],\n command: () => ['echo', ''],\n grammer: {\n strings: [\n { open: /'/, close: /(?<!\\\\)(?:\\\\{2})*'/ },\n { open: /\"/, close: /(?<!\\\\)(?:\\\\{2})*\"/ },\n ],\n comments: [\n { open: /\\n?[ \\t]*<!--/, close: /-->/ },\n { open: /\\n?[ \\t]*<%--/, close: /--%>/ },\n { open: /\\n?[ \\t]*\\/\\*/, close: /\\*\\// },\n { open: /\\n?[ \\t]*\\/\\// },\n ],\n },\n },\n\n haskell: {\n fileExtensions: ['.hs'],\n buildCommand: (filePath) => ['ghc', '-o', 'main', filePath],\n command: () => ['./main'],\n grammer: {\n strings: [\n { open: /'/, close: /(?<!\\\\)(?:\\\\{2})*'/ },\n { open: /\"/, close: /(?<!\\\\)(?:\\\\{2})*\"/ },\n ],\n comments: [{ open: /\\n?[ \\t]*\\{-/, close: /-\\}/ }, { open: /\\n?[ \\t]*--/ }],\n },\n },\n\n html: {\n fileExtensions: ['.html'],\n command: () => ['echo', ''],\n grammer: {\n strings: [\n { open: /'/, close: /(?<!\\\\)(?:\\\\{2})*'/ },\n { open: /\"/, close: /(?<!\\\\)(?:\\\\{2})*\"/ },\n ],\n comments: [{ open: /\\n?[ \\t]*<!--/, close: /-->/ }],\n },\n },\n\n php: {\n fileExtensions: ['.php'],\n command: (fileName) => ['php', fileName],\n grammer: {\n strings: [\n { open: /'/, close: /(?<!\\\\)(?:\\\\{2})*'/ },\n { open: /\"/, close: /(?<!\\\\)(?:\\\\{2})*\"/ },\n ],\n comments: [{ open: /\\n?[ \\t]*\\/\\*/, close: /\\*\\// }, { open: /\\n?[ \\t]*\\/\\// }, { open: /\\n?[ \\t]*#/ }],\n },\n },\n\n python: {\n fileExtensions: ['.py'],\n command: (fileName) => ['python3', fileName],\n grammer: {\n strings: [\n { open: /'''/, close: /(?<!\\\\)(?:\\\\{2})*'''/ },\n { open: /\"\"\"/, close: /(?<!\\\\)(?:\\\\{2})*\"\"\"/ },\n { open: /'/, close: /(?<!\\\\)(?:\\\\{2})*'/ },\n { open: /\"/, close: /(?<!\\\\)(?:\\\\{2})*\"/ },\n ],\n comments: [\n { open: /\\n?[ \\t]*'''/, close: /'''/ },\n { open: /\\n?[ \\t]*\"\"\"/, close: /\"\"\"/ },\n { open: /\\n?[ \\t]*#/ },\n ],\n },\n },\n\n ruby: {\n fileExtensions: ['.rb'],\n buildCommand: (fileName) => ['ruby', '-c', fileName],\n command: (fileName) => ['ruby', '--jit', fileName],\n grammer: {\n strings: [\n { open: /'/, close: /(?<!\\\\)(?:\\\\{2})*'/ },\n { open: /\"/, close: /(?<!\\\\)(?:\\\\{2})*\"/ },\n ],\n comments: [{ open: /\\n?[ \\t]*=begin/, close: /=end/ }, { open: /\\n?[ \\t]*#/ }],\n },\n },\n\n rust: {\n fileExtensions: ['.rs'],\n buildCommand: (filePath) => ['rustc', filePath, '-o', 'main'],\n command: () => ['./main'],\n grammer: cLikeGrammer,\n },\n\n zig: {\n fileExtensions: ['.zig'],\n buildCommand: (filePath) => ['zig', 'build-exe', filePath],\n command: (filePath) => ['./' + filePath.replace(/\\.zig$/, '')],\n grammer: cLikeGrammer,\n },\n\n typescript: {\n fileExtensions: ['.ts', '.cts', '.mts'],\n command: (fileName) => ['bun', fileName],\n grammer: javaScriptLikeGrammer,\n },\n\n text: {\n fileExtensions: ['.txt'],\n command: (fileName) => ['cat', fileName],\n },\n} as const;\n"],"mappings":"+MAyBA,MAAM,EAAe,CACnB,QAAS,CACP,CAAE,KAAM,IAAK,MAAO,oBAAqB,EACzC,CAAE,KAAM,IAAK,MAAO,oBAAqB,CAC3C,EACA,SAAU,CAAC,CAAE,KAAM,gBAAiB,MAAO,MAAO,EAAG,CAAE,KAAM,eAAgB,CAAC,CAChF,EAEM,EAAwB,CAC5B,QAAS,CACP,CAAE,KAAM,IAAK,MAAO,oBAAqB,EACzC,CAAE,KAAM,IAAK,MAAO,oBAAqB,EACzC,CAAE,KAAM,IAAK,MAAO,oBAAqB,CAC3C,EACA,SAAU,CAAC,CAAE,KAAM,gBAAiB,MAAO,MAAO,EAAG,CAAE,KAAM,eAAgB,CAAC,CAChF,EAEa,EAAiF,CAC5F,EAAG,CACD,eAAgB,CAAC,IAAI,EACrB,aAAe,GAAa,CAAC,MAAO,YAAa,MAAO,EAAU,KAAM,MAAM,EAC9E,YAAe,CAAC,QAAQ,EACxB,QAAS,CACX,EAEA,IAAK,CACH,eAAgB,CAAC,MAAM,EACvB,aAAe,GAAa,CAAC,MAAO,cAAe,MAAO,EAAU,KAAM,MAAM,EAChF,YAAe,CAAC,QAAQ,EACxB,QAAS,CACX,EAEA,OAAQ,CACN,eAAgB,CAAC,KAAK,EACtB,SAAU,KAAO,IAAQ,CACvB,MAAMA,EAAAA,QAAG,SAAS,UAChBC,EAAAA,QAAK,KAAK,EAAK,aAAa,EAC5B;;;;;;;;;WAUF,CACF,EACA,iBAAoB,CAAC,SAAU,QAAS,cAAe,kBAAmB,UAAW,cAAe,OAAO,EAC3G,YAAe,CAAC,SAAU,6BAA6B,EACvD,QAAS,CACX,EAEA,IAAK,CACH,eAAgB,CAAC,MAAM,EACvB,YAAe,CAAC,OAAQ,EAAE,EAC1B,QAAS,CACP,QAAS,CACP,CAAE,KAAM,IAAK,MAAO,oBAAqB,EACzC,CAAE,KAAM,IAAK,MAAO,oBAAqB,CAC3C,EACA,SAAU,CAAC,CAAE,KAAM,gBAAiB,MAAO,MAAO,CAAC,CACrD,CACF,EAEA,KAAM,CACJ,eAAgB,CAAC,OAAO,EACxB,aAAe,GAAa,CAAC,OAAQ,UAAW,MAAO,EAAU,KAAM,MAAM,EAC7E,YAAe,CAAC,QAAQ,EACxB,QAAS,CACX,EAEA,KAAM,CACJ,eAAgB,CAAC,OAAO,EACxB,SAAU,KAAO,IAAQ,CACvB,IAAM,EAAmB,6BACzB,IAAK,IAAM,KAAU,MAAMD,EAAAA,QAAG,SAAS,QAAQ,EAAK,CAAE,cAAe,EAAK,CAAC,EAAG,CAC5E,GAAI,CAAC,EAAO,OAAO,GAAK,CAAC,EAAO,KAAK,SAAS,OAAO,EAAG,SACxD,IAAM,EAAO,MAAMA,EAAAA,QAAG,SAAS,SAASC,EAAAA,QAAK,KAAK,EAAK,EAAO,IAAI,EAAG,MAAM,EACrE,EAAG,GAAa,EAAiB,KAAKC,EAAAA,2BAA2B,EAAc,CAAI,CAAC,GAAK,CAAC,EAC5F,GAAW,MAAMF,EAAAA,QAAG,SAAS,OAAOC,EAAAA,QAAK,KAAK,EAAK,EAAO,IAAI,EAAGA,EAAAA,QAAK,KAAK,EAAK,GAAG,EAAU,MAAM,CAAC,CAC1G,CACF,EACA,aAAe,GAAa,CAAC,QAAS,CAAQ,EAE9C,QAAU,GAAa,CAAC,OAAQ,YAAa,EAAS,QAAQ,UAAW,EAAE,CAAC,EAC5E,QAAS,CACX,EAEA,WAAY,CACV,eAAgB,CAAC,MAAO,OAAQ,MAAM,EACtC,QAAU,GAAa,CAAC,MAAO,CAAQ,EACvC,QAAS,CACX,EAEA,IAAK,CACH,eAAgB,CAAC,MAAM,EACvB,YAAe,CAAC,OAAQ,EAAE,EAC1B,QAAS,CACP,QAAS,CACP,CAAE,KAAM,IAAK,MAAO,oBAAqB,EACzC,CAAE,KAAM,IAAK,MAAO,oBAAqB,CAC3C,EACA,SAAU,CACR,CAAE,KAAM,gBAAiB,MAAO,KAAM,EACtC,CAAE,KAAM,gBAAiB,MAAO,MAAO,EACvC,CAAE,KAAM,gBAAiB,MAAO,MAAO,EACvC,CAAE,KAAM,eAAgB,CAC1B,CACF,CACF,EAEA,QAAS,CACP,eAAgB,CAAC,KAAK,EACtB,aAAe,GAAa,CAAC,MAAO,KAAM,OAAQ,CAAQ,EAC1D,YAAe,CAAC,QAAQ,EACxB,QAAS,CACP,QAAS,CACP,CAAE,KAAM,IAAK,MAAO,oBAAqB,EACzC,CAAE,KAAM,IAAK,MAAO,oBAAqB,CAC3C,EACA,SAAU,CAAC,CAAE,KAAM,eAAgB,MAAO,KAAM,EAAG,CAAE,KAAM,aAAc,CAAC,CAC5E,CACF,EAEA,KAAM,CACJ,eAAgB,CAAC,OAAO,EACxB,YAAe,CAAC,OAAQ,EAAE,EAC1B,QAAS,CACP,QAAS,CACP,CAAE,KAAM,IAAK,MAAO,oBAAqB,EACzC,CAAE,KAAM,IAAK,MAAO,oBAAqB,CAC3C,EACA,SAAU,CAAC,CAAE,KAAM,gBAAiB,MAAO,KAAM,CAAC,CACpD,CACF,EAEA,IAAK,CACH,eAAgB,CAAC,MAAM,EACvB,QAAU,GAAa,CAAC,MAAO,CAAQ,EACvC,QAAS,CACP,QAAS,CACP,CAAE,KAAM,IAAK,MAAO,oBAAqB,EACzC,CAAE,KAAM,IAAK,MAAO,oBAAqB,CAC3C,EACA,SAAU,CAAC,CAAE,KAAM,gBAAiB,MAAO,MAAO,EAAG,CAAE,KAAM,eAAgB,EAAG,CAAE,KAAM,YAAa,CAAC,CACxG,CACF,EAEA,OAAQ,CACN,eAAgB,CAAC,KAAK,EACtB,QAAU,GAAa,CAAC,UAAW,CAAQ,EAC3C,QAAS,CACP,QAAS,CACP,CAAE,KAAM,MAAO,MAAO,sBAAuB,EAC7C,CAAE,KAAM,MAAO,MAAO,sBAAuB,EAC7C,CAAE,KAAM,IAAK,MAAO,oBAAqB,EACzC,CAAE,KAAM,IAAK,MAAO,oBAAqB,CAC3C,EACA,SAAU,CACR,CAAE,KAAM,eAAgB,MAAO,KAAM,EACrC,CAAE,KAAM,eAAgB,MAAO,KAAM,EACrC,CAAE,KAAM,YAAa,CACvB,CACF,CACF,EAEA,KAAM,CACJ,eAAgB,CAAC,KAAK,EACtB,aAAe,GAAa,CAAC,OAAQ,KAAM,CAAQ,EACnD,QAAU,GAAa,CAAC,OAAQ,QAAS,CAAQ,EACjD,QAAS,CACP,QAAS,CACP,CAAE,KAAM,IAAK,MAAO,oBAAqB,EACzC,CAAE,KAAM,IAAK,MAAO,oBAAqB,CAC3C,EACA,SAAU,CAAC,CAAE,KAAM,kBAAmB,MAAO,MAAO,EAAG,CAAE,KAAM,YAAa,CAAC,CAC/E,CACF,EAEA,KAAM,CACJ,eAAgB,CAAC,KAAK,EACtB,aAAe,GAAa,CAAC,QAAS,EAAU,KAAM,MAAM,EAC5D,YAAe,CAAC,QAAQ,EACxB,QAAS,CACX,EAEA,IAAK,CACH,eAAgB,CAAC,MAAM,EACvB,aAAe,GAAa,CAAC,MAAO,YAAa,CAAQ,EACzD,QAAU,GAAa,CAAC,KAAO,EAAS,QAAQ,SAAU,EAAE,CAAC,EAC7D,QAAS,CACX,EAEA,WAAY,CACV,eAAgB,CAAC,MAAO,OAAQ,MAAM,EACtC,QAAU,GAAa,CAAC,MAAO,CAAQ,EACvC,QAAS,CACX,EAEA,KAAM,CACJ,eAAgB,CAAC,MAAM,EACvB,QAAU,GAAa,CAAC,MAAO,CAAQ,CACzC,CACF"}
|
package/dist/types/language.js
CHANGED
|
@@ -1,2 +1,11 @@
|
|
|
1
|
-
import{
|
|
2
|
-
|
|
1
|
+
import{removeCommentsInSourceCode as e}from"../helpers/removeCommentsInSourceCode.js";import t from"node:path";import n from"node:fs";const r={strings:[{open:/'/,close:/(?<!\\)(?:\\{2})*'/},{open:/"/,close:/(?<!\\)(?:\\{2})*"/}],comments:[{open:/\n?[ \t]*\/\*/,close:/\*\//},{open:/\n?[ \t]*\/\//}]},i={strings:[{open:/'/,close:/(?<!\\)(?:\\{2})*'/},{open:/"/,close:/(?<!\\)(?:\\{2})*"/},{open:/`/,close:/(?<!\\)(?:\\{2})*`/}],comments:[{open:/\n?[ \t]*\/\*/,close:/\*\//},{open:/\n?[ \t]*\/\//}]},a={c:{fileExtensions:[`.c`],buildCommand:e=>[`gcc`,`--std=c17`,`-O2`,e,`-o`,`main`],command:()=>[`./main`],grammer:r},cpp:{fileExtensions:[`.cpp`],buildCommand:e=>[`g++`,`--std=c++20`,`-O2`,e,`-o`,`main`],command:()=>[`./main`],grammer:r},csharp:{fileExtensions:[`.cs`],prebuild:async e=>{await n.promises.writeFile(t.join(e,`Main.csproj`),`<Project Sdk="Microsoft.NET.Sdk">
|
|
2
|
+
<PropertyGroup>
|
|
3
|
+
<OutputType>Exe</OutputType>
|
|
4
|
+
<TargetFramework>net8.0</TargetFramework>
|
|
5
|
+
<ImplicitUsings>enable</ImplicitUsings>
|
|
6
|
+
<Nullable>enable</Nullable>
|
|
7
|
+
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
|
|
8
|
+
<AssemblyName>Main</AssemblyName>
|
|
9
|
+
</PropertyGroup>
|
|
10
|
+
</Project>`)},buildCommand:()=>[`dotnet`,`build`,`Main.csproj`,`--configuration`,`Release`,`--verbosity`,`quiet`],command:()=>[`dotnet`,`bin/Release/net8.0/Main.dll`],grammer:r},css:{fileExtensions:[`.css`],command:()=>[`echo`,``],grammer:{strings:[{open:/'/,close:/(?<!\\)(?:\\{2})*'/},{open:/"/,close:/(?<!\\)(?:\\{2})*"/}],comments:[{open:/\n?[ \t]*\/\*/,close:/\*\//}]}},dart:{fileExtensions:[`.dart`],buildCommand:e=>[`dart`,`compile`,`exe`,e,`-o`,`main`],command:()=>[`./main`],grammer:r},java:{fileExtensions:[`.java`],prebuild:async i=>{let a=/\bpublic\s+class\s+(\w+)\b/;for(let o of await n.promises.readdir(i,{withFileTypes:!0})){if(!o.isFile()||!o.name.endsWith(`.java`))continue;let s=await n.promises.readFile(t.join(i,o.name),`utf8`),[,c]=a.exec(e(r,s))??[];c&&await n.promises.rename(t.join(i,o.name),t.join(i,`${c}.java`))}},buildCommand:e=>[`javac`,e],command:e=>[`java`,`-Xmx1024m`,e.replace(/\.java$/,``)],grammer:r},javascript:{fileExtensions:[`.js`,`.cjs`,`.mjs`],command:e=>[`bun`,e],grammer:i},jsp:{fileExtensions:[`.jsp`],command:()=>[`echo`,``],grammer:{strings:[{open:/'/,close:/(?<!\\)(?:\\{2})*'/},{open:/"/,close:/(?<!\\)(?:\\{2})*"/}],comments:[{open:/\n?[ \t]*<!--/,close:/-->/},{open:/\n?[ \t]*<%--/,close:/--%>/},{open:/\n?[ \t]*\/\*/,close:/\*\//},{open:/\n?[ \t]*\/\//}]}},haskell:{fileExtensions:[`.hs`],buildCommand:e=>[`ghc`,`-o`,`main`,e],command:()=>[`./main`],grammer:{strings:[{open:/'/,close:/(?<!\\)(?:\\{2})*'/},{open:/"/,close:/(?<!\\)(?:\\{2})*"/}],comments:[{open:/\n?[ \t]*\{-/,close:/-\}/},{open:/\n?[ \t]*--/}]}},html:{fileExtensions:[`.html`],command:()=>[`echo`,``],grammer:{strings:[{open:/'/,close:/(?<!\\)(?:\\{2})*'/},{open:/"/,close:/(?<!\\)(?:\\{2})*"/}],comments:[{open:/\n?[ \t]*<!--/,close:/-->/}]}},php:{fileExtensions:[`.php`],command:e=>[`php`,e],grammer:{strings:[{open:/'/,close:/(?<!\\)(?:\\{2})*'/},{open:/"/,close:/(?<!\\)(?:\\{2})*"/}],comments:[{open:/\n?[ \t]*\/\*/,close:/\*\//},{open:/\n?[ \t]*\/\//},{open:/\n?[ \t]*#/}]}},python:{fileExtensions:[`.py`],command:e=>[`python3`,e],grammer:{strings:[{open:/'''/,close:/(?<!\\)(?:\\{2})*'''/},{open:/"""/,close:/(?<!\\)(?:\\{2})*"""/},{open:/'/,close:/(?<!\\)(?:\\{2})*'/},{open:/"/,close:/(?<!\\)(?:\\{2})*"/}],comments:[{open:/\n?[ \t]*'''/,close:/'''/},{open:/\n?[ \t]*"""/,close:/"""/},{open:/\n?[ \t]*#/}]}},ruby:{fileExtensions:[`.rb`],buildCommand:e=>[`ruby`,`-c`,e],command:e=>[`ruby`,`--jit`,e],grammer:{strings:[{open:/'/,close:/(?<!\\)(?:\\{2})*'/},{open:/"/,close:/(?<!\\)(?:\\{2})*"/}],comments:[{open:/\n?[ \t]*=begin/,close:/=end/},{open:/\n?[ \t]*#/}]}},rust:{fileExtensions:[`.rs`],buildCommand:e=>[`rustc`,e,`-o`,`main`],command:()=>[`./main`],grammer:r},zig:{fileExtensions:[`.zig`],buildCommand:e=>[`zig`,`build-exe`,e],command:e=>[`./`+e.replace(/\.zig$/,``)],grammer:r},typescript:{fileExtensions:[`.ts`,`.cts`,`.mts`],command:e=>[`bun`,e],grammer:i},text:{fileExtensions:[`.txt`],command:e=>[`cat`,e]}};export{a as languageIdToDefinition};
|
|
11
|
+
//# sourceMappingURL=language.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"language.js","sources":["../../src/types/language.ts"],"sourcesContent":["import fs from 'node:fs';\nimport path from 'node:path';\n\nimport { removeCommentsInSourceCode } from '../helpers/removeCommentsInSourceCode.js';\n\nexport interface LanguageDefinition {\n /** File extensions to judge with this config. */\n fileExtensions: readonly string[];\n\n /** Function executed before the build. */\n prebuild?(cwd: string): Promise<void>;\n\n /** Returns the command to build a user program. */\n buildCommand?(filePath: string): [string, ...string[]];\n\n /** Returns the command to run a user program. */\n command(filePath: string): [string, ...string[]];\n\n /** Grammer definition for static analysis. */\n grammer?: {\n strings?: readonly { open: RegExp; close: RegExp }[];\n comments?: readonly { open: RegExp; close?: RegExp }[];\n };\n}\n\nconst cLikeGrammer = {\n strings: [\n { open: /'/, close: /(?<!\\\\)(?:\\\\{2})*'/ },\n { open: /\"/, close: /(?<!\\\\)(?:\\\\{2})*\"/ },\n ],\n comments: [{ open: /\\n?[ \\t]*\\/\\*/, close: /\\*\\// }, { open: /\\n?[ \\t]*\\/\\// }],\n} as const satisfies LanguageDefinition['grammer'];\n\nconst javaScriptLikeGrammer = {\n strings: [\n { open: /'/, close: /(?<!\\\\)(?:\\\\{2})*'/ },\n { open: /\"/, close: /(?<!\\\\)(?:\\\\{2})*\"/ },\n { open: /`/, close: /(?<!\\\\)(?:\\\\{2})*`/ },\n ],\n comments: [{ open: /\\n?[ \\t]*\\/\\*/, close: /\\*\\// }, { open: /\\n?[ \\t]*\\/\\// }],\n} as const satisfies LanguageDefinition['grammer'];\n\nexport const languageIdToDefinition: Readonly<Record<string, Readonly<LanguageDefinition>>> = {\n c: {\n fileExtensions: ['.c'],\n buildCommand: (filePath) => ['gcc', '--std=c17', '-O2', filePath, '-o', 'main'],\n command: () => ['./main'],\n grammer: cLikeGrammer,\n },\n\n cpp: {\n fileExtensions: ['.cpp'],\n buildCommand: (filePath) => ['g++', '--std=c++20', '-O2', filePath, '-o', 'main'],\n command: () => ['./main'],\n grammer: cLikeGrammer,\n },\n\n csharp: {\n fileExtensions: ['.cs'],\n prebuild: async (cwd) => {\n await fs.promises.writeFile(\n path.join(cwd, 'Main.csproj'),\n `<Project Sdk=\"Microsoft.NET.Sdk\">\n <PropertyGroup>\n <OutputType>Exe</OutputType>\n <TargetFramework>net8.0</TargetFramework>\n <ImplicitUsings>enable</ImplicitUsings>\n <Nullable>enable</Nullable>\n <AllowUnsafeBlocks>true</AllowUnsafeBlocks>\n <AssemblyName>Main</AssemblyName>\n </PropertyGroup>\n</Project>`\n );\n },\n buildCommand: () => ['dotnet', 'build', 'Main.csproj', '--configuration', 'Release', '--verbosity', 'quiet'],\n command: () => ['dotnet', 'bin/Release/net8.0/Main.dll'],\n grammer: cLikeGrammer,\n },\n\n css: {\n fileExtensions: ['.css'],\n command: () => ['echo', ''],\n grammer: {\n strings: [\n { open: /'/, close: /(?<!\\\\)(?:\\\\{2})*'/ },\n { open: /\"/, close: /(?<!\\\\)(?:\\\\{2})*\"/ },\n ],\n comments: [{ open: /\\n?[ \\t]*\\/\\*/, close: /\\*\\// }],\n },\n },\n\n dart: {\n fileExtensions: ['.dart'],\n buildCommand: (filePath) => ['dart', 'compile', 'exe', filePath, '-o', 'main'],\n command: () => ['./main'],\n grammer: cLikeGrammer,\n },\n\n java: {\n fileExtensions: ['.java'],\n prebuild: async (cwd) => {\n const publicClassRegex = /\\bpublic\\s+class\\s+(\\w+)\\b/;\n for (const dirent of await fs.promises.readdir(cwd, { withFileTypes: true })) {\n if (!dirent.isFile() || !dirent.name.endsWith('.java')) continue;\n const data = await fs.promises.readFile(path.join(cwd, dirent.name), 'utf8');\n const [, className] = publicClassRegex.exec(removeCommentsInSourceCode(cLikeGrammer, data)) ?? [];\n if (className) await fs.promises.rename(path.join(cwd, dirent.name), path.join(cwd, `${className}.java`));\n }\n },\n buildCommand: (fileName) => ['javac', fileName],\n // For example, Problem 7-3 in WillBooster's Java lecture uses at least 256MB.\n command: (fileName) => ['java', '-Xmx1024m', fileName.replace(/\\.java$/, '')],\n grammer: cLikeGrammer,\n },\n\n javascript: {\n fileExtensions: ['.js', '.cjs', '.mjs'],\n command: (fileName) => ['bun', fileName],\n grammer: javaScriptLikeGrammer,\n },\n\n jsp: {\n fileExtensions: ['.jsp'],\n command: () => ['echo', ''],\n grammer: {\n strings: [\n { open: /'/, close: /(?<!\\\\)(?:\\\\{2})*'/ },\n { open: /\"/, close: /(?<!\\\\)(?:\\\\{2})*\"/ },\n ],\n comments: [\n { open: /\\n?[ \\t]*<!--/, close: /-->/ },\n { open: /\\n?[ \\t]*<%--/, close: /--%>/ },\n { open: /\\n?[ \\t]*\\/\\*/, close: /\\*\\// },\n { open: /\\n?[ \\t]*\\/\\// },\n ],\n },\n },\n\n haskell: {\n fileExtensions: ['.hs'],\n buildCommand: (filePath) => ['ghc', '-o', 'main', filePath],\n command: () => ['./main'],\n grammer: {\n strings: [\n { open: /'/, close: /(?<!\\\\)(?:\\\\{2})*'/ },\n { open: /\"/, close: /(?<!\\\\)(?:\\\\{2})*\"/ },\n ],\n comments: [{ open: /\\n?[ \\t]*\\{-/, close: /-\\}/ }, { open: /\\n?[ \\t]*--/ }],\n },\n },\n\n html: {\n fileExtensions: ['.html'],\n command: () => ['echo', ''],\n grammer: {\n strings: [\n { open: /'/, close: /(?<!\\\\)(?:\\\\{2})*'/ },\n { open: /\"/, close: /(?<!\\\\)(?:\\\\{2})*\"/ },\n ],\n comments: [{ open: /\\n?[ \\t]*<!--/, close: /-->/ }],\n },\n },\n\n php: {\n fileExtensions: ['.php'],\n command: (fileName) => ['php', fileName],\n grammer: {\n strings: [\n { open: /'/, close: /(?<!\\\\)(?:\\\\{2})*'/ },\n { open: /\"/, close: /(?<!\\\\)(?:\\\\{2})*\"/ },\n ],\n comments: [{ open: /\\n?[ \\t]*\\/\\*/, close: /\\*\\// }, { open: /\\n?[ \\t]*\\/\\// }, { open: /\\n?[ \\t]*#/ }],\n },\n },\n\n python: {\n fileExtensions: ['.py'],\n command: (fileName) => ['python3', fileName],\n grammer: {\n strings: [\n { open: /'''/, close: /(?<!\\\\)(?:\\\\{2})*'''/ },\n { open: /\"\"\"/, close: /(?<!\\\\)(?:\\\\{2})*\"\"\"/ },\n { open: /'/, close: /(?<!\\\\)(?:\\\\{2})*'/ },\n { open: /\"/, close: /(?<!\\\\)(?:\\\\{2})*\"/ },\n ],\n comments: [\n { open: /\\n?[ \\t]*'''/, close: /'''/ },\n { open: /\\n?[ \\t]*\"\"\"/, close: /\"\"\"/ },\n { open: /\\n?[ \\t]*#/ },\n ],\n },\n },\n\n ruby: {\n fileExtensions: ['.rb'],\n buildCommand: (fileName) => ['ruby', '-c', fileName],\n command: (fileName) => ['ruby', '--jit', fileName],\n grammer: {\n strings: [\n { open: /'/, close: /(?<!\\\\)(?:\\\\{2})*'/ },\n { open: /\"/, close: /(?<!\\\\)(?:\\\\{2})*\"/ },\n ],\n comments: [{ open: /\\n?[ \\t]*=begin/, close: /=end/ }, { open: /\\n?[ \\t]*#/ }],\n },\n },\n\n rust: {\n fileExtensions: ['.rs'],\n buildCommand: (filePath) => ['rustc', filePath, '-o', 'main'],\n command: () => ['./main'],\n grammer: cLikeGrammer,\n },\n\n zig: {\n fileExtensions: ['.zig'],\n buildCommand: (filePath) => ['zig', 'build-exe', filePath],\n command: (filePath) => ['./' + filePath.replace(/\\.zig$/, '')],\n grammer: cLikeGrammer,\n },\n\n typescript: {\n fileExtensions: ['.ts', '.cts', '.mts'],\n command: (fileName) => ['bun', fileName],\n grammer: javaScriptLikeGrammer,\n },\n\n text: {\n fileExtensions: ['.txt'],\n command: (fileName) => ['cat', fileName],\n },\n} as const;\n"],"names":["_prebuild2","_prebuild","cLikeGrammer","strings","open","close","comments","javaScriptLikeGrammer","languageIdToDefinition","c","fileExtensions","buildCommand","filePath","command","grammer","cpp","csharp","prebuild","_asyncToGenerator","_regenerator","m","_callee","cwd","w","_context","n","fs","promises","writeFile","path","join","a","_x","apply","this","arguments","css","dart","java","_callee2","publicClassRegex","_iterator","_step","_publicClassRegex$exe","dirent","data","_ref","_ref2","className","_t","_t2","_context2","p","_createForOfIteratorHelper","readdir","withFileTypes","v","s","done","value","isFile","name","endsWith","readFile","exec","removeCommentsInSourceCode","_slicedToArray","rename","concat","e","f","_x2","fileName","replace","javascript","jsp","haskell","html","php","python","ruby","rust","zig","typescript","text"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"language.js","names":[],"sources":["../../src/types/language.ts"],"sourcesContent":["import fs from 'node:fs';\nimport path from 'node:path';\n\nimport { removeCommentsInSourceCode } from '../helpers/removeCommentsInSourceCode.js';\n\nexport interface LanguageDefinition {\n /** File extensions to judge with this config. */\n fileExtensions: readonly string[];\n\n /** Function executed before the build. */\n prebuild?(cwd: string): Promise<void>;\n\n /** Returns the command to build a user program. */\n buildCommand?(filePath: string): [string, ...string[]];\n\n /** Returns the command to run a user program. */\n command(filePath: string): [string, ...string[]];\n\n /** Grammer definition for static analysis. */\n grammer?: {\n strings?: readonly { open: RegExp; close: RegExp }[];\n comments?: readonly { open: RegExp; close?: RegExp }[];\n };\n}\n\nconst cLikeGrammer = {\n strings: [\n { open: /'/, close: /(?<!\\\\)(?:\\\\{2})*'/ },\n { open: /\"/, close: /(?<!\\\\)(?:\\\\{2})*\"/ },\n ],\n comments: [{ open: /\\n?[ \\t]*\\/\\*/, close: /\\*\\// }, { open: /\\n?[ \\t]*\\/\\// }],\n} as const satisfies LanguageDefinition['grammer'];\n\nconst javaScriptLikeGrammer = {\n strings: [\n { open: /'/, close: /(?<!\\\\)(?:\\\\{2})*'/ },\n { open: /\"/, close: /(?<!\\\\)(?:\\\\{2})*\"/ },\n { open: /`/, close: /(?<!\\\\)(?:\\\\{2})*`/ },\n ],\n comments: [{ open: /\\n?[ \\t]*\\/\\*/, close: /\\*\\// }, { open: /\\n?[ \\t]*\\/\\// }],\n} as const satisfies LanguageDefinition['grammer'];\n\nexport const languageIdToDefinition: Readonly<Record<string, Readonly<LanguageDefinition>>> = {\n c: {\n fileExtensions: ['.c'],\n buildCommand: (filePath) => ['gcc', '--std=c17', '-O2', filePath, '-o', 'main'],\n command: () => ['./main'],\n grammer: cLikeGrammer,\n },\n\n cpp: {\n fileExtensions: ['.cpp'],\n buildCommand: (filePath) => ['g++', '--std=c++20', '-O2', filePath, '-o', 'main'],\n command: () => ['./main'],\n grammer: cLikeGrammer,\n },\n\n csharp: {\n fileExtensions: ['.cs'],\n prebuild: async (cwd) => {\n await fs.promises.writeFile(\n path.join(cwd, 'Main.csproj'),\n `<Project Sdk=\"Microsoft.NET.Sdk\">\n <PropertyGroup>\n <OutputType>Exe</OutputType>\n <TargetFramework>net8.0</TargetFramework>\n <ImplicitUsings>enable</ImplicitUsings>\n <Nullable>enable</Nullable>\n <AllowUnsafeBlocks>true</AllowUnsafeBlocks>\n <AssemblyName>Main</AssemblyName>\n </PropertyGroup>\n</Project>`\n );\n },\n buildCommand: () => ['dotnet', 'build', 'Main.csproj', '--configuration', 'Release', '--verbosity', 'quiet'],\n command: () => ['dotnet', 'bin/Release/net8.0/Main.dll'],\n grammer: cLikeGrammer,\n },\n\n css: {\n fileExtensions: ['.css'],\n command: () => ['echo', ''],\n grammer: {\n strings: [\n { open: /'/, close: /(?<!\\\\)(?:\\\\{2})*'/ },\n { open: /\"/, close: /(?<!\\\\)(?:\\\\{2})*\"/ },\n ],\n comments: [{ open: /\\n?[ \\t]*\\/\\*/, close: /\\*\\// }],\n },\n },\n\n dart: {\n fileExtensions: ['.dart'],\n buildCommand: (filePath) => ['dart', 'compile', 'exe', filePath, '-o', 'main'],\n command: () => ['./main'],\n grammer: cLikeGrammer,\n },\n\n java: {\n fileExtensions: ['.java'],\n prebuild: async (cwd) => {\n const publicClassRegex = /\\bpublic\\s+class\\s+(\\w+)\\b/;\n for (const dirent of await fs.promises.readdir(cwd, { withFileTypes: true })) {\n if (!dirent.isFile() || !dirent.name.endsWith('.java')) continue;\n const data = await fs.promises.readFile(path.join(cwd, dirent.name), 'utf8');\n const [, className] = publicClassRegex.exec(removeCommentsInSourceCode(cLikeGrammer, data)) ?? [];\n if (className) await fs.promises.rename(path.join(cwd, dirent.name), path.join(cwd, `${className}.java`));\n }\n },\n buildCommand: (fileName) => ['javac', fileName],\n // For example, Problem 7-3 in WillBooster's Java lecture uses at least 256MB.\n command: (fileName) => ['java', '-Xmx1024m', fileName.replace(/\\.java$/, '')],\n grammer: cLikeGrammer,\n },\n\n javascript: {\n fileExtensions: ['.js', '.cjs', '.mjs'],\n command: (fileName) => ['bun', fileName],\n grammer: javaScriptLikeGrammer,\n },\n\n jsp: {\n fileExtensions: ['.jsp'],\n command: () => ['echo', ''],\n grammer: {\n strings: [\n { open: /'/, close: /(?<!\\\\)(?:\\\\{2})*'/ },\n { open: /\"/, close: /(?<!\\\\)(?:\\\\{2})*\"/ },\n ],\n comments: [\n { open: /\\n?[ \\t]*<!--/, close: /-->/ },\n { open: /\\n?[ \\t]*<%--/, close: /--%>/ },\n { open: /\\n?[ \\t]*\\/\\*/, close: /\\*\\// },\n { open: /\\n?[ \\t]*\\/\\// },\n ],\n },\n },\n\n haskell: {\n fileExtensions: ['.hs'],\n buildCommand: (filePath) => ['ghc', '-o', 'main', filePath],\n command: () => ['./main'],\n grammer: {\n strings: [\n { open: /'/, close: /(?<!\\\\)(?:\\\\{2})*'/ },\n { open: /\"/, close: /(?<!\\\\)(?:\\\\{2})*\"/ },\n ],\n comments: [{ open: /\\n?[ \\t]*\\{-/, close: /-\\}/ }, { open: /\\n?[ \\t]*--/ }],\n },\n },\n\n html: {\n fileExtensions: ['.html'],\n command: () => ['echo', ''],\n grammer: {\n strings: [\n { open: /'/, close: /(?<!\\\\)(?:\\\\{2})*'/ },\n { open: /\"/, close: /(?<!\\\\)(?:\\\\{2})*\"/ },\n ],\n comments: [{ open: /\\n?[ \\t]*<!--/, close: /-->/ }],\n },\n },\n\n php: {\n fileExtensions: ['.php'],\n command: (fileName) => ['php', fileName],\n grammer: {\n strings: [\n { open: /'/, close: /(?<!\\\\)(?:\\\\{2})*'/ },\n { open: /\"/, close: /(?<!\\\\)(?:\\\\{2})*\"/ },\n ],\n comments: [{ open: /\\n?[ \\t]*\\/\\*/, close: /\\*\\// }, { open: /\\n?[ \\t]*\\/\\// }, { open: /\\n?[ \\t]*#/ }],\n },\n },\n\n python: {\n fileExtensions: ['.py'],\n command: (fileName) => ['python3', fileName],\n grammer: {\n strings: [\n { open: /'''/, close: /(?<!\\\\)(?:\\\\{2})*'''/ },\n { open: /\"\"\"/, close: /(?<!\\\\)(?:\\\\{2})*\"\"\"/ },\n { open: /'/, close: /(?<!\\\\)(?:\\\\{2})*'/ },\n { open: /\"/, close: /(?<!\\\\)(?:\\\\{2})*\"/ },\n ],\n comments: [\n { open: /\\n?[ \\t]*'''/, close: /'''/ },\n { open: /\\n?[ \\t]*\"\"\"/, close: /\"\"\"/ },\n { open: /\\n?[ \\t]*#/ },\n ],\n },\n },\n\n ruby: {\n fileExtensions: ['.rb'],\n buildCommand: (fileName) => ['ruby', '-c', fileName],\n command: (fileName) => ['ruby', '--jit', fileName],\n grammer: {\n strings: [\n { open: /'/, close: /(?<!\\\\)(?:\\\\{2})*'/ },\n { open: /\"/, close: /(?<!\\\\)(?:\\\\{2})*\"/ },\n ],\n comments: [{ open: /\\n?[ \\t]*=begin/, close: /=end/ }, { open: /\\n?[ \\t]*#/ }],\n },\n },\n\n rust: {\n fileExtensions: ['.rs'],\n buildCommand: (filePath) => ['rustc', filePath, '-o', 'main'],\n command: () => ['./main'],\n grammer: cLikeGrammer,\n },\n\n zig: {\n fileExtensions: ['.zig'],\n buildCommand: (filePath) => ['zig', 'build-exe', filePath],\n command: (filePath) => ['./' + filePath.replace(/\\.zig$/, '')],\n grammer: cLikeGrammer,\n },\n\n typescript: {\n fileExtensions: ['.ts', '.cts', '.mts'],\n command: (fileName) => ['bun', fileName],\n grammer: javaScriptLikeGrammer,\n },\n\n text: {\n fileExtensions: ['.txt'],\n command: (fileName) => ['cat', fileName],\n },\n} as const;\n"],"mappings":"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"}
|
package/dist/types/problem.cjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
//# sourceMappingURL=problem.cjs.map
|
|
1
|
+
"use strict";let e=require("zod");const t=e.z.object({timeLimitMs:e.z.number().int().min(0).optional(),memoryLimitByte:e.z.number().int().min(0).optional(),requiredRegExpsInCode:e.z.array(e.z.string().min(1)).optional(),forbiddenRegExpsInCode:e.z.array(e.z.string().min(1)).optional(),forbiddenTextsInCode:e.z.array(e.z.string().min(1)).optional(),isManualScoringRequired:e.z.boolean().optional(),requiredEnvironmentVariables:e.z.array(e.z.string().min(1)).optional(),requiredOutputFilePaths:e.z.array(e.z.string().min(1)).optional(),requiredSubmissionFilePaths:e.z.array(e.z.string().min(1)).optional()});exports.problemMarkdownFrontMatterSchema=t;
|
|
2
|
+
//# sourceMappingURL=problem.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"problem.cjs","sources":["../../src/types/problem.ts"],"sourcesContent":["import { z } from 'zod';\n\nexport const problemMarkdownFrontMatterSchema = z.object({\n timeLimitMs: z.number().int().min(0).optional(),\n memoryLimitByte: z.number().int().min(0).optional(),\n requiredRegExpsInCode: z.array(z.string().min(1)).optional(),\n forbiddenRegExpsInCode: z.array(z.string().min(1)).optional(),\n forbiddenTextsInCode: z.array(z.string().min(1)).optional(),\n isManualScoringRequired: z.boolean().optional(),\n requiredEnvironmentVariables: z.array(z.string().min(1)).optional(),\n requiredOutputFilePaths: z.array(z.string().min(1)).optional(),\n requiredSubmissionFilePaths: z.array(z.string().min(1)).optional(),\n});\n\nexport type ProblemMarkdownFrontMatter = z.infer<typeof problemMarkdownFrontMatterSchema>;\n"],"
|
|
1
|
+
{"version":3,"file":"problem.cjs","names":["z"],"sources":["../../src/types/problem.ts"],"sourcesContent":["import { z } from 'zod';\n\nexport const problemMarkdownFrontMatterSchema = z.object({\n timeLimitMs: z.number().int().min(0).optional(),\n memoryLimitByte: z.number().int().min(0).optional(),\n requiredRegExpsInCode: z.array(z.string().min(1)).optional(),\n forbiddenRegExpsInCode: z.array(z.string().min(1)).optional(),\n forbiddenTextsInCode: z.array(z.string().min(1)).optional(),\n isManualScoringRequired: z.boolean().optional(),\n requiredEnvironmentVariables: z.array(z.string().min(1)).optional(),\n requiredOutputFilePaths: z.array(z.string().min(1)).optional(),\n requiredSubmissionFilePaths: z.array(z.string().min(1)).optional(),\n});\n\nexport type ProblemMarkdownFrontMatter = z.infer<typeof problemMarkdownFrontMatterSchema>;\n"],"mappings":"kCAEA,MAAa,EAAmCA,EAAAA,EAAE,OAAO,CACvD,YAAaA,EAAAA,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,EAC9C,gBAAiBA,EAAAA,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,EAClD,sBAAuBA,EAAAA,EAAE,MAAMA,EAAAA,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,EAC3D,uBAAwBA,EAAAA,EAAE,MAAMA,EAAAA,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,EAC5D,qBAAsBA,EAAAA,EAAE,MAAMA,EAAAA,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,EAC1D,wBAAyBA,EAAAA,EAAE,QAAQ,CAAC,CAAC,SAAS,EAC9C,6BAA8BA,EAAAA,EAAE,MAAMA,EAAAA,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,EAClE,wBAAyBA,EAAAA,EAAE,MAAMA,EAAAA,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,EAC7D,4BAA6BA,EAAAA,EAAE,MAAMA,EAAAA,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CACnE,CAAC"}
|
package/dist/types/problem.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{z as
|
|
2
|
-
//# sourceMappingURL=problem.js.map
|
|
1
|
+
import{z as e}from"zod";const t=e.object({timeLimitMs:e.number().int().min(0).optional(),memoryLimitByte:e.number().int().min(0).optional(),requiredRegExpsInCode:e.array(e.string().min(1)).optional(),forbiddenRegExpsInCode:e.array(e.string().min(1)).optional(),forbiddenTextsInCode:e.array(e.string().min(1)).optional(),isManualScoringRequired:e.boolean().optional(),requiredEnvironmentVariables:e.array(e.string().min(1)).optional(),requiredOutputFilePaths:e.array(e.string().min(1)).optional(),requiredSubmissionFilePaths:e.array(e.string().min(1)).optional()});export{t as problemMarkdownFrontMatterSchema};
|
|
2
|
+
//# sourceMappingURL=problem.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"problem.js","sources":["../../src/types/problem.ts"],"sourcesContent":["import { z } from 'zod';\n\nexport const problemMarkdownFrontMatterSchema = z.object({\n timeLimitMs: z.number().int().min(0).optional(),\n memoryLimitByte: z.number().int().min(0).optional(),\n requiredRegExpsInCode: z.array(z.string().min(1)).optional(),\n forbiddenRegExpsInCode: z.array(z.string().min(1)).optional(),\n forbiddenTextsInCode: z.array(z.string().min(1)).optional(),\n isManualScoringRequired: z.boolean().optional(),\n requiredEnvironmentVariables: z.array(z.string().min(1)).optional(),\n requiredOutputFilePaths: z.array(z.string().min(1)).optional(),\n requiredSubmissionFilePaths: z.array(z.string().min(1)).optional(),\n});\n\nexport type ProblemMarkdownFrontMatter = z.infer<typeof problemMarkdownFrontMatterSchema>;\n"],"
|
|
1
|
+
{"version":3,"file":"problem.js","names":[],"sources":["../../src/types/problem.ts"],"sourcesContent":["import { z } from 'zod';\n\nexport const problemMarkdownFrontMatterSchema = z.object({\n timeLimitMs: z.number().int().min(0).optional(),\n memoryLimitByte: z.number().int().min(0).optional(),\n requiredRegExpsInCode: z.array(z.string().min(1)).optional(),\n forbiddenRegExpsInCode: z.array(z.string().min(1)).optional(),\n forbiddenTextsInCode: z.array(z.string().min(1)).optional(),\n isManualScoringRequired: z.boolean().optional(),\n requiredEnvironmentVariables: z.array(z.string().min(1)).optional(),\n requiredOutputFilePaths: z.array(z.string().min(1)).optional(),\n requiredSubmissionFilePaths: z.array(z.string().min(1)).optional(),\n});\n\nexport type ProblemMarkdownFrontMatter = z.infer<typeof problemMarkdownFrontMatterSchema>;\n"],"mappings":"wBAEA,MAAa,EAAmC,EAAE,OAAO,CACvD,YAAa,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,EAC9C,gBAAiB,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,EAClD,sBAAuB,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,EAC3D,uBAAwB,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,EAC5D,qBAAsB,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,EAC1D,wBAAyB,EAAE,QAAQ,CAAC,CAAC,SAAS,EAC9C,6BAA8B,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,EAClE,wBAAyB,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,EAC7D,4BAA6B,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CACnE,CAAC"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
//# sourceMappingURL=testCaseResult.cjs.map
|
|
1
|
+
"use strict";let e=require("zod");const t=e.z.object({path:e.z.string(),data:e.z.string(),encoding:e.z.literal(`base64`).optional()}),n=e.z.object({testCaseId:e.z.string(),decisionCode:e.z.number().int(),exitStatus:e.z.number().int().optional(),stdin:e.z.string().optional(),stdout:e.z.string().optional(),stderr:e.z.string().optional(),timeSeconds:e.z.number().optional(),memoryBytes:e.z.number().optional(),feedbackMarkdown:e.z.string().optional(),outputFiles:e.z.array(t).optional()});exports.TEST_CASE_RESULT_PREFIX=`TEST_CASE_RESULT `,exports.testCaseResultSchema=n;
|
|
2
|
+
//# sourceMappingURL=testCaseResult.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"testCaseResult.cjs","sources":["../../src/types/testCaseResult.ts"],"sourcesContent":["import { z } from 'zod';\n\nexport const TEST_CASE_RESULT_PREFIX = 'TEST_CASE_RESULT ';\n\nconst testCaseResultOutputFileSchema = z.object({\n path: z.string(),\n data: z.string(),\n encoding: z.literal('base64').optional(),\n});\n\nexport const testCaseResultSchema = z.object({\n testCaseId: z.string(),\n decisionCode: z.number().int(),\n exitStatus: z.number().int().optional(),\n stdin: z.string().optional(),\n stdout: z.string().optional(),\n stderr: z.string().optional(),\n timeSeconds: z.number().optional(),\n memoryBytes: z.number().optional(),\n feedbackMarkdown: z.string().optional(),\n outputFiles: z.array(testCaseResultOutputFileSchema).optional(),\n});\n\nexport type TestCaseResult = z.infer<typeof testCaseResultSchema>;\n"],"
|
|
1
|
+
{"version":3,"file":"testCaseResult.cjs","names":["z"],"sources":["../../src/types/testCaseResult.ts"],"sourcesContent":["import { z } from 'zod';\n\nexport const TEST_CASE_RESULT_PREFIX = 'TEST_CASE_RESULT ';\n\nconst testCaseResultOutputFileSchema = z.object({\n path: z.string(),\n data: z.string(),\n encoding: z.literal('base64').optional(),\n});\n\nexport const testCaseResultSchema = z.object({\n testCaseId: z.string(),\n decisionCode: z.number().int(),\n exitStatus: z.number().int().optional(),\n stdin: z.string().optional(),\n stdout: z.string().optional(),\n stderr: z.string().optional(),\n timeSeconds: z.number().optional(),\n memoryBytes: z.number().optional(),\n feedbackMarkdown: z.string().optional(),\n outputFiles: z.array(testCaseResultOutputFileSchema).optional(),\n});\n\nexport type TestCaseResult = z.infer<typeof testCaseResultSchema>;\n"],"mappings":"kCAEA,MAEM,EAAiCA,EAAAA,EAAE,OAAO,CAC9C,KAAMA,EAAAA,EAAE,OAAO,EACf,KAAMA,EAAAA,EAAE,OAAO,EACf,SAAUA,EAAAA,EAAE,QAAQ,QAAQ,CAAC,CAAC,SAAS,CACzC,CAAC,EAEY,EAAuBA,EAAAA,EAAE,OAAO,CAC3C,WAAYA,EAAAA,EAAE,OAAO,EACrB,aAAcA,EAAAA,EAAE,OAAO,CAAC,CAAC,IAAI,EAC7B,WAAYA,EAAAA,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,EACtC,MAAOA,EAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,EAC3B,OAAQA,EAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,EAC5B,OAAQA,EAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,EAC5B,YAAaA,EAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,EACjC,YAAaA,EAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,EACjC,iBAAkBA,EAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,EACtC,YAAaA,EAAAA,EAAE,MAAM,CAA8B,CAAC,CAAC,SAAS,CAChE,CAAC"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{z as
|
|
2
|
-
//# sourceMappingURL=testCaseResult.js.map
|
|
1
|
+
import{z as e}from"zod";const t=`TEST_CASE_RESULT `,n=e.object({path:e.string(),data:e.string(),encoding:e.literal(`base64`).optional()}),r=e.object({testCaseId:e.string(),decisionCode:e.number().int(),exitStatus:e.number().int().optional(),stdin:e.string().optional(),stdout:e.string().optional(),stderr:e.string().optional(),timeSeconds:e.number().optional(),memoryBytes:e.number().optional(),feedbackMarkdown:e.string().optional(),outputFiles:e.array(n).optional()});export{t as TEST_CASE_RESULT_PREFIX,r as testCaseResultSchema};
|
|
2
|
+
//# sourceMappingURL=testCaseResult.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"testCaseResult.js","sources":["../../src/types/testCaseResult.ts"],"sourcesContent":["import { z } from 'zod';\n\nexport const TEST_CASE_RESULT_PREFIX = 'TEST_CASE_RESULT ';\n\nconst testCaseResultOutputFileSchema = z.object({\n path: z.string(),\n data: z.string(),\n encoding: z.literal('base64').optional(),\n});\n\nexport const testCaseResultSchema = z.object({\n testCaseId: z.string(),\n decisionCode: z.number().int(),\n exitStatus: z.number().int().optional(),\n stdin: z.string().optional(),\n stdout: z.string().optional(),\n stderr: z.string().optional(),\n timeSeconds: z.number().optional(),\n memoryBytes: z.number().optional(),\n feedbackMarkdown: z.string().optional(),\n outputFiles: z.array(testCaseResultOutputFileSchema).optional(),\n});\n\nexport type TestCaseResult = z.infer<typeof testCaseResultSchema>;\n"],"
|
|
1
|
+
{"version":3,"file":"testCaseResult.js","names":[],"sources":["../../src/types/testCaseResult.ts"],"sourcesContent":["import { z } from 'zod';\n\nexport const TEST_CASE_RESULT_PREFIX = 'TEST_CASE_RESULT ';\n\nconst testCaseResultOutputFileSchema = z.object({\n path: z.string(),\n data: z.string(),\n encoding: z.literal('base64').optional(),\n});\n\nexport const testCaseResultSchema = z.object({\n testCaseId: z.string(),\n decisionCode: z.number().int(),\n exitStatus: z.number().int().optional(),\n stdin: z.string().optional(),\n stdout: z.string().optional(),\n stderr: z.string().optional(),\n timeSeconds: z.number().optional(),\n memoryBytes: z.number().optional(),\n feedbackMarkdown: z.string().optional(),\n outputFiles: z.array(testCaseResultOutputFileSchema).optional(),\n});\n\nexport type TestCaseResult = z.infer<typeof testCaseResultSchema>;\n"],"mappings":"wBAEA,MAAa,EAA0B,oBAEjC,EAAiC,EAAE,OAAO,CAC9C,KAAM,EAAE,OAAO,EACf,KAAM,EAAE,OAAO,EACf,SAAU,EAAE,QAAQ,QAAQ,CAAC,CAAC,SAAS,CACzC,CAAC,EAEY,EAAuB,EAAE,OAAO,CAC3C,WAAY,EAAE,OAAO,EACrB,aAAc,EAAE,OAAO,CAAC,CAAC,IAAI,EAC7B,WAAY,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,EACtC,MAAO,EAAE,OAAO,CAAC,CAAC,SAAS,EAC3B,OAAQ,EAAE,OAAO,CAAC,CAAC,SAAS,EAC5B,OAAQ,EAAE,OAAO,CAAC,CAAC,SAAS,EAC5B,YAAa,EAAE,OAAO,CAAC,CAAC,SAAS,EACjC,YAAa,EAAE,OAAO,CAAC,CAAC,SAAS,EACjC,iBAAkB,EAAE,OAAO,CAAC,CAAC,SAAS,EACtC,YAAa,EAAE,MAAM,CAA8B,CAAC,CAAC,SAAS,CAChE,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@exercode/problem-utils",
|
|
3
|
-
"version": "1.16.
|
|
3
|
+
"version": "1.16.8",
|
|
4
4
|
"description": ":100: A set of utilities for judging programs on Exercode (https://exercode.willbooster.com/).",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"exercode",
|
|
@@ -50,11 +50,11 @@
|
|
|
50
50
|
},
|
|
51
51
|
"prettier": "@willbooster/prettier-config",
|
|
52
52
|
"dependencies": {
|
|
53
|
-
"@ai-sdk/amazon-bedrock": "4.0.
|
|
54
|
-
"@ai-sdk/google": "3.0.
|
|
55
|
-
"@ai-sdk/openai": "3.0.
|
|
56
|
-
"@ai-sdk/xai": "3.0.
|
|
57
|
-
"ai": "6.0.
|
|
53
|
+
"@ai-sdk/amazon-bedrock": "4.0.129",
|
|
54
|
+
"@ai-sdk/google": "3.0.88",
|
|
55
|
+
"@ai-sdk/openai": "3.0.80",
|
|
56
|
+
"@ai-sdk/xai": "3.0.102",
|
|
57
|
+
"ai": "6.0.219",
|
|
58
58
|
"front-matter": "4.0.2",
|
|
59
59
|
"zod": "4.4.3"
|
|
60
60
|
},
|
|
@@ -63,25 +63,25 @@
|
|
|
63
63
|
"@tsconfig/node-ts": "23.6.4",
|
|
64
64
|
"@tsconfig/node24": "24.0.4",
|
|
65
65
|
"@types/node": "24.13.2",
|
|
66
|
-
"@typescript/native-preview": "7.0.0-dev.20260622.1",
|
|
67
66
|
"@willbooster/oxfmt-config": "1.2.2",
|
|
68
67
|
"@willbooster/oxlint-config": "1.4.8",
|
|
69
68
|
"@willbooster/prettier-config": "10.4.0",
|
|
70
|
-
"@willbooster/wb": "13.
|
|
71
|
-
"build-ts": "17.1.
|
|
69
|
+
"@willbooster/wb": "13.26.0",
|
|
70
|
+
"build-ts": "17.1.31",
|
|
72
71
|
"conventional-changelog-conventionalcommits": "9.3.1",
|
|
73
72
|
"lefthook": "2.1.9",
|
|
74
|
-
"oxfmt": "0.
|
|
75
|
-
"oxlint": "1.
|
|
76
|
-
"oxlint-tsgolint": "0.
|
|
77
|
-
"prettier": "3.
|
|
78
|
-
"prettier-plugin-java": "2.
|
|
73
|
+
"oxfmt": "0.58.0",
|
|
74
|
+
"oxlint": "1.73.0",
|
|
75
|
+
"oxlint-tsgolint": "0.24.0",
|
|
76
|
+
"prettier": "3.9.4",
|
|
77
|
+
"prettier-plugin-java": "2.10.2",
|
|
79
78
|
"puppeteer": "24.43.1",
|
|
80
79
|
"semantic-release": "25.0.5",
|
|
81
80
|
"sort-package-json": "4.0.0",
|
|
82
|
-
"
|
|
81
|
+
"typescript": "7.0.2",
|
|
82
|
+
"vitest": "4.1.10"
|
|
83
83
|
},
|
|
84
|
-
"packageManager": "yarn@4.17.
|
|
84
|
+
"packageManager": "yarn@4.17.1",
|
|
85
85
|
"engines": {
|
|
86
86
|
"node": ">=24"
|
|
87
87
|
},
|
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
"use strict";function r(r,t){(null==t||t>r.length)&&(t=r.length);for(var e=0,n=Array(t);e<t;e++)n[e]=r[e];return n}function t(r){if(Array.isArray(r))return r}function e(t){if(Array.isArray(t))return r(t)}function n(r,t,e,n,o,i,a){try{var u=r[i](a),f=u.value}catch(r){return void e(r)}u.done?t(f):Promise.resolve(f).then(n,o)}function o(r,t,e){return(t=b(t))in r?Object.defineProperty(r,t,{value:e,enumerable:!0,configurable:!0,writable:!0}):r[t]=e,r}function i(r){if("undefined"!=typeof Symbol&&null!=r[Symbol.iterator]||null!=r["@@iterator"])return Array.from(r)}function a(r,t){var e=null==r?null:"undefined"!=typeof Symbol&&r[Symbol.iterator]||r["@@iterator"];if(null!=e){var n,o,i,a,u=[],f=!0,c=!1;try{if(i=(e=e.call(r)).next,0===t){if(Object(e)!==e)return;f=!1}else for(;!(f=(n=i.call(e)).done)&&(u.push(n.value),u.length!==t);f=!0);}catch(r){c=!0,o=r}finally{try{if(!f&&null!=e.return&&(a=e.return(),Object(a)!==a))return}finally{if(c)throw o}}return u}}function u(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function f(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function c(r,t){var e=Object.keys(r);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(r);t&&(n=n.filter(function(t){return Object.getOwnPropertyDescriptor(r,t).enumerable})),e.push.apply(e,n)}return e}function l(r,t){if(null==r)return{};var e={};for(var n in r)if({}.hasOwnProperty.call(r,n)){if(-1!==t.indexOf(n))continue;e[n]=r[n]}return e}function y(){
|
|
2
|
-
/*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE */
|
|
3
|
-
var r,t,e="function"==typeof Symbol?Symbol:{},n=e.iterator||"@@iterator",o=e.toStringTag||"@@toStringTag";function i(e,n,o,i){var f=n&&n.prototype instanceof u?n:u,c=Object.create(f.prototype);return p(c,"_invoke",function(e,n,o){var i,u,f,c=0,l=o||[],y=!1,p={p:0,n:0,v:r,a:s,f:s.bind(r,4),d:function(t,e){return i=t,u=0,f=r,p.n=e,a}};function s(e,n){for(u=e,f=n,t=0;!y&&c&&!o&&t<l.length;t++){var o,i=l[t],s=p.p,b=i[2];e>3?(o=b===n)&&(f=i[(u=i[4])?5:(u=3,3)],i[4]=i[5]=r):i[0]<=s&&((o=e<2&&s<i[1])?(u=0,p.v=n,p.n=i[1]):s<b&&(o=e<3||i[0]>n||n>b)&&(i[4]=e,i[5]=n,p.n=b,u=0))}if(o||e>1)return a;throw y=!0,n}return function(o,l,b){if(c>1)throw TypeError("Generator is already running");for(y&&1===l&&s(l,b),u=l,f=b;(t=u<2?r:f)||!y;){i||(u?u<3?(u>1&&(p.n=-1),s(u,f)):p.n=f:p.v=f);try{if(c=2,i){if(u||(o="next"),t=i[o]){if(!(t=t.call(i,f)))throw TypeError("iterator result is not an object");if(!t.done)return t;f=t.value,u<2&&(u=0)}else 1===u&&(t=i.return)&&t.call(i),u<2&&(f=TypeError("The iterator does not provide a '"+o+"' method"),u=1);i=r}else if((t=(y=p.n<0)?f:e.call(n,p))!==a)break}catch(t){i=r,u=1,f=t}finally{c=1}}return{value:t,done:y}}}(e,o,i),!0),c}var a={};function u(){}function f(){}function c(){}t=Object.getPrototypeOf;var l=[][n]?t(t([][n]())):(p(t={},n,function(){return this}),t),s=c.prototype=u.prototype=Object.create(l);function b(r){return Object.setPrototypeOf?Object.setPrototypeOf(r,c):(r.__proto__=c,p(r,o,"GeneratorFunction")),r.prototype=Object.create(s),r}return f.prototype=c,p(s,"constructor",c),p(c,"constructor",f),f.displayName="GeneratorFunction",p(c,o,"GeneratorFunction"),p(s),p(s,o,"Generator"),p(s,n,function(){return this}),p(s,"toString",function(){return"[object Generator]"}),(y=function(){return{w:i,m:b}})()}function p(r,t,e,n){var o=Object.defineProperty;try{o({},"",{})}catch(r){o=0}p=function(r,t,e,n){function i(t,e){p(r,t,function(r){return this._invoke(t,e,r)})}t?o?o(r,t,{value:e,enumerable:!n,configurable:!n,writable:!n}):r[t]=e:(i("next",0),i("throw",1),i("return",2))},p(r,t,e,n)}function s(r,t){if("object"!=typeof r||!r)return r;var e=r[Symbol.toPrimitive];if(void 0!==e){var n=e.call(r,t);if("object"!=typeof n)return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(r)}function b(r){var t=s(r,"string");return"symbol"==typeof t?t:t+""}function v(r){"@babel/helpers - typeof";return v="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(r){return typeof r}:function(r){return r&&"function"==typeof Symbol&&r.constructor===Symbol&&r!==Symbol.prototype?"symbol":typeof r},v(r)}function m(t,e){if(t){if("string"==typeof t)return r(t,e);var n={}.toString.call(t).slice(8,-1);return"Object"===n&&t.constructor&&(n=t.constructor.name),"Map"===n||"Set"===n?Array.from(t):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?r(t,e):void 0}}exports.arrayLikeToArray=r,exports.arrayWithHoles=t,exports.arrayWithoutHoles=e,exports.asyncToGenerator=function(r){return function(){var t=this,e=arguments;return new Promise(function(o,i){var a=r.apply(t,e);function u(r){n(a,o,i,u,f,"next",r)}function f(r){n(a,o,i,u,f,"throw",r)}u(void 0)})}},exports.createForOfIteratorHelper=function(r,t){var e="undefined"!=typeof Symbol&&r[Symbol.iterator]||r["@@iterator"];if(!e){if(Array.isArray(r)||(e=m(r))||t&&r&&"number"==typeof r.length){e&&(r=e);var n=0,o=function(){};return{s:o,n:function(){return n>=r.length?{done:!0}:{done:!1,value:r[n++]}},e:function(r){throw r},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,a=!0,u=!1;return{s:function(){e=e.call(r)},n:function(){var r=e.next();return a=r.done,r},e:function(r){u=!0,i=r},f:function(){try{a||null==e.return||e.return()}finally{if(u)throw i}}}},exports.defineProperty=o,exports.iterableToArray=i,exports.iterableToArrayLimit=a,exports.nonIterableRest=u,exports.nonIterableSpread=f,exports.objectSpread2=function(r){for(var t=1;t<arguments.length;t++){var e=null!=arguments[t]?arguments[t]:{};t%2?c(Object(e),!0).forEach(function(t){o(r,t,e[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(r,Object.getOwnPropertyDescriptors(e)):c(Object(e)).forEach(function(t){Object.defineProperty(r,t,Object.getOwnPropertyDescriptor(e,t))})}return r},exports.objectWithoutProperties=function(r,t){if(null==r)return{};var e,n,o=l(r,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(r);for(n=0;n<i.length;n++)e=i[n],-1===t.indexOf(e)&&{}.propertyIsEnumerable.call(r,e)&&(o[e]=r[e])}return o},exports.objectWithoutPropertiesLoose=l,exports.regenerator=y,exports.regeneratorDefine=p,exports.regeneratorValues=function(r){if(null!=r){var t=r["function"==typeof Symbol&&Symbol.iterator||"@@iterator"],e=0;if(t)return t.call(r);if("function"==typeof r.next)return r;if(!isNaN(r.length))return{next:function(){return r&&e>=r.length&&(r=void 0),{value:r&&r[e++],done:!r}}}}throw new TypeError(typeof r+" is not iterable")},exports.slicedToArray=function(r,e){return t(r)||a(r,e)||m(r,e)||u()},exports.toConsumableArray=function(r){return e(r)||i(r)||m(r)||f()},exports.toPrimitive=s,exports.toPropertyKey=b,exports.typeof=v,exports.unsupportedIterableToArray=m;
|
|
4
|
-
//# sourceMappingURL=_rollupPluginBabelHelpers.cjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"_rollupPluginBabelHelpers.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;"}
|
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
function r(r,t){(null==t||t>r.length)&&(t=r.length);for(var e=0,n=Array(t);e<t;e++)n[e]=r[e];return n}function t(r){if(Array.isArray(r))return r}function e(t){if(Array.isArray(t))return r(t)}function n(r,t,e,n,o,i,a){try{var u=r[i](a),f=u.value}catch(r){return void e(r)}u.done?t(f):Promise.resolve(f).then(n,o)}function o(r){return function(){var t=this,e=arguments;return new Promise(function(o,i){var a=r.apply(t,e);function u(r){n(a,o,i,u,f,"next",r)}function f(r){n(a,o,i,u,f,"throw",r)}u(void 0)})}}function i(r,t){var e="undefined"!=typeof Symbol&&r[Symbol.iterator]||r["@@iterator"];if(!e){if(Array.isArray(r)||(e=S(r))||t&&r&&"number"==typeof r.length){e&&(r=e);var n=0,o=function(){};return{s:o,n:function(){return n>=r.length?{done:!0}:{done:!1,value:r[n++]}},e:function(r){throw r},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,a=!0,u=!1;return{s:function(){e=e.call(r)},n:function(){var r=e.next();return a=r.done,r},e:function(r){u=!0,i=r},f:function(){try{a||null==e.return||e.return()}finally{if(u)throw i}}}}function a(r,t,e){return(t=j(t))in r?Object.defineProperty(r,t,{value:e,enumerable:!0,configurable:!0,writable:!0}):r[t]=e,r}function u(r){if("undefined"!=typeof Symbol&&null!=r[Symbol.iterator]||null!=r["@@iterator"])return Array.from(r)}function f(r,t){var e=null==r?null:"undefined"!=typeof Symbol&&r[Symbol.iterator]||r["@@iterator"];if(null!=e){var n,o,i,a,u=[],f=!0,c=!1;try{if(i=(e=e.call(r)).next,0===t){if(Object(e)!==e)return;f=!1}else for(;!(f=(n=i.call(e)).done)&&(u.push(n.value),u.length!==t);f=!0);}catch(r){c=!0,o=r}finally{try{if(!f&&null!=e.return&&(a=e.return(),Object(a)!==a))return}finally{if(c)throw o}}return u}}function c(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function l(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function y(r,t){var e=Object.keys(r);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(r);t&&(n=n.filter(function(t){return Object.getOwnPropertyDescriptor(r,t).enumerable})),e.push.apply(e,n)}return e}function s(r){for(var t=1;t<arguments.length;t++){var e=null!=arguments[t]?arguments[t]:{};t%2?y(Object(e),!0).forEach(function(t){a(r,t,e[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(r,Object.getOwnPropertyDescriptors(e)):y(Object(e)).forEach(function(t){Object.defineProperty(r,t,Object.getOwnPropertyDescriptor(e,t))})}return r}function p(r,t){if(null==r)return{};var e,n,o=b(r,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(r);for(n=0;n<i.length;n++)e=i[n],-1===t.indexOf(e)&&{}.propertyIsEnumerable.call(r,e)&&(o[e]=r[e])}return o}function b(r,t){if(null==r)return{};var e={};for(var n in r)if({}.hasOwnProperty.call(r,n)){if(-1!==t.indexOf(n))continue;e[n]=r[n]}return e}function v(){
|
|
2
|
-
/*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE */
|
|
3
|
-
var r,t,e="function"==typeof Symbol?Symbol:{},n=e.iterator||"@@iterator",o=e.toStringTag||"@@toStringTag";function i(e,n,o,i){var f=n&&n.prototype instanceof u?n:u,c=Object.create(f.prototype);return m(c,"_invoke",function(e,n,o){var i,u,f,c=0,l=o||[],y=!1,s={p:0,n:0,v:r,a:p,f:p.bind(r,4),d:function(t,e){return i=t,u=0,f=r,s.n=e,a}};function p(e,n){for(u=e,f=n,t=0;!y&&c&&!o&&t<l.length;t++){var o,i=l[t],p=s.p,b=i[2];e>3?(o=b===n)&&(f=i[(u=i[4])?5:(u=3,3)],i[4]=i[5]=r):i[0]<=p&&((o=e<2&&p<i[1])?(u=0,s.v=n,s.n=i[1]):p<b&&(o=e<3||i[0]>n||n>b)&&(i[4]=e,i[5]=n,s.n=b,u=0))}if(o||e>1)return a;throw y=!0,n}return function(o,l,b){if(c>1)throw TypeError("Generator is already running");for(y&&1===l&&p(l,b),u=l,f=b;(t=u<2?r:f)||!y;){i||(u?u<3?(u>1&&(s.n=-1),p(u,f)):s.n=f:s.v=f);try{if(c=2,i){if(u||(o="next"),t=i[o]){if(!(t=t.call(i,f)))throw TypeError("iterator result is not an object");if(!t.done)return t;f=t.value,u<2&&(u=0)}else 1===u&&(t=i.return)&&t.call(i),u<2&&(f=TypeError("The iterator does not provide a '"+o+"' method"),u=1);i=r}else if((t=(y=s.n<0)?f:e.call(n,s))!==a)break}catch(t){i=r,u=1,f=t}finally{c=1}}return{value:t,done:y}}}(e,o,i),!0),c}var a={};function u(){}function f(){}function c(){}t=Object.getPrototypeOf;var l=[][n]?t(t([][n]())):(m(t={},n,function(){return this}),t),y=c.prototype=u.prototype=Object.create(l);function s(r){return Object.setPrototypeOf?Object.setPrototypeOf(r,c):(r.__proto__=c,m(r,o,"GeneratorFunction")),r.prototype=Object.create(y),r}return f.prototype=c,m(y,"constructor",c),m(c,"constructor",f),f.displayName="GeneratorFunction",m(c,o,"GeneratorFunction"),m(y),m(y,o,"Generator"),m(y,n,function(){return this}),m(y,"toString",function(){return"[object Generator]"}),(v=function(){return{w:i,m:s}})()}function m(r,t,e,n){var o=Object.defineProperty;try{o({},"",{})}catch(r){o=0}m=function(r,t,e,n){function i(t,e){m(r,t,function(r){return this._invoke(t,e,r)})}t?o?o(r,t,{value:e,enumerable:!n,configurable:!n,writable:!n}):r[t]=e:(i("next",0),i("throw",1),i("return",2))},m(r,t,e,n)}function h(r){if(null!=r){var t=r["function"==typeof Symbol&&Symbol.iterator||"@@iterator"],e=0;if(t)return t.call(r);if("function"==typeof r.next)return r;if(!isNaN(r.length))return{next:function(){return r&&e>=r.length&&(r=void 0),{value:r&&r[e++],done:!r}}}}throw new TypeError(typeof r+" is not iterable")}function d(r,e){return t(r)||f(r,e)||S(r,e)||c()}function O(r){return e(r)||u(r)||S(r)||l()}function g(r,t){if("object"!=typeof r||!r)return r;var e=r[Symbol.toPrimitive];if(void 0!==e){var n=e.call(r,t);if("object"!=typeof n)return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(r)}function j(r){var t=g(r,"string");return"symbol"==typeof t?t:t+""}function w(r){"@babel/helpers - typeof";return w="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(r){return typeof r}:function(r){return r&&"function"==typeof Symbol&&r.constructor===Symbol&&r!==Symbol.prototype?"symbol":typeof r},w(r)}function S(t,e){if(t){if("string"==typeof t)return r(t,e);var n={}.toString.call(t).slice(8,-1);return"Object"===n&&t.constructor&&(n=t.constructor.name),"Map"===n||"Set"===n?Array.from(t):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?r(t,e):void 0}}export{r as arrayLikeToArray,t as arrayWithHoles,e as arrayWithoutHoles,o as asyncToGenerator,i as createForOfIteratorHelper,a as defineProperty,u as iterableToArray,f as iterableToArrayLimit,c as nonIterableRest,l as nonIterableSpread,s as objectSpread2,p as objectWithoutProperties,b as objectWithoutPropertiesLoose,v as regenerator,m as regeneratorDefine,h as regeneratorValues,d as slicedToArray,O as toConsumableArray,g as toPrimitive,j as toPropertyKey,w as typeof,S as unsupportedIterableToArray};
|
|
4
|
-
//# sourceMappingURL=_rollupPluginBabelHelpers.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"_rollupPluginBabelHelpers.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;"}
|
package/dist/index.cjs.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|
package/dist/index.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|