xslt3-he
Version:
SaxonJS XSLT 3.0 processor: command line interface to SaxonJS
75 lines (73 loc) • 34.8 kB
JavaScript
#!/usr/bin/env node
(function(){var CommandLine$$module$Volumes$Saxonica$src$saxonica$saxon_js_enterprise$build$prepare$nodeCLI$nodeJS$commandLineOptions=function(){function a(d,k="HE"){d.addRecognizedOption("co",b.TYPE_ENUMERATION|b.VALUE_REQUIRED,"Set compiler option");d.setPermittedValues("co","justStatic justNormalize noXPath noBindings timing traceProgress enableAssertions internalCompile".split(" "),null);d.addRecognizedOption("tp",b.TYPE_BOOLEAN,"Trace compiler progress");d.addRecognizedOption("export",b.TYPE_FILENAME|b.VALUE_REQUIRED,
"Export the compiled stylesheet");d.addRecognizedOption("im",b.TYPE_QNAME|b.VALUE_REQUIRED,"Name of initial mode");d.addRecognizedOption("it",b.TYPE_QNAME,"Name of initial template");d.setPermittedValues("it",[],"Q{http://www.w3.org/1999/XSL/Transform}initial-template");d.addRecognizedOption("json",b.TYPE_FILENAME|b.VALUE_REQUIRED,"Source file for primary JSON input");d.addRecognizedOption("master",b.TYPE_FILENAME|b.VALUE_REQUIRED,"Master document for in-situ update");d.addRecognizedOption("nogo",
b.TYPE_BOOLEAN,"Compile only, no evaluation");d.addRecognizedOption("ns",b.TYPE_ENUMERATION|b.VALUE_REQUIRED,"Default namespace for element names");d.setPermittedValues("ns",["##html5"],null);d.addRecognizedOption("o",b.TYPE_FILENAME|b.VALUE_REQUIRED,"Destination file for primary output");d.addRecognizedOption("relocate",b.TYPE_BOOLEAN,"Produce relocatable packages");d.addRecognizedOption("s",b.TYPE_FILENAME|b.VALUE_REQUIRED,"Source file for primary XML input");d.addRecognizedOption("t",b.TYPE_BOOLEAN,
"Display version and timing information, and names of output files");d.addRecognizedOption("xp",b.TYPE_STRING,"XPath expression");d.addRecognizedOption("xsl",b.TYPE_FILENAME,"Main stylesheet file (XSLT or SEF)");d.addRecognizedOption("?",b.TYPE_BOOLEAN|b.VALUE_PROHIBITED,"Display command line help text");k==="EE"&&(d.addRecognizedOption("debug",b.TYPE_BOOLEAN,"Use diagnostic version of SaxonJS"),d.addRecognizedOption("T",b.TYPE_ENUMERATION,"Trace execution"),d.setPermittedValues("T",["none","low",
"normal","high"],"low"),d.addRecognizedOption("TP",b.TYPE_FILENAME|b.VALUE_REQUIRED,"Write timing profile to specified output file"));d.addRecognizedOption("stublib",b.TYPE_FILENAME|b.VALUE_REQUIRED,"External functions stub library")}const b={TYPE_BOOLEAN:1,TYPE_FILENAME:2,TYPE_ENUMERATION:4,TYPE_INTEGER:5,TYPE_QNAME:6,TYPE_FILENAME_LIST:7,TYPE_DATETIME:8,TYPE_STRING:9,TYPE_INTEGER_PAIR:10,VALUE_REQUIRED:256,VALUE_PROHIBITED:512},c=["on","yes","true","1"],g=["off","no","false","0"];let e={TYPE_BOOLEAN:c.concat(g).join("|"),
TYPE_FILENAME:"file name",TYPE_ENUMERATION:4,TYPE_INTEGER:"integer",TYPE_QNAME:"QName in URI qualified name form (Q{uri}local)",TYPE_FILENAME_LIST:"list of file names, semicolon-separated",TYPE_DATETIME:"dateTime in ??? format",TYPE_STRING:"string",TYPE_INTEGER_PAIR:"int,int"};for(let d in b)e[b[d]]=e[d];class f{constructor(){this._recognized={};this.actualOptions={};this.extraOptions={}}addRecognizedOption(d,k,p){this._recognized[d]={type:k&255,required:k&768,help:p}}setPermittedValues(d,k,p){let r=
this._recognized[d];r?(r.values=k,r.defaultValue=p):console.log("setPermittedValues - no record yet for option:",d)}displayPermittedOptions(){let d=[];for(let k in this._recognized)d.push(k);d.sort((k,p)=>{k=k.toLowerCase();p=p.toLowerCase();return k<p?-1:k===p?0:1});d=d.map(k=>" -"+k);return d.join()}setActualOptions(d){function k(l,h){throw Error("Command line option -"+l+" "+h);}const p=this._recognized;let r=this.actualOptions,v=this.extraOptions;d.filter(l=>l.startsWith("-")).forEach(function(l){var h=
l.indexOf(":"),n=h<0?l.substring(1):l.substring(1,h);h=h<0?"":l.substring(h+1);if(l.startsWith("--"))v[n.substring(1)]=h;else{(l=p[n])||k(n,"is not recognized");if(h==="?")throw n="Help for -"+n+" option:\nValue: "+(l.type==4?l.values.join("|"):e[l.type]),n+="\nMeaning: "+l.help,Error(n+"\n\nNo processing requested");l.required===256&&h===""&&k(n,"requires a value");l.required===512&&h!==""&&k(n,"must not have a value");h===""&&(h=l.defaultValue||"");switch(l.type){case 4:h&&l.values.indexOf(h)===
-1&&k(n,"may only have values "+l.values.join("|"));break;case 5:/[0-9]+/.test(h)||k(n,"may only have value "+e.TYPE_INTEGER);h=parseInt(h,10);break;case 1:c.indexOf(h)>=0?h=!0:g.indexOf(h)>=0?h=!1:h===""?h=!0:k(n,"may only have a boolean value "+e.TYPE_BOOLEAN);break;case 6:/{/.test(h)||/}/.test(h)||(h="Q{}"+h),/^Q{[^{}]*}[^{}]+$/.test(h)||k(n,"may only have value "+e.TYPE_QNAME)}r[n]=h}})}}return{OptionTypes:b,newCLOptions:function(d="HE"){let k=new f;a(k,d);return k}}}(),module$Volumes$Saxonica$src$saxonica$saxon_js_enterprise$build$prepare$nodeCLI$nodeJS$commandLineOptions=
{};module$Volumes$Saxonica$src$saxonica$saxon_js_enterprise$build$prepare$nodeCLI$nodeJS$commandLineOptions.CommandLine=CommandLine$$module$Volumes$Saxonica$src$saxonica$saxon_js_enterprise$build$prepare$nodeCLI$nodeJS$commandLineOptions;const argv$$module$Volumes$Saxonica$src$saxonica$saxon_js_enterprise$build$prepare$nodeCLI$nodeJS$command=process.argv;let finished$$module$Volumes$Saxonica$src$saxonica$saxon_js_enterprise$build$prepare$nodeCLI$nodeJS$command=!1,exitCode$$module$Volumes$Saxonica$src$saxonica$saxon_js_enterprise$build$prepare$nodeCLI$nodeJS$command=0,failed$$module$Volumes$Saxonica$src$saxonica$saxon_js_enterprise$build$prepare$nodeCLI$nodeJS$command=!1,profiler$$module$Volumes$Saxonica$src$saxonica$saxon_js_enterprise$build$prepare$nodeCLI$nodeJS$command;
function exit$$module$Volumes$Saxonica$src$saxonica$saxon_js_enterprise$build$prepare$nodeCLI$nodeJS$command(a=0){finished$$module$Volumes$Saxonica$src$saxonica$saxon_js_enterprise$build$prepare$nodeCLI$nodeJS$command=!0;a>exitCode$$module$Volumes$Saxonica$src$saxonica$saxon_js_enterprise$build$prepare$nodeCLI$nodeJS$command&&(exitCode$$module$Volumes$Saxonica$src$saxonica$saxon_js_enterprise$build$prepare$nodeCLI$nodeJS$command=a,process.exitCode=a)}
function quit$$module$Volumes$Saxonica$src$saxonica$saxon_js_enterprise$build$prepare$nodeCLI$nodeJS$command(a,b=0){console.error(a);failed$$module$Volumes$Saxonica$src$saxonica$saxon_js_enterprise$build$prepare$nodeCLI$nodeJS$command=!0;exit$$module$Volumes$Saxonica$src$saxonica$saxon_js_enterprise$build$prepare$nodeCLI$nodeJS$command(b)}
function log$$module$Volumes$Saxonica$src$saxonica$saxon_js_enterprise$build$prepare$nodeCLI$nodeJS$command(a){platform$$module$Volumes$Saxonica$src$saxonica$saxon_js_enterprise$build$prepare$nodeCLI$nodeJS$command.saxonPrint(a)}function warn$$module$Volumes$Saxonica$src$saxonica$saxon_js_enterprise$build$prepare$nodeCLI$nodeJS$command(a){log$$module$Volumes$Saxonica$src$saxonica$saxon_js_enterprise$build$prepare$nodeCLI$nodeJS$command("*Warning*: "+a)}
function staticExceptionMessage$$module$Volumes$Saxonica$src$saxonica$saxon_js_enterprise$build$prepare$nodeCLI$nodeJS$command(a){return a instanceof SaxonJS$$module$Volumes$Saxonica$src$saxonica$saxon_js_enterprise$build$prepare$nodeCLI$nodeJS$command.XError?"Error "+a.code.replace(/^Q\{http:\/\/www.w3.org\/2005\/xqt-errors\}/,"")+(a.errorObject?a.errorObject.toString():"")+":\n "+a.message:a.hasOwnProperty("message")?a.message:a.toString()}
function exceptionMessage$$module$Volumes$Saxonica$src$saxonica$saxon_js_enterprise$build$prepare$nodeCLI$nodeJS$command(a){return a instanceof SaxonJS$$module$Volumes$Saxonica$src$saxonica$saxon_js_enterprise$build$prepare$nodeCLI$nodeJS$command.XError?a.getMessage():a.hasOwnProperty("message")?a.message:a.toString()}
function hasArg$$module$Volumes$Saxonica$src$saxonica$saxon_js_enterprise$build$prepare$nodeCLI$nodeJS$command(a){return argv$$module$Volumes$Saxonica$src$saxonica$saxon_js_enterprise$build$prepare$nodeCLI$nodeJS$command.includes(a)}const fs$$module$Volumes$Saxonica$src$saxonica$saxon_js_enterprise$build$prepare$nodeCLI$nodeJS$command=require("fs"),{URL:URL$$module$Volumes$Saxonica$src$saxonica$saxon_js_enterprise$build$prepare$nodeCLI$nodeJS$command}=require("url");
let extensions$$module$Volumes$Saxonica$src$saxonica$saxon_js_enterprise$build$prepare$nodeCLI$nodeJS$command={getTraceCodeInjector:function(){return null},getProfiler:function(){return null},registerExtensions:function(){}};typeof Extensions!=="undefined"&&(extensions$$module$Volumes$Saxonica$src$saxonica$saxon_js_enterprise$build$prepare$nodeCLI$nodeJS$command=Extensions);let RenderProfileSEF$$module$Volumes$Saxonica$src$saxonica$saxon_js_enterprise$build$prepare$nodeCLI$nodeJS$command={};
typeof RenderProfile!=="undefined"&&(RenderProfileSEF$$module$Volumes$Saxonica$src$saxonica$saxon_js_enterprise$build$prepare$nodeCLI$nodeJS$command=RenderProfile.sef);let edition$$module$Volumes$Saxonica$src$saxonica$saxon_js_enterprise$build$prepare$nodeCLI$nodeJS$command={getSaxonEdition:function(){return"HE"}};typeof Edition!=="undefined"&&(edition$$module$Volumes$Saxonica$src$saxonica$saxon_js_enterprise$build$prepare$nodeCLI$nodeJS$command=Edition);
let SaxonJS$$module$Volumes$Saxonica$src$saxonica$saxon_js_enterprise$build$prepare$nodeCLI$nodeJS$command=null;
if(edition$$module$Volumes$Saxonica$src$saxonica$saxon_js_enterprise$build$prepare$nodeCLI$nodeJS$command.getSaxonEdition()==="EE")try{SaxonJS$$module$Volumes$Saxonica$src$saxonica$saxon_js_enterprise$build$prepare$nodeCLI$nodeJS$command=require(hasArg$$module$Volumes$Saxonica$src$saxonica$saxon_js_enterprise$build$prepare$nodeCLI$nodeJS$command("-debug")?"saxonjs-ee/debug":"saxonjs-ee")}catch(a){a.message&&a.message.indexOf("license is required")>=0?console.log(`Error: ${a.message}`):(console.log(`SaxonJS require failed: ${hasArg$$module$Volumes$Saxonica$src$saxonica$saxon_js_enterprise$build$prepare$nodeCLI$nodeJS$command("-debug")?
"saxonjs-ee/debug":"saxonjs-ee.js"}`),a.message?console.log(a.message):console.log(a)),SaxonJS$$module$Volumes$Saxonica$src$saxonica$saxon_js_enterprise$build$prepare$nodeCLI$nodeJS$command=null,exit$$module$Volumes$Saxonica$src$saxonica$saxon_js_enterprise$build$prepare$nodeCLI$nodeJS$command(2)}else SaxonJS$$module$Volumes$Saxonica$src$saxonica$saxon_js_enterprise$build$prepare$nodeCLI$nodeJS$command=require("saxonjs-he");
const platform$$module$Volumes$Saxonica$src$saxonica$saxon_js_enterprise$build$prepare$nodeCLI$nodeJS$command=SaxonJS$$module$Volumes$Saxonica$src$saxonica$saxon_js_enterprise$build$prepare$nodeCLI$nodeJS$command===null?null:SaxonJS$$module$Volumes$Saxonica$src$saxonica$saxon_js_enterprise$build$prepare$nodeCLI$nodeJS$command.internals.getPlatform();
function getParamsMap$$module$Volumes$Saxonica$src$saxonica$saxon_js_enterprise$build$prepare$nodeCLI$nodeJS$command(a){const b={};a.filter(c=>!/^[-!]/.test(c)).forEach(function(c){const g=c.split("=");let [e,f]=g;g.length===1&&quit$$module$Volumes$Saxonica$src$saxonica$saxon_js_enterprise$build$prepare$nodeCLI$nodeJS$command("Missing '=' in parameter '"+c+"'",2);switch(e.charAt(0)){case "?":e=e.slice(1);try{f=SaxonJS$$module$Volumes$Saxonica$src$saxonica$saxon_js_enterprise$build$prepare$nodeCLI$nodeJS$command.XPath.evaluate(f,
null,{resultForm:"xdm"})}catch(d){throw d;}break;case "+":e=e.slice(1),f=getPathToFileSync$$module$Volumes$Saxonica$src$saxonica$saxon_js_enterprise$build$prepare$nodeCLI$nodeJS$command(f),fs$$module$Volumes$Saxonica$src$saxonica$saxon_js_enterprise$build$prepare$nodeCLI$nodeJS$command.statSync(f).isDirectory()?quit$$module$Volumes$Saxonica$src$saxonica$saxon_js_enterprise$build$prepare$nodeCLI$nodeJS$command(f+" is a directory",2):f=[getXML$$module$Volumes$Saxonica$src$saxonica$saxon_js_enterprise$build$prepare$nodeCLI$nodeJS$command(f)]}/{/.test(e)||
/}/.test(e)||(e="Q{}"+e);/^Q{[^{}]*}[^{}]+$/.test(e)||quit$$module$Volumes$Saxonica$src$saxonica$saxon_js_enterprise$build$prepare$nodeCLI$nodeJS$command("Invalid parameter key "+e,2);b[e]=f});return b}
function getXdmParams$$module$Volumes$Saxonica$src$saxonica$saxon_js_enterprise$build$prepare$nodeCLI$nodeJS$command(a){const b=new SaxonJS$$module$Volumes$Saxonica$src$saxonica$saxon_js_enterprise$build$prepare$nodeCLI$nodeJS$command.XdmMap;for(const c in a){let g=a[c];Array.isArray(g)||(g=[SaxonJS$$module$Volumes$Saxonica$src$saxonica$saxon_js_enterprise$build$prepare$nodeCLI$nodeJS$command.XS.untypedAtomic.fromString(g)]);b.inSituPut(SaxonJS$$module$Volumes$Saxonica$src$saxonica$saxon_js_enterprise$build$prepare$nodeCLI$nodeJS$command.XS.QName.fromEQName(c),
g)}return b}function getSerializationParams$$module$Volumes$Saxonica$src$saxonica$saxon_js_enterprise$build$prepare$nodeCLI$nodeJS$command(a){const b={};a.filter(c=>c.startsWith("!")).forEach(function(c){c=c.split(/=/);let [g,e]=c;g=g.slice(1).replace(/^saxon:/,"Q{http://saxon.sf.net/}");b[g]=SaxonJS$$module$Volumes$Saxonica$src$saxonica$saxon_js_enterprise$build$prepare$nodeCLI$nodeJS$command.internals.Serializer.validateParam(g,e)});return b}
function addParentPointers$$module$Volumes$Saxonica$src$saxonica$saxon_js_enterprise$build$prepare$nodeCLI$nodeJS$command(a){a.C&&a.C.forEach(function(b){b.parentNode=a;addParentPointers$$module$Volumes$Saxonica$src$saxonica$saxon_js_enterprise$build$prepare$nodeCLI$nodeJS$command(b)})}function TransformOptions$$module$Volumes$Saxonica$src$saxonica$saxon_js_enterprise$build$prepare$nodeCLI$nodeJS$command(){}
TransformOptions$$module$Volumes$Saxonica$src$saxonica$saxon_js_enterprise$build$prepare$nodeCLI$nodeJS$command.prototype={stylesheetParams:{},templateParams:{},tunnelParams:{},functionParams:{},deliverResultDocument:void 0,stylesheetText:""};
function invokeSEFTransform$$module$Volumes$Saxonica$src$saxonica$saxon_js_enterprise$build$prepare$nodeCLI$nodeJS$command(a,b,c){c.async=!0;const g=SaxonJS$$module$Volumes$Saxonica$src$saxonica$saxon_js_enterprise$build$prepare$nodeCLI$nodeJS$command.internals.checkOptions(c,!0);return b?SaxonJS$$module$Volumes$Saxonica$src$saxonica$saxon_js_enterprise$build$prepare$nodeCLI$nodeJS$command.getResource({file:b,type:"xml"}).catch(e=>Promise.reject(e)).then(e=>{SaxonJS$$module$Volumes$Saxonica$src$saxonica$saxon_js_enterprise$build$prepare$nodeCLI$nodeJS$command.internals.internalTransform(a,
e,g);return g.resultPromise}):Promise.reject(Error("Source filename missing"))}
function compileXSLT$$module$Volumes$Saxonica$src$saxonica$saxon_js_enterprise$build$prepare$nodeCLI$nodeJS$command(a,b,c){let g=new TransformOptions$$module$Volumes$Saxonica$src$saxonica$saxon_js_enterprise$build$prepare$nodeCLI$nodeJS$command;g.destination="application";g.initialMode="compile-complete";g.templateParams={"Q{}options":{noXPath:!1}};for(let e in b)b.hasOwnProperty(e)&&(g.templateParams["Q{}options"][e]=b[e]);b=new SaxonJS$$module$Volumes$Saxonica$src$saxonica$saxon_js_enterprise$build$prepare$nodeCLI$nodeJS$command.XdmMap;
b.inSituPut(SaxonJS$$module$Volumes$Saxonica$src$saxonica$saxon_js_enterprise$build$prepare$nodeCLI$nodeJS$command.XS.QName.fromParts("","","staticParameters"),[c]);g.stylesheetParams=b;c=platform$$module$Volumes$Saxonica$src$saxonica$saxon_js_enterprise$build$prepare$nodeCLI$nodeJS$command.resource("compiler");addParentPointers$$module$Volumes$Saxonica$src$saxonica$saxon_js_enterprise$build$prepare$nodeCLI$nodeJS$command(c);g.stylesheetInternal=c;return invokeSEFTransform$$module$Volumes$Saxonica$src$saxonica$saxon_js_enterprise$build$prepare$nodeCLI$nodeJS$command(c,
a,g).then(e=>e.principalResult)}
function getXML$$module$Volumes$Saxonica$src$saxonica$saxon_js_enterprise$build$prepare$nodeCLI$nodeJS$command(a){const b=platform$$module$Volumes$Saxonica$src$saxonica$saxon_js_enterprise$build$prepare$nodeCLI$nodeJS$command.parseXmlFromString(readFile$$module$Volumes$Saxonica$src$saxonica$saxon_js_enterprise$build$prepare$nodeCLI$nodeJS$command(a));b._saxonBaseUri=filepathToUri$$module$Volumes$Saxonica$src$saxonica$saxon_js_enterprise$build$prepare$nodeCLI$nodeJS$command(a);return b}
function readFile$$module$Volumes$Saxonica$src$saxonica$saxon_js_enterprise$build$prepare$nodeCLI$nodeJS$command(a){try{return fs$$module$Volumes$Saxonica$src$saxonica$saxon_js_enterprise$build$prepare$nodeCLI$nodeJS$command.readFileSync(a,"utf8")}catch(b){quit$$module$Volumes$Saxonica$src$saxonica$saxon_js_enterprise$build$prepare$nodeCLI$nodeJS$command("Unable to read "+a,2)}}
function getPathToFileSync$$module$Volumes$Saxonica$src$saxonica$saxon_js_enterprise$build$prepare$nodeCLI$nodeJS$command(a){return fs$$module$Volumes$Saxonica$src$saxonica$saxon_js_enterprise$build$prepare$nodeCLI$nodeJS$command.realpathSync(a)}function getPathToFile$$module$Volumes$Saxonica$src$saxonica$saxon_js_enterprise$build$prepare$nodeCLI$nodeJS$command(a){return fs$$module$Volumes$Saxonica$src$saxonica$saxon_js_enterprise$build$prepare$nodeCLI$nodeJS$command.promises.realpath(a)}
function filepathToUri$$module$Volumes$Saxonica$src$saxonica$saxon_js_enterprise$build$prepare$nodeCLI$nodeJS$command(a){return platform$$module$Volumes$Saxonica$src$saxonica$saxon_js_enterprise$build$prepare$nodeCLI$nodeJS$command.fileURL(a)}
function compile$$module$Volumes$Saxonica$src$saxonica$saxon_js_enterprise$build$prepare$nodeCLI$nodeJS$command(a,b,c,g,e){return getPathToFile$$module$Volumes$Saxonica$src$saxonica$saxon_js_enterprise$build$prepare$nodeCLI$nodeJS$command(a.xsl).catch(f=>{f=f.message.replace("ENOENT: no such file or directory, realpath ","");return Promise.reject(new SaxonJS$$module$Volumes$Saxonica$src$saxonica$saxon_js_enterprise$build$prepare$nodeCLI$nodeJS$command.XError("Cannot locate stylesheet ("+f+")"))}).then(f=>
{if(f.endsWith(".sef")||f.endsWith(".sef.json"))return c.stylesheetFileName=f,c;if(f.endsWith(".sef.xml")){let d,k=getXML$$module$Volumes$Saxonica$src$saxonica$saxon_js_enterprise$build$prepare$nodeCLI$nodeJS$command(f);try{d=SaxonJS$$module$Volumes$Saxonica$src$saxonica$saxon_js_enterprise$build$prepare$nodeCLI$nodeJS$command.internals.XPath.sefToJSON(k.firstChild,!1)}catch(p){return Promise.reject(Error("Internal error: the intermediate XML form of the SEF file is invalid: "+p.message))}platform$$module$Volumes$Saxonica$src$saxonica$saxon_js_enterprise$build$prepare$nodeCLI$nodeJS$command.assignChecksums(d);
c.stylesheetText=JSON.stringify(d);return c}a.t&&console.error("Compiling stylesheet "+f);return compileXSLT$$module$Volumes$Saxonica$src$saxonica$saxon_js_enterprise$build$prepare$nodeCLI$nodeJS$command(f,b,g).catch(d=>{console.error(staticExceptionMessage$$module$Volumes$Saxonica$src$saxonica$saxon_js_enterprise$build$prepare$nodeCLI$nodeJS$command(d));return Promise.reject(Error("Failed to compile stylesheet"))}).then(d=>{Array.isArray(d)&&(d=d[0]);let k;try{k=SaxonJS$$module$Volumes$Saxonica$src$saxonica$saxon_js_enterprise$build$prepare$nodeCLI$nodeJS$command.internals.XPath.sefToJSON(d.firstChild,
!1)}catch(p){return Promise.reject(Error("Internal error: the intermediate XML form of the SEF file is invalid: "+p.message))}platform$$module$Volumes$Saxonica$src$saxonica$saxon_js_enterprise$build$prepare$nodeCLI$nodeJS$command.assignChecksums(k);c.stylesheetText=JSON.stringify(k);c.stylesheetBaseURI=filepathToUri$$module$Volumes$Saxonica$src$saxonica$saxon_js_enterprise$build$prepare$nodeCLI$nodeJS$command(f);return c})})}
function executeTransformation$$module$Volumes$Saxonica$src$saxonica$saxon_js_enterprise$build$prepare$nodeCLI$nodeJS$command(a,b,c){const g=process.hrtime();if(a.o){var e=a.o;try{fs$$module$Volumes$Saxonica$src$saxonica$saxon_js_enterprise$build$prepare$nodeCLI$nodeJS$command.realpathSync(e)}catch(f){platform$$module$Volumes$Saxonica$src$saxonica$saxon_js_enterprise$build$prepare$nodeCLI$nodeJS$command.writeFileSync(new URL$$module$Volumes$Saxonica$src$saxonica$saxon_js_enterprise$build$prepare$nodeCLI$nodeJS$command(filepathToUri$$module$Volumes$Saxonica$src$saxonica$saxon_js_enterprise$build$prepare$nodeCLI$nodeJS$command(e)),
"")}b.baseOutputURI=filepathToUri$$module$Volumes$Saxonica$src$saxonica$saxon_js_enterprise$build$prepare$nodeCLI$nodeJS$command(e);b.destination="file"}else b.destination="stdout",b.baseOutputURI=platform$$module$Volumes$Saxonica$src$saxonica$saxon_js_enterprise$build$prepare$nodeCLI$nodeJS$command.baseURL();c&&(b.logLevel=2);a.T&&(b.traceInjector=extensions$$module$Volumes$Saxonica$src$saxonica$saxon_js_enterprise$build$prepare$nodeCLI$nodeJS$command.getTraceCodeInjector(SaxonJS$$module$Volumes$Saxonica$src$saxonica$saxon_js_enterprise$build$prepare$nodeCLI$nodeJS$command,
a.T));a.TP&&(profiler$$module$Volumes$Saxonica$src$saxonica$saxon_js_enterprise$build$prepare$nodeCLI$nodeJS$command=extensions$$module$Volumes$Saxonica$src$saxonica$saxon_js_enterprise$build$prepare$nodeCLI$nodeJS$command.getProfiler(SaxonJS$$module$Volumes$Saxonica$src$saxonica$saxon_js_enterprise$build$prepare$nodeCLI$nodeJS$command),b.traceInjector=profiler$$module$Volumes$Saxonica$src$saxonica$saxon_js_enterprise$build$prepare$nodeCLI$nodeJS$command.injector);a.s&&(e=a.s,/^(http:|https:|file:)/.test(e)?
b.sourceLocation=e:b.sourceFileName=filepathToUri$$module$Volumes$Saxonica$src$saxonica$saxon_js_enterprise$build$prepare$nodeCLI$nodeJS$command(e).toString());a.json&&(a.s&&quit$$module$Volumes$Saxonica$src$saxonica$saxon_js_enterprise$build$prepare$nodeCLI$nodeJS$command("Cannot supply both -s and -json",2),e=a.json,/^(http:|https:|file:)/.test(e)?b.sourceLocation=e:b.sourceFileName=filepathToUri$$module$Volumes$Saxonica$src$saxonica$saxon_js_enterprise$build$prepare$nodeCLI$nodeJS$command(e).toString(),
b.sourceType="json");a.it&&(c&&log$$module$Volumes$Saxonica$src$saxonica$saxon_js_enterprise$build$prepare$nodeCLI$nodeJS$command("Initial template: "+a.it),b.initialTemplate=a.it);a.im&&(c&&log$$module$Volumes$Saxonica$src$saxonica$saxon_js_enterprise$build$prepare$nodeCLI$nodeJS$command("Initial mode: "+a.im),b.initialMode=a.im);c&&a.o&&log$$module$Volumes$Saxonica$src$saxonica$saxon_js_enterprise$build$prepare$nodeCLI$nodeJS$command("Writing to "+filepathToUri$$module$Volumes$Saxonica$src$saxonica$saxon_js_enterprise$build$prepare$nodeCLI$nodeJS$command(a.o));
return SaxonJS$$module$Volumes$Saxonica$src$saxonica$saxon_js_enterprise$build$prepare$nodeCLI$nodeJS$command.transform(b,"async").then(()=>{if(c){var f=process.hrtime(g);console.warn("\nExecution time: %d.%ds",f[0],Math.floor(f[1]/1E6));f=process.memoryUsage().heapUsed/1024/1024;console.warn(`Memory used: ${Math.round(f*100)/100}Mb`)}})}
function main$$module$Volumes$Saxonica$src$saxonica$saxon_js_enterprise$build$prepare$nodeCLI$nodeJS$command(){var a=argv$$module$Volumes$Saxonica$src$saxonica$saxon_js_enterprise$build$prepare$nodeCLI$nodeJS$command.slice(2);let b=CommandLine$$module$Volumes$Saxonica$src$saxonica$saxon_js_enterprise$build$prepare$nodeCLI$nodeJS$commandLineOptions.newCLOptions(edition$$module$Volumes$Saxonica$src$saxonica$saxon_js_enterprise$build$prepare$nodeCLI$nodeJS$command.getSaxonEdition());try{b.setActualOptions(a)}catch(f){quit$$module$Volumes$Saxonica$src$saxonica$saxon_js_enterprise$build$prepare$nodeCLI$nodeJS$command(exceptionMessage$$module$Volumes$Saxonica$src$saxonica$saxon_js_enterprise$build$prepare$nodeCLI$nodeJS$command(f),
2)}if(!finished$$module$Volumes$Saxonica$src$saxonica$saxon_js_enterprise$build$prepare$nodeCLI$nodeJS$command&&!failed$$module$Volumes$Saxonica$src$saxonica$saxon_js_enterprise$build$prepare$nodeCLI$nodeJS$command){var c=b.actualOptions,g=b.extraOptions,e=new TransformOptions$$module$Volumes$Saxonica$src$saxonica$saxon_js_enterprise$build$prepare$nodeCLI$nodeJS$command;a.forEach(f=>{finished$$module$Volumes$Saxonica$src$saxonica$saxon_js_enterprise$build$prepare$nodeCLI$nodeJS$command||/[=-]/g.test(f)||
badUsage$$module$Volumes$Saxonica$src$saxonica$saxon_js_enterprise$build$prepare$nodeCLI$nodeJS$command("Invalid command line input: "+f)});if(!finished$$module$Volumes$Saxonica$src$saxonica$saxon_js_enterprise$build$prepare$nodeCLI$nodeJS$command)try{const f=getParamsMap$$module$Volumes$Saxonica$src$saxonica$saxon_js_enterprise$build$prepare$nodeCLI$nodeJS$command(a),d=getSerializationParams$$module$Volumes$Saxonica$src$saxonica$saxon_js_enterprise$build$prepare$nodeCLI$nodeJS$command(a);if(c["?"])badUsage$$module$Volumes$Saxonica$src$saxonica$saxon_js_enterprise$build$prepare$nodeCLI$nodeJS$command("");
else{const k=c.t,p=c.ns,r=c.relocate,v=c.tp,l=c.co;if(k){const h=SaxonJS$$module$Volumes$Saxonica$src$saxonica$saxon_js_enterprise$build$prepare$nodeCLI$nodeJS$command.getProcessorInfo();log$$module$Volumes$Saxonica$src$saxonica$saxon_js_enterprise$build$prepare$nodeCLI$nodeJS$command(h.productName+" "+h.productVersion+" from Saxonica ");log$$module$Volumes$Saxonica$src$saxonica$saxon_js_enterprise$build$prepare$nodeCLI$nodeJS$command("Node.js version "+process.version)}if(c.xsl||c.xp){extensions$$module$Volumes$Saxonica$src$saxonica$saxon_js_enterprise$build$prepare$nodeCLI$nodeJS$command.registerExtensions(SaxonJS$$module$Volumes$Saxonica$src$saxonica$saxon_js_enterprise$build$prepare$nodeCLI$nodeJS$command);
if("stublib"in c){const h=c.stublib,n=platform$$module$Volumes$Saxonica$src$saxonica$saxon_js_enterprise$build$prepare$nodeCLI$nodeJS$command.readFile(h);let q=JSON.parse(n);Array.isArray(q)||(q=[q]);for(const m of q){if(!("namespace"in m))throw Error(`External functions must have a namespace: ${h}`);if(!("signatures"in m))throw Error(`External functions must have signatures: ${h}`);for(let t in m.signatures){let u=m.signatures[t];if(!("as"in u&&"param"in u&&"arity"in u))throw Error(`Invalid signature for ${t} in ${h}: ${u}`);
}SaxonJS$$module$Volumes$Saxonica$src$saxonica$saxon_js_enterprise$build$prepare$nodeCLI$nodeJS$command.registerExtensionFunctions(m)}}if(c.xsl){const h=getXdmParams$$module$Volumes$Saxonica$src$saxonica$saxon_js_enterprise$build$prepare$nodeCLI$nodeJS$command(f);a={traceProgress:!!v,timing:!!k};a.extraOptions=g;a.relocatable=!!r;p&&(a.ns=p);l&&(a[l]=!0);let n=compile$$module$Volumes$Saxonica$src$saxonica$saxon_js_enterprise$build$prepare$nodeCLI$nodeJS$command(c,a,e,h,d);c["export"]&&(n=n.then(m=>
platform$$module$Volumes$Saxonica$src$saxonica$saxon_js_enterprise$build$prepare$nodeCLI$nodeJS$command.writeFileAsync(new URL$$module$Volumes$Saxonica$src$saxonica$saxon_js_enterprise$build$prepare$nodeCLI$nodeJS$command(filepathToUri$$module$Volumes$Saxonica$src$saxonica$saxon_js_enterprise$build$prepare$nodeCLI$nodeJS$command(c["export"])),m.stylesheetText,"utf8")).then(()=>getPathToFile$$module$Volumes$Saxonica$src$saxonica$saxon_js_enterprise$build$prepare$nodeCLI$nodeJS$command(c["export"]).then(m=>
{k&&log$$module$Volumes$Saxonica$src$saxonica$saxon_js_enterprise$build$prepare$nodeCLI$nodeJS$command("Stylesheet exported to SEF file "+m)})));let q=n.then(()=>{c.nogo&&exit$$module$Volumes$Saxonica$src$saxonica$saxon_js_enterprise$build$prepare$nodeCLI$nodeJS$command()});if(!c.nogo){if(c.master)try{const m=platform$$module$Volumes$Saxonica$src$saxonica$saxon_js_enterprise$build$prepare$nodeCLI$nodeJS$command.readFile(c.master),t=platform$$module$Volumes$Saxonica$src$saxonica$saxon_js_enterprise$build$prepare$nodeCLI$nodeJS$command.parseXmlFromString(m);
e.masterDocument=t}catch(m){return log$$module$Volumes$Saxonica$src$saxonica$saxon_js_enterprise$build$prepare$nodeCLI$nodeJS$command("Failed while reading and parsing master document "+c.master),Promise.reject(m)}q=q.then(()=>{e.stylesheetParams=h;e.outputProperties=d;e.extraOptions=g;return executeTransformation$$module$Volumes$Saxonica$src$saxonica$saxon_js_enterprise$build$prepare$nodeCLI$nodeJS$command(c,e,k)}).then(()=>{k&&!failed$$module$Volumes$Saxonica$src$saxonica$saxon_js_enterprise$build$prepare$nodeCLI$nodeJS$command&&
log$$module$Volumes$Saxonica$src$saxonica$saxon_js_enterprise$build$prepare$nodeCLI$nodeJS$command("Transformation complete ")})}q=q.catch(m=>quit$$module$Volumes$Saxonica$src$saxonica$saxon_js_enterprise$build$prepare$nodeCLI$nodeJS$command(exceptionMessage$$module$Volumes$Saxonica$src$saxonica$saxon_js_enterprise$build$prepare$nodeCLI$nodeJS$command(m),2));e.masterDocument&&(q=q.then(()=>{if(failed$$module$Volumes$Saxonica$src$saxonica$saxon_js_enterprise$build$prepare$nodeCLI$nodeJS$command)return Promise.reject("Transformation failed");
const m=SaxonJS$$module$Volumes$Saxonica$src$saxonica$saxon_js_enterprise$build$prepare$nodeCLI$nodeJS$command.serialize(e.masterDocument,{method:"xml"});return fs$$module$Volumes$Saxonica$src$saxonica$saxon_js_enterprise$build$prepare$nodeCLI$nodeJS$command.promises.writeFile(c.master,m)}));c.TP&&(q=q.then(()=>{const m=c.TP,t=profiler$$module$Volumes$Saxonica$src$saxonica$saxon_js_enterprise$build$prepare$nodeCLI$nodeJS$command.report();return SaxonJS$$module$Volumes$Saxonica$src$saxonica$saxon_js_enterprise$build$prepare$nodeCLI$nodeJS$command.transform({stylesheetText:JSON.stringify(RenderProfileSEF$$module$Volumes$Saxonica$src$saxonica$saxon_js_enterprise$build$prepare$nodeCLI$nodeJS$command),
stylesheetParams:{"Q{}metrics":JSON.stringify(t)},destination:"file",baseOutputURI:filepathToUri$$module$Volumes$Saxonica$src$saxonica$saxon_js_enterprise$build$prepare$nodeCLI$nodeJS$command(m),outputProps:{method:"html",indent:!0}},"async").catch(u=>Promise.reject(u))}).catch(m=>Promise.reject(m)));q.finally(()=>{exit$$module$Volumes$Saxonica$src$saxonica$saxon_js_enterprise$build$prepare$nodeCLI$nodeJS$command()}).catch(m=>{quit$$module$Volumes$Saxonica$src$saxonica$saxon_js_enterprise$build$prepare$nodeCLI$nodeJS$command(exceptionMessage$$module$Volumes$Saxonica$src$saxonica$saxon_js_enterprise$build$prepare$nodeCLI$nodeJS$command(m),
1)})}else executeXPath$$module$Volumes$Saxonica$src$saxonica$saxon_js_enterprise$build$prepare$nodeCLI$nodeJS$command(c,f,d),exit$$module$Volumes$Saxonica$src$saxonica$saxon_js_enterprise$build$prepare$nodeCLI$nodeJS$command()}else quit$$module$Volumes$Saxonica$src$saxonica$saxon_js_enterprise$build$prepare$nodeCLI$nodeJS$command("Saxon requires a stylesheet as -xsl: argument",2)}}catch(f){quit$$module$Volumes$Saxonica$src$saxonica$saxon_js_enterprise$build$prepare$nodeCLI$nodeJS$command(exceptionMessage$$module$Volumes$Saxonica$src$saxonica$saxon_js_enterprise$build$prepare$nodeCLI$nodeJS$command(f),
2)}}}
function executeXPath$$module$Volumes$Saxonica$src$saxonica$saxon_js_enterprise$build$prepare$nodeCLI$nodeJS$command(a,b,c){if("s"in a||"json"in a){const g=a.s||a.json;let e={};/^(http:|https:|file:)/.test(g)?e.location=g:e.file=g;platform$$module$Volumes$Saxonica$src$saxonica$saxon_js_enterprise$build$prepare$nodeCLI$nodeJS$command.resourcePromise(e).then(f=>{f="s"in a?platform$$module$Volumes$Saxonica$src$saxonica$saxon_js_enterprise$build$prepare$nodeCLI$nodeJS$command.parseXmlFromString(f):platform$$module$Volumes$Saxonica$src$saxonica$saxon_js_enterprise$build$prepare$nodeCLI$nodeJS$command.parseJsonFromString(f);
executeXPathOverData$$module$Volumes$Saxonica$src$saxonica$saxon_js_enterprise$build$prepare$nodeCLI$nodeJS$command(f,a,b,c)}).catch(f=>{console.error(exceptionMessage$$module$Volumes$Saxonica$src$saxonica$saxon_js_enterprise$build$prepare$nodeCLI$nodeJS$command(f));exit$$module$Volumes$Saxonica$src$saxonica$saxon_js_enterprise$build$prepare$nodeCLI$nodeJS$command(1)})}else try{executeXPathOverData$$module$Volumes$Saxonica$src$saxonica$saxon_js_enterprise$build$prepare$nodeCLI$nodeJS$command(null,
a,b,c)}catch(g){console.error(exceptionMessage$$module$Volumes$Saxonica$src$saxonica$saxon_js_enterprise$build$prepare$nodeCLI$nodeJS$command(g)),exit$$module$Volumes$Saxonica$src$saxonica$saxon_js_enterprise$build$prepare$nodeCLI$nodeJS$command(1)}}
function executeXPathOverData$$module$Volumes$Saxonica$src$saxonica$saxon_js_enterprise$build$prepare$nodeCLI$nodeJS$command(a,b,c,g){const e=platform$$module$Volumes$Saxonica$src$saxonica$saxon_js_enterprise$build$prepare$nodeCLI$nodeJS$command.baseURL();a=SaxonJS$$module$Volumes$Saxonica$src$saxonica$saxon_js_enterprise$build$prepare$nodeCLI$nodeJS$command.XPath.evaluate(b.xp,a,{resultForm:"xdm",params:c,staticBaseURI:e});c={method:"adaptive"};for(const f in g)c[f]=g[f];g=SaxonJS$$module$Volumes$Saxonica$src$saxonica$saxon_js_enterprise$build$prepare$nodeCLI$nodeJS$command.serialize(a,
c);"o"in b?(b=fs$$module$Volumes$Saxonica$src$saxonica$saxon_js_enterprise$build$prepare$nodeCLI$nodeJS$command.openSync(b.o,"w"),fs$$module$Volumes$Saxonica$src$saxonica$saxon_js_enterprise$build$prepare$nodeCLI$nodeJS$command.writeSync(b,g,0,"utf-8"),fs$$module$Volumes$Saxonica$src$saxonica$saxon_js_enterprise$build$prepare$nodeCLI$nodeJS$command.closeSync(b)):process.stdout.write(g)}
function badUsage$$module$Volumes$Saxonica$src$saxonica$saxon_js_enterprise$build$prepare$nodeCLI$nodeJS$command(a){a!==""&&console.error(a);log$$module$Volumes$Saxonica$src$saxonica$saxon_js_enterprise$build$prepare$nodeCLI$nodeJS$command("Usage: see https://www.saxonica.com/saxonjs/documentation3/index.html#!nodejs/command-line");let b=CommandLine$$module$Volumes$Saxonica$src$saxonica$saxon_js_enterprise$build$prepare$nodeCLI$nodeJS$commandLineOptions.newCLOptions();log$$module$Volumes$Saxonica$src$saxonica$saxon_js_enterprise$build$prepare$nodeCLI$nodeJS$command("Options available:"+
b.displayPermittedOptions());log$$module$Volumes$Saxonica$src$saxonica$saxon_js_enterprise$build$prepare$nodeCLI$nodeJS$command("Use -XYZ:? for details of option XYZ");log$$module$Volumes$Saxonica$src$saxonica$saxon_js_enterprise$build$prepare$nodeCLI$nodeJS$command("Params: ");log$$module$Volumes$Saxonica$src$saxonica$saxon_js_enterprise$build$prepare$nodeCLI$nodeJS$command(" param=value Set stylesheet string parameter");log$$module$Volumes$Saxonica$src$saxonica$saxon_js_enterprise$build$prepare$nodeCLI$nodeJS$command(" +param=filename Set stylesheet document parameter");
log$$module$Volumes$Saxonica$src$saxonica$saxon_js_enterprise$build$prepare$nodeCLI$nodeJS$command(" ?param=expression Set stylesheet parameter using XPath");log$$module$Volumes$Saxonica$src$saxonica$saxon_js_enterprise$build$prepare$nodeCLI$nodeJS$command(" !param=value Set serialization parameter");log$$module$Volumes$Saxonica$src$saxonica$saxon_js_enterprise$build$prepare$nodeCLI$nodeJS$command(" (bindings and values containing punctuation may need to be quoted in some command shells,");
log$$module$Volumes$Saxonica$src$saxonica$saxon_js_enterprise$build$prepare$nodeCLI$nodeJS$command(' e.g. in PowerShell: "{NS}key=val" ?range="1 to 20" )');""===a?exit$$module$Volumes$Saxonica$src$saxonica$saxon_js_enterprise$build$prepare$nodeCLI$nodeJS$command():exit$$module$Volumes$Saxonica$src$saxonica$saxon_js_enterprise$build$prepare$nodeCLI$nodeJS$command(2)}main$$module$Volumes$Saxonica$src$saxonica$saxon_js_enterprise$build$prepare$nodeCLI$nodeJS$command();
(function wait(){finished$$module$Volumes$Saxonica$src$saxonica$saxon_js_enterprise$build$prepare$nodeCLI$nodeJS$command||setTimeout(wait,100)})();var module$Volumes$Saxonica$src$saxonica$saxon_js_enterprise$build$prepare$nodeCLI$nodeJS$command={};}).call(this);