/proc/self/root/proc/1/task/1/cwd/node24/lib/node_modules/npm/node_modules/diff/libcjs/diff
This explorer reads the filesystem of the server it runs on, so /workspace/user isn't present here. Browsing and the terminal still work against this server's own disk from /.
"use strict";var __extends = (this && this.__extends) || (function () { var extendStatics = function (d, b) { extendStatics = Object.setPrototypeOf || ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; }; return extendStatics(d, b); }; return function (d, b) { if (typeof b !== "function" && b !== null) throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); extendStatics(d, b); function __() { this.constructor = d; } d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); };})();Object.defineProperty(exports, "__esModule", { value: true });exports.lineDiff = void 0;exports.diffLines = diffLines;exports.diffTrimmedLines = diffTrimmedLines;exports.tokenize = tokenize;var base_js_1 = require("./base.js");var params_js_1 = require("../util/params.js");var LineDiff = /** @class */ (function (_super) { __extends(LineDiff, _super); function LineDiff() { var _this = _super !== null && _super.apply(this, arguments) || this; _this.tokenize = tokenize; return _this; } LineDiff.prototype.equals = function (left, right, options) { // If we're ignoring whitespace, we need to normalise lines by stripping // whitespace before checking equality. (This has an annoying interaction // with newlineIsToken that requires special handling: if newlines get their // own token, then we DON'T want to trim the *newline* tokens down to empty // strings, since this would cause us to treat whitespace-only line content // as equal to a separator between lines, which would be weird and // inconsistent with the documented behavior of the options.) if (options.ignoreWhitespace) { if (!options.newlineIsToken || !left.includes('\n')) { left = left.trim(); } if (!options.newlineIsToken || !right.includes('\n')) { right = right.trim(); } } else if (options.ignoreNewlineAtEof && !options.newlineIsToken) { if (left.endsWith('\n')) { left = left.slice(0, -1); } if (right.endsWith('\n')) { right = right.slice(0, -1); } } return _super.prototype.equals.call(this, left, right, options); }; return LineDiff;}(base_js_1.default));exports.lineDiff = new LineDiff();function diffLines(oldStr, newStr, options) { return exports.lineDiff.diff(oldStr, newStr, options);}function diffTrimmedLines(oldStr, newStr, options) { options = (0, params_js_1.generateOptions)(options, { ignoreWhitespace: true }); return exports.lineDiff.diff(oldStr, newStr, options);}// Exported standalone so it can be used from jsonDiff too.function tokenize(value, options) { if (options.stripTrailingCr) { // remove one \r before \n to match GNU diff's --strip-trailing-cr behavior value = value.replace(/\r\n/g, '\n'); } var retLines = [], linesAndNewlines = value.split(/(\n|\r\n)/); // Ignore the final empty token that occurs if the string ends with a new line if (!linesAndNewlines[linesAndNewlines.length - 1]) { linesAndNewlines.pop(); } // Merge the content and line separators into single tokens for (var i = 0; i < linesAndNewlines.length; i++) { var line = linesAndNewlines[i]; if (i % 2 && !options.newlineIsToken) { retLines[retLines.length - 1] += line; } else { retLines.push(line); } } return retLines;}