@loaders.gl/xml 4.2.0-alpha.3 → 4.2.0-alpha.5

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.
@@ -1,5 +1,5 @@
1
1
  import type { LoaderWithParser, LoaderOptions } from '@loaders.gl/loader-utils';
2
- import type { ParseXMLOptions } from './lib/parsers/parse-xml';
2
+ import type { ParseXMLOptions } from "./lib/parsers/parse-xml.js";
3
3
  export type XMLLoaderOptions = LoaderOptions & {
4
4
  xml?: ParseXMLOptions;
5
5
  };
@@ -1 +1 @@
1
- {"version":3,"file":"xml-loader.d.ts","sourceRoot":"","sources":["../src/xml-loader.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAC,gBAAgB,EAAE,aAAa,EAAC,MAAM,0BAA0B,CAAC;AAC9E,OAAO,KAAK,EAAC,eAAe,EAAC,MAAM,yBAAyB,CAAC;AAO7D,MAAM,MAAM,gBAAgB,GAAG,aAAa,GAAG;IAC7C,GAAG,CAAC,EAAE,eAAe,CAAC;CACvB,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,SAAS,EAAE,gBAAgB,CAAC,GAAG,EAAE,KAAK,EAAE,gBAAgB,CAyBpE,CAAC"}
1
+ {"version":3,"file":"xml-loader.d.ts","sourceRoot":"","sources":["../src/xml-loader.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAC,gBAAgB,EAAE,aAAa,EAAC,MAAM,0BAA0B,CAAC;AAC9E,OAAO,KAAK,EAAC,eAAe,EAAC,mCAAgC;AAO7D,MAAM,MAAM,gBAAgB,GAAG,aAAa,GAAG;IAC7C,GAAG,CAAC,EAAE,eAAe,CAAC;CACvB,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,SAAS,EAAE,gBAAgB,CAAC,GAAG,EAAE,KAAK,EAAE,gBAAgB,CAyBpE,CAAC"}
@@ -1,33 +1,38 @@
1
+ // loaders.gl
2
+ // SPDX-License-Identifier: MIT
3
+ // Copyright (c) vis.gl contributors
1
4
  import { parseXMLSync } from "./lib/parsers/parse-xml.js";
2
- const VERSION = typeof "4.2.0-alpha.3" !== 'undefined' ? "4.2.0-alpha.3" : 'latest';
5
+ // __VERSION__ is injected by babel-plugin-version-inline
6
+ // @ts-ignore TS2304: Cannot find name '__VERSION__'.
7
+ const VERSION = typeof "4.2.0-alpha.4" !== 'undefined' ? "4.2.0-alpha.4" : 'latest';
8
+ /**
9
+ * Loader for XML files
10
+ */
3
11
  export const XMLLoader = {
4
- name: 'XML',
5
- id: 'xml',
6
- module: 'xml',
7
- version: VERSION,
8
- worker: false,
9
- extensions: ['xml'],
10
- mimeTypes: ['application/xml', 'text/xml'],
11
- testText: testXMLFile,
12
- options: {
13
- xml: {
14
- _parser: 'fast-xml-parser',
15
- uncapitalizeKeys: false,
16
- removeNSPrefix: false,
17
- textNodeName: 'value',
18
- arrayPaths: []
19
- }
20
- },
21
- parse: async (arrayBuffer, options) => parseXMLSync(new TextDecoder().decode(arrayBuffer), {
22
- ...XMLLoader.options.xml,
23
- ...(options === null || options === void 0 ? void 0 : options.xml)
24
- }),
25
- parseTextSync: (text, options) => parseXMLSync(text, {
26
- ...XMLLoader.options.xml,
27
- ...(options === null || options === void 0 ? void 0 : options.xml)
28
- })
12
+ name: 'XML',
13
+ id: 'xml',
14
+ module: 'xml',
15
+ version: VERSION,
16
+ worker: false,
17
+ extensions: ['xml'],
18
+ mimeTypes: ['application/xml', 'text/xml'],
19
+ testText: testXMLFile,
20
+ options: {
21
+ xml: {
22
+ _parser: 'fast-xml-parser',
23
+ uncapitalizeKeys: false,
24
+ removeNSPrefix: false,
25
+ textNodeName: 'value',
26
+ arrayPaths: []
27
+ }
28
+ },
29
+ parse: async (arrayBuffer, options) => parseXMLSync(new TextDecoder().decode(arrayBuffer), {
30
+ ...XMLLoader.options.xml,
31
+ ...options?.xml
32
+ }),
33
+ parseTextSync: (text, options) => parseXMLSync(text, { ...XMLLoader.options.xml, ...options?.xml })
29
34
  };
30
35
  function testXMLFile(text) {
31
- return text.startsWith('<?xml');
36
+ // TODO - There could be space first.
37
+ return text.startsWith('<?xml');
32
38
  }
33
- //# sourceMappingURL=xml-loader.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@loaders.gl/xml",
3
- "version": "4.2.0-alpha.3",
3
+ "version": "4.2.0-alpha.5",
4
4
  "description": "Framework-independent loaders for the XML (eXtensible Markup Language) format",
5
5
  "license": "MIT",
6
6
  "type": "module",
@@ -36,14 +36,17 @@
36
36
  "README.md"
37
37
  ],
38
38
  "scripts": {
39
- "pre-build": "npm run build-bundle && npm run build-bundle -- --env=dev",
40
- "build-bundle": "ocular-bundle ./src/index.ts"
39
+ "pre-build": "npm run build-bundle && npm run build-bundle-dev",
40
+ "build-bundle": "ocular-bundle ./bundle.ts --output=dist/dist.min.js",
41
+ "build-bundle-dev": "ocular-bundle ./bundle.ts --env=dev --output=dist/dist.dev.js"
41
42
  },
42
43
  "dependencies": {
43
- "@babel/runtime": "^7.3.1",
44
- "@loaders.gl/loader-utils": "4.2.0-alpha.3",
45
- "@loaders.gl/schema": "4.2.0-alpha.3",
44
+ "@loaders.gl/loader-utils": "4.2.0-alpha.5",
45
+ "@loaders.gl/schema": "4.2.0-alpha.5",
46
46
  "fast-xml-parser": "^4.2.5"
47
47
  },
48
- "gitHead": "cf18e05801314a62c9fc4c2a85e8888a8a852083"
48
+ "peerDependencies": {
49
+ "@loaders.gl/core": "^4.0.0"
50
+ },
51
+ "gitHead": "32d95a81971f104e4dfeb88ab57065f05321a76a"
49
52
  }
@@ -1 +0,0 @@
1
- {"version":3,"file":"html-loader.js","names":["mergeLoaderOptions","XMLLoader","HTMLLoader","name","id","extensions","mimeTypes","testText","testHTMLFile","parse","arrayBuffer","options","parseTextSync","TextDecoder","decode","text","startsWith","_XMLLoader$parseTextS","xml","_parser","_fastXML","htmlEntities","call"],"sources":["../src/html-loader.ts"],"sourcesContent":["// loaders.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\n\nimport type {LoaderWithParser} from '@loaders.gl/loader-utils';\nimport {mergeLoaderOptions} from '@loaders.gl/loader-utils';\nimport {XMLLoader, XMLLoaderOptions} from './xml-loader';\n\nexport type HTMLLoaderOptions = XMLLoaderOptions;\n\n/**\n * Loader for HTML files\n * Essentially a copy of the XMLLoader with different mime types, file extensions and content tests.\n * This split enables applications can control whether they want HTML responses to be parsed by the XML loader or not.\n * This loader does not have any additional understanding of the structure of HTML or the document.\n */\nexport const HTMLLoader: LoaderWithParser<any, never, HTMLLoaderOptions> = {\n ...XMLLoader,\n name: 'HTML',\n id: 'html',\n extensions: ['html', 'htm'],\n mimeTypes: ['text/html'],\n testText: testHTMLFile,\n parse: async (arrayBuffer: ArrayBuffer, options?: XMLLoaderOptions) =>\n parseTextSync(new TextDecoder().decode(arrayBuffer), options),\n parseTextSync: (text: string, options?: XMLLoaderOptions) => parseTextSync(text, options)\n};\n\nfunction testHTMLFile(text: string): boolean {\n // TODO - There could be space first.\n return text.startsWith('<html');\n}\n\nfunction parseTextSync(text: string, options?: XMLLoaderOptions): any {\n // fast-xml-parser can recognize HTML entities\n // https://github.com/NaturalIntelligence/fast-xml-parser/blob/master/docs/v4/2.XMLparseOptions.md#htmlentities\n // https://github.com/NaturalIntelligence/fast-xml-parser/blob/master/docs/v4/5.Entities.md\n options = mergeLoaderOptions(options, {\n xml: {\n _parser: 'fast-xml-parser',\n _fastXML: {\n htmlEntities: true\n }\n }\n });\n\n return XMLLoader.parseTextSync?.(text, options);\n}\n"],"mappings":"AAKA,SAAQA,kBAAkB,QAAO,0BAA0B;AAAC,SACpDC,SAAS;AAUjB,OAAO,MAAMC,UAA2D,GAAG;EACzE,GAAGD,SAAS;EACZE,IAAI,EAAE,MAAM;EACZC,EAAE,EAAE,MAAM;EACVC,UAAU,EAAE,CAAC,MAAM,EAAE,KAAK,CAAC;EAC3BC,SAAS,EAAE,CAAC,WAAW,CAAC;EACxBC,QAAQ,EAAEC,YAAY;EACtBC,KAAK,EAAE,MAAAA,CAAOC,WAAwB,EAAEC,OAA0B,KAChEC,aAAa,CAAC,IAAIC,WAAW,CAAC,CAAC,CAACC,MAAM,CAACJ,WAAW,CAAC,EAAEC,OAAO,CAAC;EAC/DC,aAAa,EAAEA,CAACG,IAAY,EAAEJ,OAA0B,KAAKC,aAAa,CAACG,IAAI,EAAEJ,OAAO;AAC1F,CAAC;AAED,SAASH,YAAYA,CAACO,IAAY,EAAW;EAE3C,OAAOA,IAAI,CAACC,UAAU,CAAC,OAAO,CAAC;AACjC;AAEA,SAASJ,aAAaA,CAACG,IAAY,EAAEJ,OAA0B,EAAO;EAAA,IAAAM,qBAAA;EAIpEN,OAAO,GAAGX,kBAAkB,CAACW,OAAO,EAAE;IACpCO,GAAG,EAAE;MACHC,OAAO,EAAE,iBAAiB;MAC1BC,QAAQ,EAAE;QACRC,YAAY,EAAE;MAChB;IACF;EACF,CAAC,CAAC;EAEF,QAAAJ,qBAAA,GAAOhB,SAAS,CAACW,aAAa,cAAAK,qBAAA,uBAAvBA,qBAAA,CAAAK,IAAA,CAAArB,SAAS,EAAiBc,IAAI,EAAEJ,OAAO,CAAC;AACjD"}
package/dist/index.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","names":["XMLLoader","HTMLLoader","SAXParser","convertXMLValueToArray","convertXMLFieldToArrayInPlace","uncapitalize","_uncapitalize","uncapitalizeKeys","_uncapitalizeKeys"],"sources":["../src/index.ts"],"sourcesContent":["// loaders.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\n\n// XMLLoader\n\nexport type {XMLLoaderOptions} from './xml-loader';\nexport {XMLLoader} from './xml-loader';\n\n// HTMLLoader\n\nexport type {HTMLLoaderOptions} from './html-loader';\nexport {HTMLLoader} from './html-loader';\n\n// SAX\n\nexport type {SAXParserOptions as SAXParserOptions} from './sax-ts/sax';\nexport {SAXParser as SAXParser} from './sax-ts/sax';\n\n// Utilities\n\nexport {convertXMLValueToArray, convertXMLFieldToArrayInPlace} from './lib/xml-utils/xml-utils';\n\n// Experimental\n\nexport {\n uncapitalize as _uncapitalize,\n uncapitalizeKeys as _uncapitalizeKeys\n} from './lib/xml-utils/uncapitalize';\n"],"mappings":"SAOQA,SAAS;AAAA,SAKTC,UAAU;AAAA,SAKVC,SAAsB;AAAA,SAItBC,sBAAsB,EAAEC,6BAA6B;AAAA,SAK3DC,YAAY,IAAIC,aAAa,EAC7BC,gBAAgB,IAAIC,iBAAiB"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"parse-xml.js","names":["StreamingXMLParser","uncapitalizeKeys","XMLParser","FastXMLParser","parseXMLSync","text","options","_parser","Error","fastXMLOptions","allowBooleanAttributes","ignoreDeclaration","removeNSPrefix","textNodeName","isArray","name","jpath","isLeafNode","isAttribute","_options$arrayPaths","array","Boolean","arrayPaths","some","path","_fastXML","xml","fastParseXML","parser","ignoreAttributes","attributeNamePrefix","parsedXML","parse","parseXMLInBatches","arguments","length","undefined","strict","write","close","result"],"sources":["../../../src/lib/parsers/parse-xml.ts"],"sourcesContent":["// loaders.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\n\nimport type {SAXParserOptions} from '../../sax-ts/sax';\nimport {StreamingXMLParser} from './streaming-xml-parser';\nimport {uncapitalizeKeys} from '../xml-utils/uncapitalize';\nimport {XMLParser as FastXMLParser} from 'fast-xml-parser';\nimport type {X2jOptions} from 'fast-xml-parser';\n\nexport type ParseXMLOptions = {\n /** XML is typically PascalCase, JavaScript prefects camelCase */\n uncapitalizeKeys?: boolean;\n removeNSPrefix?: boolean;\n textNodeName?: string;\n arrayPaths?: string[];\n\n // NOTE: Only fast-xml-parser is implemented\n _parser?: 'fast-xml-parser' | 'sax';\n /** @deprecated Experimental, passes options to fast-xml-parser, IF it is being used */\n _fastXML?: _FastParseXMLOptions;\n /** @deprecated Experimental, passes options to the SAX XML parser, IF it is being used. */\n _sax?: SAXParserOptions;\n};\n\n/** Type for passing through fast-xml-parser options */\nexport type _FastParseXMLOptions = Partial<X2jOptions>;\n\nexport function parseXMLSync(text: string, options?: ParseXMLOptions): any {\n if (options?._parser && options._parser !== 'fast-xml-parser') {\n throw new Error(options?._parser);\n }\n\n const fastXMLOptions: _FastParseXMLOptions = {\n // Default FastXML options\n // https://github.com/NaturalIntelligence/fast-xml-parser/blob/master/docs/v4/2.XMLparseOptions.md#allowbooleanattributes\n allowBooleanAttributes: true,\n // https://github.com/NaturalIntelligence/fast-xml-parser/blob/master/docs/v4/2.XMLparseOptions.md#ignoredeclaration\n ignoreDeclaration: true,\n\n // https://github.com/NaturalIntelligence/fast-xml-parser/blob/master/docs/v4/2.XMLparseOptions.md#removensprefix\n removeNSPrefix: options?.removeNSPrefix,\n\n // https://github.com/NaturalIntelligence/fast-xml-parser/blob/master/docs/v4/2.XMLparseOptions.md#textnodename\n textNodeName: options?.textNodeName,\n\n // Let's application specify keys that are always arrays\n isArray: (name: string, jpath: string, isLeafNode: boolean, isAttribute: boolean) => {\n const array = Boolean(options?.arrayPaths?.some((path) => jpath === path));\n return array;\n },\n\n // Application overrides\n ...options?._fastXML\n };\n\n const xml = fastParseXML(text, fastXMLOptions);\n\n // Note - could be done with FastXML tag processing\n return options?.uncapitalizeKeys ? uncapitalizeKeys(xml) : xml;\n}\n\nexport function fastParseXML(text: string, options: _FastParseXMLOptions): any {\n const parser = new FastXMLParser({\n ignoreAttributes: false,\n attributeNamePrefix: '',\n ...options\n });\n\n const parsedXML = parser.parse(text);\n\n return parsedXML;\n}\n\n/**\n * @todo Build a streaming XML parser based on sax-js\n * @param text\n * @param options\n * @returns\n */\nexport function parseXMLInBatches(text: string, options = {}): any {\n const parser = new StreamingXMLParser({\n ...options,\n strict: true\n });\n\n parser.write(text);\n parser.close();\n\n return parser.result;\n}\n"],"mappings":"SAKQA,kBAAkB;AAAA,SAClBC,gBAAgB;AACxB,SAAQC,SAAS,IAAIC,aAAa,QAAO,iBAAiB;AAqB1D,OAAO,SAASC,YAAYA,CAACC,IAAY,EAAEC,OAAyB,EAAO;EACzE,IAAIA,OAAO,aAAPA,OAAO,eAAPA,OAAO,CAAEC,OAAO,IAAID,OAAO,CAACC,OAAO,KAAK,iBAAiB,EAAE;IAC7D,MAAM,IAAIC,KAAK,CAACF,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAEC,OAAO,CAAC;EACnC;EAEA,MAAME,cAAoC,GAAG;IAG3CC,sBAAsB,EAAE,IAAI;IAE5BC,iBAAiB,EAAE,IAAI;IAGvBC,cAAc,EAAEN,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAEM,cAAc;IAGvCC,YAAY,EAAEP,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAEO,YAAY;IAGnCC,OAAO,EAAEA,CAACC,IAAY,EAAEC,KAAa,EAAEC,UAAmB,EAAEC,WAAoB,KAAK;MAAA,IAAAC,mBAAA;MACnF,MAAMC,KAAK,GAAGC,OAAO,CAACf,OAAO,aAAPA,OAAO,wBAAAa,mBAAA,GAAPb,OAAO,CAAEgB,UAAU,cAAAH,mBAAA,uBAAnBA,mBAAA,CAAqBI,IAAI,CAAEC,IAAI,IAAKR,KAAK,KAAKQ,IAAI,CAAC,CAAC;MAC1E,OAAOJ,KAAK;IACd,CAAC;IAGD,IAAGd,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAEmB,QAAQ;EACtB,CAAC;EAED,MAAMC,GAAG,GAAGC,YAAY,CAACtB,IAAI,EAAEI,cAAc,CAAC;EAG9C,OAAOH,OAAO,aAAPA,OAAO,eAAPA,OAAO,CAAEL,gBAAgB,GAAGA,gBAAgB,CAACyB,GAAG,CAAC,GAAGA,GAAG;AAChE;AAEA,OAAO,SAASC,YAAYA,CAACtB,IAAY,EAAEC,OAA6B,EAAO;EAC7E,MAAMsB,MAAM,GAAG,IAAIzB,aAAa,CAAC;IAC/B0B,gBAAgB,EAAE,KAAK;IACvBC,mBAAmB,EAAE,EAAE;IACvB,GAAGxB;EACL,CAAC,CAAC;EAEF,MAAMyB,SAAS,GAAGH,MAAM,CAACI,KAAK,CAAC3B,IAAI,CAAC;EAEpC,OAAO0B,SAAS;AAClB;AAQA,OAAO,SAASE,iBAAiBA,CAAC5B,IAAY,EAAqB;EAAA,IAAnBC,OAAO,GAAA4B,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,CAAC,CAAC;EAC1D,MAAMN,MAAM,GAAG,IAAI5B,kBAAkB,CAAC;IACpC,GAAGM,OAAO;IACV+B,MAAM,EAAE;EACV,CAAC,CAAC;EAEFT,MAAM,CAACU,KAAK,CAACjC,IAAI,CAAC;EAClBuB,MAAM,CAACW,KAAK,CAAC,CAAC;EAEd,OAAOX,MAAM,CAACY,MAAM;AACtB"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"streaming-xml-parser.js","names":["SAXParser","StreamingXMLParser","constructor","options","parser","result","undefined","previousStates","currentState","Object","freeze","container","key","reset","onready","length","onopentag","_ref","name","attributes","isSelfClosing","_openObject","emit","onkey","onclosetag","_closeObject","onopenarray","_openArray","onclosearray","_closeArray","ontext","value","_pushOrSet","onerror","error","onend","pop","write","chunk","close","Array","isArray","push","newContainer","arguments"],"sources":["../../../src/lib/parsers/streaming-xml-parser.ts"],"sourcesContent":["// loaders.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\n\n// @ts-nocheck\n/* eslint-disable */\n\nimport {SAXParser, SAXParserOptions} from '../../sax-ts/sax';\n// import JSONPath from '../jsonpath/jsonpath';\n\nexport type StreamingXMLParserOptions = SAXParserOptions;\n\n/**\n * StreamingXMLParser builds a JSON object using the events emitted by the SAX parser\n */\nexport class StreamingXMLParser {\n readonly parser: SAXParser;\n result = undefined;\n previousStates = [];\n currentState = Object.freeze({container: [], key: null});\n // jsonpath: JSONPath = new JSONPath();\n\n constructor(options: SAXParserOptions) {\n this.reset();\n this.parser = new SAXParser({\n onready: () => {\n this.previousStates.length = 0;\n this.currentState.container.length = 0;\n },\n\n onopentag: ({name, attributes, isSelfClosing}) => {\n this._openObject({});\n if (typeof name !== 'undefined') {\n this.parser.emit('onkey', name);\n }\n },\n\n onkey: (name) => {\n this.currentState.key = name;\n },\n\n onclosetag: () => {\n this._closeObject();\n },\n\n onopenarray: () => {\n this._openArray();\n },\n\n onclosearray: () => {\n this._closeArray();\n },\n\n ontext: (value) => {\n this._pushOrSet(value);\n },\n\n onerror: (error) => {\n throw error;\n },\n\n onend: () => {\n this.result = this.currentState.container.pop();\n },\n\n ...options\n });\n }\n\n reset(): void {\n this.result = undefined;\n this.previousStates = [];\n this.currentState = Object.freeze({container: [], key: null});\n }\n\n write(chunk): void {\n this.parser.write(chunk);\n }\n\n close(): void {\n this.parser.close();\n }\n\n // PRIVATE METHODS\n\n _pushOrSet(value): void {\n const {container, key} = this.currentState;\n if (key !== null) {\n container[key] = value;\n this.currentState.key = null;\n } else if (Array.isArray(container)) {\n container.push(value);\n } else if (container) {\n // break for debug\n }\n }\n\n _openArray(newContainer = []): void {\n // this.jsonpath.push(null);\n this._pushOrSet(newContainer);\n this.previousStates.push(this.currentState);\n this.currentState = {container: newContainer, isArray: true, key: null};\n }\n\n _closeArray(): void {\n // this.jsonpath.pop();\n this.currentState = this.previousStates.pop();\n }\n\n _openObject(newContainer = {}): void {\n // this.jsonpath.push(null);\n this._pushOrSet(newContainer);\n this.previousStates.push(this.currentState);\n this.currentState = {container: newContainer, isArray: false, key: null};\n }\n\n _closeObject(): void {\n // this.jsonpath.pop();\n this.currentState = this.previousStates.pop();\n }\n}\n"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"uncapitalize.js","names":["uncapitalize","str","charAt","toLowerCase","slice","uncapitalizeKeys","object","Array","isArray","map","element","newObject","key","value","Object","entries"],"sources":["../../../src/lib/xml-utils/uncapitalize.ts"],"sourcesContent":["// loaders.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\n\n/**\n * Uncapitalize first letter of a string\n * @param str\n * @returns\n */\nexport function uncapitalize(str: string): string {\n return typeof str === 'string' ? str.charAt(0).toLowerCase() + str.slice(1) : str;\n}\n\n/**\n * Recursively uncapitalize all keys in a nested object\n * @param object\n * @returns\n */\nexport function uncapitalizeKeys(object: any): any {\n if (Array.isArray(object)) {\n return object.map((element) => uncapitalizeKeys(element));\n }\n\n if (object && typeof object === 'object') {\n const newObject = {};\n for (const [key, value] of Object.entries(object)) {\n newObject[uncapitalize(key)] = uncapitalizeKeys(value);\n }\n return newObject;\n }\n\n return object;\n}\n"],"mappings":"AASA,OAAO,SAASA,YAAYA,CAACC,GAAW,EAAU;EAChD,OAAO,OAAOA,GAAG,KAAK,QAAQ,GAAGA,GAAG,CAACC,MAAM,CAAC,CAAC,CAAC,CAACC,WAAW,CAAC,CAAC,GAAGF,GAAG,CAACG,KAAK,CAAC,CAAC,CAAC,GAAGH,GAAG;AACnF;AAOA,OAAO,SAASI,gBAAgBA,CAACC,MAAW,EAAO;EACjD,IAAIC,KAAK,CAACC,OAAO,CAACF,MAAM,CAAC,EAAE;IACzB,OAAOA,MAAM,CAACG,GAAG,CAAEC,OAAO,IAAKL,gBAAgB,CAACK,OAAO,CAAC,CAAC;EAC3D;EAEA,IAAIJ,MAAM,IAAI,OAAOA,MAAM,KAAK,QAAQ,EAAE;IACxC,MAAMK,SAAS,GAAG,CAAC,CAAC;IACpB,KAAK,MAAM,CAACC,GAAG,EAAEC,KAAK,CAAC,IAAIC,MAAM,CAACC,OAAO,CAACT,MAAM,CAAC,EAAE;MACjDK,SAAS,CAACX,YAAY,CAACY,GAAG,CAAC,CAAC,GAAGP,gBAAgB,CAACQ,KAAK,CAAC;IACxD;IACA,OAAOF,SAAS;EAClB;EAEA,OAAOL,MAAM;AACf"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"xml-utils.js","names":["convertXMLValueToArray","xmlValue","Array","isArray","convertXMLFieldToArrayInPlace","xml","key"],"sources":["../../../src/lib/xml-utils/xml-utils.ts"],"sourcesContent":["// loaders.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\n\n// TODO - these utilities could be moved to the XML parser.\n// uncapitalizeKeys could be an XMLLoader option\n\n/**\n * Extracts a value or array and always return an array\n * Useful since XML parses to object instead of array when only a single value is provided\n */\nexport function convertXMLValueToArray(xmlValue: unknown): unknown[] {\n if (Array.isArray(xmlValue)) {\n return xmlValue;\n }\n if (xmlValue && typeof xmlValue === 'object' && xmlValue['0']) {\n // Error this is an objectified array\n }\n if (xmlValue) {\n return [xmlValue];\n }\n return [];\n}\n\n/**\n * Mutates a field in place, converting it to array\n * Useful since XML parses to object instead of array when only a single value is provided\n */\nexport function convertXMLFieldToArrayInPlace(xml: any, key: string): void {\n xml[key] = convertXMLValueToArray(xml[key]);\n}\n"],"mappings":"AAWA,OAAO,SAASA,sBAAsBA,CAACC,QAAiB,EAAa;EACnE,IAAIC,KAAK,CAACC,OAAO,CAACF,QAAQ,CAAC,EAAE;IAC3B,OAAOA,QAAQ;EACjB;EACA,IAAIA,QAAQ,IAAI,OAAOA,QAAQ,KAAK,QAAQ,IAAIA,QAAQ,CAAC,GAAG,CAAC,EAAE,CAE/D;EACA,IAAIA,QAAQ,EAAE;IACZ,OAAO,CAACA,QAAQ,CAAC;EACnB;EACA,OAAO,EAAE;AACX;AAMA,OAAO,SAASG,6BAA6BA,CAACC,GAAQ,EAAEC,GAAW,EAAQ;EACzED,GAAG,CAACC,GAAG,CAAC,GAAGN,sBAAsB,CAACK,GAAG,CAACC,GAAG,CAAC,CAAC;AAC7C"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"sax.js","names":["DEFAULT_SAX_EVENTS","ontext","onprocessinginstruction","onsgmldeclaration","ondoctype","oncomment","onopentagstart","onattribute","onopentag","onclosetag","onopencdata","oncdata","onclosecdata","onerror","onend","onready","onscript","onopennamespace","onclosenamespace","DEFAULT_SAX_PARSER_OPTIONS","strict","MAX_BUFFER_LENGTH","lowercase","lowercasetags","noscript","strictEntities","xmlns","undefined","position","trim","normalize","EVENTS","BUFFERS","nameStart","nameBody","entityStart","entityBody","ENTITIES","amp","gt","lt","quot","apos","AElig","Aacute","Acirc","Agrave","Aring","Atilde","Auml","Ccedil","ETH","Eacute","Ecirc","Egrave","Euml","Iacute","Icirc","Igrave","Iuml","Ntilde","Oacute","Ocirc","Ograve","Oslash","Otilde","Ouml","THORN","Uacute","Ucirc","Ugrave","Uuml","Yacute","aacute","acirc","aelig","agrave","aring","atilde","auml","ccedil","eacute","ecirc","egrave","eth","euml","iacute","icirc","igrave","iuml","ntilde","oacute","ocirc","ograve","oslash","otilde","ouml","szlig","thorn","uacute","ucirc","ugrave","uuml","yacute","yuml","copy","reg","nbsp","iexcl","cent","pound","curren","yen","brvbar","sect","uml","ordf","laquo","not","shy","macr","deg","plusmn","sup1","sup2","sup3","acute","micro","para","middot","cedil","ordm","raquo","frac14","frac12","frac34","iquest","times","divide","OElig","oelig","Scaron","scaron","Yuml","fnof","circ","tilde","Alpha","Beta","Gamma","Delta","Epsilon","Zeta","Eta","Theta","Iota","Kappa","Lambda","Mu","Nu","Xi","Omicron","Pi","Rho","Sigma","Tau","Upsilon","Phi","Chi","Psi","Omega","alpha","beta","gamma","delta","epsilon","zeta","eta","theta","iota","kappa","lambda","mu","nu","xi","omicron","pi","rho","sigmaf","sigma","tau","upsilon","phi","chi","psi","omega","thetasym","upsih","piv","ensp","emsp","thinsp","zwnj","zwj","lrm","rlm","ndash","mdash","lsquo","rsquo","sbquo","ldquo","rdquo","bdquo","dagger","Dagger","bull","hellip","permil","prime","Prime","lsaquo","rsaquo","oline","frasl","euro","image","weierp","real","trade","alefsym","larr","uarr","rarr","darr","harr","crarr","lArr","uArr","rArr","dArr","hArr","forall","part","exist","empty","nabla","isin","notin","ni","prod","sum","minus","lowast","radic","prop","infin","ang","and","or","cap","cup","int","there4","sim","cong","asymp","ne","equiv","le","ge","sub","sup","nsub","sube","supe","oplus","otimes","perp","sdot","lceil","rceil","lfloor","rfloor","lang","rang","loz","spades","clubs","hearts","diams","Object","keys","forEach","key","e","String","fromCharCode","SAX","constructor","events","XML_ENTITIES","S","opt","trackPosition","column","line","c","error","q","bufferCheckPosition","closed","tags","looseCase","closedRoot","sawRoot","tag","state","attribList","ns","STATE","BEGIN","BEGIN_WHITESPACE","TEXT","TEXT_ENTITY","OPEN_WAKA","SGML_DECL","SGML_DECL_QUOTED","DOCTYPE","DOCTYPE_QUOTED","DOCTYPE_DTD","DOCTYPE_DTD_QUOTED","COMMENT_STARTING","COMMENT","COMMENT_ENDING","COMMENT_ENDED","CDATA","CDATA_ENDING","CDATA_ENDING_2","PROC_INST","PROC_INST_BODY","PROC_INST_ENDING","OPEN_TAG","OPEN_TAG_SLASH","ATTRIB","ATTRIB_NAME","ATTRIB_NAME_SAW_WHITE","ATTRIB_VALUE","ATTRIB_VALUE_QUOTED","ATTRIB_VALUE_CLOSED","ATTRIB_VALUE_UNQUOTED","ATTRIB_VALUE_ENTITY_Q","ATTRIB_VALUE_ENTITY_U","CLOSE_TAG","CLOSE_TAG_SAW_WHITE","SCRIPT","SCRIPT_ENDING","XML_NAMESPACE","XMLNS_NAMESPACE","rootNS","xml","comment","sgmlDecl","textNode","tagName","doctype","procInstName","procInstBody","entity","attribName","attribValue","cdata","script","startTagPosition","s","hasOwnProperty","charAt","chunk","i","result","length","isWhitespace","isQuote","isAttribEnd","isMatch","regex","test","notMatch","qname","name","attribute","indexOf","qualName","split","prefix","local","write","errorFunction","end","toString","beginWhiteSpace","starti","substring","strictFail","pad","Array","join","toUpperCase","emitNode","textApplyOptions","body","newTag","openTag","closeTag","attrib","attributes","value","returnState","buffer","Error","parseEntity","checkBufferLength","emit","event","data","eventName","replace","clearBuffers","l","flushBuffers","closeText","SAXParser","er","qn","parent","create","push","entityLC","toLowerCase","num","NaN","numStr","slice","parseInt","isNaN","fromCodePoint","message","text","nodeType","maxAllowed","Math","max","maxActual","_this$this$BUFFERS$i","len","m","selfClosing","uri","JSON","stringify","that","p","nv","a","isSelfClosing","Boolean","t","close","pop","x","n","resume","flush"],"sources":["../../src/sax-ts/sax.ts"],"sourcesContent":["// loaders.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\n\n// This file is forked from https://github.com/Maxim-Mazurok/sax-ts under ISC license,\n// which in turn is forked from https://github.com/isaacs/sax-js under ISC license\n\n// Copyright (c) Isaac Z. Schlueter and Contributors\n// Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies.\n// THE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.\n\n/* eslint-disable */\n\nexport type SAXEventName =\n | 'text'\n | 'processinginstruction'\n | 'sgmldeclaration'\n | 'doctype'\n | 'comment'\n | 'opentagstart'\n | 'attribute'\n | 'opentag'\n | 'closetag'\n | 'opencdata'\n | 'cdata'\n | 'closecdata'\n | 'error'\n | 'end'\n | 'ready'\n | 'script'\n | 'opennamespace'\n | 'closenamespace';\n\nexport type SAXEventCallback = (data: any, eventName: SAXEventName, SAXParser) => void;\n\nexport type SAXEvents = {\n ontext?: SAXEventCallback;\n onprocessinginstruction?: SAXEventCallback;\n onsgmldeclaration?: SAXEventCallback;\n ondoctype?: SAXEventCallback;\n oncomment?: SAXEventCallback;\n onopentagstart?: SAXEventCallback;\n onattribute?: SAXEventCallback;\n onopentag?: SAXEventCallback;\n onclosetag?: SAXEventCallback;\n onopencdata?: SAXEventCallback;\n oncdata?: SAXEventCallback;\n onclosecdata?: SAXEventCallback;\n onerror?: SAXEventCallback;\n onend?: SAXEventCallback;\n onready?: SAXEventCallback;\n onscript?: SAXEventCallback;\n onopennamespace?: SAXEventCallback;\n onclosenamespace?: SAXEventCallback;\n};\n\nexport type SAXParserOptions = SAXEvents & {\n strict?: boolean;\n MAX_BUFFER_LENGTH?: number;\n lowercase?: boolean;\n lowercasetags?: boolean;\n noscript?: boolean;\n strictEntities?: boolean;\n xmlns?: any;\n position?: any;\n trim?: any;\n normalize?: any;\n};\n\nconst DEFAULT_SAX_EVENTS: Required<SAXEvents> = {\n ontext: () => {},\n onprocessinginstruction: () => {},\n onsgmldeclaration: () => {},\n ondoctype: () => {},\n oncomment: () => {},\n onopentagstart: () => {},\n onattribute: () => {},\n onopentag: () => {},\n onclosetag: () => {},\n onopencdata: () => {},\n oncdata: () => {},\n onclosecdata: () => {},\n onerror: () => {},\n onend: () => {},\n onready: () => {},\n onscript: () => {},\n onopennamespace: () => {},\n onclosenamespace: () => {}\n};\n\nconst DEFAULT_SAX_PARSER_OPTIONS: Required<SAXParserOptions> = {\n ...DEFAULT_SAX_EVENTS,\n strict: false,\n MAX_BUFFER_LENGTH: 64 * 1024,\n lowercase: false,\n lowercasetags: false,\n noscript: false,\n strictEntities: false,\n xmlns: undefined,\n position: undefined,\n trim: undefined,\n normalize: undefined\n};\n\nconst EVENTS = [\n 'text',\n 'processinginstruction',\n 'sgmldeclaration',\n 'doctype',\n 'comment',\n 'opentagstart',\n 'attribute',\n 'opentag',\n 'closetag',\n 'opencdata',\n 'cdata',\n 'closecdata',\n 'error',\n 'end',\n 'ready',\n 'script',\n 'opennamespace',\n 'closenamespace'\n];\n\nconst BUFFERS = [\n 'comment',\n 'sgmlDecl',\n 'textNode',\n 'tagName',\n 'doctype',\n 'procInstName',\n 'procInstBody',\n 'entity',\n 'attribName',\n 'attribValue',\n 'cdata',\n 'script'\n];\n\nconst nameStart =\n /[:_A-Za-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD]/;\nconst nameBody =\n /[:_A-Za-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD\\u00B7\\u0300-\\u036F\\u203F-\\u2040.\\d-]/;\nconst entityStart =\n /[#:_A-Za-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD]/;\nconst entityBody =\n /[#:_A-Za-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD\\u00B7\\u0300-\\u036F\\u203F-\\u2040.\\d-]/;\n\nexport const ENTITIES: {[key: string]: number | string} = {\n amp: '&',\n gt: '>',\n lt: '<',\n quot: '\"',\n apos: \"'\",\n AElig: 198,\n Aacute: 193,\n Acirc: 194,\n Agrave: 192,\n Aring: 197,\n Atilde: 195,\n Auml: 196,\n Ccedil: 199,\n ETH: 208,\n Eacute: 201,\n Ecirc: 202,\n Egrave: 200,\n Euml: 203,\n Iacute: 205,\n Icirc: 206,\n Igrave: 204,\n Iuml: 207,\n Ntilde: 209,\n Oacute: 211,\n Ocirc: 212,\n Ograve: 210,\n Oslash: 216,\n Otilde: 213,\n Ouml: 214,\n THORN: 222,\n Uacute: 218,\n Ucirc: 219,\n Ugrave: 217,\n Uuml: 220,\n Yacute: 221,\n aacute: 225,\n acirc: 226,\n aelig: 230,\n agrave: 224,\n aring: 229,\n atilde: 227,\n auml: 228,\n ccedil: 231,\n eacute: 233,\n ecirc: 234,\n egrave: 232,\n eth: 240,\n euml: 235,\n iacute: 237,\n icirc: 238,\n igrave: 236,\n iuml: 239,\n ntilde: 241,\n oacute: 243,\n ocirc: 244,\n ograve: 242,\n oslash: 248,\n otilde: 245,\n ouml: 246,\n szlig: 223,\n thorn: 254,\n uacute: 250,\n ucirc: 251,\n ugrave: 249,\n uuml: 252,\n yacute: 253,\n yuml: 255,\n copy: 169,\n reg: 174,\n nbsp: 160,\n iexcl: 161,\n cent: 162,\n pound: 163,\n curren: 164,\n yen: 165,\n brvbar: 166,\n sect: 167,\n uml: 168,\n ordf: 170,\n laquo: 171,\n not: 172,\n shy: 173,\n macr: 175,\n deg: 176,\n plusmn: 177,\n sup1: 185,\n sup2: 178,\n sup3: 179,\n acute: 180,\n micro: 181,\n para: 182,\n middot: 183,\n cedil: 184,\n ordm: 186,\n raquo: 187,\n frac14: 188,\n frac12: 189,\n frac34: 190,\n iquest: 191,\n times: 215,\n divide: 247,\n OElig: 338,\n oelig: 339,\n Scaron: 352,\n scaron: 353,\n Yuml: 376,\n fnof: 402,\n circ: 710,\n tilde: 732,\n Alpha: 913,\n Beta: 914,\n Gamma: 915,\n Delta: 916,\n Epsilon: 917,\n Zeta: 918,\n Eta: 919,\n Theta: 920,\n Iota: 921,\n Kappa: 922,\n Lambda: 923,\n Mu: 924,\n Nu: 925,\n Xi: 926,\n Omicron: 927,\n Pi: 928,\n Rho: 929,\n Sigma: 931,\n Tau: 932,\n Upsilon: 933,\n Phi: 934,\n Chi: 935,\n Psi: 936,\n Omega: 937,\n alpha: 945,\n beta: 946,\n gamma: 947,\n delta: 948,\n epsilon: 949,\n zeta: 950,\n eta: 951,\n theta: 952,\n iota: 953,\n kappa: 954,\n lambda: 955,\n mu: 956,\n nu: 957,\n xi: 958,\n omicron: 959,\n pi: 960,\n rho: 961,\n sigmaf: 962,\n sigma: 963,\n tau: 964,\n upsilon: 965,\n phi: 966,\n chi: 967,\n psi: 968,\n omega: 969,\n thetasym: 977,\n upsih: 978,\n piv: 982,\n ensp: 8194,\n emsp: 8195,\n thinsp: 8201,\n zwnj: 8204,\n zwj: 8205,\n lrm: 8206,\n rlm: 8207,\n ndash: 8211,\n mdash: 8212,\n lsquo: 8216,\n rsquo: 8217,\n sbquo: 8218,\n ldquo: 8220,\n rdquo: 8221,\n bdquo: 8222,\n dagger: 8224,\n Dagger: 8225,\n bull: 8226,\n hellip: 8230,\n permil: 8240,\n prime: 8242,\n Prime: 8243,\n lsaquo: 8249,\n rsaquo: 8250,\n oline: 8254,\n frasl: 8260,\n euro: 8364,\n image: 8465,\n weierp: 8472,\n real: 8476,\n trade: 8482,\n alefsym: 8501,\n larr: 8592,\n uarr: 8593,\n rarr: 8594,\n darr: 8595,\n harr: 8596,\n crarr: 8629,\n lArr: 8656,\n uArr: 8657,\n rArr: 8658,\n dArr: 8659,\n hArr: 8660,\n forall: 8704,\n part: 8706,\n exist: 8707,\n empty: 8709,\n nabla: 8711,\n isin: 8712,\n notin: 8713,\n ni: 8715,\n prod: 8719,\n sum: 8721,\n minus: 8722,\n lowast: 8727,\n radic: 8730,\n prop: 8733,\n infin: 8734,\n ang: 8736,\n and: 8743,\n or: 8744,\n cap: 8745,\n cup: 8746,\n int: 8747,\n there4: 8756,\n sim: 8764,\n cong: 8773,\n asymp: 8776,\n ne: 8800,\n equiv: 8801,\n le: 8804,\n ge: 8805,\n sub: 8834,\n sup: 8835,\n nsub: 8836,\n sube: 8838,\n supe: 8839,\n oplus: 8853,\n otimes: 8855,\n perp: 8869,\n sdot: 8901,\n lceil: 8968,\n rceil: 8969,\n lfloor: 8970,\n rfloor: 8971,\n lang: 9001,\n rang: 9002,\n loz: 9674,\n spades: 9824,\n clubs: 9827,\n hearts: 9829,\n diams: 9830\n};\n\nObject.keys(ENTITIES).forEach((key) => {\n const e = ENTITIES[key];\n ENTITIES[key] = typeof e === 'number' ? String.fromCharCode(e) : e;\n});\n\n/**\n * Internal helper class\n */\nabstract class SAX {\n EVENTS: string[] = EVENTS;\n ENTITIES: {[key: string]: number | string} = {\n // TODO: make it readonly, needed for entity-mega test\n // amp, gt, lt, quot and apos are resolved to strings instead of numerical\n // codes, IDK why\n ...ENTITIES\n };\n\n protected abstract events: SAXEvents;\n\n protected XML_ENTITIES: {[key: string]: string} = {\n amp: '&',\n gt: '>',\n lt: '<',\n quot: '\"',\n apos: \"'\"\n };\n protected S: any = 0;\n protected opt: any;\n protected trackPosition = false;\n protected column = 0;\n protected line = 0;\n protected c = '';\n protected error: any;\n protected q = '';\n protected bufferCheckPosition: any;\n protected closed = false;\n protected tags: any[] = [];\n protected looseCase = '';\n protected closedRoot = false;\n protected sawRoot = false;\n protected strict = false;\n protected tag: any;\n protected strictEntities: any;\n protected state: any;\n protected noscript = false;\n protected attribList: any[] = [];\n protected ns: any;\n protected position = 0;\n\n private STATE: {[index: string]: any} = {\n BEGIN: this.S++, // leading byte order mark or whitespace\n BEGIN_WHITESPACE: this.S++, // leading whitespace\n TEXT: this.S++, // general stuff\n TEXT_ENTITY: this.S++, // &amp and such.\n OPEN_WAKA: this.S++, // <\n SGML_DECL: this.S++, // <!BLARG\n SGML_DECL_QUOTED: this.S++, // <!BLARG foo \"bar\n DOCTYPE: this.S++, // <!DOCTYPE\n DOCTYPE_QUOTED: this.S++, // <!DOCTYPE \"//blah\n DOCTYPE_DTD: this.S++, // <!DOCTYPE \"//blah\" [ ...\n DOCTYPE_DTD_QUOTED: this.S++, // <!DOCTYPE \"//blah\" [ \"foo\n COMMENT_STARTING: this.S++, // <!-\n COMMENT: this.S++, // <!--\n COMMENT_ENDING: this.S++, // <!-- blah -\n COMMENT_ENDED: this.S++, // <!-- blah --\n CDATA: this.S++, // <![CDATA[ something\n CDATA_ENDING: this.S++, // ]\n CDATA_ENDING_2: this.S++, // ]]\n PROC_INST: this.S++, // <?hi\n PROC_INST_BODY: this.S++, // <?hi there\n PROC_INST_ENDING: this.S++, // <?hi \"there\" ?\n OPEN_TAG: this.S++, // <strong\n OPEN_TAG_SLASH: this.S++, // <strong /\n ATTRIB: this.S++, // <a\n ATTRIB_NAME: this.S++, // <a foo\n ATTRIB_NAME_SAW_WHITE: this.S++, // <a foo _\n ATTRIB_VALUE: this.S++, // <a foo=\n ATTRIB_VALUE_QUOTED: this.S++, // <a foo=\"bar\n ATTRIB_VALUE_CLOSED: this.S++, // <a foo=\"bar\"\n ATTRIB_VALUE_UNQUOTED: this.S++, // <a foo=bar\n ATTRIB_VALUE_ENTITY_Q: this.S++, // <foo bar=\"&quot;\"\n ATTRIB_VALUE_ENTITY_U: this.S++, // <foo bar=&quot\n CLOSE_TAG: this.S++, // </a\n CLOSE_TAG_SAW_WHITE: this.S++, // </a >\n SCRIPT: this.S++, // <script> ...\n SCRIPT_ENDING: this.S++ // <script> ... <\n };\n\n private readonly BUFFERS: string[] = BUFFERS;\n // private parser: (strict: boolean, opt: any) => SAXParser;\n private CDATA = '[CDATA[';\n private DOCTYPE = 'DOCTYPE';\n private XML_NAMESPACE = 'http://www.w3.org/XML/1998/namespace';\n private XMLNS_NAMESPACE = 'http://www.w3.org/2000/xmlns/';\n protected rootNS: {} = {\n xml: this.XML_NAMESPACE,\n xmlns: this.XMLNS_NAMESPACE\n };\n private comment: any;\n private sgmlDecl: any;\n private textNode = '';\n private tagName: any;\n private doctype: any;\n private procInstName: any;\n private procInstBody: any;\n private entity = '';\n private attribName: any;\n private attribValue: any;\n private cdata = '';\n private script = '';\n private startTagPosition = 0;\n\n constructor() {\n this.S = 0;\n\n for (const s in this.STATE) {\n if (this.STATE.hasOwnProperty(s)) {\n this.STATE[this.STATE[s]] = s;\n }\n }\n\n // shorthand\n this.S = this.STATE;\n }\n\n private static charAt(chunk: string, i: number): string {\n let result = '';\n if (i < chunk.length) {\n result = chunk.charAt(i);\n }\n return result;\n }\n\n private static isWhitespace(c: string): boolean {\n return c === ' ' || c === '\\n' || c === '\\r' || c === '\\t';\n }\n\n private static isQuote(c: string): boolean {\n return c === '\"' || c === \"'\";\n }\n\n private static isAttribEnd(c: string): boolean {\n return c === '>' || SAX.isWhitespace(c);\n }\n\n private static isMatch(regex: RegExp, c: string): boolean {\n return regex.test(c);\n }\n\n private static notMatch(regex: RegExp, c: string): boolean {\n return !SAX.isMatch(regex, c);\n }\n\n private static qname(\n name: string,\n attribute?: string | boolean\n ): {prefix: string; local: string} {\n const i = name.indexOf(':');\n const qualName = i < 0 ? ['', name] : name.split(':');\n let prefix = qualName[0];\n let local = qualName[1];\n\n // <x \"xmlns\"=\"http://foo\">\n if (attribute && name === 'xmlns') {\n prefix = 'xmlns';\n local = '';\n }\n\n return {prefix, local};\n }\n\n write(chunk: null | object | string): this | SAXParser {\n if (this.error) {\n throw this.error;\n }\n if (this.closed) {\n return this.errorFunction('Cannot write after close. Assign an onready handler.');\n }\n if (chunk === null) {\n return this.end();\n }\n if (typeof chunk === 'object') {\n chunk = chunk.toString();\n }\n let i = 0;\n let c: string;\n while (true) {\n c = SAX.charAt(chunk, i++);\n this.c = c;\n\n if (!c) {\n break;\n }\n\n if (this.trackPosition) {\n this.position++;\n if (c === '\\n') {\n this.line++;\n this.column = 0;\n } else {\n this.column++;\n }\n }\n\n switch (this.state) {\n case this.S.BEGIN:\n this.state = this.S.BEGIN_WHITESPACE;\n if (c === '\\uFEFF') {\n continue;\n }\n this.beginWhiteSpace(c);\n continue;\n\n case this.S.BEGIN_WHITESPACE:\n this.beginWhiteSpace(c);\n continue;\n\n case this.S.TEXT:\n if (this.sawRoot && !this.closedRoot) {\n const starti = i - 1;\n while (c && c !== '<' && c !== '&') {\n c = SAX.charAt(chunk, i++);\n if (c && this.trackPosition) {\n this.position++;\n if (c === '\\n') {\n this.line++;\n this.column = 0;\n } else {\n this.column++;\n }\n }\n }\n this.textNode += chunk.substring(starti, i - 1);\n }\n if (c === '<' && !(this.sawRoot && this.closedRoot && !this.strict)) {\n this.state = this.S.OPEN_WAKA;\n this.startTagPosition = this.position;\n } else {\n if (!SAX.isWhitespace(c) && (!this.sawRoot || this.closedRoot)) {\n this.strictFail('Text data outside of root node.');\n }\n if (c === '&') {\n this.state = this.S.TEXT_ENTITY;\n } else {\n this.textNode += c;\n }\n }\n continue;\n\n case this.S.SCRIPT:\n // only non-strict\n if (c === '<') {\n this.state = this.S.SCRIPT_ENDING;\n } else {\n this.script += c;\n }\n continue;\n\n case this.S.SCRIPT_ENDING:\n if (c === '/') {\n this.state = this.S.CLOSE_TAG;\n } else {\n this.script += `<${c}`;\n this.state = this.S.SCRIPT;\n }\n continue;\n\n case this.S.OPEN_WAKA:\n // either a /, ?, !, or text is coming next.\n if (c === '!') {\n this.state = this.S.SGML_DECL;\n this.sgmlDecl = '';\n } else if (SAX.isWhitespace(c)) {\n // wait for it...\n } else if (SAX.isMatch(nameStart, c)) {\n this.state = this.S.OPEN_TAG;\n this.tagName = c;\n } else if (c === '/') {\n this.state = this.S.CLOSE_TAG;\n this.tagName = '';\n } else if (c === '?') {\n this.state = this.S.PROC_INST;\n this.procInstName = this.procInstBody = '';\n } else {\n this.strictFail('Unencoded <');\n // if there was some whitespace, then add that in.\n if (this.startTagPosition + 1 < this.position) {\n const pad = this.position - this.startTagPosition;\n c = new Array(pad).join(' ') + c;\n }\n this.textNode += `<${c}`;\n this.state = this.S.TEXT;\n }\n continue;\n\n case this.S.SGML_DECL:\n if ((this.sgmlDecl + c).toUpperCase() === this.CDATA) {\n this.emitNode('onopencdata');\n this.state = this.S.CDATA;\n this.sgmlDecl = '';\n this.cdata = '';\n } else if (this.sgmlDecl + c === '--') {\n this.state = this.S.COMMENT;\n this.comment = '';\n this.sgmlDecl = '';\n } else if ((this.sgmlDecl + c).toUpperCase() === this.DOCTYPE) {\n this.state = this.S.DOCTYPE;\n if (this.doctype || this.sawRoot) {\n this.strictFail('Inappropriately located doctype declaration');\n }\n this.doctype = '';\n this.sgmlDecl = '';\n } else if (c === '>') {\n this.emitNode('onsgmldeclaration', this.sgmlDecl);\n this.sgmlDecl = '';\n this.state = this.S.TEXT;\n } else if (SAX.isQuote(c)) {\n this.state = this.S.SGML_DECL_QUOTED;\n this.sgmlDecl += c;\n } else {\n this.sgmlDecl += c;\n }\n continue;\n\n case this.S.SGML_DECL_QUOTED:\n if (c === this.q) {\n this.state = this.S.SGML_DECL;\n this.q = '';\n }\n this.sgmlDecl += c;\n continue;\n\n case this.S.DOCTYPE:\n if (c === '>') {\n this.state = this.S.TEXT;\n this.emitNode('ondoctype', this.doctype);\n this.doctype = true; // just remember that we saw it.\n } else {\n this.doctype += c;\n if (c === '[') {\n this.state = this.S.DOCTYPE_DTD;\n } else if (SAX.isQuote(c)) {\n this.state = this.S.DOCTYPE_QUOTED;\n this.q = c;\n }\n }\n continue;\n\n case this.S.DOCTYPE_QUOTED:\n this.doctype += c;\n if (c === this.q) {\n this.q = '';\n this.state = this.S.DOCTYPE;\n }\n continue;\n\n case this.S.DOCTYPE_DTD:\n this.doctype += c;\n if (c === ']') {\n this.state = this.S.DOCTYPE;\n } else if (SAX.isQuote(c)) {\n this.state = this.S.DOCTYPE_DTD_QUOTED;\n this.q = c;\n }\n continue;\n\n case this.S.DOCTYPE_DTD_QUOTED:\n this.doctype += c;\n if (c === this.q) {\n this.state = this.S.DOCTYPE_DTD;\n this.q = '';\n }\n continue;\n\n case this.S.COMMENT:\n if (c === '-') {\n this.state = this.S.COMMENT_ENDING;\n } else {\n this.comment += c;\n }\n continue;\n\n case this.S.COMMENT_ENDING:\n if (c === '-') {\n this.state = this.S.COMMENT_ENDED;\n this.comment = this.textApplyOptions(this.comment);\n if (this.comment) {\n this.emitNode('oncomment', this.comment);\n }\n this.comment = '';\n } else {\n this.comment += `-${c}`;\n this.state = this.S.COMMENT;\n }\n continue;\n\n case this.S.COMMENT_ENDED:\n if (c !== '>') {\n this.strictFail('Malformed comment');\n // allow <!-- blah -- bloo --> in non-strict mode,\n // which is a comment of \" blah -- bloo \"\n this.comment += `--${c}`;\n this.state = this.S.COMMENT;\n } else {\n this.state = this.S.TEXT;\n }\n continue;\n\n case this.S.CDATA:\n if (c === ']') {\n this.state = this.S.CDATA_ENDING;\n } else {\n this.cdata += c;\n }\n continue;\n\n case this.S.CDATA_ENDING:\n if (c === ']') {\n this.state = this.S.CDATA_ENDING_2;\n } else {\n this.cdata += `]${c}`;\n this.state = this.S.CDATA;\n }\n continue;\n\n case this.S.CDATA_ENDING_2:\n if (c === '>') {\n if (this.cdata) {\n this.emitNode('oncdata', this.cdata);\n }\n this.emitNode('onclosecdata');\n this.cdata = '';\n this.state = this.S.TEXT;\n } else if (c === ']') {\n this.cdata += ']';\n } else {\n this.cdata += `]]${c}`;\n this.state = this.S.CDATA;\n }\n continue;\n\n case this.S.PROC_INST:\n if (c === '?') {\n this.state = this.S.PROC_INST_ENDING;\n } else if (SAX.isWhitespace(c)) {\n this.state = this.S.PROC_INST_BODY;\n } else {\n this.procInstName += c;\n }\n continue;\n\n case this.S.PROC_INST_BODY:\n if (!this.procInstBody && SAX.isWhitespace(c)) {\n continue;\n } else if (c === '?') {\n this.state = this.S.PROC_INST_ENDING;\n } else {\n this.procInstBody += c;\n }\n continue;\n\n case this.S.PROC_INST_ENDING:\n if (c === '>') {\n this.emitNode('onprocessinginstruction', {\n name: this.procInstName,\n body: this.procInstBody\n });\n this.procInstName = this.procInstBody = '';\n this.state = this.S.TEXT;\n } else {\n this.procInstBody += `?${c}`;\n this.state = this.S.PROC_INST_BODY;\n }\n continue;\n\n case this.S.OPEN_TAG:\n if (SAX.isMatch(nameBody, c)) {\n this.tagName += c;\n } else {\n this.newTag();\n if (c === '>') {\n this.openTag();\n } else if (c === '/') {\n this.state = this.S.OPEN_TAG_SLASH;\n } else {\n if (!SAX.isWhitespace(c)) {\n this.strictFail('Invalid character in tag name');\n }\n this.state = this.S.ATTRIB;\n }\n }\n continue;\n\n case this.S.OPEN_TAG_SLASH:\n if (c === '>') {\n this.openTag(true);\n this.closeTag();\n } else {\n this.strictFail('Forward-slash in opening tag not followed by >');\n this.state = this.S.ATTRIB;\n }\n continue;\n\n case this.S.ATTRIB:\n // haven't read the attribute name yet.\n if (SAX.isWhitespace(c)) {\n continue;\n } else if (c === '>') {\n this.openTag();\n } else if (c === '/') {\n this.state = this.S.OPEN_TAG_SLASH;\n } else if (SAX.isMatch(nameStart, c)) {\n this.attribName = c;\n this.attribValue = '';\n this.state = this.S.ATTRIB_NAME;\n } else {\n this.strictFail('Invalid attribute name');\n }\n continue;\n\n case this.S.ATTRIB_NAME:\n if (c === '=') {\n this.state = this.S.ATTRIB_VALUE;\n } else if (c === '>') {\n this.strictFail('Attribute without value');\n this.attribValue = this.attribName;\n this.attrib();\n this.openTag();\n } else if (SAX.isWhitespace(c)) {\n this.state = this.S.ATTRIB_NAME_SAW_WHITE;\n } else if (SAX.isMatch(nameBody, c)) {\n this.attribName += c;\n } else {\n this.strictFail('Invalid attribute name');\n }\n continue;\n\n case this.S.ATTRIB_NAME_SAW_WHITE:\n if (c === '=') {\n this.state = this.S.ATTRIB_VALUE;\n } else if (SAX.isWhitespace(c)) {\n continue;\n } else {\n this.strictFail('Attribute without value');\n this.tag.attributes[this.attribName] = '';\n this.attribValue = '';\n this.emitNode('onattribute', {\n name: this.attribName,\n value: ''\n });\n this.attribName = '';\n if (c === '>') {\n this.openTag();\n } else if (SAX.isMatch(nameStart, c)) {\n this.attribName = c;\n this.state = this.S.ATTRIB_NAME;\n } else {\n this.strictFail('Invalid attribute name');\n this.state = this.S.ATTRIB;\n }\n }\n continue;\n\n case this.S.ATTRIB_VALUE:\n if (SAX.isWhitespace(c)) {\n continue;\n } else if (SAX.isQuote(c)) {\n this.q = c;\n this.state = this.S.ATTRIB_VALUE_QUOTED;\n } else {\n this.strictFail('Unquoted attribute value');\n this.state = this.S.ATTRIB_VALUE_UNQUOTED;\n this.attribValue = c;\n }\n continue;\n\n case this.S.ATTRIB_VALUE_QUOTED:\n if (c !== this.q) {\n if (c === '&') {\n this.state = this.S.ATTRIB_VALUE_ENTITY_Q;\n } else {\n this.attribValue += c;\n }\n continue;\n }\n this.attrib();\n this.q = '';\n this.state = this.S.ATTRIB_VALUE_CLOSED;\n continue;\n\n case this.S.ATTRIB_VALUE_CLOSED:\n if (SAX.isWhitespace(c)) {\n this.state = this.S.ATTRIB;\n } else if (c === '>') {\n this.openTag();\n } else if (c === '/') {\n this.state = this.S.OPEN_TAG_SLASH;\n } else if (SAX.isMatch(nameStart, c)) {\n this.strictFail('No whitespace between attributes');\n this.attribName = c;\n this.attribValue = '';\n this.state = this.S.ATTRIB_NAME;\n } else {\n this.strictFail('Invalid attribute name');\n }\n continue;\n\n case this.S.ATTRIB_VALUE_UNQUOTED:\n if (!SAX.isAttribEnd(c)) {\n if (c === '&') {\n this.state = this.S.ATTRIB_VALUE_ENTITY_U;\n } else {\n this.attribValue += c;\n }\n continue;\n }\n this.attrib();\n if (c === '>') {\n this.openTag();\n } else {\n this.state = this.S.ATTRIB;\n }\n continue;\n\n case this.S.CLOSE_TAG:\n if (!this.tagName) {\n if (SAX.isWhitespace(c)) {\n continue;\n } else if (SAX.notMatch(nameStart, c)) {\n if (this.script) {\n this.script += `</${c}`;\n this.state = this.S.SCRIPT;\n } else {\n this.strictFail('Invalid tagname in closing tag.');\n }\n } else {\n this.tagName = c;\n }\n } else if (c === '>') {\n this.closeTag();\n } else if (SAX.isMatch(nameBody, c)) {\n this.tagName += c;\n } else if (this.script) {\n this.script += `</${this.tagName}`;\n this.tagName = '';\n this.state = this.S.SCRIPT;\n } else {\n if (!SAX.isWhitespace(c)) {\n this.strictFail('Invalid tagname in closing tag');\n }\n this.state = this.S.CLOSE_TAG_SAW_WHITE;\n }\n continue;\n\n case this.S.CLOSE_TAG_SAW_WHITE:\n if (SAX.isWhitespace(c)) {\n continue;\n }\n if (c === '>') {\n this.closeTag();\n } else {\n this.strictFail('Invalid characters in closing tag');\n }\n continue;\n\n case this.S.TEXT_ENTITY:\n case this.S.ATTRIB_VALUE_ENTITY_Q:\n case this.S.ATTRIB_VALUE_ENTITY_U:\n let returnState;\n let buffer;\n switch (this.state) {\n case this.S.TEXT_ENTITY:\n returnState = this.S.TEXT;\n buffer = 'textNode';\n break;\n\n case this.S.ATTRIB_VALUE_ENTITY_Q:\n returnState = this.S.ATTRIB_VALUE_QUOTED;\n buffer = 'attribValue';\n break;\n\n case this.S.ATTRIB_VALUE_ENTITY_U:\n returnState = this.S.ATTRIB_VALUE_UNQUOTED;\n buffer = 'attribValue';\n break;\n\n default:\n throw new Error(`Unknown state: ${this.state}`);\n }\n\n if (c === ';') {\n this[buffer] += this.parseEntity();\n this.entity = '';\n this.state = returnState;\n } else if (SAX.isMatch(this.entity.length ? entityBody : entityStart, c)) {\n this.entity += c;\n } else {\n this.strictFail('Invalid character in entity name');\n this[buffer] += `&${this.entity}${c}`;\n this.entity = '';\n this.state = returnState;\n }\n\n continue;\n\n default:\n throw new Error(`Unknown state: ${this.state}`);\n }\n } // while\n\n if (this.position >= this.bufferCheckPosition) {\n this.checkBufferLength();\n }\n return this;\n }\n\n protected emit(event: string, data?: Error | {}): void {\n if (this.events.hasOwnProperty(event)) {\n const eventName = event.replace(/^on/, '');\n this.events[event](data, eventName, this);\n }\n }\n\n protected clearBuffers(): void {\n for (let i = 0, l = this.BUFFERS.length; i < l; i++) {\n this[this[i]] = '';\n }\n }\n\n protected flushBuffers(): void {\n this.closeText();\n if (this.cdata !== '') {\n this.emitNode('oncdata', this.cdata);\n this.cdata = '';\n }\n if (this.script !== '') {\n this.emitNode('onscript', this.script);\n this.script = '';\n }\n }\n\n protected end(): SAXParser {\n if (this.sawRoot && !this.closedRoot) this.strictFail('Unclosed root tag');\n if (\n this.state !== this.S.BEGIN &&\n this.state !== this.S.BEGIN_WHITESPACE &&\n this.state !== this.S.TEXT\n ) {\n this.errorFunction('Unexpected end');\n }\n this.closeText();\n this.c = '';\n this.closed = true;\n this.emit('onend');\n return new SAXParser(this.opt);\n }\n\n protected errorFunction(er: string): this {\n this.closeText();\n if (this.trackPosition) {\n er += `\\nLine: ${this.line}\\nColumn: ${this.column}\\nChar: ${this.c}`;\n }\n const error = new Error(er);\n this.error = error;\n this.emit('onerror', error);\n return this;\n }\n\n private attrib(): void {\n if (!this.strict) {\n this.attribName = this.attribName[this.looseCase]();\n }\n\n if (\n this.attribList.indexOf(this.attribName) !== -1 ||\n this.tag.attributes.hasOwnProperty(this.attribName)\n ) {\n this.attribName = this.attribValue = '';\n return;\n }\n\n if (this.opt.xmlns) {\n const qn = SAX.qname(this.attribName, true);\n const prefix = qn.prefix;\n const local = qn.local;\n\n if (prefix === 'xmlns') {\n // namespace binding attribute. push the binding into scope\n if (local === 'xml' && this.attribValue !== this.XML_NAMESPACE) {\n this.strictFail(\n `xml: prefix must be bound to ${this.XML_NAMESPACE}\\n` + `Actual: ${this.attribValue}`\n );\n } else if (local === 'xmlns' && this.attribValue !== this.XMLNS_NAMESPACE) {\n this.strictFail(\n `xmlns: prefix must be bound to ${this.XMLNS_NAMESPACE}\\n` +\n `Actual: ${this.attribValue}`\n );\n } else {\n const tag = this.tag;\n const parent = this.tags[this.tags.length - 1] || this;\n if (tag.ns === parent.ns) {\n tag.ns = Object.create(parent.ns);\n }\n tag.ns[local] = this.attribValue;\n }\n }\n\n // defer onattribute events until all attributes have been seen\n // so any new bindings can take effect. preserve attribute order\n // so deferred events can be emitted in document order\n this.attribList.push([this.attribName, this.attribValue]);\n } else {\n // in non-xmlns mode, we can emit the event right away\n this.tag.attributes[this.attribName] = this.attribValue;\n this.emitNode('onattribute', {\n name: this.attribName,\n value: this.attribValue\n });\n }\n\n this.attribName = this.attribValue = '';\n }\n\n private newTag(): void {\n if (!this.strict) this.tagName = this.tagName[this.looseCase]();\n const parent = this.tags[this.tags.length - 1] || this;\n const tag: any = (this.tag = {name: this.tagName, attributes: {}});\n\n // will be overridden if tag contains an xmlns=\"foo\" or xmlns:foo=\"bar\"\n if (this.opt.xmlns) {\n tag.ns = parent.ns;\n }\n this.attribList.length = 0;\n this.emitNode('onopentagstart', tag);\n }\n\n private parseEntity(): string | number {\n let entity = this.entity;\n const entityLC = entity.toLowerCase();\n let num = NaN;\n let numStr = '';\n\n if (this.ENTITIES[entity]) {\n return this.ENTITIES[entity];\n }\n if (this.ENTITIES[entityLC]) {\n return this.ENTITIES[entityLC];\n }\n entity = entityLC;\n if (entity.charAt(0) === '#') {\n if (entity.charAt(1) === 'x') {\n entity = entity.slice(2);\n // TODO: remove tslint:disable\n // tslint:disable-next-line\n num = parseInt(entity, 16);\n numStr = num.toString(16);\n } else {\n entity = entity.slice(1);\n // TODO: remove tslint:disable\n // tslint:disable-next-line\n num = parseInt(entity, 10);\n numStr = num.toString(10);\n }\n }\n\n entity = entity.replace(/^0+/, '');\n if (isNaN(num) || numStr.toLowerCase() !== entity) {\n this.strictFail('Invalid character entity');\n return `&${this.entity};`;\n }\n\n return String.fromCodePoint(num);\n }\n\n private beginWhiteSpace(c: string): void {\n if (c === '<') {\n this.state = this.S.OPEN_WAKA;\n this.startTagPosition = this.position;\n } else if (!SAX.isWhitespace(c)) {\n // have to process this as a text node.\n // weird, but happens.\n this.strictFail('Non-whitespace before first tag.');\n this.textNode = c;\n this.state = this.S.TEXT;\n } else {\n }\n }\n\n private strictFail(message: string): void {\n if (typeof this !== 'object' || !(this instanceof SAXParser)) {\n throw new Error('bad call to strictFail');\n }\n if (this.strict) {\n this.errorFunction(message);\n }\n }\n\n private textApplyOptions(text: string): string {\n if (this.opt.trim) text = text.trim();\n if (this.opt.normalize) text = text.replace(/\\s+/g, ' ');\n return text;\n }\n\n private emitNode(nodeType: string, data?: {}): void {\n if (this.textNode) this.closeText();\n this.emit(nodeType, data);\n }\n\n private closeText(): void {\n this.textNode = this.textApplyOptions(this.textNode);\n // TODO: figure out why this.textNode can be \"\" and \"undefined\"\n if (this.textNode !== undefined && this.textNode !== '' && this.textNode !== 'undefined') {\n this.emit('ontext', this.textNode);\n }\n this.textNode = '';\n }\n\n private checkBufferLength(): void {\n const maxAllowed = Math.max(this.opt.MAX_BUFFER_LENGTH, 10);\n let maxActual = 0;\n for (let i = 0, l = this.BUFFERS.length; i < l; i++) {\n const len = this[this.BUFFERS[i]]?.length || 0;\n if (len > maxAllowed) {\n // Text/cdata nodes can get big, and since they're buffered,\n // we can get here under normal conditions.\n // Avoid issues by emitting the text node now,\n // so at least it won't get any bigger.\n switch (this.BUFFERS[i]) {\n case 'textNode':\n this.closeText();\n break;\n case 'cdata':\n this.emitNode('oncdata', this.cdata);\n this.cdata = '';\n break;\n case 'script':\n this.emitNode('onscript', this.script);\n this.script = '';\n break;\n default:\n this.errorFunction(`Max buffer length exceeded: ${this.BUFFERS[i]}`);\n }\n }\n maxActual = Math.max(maxActual, len);\n }\n // schedule the next check for the earliest possible buffer overrun.\n const m = this.opt.MAX_BUFFER_LENGTH - maxActual;\n this.bufferCheckPosition = m + this.position;\n }\n\n private openTag(selfClosing?: boolean): void {\n if (this.opt.xmlns) {\n // emit namespace binding events\n const tag = this.tag;\n\n // add namespace info to tag\n const qn = SAX.qname(this.tagName);\n tag.prefix = qn.prefix;\n tag.local = qn.local;\n tag.uri = tag.ns[qn.prefix] || '';\n\n if (tag.prefix && !tag.uri) {\n this.strictFail(`Unbound namespace prefix: ${JSON.stringify(this.tagName)}`);\n tag.uri = qn.prefix;\n }\n\n const parent = this.tags[this.tags.length - 1] || this;\n if (tag.ns && parent.ns !== tag.ns) {\n const that = this;\n Object.keys(tag.ns).forEach((p) => {\n that.emitNode('onopennamespace', {\n prefix: p,\n uri: tag.ns[p]\n });\n });\n }\n\n // handle deferred onattribute events\n // Note: do not apply default ns to attributes:\n // http://www.w3.org/TR/REC-xml-names/#defaulting\n for (let i = 0, l = this.attribList.length; i < l; i++) {\n const nv = this.attribList[i];\n const name = nv[0];\n const value = nv[1];\n const qualName = SAX.qname(name, true);\n const prefix = qualName.prefix;\n const local = qualName.local;\n const uri = prefix === '' ? '' : tag.ns[prefix] || '';\n const a = {\n name,\n value,\n prefix,\n local,\n uri\n };\n\n // if there's any attributes with an undefined namespace,\n // then fail on them now.\n if (prefix && prefix !== 'xmlns' && !uri) {\n this.strictFail(`Unbound namespace prefix: ${JSON.stringify(prefix)}`);\n a.uri = prefix;\n }\n this.tag.attributes[name] = a;\n this.emitNode('onattribute', a);\n }\n this.attribList.length = 0;\n }\n\n this.tag.isSelfClosing = Boolean(selfClosing);\n\n // process the tag\n this.sawRoot = true;\n this.tags.push(this.tag);\n this.emitNode('onopentag', this.tag);\n if (!selfClosing) {\n // special case for <script> in non-strict mode.\n if (!this.noscript && this.tagName.toLowerCase() === 'script') {\n this.state = this.S.SCRIPT;\n } else {\n this.state = this.S.TEXT;\n }\n this.tag = null;\n this.tagName = '';\n }\n this.attribName = this.attribValue = '';\n this.attribList.length = 0;\n }\n\n private closeTag(): void {\n if (!this.tagName) {\n this.strictFail('Weird empty close tag.');\n this.textNode += '</>';\n this.state = this.S.TEXT;\n return;\n }\n\n if (this.script) {\n if (this.tagName !== 'script') {\n this.script += `</${this.tagName}>`;\n this.tagName = '';\n this.state = this.S.SCRIPT;\n return;\n }\n this.emitNode('onscript', this.script);\n this.script = '';\n }\n\n // first make sure that the closing tag actually exists.\n // <a><b></c></b></a> will close everything, otherwise.\n let t = this.tags.length;\n let tagName = this.tagName;\n if (!this.strict) {\n tagName = tagName[this.looseCase]();\n }\n while (t--) {\n const close = this.tags[t];\n if (close.name !== tagName) {\n // fail the first time in strict mode\n this.strictFail('Unexpected close tag');\n } else {\n break;\n }\n }\n\n // didn't find it. we already failed for strict, so just abort.\n if (t < 0) {\n this.strictFail(`Unmatched closing tag: ${this.tagName}`);\n this.textNode += `</${this.tagName}>`;\n this.state = this.S.TEXT;\n return;\n }\n this.tagName = tagName;\n let s = this.tags.length;\n while (s-- > t) {\n const tag = (this.tag = this.tags.pop());\n this.tagName = this.tag.name;\n this.emitNode('onclosetag', this.tagName);\n\n const x: {[index: string]: any} = {};\n for (const i in tag.ns) {\n if (tag.ns.hasOwnProperty(i)) {\n x[i] = tag.ns[i];\n }\n }\n\n const parent = this.tags[this.tags.length - 1] || this;\n if (this.opt.xmlns && tag.ns !== parent.ns) {\n // remove namespace bindings introduced by tag\n const that = this;\n Object.keys(tag.ns).forEach((p) => {\n const n = tag.ns[p];\n that.emitNode('onclosenamespace', {prefix: p, uri: n});\n });\n }\n }\n if (t === 0) this.closedRoot = true;\n this.tagName = this.attribValue = this.attribName = '';\n this.attribList.length = 0;\n this.state = this.S.TEXT;\n }\n}\n\n/**\n *\n * @todo Weird inheritance, with some variables initialized in subclass\n */\nexport class SAXParser extends SAX {\n static ENTITIES = ENTITIES;\n\n opt: Required<SAXParserOptions> = DEFAULT_SAX_PARSER_OPTIONS;\n\n events: Required<SAXEvents> = DEFAULT_SAX_EVENTS;\n\n constructor(opt?: SAXParserOptions) {\n super();\n\n this.clearBuffers();\n\n this.opt = opt = {...this.opt, ...opt};\n\n this.events = {...this.events, ...opt};\n\n this.q = this.c = '';\n this.opt.lowercase = this.opt.lowercase || this.opt.lowercasetags;\n this.bufferCheckPosition = this.opt.MAX_BUFFER_LENGTH;\n this.looseCase = this.opt.lowercase ? 'toLowerCase' : 'toUpperCase';\n this.tags = [];\n this.closed = this.closedRoot = this.sawRoot = false;\n this.tag = this.error = null;\n this.strict = Boolean(this.opt.strict);\n this.noscript = Boolean(this.opt.strict || this.opt.noscript);\n this.state = this.S.BEGIN;\n this.strictEntities = this.opt.strictEntities;\n this.ENTITIES = this.strictEntities\n ? Object.create(this.XML_ENTITIES)\n : Object.create(this.ENTITIES);\n this.attribList = [];\n\n // namespaces form a prototype chain.\n // it always points at the current tag,\n // which protos to its parent tag.\n if (this.opt.xmlns) {\n this.ns = Object.create(this.rootNS);\n }\n\n // mostly just for error reporting\n this.trackPosition = this.opt.position !== false;\n if (this.trackPosition) {\n this.position = this.line = this.column = 0;\n }\n this.emit('onready');\n }\n\n resume(): this {\n this.error = null;\n return this;\n }\n\n close(): this | SAXParser {\n return this.write(null);\n }\n\n flush(): void {\n this.flushBuffers();\n }\n}\n"],"mappings":"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AAE,GAAG;EACXC,MAAM,EAAE,GAAG;EACXC,KAAK,EAAE,GAAG;EACVC,MAAM,EAAE,GAAG;EACXC,GAAG,EAAE,GAAG;EACRC,IAAI,EAAE,GAAG;EACTC,MAAM,EAAE,GAAG;EACXC,KAAK,EAAE,GAAG;EACVC,MAAM,EAAE,GAAG;EACXC,IAAI,EAAE,GAAG;EACTC,MAAM,EAAE,GAAG;EACXC,MAAM,EAAE,GAAG;EACXC,KAAK,EAAE,GAAG;EACVC,MAAM,EAAE,GAAG;EACXC,MAAM,EAAE,GAAG;EACXC,MAAM,EAAE,GAAG;EACXC,IAAI,EAAE,GAAG;EACTC,KAAK,EAAE,GAAG;EACVC,KAAK,EAAE,GAAG;EACVC,MAAM,EAAE,GAAG;EACXC,KAAK,EAAE,GAAG;EACVC,MAAM,EAAE,GAAG;EACXC,IAAI,EAAE,GAAG;EACTC,MAAM,EAAE,GAAG;EACXC,IAAI,EAAE,GAAG;EACTC,IAAI,EAAE,GAAG;EACTC,GAAG,EAAE,GAAG;EACRC,IAAI,EAAE,GAAG;EACTC,KAAK,EAAE,GAAG;EACVC,IAAI,EAAE,GAAG;EACTC,KAAK,EAAE,GAAG;EACVC,MAAM,EAAE,GAAG;EACXC,GAAG,EAAE,GAAG;EACRC,MAAM,EAAE,GAAG;EACXC,IAAI,EAAE,GAAG;EACTC,GAAG,EAAE,GAAG;EACRC,IAAI,EAAE,GAAG;EACTC,KAAK,EAAE,GAAG;EACVC,GAAG,EAAE,GAAG;EACRC,GAAG,EAAE,GAAG;EACRC,IAAI,EAAE,GAAG;EACTC,GAAG,EAAE,GAAG;EACRC,MAAM,EAAE,GAAG;EACXC,IAAI,EAAE,GAAG;EACTC,IAAI,EAAE,GAAG;EACTC,IAAI,EAAE,GAAG;EACTC,KAAK,EAAE,GAAG;EACVC,KAAK,EAAE,GAAG;EACVC,IAAI,EAAE,GAAG;EACTC,MAAM,EAAE,GAAG;EACXC,KAAK,EAAE,GAAG;EACVC,IAAI,EAAE,GAAG;EACTC,KAAK,EAAE,GAAG;EACVC,MAAM,EAAE,GAAG;EACXC,MAAM,EAAE,GAAG;EACXC,MAAM,EAAE,GAAG;EACXC,MAAM,EAAE,GAAG;EACXC,KAAK,EAAE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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"xml-loader.js","names":["parseXMLSync","VERSION","XMLLoader","name","id","module","version","worker","extensions","mimeTypes","testText","testXMLFile","options","xml","_parser","uncapitalizeKeys","removeNSPrefix","textNodeName","arrayPaths","parse","arrayBuffer","TextDecoder","decode","parseTextSync","text","startsWith"],"sources":["../src/xml-loader.ts"],"sourcesContent":["// loaders.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\n\nimport type {LoaderWithParser, LoaderOptions} from '@loaders.gl/loader-utils';\nimport type {ParseXMLOptions} from './lib/parsers/parse-xml';\nimport {parseXMLSync} from './lib/parsers/parse-xml';\n\n// __VERSION__ is injected by babel-plugin-version-inline\n// @ts-ignore TS2304: Cannot find name '__VERSION__'.\nconst VERSION = typeof __VERSION__ !== 'undefined' ? __VERSION__ : 'latest';\n\nexport type XMLLoaderOptions = LoaderOptions & {\n xml?: ParseXMLOptions;\n};\n\n/**\n * Loader for XML files\n */\nexport const XMLLoader: LoaderWithParser<any, never, XMLLoaderOptions> = {\n name: 'XML',\n id: 'xml',\n module: 'xml',\n version: VERSION,\n worker: false,\n extensions: ['xml'],\n mimeTypes: ['application/xml', 'text/xml'],\n testText: testXMLFile,\n options: {\n xml: {\n _parser: 'fast-xml-parser',\n uncapitalizeKeys: false,\n removeNSPrefix: false,\n textNodeName: 'value',\n arrayPaths: []\n }\n },\n parse: async (arrayBuffer: ArrayBuffer, options?: XMLLoaderOptions) =>\n parseXMLSync(new TextDecoder().decode(arrayBuffer), {\n ...XMLLoader.options.xml,\n ...options?.xml\n }),\n parseTextSync: (text: string, options?: XMLLoaderOptions) =>\n parseXMLSync(text, {...XMLLoader.options.xml, ...options?.xml})\n};\n\nfunction testXMLFile(text: string): boolean {\n // TODO - There could be space first.\n return text.startsWith('<?xml');\n}\n"],"mappings":"SAMQA,YAAY;AAIpB,MAAMC,OAAO,GAAG,sBAAkB,KAAK,WAAW,qBAAiB,QAAQ;AAS3E,OAAO,MAAMC,SAAyD,GAAG;EACvEC,IAAI,EAAE,KAAK;EACXC,EAAE,EAAE,KAAK;EACTC,MAAM,EAAE,KAAK;EACbC,OAAO,EAAEL,OAAO;EAChBM,MAAM,EAAE,KAAK;EACbC,UAAU,EAAE,CAAC,KAAK,CAAC;EACnBC,SAAS,EAAE,CAAC,iBAAiB,EAAE,UAAU,CAAC;EAC1CC,QAAQ,EAAEC,WAAW;EACrBC,OAAO,EAAE;IACPC,GAAG,EAAE;MACHC,OAAO,EAAE,iBAAiB;MAC1BC,gBAAgB,EAAE,KAAK;MACvBC,cAAc,EAAE,KAAK;MACrBC,YAAY,EAAE,OAAO;MACrBC,UAAU,EAAE;IACd;EACF,CAAC;EACDC,KAAK,EAAE,MAAAA,CAAOC,WAAwB,EAAER,OAA0B,KAChEZ,YAAY,CAAC,IAAIqB,WAAW,CAAC,CAAC,CAACC,MAAM,CAACF,WAAW,CAAC,EAAE;IAClD,GAAGlB,SAAS,CAACU,OAAO,CAACC,GAAG;IACxB,IAAGD,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAEC,GAAG;EACjB,CAAC,CAAC;EACJU,aAAa,EAAEA,CAACC,IAAY,EAAEZ,OAA0B,KACtDZ,YAAY,CAACwB,IAAI,EAAE;IAAC,GAAGtB,SAAS,CAACU,OAAO,CAACC,GAAG;IAAE,IAAGD,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAEC,GAAG;EAAA,CAAC;AAClE,CAAC;AAED,SAASF,WAAWA,CAACa,IAAY,EAAW;EAE1C,OAAOA,IAAI,CAACC,UAAU,CAAC,OAAO,CAAC;AACjC"}