@api-client/core 0.19.14 → 0.19.16

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 +1 @@
1
- {"version":3,"file":"XmlReader.d.ts","sourceRoot":"","sources":["../../../src/data/XmlReader.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAI5C;;;GAGG;AACH,qBAAa,SAAU,SAAQ,UAAU;IACjC,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAQ9C,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,QAAQ,GAAG,OAAO;IAuBnD,iBAAiB,CAAC,MAAM,EAAE,WAAW,GAAG,OAAO;IA8BzC,WAAW,IAAI,OAAO,CAAC,QAAQ,GAAG,SAAS,CAAC;IAQ5C,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,GAAG,SAAS,CAAC;IAOhE,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,GAAG,SAAS,CAAC;IAS3D,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,GAAG,SAAS,CAAC;CA+BnE"}
1
+ {"version":3,"file":"XmlReader.d.ts","sourceRoot":"","sources":["../../../src/data/XmlReader.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAI5C;;;GAGG;AACH,qBAAa,SAAU,SAAQ,UAAU;IACjC,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAQ9C,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,QAAQ,GAAG,OAAO;IAuBnD,iBAAiB,CAAC,MAAM,EAAE,WAAW,GAAG,OAAO;IA8BzC,WAAW,IAAI,OAAO,CAAC,QAAQ,GAAG,SAAS,CAAC;IAQ5C,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,GAAG,SAAS,CAAC;IAOhE,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,GAAG,SAAS,CAAC;IAS3D,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,GAAG,SAAS,CAAC;CAgCnE"}
@@ -92,7 +92,8 @@ export class XmlReader extends DataReader {
92
92
  xResult = xpath.default.XPathResult;
93
93
  let errored = false;
94
94
  const parser = new DOMParser({
95
- errorHandler: () => {
95
+ onError: (level, msg) => {
96
+ console.error(`[${level}] ${msg}`);
96
97
  errored = true;
97
98
  },
98
99
  });
@@ -100,8 +101,8 @@ export class XmlReader extends DataReader {
100
101
  try {
101
102
  dom = parser.parseFromString(data, 'text/xml');
102
103
  }
103
- catch {
104
- //
104
+ catch (e) {
105
+ console.error(e);
105
106
  }
106
107
  if (!dom || errored) {
107
108
  return undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"XmlReader.js","sourceRoot":"","sources":["../../../src/data/XmlReader.ts"],"names":[],"mappings":"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","sourcesContent":["/* eslint-disable no-console */\nimport { DataReader } from './DataReader.js'\n\nlet xResult: typeof XPathResult | undefined = typeof XPathResult !== 'undefined' ? XPathResult : undefined\n\n/**\n * Reads the data from an XML using the xpath.\n * See https://www.w3schools.com/xml/xpath_syntax.asp.\n */\nexport class XmlReader extends DataReader {\n async getValue(path: string): Promise<unknown> {\n const doc = await this.getDocument()\n if (!doc) {\n return undefined\n }\n return this.queryDocument(path, doc)\n }\n\n queryDocument(path: string, doc: Document): unknown {\n try {\n const result = doc.evaluate(path, doc)\n switch (result.resultType) {\n case (xResult as typeof XPathResult).NUMBER_TYPE:\n return result.numberValue\n case (xResult as typeof XPathResult).STRING_TYPE:\n return result.stringValue\n case (xResult as typeof XPathResult).BOOLEAN_TYPE:\n return result.booleanValue\n case (xResult as typeof XPathResult).UNORDERED_NODE_ITERATOR_TYPE:\n case (xResult as typeof XPathResult).ORDERED_NODE_ITERATOR_TYPE:\n return this.processNodeResult(result)\n default:\n console.error(`Unsupported xpath result type: [${result.resultType}]`)\n return undefined\n }\n } catch (e) {\n console.error(e)\n return undefined\n }\n }\n\n processNodeResult(result: XPathResult): unknown {\n const results: unknown[] = []\n let next = result.iterateNext()\n while (next) {\n const value = next.textContent\n if (value) {\n results.push(value.trim())\n }\n next = result.iterateNext()\n }\n if (!results.length) {\n return undefined\n }\n\n const mapped = results.map((item) => {\n if (item === 'true') {\n return true\n }\n if (item === 'true') {\n return false\n }\n const typedNumber = Number(item)\n if (!Number.isNaN(typedNumber)) {\n return typedNumber\n }\n return item\n })\n return mapped.length === 1 ? mapped[0] : mapped\n }\n\n async getDocument(): Promise<Document | undefined> {\n const body = await this.readPayloadAsString()\n if (!body) {\n return undefined\n }\n return this.getDocumentWithBody(body)\n }\n\n async getDocumentWithBody(body: string): Promise<Document | undefined> {\n if (typeof DOMParser === 'undefined') {\n return this.getNodeDocument(body)\n }\n return this.getWebDocument(body)\n }\n\n async getWebDocument(data: string): Promise<Document | undefined> {\n const parser = new DOMParser()\n const dom = parser.parseFromString(data, 'text/xml')\n if (dom.querySelector('parsererror')) {\n return undefined\n }\n return dom\n }\n\n async getNodeDocument(data: string): Promise<Document | undefined> {\n const { DOMParser } = await import('@xmldom/xmldom')\n const xpath = await import('xpath')\n // @ts-expect-error The xpath has invalid types defined.\n xResult = xpath.default.XPathResult\n let errored = false\n const parser = new DOMParser({\n errorHandler: (): void => {\n errored = true\n },\n })\n let dom: Document | undefined\n try {\n dom = parser.parseFromString(data, 'text/xml') as unknown as Document\n } catch {\n //\n }\n if (!dom || errored) {\n return undefined\n }\n Object.defineProperty(dom, 'evaluate', {\n value: function (expression: string, contextNode: Node) {\n // @ts-expect-error The xpath library has invalid types\n return xpath.default.evaluate(expression, contextNode, null, 0, null)\n },\n enumerable: true, // Make the method visible in loops\n configurable: true, // Allow the method to be deleted or redefined\n writable: true, // Allow the method's value to be changed\n })\n return dom as unknown as Document\n }\n}\n"]}
1
+ {"version":3,"file":"XmlReader.js","sourceRoot":"","sources":["../../../src/data/XmlReader.ts"],"names":[],"mappings":"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","sourcesContent":["/* eslint-disable no-console */\nimport { DataReader } from './DataReader.js'\n\nlet xResult: typeof XPathResult | undefined = typeof XPathResult !== 'undefined' ? XPathResult : undefined\n\n/**\n * Reads the data from an XML using the xpath.\n * See https://www.w3schools.com/xml/xpath_syntax.asp.\n */\nexport class XmlReader extends DataReader {\n async getValue(path: string): Promise<unknown> {\n const doc = await this.getDocument()\n if (!doc) {\n return undefined\n }\n return this.queryDocument(path, doc)\n }\n\n queryDocument(path: string, doc: Document): unknown {\n try {\n const result = doc.evaluate(path, doc)\n switch (result.resultType) {\n case (xResult as typeof XPathResult).NUMBER_TYPE:\n return result.numberValue\n case (xResult as typeof XPathResult).STRING_TYPE:\n return result.stringValue\n case (xResult as typeof XPathResult).BOOLEAN_TYPE:\n return result.booleanValue\n case (xResult as typeof XPathResult).UNORDERED_NODE_ITERATOR_TYPE:\n case (xResult as typeof XPathResult).ORDERED_NODE_ITERATOR_TYPE:\n return this.processNodeResult(result)\n default:\n console.error(`Unsupported xpath result type: [${result.resultType}]`)\n return undefined\n }\n } catch (e) {\n console.error(e)\n return undefined\n }\n }\n\n processNodeResult(result: XPathResult): unknown {\n const results: unknown[] = []\n let next = result.iterateNext()\n while (next) {\n const value = next.textContent\n if (value) {\n results.push(value.trim())\n }\n next = result.iterateNext()\n }\n if (!results.length) {\n return undefined\n }\n\n const mapped = results.map((item) => {\n if (item === 'true') {\n return true\n }\n if (item === 'true') {\n return false\n }\n const typedNumber = Number(item)\n if (!Number.isNaN(typedNumber)) {\n return typedNumber\n }\n return item\n })\n return mapped.length === 1 ? mapped[0] : mapped\n }\n\n async getDocument(): Promise<Document | undefined> {\n const body = await this.readPayloadAsString()\n if (!body) {\n return undefined\n }\n return this.getDocumentWithBody(body)\n }\n\n async getDocumentWithBody(body: string): Promise<Document | undefined> {\n if (typeof DOMParser === 'undefined') {\n return this.getNodeDocument(body)\n }\n return this.getWebDocument(body)\n }\n\n async getWebDocument(data: string): Promise<Document | undefined> {\n const parser = new DOMParser()\n const dom = parser.parseFromString(data, 'text/xml')\n if (dom.querySelector('parsererror')) {\n return undefined\n }\n return dom\n }\n\n async getNodeDocument(data: string): Promise<Document | undefined> {\n const { DOMParser } = await import('@xmldom/xmldom')\n const xpath = await import('xpath')\n // @ts-expect-error The xpath has invalid types defined.\n xResult = xpath.default.XPathResult\n let errored = false\n const parser = new DOMParser({\n onError: (level, msg): void => {\n console.error(`[${level}] ${msg}`)\n errored = true\n },\n })\n let dom: Document | undefined\n try {\n dom = parser.parseFromString(data, 'text/xml') as unknown as Document\n } catch (e) {\n console.error(e)\n }\n if (!dom || errored) {\n return undefined\n }\n Object.defineProperty(dom, 'evaluate', {\n value: function (expression: string, contextNode: Node) {\n // @ts-expect-error The xpath library has invalid types\n return xpath.default.evaluate(expression, contextNode, null, 0, null)\n },\n enumerable: true, // Make the method visible in loops\n configurable: true, // Allow the method to be deleted or redefined\n writable: true, // Allow the method's value to be changed\n })\n return dom as unknown as Document\n }\n}\n"]}