nodeGet(node, cssSelector) {
    const thisOut = {
      id: node.id === "" ? void 0 : node.id,
      name: node.name,
      children: node.childNodes.length,
      type: node.nodeName,
      attributes: void 0,
      isUserInput: node.validity ? true : false,
      userInput: !node.validity ? void 0 : {
        value: node.value,
        validity: void 0,
        willValidate: node.willValidate,
        valueAsDate: node.valueAsDate,
        valueAsNumber: node.valueAsNumber,
        type: node.type
      }
    };
    if (["UL", "OL"].includes(node.nodeName)) {
      const listEntries = _a.doc.querySelectorAll(`${cssSelector} li`);
      if (listEntries) {
        thisOut.list = {
          "entries": listEntries.length
        };
      }
    }
    if (node.nodeName === "DL") {
      const listEntries = _a.doc.querySelectorAll(`${cssSelector} dt`);
      if (listEntries) {
        thisOut.list = {
          "entries": listEntries.length
        };
      }
    }
    if (node.nodeName === "TABLE") {
      const bodyEntries = _a.doc.querySelectorAll(`${cssSelector} > tbody > tr`);
      const headEntries = _a.doc.querySelectorAll(`${cssSelector} > thead > tr`);
      const cols = _a.doc.querySelectorAll(`${cssSelector} > tbody > tr:last-child > *`);
      if (bodyEntries || headEntries || cols) {
        thisOut.table = {
          "headRows": headEntries ? headEntries.length : 0,
          "bodyRows": bodyEntries ? bodyEntries.length : 0,
          "columns": cols ? cols.length : 0
        };
      }
    }
    if (node.nodeName !== "#text" && node.attributes && node.attributes.length > 0) {
      thisOut.attributes = {};
      for (const attrib of node.attributes) {
        if (attrib.name !== "id") {
          thisOut.attributes[attrib.name] = node.attributes[attrib.name].value;
        }
        if (attrib.name === "class") thisOut.classes = Array.from(node.classList);
      }
    }
    if (node.nodeName === "#text") {
      thisOut.text = node.textContent;
    }
    if (node.validity) thisOut.userInput.validity = {};
    for (const v in node.validity) {
      thisOut.userInput.validity[v] = node.validity[v];
    }
    return thisOut;
  }
Get standard data from a DOM node.
@param {*} node DOM node to examine
@param {string} cssSelector Identify the DOM element to get data from
@returns {object} Standardised data object