Socket
Socket
Sign inDemoInstall

htmlparser2

Package Overview
Dependencies
10
Maintainers
1
Versions
76
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

Comparing version 3.9.2 to 3.10.0

6

lib/FeedHandler.js

@@ -1,4 +0,4 @@

var index = require("./index.js"),
DomHandler = index.DomHandler,
DomUtils = index.DomUtils;
var index = require("./index.js");
var DomHandler = index.DomHandler;
var DomUtils = index.DomUtils;

@@ -5,0 +5,0 @@ //TODO: make this a streamable handler

@@ -1,3 +0,3 @@

var Parser = require("./Parser.js"),
DomHandler = require("domhandler");
var Parser = require("./Parser.js");
var DomHandler = require("domhandler");

@@ -4,0 +4,0 @@ function defineProp(name, value){

@@ -80,15 +80,22 @@ var Tokenizer = require("./Tokenizer.js");

wbr: true,
//common self closing svg elements
path: true,
circle: true,
ellipse: true,
line: true,
rect: true,
use: true,
stop: true,
polyline: true,
polygon: true
};
var foreignContextElements = {
__proto__: null,
math: true,
svg: true
}
var htmlIntegrationElements = {
__proto__: null,
mi: true,
mo: true,
mn: true,
ms: true,
mtext: true,
"annotation-xml": true,
foreignObject: true,
desc: true,
title: true
}
var re_nameEnd = /\s|\//;

@@ -105,2 +112,3 @@

this._stack = [];
this._foreignContext = [];

@@ -111,7 +119,7 @@ this.startIndex = 0;

this._lowerCaseTagNames = "lowerCaseTags" in this._options ?
!!this._options.lowerCaseTags :
!this._options.xmlMode;
!!this._options.lowerCaseTags :
!this._options.xmlMode;
this._lowerCaseAttributeNames = "lowerCaseAttributeNames" in this._options ?
!!this._options.lowerCaseAttributeNames :
!this._options.xmlMode;
!!this._options.lowerCaseAttributeNames :
!this._options.xmlMode;

@@ -165,2 +173,4 @@ if(this._options.Tokenizer) {

this._stack.push(name);
if(name in foreignContextElements) this._foreignContext.push(true);
else if(name in htmlIntegrationElements) this._foreignContext.push(false);
}

@@ -213,3 +223,4 @@

Parser.prototype.onselfclosingtag = function(){
if(this._options.xmlMode || this._options.recognizeSelfClosing){
if(this._options.xmlMode || this._options.recognizeSelfClosing
|| this._foreignContext[this._foreignContext.length - 1]){
this._closeCurrentTag();

@@ -233,2 +244,5 @@ } else {

this._stack.pop();
if((name in foreignContextElements) || (name in htmlIntegrationElements)){
this._foreignContext.pop();
}
}

@@ -235,0 +249,0 @@ };

module.exports = Tokenizer;
var decodeCodePoint = require("entities/lib/decode_codepoint.js"),
entityMap = require("entities/maps/entities.json"),
legacyMap = require("entities/maps/legacy.json"),
xmlMap = require("entities/maps/xml.json"),
var decodeCodePoint = require("entities/lib/decode_codepoint.js");
var entityMap = require("entities/maps/entities.json");
var legacyMap = require("entities/maps/legacy.json");
var xmlMap = require("entities/maps/xml.json");
i = 0,
var i = 0;
TEXT = i++,
BEFORE_TAG_NAME = i++, //after <
IN_TAG_NAME = i++,
IN_SELF_CLOSING_TAG = i++,
BEFORE_CLOSING_TAG_NAME = i++,
IN_CLOSING_TAG_NAME = i++,
AFTER_CLOSING_TAG_NAME = i++,
var TEXT = i++;
var BEFORE_TAG_NAME = i++; //after <
var IN_TAG_NAME = i++;
var IN_SELF_CLOSING_TAG = i++;
var BEFORE_CLOSING_TAG_NAME = i++;
var IN_CLOSING_TAG_NAME = i++;
var AFTER_CLOSING_TAG_NAME = i++;
//attributes
BEFORE_ATTRIBUTE_NAME = i++,
IN_ATTRIBUTE_NAME = i++,
AFTER_ATTRIBUTE_NAME = i++,
BEFORE_ATTRIBUTE_VALUE = i++,
IN_ATTRIBUTE_VALUE_DQ = i++, // "
IN_ATTRIBUTE_VALUE_SQ = i++, // '
IN_ATTRIBUTE_VALUE_NQ = i++,
//attributes
var BEFORE_ATTRIBUTE_NAME = i++;
var IN_ATTRIBUTE_NAME = i++;
var AFTER_ATTRIBUTE_NAME = i++;
var BEFORE_ATTRIBUTE_VALUE = i++;
var IN_ATTRIBUTE_VALUE_DQ = i++; // "
var IN_ATTRIBUTE_VALUE_SQ = i++; // '
var IN_ATTRIBUTE_VALUE_NQ = i++;
//declarations
BEFORE_DECLARATION = i++, // !
IN_DECLARATION = i++,
//declarations
var BEFORE_DECLARATION = i++; // !
var IN_DECLARATION = i++;
//processing instructions
IN_PROCESSING_INSTRUCTION = i++, // ?
//processing instructions
var IN_PROCESSING_INSTRUCTION = i++; // ?
//comments
BEFORE_COMMENT = i++,
IN_COMMENT = i++,
AFTER_COMMENT_1 = i++,
AFTER_COMMENT_2 = i++,
//comments
var BEFORE_COMMENT = i++;
var IN_COMMENT = i++;
var AFTER_COMMENT_1 = i++;
var AFTER_COMMENT_2 = i++;
//cdata
BEFORE_CDATA_1 = i++, // [
BEFORE_CDATA_2 = i++, // C
BEFORE_CDATA_3 = i++, // D
BEFORE_CDATA_4 = i++, // A
BEFORE_CDATA_5 = i++, // T
BEFORE_CDATA_6 = i++, // A
IN_CDATA = i++, // [
AFTER_CDATA_1 = i++, // ]
AFTER_CDATA_2 = i++, // ]
//cdata
var BEFORE_CDATA_1 = i++; // [
var BEFORE_CDATA_2 = i++; // C
var BEFORE_CDATA_3 = i++; // D
var BEFORE_CDATA_4 = i++; // A
var BEFORE_CDATA_5 = i++; // T
var BEFORE_CDATA_6 = i++; // A
var IN_CDATA = i++; // [
var AFTER_CDATA_1 = i++; // ]
var AFTER_CDATA_2 = i++; // ]
//special tags
BEFORE_SPECIAL = i++, //S
BEFORE_SPECIAL_END = i++, //S
//special tags
var BEFORE_SPECIAL = i++; //S
var BEFORE_SPECIAL_END = i++; //S
BEFORE_SCRIPT_1 = i++, //C
BEFORE_SCRIPT_2 = i++, //R
BEFORE_SCRIPT_3 = i++, //I
BEFORE_SCRIPT_4 = i++, //P
BEFORE_SCRIPT_5 = i++, //T
AFTER_SCRIPT_1 = i++, //C
AFTER_SCRIPT_2 = i++, //R
AFTER_SCRIPT_3 = i++, //I
AFTER_SCRIPT_4 = i++, //P
AFTER_SCRIPT_5 = i++, //T
var BEFORE_SCRIPT_1 = i++; //C
var BEFORE_SCRIPT_2 = i++; //R
var BEFORE_SCRIPT_3 = i++; //I
var BEFORE_SCRIPT_4 = i++; //P
var BEFORE_SCRIPT_5 = i++; //T
var AFTER_SCRIPT_1 = i++; //C
var AFTER_SCRIPT_2 = i++; //R
var AFTER_SCRIPT_3 = i++; //I
var AFTER_SCRIPT_4 = i++; //P
var AFTER_SCRIPT_5 = i++; //T
BEFORE_STYLE_1 = i++, //T
BEFORE_STYLE_2 = i++, //Y
BEFORE_STYLE_3 = i++, //L
BEFORE_STYLE_4 = i++, //E
AFTER_STYLE_1 = i++, //T
AFTER_STYLE_2 = i++, //Y
AFTER_STYLE_3 = i++, //L
AFTER_STYLE_4 = i++, //E
var BEFORE_STYLE_1 = i++; //T
var BEFORE_STYLE_2 = i++; //Y
var BEFORE_STYLE_3 = i++; //L
var BEFORE_STYLE_4 = i++; //E
var AFTER_STYLE_1 = i++; //T
var AFTER_STYLE_2 = i++; //Y
var AFTER_STYLE_3 = i++; //L
var AFTER_STYLE_4 = i++; //E
BEFORE_ENTITY = i++, //&
BEFORE_NUMERIC_ENTITY = i++, //#
IN_NAMED_ENTITY = i++,
IN_NUMERIC_ENTITY = i++,
IN_HEX_ENTITY = i++, //X
var BEFORE_ENTITY = i++; //&
var BEFORE_NUMERIC_ENTITY = i++; //#
var IN_NAMED_ENTITY = i++;
var IN_NUMERIC_ENTITY = i++;
var IN_HEX_ENTITY = i++; //X
j = 0,
var j = 0;
SPECIAL_NONE = j++,
SPECIAL_SCRIPT = j++,
SPECIAL_STYLE = j++;
var SPECIAL_NONE = j++;
var SPECIAL_SCRIPT = j++;
var SPECIAL_STYLE = j++;

@@ -91,8 +91,2 @@ function whitespace(c){

function characterState(char, SUCCESS){
return function(c){
if(c === char) this._state = SUCCESS;
};
}
function ifElseState(upper, SUCCESS, FAILURE){

@@ -183,3 +177,3 @@ var lower = upper.toLowerCase();

this._state = (!this._xmlMode && (c === "s" || c === "S")) ?
BEFORE_SPECIAL : IN_TAG_NAME;
BEFORE_SPECIAL : IN_TAG_NAME;
this._sectionStart = this._index;

@@ -333,4 +327,4 @@ }

this._state = c === "[" ? BEFORE_CDATA_1 :
c === "-" ? BEFORE_COMMENT :
IN_DECLARATION;
c === "-" ? BEFORE_COMMENT :
IN_DECLARATION;
};

@@ -407,3 +401,6 @@

Tokenizer.prototype._stateAfterCdata1 = characterState("]", AFTER_CDATA_2);
Tokenizer.prototype._stateAfterCdata1 = function(c){
if(c === "]") this._state = AFTER_CDATA_2;
else this._state = IN_CDATA;
};

@@ -410,0 +407,0 @@ Tokenizer.prototype._stateAfterCdata2 = function(c){

module.exports = Stream;
var Parser = require("./Parser.js"),
WritableStream = require("stream").Writable || require("readable-stream").Writable,
StringDecoder = require("string_decoder").StringDecoder,
Buffer = require("buffer").Buffer;
var Parser = require("./Parser.js");
var WritableStream = require("readable-stream").Writable;
var StringDecoder = require("string_decoder").StringDecoder;
var Buffer = require("buffer").Buffer;

@@ -25,2 +25,2 @@ function Stream(cbs, options){

cb();
};
};
{
"name": "htmlparser2",
"description": "Fast & forgiving HTML/XML/RSS parser",
"version": "3.9.2",
"version": "3.10.0",
"author": "Felix Boehm <me@feedic.com>",

@@ -43,9 +43,9 @@ "keywords": [

"inherits": "^2.0.1",
"readable-stream": "^2.0.2"
"readable-stream": "^3.0.6"
},
"devDependencies": {
"coveralls": "^2.11.4",
"coveralls": "^3.0.1",
"eslint": "^4.19.1",
"istanbul": "^0.4.3",
"mocha": "^2.2.5",
"eslint": "^2.12.0",
"mocha": "^5.2.0",
"mocha-lcov-reporter": "^1.2.0"

@@ -52,0 +52,0 @@ },

@@ -13,3 +13,3 @@ # htmlparser2

A live demo of htmlparser2 is available [here](http://demos.forbeslindesay.co.uk/htmlparser2/).
A live demo of htmlparser2 is available [here](https://astexplorer.net/#/2AmVrGuGVJ).

@@ -16,0 +16,0 @@ ## Usage

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc