Compose-ready workspace: packages/zappier (rate card, portal, Stripe), packages/verae-zapier-middleware (timestamp + NATS), packages/verae-zapier (CLI app), vendor/zapier-platform, and research/zapier vendor corpus. Gate 0 structure checks pass. Product code and research are not yet wired.
34 lines
631 B
JavaScript
34 lines
631 B
JavaScript
const jQuery = require('jquery');
|
|
const { DOMParser } = require('@xmldom/xmldom');
|
|
const { jsdom } = require('jsdom');
|
|
|
|
const window = jsdom().defaultView;
|
|
window.DOMParser = DOMParser;
|
|
|
|
const $ = jQuery(window);
|
|
|
|
$.parseXML = (data) => {
|
|
if (!data || typeof data !== 'string') {
|
|
return null;
|
|
}
|
|
|
|
let xml;
|
|
|
|
try {
|
|
xml = new DOMParser().parseFromString(data, 'text/xml');
|
|
} catch (e) {
|
|
// We can safely ignore this
|
|
}
|
|
|
|
if (
|
|
!xml ||
|
|
!xml.documentElement ||
|
|
xml.getElementsByTagName('parsererror').length
|
|
) {
|
|
throw new Error(`Invalid XML: ${data}`);
|
|
}
|
|
|
|
return xml;
|
|
};
|
|
|
|
module.exports = $;
|