read-excel-file 9.3.1 → 9.3.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bundle/read-excel-file.min.js +1 -1
- package/bundle/read-excel-file.min.js.map +1 -1
- package/commonjs/saxen/parser.js +1097 -0
- package/commonjs/saxen/parser.js.map +1 -0
- package/commonjs/xml/parseXmlStream.saxen.js +10 -2
- package/commonjs/xml/parseXmlStream.saxen.js.map +1 -1
- package/modules/saxen/parser.js +1091 -0
- package/modules/saxen/parser.js.map +1 -0
- package/modules/xml/parseXmlStream.saxen.js +7 -1
- package/modules/xml/parseXmlStream.saxen.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parser.js","names":["Parser_","options","Parser","fromCharCode","String","hasOwnProperty","Object","prototype","ENTITY_PATTERN","ENTITY_MAPPING","keys","forEach","k","toUpperCase","replaceEntities","_","d","x","z","call","parseInt","decodeEntities","s","length","indexOf","replace","NON_WHITESPACE_OUTSIDE_ROOT_NODE","error","msg","Error","missingNamespaceForPrefix","prefix","getter","getFn","cloneNsMatrix","nsMatrix","clone","key","NAME_CACHE","Symbol","uriPrefix","buildNsMatrix","nsUriToPrefix","uri","noopGetContext","line","column","throwFunc","err","proxy","onText","onOpenTag","onCloseTag","onCDATA","onError","onWarning","onComment","onQuestion","onAttention","getContext","streaming","rootTagFound","leftoverXml","maybeNS","isNamespace","returnError","parseStop","nsMatrixStack","nodeStack","handleError","handleWarning","name","cb","nsMap","_typeof","_nsUriToPrefix","resetState","xml","parse","arguments","undefined","elNameCache","elNameCacheMatrix","_nsMatrix","anonymousNsCount","tagStart","tagEnd","i","j","y","q","w","v","xmlns","elementName","_elementName","elementProxy","attrsString","attrsStart","cachedAttrs","normalizeAttrName","defaultAlias","nsName","substring","substr","getAttrs","nsUri","nsUriPrefix","attrList","l","hasNewMatrix","newalias","value","alias","attrs","seenAttrs","Set","skipAttr","parseAttr","charCodeAt","has","add","push","getParseContext","splitsRe","startOfLine","endOfLine","match","data","exec","index","create","trim","isNaN","pop","_cachedName"],"sources":["../../source/saxen/parser.js"],"sourcesContent":["export default function Parser_(options) {\r\n\r\nreturn Parser(options);\r\n\r\n// `decode.js` file contents\r\n\r\nvar fromCharCode = String.fromCharCode;\r\n\r\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\r\n\r\nvar ENTITY_PATTERN = /&#(\\d+);|&#x([0-9a-f]+);|&(\\w+);/ig;\r\n\r\nvar ENTITY_MAPPING = {\r\n 'amp': '&',\r\n 'apos': '\\'',\r\n 'gt': '>',\r\n 'lt': '<',\r\n 'quot': '\"'\r\n};\r\n\r\n// map UPPERCASE variants of supported special chars\r\nObject.keys(ENTITY_MAPPING).forEach(function(k) {\r\n ENTITY_MAPPING[k.toUpperCase()] = ENTITY_MAPPING[k];\r\n});\r\n\r\n\r\nfunction replaceEntities(_, d, x, z) {\r\n\r\n // reserved names, i.e. \r\n if (z) {\r\n if (hasOwnProperty.call(ENTITY_MAPPING, z)) {\r\n return ENTITY_MAPPING[z];\r\n } else {\r\n\r\n // fall back to original value\r\n return '&' + z + ';';\r\n }\r\n }\r\n\r\n // decimal encoded char\r\n if (d) {\r\n return fromCharCode(d);\r\n }\r\n\r\n // hex encoded char\r\n return fromCharCode(parseInt(x, 16));\r\n}\r\n\r\n\r\n/**\r\n * A basic entity decoder that can decode a minimal\r\n * sub-set of reserved names (&) as well as\r\n * hex (ય) and decimal (ӏ) encoded characters.\r\n *\r\n * @param {string} s\r\n *\r\n * @return {string} decoded string\r\n */\r\nfunction decodeEntities(s) {\r\n if (s.length > 3 && s.indexOf('&') !== -1) {\r\n return s.replace(ENTITY_PATTERN, replaceEntities);\r\n }\r\n\r\n return s;\r\n}\r\n\r\n// `parser.js` file contents\r\n\r\nvar NON_WHITESPACE_OUTSIDE_ROOT_NODE = 'non-whitespace outside of root node';\r\n\r\nfunction error(msg) {\r\n return new Error(msg);\r\n}\r\n\r\nfunction missingNamespaceForPrefix(prefix) {\r\n return 'missing namespace for prefix <' + prefix + '>';\r\n}\r\n\r\nfunction getter(getFn) {\r\n return {\r\n 'get': getFn,\r\n 'enumerable': true\r\n };\r\n}\r\n\r\nfunction cloneNsMatrix(nsMatrix) {\r\n var clone = {}, key;\r\n for (key in nsMatrix) {\r\n clone[key] = nsMatrix[key];\r\n }\r\n return clone;\r\n}\r\n\r\n// per-matrix element name cache; stored under a symbol so it is\r\n// invisible to the `for (key in nsMatrix)` clone above and gets\r\n// collected together with the matrix it belongs to\r\nvar NAME_CACHE = Symbol('nameCache');\r\n\r\nfunction uriPrefix(prefix) {\r\n return prefix + '$uri';\r\n}\r\n\r\nfunction buildNsMatrix(nsUriToPrefix) {\r\n var nsMatrix = {},\r\n uri,\r\n prefix;\r\n\r\n for (uri in nsUriToPrefix) {\r\n prefix = nsUriToPrefix[uri];\r\n nsMatrix[prefix] = prefix;\r\n nsMatrix[uriPrefix(prefix)] = uri;\r\n }\r\n\r\n return nsMatrix;\r\n}\r\n\r\nfunction noopGetContext() {\r\n return { line: 0, column: 0 };\r\n}\r\n\r\nfunction throwFunc(err) {\r\n throw err;\r\n}\r\n\r\n/**\r\n * Creates a new parser with the given options.\r\n *\r\n * @constructor\r\n *\r\n * @param {!Object<string, ?>=} options\r\n */\r\nfunction Parser(options) {\r\n\r\n if (!this) {\r\n return new Parser(options);\r\n }\r\n\r\n var proxy = options && options['proxy'];\r\n\r\n var onText,\r\n onOpenTag,\r\n onCloseTag,\r\n onCDATA,\r\n onError = throwFunc,\r\n onWarning,\r\n onComment,\r\n onQuestion,\r\n onAttention;\r\n\r\n var getContext = noopGetContext;\r\n\r\n /**\r\n * Are we currently consuming a chunked stream of XML,\r\n * i.e. is a `write` call in progress that may be followed\r\n * by more chunks?\r\n *\r\n * @type {boolean}\r\n */\r\n var streaming = false;\r\n\r\n /**\r\n * Did we already encounter the root tag?\r\n *\r\n * Persisted across `write` calls so we can detect a missing\r\n * start tag once the stream ends.\r\n *\r\n * @type {boolean}\r\n */\r\n var rootTagFound = false;\r\n\r\n /**\r\n * Not yet parsed remainder of the previously written chunk,\r\n * i.e. an incomplete token that awaits more input.\r\n *\r\n * @type {string}\r\n */\r\n var leftoverXml = '';\r\n\r\n /**\r\n * Do we need to parse the current elements attributes for namespaces?\r\n *\r\n * @type {boolean}\r\n */\r\n var maybeNS = false;\r\n\r\n /**\r\n * Do we process namespaces at all?\r\n *\r\n * @type {boolean}\r\n */\r\n var isNamespace = false;\r\n\r\n /**\r\n * The caught error returned on parse end\r\n *\r\n * @type {Error}\r\n */\r\n var returnError = null;\r\n\r\n /**\r\n * Should we stop parsing?\r\n *\r\n * @type {boolean}\r\n */\r\n var parseStop = false;\r\n\r\n /**\r\n * Namespace + node state shared across (streamed) parse runs.\r\n */\r\n var nsMatrixStack,\r\n nsMatrix,\r\n nodeStack;\r\n\r\n /**\r\n * A map of { uri: prefix } used by the parser.\r\n *\r\n * This map will ensure we can normalize prefixes during processing;\r\n * for each uri, only one prefix will be exposed to the handlers.\r\n *\r\n * @type {!Object<string, string>}}\r\n */\r\n var nsUriToPrefix;\r\n\r\n /**\r\n * Handle parse error.\r\n *\r\n * @param {string|Error} err\r\n */\r\n function handleError(err) {\r\n if (!(err instanceof Error)) {\r\n err = error(err);\r\n }\r\n\r\n returnError = err;\r\n\r\n onError(err, getContext);\r\n }\r\n\r\n /**\r\n * Handle parse error.\r\n *\r\n * @param {string|Error} err\r\n */\r\n function handleWarning(err) {\r\n\r\n if (!onWarning) {\r\n return;\r\n }\r\n\r\n if (!(err instanceof Error)) {\r\n err = error(err);\r\n }\r\n\r\n onWarning(err, getContext);\r\n }\r\n\r\n /**\r\n * Register parse listener.\r\n *\r\n * @param {string} name\r\n * @param {Function} cb\r\n *\r\n * @return {Parser}\r\n */\r\n this['on'] = function(name, cb) {\r\n\r\n if (typeof cb !== 'function') {\r\n throw error('required args <name, cb>');\r\n }\r\n\r\n switch (name) {\r\n case 'openTag': onOpenTag = cb; break;\r\n case 'text': onText = cb; break;\r\n case 'closeTag': onCloseTag = cb; break;\r\n case 'error': onError = cb; break;\r\n case 'warn': onWarning = cb; break;\r\n case 'cdata': onCDATA = cb; break;\r\n case 'attention': onAttention = cb; break; // <!XXXXX zzzz=\"eeee\">\r\n case 'question': onQuestion = cb; break; // <? .... ?>\r\n case 'comment': onComment = cb; break;\r\n default:\r\n throw error('unsupported event: ' + name);\r\n }\r\n\r\n return this;\r\n };\r\n\r\n /**\r\n * Set the namespace to prefix mapping.\r\n *\r\n * @example\r\n *\r\n * parser.ns({\r\n * 'http://foo': 'foo',\r\n * 'http://bar': 'bar'\r\n * });\r\n *\r\n * @param {!Object<string, string>} nsMap\r\n *\r\n * @return {Parser}\r\n */\r\n this['ns'] = function(nsMap) {\r\n\r\n if (typeof nsMap === 'undefined') {\r\n nsMap = {};\r\n }\r\n\r\n if (typeof nsMap !== 'object') {\r\n throw error('required args <nsMap={}>');\r\n }\r\n\r\n var _nsUriToPrefix = {}, k;\r\n\r\n for (k in nsMap) {\r\n _nsUriToPrefix[k] = nsMap[k];\r\n }\r\n\r\n isNamespace = true;\r\n nsUriToPrefix = _nsUriToPrefix;\r\n\r\n return this;\r\n };\r\n\r\n /**\r\n * Reset the parser state before a (streamed) parse run.\r\n */\r\n function resetState() {\r\n nsMatrixStack = isNamespace ? [] : null;\r\n nsMatrix = isNamespace ? buildNsMatrix(nsUriToPrefix) : null;\r\n nodeStack = [];\r\n\r\n getContext = noopGetContext;\r\n parseStop = false;\r\n returnError = null;\r\n rootTagFound = false;\r\n leftoverXml = '';\r\n }\r\n\r\n /**\r\n * Parse a complete xml string.\r\n *\r\n * @param {string} xml\r\n *\r\n * @return {Error} returnError, if not thrown\r\n */\r\n this['parse'] = function(xml) {\r\n if (typeof xml !== 'string') {\r\n throw error('required args <xml=string>');\r\n }\r\n\r\n if (streaming) {\r\n throw error('parse during stream; call end() first');\r\n }\r\n\r\n resetState();\r\n\r\n parse(xml);\r\n\r\n getContext = noopGetContext;\r\n parseStop = false;\r\n\r\n return returnError;\r\n };\r\n\r\n /**\r\n * Write the next chunk of a streamed xml string.\r\n *\r\n * Parse events are emitted for all complete tokens; an\r\n * incomplete trailing token is buffered until the next\r\n * `write` or, ultimately, reported as an error on `end`.\r\n *\r\n * @param {string} xml\r\n *\r\n * @return {Parser} self\r\n */\r\n this['write'] = function(xml) {\r\n if (typeof xml !== 'string') {\r\n throw error('required args <xml=string>');\r\n }\r\n\r\n if (!streaming) {\r\n resetState();\r\n streaming = true;\r\n }\r\n\r\n if (!returnError) {\r\n leftoverXml = parse(leftoverXml + xml, true) || '';\r\n }\r\n\r\n return this;\r\n };\r\n\r\n /**\r\n * Finish parsing a streamed xml string, i.e. signal that\r\n * no more chunks will be written.\r\n *\r\n * @return {Error} returnError, if not thrown\r\n */\r\n this['end'] = function() {\r\n if (!streaming) {\r\n resetState();\r\n }\r\n\r\n // flush the buffered remainder, now treating an incomplete\r\n // trailing token as a hard error\r\n streaming = false;\r\n\r\n if (!returnError) {\r\n parse(leftoverXml);\r\n }\r\n\r\n leftoverXml = '';\r\n getContext = noopGetContext;\r\n parseStop = false;\r\n\r\n return returnError;\r\n };\r\n\r\n /**\r\n * Stop parsing.\r\n */\r\n this['stop'] = function() {\r\n parseStop = true;\r\n };\r\n\r\n /**\r\n * Parse string, invoking configured listeners on element.\r\n *\r\n * Namespace and node stack state is shared across (streamed)\r\n * invocations via the enclosing parser scope.\r\n *\r\n * Internal note: while `streaming`, an incomplete trailing token\r\n * is not treated as an error but returned so `write` can buffer it\r\n * and prepend it to the next chunk. This buffered remainder is an\r\n * implementation detail of the streaming buffer, not a public API;\r\n * outside of that case the return value is `undefined`.\r\n *\r\n * @param {string} xml\r\n * @param {boolean} streaming\r\n *\r\n * @return {string|undefined} buffered remainder, streaming internal use only\r\n */\r\n function parse(xml, streaming = false) {\r\n\r\n var elNameCache = null,\r\n elNameCacheMatrix = null;\r\n\r\n var _nsMatrix,\r\n anonymousNsCount = 0,\r\n tagStart = false,\r\n tagEnd = false,\r\n i = 0, j = 0,\r\n x, y, q, w, v,\r\n xmlns,\r\n elementName,\r\n _elementName,\r\n elementProxy\r\n ;\r\n\r\n var attrsString = '',\r\n attrsStart = 0,\r\n cachedAttrs // false = parsed with errors, null = needs parsing\r\n ;\r\n\r\n /**\r\n * Normalize a namespaced attribute name against the current\r\n * namespace matrix.\r\n *\r\n * @param {string} name\r\n * @param {string|boolean} defaultAlias\r\n *\r\n * @return {string|null} normalized name, or `null` when the prefix\r\n * has no namespace (a warning is emitted)\r\n */\r\n function normalizeAttrName(name, defaultAlias) {\r\n var w = name.indexOf(':');\r\n\r\n if (w === -1) {\r\n return name;\r\n }\r\n\r\n // normalize ns attribute name\r\n var nsName = nsMatrix[name.substring(0, w)];\r\n\r\n if (!nsName) {\r\n handleWarning(missingNamespaceForPrefix(name.substring(0, w)));\r\n return null;\r\n }\r\n\r\n return defaultAlias === nsName\r\n ? name.substr(w + 1)\r\n : nsName + name.substr(w);\r\n }\r\n\r\n /**\r\n * Parse attributes on demand and returns the parsed attributes.\r\n *\r\n * Return semantics: (1) `false` on attribute parse error,\r\n * (2) object hash on extracted attrs.\r\n *\r\n * @return {boolean|Object}\r\n */\r\n function getAttrs() {\r\n if (cachedAttrs !== null) {\r\n return cachedAttrs;\r\n }\r\n\r\n var nsUri,\r\n nsUriPrefix,\r\n defaultAlias = isNamespace && nsMatrix['xmlns'],\r\n attrList = isNamespace && maybeNS ? [] : null,\r\n i = attrsStart,\r\n s = attrsString,\r\n l = s.length,\r\n hasNewMatrix,\r\n newalias,\r\n value,\r\n alias,\r\n name,\r\n attrs = {},\r\n seenAttrs = new Set(),\r\n skipAttr,\r\n w,\r\n j;\r\n\r\n parseAttr:\r\n for (; i < l; i++) {\r\n skipAttr = false;\r\n w = s.charCodeAt(i);\r\n\r\n if (w === 32 || (w < 14 && w > 8)) { // WHITESPACE={ \\f\\n\\r\\t\\v}\r\n continue;\r\n }\r\n\r\n // wait for non whitespace character\r\n if (w < 65 || w > 122 || (w > 90 && w < 97)) {\r\n if (w !== 95 && w !== 58) { // char 95\"_\" 58\":\"\r\n handleWarning('illegal first char attribute name');\r\n skipAttr = true;\r\n }\r\n }\r\n\r\n // parse attribute name\r\n for (j = i + 1; j < l; j++) {\r\n w = s.charCodeAt(j);\r\n\r\n if (\r\n w > 96 && w < 123 ||\r\n w > 64 && w < 91 ||\r\n w > 47 && w < 59 ||\r\n w === 46 || // '.'\r\n w === 45 || // '-'\r\n w === 95 // '_'\r\n ) {\r\n continue;\r\n }\r\n\r\n // unexpected whitespace\r\n if (w === 32 || (w < 14 && w > 8)) { // WHITESPACE\r\n handleWarning('missing attribute value');\r\n i = j;\r\n\r\n continue parseAttr;\r\n }\r\n\r\n // expected \"=\"\r\n if (w === 61) { // \"=\" == 61\r\n break;\r\n }\r\n\r\n handleWarning('illegal attribute name char');\r\n skipAttr = true;\r\n }\r\n\r\n name = s.substring(i, j);\r\n\r\n if (name === 'xmlns:xmlns') {\r\n handleWarning('illegal declaration of xmlns');\r\n skipAttr = true;\r\n }\r\n\r\n w = s.charCodeAt(j + 1);\r\n\r\n if (w === 34) { // '\"'\r\n j = s.indexOf('\"', i = j + 2);\r\n\r\n if (j === -1) {\r\n j = s.indexOf('\\'', i);\r\n\r\n if (j !== -1) {\r\n handleWarning('attribute value quote missmatch');\r\n skipAttr = true;\r\n }\r\n }\r\n\r\n } else if (w === 39) { // \"'\"\r\n j = s.indexOf('\\'', i = j + 2);\r\n\r\n if (j === -1) {\r\n j = s.indexOf('\"', i);\r\n\r\n if (j !== -1) {\r\n handleWarning('attribute value quote missmatch');\r\n skipAttr = true;\r\n }\r\n }\r\n\r\n } else {\r\n handleWarning('missing attribute value quotes');\r\n skipAttr = true;\r\n\r\n // skip to next space\r\n for (j = j + 1; j < l; j++) {\r\n w = s.charCodeAt(j + 1);\r\n\r\n if (w === 32 || (w < 14 && w > 8)) { // WHITESPACE\r\n break;\r\n }\r\n }\r\n\r\n }\r\n\r\n if (j === -1) {\r\n handleWarning('missing closing quotes');\r\n\r\n j = l;\r\n skipAttr = true;\r\n }\r\n\r\n if (!skipAttr) {\r\n value = s.substring(i, j);\r\n }\r\n\r\n i = j;\r\n\r\n // ensure SPACE follows attribute\r\n // skip illegal content otherwise\r\n // example a=\"b\"c\r\n for (; j + 1 < l; j++) {\r\n w = s.charCodeAt(j + 1);\r\n\r\n if (w === 32 || (w < 14 && w > 8)) { // WHITESPACE\r\n break;\r\n }\r\n\r\n // FIRST ILLEGAL CHAR\r\n if (i === j) {\r\n handleWarning('illegal character after attribute end');\r\n skipAttr = true;\r\n }\r\n }\r\n\r\n // advance cursor to next attribute\r\n i = j + 1;\r\n\r\n if (skipAttr) {\r\n continue parseAttr;\r\n }\r\n\r\n // check attribute re-declaration\r\n if (seenAttrs.has(name)) {\r\n handleWarning('attribute <' + name + '> already defined');\r\n continue;\r\n }\r\n\r\n seenAttrs.add(name);\r\n\r\n if (!isNamespace) {\r\n attrs[name] = value;\r\n continue;\r\n }\r\n\r\n // try to extract namespace information\r\n if (maybeNS) {\r\n newalias = (\r\n name === 'xmlns'\r\n ? 'xmlns'\r\n : (name.charCodeAt(0) === 120 && name.substr(0, 6) === 'xmlns:')\r\n ? name.substr(6)\r\n : null\r\n );\r\n\r\n // handle xmlns(:alias) assignment\r\n if (newalias !== null) {\r\n nsUri = decodeEntities(value);\r\n nsUriPrefix = uriPrefix(newalias);\r\n\r\n alias = nsUriToPrefix[nsUri];\r\n\r\n if (!alias) {\r\n\r\n // no prefix defined or prefix collision\r\n if (\r\n (newalias === 'xmlns') ||\r\n (nsUriPrefix in nsMatrix && nsMatrix[nsUriPrefix] !== nsUri)\r\n ) {\r\n\r\n // alocate free ns prefix\r\n do {\r\n alias = 'ns' + (anonymousNsCount++);\r\n } while (typeof nsMatrix[alias] !== 'undefined');\r\n } else {\r\n alias = newalias;\r\n }\r\n\r\n nsUriToPrefix[nsUri] = alias;\r\n }\r\n\r\n if (nsMatrix[newalias] !== alias) {\r\n if (!hasNewMatrix) {\r\n nsMatrix = cloneNsMatrix(nsMatrix);\r\n hasNewMatrix = true;\r\n }\r\n\r\n nsMatrix[newalias] = alias;\r\n if (newalias === 'xmlns') {\r\n nsMatrix[uriPrefix(alias)] = nsUri;\r\n defaultAlias = alias;\r\n }\r\n\r\n nsMatrix[nsUriPrefix] = nsUri;\r\n }\r\n\r\n // expose xmlns(:asd)=\"...\" in attributes\r\n attrs[name] = value;\r\n continue;\r\n }\r\n\r\n // collect attributes until all namespace\r\n // declarations are processed\r\n attrList.push(name, value);\r\n continue;\r\n\r\n } /** end if (maybeNs) */\r\n\r\n // handle attributes on element without\r\n // namespace declarations\r\n name = normalizeAttrName(name, defaultAlias);\r\n\r\n if (name === null) {\r\n continue;\r\n }\r\n\r\n attrs[name] = value;\r\n }\r\n\r\n\r\n // handle deferred, possibly namespaced attributes\r\n if (maybeNS) {\r\n\r\n // normalize captured attributes\r\n for (i = 0, l = attrList.length; i < l; i++) {\r\n\r\n name = normalizeAttrName(attrList[i++], defaultAlias);\r\n value = attrList[i];\r\n\r\n if (name === null) {\r\n continue;\r\n }\r\n\r\n attrs[name] = value;\r\n }\r\n\r\n // end: normalize captured attributes\r\n }\r\n\r\n return cachedAttrs = attrs;\r\n }\r\n\r\n /**\r\n * Extract the parse context { line, column, part }\r\n * from the current parser position.\r\n *\r\n * @return {Object} parse context\r\n */\r\n function getParseContext() {\r\n var splitsRe = /(\\r\\n|\\r|\\n)/g;\r\n\r\n var line = 0;\r\n var column = 0;\r\n var startOfLine = 0;\r\n var endOfLine = j;\r\n var match;\r\n var data;\r\n\r\n while (i >= startOfLine) {\r\n\r\n match = splitsRe.exec(xml);\r\n\r\n if (!match) {\r\n break;\r\n }\r\n\r\n // end of line = (break idx + break chars)\r\n endOfLine = match[0].length + match.index;\r\n\r\n if (endOfLine > i) {\r\n break;\r\n }\r\n\r\n // advance to next line\r\n line += 1;\r\n\r\n startOfLine = endOfLine;\r\n }\r\n\r\n // EOF errors\r\n if (i == -1) {\r\n column = endOfLine;\r\n data = xml.substring(j);\r\n } else\r\n\r\n // start errors\r\n if (j === 0) {\r\n data = xml.substring(j, i);\r\n }\r\n\r\n // other errors\r\n else {\r\n column = i - startOfLine;\r\n data = (j == -1 ? xml.substring(i) : xml.substring(i, j + 1));\r\n }\r\n\r\n return {\r\n 'data': data,\r\n 'line': line,\r\n 'column': column\r\n };\r\n }\r\n\r\n getContext = getParseContext;\r\n\r\n\r\n if (proxy) {\r\n elementProxy = Object.create({}, {\r\n 'name': getter(function() {\r\n return elementName;\r\n }),\r\n 'originalName': getter(function() {\r\n return _elementName;\r\n }),\r\n 'attrs': getter(getAttrs),\r\n 'ns': getter(function() {\r\n return nsMatrix;\r\n })\r\n });\r\n }\r\n\r\n // actual parse logic\r\n while (j !== -1) {\r\n\r\n if (xml.charCodeAt(j) === 60) { // \"<\"\r\n i = j;\r\n } else {\r\n i = xml.indexOf('<', j);\r\n }\r\n\r\n // no (more) tags found\r\n if (i === -1) {\r\n\r\n // buffer the remainder for the next chunk\r\n if (streaming) {\r\n return xml.substring(j);\r\n }\r\n\r\n if (nodeStack.length) {\r\n return handleError('unexpected end of file');\r\n }\r\n\r\n if (!rootTagFound) {\r\n return handleError('missing start tag');\r\n }\r\n\r\n if (j < xml.length) {\r\n if (xml.substring(j).trim()) {\r\n handleWarning(NON_WHITESPACE_OUTSIDE_ROOT_NODE);\r\n }\r\n }\r\n\r\n return;\r\n }\r\n\r\n // remember that we saw the root tag\r\n if (!rootTagFound) {\r\n rootTagFound = true;\r\n }\r\n\r\n // parse text\r\n if (j !== i) {\r\n\r\n if (nodeStack.length) {\r\n if (onText) {\r\n onText(xml.substring(j, i), decodeEntities, getContext);\r\n\r\n if (parseStop) {\r\n return;\r\n }\r\n }\r\n } else {\r\n if (xml.substring(j, i).trim()) {\r\n handleWarning(NON_WHITESPACE_OUTSIDE_ROOT_NODE);\r\n\r\n if (parseStop) {\r\n return;\r\n }\r\n }\r\n }\r\n }\r\n\r\n w = xml.charCodeAt(i + 1);\r\n\r\n // parse comments + CDATA\r\n if (w === 33) { // \"!\"\r\n q = xml.charCodeAt(i + 2);\r\n\r\n // CDATA section\r\n if (q === 91 && xml.substr(i + 3, 6) === 'CDATA[') { // 91 == \"[\"\r\n j = xml.indexOf(']]>', i);\r\n if (j === -1) {\r\n if (streaming) {\r\n return xml.substring(i);\r\n }\r\n return handleError('unclosed cdata');\r\n }\r\n\r\n if (onCDATA) {\r\n onCDATA(xml.substring(i + 9, j), getContext);\r\n if (parseStop) {\r\n return;\r\n }\r\n }\r\n\r\n j += 3;\r\n continue;\r\n }\r\n\r\n // comment\r\n if (q === 45 && xml.charCodeAt(i + 3) === 45) { // 45 == \"-\"\r\n j = xml.indexOf('-->', i);\r\n if (j === -1) {\r\n if (streaming) {\r\n return xml.substring(i);\r\n }\r\n return handleError('unclosed comment');\r\n }\r\n\r\n\r\n if (onComment) {\r\n onComment(xml.substring(i + 4, j), decodeEntities, getContext);\r\n if (parseStop) {\r\n return;\r\n }\r\n }\r\n\r\n j += 3;\r\n continue;\r\n }\r\n }\r\n\r\n // parse question <? ... ?>\r\n if (w === 63) { // \"?\"\r\n j = xml.indexOf('?>', i);\r\n if (j === -1) {\r\n if (streaming) {\r\n return xml.substring(i);\r\n }\r\n return handleError('unclosed question');\r\n }\r\n\r\n if (onQuestion) {\r\n onQuestion(xml.substring(i, j + 2), getContext);\r\n if (parseStop) {\r\n return;\r\n }\r\n }\r\n\r\n j += 2;\r\n continue;\r\n }\r\n\r\n // find matching closing tag for attention or standard tags\r\n // for that we must skip through attribute values\r\n // (enclosed in single or double quotes)\r\n for (x = i + 1; ; x++) {\r\n v = xml.charCodeAt(x);\r\n if (isNaN(v)) {\r\n if (streaming) {\r\n return xml.substring(i);\r\n }\r\n j = -1;\r\n return handleError('unclosed tag');\r\n }\r\n\r\n // [10] AttValue ::= '\"' ([^<&\"] | Reference)* '\"' | \"'\" ([^<&'] | Reference)* \"'\"\r\n // skips the quoted string\r\n // (double quotes) does not appear in a literal enclosed by (double quotes)\r\n // (single quote) does not appear in a literal enclosed by (single quote)\r\n if (v === 34) { // '\"'\r\n q = xml.indexOf('\"', x + 1);\r\n x = q !== -1 ? q : x;\r\n } else if (v === 39) { // \"'\"\r\n q = xml.indexOf(\"'\", x + 1);\r\n x = q !== -1 ? q : x;\r\n } else if (v === 62) { // '>'\r\n j = x;\r\n break;\r\n }\r\n }\r\n\r\n\r\n // parse attention <! ...>\r\n // previously comment and CDATA have already been parsed\r\n if (w === 33) { // \"!\"\r\n\r\n if (onAttention) {\r\n onAttention(xml.substring(i, j + 1), decodeEntities, getContext);\r\n if (parseStop) {\r\n return;\r\n }\r\n }\r\n\r\n j += 1;\r\n continue;\r\n }\r\n\r\n // don't process attributes;\r\n // there are none\r\n cachedAttrs = {};\r\n\r\n // if (xml.charCodeAt(i+1) === 47) { // </...\r\n if (w === 47) { // </...\r\n tagStart = false;\r\n tagEnd = true;\r\n\r\n if (!nodeStack.length) {\r\n return handleError('missing open tag');\r\n }\r\n\r\n // verify open <-> close tag match\r\n x = elementName = nodeStack.pop();\r\n q = i + 2 + x.length;\r\n\r\n if (xml.substring(i + 2, q) !== x) {\r\n return handleError('closing tag mismatch');\r\n }\r\n\r\n // verify chars in close tag\r\n for (; q < j; q++) {\r\n w = xml.charCodeAt(q);\r\n\r\n if (w === 32 || (w > 8 && w < 14)) { // \\f\\n\\r\\t\\v space\r\n continue;\r\n }\r\n\r\n return handleError('close tag');\r\n }\r\n\r\n } else {\r\n if (xml.charCodeAt(j - 1) === 47) { // .../>\r\n x = elementName = xml.substring(i + 1, j - 1);\r\n\r\n tagStart = true;\r\n tagEnd = true;\r\n\r\n } else {\r\n x = elementName = xml.substring(i + 1, j);\r\n\r\n tagStart = true;\r\n tagEnd = false;\r\n }\r\n\r\n if (!(w > 96 && w < 123 || w > 64 && w < 91 || w === 95 || w === 58)) { // char 95\"_\" 58\":\"\r\n return handleError('illegal first char nodeName');\r\n }\r\n\r\n for (q = 1, y = x.length; q < y; q++) {\r\n w = x.charCodeAt(q);\r\n\r\n if (w > 96 && w < 123 || w > 64 && w < 91 || w > 47 && w < 59 || w === 45 || w === 95 || w == 46) {\r\n continue;\r\n }\r\n\r\n if (w === 32 || (w < 14 && w > 8)) { // \\f\\n\\r\\t\\v space\r\n elementName = x.substring(0, q);\r\n\r\n // maybe there are attributes\r\n cachedAttrs = null;\r\n break;\r\n }\r\n\r\n return handleError('invalid nodeName');\r\n }\r\n\r\n if (!tagEnd) {\r\n nodeStack.push(elementName);\r\n }\r\n }\r\n\r\n if (isNamespace) {\r\n\r\n _nsMatrix = nsMatrix;\r\n\r\n if (tagStart) {\r\n\r\n // remember old namespace\r\n // unless we're self-closing\r\n if (!tagEnd) {\r\n nsMatrixStack.push(_nsMatrix);\r\n }\r\n\r\n if (cachedAttrs === null) {\r\n\r\n // quick check, whether there may be namespace\r\n // declarations on the node; if that is the case\r\n // we need to eagerly parse the node attributes\r\n if ((maybeNS = x.indexOf('xmlns', q) !== -1)) {\r\n attrsStart = q;\r\n attrsString = x;\r\n\r\n getAttrs();\r\n\r\n maybeNS = false;\r\n }\r\n }\r\n }\r\n\r\n _elementName = elementName;\r\n\r\n // memoize normalized names per namespace matrix; tag names\r\n // typically repeat heavily and the matrix rarely changes.\r\n if (elNameCacheMatrix !== nsMatrix) {\r\n elNameCache = nsMatrix[NAME_CACHE];\r\n if (elNameCache === undefined) {\r\n elNameCache = nsMatrix[NAME_CACHE] = {};\r\n }\r\n elNameCacheMatrix = nsMatrix;\r\n }\r\n\r\n var _cachedName = elNameCache[elementName];\r\n\r\n if (_cachedName !== undefined) {\r\n elementName = _cachedName;\r\n } else {\r\n\r\n w = elementName.indexOf(':');\r\n if (w !== -1) {\r\n xmlns = nsMatrix[elementName.substring(0, w)];\r\n\r\n // prefix given; namespace must exist\r\n if (!xmlns) {\r\n return handleError('missing namespace on <' + _elementName + '>');\r\n }\r\n\r\n elementName = elementName.substr(w + 1);\r\n } else {\r\n xmlns = nsMatrix['xmlns'];\r\n\r\n // if no default namespace is defined,\r\n // we'll import the element as anonymous.\r\n //\r\n // it is up to users to correct that to the document defined\r\n // targetNamespace, or whatever their undersanding of the\r\n // XML spec mandates.\r\n }\r\n\r\n // adjust namespace prefixs as configured\r\n if (xmlns) {\r\n elementName = xmlns + ':' + elementName;\r\n }\r\n\r\n elNameCache[_elementName] = elementName;\r\n }\r\n\r\n }\r\n\r\n if (tagStart) {\r\n attrsStart = q;\r\n attrsString = x;\r\n\r\n if (onOpenTag) {\r\n if (proxy) {\r\n onOpenTag(elementProxy, decodeEntities, tagEnd, getContext);\r\n } else {\r\n onOpenTag(elementName, getAttrs, decodeEntities, tagEnd, getContext);\r\n }\r\n\r\n if (parseStop) {\r\n return;\r\n }\r\n }\r\n\r\n }\r\n\r\n if (tagEnd) {\r\n\r\n if (onCloseTag) {\r\n onCloseTag(proxy ? elementProxy : elementName, decodeEntities, tagStart, getContext);\r\n\r\n if (parseStop) {\r\n return;\r\n }\r\n }\r\n\r\n // restore old namespace\r\n if (isNamespace) {\r\n if (!tagStart) {\r\n nsMatrix = nsMatrixStack.pop();\r\n } else {\r\n nsMatrix = _nsMatrix;\r\n }\r\n }\r\n }\r\n\r\n j += 1;\r\n }\r\n } /** end parse */\r\n\r\n}\r\n\r\n}"],"mappings":"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"}
|
|
@@ -4,7 +4,15 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports["default"] = parseXmlStream;
|
|
7
|
-
var
|
|
7
|
+
var _parser = _interopRequireDefault(require("../saxen/parser.js"));
|
|
8
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
|
9
|
+
// Starting from version `11.x`, `saxen` dropped CommonJS export.
|
|
10
|
+
// CommonJS compatibility was requested by one of the users of this package:
|
|
11
|
+
// https://gitlab.com/catamphetamine/read-excel-file/-/work_items/115
|
|
12
|
+
// Because of that, `saxen` source code had to be copy-pasted.
|
|
13
|
+
//
|
|
14
|
+
// import { Parser } from 'saxen'
|
|
15
|
+
|
|
8
16
|
function parseXmlStream(xml, _ref) {
|
|
9
17
|
var createInitialState = _ref.createInitialState,
|
|
10
18
|
onOpenTag = _ref.onOpenTag,
|
|
@@ -63,7 +71,7 @@ function parseXmlStream(xml, _ref) {
|
|
|
63
71
|
// * element name is replaced with element object
|
|
64
72
|
// * getAttribute() function is not passed
|
|
65
73
|
//
|
|
66
|
-
var parser = new
|
|
74
|
+
var parser = new _parser["default"]({
|
|
67
75
|
proxy: true
|
|
68
76
|
});
|
|
69
77
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parseXmlStream.saxen.js","names":["
|
|
1
|
+
{"version":3,"file":"parseXmlStream.saxen.js","names":["_parser","_interopRequireDefault","require","obj","__esModule","parseXmlStream","xml","_ref","createInitialState","onOpenTag","onCloseTag","onText","TAG_NAME_PREFIX","trimXmlnsPrefix","tagName","replace","Promise","resolve","reject","errored","xmlns","state","onerror","error","ontext","text","onopentag","element","decodeEntities","selfClosing","getContext","originalName","name","attrs","onclosetag","parser","Parser","proxy","ns","on","parse"],"sources":["../../source/xml/parseXmlStream.saxen.js"],"sourcesContent":["// Starting from version `11.x`, `saxen` dropped CommonJS export.\r\n// CommonJS compatibility was requested by one of the users of this package:\r\n// https://gitlab.com/catamphetamine/read-excel-file/-/work_items/115\r\n// Because of that, `saxen` source code had to be copy-pasted.\r\n//\r\n// import { Parser } from 'saxen'\r\nimport Parser from '../saxen/parser.js'\r\n\r\nexport default function parseXmlStream(xml, {\r\n\tcreateInitialState,\r\n\tonOpenTag,\r\n\tonCloseTag,\r\n\tonText\r\n}) {\r\n\t// This function was put inside the `parseXmlStream()` function body\r\n\t// in order to prevent it from becoming an \"external dependency\"\r\n\t// when using `worker-f` package to run this code in a worker.\r\n\tconst TAG_NAME_PREFIX = /.+:/\r\n\tfunction trimXmlnsPrefix(tagName) {\r\n\t\treturn tagName.replace(TAG_NAME_PREFIX, '')\r\n\t}\r\n\r\n\treturn new Promise((resolve, reject) => {\r\n\t\tlet errored = false\r\n\r\n\t\tconst xmlns = true\r\n\r\n\t\tconst state = createInitialState()\r\n\r\n\t\t// an error happened.\r\n\t\tconst onerror = (error) => {\r\n\t\t\tif (errored) {\r\n\t\t\t\treturn\r\n\t\t\t}\r\n\t\t\terrored = true\r\n\t\t\treject(error)\r\n\t\t}\r\n\r\n\t\t// got some text. `text` is the string of text.\r\n\t\tconst ontext = (text) => {\r\n\t\t\tif (onText) {\r\n\t\t\t\tonText(text, state)\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t// opened a tag. `node` has \"name\" and \"attributes\"\r\n\t\tconst onopentag = (element, decodeEntities, selfClosing, getContext) => {\r\n\t\t\tif (onOpenTag) {\r\n\t\t\t\t// * `element.originalName` — The tag name as written in the XML string, retaining the original prefix regardless of the list of pre-configured namespace mappings.\r\n\t\t\t\t// * `element.name` — The tag name with the namespace prefix resolved against the list of pre-configured namespace mappings. I.e. the namespace prefix will potentially be replaced with one from the pre-configured namespace map.\r\n\t\t\t\tonOpenTag(\r\n\t\t\t\t\txmlns ? trimXmlnsPrefix(element.originalName) : element.name,\r\n\t\t\t\t\telement.attrs,\r\n\t\t\t\t\tstate\r\n\t\t\t\t)\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t// closed a tag.\r\n\t\tconst onclosetag = (element) => {\r\n\t\t\tif (onCloseTag) {\r\n\t\t\t\t// * `element.originalName` — The tag name as written in the XML string, retaining the original prefix regardless of the list of pre-configured namespace mappings.\r\n\t\t\t\t// * `element.name` — The tag name with the namespace prefix resolved against the list of pre-configured namespace mappings. I.e. the namespace prefix will potentially be replaced with one from the pre-configured namespace map.\r\n\t\t\t\tconst tagName = xmlns ? trimXmlnsPrefix(element.originalName) : element.name\r\n\t\t\t\tonCloseTag(tagName, state)\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t// `proxy: true` option enables \"proxy\" mode.\r\n\t\t//\r\n\t\t// In \"proxy\" mode, `onopentag` and `onclosetag` receive slightly different arguments:\r\n\t\t// * element name is replaced with element object\r\n\t\t// * getAttribute() function is not passed\r\n\t\t//\r\n\t\tconst parser = new Parser({ proxy: true })\r\n\r\n\t\t// Parse XML \"namespaces\" (`xmlns` stuff).\r\n\t\tif (xmlns) {\r\n\t\t\tparser.ns()\r\n\t\t}\r\n\r\n\t\tparser.on('error', onerror)\r\n\t\tparser.on('text', ontext)\r\n\t\tparser.on('openTag', onopentag)\r\n\t\tparser.on('closeTag', onclosetag)\r\n\r\n\t\tparser.parse(xml)\r\n\r\n\t\tif (errored) {\r\n\t\t\treturn\r\n\t\t}\r\n\t\tresolve(state)\r\n\t})\r\n}"],"mappings":";;;;;;AAMA,IAAAA,OAAA,GAAAC,sBAAA,CAAAC,OAAA;AAAuC,SAAAD,uBAAAE,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,gBAAAA,GAAA;AANvC;AACA;AACA;AACA;AACA;AACA;;AAGe,SAASE,cAAcA,CAACC,GAAG,EAAAC,IAAA,EAKvC;EAAA,IAJFC,kBAAkB,GAAAD,IAAA,CAAlBC,kBAAkB;IAClBC,SAAS,GAAAF,IAAA,CAATE,SAAS;IACTC,UAAU,GAAAH,IAAA,CAAVG,UAAU;IACVC,MAAM,GAAAJ,IAAA,CAANI,MAAM;EAEN;EACA;EACA;EACA,IAAMC,eAAe,GAAG,KAAK;EAC7B,SAASC,eAAeA,CAACC,OAAO,EAAE;IACjC,OAAOA,OAAO,CAACC,OAAO,CAACH,eAAe,EAAE,EAAE,CAAC;EAC5C;EAEA,OAAO,IAAII,OAAO,CAAC,UAACC,OAAO,EAAEC,MAAM,EAAK;IACvC,IAAIC,OAAO,GAAG,KAAK;IAEnB,IAAMC,KAAK,GAAG,IAAI;IAElB,IAAMC,KAAK,GAAGb,kBAAkB,CAAC,CAAC;;IAElC;IACA,IAAMc,OAAO,GAAG,SAAVA,OAAOA,CAAIC,KAAK,EAAK;MAC1B,IAAIJ,OAAO,EAAE;QACZ;MACD;MACAA,OAAO,GAAG,IAAI;MACdD,MAAM,CAACK,KAAK,CAAC;IACd,CAAC;;IAED;IACA,IAAMC,MAAM,GAAG,SAATA,MAAMA,CAAIC,IAAI,EAAK;MACxB,IAAId,MAAM,EAAE;QACXA,MAAM,CAACc,IAAI,EAAEJ,KAAK,CAAC;MACpB;IACD,CAAC;;IAED;IACA,IAAMK,SAAS,GAAG,SAAZA,SAASA,CAAIC,OAAO,EAAEC,cAAc,EAAEC,WAAW,EAAEC,UAAU,EAAK;MACvE,IAAIrB,SAAS,EAAE;QACd;QACA;QACAA,SAAS,CACRW,KAAK,GAAGP,eAAe,CAACc,OAAO,CAACI,YAAY,CAAC,GAAGJ,OAAO,CAACK,IAAI,EAC5DL,OAAO,CAACM,KAAK,EACbZ,KACD,CAAC;MACF;IACD,CAAC;;IAED;IACA,IAAMa,UAAU,GAAG,SAAbA,UAAUA,CAAIP,OAAO,EAAK;MAC/B,IAAIjB,UAAU,EAAE;QACf;QACA;QACA,IAAMI,OAAO,GAAGM,KAAK,GAAGP,eAAe,CAACc,OAAO,CAACI,YAAY,CAAC,GAAGJ,OAAO,CAACK,IAAI;QAC5EtB,UAAU,CAACI,OAAO,EAAEO,KAAK,CAAC;MAC3B;IACD,CAAC;;IAED;IACA;IACA;IACA;IACA;IACA;IACA,IAAMc,MAAM,GAAG,IAAIC,kBAAM,CAAC;MAAEC,KAAK,EAAE;IAAK,CAAC,CAAC;;IAE1C;IACA,IAAIjB,KAAK,EAAE;MACVe,MAAM,CAACG,EAAE,CAAC,CAAC;IACZ;IAEAH,MAAM,CAACI,EAAE,CAAC,OAAO,EAAEjB,OAAO,CAAC;IAC3Ba,MAAM,CAACI,EAAE,CAAC,MAAM,EAAEf,MAAM,CAAC;IACzBW,MAAM,CAACI,EAAE,CAAC,SAAS,EAAEb,SAAS,CAAC;IAC/BS,MAAM,CAACI,EAAE,CAAC,UAAU,EAAEL,UAAU,CAAC;IAEjCC,MAAM,CAACK,KAAK,CAAClC,GAAG,CAAC;IAEjB,IAAIa,OAAO,EAAE;MACZ;IACD;IACAF,OAAO,CAACI,KAAK,CAAC;EACf,CAAC,CAAC;AACH"}
|