moddle-xml
Advanced tools
Comparing version 5.0.2 to 6.0.0
@@ -9,2 +9,6 @@ # Changelog | ||
## 6.0.0 | ||
* `FEAT`: encode entities in body properties (instead of escaping via `CDATA`) ([`5645b582`](https://github.com/bpmn-io/moddle-xml/commit/5645b5822644a461eba9f3da481362475f040984)) | ||
## 5.0.2 | ||
@@ -11,0 +15,0 @@ |
@@ -17,3 +17,4 @@ 'use strict'; | ||
var XML_PREAMBLE = '<?xml version="1.0" encoding="UTF-8"?>\n', | ||
ESCAPE_CHARS = /(<|>|'|"|&|\n\r|\n)/g, | ||
ESCAPE_ATTR_CHARS = /<|>|'|"|&|\n\r|\n/g, | ||
ESCAPE_CHARS = /<|>|&/g, | ||
DEFAULT_NS_MAP = common.DEFAULT_NS_MAP, | ||
@@ -164,12 +165,28 @@ XSI_TYPE = common.XSI_TYPE; | ||
var ESCAPE_ATTR_MAP = { | ||
'\n': '#10', | ||
'\n\r': '#10', | ||
'"': '#34', | ||
'\'': '#39', | ||
'<': '#60', | ||
'>': '#62', | ||
'&': '#38' | ||
}; | ||
var ESCAPE_MAP = { | ||
'\n': '10', | ||
'\n\r': '10', | ||
'"': '34', | ||
'\'': '39', | ||
'<': '60', | ||
'>': '62', | ||
'&': '38' | ||
'<': 'lt', | ||
'>': 'gt', | ||
'&': 'amp' | ||
}; | ||
function escape(str, charPattern, replaceMap) { | ||
// ensure we are handling strings here | ||
str = isString(str) ? str : '' + str; | ||
return str.replace(charPattern, function(s) { | ||
return '&' + replaceMap[s] + ';'; | ||
}); | ||
} | ||
/** | ||
@@ -182,9 +199,7 @@ * Escape a string attribute to not contain any bad values (line breaks, '"', ...) | ||
function escapeAttr(str) { | ||
return escape(str, ESCAPE_ATTR_CHARS, ESCAPE_ATTR_MAP); | ||
} | ||
// ensure we are handling strings here | ||
str = isString(str) ? str : '' + str; | ||
return str.replace(ESCAPE_CHARS, function(str) { | ||
return '&#' + ESCAPE_MAP[str] + ';'; | ||
}); | ||
function escapeBody(str) { | ||
return escape(str, ESCAPE_CHARS, ESCAPE_MAP); | ||
} | ||
@@ -219,14 +234,9 @@ | ||
BodySerializer.prototype.serializeValue = BodySerializer.prototype.serializeTo = function(writer) { | ||
var escape = this.escape; | ||
if (escape) { | ||
writer.append('<![CDATA['); | ||
} | ||
writer.append(this.value); | ||
if (escape) { | ||
writer.append(']]>'); | ||
} | ||
BodySerializer.prototype.serializeValue = | ||
BodySerializer.prototype.serializeTo = function(writer) { | ||
writer.append( | ||
this.escape | ||
? escapeBody(this.value) | ||
: this.value | ||
); | ||
}; | ||
@@ -233,0 +243,0 @@ |
{ | ||
"name": "moddle-xml", | ||
"version": "5.0.2", | ||
"version": "6.0.0", | ||
"description": "XML import/export for documents described with moddle", | ||
@@ -5,0 +5,0 @@ "directories": { |
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
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
43357
1295