New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

@bbob/html

Package Overview
Dependencies
Maintainers
0
Versions
59
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@bbob/html - npm Package Compare versions

Comparing version 4.1.1 to 4.2.0

60

dist/index.js

@@ -247,6 +247,6 @@ (function (global, factory) {

};
const tokenToText = (token)=>{
let text = OPEN_BRAKET;
const tokenToText = (token, openTag = OPEN_BRAKET, closeTag = CLOSE_BRAKET)=>{
let text = openTag;
text += getTokenValue(token);
text += CLOSE_BRAKET;
text += closeTag;
return text;

@@ -300,4 +300,4 @@ };

}
toString() {
return tokenToText(this);
toString({ openTag = OPEN_BRAKET, closeTag = CLOSE_BRAKET } = {}) {
return tokenToText(this, openTag, closeTag);
}

@@ -452,2 +452,3 @@ constructor(type, value, row = 0, col = 0, start = 0, end = 0){

const contextFreeTags = (options.contextFreeTags || []).filter(Boolean).map((tag)=>tag.toLowerCase());
const caseFreeTags = options.caseFreeTags || false;
const nestedMap = new Map();

@@ -491,4 +492,2 @@ const onToken = options.onToken || (()=>{});

* Emits newly created token to subscriber
* @param {Number} type
* @param {String} value
*/ function emitToken(type, value, startPos, endPos) {

@@ -686,8 +685,8 @@ const token = createTokenOfType(type, value, row, prevCol, startPos, endPos);

}
function isTokenNested(token) {
const value = openTag + SLASH + token.getValue();
function isTokenNested(tokenValue) {
const value = openTag + SLASH + tokenValue;
if (nestedMap.has(value)) {
return !!nestedMap.get(value);
} else {
const status = buffer.indexOf(value) > -1;
const status = caseFreeTags ? buffer.toLowerCase().indexOf(value.toLowerCase()) > -1 : buffer.indexOf(value) > -1;
nestedMap.set(value, status);

@@ -729,2 +728,3 @@ return status;

const onlyAllowTags = (options.onlyAllowTags || []).filter(Boolean).map((tag)=>tag.toLowerCase());
const caseFreeTags = options.caseFreeTags || false;
let tokenizer = null;

@@ -754,5 +754,6 @@ /**

function isTokenNested(token) {
const value = token.getValue();
const tokenValue = token.getValue();
const value = caseFreeTags ? tokenValue.toLowerCase() : tokenValue;
const { isTokenNested } = tokenizer || {};
if (!nestedTagsMap.has(value) && isTokenNested && isTokenNested(token)) {
if (!nestedTagsMap.has(value) && isTokenNested && isTokenNested(value)) {
nestedTagsMap.add(value);

@@ -766,3 +767,3 @@ return true;

*/ function isTagNested(tagName) {
return Boolean(nestedTagsMap.has(tagName));
return Boolean(nestedTagsMap.has(caseFreeTags ? tagName.toLowerCase() : tagName));
}

@@ -852,14 +853,20 @@ /**

*/ function handleTagEnd(token) {
const lastTagNode = nestedNodes.last();
if (isTagNode(lastTagNode)) {
lastTagNode.setEnd({
from: token.getStart(),
to: token.getEnd()
});
}
const tagName = token.getValue().slice(1);
const lastNestedNode = nestedNodes.flush();
flushTagNodes();
const lastNestedNode = nestedNodes.flush();
if (lastNestedNode) {
const nodes = getNodes();
if (isTagNode(lastNestedNode)) {
lastNestedNode.setEnd({
from: token.getStart(),
to: token.getEnd()
});
}
appendNodes(nodes, lastNestedNode);
} else if (!isTagNested(tagName)) {
const nodes = getNodes();
appendNodes(nodes, token.toString({
openTag,
closeTag
}));
} else if (typeof options.onError === "function") {

@@ -922,3 +929,6 @@ const tag = token.getValue();

// if tag is not allowed, just pass it as is
appendNodes(nodes, token.toString());
appendNodes(nodes, token.toString({
openTag,
closeTag
}));
}

@@ -929,3 +939,6 @@ } else if (token.isText()) {

// if tag is not allowed, just pass it as is
appendNodes(nodes, token.toString());
appendNodes(nodes, token.toString({
openTag,
closeTag
}));
}

@@ -950,2 +963,3 @@ }

contextFreeTags: options.contextFreeTags,
caseFreeTags: options.caseFreeTags,
enableEscapeTags: options.enableEscapeTags

@@ -952,0 +966,0 @@ });

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

!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports):"function"==typeof define&&define.amd?define(["exports"],e):e((t="undefined"!=typeof globalThis?globalThis:t||self).BbobHtml={})}(this,function(t){"use strict";function e(t){return"object"==typeof t&&null!==t&&"tag"in t}function r(t,e,r){return Object.keys(t).reduce((r,n)=>e(r,n,t),r)}function n(t){return t.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/'/g,"&#039;").replace(/(javascript|data|vbscript):/gi,"$1%3A")}function s(t,e){switch(typeof e){case"boolean":return e?""+t:"";case"number":return`${t}="${e}"`;case"string":return`${t}="${n(e)}"`;case"object":return`${t}="${n(JSON.stringify(e))}"`;default:return""}}function i(t){return null==t?"":r(t,(t,e,r)=>[...t,s(e,r[e])],[""]).join(" ")}let o=(t,e)=>{let n=r(e||{},(t,e,r)=>r[e]===e?r[e]:null,null);if(n){let r=s(t,n),o={...e};delete o[n+""];let u=i(o);return`${r}${u}`}return`${t}${i(e)}`},u=(t,r,n)=>{let s=t=>e(t)?t.toString({openTag:r,closeTag:n}):t+"";return Array.isArray(t)?t.reduce((t,e)=>null!==e?t+s(e):t,""):t?s(t):null};class a{attr(t,e){return void 0!==e&&(this.attrs[t]=e),this.attrs[t]}append(t){Array.isArray(this.content)&&this.content.push(t)}setStart(t){this.start=t}setEnd(t){this.end=t}get length(){return function t(r){return e(r)&&Array.isArray(r.content)?r.content.reduce((e,r)=>e+t(r),0):"string"==typeof r?(r+"").length:0}(this)}toTagStart({openTag:t="[",closeTag:e="]"}={}){let r=o(this.tag+"",this.attrs);return`${t}${r}${e}`}toTagEnd({openTag:t="[",closeTag:e="]"}={}){return`${t}/${this.tag}${e}`}toTagNode(){let t=new a((this.tag+"").toLowerCase(),this.attrs,this.content);return this.start&&t.setStart(this.start),this.end&&t.setEnd(this.end),t}toString({openTag:t="[",closeTag:e="]"}={}){let r=this.content?u(this.content,t,e):"",n=this.toTagStart({openTag:t,closeTag:e});return null===this.content||Array.isArray(this.content)&&0===this.content.length?n:`${n}${r}${this.toTagEnd({openTag:t,closeTag:e})}`}static create(t,e={},r=null,n){let s=new a(t,e,r);return n&&s.setStart(n),s}static isOf(t,e){return t.tag===e}constructor(t,e,r){this.tag=t,this.attrs=e,this.content=r}}let l=t=>t&&void 0!==t.v?t.v:"",h=t=>t&&t.l||0,c=t=>t&&t.r||0,g=t=>t&&t.s||0,f=t=>t&&t.e||0,p=t=>!!t&&void 0!==t.t&&(5===t.t||6===t.t||1===t.t),d=t=>!!t&&void 0!==t.t&&2===t.t,y=t=>47===l(t).charCodeAt(0),A=t=>!y(t),b=t=>!!t&&void 0!==t.t&&3===t.t,T=t=>!!t&&void 0!==t.t&&4===t.t,k=t=>{let e=l(t);return y(t)?e.slice(1):e},m=t=>"["+l(t)+"]";class x{get type(){return this.t}isEmpty(){return 0===this.t||isNaN(this.t)}isText(){return p(this)}isTag(){return d(this)}isAttrName(){return b(this)}isAttrValue(){return T(this)}isStart(){return A(this)}isEnd(){return y(this)}getName(){return k(this)}getValue(){return l(this)}getLine(){return h(this)}getColumn(){return c(this)}getStart(){return g(this)}getEnd(){return f(this)}toString(){return m(this)}constructor(t,e,r=0,n=0,s=0,i=0){this.l=r,this.r=n,this.t=t||0,this.v=e+"",this.s=s,this.e=i}}class v{skip(t=1,e){this.c.pos+=t,this.o&&this.o.onSkip&&!e&&this.o.onSkip()}hasNext(){return this.c.len>this.c.pos}getCurr(){return void 0===this.s[this.c.pos]?"":this.s[this.c.pos]}getPos(){return this.c.pos}getLength(){return this.c.len}getRest(){return this.s.substring(this.c.pos)}getNext(){let t=this.c.pos+1;return t<=this.s.length-1?this.s[t]:null}getPrev(){let t=this.c.pos-1;return void 0===this.s[t]?null:this.s[t]}isLast(){return this.c.pos===this.c.len}includes(t){return this.s.indexOf(t,this.c.pos)>=0}grabWhile(t,e){let r=0;if(this.hasNext())for(r=this.c.pos;this.hasNext()&&t(this.getCurr());)this.skip(1,e);return this.s.substring(r,this.c.pos)}grabN(t=0){return this.s.substring(this.c.pos,this.c.pos+t)}substrUntilChar(t){let{pos:e}=this.c,r=this.s.indexOf(t,e);return r>=0?this.s.substring(e,r):""}constructor(t,e={}){this.s=t,this.c={pos:0,len:t.length},this.o=e}}let C=(t,e)=>new v(t,e),N=(t,e)=>{for(;t.charAt(0)===e;)t=t.substring(1);for(;t.charAt(t.length-1)===e;)t=t.substring(0,t.length-1);return t},$=t=>t.replace('\\"','"'),S=[" "," "],w=["="," "," "],E=t=>S.indexOf(t)>=0,O=t=>"\\"===t,L=t=>w.indexOf(t)>=0,P=t=>"\n"===t,j=t=>$(N(t,'"'));class W{last(){return Array.isArray(this.n)&&this.n.length>0&&void 0!==this.n[this.n.length-1]?this.n[this.n.length-1]:null}flush(){return!!this.n.length&&this.n.pop()}push(t){this.n.push(t)}toArray(){return this.n}constructor(){this.n=[]}}let V=()=>new W;function z(t,r={}){var n;let s=r.openTag||"[",i=r.closeTag||"]",o=(r.onlyAllowTags||[]).filter(Boolean).map(t=>t.toLowerCase()),u=null,l=V(),h=V(),c=V(),g=V(),f=new Set;function p(){c.flush()&&g.flush()}function d(){let t=h.last();return t&&e(t)?t.content:l.toArray()}function y(t,e,r=!0){Array.isArray(t)&&void 0!==e&&(t.push(e.toTagStart({openTag:s,closeTag:i})),Array.isArray(e.content)&&e.content.length&&(e.content.forEach(e=>{t.push(e)}),r&&t.push(e.toTagEnd({openTag:s,closeTag:i}))))}function A(t,r){if(Array.isArray(t)&&void 0!==r){if(e(r)){var n;(n=r.tag,!o.length||o.indexOf(n.toLowerCase())>=0)?t.push(r.toTagNode()):y(t,r)}else t.push(r)}}(u=(r.createTokenizer?r.createTokenizer:function(t,e={}){let r=0,n=0,s=0,i=-1,o=0,u=0,a="",l=Array(Math.floor(t.length)),h=e.openTag||"[",c=e.closeTag||"]",g=!!e.enableEscapeTags,f=(e.contextFreeTags||[]).filter(Boolean).map(t=>t.toLowerCase()),p=new Map,d=e.onToken||(()=>{}),y=[c,h,'"',"\\"," "," ","=","\n","!"],A=[h," "," ","\n"],b=t=>y.indexOf(t)>=0,T=t=>-1===A.indexOf(t),k=t=>t===h||t===c||"\\"===t,m=()=>{s++},v=(t,e)=>{""!==a&&e&&(a=""),""===a&&f.includes(t.toLowerCase())&&(a=t)},N=C(t,{onSkip:m});function $(t,e,o,u){let a=function(t,e,r=0,n=0,s=0,i=0){return new x(t,e,r,n,s,i)}(t,e,r,n,o,u);d(a),n=s,l[i+=1]=a}return{tokenize:function(){for(o=0;N.hasNext();)switch(o){case 1:o=function(){let t=N.getCurr(),e=N.getNext();N.skip();let r=N.substrUntilChar(c),n=0===r.length||r.indexOf(h)>=0;if(e&&b(e)||n||N.isLast())return $(1,t),0;let s=-1===r.indexOf("="),i="/"===r[0];if(s||i){let t=N.getPos()-1,e=N.grabWhile(t=>t!==c),r=t+e.length+2;return N.skip(),$(2,e,t,r),v(e,i),0}return 2}();break;case 2:o=function(){let t=N.getPos(),e=C(N.grabWhile(t=>t!==c,!0),{onSkip:m}),r=e.includes(" ");for(u=0;e.hasNext();)u=function(t,e,r){if(1===u){let e=t.grabWhile(t=>!("="===t||E(t))),r=t.isLast(),n="="!==t.getCurr();return(t.skip(),r||n?$(4,j(e)):$(3,e),r)?0:n?1:2}if(2===u){let r=!1,s=t.grabWhile(n=>{let s='"'===n,i=t.getPrev(),o=t.getNext(),u="="===o,a=E(n),l=o&&E(o);return!!(r&&L(n))||(!s||"\\"===i||!!(r=!r)||!!u||!!l)&&(!!e||!a)});return(t.skip(),$(4,j(s)),'"'===t.getPrev()&&n++,t.isLast())?0:1}let s=r+t.getPos()-1,i=t.grabWhile(e=>!("="===e||E(e)||t.isLast()));return($(2,i,s,r+t.getLength()+1),v(i),t.skip(),n++,e)?2:t.includes("=")?1:2}(e,!r,t);return N.skip(),0}();break;default:o=function(){if(P(N.getCurr()))return $(6,N.getCurr()),N.skip(),s=0,n=0,r++,0;if(E(N.getCurr()))return $(5,N.grabWhile(E)),0;if(N.getCurr()===h){if(a){let t=h.length+1+a.length,e=`${h}/${a}`;if(N.grabN(t)===e)return 1}else if(N.includes(c))return 1;return $(1,N.getCurr()),N.skip(),n++,0}if(g){if(O(N.getCurr())){let t=N.getCurr(),e=N.getNext();return(N.skip(),e&&k(e))?(N.skip(),$(1,e)):$(1,t),0}return $(1,N.grabWhile(t=>T(t)&&!O(t))),0}return $(1,N.grabWhile(T)),0}()}return l.length=i+1,l},isTokenNested:function(e){let r=h+"/"+e.getValue();if(p.has(r))return!!p.get(r);{let e=t.indexOf(r)>-1;return p.set(r,e),e}}}})(t,{onToken:function(t){t.isTag()?(t.isStart()&&function(t){p();let e=a.create(t.getValue(),{},[],{from:t.getStart(),to:t.getEnd()}),r=function(t){let e=t.getValue(),{isTokenNested:r}=u||{};return!f.has(e)&&r&&r(t)?(f.add(e),!0):f.has(e)}(t);c.push(e),r?h.push(e):A(d(),e)}(t),t.isEnd()&&function(t){let n=h.last();e(n)&&n.setEnd({from:t.getStart(),to:t.getEnd()}),p();let s=h.flush();if(s)A(d(),s);else if("function"==typeof r.onError){let e=t.getValue(),n=t.getLine(),s=t.getColumn();r.onError({tagName:e,lineNumber:n,columnNumber:s})}}(t)):!function(t){var e;let r=c.last(),n=t.getValue(),s=(e=t.toString(),!!f.has(e)),i=d();if(null!==r){if(t.isAttrName()){g.push(n);let t=g.last();t&&r.attr(t,"")}else if(t.isAttrValue()){let t=g.last();t?(r.attr(t,n),g.flush()):r.attr(n,n)}else t.isText()?s?r.append(n):A(i,n):t.isTag()&&A(i,t.toString())}else t.isText()?A(i,n):t.isTag()&&A(i,t.toString())}(t)},openTag:s,closeTag:i,onlyAllowTags:r.onlyAllowTags,contextFreeTags:r.contextFreeTags,enableEscapeTags:r.enableEscapeTags})).tokenize();let b=h.flush();return null!==b&&b&&e(b)&&(n=b.tag,f.has(n))&&y(d(),b,!1),l.toArray()}let B=t=>"object"==typeof t&&null!==t,F=t=>"boolean"==typeof t;function M(t,e){if(Array.isArray(t))for(let r=0;r<t.length;r++)t[r]=M(e(t[r]),e);else B(t)&&"content"in t&&M(t.content,e);return t}function U(t,e){return typeof t==typeof e&&(B(t)&&null!==t?Array.isArray(t)?t.every(t=>[].some.call(e,e=>U(t,e))):!!(B(t)&&B(e))&&Object.keys(t).every(r=>{let n=e[r],s=t[r];return B(s)&&B(n)?U(s,n):F(s)?s!==(null===n):n===s}):t===e)}function _(t,e){return t.messages=[...t.messages||[]],t.options={...e,...t.options},t.walk=function(t){return M(this,t)},t.match=function(t,e){return Array.isArray(t)?M(this,r=>{for(let n=0;n<t.length;n++)if(U(t[n],r))return e(r);return r}):M(this,r=>U(t,r)?e(r):r)},t}function q(t,r){let{stripTags:n=!1}=r||{};if(null==t)return"";if("string"==typeof t||"number"==typeof t)return t+"";if(Array.isArray(t))return H(t,r);if(e(t)){if(n)return H(t.content,r);let e=i(t.attrs);return null===t.content?"<"+t.tag+e+"/>":"<"+t.tag+e+">"+H(t.content,r)+"</"+t.tag+">"}return""}function H(t,e){return t&&Array.isArray(t)?t.reduce((t,r)=>t+q(r,e),""):t?q(t,e):""}function J(t,e,r){return(function(t){let e="function"==typeof t?[t]:t||[],r=()=>"";return{process(t,n){let s=n||{skipParse:!1,parser:z,render:r,data:null},i=s.parser||z,o=s.render,u=s.data||null;if("function"!=typeof i)throw Error("C1");let a=s.skipParse&&Array.isArray(t)?t:i(t,s),l=s.skipParse&&Array.isArray(t)?_(t||[],s):_(a,s);for(let t=0;t<e.length;t++){let r=e[t];"function"==typeof r&&o&&(l=_(r(l,{parse:i,render:o,iterate:M,data:u})||l,s))}return{get html(){if("function"!=typeof o)throw Error("C2");return o(l,l.options)},tree:l,raw:a,messages:l.messages}}}})(e).process(t,{...r,render:H}).html}t.default=J,t.html=J,t.render=H,Object.defineProperty(t,"__esModule",{value:!0})});
!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports):"function"==typeof define&&define.amd?define(["exports"],e):e((t="undefined"!=typeof globalThis?globalThis:t||self).BbobHtml={})}(this,function(t){"use strict";let e="[",r="]";function n(t){return"object"==typeof t&&null!==t&&"tag"in t}function s(t,e,r){return Object.keys(t).reduce((r,n)=>e(r,n,t),r)}function i(t){return t.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/'/g,"&#039;").replace(/(javascript|data|vbscript):/gi,"$1%3A")}function o(t,e){switch(typeof e){case"boolean":return e?""+t:"";case"number":return`${t}="${e}"`;case"string":return`${t}="${i(e)}"`;case"object":return`${t}="${i(JSON.stringify(e))}"`;default:return""}}function u(t){return null==t?"":s(t,(t,e,r)=>[...t,o(e,r[e])],[""]).join(" ")}let a=(t,e)=>{let r=s(e||{},(t,e,r)=>r[e]===e?r[e]:null,null);if(r){let n=o(t,r),s={...e};delete s[r+""];let i=u(s);return`${n}${i}`}return`${t}${u(e)}`},l=(t,e,r)=>{let s=t=>n(t)?t.toString({openTag:e,closeTag:r}):t+"";return Array.isArray(t)?t.reduce((t,e)=>null!==e?t+s(e):t,""):t?s(t):null};class h{attr(t,e){return void 0!==e&&(this.attrs[t]=e),this.attrs[t]}append(t){Array.isArray(this.content)&&this.content.push(t)}setStart(t){this.start=t}setEnd(t){this.end=t}get length(){return function t(e){return n(e)&&Array.isArray(e.content)?e.content.reduce((e,r)=>e+t(r),0):"string"==typeof e?(e+"").length:0}(this)}toTagStart({openTag:t=e,closeTag:n=r}={}){let s=a(this.tag+"",this.attrs);return`${t}${s}${n}`}toTagEnd({openTag:t=e,closeTag:n=r}={}){return`${t}/${this.tag}${n}`}toTagNode(){let t=new h((this.tag+"").toLowerCase(),this.attrs,this.content);return this.start&&t.setStart(this.start),this.end&&t.setEnd(this.end),t}toString({openTag:t=e,closeTag:n=r}={}){let s=this.content?l(this.content,t,n):"",i=this.toTagStart({openTag:t,closeTag:n});return null===this.content||Array.isArray(this.content)&&0===this.content.length?i:`${i}${s}${this.toTagEnd({openTag:t,closeTag:n})}`}static create(t,e={},r=null,n){let s=new h(t,e,r);return n&&s.setStart(n),s}static isOf(t,e){return t.tag===e}constructor(t,e,r){this.tag=t,this.attrs=e,this.content=r}}let c=t=>t&&void 0!==t.v?t.v:"",g=t=>t&&t.l||0,f=t=>t&&t.r||0,p=t=>t&&t.s||0,d=t=>t&&t.e||0,y=t=>!!t&&void 0!==t.t&&(5===t.t||6===t.t||1===t.t),A=t=>!!t&&void 0!==t.t&&2===t.t,b=t=>47===c(t).charCodeAt(0),T=t=>!b(t),k=t=>!!t&&void 0!==t.t&&3===t.t,m=t=>!!t&&void 0!==t.t&&4===t.t,x=t=>{let e=c(t);return b(t)?e.slice(1):e},C=(t,n=e,s=r)=>n+(c(t)+s);class w{get type(){return this.t}isEmpty(){return 0===this.t||isNaN(this.t)}isText(){return y(this)}isTag(){return A(this)}isAttrName(){return k(this)}isAttrValue(){return m(this)}isStart(){return T(this)}isEnd(){return b(this)}getName(){return x(this)}getValue(){return c(this)}getLine(){return g(this)}getColumn(){return f(this)}getStart(){return p(this)}getEnd(){return d(this)}toString({openTag:t=e,closeTag:n=r}={}){return C(this,t,n)}constructor(t,e,r=0,n=0,s=0,i=0){this.l=r,this.r=n,this.t=t||0,this.v=e+"",this.s=s,this.e=i}}class v{skip(t=1,e){this.c.pos+=t,this.o&&this.o.onSkip&&!e&&this.o.onSkip()}hasNext(){return this.c.len>this.c.pos}getCurr(){return void 0===this.s[this.c.pos]?"":this.s[this.c.pos]}getPos(){return this.c.pos}getLength(){return this.c.len}getRest(){return this.s.substring(this.c.pos)}getNext(){let t=this.c.pos+1;return t<=this.s.length-1?this.s[t]:null}getPrev(){let t=this.c.pos-1;return void 0===this.s[t]?null:this.s[t]}isLast(){return this.c.pos===this.c.len}includes(t){return this.s.indexOf(t,this.c.pos)>=0}grabWhile(t,e){let r=0;if(this.hasNext())for(r=this.c.pos;this.hasNext()&&t(this.getCurr());)this.skip(1,e);return this.s.substring(r,this.c.pos)}grabN(t=0){return this.s.substring(this.c.pos,this.c.pos+t)}substrUntilChar(t){let{pos:e}=this.c,r=this.s.indexOf(t,e);return r>=0?this.s.substring(e,r):""}constructor(t,e={}){this.s=t,this.c={pos:0,len:t.length},this.o=e}}let N=(t,e)=>new v(t,e),S=(t,e)=>{for(;t.charAt(0)===e;)t=t.substring(1);for(;t.charAt(t.length-1)===e;)t=t.substring(0,t.length-1);return t},$=t=>t.replace('\\"','"'),E=[" "," "],L=["="," "," "],O=t=>E.indexOf(t)>=0,P=t=>"\\"===t,j=t=>L.indexOf(t)>=0,W=t=>"\n"===t,V=t=>$(S(t,'"'));class F{last(){return Array.isArray(this.n)&&this.n.length>0&&void 0!==this.n[this.n.length-1]?this.n[this.n.length-1]:null}flush(){return!!this.n.length&&this.n.pop()}push(t){this.n.push(t)}toArray(){return this.n}constructor(){this.n=[]}}let z=()=>new F;function B(t,s={}){let i=s.openTag||e,o=s.closeTag||r,u=(s.onlyAllowTags||[]).filter(Boolean).map(t=>t.toLowerCase()),a=s.caseFreeTags||!1,l=null,c=z(),g=z(),f=z(),p=z(),d=new Set;function y(t){return!!d.has(a?t.toLowerCase():t)}function A(){f.flush()&&p.flush()}function b(){let t=g.last();return t&&n(t)?t.content:c.toArray()}function T(t,e,r=!0){Array.isArray(t)&&void 0!==e&&(t.push(e.toTagStart({openTag:i,closeTag:o})),Array.isArray(e.content)&&e.content.length&&(e.content.forEach(e=>{t.push(e)}),r&&t.push(e.toTagEnd({openTag:i,closeTag:o}))))}function k(t,e){if(Array.isArray(t)&&void 0!==e){if(n(e)){var r;(r=e.tag,!u.length||u.indexOf(r.toLowerCase())>=0)?t.push(e.toTagNode()):T(t,e)}else t.push(e)}}(l=(s.createTokenizer?s.createTokenizer:function(t,n={}){let s=0,i=0,o=0,u=-1,a=0,l=0,h="",c=Array(Math.floor(t.length)),g=n.openTag||e,f=n.closeTag||r,p=!!n.enableEscapeTags,d=(n.contextFreeTags||[]).filter(Boolean).map(t=>t.toLowerCase()),y=n.caseFreeTags||!1,A=new Map,b=n.onToken||(()=>{}),T=[f,g,'"',"\\"," "," ","=","\n","!"],k=[g," "," ","\n"],m=t=>T.indexOf(t)>=0,x=t=>-1===k.indexOf(t),C=t=>t===g||t===f||"\\"===t,v=()=>{o++},S=(t,e)=>{""!==h&&e&&(h=""),""===h&&d.includes(t.toLowerCase())&&(h=t)},$=N(t,{onSkip:v});function E(t,e,r,n){let a=function(t,e,r=0,n=0,s=0,i=0){return new w(t,e,r,n,s,i)}(t,e,s,i,r,n);b(a),i=o,c[u+=1]=a}return{tokenize:function(){for(a=0;$.hasNext();)switch(a){case 1:a=function(){let t=$.getCurr(),e=$.getNext();$.skip();let r=$.substrUntilChar(f),n=0===r.length||r.indexOf(g)>=0;if(e&&m(e)||n||$.isLast())return E(1,t),0;let s=-1===r.indexOf("="),i="/"===r[0];if(s||i){let t=$.getPos()-1,e=$.grabWhile(t=>t!==f),r=t+e.length+2;return $.skip(),E(2,e,t,r),S(e,i),0}return 2}();break;case 2:a=function(){let t=$.getPos(),e=N($.grabWhile(t=>t!==f,!0),{onSkip:v}),r=e.includes(" ");for(l=0;e.hasNext();)l=function(t,e,r){if(1===l){let e=t.grabWhile(t=>!("="===t||O(t))),r=t.isLast(),n="="!==t.getCurr();return(t.skip(),r||n?E(4,V(e)):E(3,e),r)?0:n?1:2}if(2===l){let r=!1,n=t.grabWhile(n=>{let s='"'===n,i=t.getPrev(),o=t.getNext(),u="="===o,a=O(n),l=o&&O(o);return!!(r&&j(n))||(!s||"\\"===i||!!(r=!r)||!!u||!!l)&&(!!e||!a)});return(t.skip(),E(4,V(n)),'"'===t.getPrev()&&i++,t.isLast())?0:1}let n=r+t.getPos()-1,s=t.grabWhile(e=>!("="===e||O(e)||t.isLast()));return(E(2,s,n,r+t.getLength()+1),S(s),t.skip(),i++,e)?2:t.includes("=")?1:2}(e,!r,t);return $.skip(),0}();break;default:a=function(){if(W($.getCurr()))return E(6,$.getCurr()),$.skip(),o=0,i=0,s++,0;if(O($.getCurr()))return E(5,$.grabWhile(O)),0;if($.getCurr()===g){if(h){let t=g.length+1+h.length,e=`${g}/${h}`;if($.grabN(t)===e)return 1}else if($.includes(f))return 1;return E(1,$.getCurr()),$.skip(),i++,0}if(p){if(P($.getCurr())){let t=$.getCurr(),e=$.getNext();return($.skip(),e&&C(e))?($.skip(),E(1,e)):E(1,t),0}return E(1,$.grabWhile(t=>x(t)&&!P(t))),0}return E(1,$.grabWhile(x)),0}()}return c.length=u+1,c},isTokenNested:function(e){let r=g+"/"+e;if(A.has(r))return!!A.get(r);{let e=y?t.toLowerCase().indexOf(r.toLowerCase())>-1:t.indexOf(r)>-1;return A.set(r,e),e}}}})(t,{onToken:function(t){t.isTag()?(t.isStart()&&function(t){A();let e=h.create(t.getValue(),{},[],{from:t.getStart(),to:t.getEnd()}),r=function(t){let e=t.getValue(),r=a?e.toLowerCase():e,{isTokenNested:n}=l||{};return!d.has(r)&&n&&n(r)?(d.add(r),!0):d.has(r)}(t);f.push(e),r?g.push(e):k(b(),e)}(t),t.isEnd()&&function(t){let e=t.getValue().slice(1),r=g.flush();if(A(),r){let e=b();n(r)&&r.setEnd({from:t.getStart(),to:t.getEnd()}),k(e,r)}else if(y(e)){if("function"==typeof s.onError){let e=t.getValue(),r=t.getLine(),n=t.getColumn();s.onError({tagName:e,lineNumber:r,columnNumber:n})}}else k(b(),t.toString({openTag:i,closeTag:o}))}(t)):!function(t){let e=f.last(),r=t.getValue(),n=y(t.toString()),s=b();if(null!==e){if(t.isAttrName()){p.push(r);let t=p.last();t&&e.attr(t,"")}else if(t.isAttrValue()){let t=p.last();t?(e.attr(t,r),p.flush()):e.attr(r,r)}else t.isText()?n?e.append(r):k(s,r):t.isTag()&&k(s,t.toString({openTag:i,closeTag:o}))}else t.isText()?k(s,r):t.isTag()&&k(s,t.toString({openTag:i,closeTag:o}))}(t)},openTag:i,closeTag:o,onlyAllowTags:s.onlyAllowTags,contextFreeTags:s.contextFreeTags,caseFreeTags:s.caseFreeTags,enableEscapeTags:s.enableEscapeTags})).tokenize();let m=g.flush();return null!==m&&m&&n(m)&&y(m.tag)&&T(b(),m,!1),c.toArray()}let M=t=>"object"==typeof t&&null!==t,U=t=>"boolean"==typeof t;function _(t,e){if(Array.isArray(t))for(let r=0;r<t.length;r++)t[r]=_(e(t[r]),e);else M(t)&&"content"in t&&_(t.content,e);return t}function q(t,e){return typeof t==typeof e&&(M(t)&&null!==t?Array.isArray(t)?t.every(t=>[].some.call(e,e=>q(t,e))):!!(M(t)&&M(e))&&Object.keys(t).every(r=>{let n=e[r],s=t[r];return M(s)&&M(n)?q(s,n):U(s)?s!==(null===n):n===s}):t===e)}function H(t,e){return t.messages=[...t.messages||[]],t.options={...e,...t.options},t.walk=function(t){return _(this,t)},t.match=function(t,e){return Array.isArray(t)?_(this,r=>{for(let n=0;n<t.length;n++)if(q(t[n],r))return e(r);return r}):_(this,r=>q(t,r)?e(r):r)},t}function J(t,e){let{stripTags:r=!1}=e||{};if(null==t)return"";if("string"==typeof t||"number"==typeof t)return t+"";if(Array.isArray(t))return R(t,e);if(n(t)){if(r)return R(t.content,e);let n=u(t.attrs);return null===t.content?"<"+t.tag+n+"/>":"<"+t.tag+n+">"+R(t.content,e)+"</"+t.tag+">"}return""}function R(t,e){return t&&Array.isArray(t)?t.reduce((t,r)=>t+J(r,e),""):t?J(t,e):""}function D(t,e,r){return(function(t){let e="function"==typeof t?[t]:t||[],r=()=>"";return{process(t,n){let s=n||{skipParse:!1,parser:B,render:r,data:null},i=s.parser||B,o=s.render,u=s.data||null;if("function"!=typeof i)throw Error("C1");let a=s.skipParse&&Array.isArray(t)?t:i(t,s),l=s.skipParse&&Array.isArray(t)?H(t||[],s):H(a,s);for(let t=0;t<e.length;t++){let r=e[t];"function"==typeof r&&o&&(l=H(r(l,{parse:i,render:o,iterate:_,data:u})||l,s))}return{get html(){if("function"!=typeof o)throw Error("C2");return o(l,l.options)},tree:l,raw:a,messages:l.messages}}}})(e).process(t,{...r,render:R}).html}t.default=D,t.html=D,t.render=R,Object.defineProperty(t,"__esModule",{value:!0})});
{
"name": "@bbob/html",
"version": "4.1.1",
"version": "4.2.0",
"description": "A BBCode to HTML Renderer part of @bbob",

@@ -5,0 +5,0 @@ "keywords": [

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

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

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc