@marko/compiler
Advanced tools
| "use strict";exports.__esModule = true;exports.default = appendAgentFixGuide;var _tryLoadTranslator = _interopRequireDefault(require("./try-load-translator"));function _interopRequireDefault(e) {return e && e.__esModule ? e : { default: e };} | ||
| const applied = Symbol("markoAgentFixGuide"); | ||
| function appendAgentFixGuide(error, translator) { | ||
| if (error instanceof Error && !error[applied] && isCodingAgent()) { | ||
| const guide = fixGuide(translator); | ||
| if (guide) { | ||
| // `message` is locked against Babel mutations, so redefine rather than assign. | ||
| error[applied] = true; | ||
| Object.defineProperty(error, "message", { | ||
| value: error.message + guide, | ||
| enumerable: true, | ||
| writable: true, | ||
| configurable: true | ||
| }); | ||
| } | ||
| } | ||
| return error; | ||
| } | ||
| // Env markers terminal coding agents set. | ||
| function isCodingAgent() { | ||
| return ( | ||
| typeof process === "object" && ( | ||
| process.env.CLAUDECODE || | ||
| process.env.CLAUDE_CODE || | ||
| process.env.CURSOR_AGENT || | ||
| process.env.GEMINI_CLI || | ||
| process.env.CODEX_SANDBOX || | ||
| process.env.CODEX_THREAD_ID || | ||
| process.env.AI_AGENT)); | ||
| } | ||
| function fixGuide(translator) { | ||
| // Only resolved specifiers expose a cheat sheet; inline objects (tests, | ||
| // embedders) opt out. | ||
| if (typeof translator !== "string") return undefined; | ||
| try { | ||
| const cheatsheet = (0, _tryLoadTranslator.default)(translator)?.cheatsheet; | ||
| return cheatsheet ? | ||
| `\n\nFix guide: READ ${cheatsheet} before writing a fix.` : | ||
| undefined; | ||
| } catch { | ||
| // Leave the real compile error untouched if the translator can't load. | ||
| return undefined; | ||
| } | ||
| } |
+15
-6
@@ -16,2 +16,3 @@ "use strict";exports.__esModule = true;exports._clearDefaults = _clearDefaults;exports.compile = compile;exports.compileFile = compileFile;exports.compileFileSync = compileFileSync;exports.compileSync = compileSync;exports.configure = configure;exports.getRuntimeEntryFiles = getRuntimeEntryFiles;exports.getRuntimeVersion = getRuntimeVersion;exports.version = exports.taglib = exports.globalConfig = void 0;var _babelUtils = require("@marko/compiler/babel-utils"); | ||
| var taglib = _interopRequireWildcard(require("./taglib"));exports.taglib = taglib; | ||
| var _agentFixGuide = _interopRequireDefault(require("./util/agent-fix-guide")); | ||
| var _buildCodeFrame = require("./util/build-code-frame"); | ||
@@ -36,5 +37,9 @@ var _mergeErrors = _interopRequireDefault(require("./util/merge-errors")); | ||
| const markoConfig = loadMarkoConfig(config); | ||
| const babelConfig = await loadBabelConfig(filename, markoConfig); | ||
| const babelResult = await (0, _babel.transformAsync)(src, babelConfig); | ||
| return buildResult(src, filename, markoConfig.errorRecovery, babelResult); | ||
| try { | ||
| const babelConfig = await loadBabelConfig(filename, markoConfig); | ||
| const babelResult = await (0, _babel.transformAsync)(src, babelConfig); | ||
| return buildResult(src, filename, markoConfig.errorRecovery, babelResult); | ||
| } catch (err) { | ||
| throw (0, _agentFixGuide.default)(err, markoConfig.translator); | ||
| } | ||
| } | ||
@@ -44,5 +49,9 @@ | ||
| const markoConfig = loadMarkoConfig(config); | ||
| const babelConfig = loadBabelConfigSync(filename, markoConfig); | ||
| const babelResult = (0, _babel.transformSync)(src, babelConfig); | ||
| return buildResult(src, filename, markoConfig.errorRecovery, babelResult); | ||
| try { | ||
| const babelConfig = loadBabelConfigSync(filename, markoConfig); | ||
| const babelResult = (0, _babel.transformSync)(src, babelConfig); | ||
| return buildResult(src, filename, markoConfig.errorRecovery, babelResult); | ||
| } catch (err) { | ||
| throw (0, _agentFixGuide.default)(err, markoConfig.translator); | ||
| } | ||
| } | ||
@@ -49,0 +58,0 @@ |
| "use strict";exports.__esModule = true;exports.default = _default;var _modules = _interopRequireDefault(require("@marko/compiler/modules")); | ||
| var _path = _interopRequireDefault(require("path")); | ||
@@ -8,6 +9,17 @@ var _config = _interopRequireDefault(require("../config"));function _interopRequireDefault(e) {return e && e.__esModule ? e : { default: e };} | ||
| if (typeof requested === "string") { | ||
| return ( | ||
| cache[requested] || ( | ||
| cache[requested] = _modules.default.require(_modules.default.resolve(requested)))); | ||
| let translator = cache[requested]; | ||
| if (!translator) { | ||
| const file = _modules.default.resolve(requested); | ||
| translator = _modules.default.require(file); | ||
| // The translator declares its LLM cheat sheet relative to its own module; | ||
| // resolve it to a cwd-relative path an agent can read directly. | ||
| if (typeof translator.cheatsheet === "string") { | ||
| translator.cheatsheet = _path.default.relative( | ||
| _modules.default.cwd, | ||
| _path.default.resolve(_path.default.dirname(file), translator.cheatsheet) | ||
| ); | ||
| } | ||
| cache[requested] = translator; | ||
| } | ||
| return translator; | ||
| } | ||
@@ -14,0 +26,0 @@ |
+1
-1
| { | ||
| "name": "@marko/compiler", | ||
| "version": "5.41.0", | ||
| "version": "5.41.1", | ||
| "description": "Marko template to JS compiler.", | ||
@@ -5,0 +5,0 @@ "keywords": [ |
Environment variable access
Supply chain riskPackage accesses environment variables, which may be a sign of credential stuffing or data theft.
Found 7 instances
5110971
0.05%71
1.43%124563
0.05%22
46.67%