@atjson/renderer-hir
Advanced tools
Comparing version 0.5.20 to 0.7.0
"use strict"; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
const core_1 = require("@atjson/core"); | ||
const document_1 = require("@atjson/document"); | ||
const hir_1 = require("@atjson/hir"); | ||
@@ -15,9 +15,20 @@ const escape = { | ||
function escapeHTML(text) { | ||
return text.replace(/[&<>"'`=]/g, function (chr) { | ||
return escape[chr]; | ||
}); | ||
return text.replace(/[&<>"'`=]/g, (chr) => escape[chr]); | ||
} | ||
exports.escapeHTML = escapeHTML; | ||
function compile(renderer, node, state) { | ||
let generator = renderer.renderAnnotation(node, state); | ||
function flatten(array) { | ||
let flattenedArray = []; | ||
for (let i = 0, len = array.length; i < len; i++) { | ||
let item = array[i]; | ||
if (Array.isArray(item)) { | ||
flattenedArray.push(...flatten(item)); | ||
} | ||
else if (item != null) { | ||
flattenedArray.push(item); | ||
} | ||
} | ||
return flattenedArray; | ||
} | ||
function compile(renderer, node, state, schema) { | ||
let generator = renderer.renderAnnotation(node, state, schema); | ||
let result = generator.next(); | ||
@@ -27,11 +38,23 @@ if (result.done) { | ||
} | ||
return generator.next(node.children().map((childNode) => { | ||
let children = node.children(); | ||
return generator.next(flatten(children.map((childNode, index) => { | ||
state.set('previousAnnotation', children[index - 1]); | ||
state.set('nextAnnotation', children[index + 1]); | ||
if (childNode.type === 'text' && typeof childNode.text === 'string') { | ||
return renderer.renderText(childNode.text); | ||
return renderer.renderText(childNode.text, state); | ||
} | ||
else { | ||
return compile(renderer, childNode, state); | ||
return compile(renderer, childNode, state, schema); | ||
} | ||
})).value; | ||
}))).value; | ||
} | ||
function get(object, key) { | ||
if (key === '') | ||
return object; | ||
let [path, ...rest] = key.split('.'); | ||
if (object) { | ||
return get(object[path], rest.join('.')); | ||
} | ||
return null; | ||
} | ||
class State { | ||
@@ -48,7 +71,3 @@ constructor() { | ||
get(key) { | ||
let currentState = this._state[this._state.length - 1]; | ||
if (currentState) { | ||
return currentState[key]; | ||
} | ||
return null; | ||
return get(this._state[this._state.length - 1], key); | ||
} | ||
@@ -67,13 +86,16 @@ set(key, value) { | ||
class Renderer { | ||
*renderAnnotation(annotation, state, schema) { | ||
if (this[annotation.type]) { | ||
return yield* this[annotation.type](annotation.attributes, state, schema); | ||
} | ||
return yield; | ||
} | ||
renderText(text) { | ||
return text; | ||
} | ||
render(atjson) { | ||
render(document) { | ||
let annotationGraph; | ||
if (atjson instanceof core_1.AtJSON) { | ||
annotationGraph = new hir_1.HIR(atjson); | ||
if (document instanceof document_1.default) { | ||
annotationGraph = new hir_1.HIR(document); | ||
} | ||
else if (atjson instanceof hir_1.HIR) { | ||
annotationGraph = atjson; | ||
} | ||
else { | ||
@@ -83,3 +105,3 @@ throw new Error('Supplied arguments invalid.'); | ||
let state = new State(); | ||
let renderedDocument = compile(this, annotationGraph.rootNode, state); | ||
let renderedDocument = compile(this, annotationGraph.rootNode, state, document.schema); | ||
return renderedDocument; | ||
@@ -89,2 +111,2 @@ } | ||
exports.default = Renderer; | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSx1Q0FBc0M7QUFDdEMscUNBQTJDO0FBRTNDLE1BQU0sTUFBTSxHQUFHO0lBQ2IsR0FBRyxFQUFFLE9BQU87SUFDWixHQUFHLEVBQUUsTUFBTTtJQUNYLEdBQUcsRUFBRSxNQUFNO0lBQ1gsR0FBRyxFQUFFLFFBQVE7SUFDYixHQUFHLEVBQUUsUUFBUTtJQUNiLEdBQUcsRUFBRSxRQUFRO0lBQ2IsR0FBRyxFQUFFLFFBQVE7Q0FDZCxDQUFDO0FBRUYsb0JBQTJCLElBQVk7SUFDckMsTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsWUFBWSxFQUFFLFVBQVUsR0FBd0I7UUFDbEUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNyQixDQUFDLENBQUMsQ0FBQztBQUNMLENBQUM7QUFKRCxnQ0FJQztBQUVELGlCQUFpQixRQUFrQixFQUFFLElBQWEsRUFBRSxLQUFZO0lBQzlELElBQUksU0FBUyxHQUFHLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDdkQsSUFBSSxNQUFNLEdBQUcsU0FBUyxDQUFDLElBQUksRUFBRSxDQUFDO0lBQzlCLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1FBQ2hCLE1BQU0sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDO0lBQ3RCLENBQUM7SUFFRCxNQUFNLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsU0FBa0IsRUFBRSxFQUFFO1FBQy9ELEVBQUUsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxJQUFJLEtBQUssTUFBTSxJQUFJLE9BQU8sU0FBUyxDQUFDLElBQUksS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDO1lBQ3BF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 | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSwrQ0FBb0Q7QUFDcEQscUNBQTJDO0FBRTNDLE1BQU0sTUFBTSxHQUFHO0lBQ2IsR0FBRyxFQUFFLE9BQU87SUFDWixHQUFHLEVBQUUsTUFBTTtJQUNYLEdBQUcsRUFBRSxNQUFNO0lBQ1gsR0FBRyxFQUFFLFFBQVE7SUFDYixHQUFHLEVBQUUsUUFBUTtJQUNiLEdBQUcsRUFBRSxRQUFRO0lBQ2IsR0FBRyxFQUFFLFFBQVE7Q0FDZCxDQUFDO0FBRUYsb0JBQTJCLElBQVk7SUFDckMsTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsWUFBWSxFQUFFLENBQUMsR0FBd0IsRUFBRSxFQUFFLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7QUFDL0UsQ0FBQztBQUZELGdDQUVDO0FBRUQsaUJBQWlCLEtBQUs7SUFDcEIsSUFBSSxjQUFjLEdBQUcsRUFBRSxDQUFDO0lBQ3hCLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxHQUFHLEdBQUcsS0FBSyxDQUFDLE1BQU0sRUFBRSxDQUFDLEdBQUcsR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUM7UUFDakQsSUFBSSxJQUFJLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3BCLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ3hCLGNBQWMsQ0FBQyxJQUFJLENBQUMsR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztRQUN4QyxDQUFDO1FBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLElBQUksSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDO1lBQ3hCLGNBQWMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDNUIsQ0FB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 |
"use strict"; | ||
import { AtJSON } from '@atjson/core'; | ||
import Document from '@atjson/document'; | ||
import { HIR } from '@atjson/hir'; | ||
@@ -14,8 +14,19 @@ const escape = { | ||
export function escapeHTML(text) { | ||
return text.replace(/[&<>"'`=]/g, function (chr) { | ||
return escape[chr]; | ||
}); | ||
return text.replace(/[&<>"'`=]/g, (chr) => escape[chr]); | ||
} | ||
function compile(renderer, node, state) { | ||
let generator = renderer.renderAnnotation(node, state); | ||
function flatten(array) { | ||
let flattenedArray = []; | ||
for (let i = 0, len = array.length; i < len; i++) { | ||
let item = array[i]; | ||
if (Array.isArray(item)) { | ||
flattenedArray.push(...flatten(item)); | ||
} | ||
else if (item != null) { | ||
flattenedArray.push(item); | ||
} | ||
} | ||
return flattenedArray; | ||
} | ||
function compile(renderer, node, state, schema) { | ||
let generator = renderer.renderAnnotation(node, state, schema); | ||
let result = generator.next(); | ||
@@ -25,11 +36,23 @@ if (result.done) { | ||
} | ||
return generator.next(node.children().map((childNode) => { | ||
let children = node.children(); | ||
return generator.next(flatten(children.map((childNode, index) => { | ||
state.set('previousAnnotation', children[index - 1]); | ||
state.set('nextAnnotation', children[index + 1]); | ||
if (childNode.type === 'text' && typeof childNode.text === 'string') { | ||
return renderer.renderText(childNode.text); | ||
return renderer.renderText(childNode.text, state); | ||
} | ||
else { | ||
return compile(renderer, childNode, state); | ||
return compile(renderer, childNode, state, schema); | ||
} | ||
})).value; | ||
}))).value; | ||
} | ||
function get(object, key) { | ||
if (key === '') | ||
return object; | ||
let [path, ...rest] = key.split('.'); | ||
if (object) { | ||
return get(object[path], rest.join('.')); | ||
} | ||
return null; | ||
} | ||
export class State { | ||
@@ -46,7 +69,3 @@ constructor() { | ||
get(key) { | ||
let currentState = this._state[this._state.length - 1]; | ||
if (currentState) { | ||
return currentState[key]; | ||
} | ||
return null; | ||
return get(this._state[this._state.length - 1], key); | ||
} | ||
@@ -64,13 +83,16 @@ set(key, value) { | ||
export default class Renderer { | ||
*renderAnnotation(annotation, state, schema) { | ||
if (this[annotation.type]) { | ||
return yield* this[annotation.type](annotation.attributes, state, schema); | ||
} | ||
return yield; | ||
} | ||
renderText(text) { | ||
return text; | ||
} | ||
render(atjson) { | ||
render(document) { | ||
let annotationGraph; | ||
if (atjson instanceof AtJSON) { | ||
annotationGraph = new HIR(atjson); | ||
if (document instanceof Document) { | ||
annotationGraph = new HIR(document); | ||
} | ||
else if (atjson instanceof HIR) { | ||
annotationGraph = atjson; | ||
} | ||
else { | ||
@@ -80,6 +102,6 @@ throw new Error('Supplied arguments invalid.'); | ||
let state = new State(); | ||
let renderedDocument = compile(this, annotationGraph.rootNode, state); | ||
let renderedDocument = compile(this, annotationGraph.rootNode, state, document.schema); | ||
return renderedDocument; | ||
} | ||
} | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDdEMsT0FBTyxFQUFFLEdBQUcsRUFBVyxNQUFNLGFBQWEsQ0FBQztBQUUzQyxNQUFNLE1BQU0sR0FBRztJQUNiLEdBQUcsRUFBRSxPQUFPO0lBQ1osR0FBRyxFQUFFLE1BQU07SUFDWCxHQUFHLEVBQUUsTUFBTTtJQUNYLEdBQUcsRUFBRSxRQUFRO0lBQ2IsR0FBRyxFQUFFLFFBQVE7SUFDYixHQUFHLEVBQUUsUUFBUTtJQUNiLEdBQUcsRUFBRSxRQUFRO0NBQ2QsQ0FBQztBQUVGLE1BQU0scUJBQXFCLElBQVk7SUFDckMsTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsWUFBWSxFQUFFLFVBQVUsR0FBd0I7UUFDbEUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNyQixDQUFDLENBQUMsQ0FBQztBQUNMLENBQUM7QUFFRCxpQkFBaUIsUUFBa0IsRUFBRSxJQUFhLEVBQUUsS0FBWTtJQUM5RCxJQUFJLFNBQVMsR0FBRyxRQUFRLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQ3ZELElBQUksTUFBTSxHQUFHLFNBQVMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUM5QixFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztRQUNoQixNQUFNLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQztJQUN0QixDQUFDO0lBRUQsTUFBTSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLFNBQWtCLEVBQUUsRUFBRTtRQUMvRCxFQUFFLENBQUMsQ0FBQyxTQUFTLENBQUMsSUFBSSxLQUFLLE1BQU0sSUFBSSxP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 | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sUUFBb0IsTUFBTSxrQkFBa0IsQ0FBQztBQUNwRCxPQUFPLEVBQUUsR0FBRyxFQUFXLE1BQU0sYUFBYSxDQUFDO0FBRTNDLE1BQU0sTUFBTSxHQUFHO0lBQ2IsR0FBRyxFQUFFLE9BQU87SUFDWixHQUFHLEVBQUUsTUFBTTtJQUNYLEdBQUcsRUFBRSxNQUFNO0lBQ1gsR0FBRyxFQUFFLFFBQVE7SUFDYixHQUFHLEVBQUUsUUFBUTtJQUNiLEdBQUcsRUFBRSxRQUFRO0lBQ2IsR0FBRyxFQUFFLFFBQVE7Q0FDZCxDQUFDO0FBRUYsTUFBTSxxQkFBcUIsSUFBWTtJQUNyQyxNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxZQUFZLEVBQUUsQ0FBQyxHQUF3QixFQUFFLEVBQUUsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztBQUMvRSxDQUFDO0FBRUQsaUJBQWlCLEtBQUs7SUFDcEIsSUFBSSxjQUFjLEdBQUcsRUFBRSxDQUFDO0lBQ3hCLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxHQUFHLEdBQUcsS0FBSyxDQUFDLE1BQU0sRUFBRSxDQUFDLEdBQUcsR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUM7UUFDakQsSUFBSSxJQUFJLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3BCLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ3hCLGNBQWMsQ0FBQyxJQUFJLENBQUMsR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztRQUN4QyxDQUFDO1FBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLElBQUksSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDO1lBQ3hCLGNB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 |
{ | ||
"name": "@atjson/renderer-hir", | ||
"version": "0.5.20", | ||
"version": "0.7.0", | ||
"description": "A brand new TypeScript library.", | ||
@@ -18,9 +18,9 @@ "main": "dist/commonjs/index.js", | ||
"devDependencies": { | ||
"tslint": "^5.7.0", | ||
"typescript": "^2.4.2" | ||
"tslint": "^5.9.1", | ||
"typescript": "^2.6.2" | ||
}, | ||
"dependencies": { | ||
"@atjson/core": "^0.5.12", | ||
"@atjson/hir": "^0.5.17" | ||
"@atjson/document": "^0.7.0", | ||
"@atjson/hir": "^0.7.0" | ||
} | ||
} |
@@ -1,2 +0,2 @@ | ||
import { AtJSON } from '@atjson/core'; | ||
import Document, { Schema } from '@atjson/document'; | ||
import { HIR, HIRNode } from '@atjson/hir'; | ||
@@ -15,9 +15,20 @@ | ||
export function escapeHTML(text: string): string { | ||
return text.replace(/[&<>"'`=]/g, function (chr: keyof typeof escape) { | ||
return escape[chr]; | ||
}); | ||
return text.replace(/[&<>"'`=]/g, (chr: keyof typeof escape) => escape[chr]); | ||
} | ||
function compile(renderer: Renderer, node: HIRNode, state: State): any { | ||
let generator = renderer.renderAnnotation(node, state); | ||
function flatten(array) { | ||
let flattenedArray = []; | ||
for (let i = 0, len = array.length; i < len; i++) { | ||
let item = array[i]; | ||
if (Array.isArray(item)) { | ||
flattenedArray.push(...flatten(item)); | ||
} else if (item != null) { | ||
flattenedArray.push(item); | ||
} | ||
} | ||
return flattenedArray; | ||
} | ||
function compile(renderer: Renderer, node: HIRNode, state: State, schema: Schema) { | ||
let generator = renderer.renderAnnotation(node, state, schema); | ||
let result = generator.next(); | ||
@@ -28,15 +39,28 @@ if (result.done) { | ||
return generator.next(node.children().map((childNode: HIRNode) => { | ||
let children = node.children(); | ||
return generator.next(flatten(children.map((childNode: HIRNode, index: number) => { | ||
state.set('previousAnnotation', children[index - 1]); | ||
state.set('nextAnnotation', children[index + 1]); | ||
if (childNode.type === 'text' && typeof childNode.text === 'string') { | ||
return renderer.renderText(childNode.text); | ||
return renderer.renderText(childNode.text, state); | ||
} else { | ||
return compile(renderer, childNode, state); | ||
return compile<T>(renderer, childNode, state, schema); | ||
} | ||
})).value; | ||
}))).value; | ||
} | ||
interface StateList { | ||
[key: string]: value: any; | ||
[key: string]: any; | ||
} | ||
function get(object: any, key: string): any { | ||
if (key === '') return object; | ||
let [path, ...rest] = key.split('.'); | ||
if (object) { | ||
return get(object[path], rest.join('.')); | ||
} | ||
return null; | ||
} | ||
export class State { | ||
@@ -58,7 +82,3 @@ private _state: StateList[]; | ||
get(key: string): any { | ||
let currentState: StateList | null = this._state[this._state.length - 1]; | ||
if (currentState) { | ||
return currentState[key]; | ||
} | ||
return null; | ||
return get(this._state[this._state.length - 1], key); | ||
} | ||
@@ -76,15 +96,18 @@ | ||
export default abstract class Renderer { | ||
abstract renderAnnotation(node: HIRNode, state: State): IterableIterator<any>; | ||
export default class Renderer { | ||
*renderAnnotation(annotation: HIRNode, state: State, schema: Schema) { | ||
if (this[annotation.type]) { | ||
return yield* this[annotation.type](annotation.attributes, state, schema); | ||
} | ||
return yield; | ||
} | ||
renderText(text: string): string { | ||
return text; | ||
}, | ||
} | ||
render(atjson: AtJSON | HIR): any { | ||
render(document: Document): T { | ||
let annotationGraph; | ||
if (atjson instanceof AtJSON) { | ||
annotationGraph = new HIR(atjson); | ||
} else if (atjson instanceof HIR) { | ||
annotationGraph = atjson; | ||
if (document instanceof Document) { | ||
annotationGraph = new HIR(document); | ||
} else { | ||
@@ -95,5 +118,5 @@ throw new Error('Supplied arguments invalid.'); | ||
let state = new State(); | ||
let renderedDocument = compile(this, annotationGraph.rootNode, state); | ||
let renderedDocument = compile<T>(this, annotationGraph.rootNode, state, document.schema); | ||
return renderedDocument; | ||
} | ||
} |
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
Major refactor
Supply chain riskPackage has recently undergone a major refactor. It may be unstable or indicate significant internal changes. Use caution when updating to versions that include significant changes.
Found 1 instance in 1 package
New author
Supply chain riskA new npm collaborator published a version of the package for the first time. New collaborators are usually benign additions to a project, but do indicate a change to the security surface area of a package.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
19261
305
2
+ Added@atjson/document@^0.7.0
+ Added@atjson/document@0.7.16(transitive)
+ Added@atjson/hir@0.7.16(transitive)
- Removed@atjson/core@^0.5.12
- Removed@atjson/core@0.5.12(transitive)
- Removed@atjson/hir@0.5.17(transitive)
- Removed@types/entities@1.1.1(transitive)
- Removedentities@1.1.2(transitive)
Updated@atjson/hir@^0.7.0