File Explorer

/var/lang/lib/node_modules/npm/node_modules/postcss-selector-parser/dist/selectors

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 /.

container.js15.3 KB · 433 lines
"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 __());    };})();var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {    if (k2 === undefined) k2 = k;    var desc = Object.getOwnPropertyDescriptor(m, k);    if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {      desc = { enumerable: true, get: function() { return m[k]; } };    }    Object.defineProperty(o, k2, desc);}) : (function(o, m, k, k2) {    if (k2 === undefined) k2 = k;    o[k2] = m[k];}));var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {    Object.defineProperty(o, "default", { enumerable: true, value: v });}) : function(o, v) {    o["default"] = v;});var __importStar = (this && this.__importStar) || (function () {    var ownKeys = function(o) {        ownKeys = Object.getOwnPropertyNames || function (o) {            var ar = [];            for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;            return ar;        };        return ownKeys(o);    };    return function (mod) {        if (mod && mod.__esModule) return mod;        var result = {};        if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);        __setModuleDefault(result, mod);        return result;    };})();var __values = (this && this.__values) || function(o) {    var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;    if (m) return m.call(o);    if (o && typeof o.length === "number") return {        next: function () {            if (o && i >= o.length) o = void 0;            return { value: o && o[i++], done: !o };        }    };    throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");};var __read = (this && this.__read) || function (o, n) {    var m = typeof Symbol === "function" && o[Symbol.iterator];    if (!m) return o;    var i = m.call(o), r, ar = [], e;    try {        while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);    }    catch (error) { e = { error: error }; }    finally {        try {            if (r && !r.done && (m = i["return"])) m.call(i);        }        finally { if (e) throw e.error; }    }    return ar;};var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {    if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {        if (ar || !(i in from)) {            if (!ar) ar = Array.prototype.slice.call(from, 0, i);            ar[i] = from[i];        }    }    return to.concat(ar || Array.prototype.slice.call(from));};var __importDefault = (this && this.__importDefault) || function (mod) {    return (mod && mod.__esModule) ? mod : { "default": mod };};Object.defineProperty(exports, "__esModule", { value: true });var util_1 = require("../util");var node_1 = __importDefault(require("./node"));var types = __importStar(require("./types"));var Container = /** @class */ (function (_super) {    __extends(Container, _super);    function Container(opts) {        var _this = _super.call(this, opts) || this;        if (!_this.nodes) {            _this.nodes = [];        }        return _this;    }    Container.prototype.append = function (selector) {        selector.parent = this;        this.nodes.push(selector);        return this;    };    Container.prototype.prepend = function (selector) {        selector.parent = this;        this.nodes.unshift(selector);        for (var id in this.indexes) {            this.indexes[id]++;        }        return this;    };    Container.prototype.at = function (index) {        return this.nodes[index];    };    Container.prototype.index = function (child) {        if (typeof child === "number") {            return child;        }        return this.nodes.indexOf(child);    };    Object.defineProperty(Container.prototype, "first", {        get: function () {            return this.at(0);        },        enumerable: false,        configurable: true    });    Object.defineProperty(Container.prototype, "last", {        get: function () {            return this.at(this.length - 1);        },        enumerable: false,        configurable: true    });    Object.defineProperty(Container.prototype, "length", {        get: function () {            return this.nodes.length;        },        enumerable: false,        configurable: true    });    Container.prototype.removeChild = function (child) {        child = this.index(child);        this.at(child).parent = undefined;        this.nodes.splice(child, 1);        var index;        for (var id in this.indexes) {            index = this.indexes[id];            if (index >= child) {                this.indexes[id] = index - 1;            }        }        return this;    };    Container.prototype.removeAll = function () {        var e_1, _a;        try {            for (var _b = __values(this.nodes), _c = _b.next(); !_c.done; _c = _b.next()) {                var node = _c.value;                node.parent = undefined;            }        }        catch (e_1_1) { e_1 = { error: e_1_1 }; }        finally {            try {                if (_c && !_c.done && (_a = _b.return)) _a.call(_b);            }            finally { if (e_1) throw e_1.error; }        }        this.nodes = [];        return this;    };    Container.prototype.empty = function () {        return this.removeAll();    };    Container.prototype.insertAfter = function (oldNode, newNode) {        var _a;        newNode.parent = this;        var oldIndex = this.index(oldNode);        var resetNode = [];        for (var i = 2; i < arguments.length; i++) {            resetNode.push(arguments[i]);        }        (_a = this.nodes).splice.apply(_a, __spreadArray([oldIndex + 1, 0, newNode], __read(resetNode), false));        newNode.parent = this;        var index;        for (var id in this.indexes) {            index = this.indexes[id];            if (oldIndex < index) {                this.indexes[id] = index + arguments.length - 1;            }        }        return this;    };    Container.prototype.insertBefore = function (oldNode, newNode) {        var _a;        newNode.parent = this;        var oldIndex = this.index(oldNode);        var resetNode = [];        for (var i = 2; i < arguments.length; i++) {            resetNode.push(arguments[i]);        }        (_a = this.nodes).splice.apply(_a, __spreadArray([oldIndex, 0, newNode], __read(resetNode), false));        newNode.parent = this;        var index;        for (var id in this.indexes) {            index = this.indexes[id];            if (index >= oldIndex) {                this.indexes[id] = index + arguments.length - 1;            }        }        return this;    };    Container.prototype._findChildAtPosition = function (line, col) {        var found = undefined;        this.each(function (node) {            if (node.atPosition) {                var foundChild = node.atPosition(line, col);                if (foundChild) {                    found = foundChild;                    return false;                }            }            else if (node.isAtPosition(line, col)) {                found = node;                return false;            }        });        return found;    };    /**     * Return the most specific node at the line and column number given.     * The source location is based on the original parsed location, locations aren't     * updated as selector nodes are mutated.     *     * Note that this location is relative to the location of the first character     * of the selector, and not the location of the selector in the overall document     * when used in conjunction with postcss.     *     * If not found, returns undefined.     * @param {number} line The line number of the node to find. (1-based index)     * @param {number} col  The column number of the node to find. (1-based index)     */    Container.prototype.atPosition = function (line, col) {        if (this.isAtPosition(line, col)) {            return this._findChildAtPosition(line, col) || this;        }        else {            return undefined;        }    };    Container.prototype._inferEndPosition = function () {        if (this.last && this.last.source && this.last.source.end) {            this.source = this.source || {};            this.source.end = this.source.end || {};            Object.assign(this.source.end, this.last.source.end);        }    };    Container.prototype.each = function (callback) {        if (!this.lastEach) {            this.lastEach = 0;        }        if (!this.indexes) {            this.indexes = {};        }        this.lastEach++;        var id = this.lastEach;        this.indexes[id] = 0;        if (!this.length) {            return undefined;        }        var index, result;        while (this.indexes[id] < this.length) {            index = this.indexes[id];            result = callback(this.at(index), index);            if (result === false) {                break;            }            this.indexes[id] += 1;        }        delete this.indexes[id];        if (result === false) {            return false;        }    };    Container.prototype.walk = function (callback, depth) {        if (depth === void 0) { depth = 0; }        // Bound recursion so a pathologically deep node tree raises a catchable        // error instead of overflowing the call stack (CVE-2026-9358 / CWE-674).        if (depth > util_1.MAX_NESTING_DEPTH) {            throw new Error("Cannot walk selector: nesting depth exceeds the maximum of ".concat(util_1.MAX_NESTING_DEPTH, "."));        }        return this.each(function (node, i) {            var result = callback(node, i);            if (result !== false && node.length) {                result = node.walk(callback, depth + 1);            }            if (result === false) {                return false;            }        });    };    Container.prototype.walkAttributes = function (callback) {        var _this = this;        return this.walk(function (selector) {            if (selector.type === types.ATTRIBUTE) {                return callback.call(_this, selector);            }        });    };    Container.prototype.walkClasses = function (callback) {        var _this = this;        return this.walk(function (selector) {            if (selector.type === types.CLASS) {                return callback.call(_this, selector);            }        });    };    Container.prototype.walkCombinators = function (callback) {        var _this = this;        return this.walk(function (selector) {            if (selector.type === types.COMBINATOR) {                return callback.call(_this, selector);            }        });    };    Container.prototype.walkComments = function (callback) {        var _this = this;        return this.walk(function (selector) {            if (selector.type === types.COMMENT) {                return callback.call(_this, selector);            }        });    };    Container.prototype.walkIds = function (callback) {        var _this = this;        return this.walk(function (selector) {            if (selector.type === types.ID) {                return callback.call(_this, selector);            }        });    };    Container.prototype.walkNesting = function (callback) {        var _this = this;        return this.walk(function (selector) {            if (selector.type === types.NESTING) {                return callback.call(_this, selector);            }        });    };    Container.prototype.walkPseudos = function (callback) {        var _this = this;        return this.walk(function (selector) {            if (selector.type === types.PSEUDO) {                return callback.call(_this, selector);            }        });    };    Container.prototype.walkTags = function (callback) {        var _this = this;        return this.walk(function (selector) {            if (selector.type === types.TAG) {                return callback.call(_this, selector);            }        });    };    Container.prototype.walkUniversals = function (callback) {        var _this = this;        return this.walk(function (selector) {            if (selector.type === types.UNIVERSAL) {                return callback.call(_this, selector);            }        });    };    Container.prototype.split = function (callback) {        var _this = this;        var current = [];        return this.reduce(function (memo, node, index) {            var split = callback.call(_this, node);            current.push(node);            if (split) {                memo.push(current);                current = [];            }            else if (index === _this.length - 1) {                memo.push(current);            }            return memo;        }, []);    };    Container.prototype.map = function (callback) {        return this.nodes.map(callback);    };    Container.prototype.reduce = function (callback, memo) {        return this.nodes.reduce(callback, memo);    };    Container.prototype.every = function (callback) {        return this.nodes.every(callback);    };    Container.prototype.some = function (callback) {        return this.nodes.some(callback);    };    Container.prototype.filter = function (callback) {        return this.nodes.filter(callback);    };    Container.prototype.sort = function (callback) {        return this.nodes.sort(callback);    };    Container.prototype.toString = function (options) {        if (options === void 0) { options = {}; }        return this._stringify(options, 0, (0, util_1.resolveMaxNestingDepth)(options.maxNestingDepth));    };    Container.prototype._stringify = function (options, depth, max) {        var _this = this;        return this.map(function (child) { return _this._stringifyChild(child, options, depth, max); }).join("");    };    // Serialize a child node. Historically `toString` used `this.map(String)`,    // which leniently coerced anything — including raw arrays inserted via    // `replaceWith(array)` / `insertBefore` / `insertAfter` (e.g. Tailwind's    // `:merge()` expansion). Fall back to `String(child)` for values that are not    // parser nodes so that behaviour is preserved.    Container.prototype._stringifyChild = function (child, options, depth, max) {        return typeof child._stringify === "function"            ? child._stringify(options, depth, max)            : String(child);    };    return Container;}(node_1.default));exports.default = Container;//# sourceMappingURL=container.js.map