File Explorer

/proc/self/root/proc/self/root/var/runtime/node_modules/@aws-sdk/xml-builder/dist-cjs

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

index.js3.3 KB · 132 lines
'use strict'; var xmlParser = require('./xml-parser'); const ATTR_ESCAPE_RE = /[&<>"]/g;const ATTR_ESCAPE_MAP = {    "&": "&amp;",    "<": "&lt;",    ">": "&gt;",    '"': "&quot;",};function escapeAttribute(value) {    return value.replace(ATTR_ESCAPE_RE, (ch) => ATTR_ESCAPE_MAP[ch]);} const ELEMENT_ESCAPE_RE = /[&"'<>\r\n\u0085\u2028]/g;const ELEMENT_ESCAPE_MAP = {    "&": "&amp;",    '"': "&quot;",    "'": "&apos;",    "<": "&lt;",    ">": "&gt;",    "\r": "&#x0D;",    "\n": "&#x0A;",    "\u0085": "&#x85;",    "\u2028": "&#x2028;",};function escapeElement(value) {    return value.replace(ELEMENT_ESCAPE_RE, (ch) => ELEMENT_ESCAPE_MAP[ch]);} class XmlText {    value;    constructor(value) {        this.value = value;    }    toString() {        return escapeElement("" + this.value);    }} class XmlNode {    name;    children;    attributes = {};    static of(name, childText, withName) {        const node = new XmlNode(name);        if (childText !== undefined) {            node.addChildNode(new XmlText(childText));        }        if (withName !== undefined) {            node.withName(withName);        }        return node;    }    constructor(name, children = []) {        this.name = name;        this.children = children;    }    withName(name) {        this.name = name;        return this;    }    addAttribute(name, value) {        this.attributes[name] = value;        return this;    }    addChildNode(child) {        this.children.push(child);        return this;    }    removeAttribute(name) {        delete this.attributes[name];        return this;    }    n(name) {        this.name = name;        return this;    }    c(child) {        this.children.push(child);        return this;    }    a(name, value) {        if (value != null) {            this.attributes[name] = value;        }        return this;    }    cc(input, field, withName = field) {        if (input[field] != null) {            const node = XmlNode.of(field, input[field]).withName(withName);            this.c(node);        }    }    l(input, listName, memberName, valueProvider) {        if (input[listName] != null) {            const nodes = valueProvider();            nodes.map((node) => {                node.withName(memberName);                this.c(node);            });        }    }    lc(input, listName, memberName, valueProvider) {        if (input[listName] != null) {            const nodes = valueProvider();            const containerNode = new XmlNode(memberName);            nodes.map((node) => {                containerNode.c(node);            });            this.c(containerNode);        }    }    toString() {        const hasChildren = Boolean(this.children.length);        let xmlText = `<${this.name}`;        const attributes = this.attributes;        for (const attributeName of Object.keys(attributes)) {            const attribute = attributes[attributeName];            if (attribute != null) {                xmlText += ` ${attributeName}="${escapeAttribute("" + attribute)}"`;            }        }        return (xmlText += !hasChildren ? "/>" : `>${this.children.map((c) => c.toString()).join("")}</${this.name}>`);    }} exports.parseXML = xmlParser.parseXML;exports.XmlNode = XmlNode;exports.XmlText = XmlText;