proskomma
Version:
A Scripture Runtime Engine
2 lines • 1.11 MB
JavaScript
/*! For license information please see index.js.LICENSE.txt */
(()=>{var e={9742:(e,t)=>{"use strict";t.byteLength=function(e){var t=c(e),n=t[0],r=t[1];return 3*(n+r)/4-r},t.toByteArray=function(e){var t,n,o=c(e),a=o[0],i=o[1],u=new s(function(e,t,n){return 3*(t+n)/4-n}(0,a,i)),d=0,p=i>0?a-4:a;for(n=0;n<p;n+=4)t=r[e.charCodeAt(n)]<<18|r[e.charCodeAt(n+1)]<<12|r[e.charCodeAt(n+2)]<<6|r[e.charCodeAt(n+3)],u[d++]=t>>16&255,u[d++]=t>>8&255,u[d++]=255&t;return 2===i&&(t=r[e.charCodeAt(n)]<<2|r[e.charCodeAt(n+1)]>>4,u[d++]=255&t),1===i&&(t=r[e.charCodeAt(n)]<<10|r[e.charCodeAt(n+1)]<<4|r[e.charCodeAt(n+2)]>>2,u[d++]=t>>8&255,u[d++]=255&t),u},t.fromByteArray=function(e){for(var t,r=e.length,s=r%3,o=[],a=16383,i=0,c=r-s;i<c;i+=a)o.push(u(e,i,i+a>c?c:i+a));return 1===s?(t=e[r-1],o.push(n[t>>2]+n[t<<4&63]+"==")):2===s&&(t=(e[r-2]<<8)+e[r-1],o.push(n[t>>10]+n[t>>4&63]+n[t<<2&63]+"=")),o.join("")};for(var n=[],r=[],s="undefined"!=typeof Uint8Array?Uint8Array:Array,o="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",a=0,i=o.length;a<i;++a)n[a]=o[a],r[o.charCodeAt(a)]=a;function c(e){var t=e.length;if(t%4>0)throw new Error("Invalid string. Length must be a multiple of 4");var n=e.indexOf("=");return-1===n&&(n=t),[n,n===t?0:4-n%4]}function u(e,t,r){for(var s,o,a=[],i=t;i<r;i+=3)s=(e[i]<<16&16711680)+(e[i+1]<<8&65280)+(255&e[i+2]),a.push(n[(o=s)>>18&63]+n[o>>12&63]+n[o>>6&63]+n[63&o]);return a.join("")}r["-".charCodeAt(0)]=62,r["_".charCodeAt(0)]=63},3288:function(e,t){var n;!function(r){"use strict";var s=32;function o(e){return 16843009*((e=(858993459&(e-=e>>>1&1431655765))+(e>>>2&858993459))+(e>>>4)&252645135)>>>24}function a(e,t){for(var n=0,r=0;r<e.length;r++){n*=2;var s=(e[r]+n)/t|0;n=(e[r]+n)%t,e[r]=s}return n}function i(e,t){if(null==t)return e.data=[0,0,0,0,0,0,0,0,0,0],void(e._=0);if(t instanceof c)return e.data=t.data,void(e._=t._);switch(typeof t){case"number":e.data=[0|t],e._=0;break;case"string":var n=2,r=s;0===t.indexOf("0b")?t=t.substr(2):0===t.indexOf("0x")&&(t=t.substr(2),n=16,r=8),e.data=[],e._=0;for(var o=t.length-r,a=t.length;;){var i=parseInt(t.slice(o>0?o:0,a),n);if(isNaN(i))throw SyntaxError("Invalid param");if(e.data.push(0|i),o<=0)break;o-=r,a-=r}break;default:e.data=[0];var d=e.data;if(t instanceof Array){for(var p=t.length-1;p>=0;p--){var l=t[p];l===1/0?e._=-1:(u(e,l),d[l>>>5]|=1<<l)}break}if(Uint8Array&&t instanceof Uint8Array){for(u(e,8*t.length),p=0;p<t.length;p++)for(var f=t[p],h=0;h<8;h++){var m=8*p+h;d[m>>>5]|=(f>>h&1)<<m}break}throw SyntaxError("Invalid param")}}function c(e){if(!(this instanceof c))return new c(e);i(this,e),this.data=this.data.slice()}function u(e,t){for(var n=t>>>5,r=e.data,s=e._,o=r.length;n>=o;n--)r.push(s)}var d={data:[],_:0};c.prototype={data:[],_:0,set:function(e,t){return u(this,e|=0),void 0===t||t?this.data[e>>>5]|=1<<e:this.data[e>>>5]&=~(1<<e),this},get:function(e){e|=0;var t=this.data,n=e>>>5;return n>=t.length?1&this._:t[n]>>>e&1},not:function(){for(var e=this.clone(),t=e.data,n=0;n<t.length;n++)t[n]=~t[n];return e._=~e._,e},and:function(e){i(d,e);var t=this.clone(),n=t.data,r=d.data,o=r.length,a=d._;0!==t._&&u(t,o*s-1);for(var c=n.length,p=Math.min(o,c),l=0;l<p;l++)n[l]&=r[l];for(;l<c;l++)n[l]&=a;return t._&=a,t},or:function(e){i(d,e);for(var t=this.clone(),n=t.data,r=d.data,s=r.length-1,o=n.length-1,a=Math.min(o,s),c=s;c>a;c--)n[c]=r[c];for(;c>=0;c--)n[c]|=r[c];return t._|=d._,t},xor:function(e){i(d,e);var t=this.clone(),n=t.data,r=d.data,s=t._,o=d._,a=0,c=n.length-1,u=r.length-1;for(a=c;a>u;a--)n[a]^=o;for(a=u;a>c;a--)n[a]=s^r[a];for(;a>=0;a--)n[a]^=r[a];return t._^=o,t},andNot:function(e){return this.and(new c(e).flip())},flip:function(e,t){if(void 0===e){for(var n=this.data,r=0;r<n.length;r++)n[r]=~n[r];this._=~this._}else if(void 0===t)u(this,e),this.data[e>>>5]^=1<<e;else if(0<=e&&e<=t)for(u(this,t),r=e;r<=t;r++)this.data[r>>>5]^=1<<r;return this},clear:function(e,t){var n=this.data;if(void 0===e){for(var r=n.length-1;r>=0;r--)n[r]=0;this._=0}else if(void 0===t)u(this,e|=0),n[e>>>5]&=~(1<<e);else if(e<=t)for(u(this,t),r=e;r<=t;r++)n[r>>>5]&=~(1<<r);return this},slice:function(e,t){if(void 0===e)return this.clone();if(void 0===t){t=this.data.length*s,(r=Object.create(c.prototype))._=this._,r.data=[0];for(var n=e;n<=t;n++)r.set(n-e,this.get(n));return r}if(e<=t&&0<=e){var r;for((r=Object.create(c.prototype)).data=[0],n=e;n<=t;n++)r.set(n-e,this.get(n));return r}return null},setRange:function(e,t,n){for(var r=e;r<=t;r++)this.set(r,n);return this},clone:function(){var e=Object.create(c.prototype);return e.data=this.data.slice(),e._=this._,e},toArray:Math.clz32?function(){for(var e=[],t=this.data,n=t.length-1;n>=0;n--)for(var r=t[n];0!==r;){var o=31-Math.clz32(r);r^=1<<o,e.unshift(n*s+o)}return 0!==this._&&e.push(1/0),e}:function(){for(var e=[],t=this.data,n=0;n<t.length;n++)for(var r=t[n];0!==r;){var a=r&-r;r^=a,e.push(n*s+o(a-1))}return 0!==this._&&e.push(1/0),e},toString:function(e){var t=this.data;if(e||(e=2),0==(e&e-1)&&e<36){for(var n="",r=2+Math.log(4294967295)/Math.log(e)|0,o=t.length-1;o>=0;o--){var i=t[o];i<0&&(i+=4294967296);var c=i.toString(e);""!==n&&(n+="0".repeat(r-c.length-1)),n+=c}return 0===this._?(""===(n=n.replace(/^0+/,""))&&(n="0"),n):(n="1111"+n).replace(/^1+/,"...1111")}if(2>e||e>36)throw SyntaxError("Invalid base");n=[];var u=[];for(o=t.length;o--;)for(var d=s;d--;)u.push(t[o]>>>d&1);do{n.unshift(a(u,e).toString(e))}while(!u.every((function(e){return 0===e})));return n.join("")},isEmpty:function(){if(0!==this._)return!1;for(var e=this.data,t=e.length-1;t>=0;t--)if(0!==e[t])return!1;return!0},cardinality:function(){if(0!==this._)return 1/0;for(var e=0,t=this.data,n=0;n<t.length;n++){var r=t[n];0!==r&&(e+=o(r))}return e},msb:Math.clz32?function(){if(0!==this._)return 1/0;for(var e=this.data,t=e.length;t-- >0;){var n=Math.clz32(e[t]);if(n!==s)return t*s+s-1-n}return 1/0}:function(){if(0!==this._)return 1/0;for(var e=this.data,t=e.length;t-- >0;){var n=e[t],r=0;if(n){for(;(n>>>=1)>0;r++);return t*s+r}}return 1/0},ntz:function(){for(var e=this.data,t=0;t<e.length;t++){var n=e[t];if(0!==n)return t*s+o(n=(n^n-1)>>>1)}return 1/0},lsb:function(){for(var e=this.data,t=0;t<e.length;t++){var n=e[t],r=0;if(n){for(var o=n&-n;o>>>=1;r++);return s*t+r}}return 1&this._},equals:function(e){i(d,e);var t=this.data,n=d.data,r=this._,s=d._,o=t.length-1,a=n.length-1;if(s!==r)return!1;for(var c=o<a?o:a,u=0;u<=c;u++)if(t[u]!==n[u])return!1;for(u=o;u>a;u--)if(t[u]!==s)return!1;for(u=a;u>o;u--)if(n[u]!==r)return!1;return!0},[Symbol.iterator]:function(){var e=this.data,t=0;if(0===this._){for(var n=0,r=e.length-1;r>=0;r--)if(0!==e[r]){n=r;break}return{next:function(){var r=t>>>5;return{done:r>n||r===n&&e[r]>>>t==0,value:r>n?0:e[r]>>>t++&1}}}}return{next:function(){var n=t>>>5;return{done:!1,value:n<e.length?e[n]>>>t++&1:1}}}}},c.fromBinaryString=function(e){return new c("0b"+e)},c.fromHexString=function(e){return new c("0x"+e)},c.Random=function(e){(void 0===e||e<0)&&(e=s);for(var t=e%s,n=[],r=Math.ceil(e/s),o=Object.create(c.prototype),a=0;a<r;a++)n.push(4294967296*Math.random()|0);return t>0&&(n[r-1]&=(1<<t)-1),o.data=n,o._=0,o},void 0===(n=function(){return c}.apply(t,[]))||(e.exports=n)}()},706:(e,t,n)=>{var r=n(4300).Buffer;!function(){"use strict";e.exports=function(e){return(e instanceof r?e:r.from(e.toString(),"binary")).toString("base64")}}()},6495:(e,t,n)=>{var r=n(6113),s=n(7147);function o(e,t){t||(t={}),t.algorithm||(t.algorithm="sha1");var n=r.createHash(t.algorithm);return n.write?(n.write(e),n.digest("hex")):(n.update(e),n.digest("hex"))}e.exports=o,o.file=function(e,t,n){"function"==typeof t&&(n=t,t={}),t||(t={}),t.algorithm||(t.algorithm="sha1"),s.stat(e,(function(o,a){if(o||a.isFile()||(o=new Error("Not a file")),o)return n(o);var i=r.createHash(t.algorithm),c=s.createReadStream(e);i.write?(i.setEncoding("hex"),c.pipe(i,{end:!1}),c.on("end",(function(){i.end(),n(null,i.read())}))):(c.on("data",(function(e){i.update(e)})),c.on("end",(function(){n(null,i.digest("hex"))})))}))}},5108:(e,t,n)=>{var r=n(3837),s=n(9491);function o(){return(new Date).getTime()}var a,i=Array.prototype.slice,c={};a="undefined"!=typeof global&&global.console?global.console:"undefined"!=typeof window&&window.console?window.console:{};for(var u=[[function(){},"log"],[function(){a.log.apply(a,arguments)},"info"],[function(){a.log.apply(a,arguments)},"warn"],[function(){a.warn.apply(a,arguments)},"error"],[function(e){c[e]=o()},"time"],[function(e){var t=c[e];if(!t)throw new Error("No such label: "+e);delete c[e];var n=o()-t;a.log(e+": "+n+"ms")},"timeEnd"],[function(){var e=new Error;e.name="Trace",e.message=r.format.apply(null,arguments),a.error(e.stack)},"trace"],[function(e){a.log(r.inspect(e)+"\n")},"dir"],[function(e){if(!e){var t=i.call(arguments,1);s.ok(!1,r.format.apply(null,t))}},"assert"]],d=0;d<u.length;d++){var p=u[d],l=p[0],f=p[1];a[f]||(a[f]=l)}e.exports=a},2673:(e,t,n)=>{var r=n(4300).Buffer;const s={},o=e=>{let t=typeof e;return"number"===t||"string"===t||"boolean"===t||"undefined"===t||"bigint"===t||"symbol"===t||null===e},a=e=>{if(o(e)||!(e instanceof Object))return"primitive";const t=e.constructor&&e.constructor.name&&e.constructor.name.toLowerCase();if("string"==typeof t&&t.length&&s[t])return t;let n;for(const t in s)if(n=s[t].type,!n||e instanceof n)return t;return"unknown"};Object.assign(s,{array:{type:Array,mayDeepCopy:!0,addElement:(e,t,n)=>Array.prototype.push.call(e,n),makeEmpty:e=>{const t=[];return Object.setPrototypeOf(t,Object.getPrototypeOf(e)),t},makeShallow:e=>{const t=[...e];return Object.setPrototypeOf(t,Object.getPrototypeOf(e)),t},iterate:(e,t,n)=>{const r=e.length;for(let t=0;t<r;t++){const r=e[t];n({key:t,value:r,type:a(r)})}}}}),Object.assign(s,{date:{type:Date,makeShallow:e=>new Date(e.getTime())}}),Object.assign(s,{regexp:{type:RegExp,makeShallow:e=>new RegExp(e)}}),Object.assign(s,{function:{type:Function,makeShallow:e=>e}}),Object.assign(s,{error:{type:Error,makeShallow:e=>{const t=new Error(e.message);return t.stack=e.stack,t}}}),["Int8Array","Uint8Array","Uint8ClampedArray","Int16Array","Uint16Array","Int32Array","Uint32Array","Float32Array","Float32Array","Float64Array","BigInt64Array","BigUint64Array"].forEach((e=>(e=>{let t="undefined"!=typeof global&&global[e]||"undefined"!=typeof window&&window[e]||"undefined"!=typeof WorkerGlobalScope&&WorkerGlobalScope[e];void 0!==t&&(s[e.toLowerCase()]={type:t,makeShallow:e=>t.from(e)})})(e))),"undefined"!=typeof ArrayBuffer&&Object.assign(s,{arraybuffer:{type:ArrayBuffer,makeShallow:e=>e.slice(0)}}),"undefined"!=typeof Map&&Object.assign(s,{map:{type:Map,mayDeepCopy:!0,addElement:(e,t,n)=>e.set(t,n),makeEmpty:()=>new Map,makeShallow:e=>new Map(e),iterate:(e,t,n)=>{e.forEach(((e,t)=>{const r={key:t,value:e,type:a(e)};n(r)}))}}}),"undefined"!=typeof Set&&Object.assign(s,{set:{type:Set,mayDeepCopy:!0,addElement:(e,t,n)=>e.add(n),makeEmpty:()=>new Set,makeShallow:e=>new Set(e),iterate:(e,t,n)=>{e.forEach((e=>{const t={key:null,value:e,type:a(e)};n(t)}))}}}),"undefined"!=typeof WeakSet&&Object.assign(s,{weakset:{type:WeakSet,makeShallow:e=>e}}),"undefined"!=typeof WeakMap&&Object.assign(s,{weakmap:{type:WeakMap,makeShallow:e=>e}}),void 0!==r&&Object.assign(s,{buffer:{type:r,makeShallow:e=>r.from(e)}}),Object.assign(s,{object:{type:Object,mayDeepCopy:!0,addElement:(e,t,n,r)=>{r?Object.defineProperty(e,t,r):e[t]=n},makeEmpty:e=>{const t={};return Object.setPrototypeOf(t,Object.getPrototypeOf(e)),t},makeShallow:e=>{const t=Object.assign({},e);return Object.setPrototypeOf(t,Object.getPrototypeOf(e)),t},iterate:(e,t,n)=>{const r=t?Object.getOwnPropertyNames(e):Object.keys(e),s=r.length;for(let o=0;o<s;o++){const s=r[o],i=e[s],c={key:s,value:i,type:a(i)};t&&!e.propertyIsEnumerable(s)&&(c.descriptor=Object.getOwnPropertyDescriptor(e,s)),n(c)}}}}),Object.assign(s,{unknown:{makeShallow:e=>e},primitive:{makeShallow:e=>e}}),e.exports=[o,a,function(e){return s[e]}]},9748:(e,t,n)=>{"use strict";const[r,s,o]=n(2673),a={goDeep:!0,includeNonEnumerable:!1,detectCircular:!0,maxDepth:20};class i{constructor(){this._seenMap=new WeakMap}setAsCopied(e,t){e instanceof Object&&this._seenMap.set(e,t)}wasCopied(e){return e instanceof Object&&this._seenMap.has(e)}getCopy(e){return this._seenMap.get(e)}}const c=(e,t,n)=>{const{destObject:r,srcType:s,watcher:a,options:i}=t,u=i.detectCircular;!function(e,t){if(e>=t)throw`Error max depth of ${t} levels exceeded, possible circular reference`}(++n,i.maxDepth);const d=o(s);if(!d.mayDeepCopy)return;const p=d.addElement;d.iterate(e,i.includeNonEnumerable,(e=>{const t=e.value,s=e.type,d=o(s);let l,f=!1;u&&a.wasCopied(t)?(l=a.getCopy(t),f=!0):l=function(e,t,n){const{options:r,watcher:s}=n;let o;return t.mayDeepCopy?(o=t.makeEmpty(e),r.detectCircular&&s.setAsCopied(e,o)):o=t.makeShallow(e),o}(t,d,{options:i,watcher:a}),p(r,e.key,l,e.descriptor),d.mayDeepCopy&&!f&&c(t,{destObject:l,srcType:s,watcher:a,options:i},n)}))};e.exports=function(e,t=a){if(function(e){Object.keys(a).forEach((t=>{void 0===e[t]&&(e[t]=a[t])}))}(t),r(e))return e;const n=s(e),u=o(n);if(!t.goDeep||!u.mayDeepCopy)return u.makeShallow(e);const d=t.detectCircular?new i:null;let p=u.makeEmpty(e);return t.detectCircular&&d.setAsCopied(e,p),c(e,{destObject:p,srcType:n,watcher:d,options:t},0),p}},4063:e=>{"use strict";e.exports=function e(t,n){if(t===n)return!0;if(t&&n&&"object"==typeof t&&"object"==typeof n){if(t.constructor!==n.constructor)return!1;var r,s,o;if(Array.isArray(t)){if((r=t.length)!=n.length)return!1;for(s=r;0!=s--;)if(!e(t[s],n[s]))return!1;return!0}if(t.constructor===RegExp)return t.source===n.source&&t.flags===n.flags;if(t.valueOf!==Object.prototype.valueOf)return t.valueOf()===n.valueOf();if(t.toString!==Object.prototype.toString)return t.toString()===n.toString();if((r=(o=Object.keys(t)).length)!==Object.keys(n).length)return!1;for(s=r;0!=s--;)if(!Object.prototype.hasOwnProperty.call(n,o[s]))return!1;for(s=r;0!=s--;){var a=o[s];if(!e(t[a],n[a]))return!1}return!0}return t!=t&&n!=n}},6705:(e,t,n)=>{var r,s,o,a,i,c=n(5108),u=n(7808),d=n(3528),p=n(9748);function l(e){return e&&e.__esModule?e.default:e}r=JSON.parse('[{"id":0,"type":"Inputs","inputs":{"usfm":"text","selectors":"json"}},{"id":2,"title":"USFM to PERF","name":"usfm2perf","type":"Transform","inputs":[{"name":"usfm","type":"text","source":"Input usfm"},{"name":"selectors","type":"json","source":"Input selectors"}],"outputs":[{"name":"perf","type":"json"}],"description":"USFM=>PERF: Conversion via Proskomma"},{"id":999,"type":"Outputs","outputs":[{"name":"perf","type":"json","source":"Transform 2 perf"}]}]'),s=JSON.parse('[{"id":0,"type":"Inputs","inputs":{"perf":"json","strippedAlignment":"json"}},{"id":1,"title":"Count stripped perf words","name":"verseWords","transformName":"verseWords","type":"Transform","inputs":[{"name":"perf","type":"json","source":"Input perf"}],"outputs":[{"name":"verseWords","type":"json"}],"description":"PERF=>JSON: Counts words occurrences"},{"id":2,"title":"Merge Back Into Stripped (roundtrip)","name":"mergeAlignment","transformName":"mergeAlignment","type":"Transform","inputs":[{"name":"perf","type":"json","source":"Input perf"},{"name":"strippedAlignment","type":"json","source":"Input strippedAlignment"},{"name":"verseWords","type":"json","source":"Transform 1 verseWords"}],"outputs":[{"name":"perf","type":"json"}],"description":"PERF=>PERF adds report to verses"},{"id":3,"title":"Merge Merged PERF Text","name":"mergePerfText","transformName":"mergePerfText","type":"Transform","inputs":[{"name":"perf","type":"json","source":"Transform 2 perf"}],"outputs":[{"name":"perf","type":"json"}],"description":"PERF=>PERF: Merge consecutive text strings"},{"id":999,"type":"Outputs","outputs":[{"name":"perf","type":"json","source":"Transform 3 perf"}]}]'),o=JSON.parse('[{"id":0,"type":"Inputs","inputs":{"perf":"json"}},{"id":4,"title":"Transform 4","name":"verseWords","type":"Transform","transformName":"verseWords","inputs":[{"name":"perf","type":"json","source":"Input perf"}],"outputs":[{"name":"verseWords","type":"json"}],"description":"PERF=>JSON: Counts words occurrences"},{"id":6,"title":"Strip Alignment","name":"stripAlignment","type":"Transform","transformName":"stripAlignment","inputs":[{"name":"perf","type":"json","source":"Input perf"},{"name":"verseWords","type":"json","source":"Transform 4 verseWords"}],"outputs":[{"name":"perf","type":"json"},{"name":"strippedAlignment","type":"json"}],"description":"PERF=>PERF: Strips alignment markup"},{"id":9,"title":"Merge stripped perf","name":"mergePerfText","type":"Transform","transformName":"mergePerfText","inputs":[{"name":"perf","type":"json","source":"Transform 6 perf"}],"outputs":[{"name":"perf","type":"json"}],"description":"PERF=>PERF: Merge consecutive text strings"},{"id":999,"type":"Outputs","outputs":[{"name":"perf","type":"json","source":"Transform 9 perf"},{"name":"strippedAlignment","type":"json","source":"Transform 6 strippedAlignment"}]}]'),a=JSON.parse('[{"id":0,"type":"Inputs","inputs":{"perf":"json"}},{"id":1,"title":"Generate report","name":"calculateUsfmChapterPositions","type":"Transform","inputs":[{"name":"perf","type":"json","source":"Input perf"}],"outputs":[{"name":"report","type":"json"}],"description":"Generate report from perf to calculate the position of the chapters"},{"id":2,"title":"PERF to USFM","name":"perf2usfm","type":"Transform","inputs":[{"name":"perf","type":"json","source":"Input perf"},{"name":"report","type":"json","source":"Transform 1 report"}],"outputs":[{"name":"usfm","type":"text"}],"description":"PERF=>USFM: Conversion via Proskomma"},{"id":999,"type":"Outputs","outputs":[{"name":"usfm","type":"text","source":"Transform 2 usfm"}]}]'),i=JSON.parse('[{"id":0,"type":"Inputs","inputs":{"perf":"json"}},{"id":1,"title":"Simplify Input PERF","name":"justTheBible","transformName":"justTheBible","type":"Transform","inputs":[{"name":"perf","type":"json","source":"Input perf"}],"outputs":[{"name":"perf","type":"json"}]},{"id":999,"type":"Outputs","outputs":[{"name":"perf","type":"json","source":"Transform 1 perf"}]}]');var f,h,m={usfm2perfPipeline:l(r),mergeAlignmentPipeline:l(s),stripAlignmentPipeline:l(o),perf2usfmPipeline:l(a),justTheBiblePipeline:l(i)};f={name:"usfm2perf",type:"Transform",description:"USFM=>PERF: Conversion via Proskomma",inputs:[{name:"usfm",type:"text",source:""},{name:"selectors",type:"json",source:""}],outputs:[{name:"perf",type:"json"}],code:function({usfm:e,selectors:t,proskomma:n}){n.importDocuments(t,"usfm",[e]);const r=n.gqlQuerySync("{documents {id docSetId perf} }").data.documents[0],s=r.id,o=r.docSetId;return n.gqlQuerySync(`mutation { deleteDocument(docSetId: "${o}", documentId: "${s}") }`),{perf:JSON.parse(r.perf)}}},h={startDocument:[{description:"identity",test:()=>!0,action:({config:e,context:t,workspace:n,output:r})=>{r.perf={},r.perf.schema=t.document.schema,r.perf.metadata=t.document.metadata,r.perf.sequences={}}}],endDocument:[{description:"identity",test:()=>!0,action:({config:e,context:t,workspace:n,output:r})=>{}}],startSequence:[{description:"identity",test:()=>!0,action:({config:e,context:t,workspace:n,output:r})=>{r.perf.sequences[t.sequences[0].id]={type:t.sequences[0].type,blocks:[]},n.outputSequence=r.perf.sequences[t.sequences[0].id],"main"===t.sequences[0].type&&(r.perf.main_sequence_id=t.sequences[0].id)}}],endSequence:[{description:"identity",test:()=>!0,action:({config:e,context:t,workspace:n,output:r})=>{t.sequences.length>1&&(n.outputSequence=r.perf.sequences[t.sequences[1].id])}}],blockGraft:[{description:"identity",test:()=>!0,action:e=>{const t=e.context.sequences[0].block,n={type:t.type,subtype:t.subType};t.target&&(n.target=t.target,e.context.renderer.renderSequenceId(e,n.target)),t.isNew&&(n.new=t.isNew),e.workspace.outputSequence.blocks.push(n)}}],startParagraph:[{description:"identity",test:()=>!0,action:({config:e,context:t,workspace:n,output:r})=>{const s=t.sequences[0].block,o={type:s.type,subtype:s.subType,content:[]};n.outputSequence.blocks.push(o),n.currentContent=o.content,n.outputBlock=n.outputSequence.blocks[n.outputSequence.blocks.length-1],n.outputContentStack=[n.outputBlock.content]}}],endParagraph:[{description:"identity",test:()=>!0,action:({config:e,context:t,workspace:n,output:r})=>{}}],metaContent:[{description:"identity",test:()=>!0,action:e=>{const{config:t,context:n,workspace:r,output:s}=e,o=n.sequences[0].element;r.currentContent=o.metaContent;const a=r.outputContentStack[1][r.outputContentStack[1].length-1];a.meta_content=[],r.outputContentStack.unshift(a.meta_content),n.renderer.renderContent(r.currentContent,e),r.outputContentStack.shift()}}],mark:[{description:"identity",test:()=>!0,action:({config:e,context:t,workspace:n,output:r})=>{const s=t.sequences[0].element,o={type:s.type,subtype:s.subType};s.atts&&(o.atts=s.atts),n.outputContentStack[0].push(o)}}],inlineGraft:[{description:"identity",test:()=>!0,action:e=>{const t=e.context.sequences[0].element,n={type:t.type,subtype:t.subType};if(t.target){n.target=t.target;const r=e.workspace.outputContentStack[0];e.context.renderer.renderSequenceId(e,t.target),e.workspace.outputContentStack[0]=r}t.isNew&&(n.new=t.isNew),e.workspace.outputContentStack[0].push(n)}}],startWrapper:[{description:"identity",test:()=>!0,action:({config:e,context:t,workspace:n,output:r})=>{const s=t.sequences[0].element,o={type:s.type,subtype:s.subType,content:[]};"atts"in s&&(o.atts=s.atts),n.outputContentStack[0].push(o),n.outputContentStack.unshift(o.content)}}],endWrapper:[{description:"identity",test:()=>!0,action:({config:e,context:t,workspace:n,output:r})=>{n.outputContentStack.shift()}}],startMilestone:[{description:"identity",test:()=>!0,action:({config:e,context:t,workspace:n,output:r})=>{const s=t.sequences[0].element,o={type:s.type,subtype:s.subType};s.atts&&(o.atts=s.atts),n.outputContentStack[0].push(o)}}],endMilestone:[{description:"identity",test:()=>!0,action:({config:e,context:t,workspace:n,output:r})=>{const s=t.sequences[0].element,o={type:s.type,subtype:s.subType};n.outputContentStack[0].push(o)}}],text:[{description:"identity",test:()=>!0,action:({config:e,context:t,workspace:n,output:r})=>{const s=t.sequences[0].element;n.outputContentStack[0].push(s.text)}}]};const y=e=>({type:e.sequences[0].block.type,subType:e.sequences[0].block.subType,pos:e.sequences[0].block.blockN,perfChapter:null}),g={startDocument:[{description:"Set up storage",test:()=>!0,action:({workspace:e,output:t})=>{e.blockRecords=[],t.report={}}}],startParagraph:[{description:"Set up block record",test:()=>!0,action:({context:e,workspace:t,output:n})=>{t.blockRecords.push(y(e))}}],blockGraft:[{description:"Set up block record",test:()=>!0,action:({context:e,workspace:t,output:n})=>{t.blockRecords.push(y(e))}}],mark:[{description:"Add chapter number to block record",test:({context:e})=>"chapter"===e.sequences[0].element.subType,action:({config:e,context:t,workspace:n,output:r})=>{n.blockRecords[n.blockRecords.length-1].perfChapter=t.sequences[0].element.atts.number}}],endDocument:[{description:"Populate report",test:()=>!0,action:({workspace:e,output:t})=>{for(const[n,r]of Object.entries(e.blockRecords)){if(!r.perfChapter)continue;let s=n,o=!1;for(;s>0&&!o;)"paragraph"===e.blockRecords[s-1].type||"title"===e.blockRecords[s-1].subType?o=!0:s--;t.report[s.toString()]=r.perfChapter}}}]};var v={name:"calculateUsfmChapterPositions",type:"Transform",description:"PERF=>JSON: Generates positions for inserting chapter numbers into USFM",inputs:[{name:"perf",type:"json",source:""}],outputs:[{name:"report",type:"json"}],code:function({perf:e}){const t={};return new(0,u.PerfRenderFromJson)({srcJson:e,actions:g}).renderDocument({docId:"",config:{maxLength:60},output:t}),{report:t.report}}};const S=e=>["toc","toca","mt","imt","s","ms","mte","sd"].includes(e)?e+"1":e,b={startDocument:[{description:"Set up environment",test:()=>!0,action:({context:e,workspace:t})=>{t.usfmBits=[""],t.nestedWrapper=0;for(let[n,r]of Object.entries(e.document.metadata.document).filter((e=>!["tags","properties","bookCode","cl"].includes(e[0]))))t.usfmBits.push(`\\${S(n)} ${r}\n`)}}],blockGraft:[{description:"Follow block grafts",test:({context:e})=>["title","heading","introduction"].includes(e.sequences[0].block.subType),action:e=>{let t=e.context.sequences[0],n=e.config.report[t.block.blockN.toString()];const r=t.block.target;n&&"main"===t.type&&e.workspace.usfmBits.push(`\n\\c ${n}\n`),r&&e.context.renderer.renderSequenceId(e,r)}}],inlineGraft:[{description:"Follow inline grafts",test:()=>!0,action:e=>{const t=e.context.sequences[0].element.target;t&&e.context.renderer.renderSequenceId(e,t)}}],startParagraph:[{description:"Output footnote paragraph tag (footnote)",test:({context:e})=>"usfm:f"===e.sequences[0].block.subType&&"footnote"===e.sequences[0].type||"usfm:x"===e.sequences[0].block.subType&&"xref"===e.sequences[0].type,action:({context:e,workspace:t,config:n})=>{t.nestedWrapper=0;let r=e.sequences[0];t.usfmBits.push(`\\${S(r.block.subType.split(":")[1])} `)}},{description:"Output footnote note_caller tag (footnote)",test:({context:e})=>"usfm:f"===e.sequences[0].block.subType||"usfm:x"===e.sequences[0].block.subType,action:({context:e,workspace:t,config:n})=>{t.nestedWrapper=0}},{description:"Output paragraph tag (main)",test:()=>!0,action:({context:e,workspace:t,config:n})=>{t.nestedWrapper=0;let r=e.sequences[0],s=n.report[r.block.blockN.toString()];s&&"main"===r.type&&t.usfmBits.push(`\n\\c ${s}\n`),t.usfmBits.push(`\n\\${S(r.block.subType.split(":")[1])}\n`)}}],endParagraph:[{description:"Output footnote paragraph tag (footnote)",test:({context:e})=>"usfm:f"===e.sequences[0].block.subType&&"footnote"===e.sequences[0].type||"usfm:x"===e.sequences[0].block.subType&&"xref"===e.sequences[0].type,action:({context:e,workspace:t,config:n})=>{let r=e.sequences[0];t.usfmBits.push(`\\${S(r.block.subType.split(":")[1])}*`)}},{description:"Output footnote note_caller tag (footnote)",test:({context:e})=>"usfm:f"===e.sequences[0].block.subType||"usfm:x"===e.sequences[0].block.subType,action:({context:e,workspace:t,config:n})=>{}},{description:"Output nl",test:()=>!0,action:({workspace:e})=>{e.usfmBits.push("\n")}}],startMilestone:[{description:"Output start milestone",test:()=>!0,action:({context:e,workspace:t})=>{let n=e.sequences[0].element,r=((e,t={})=>{null==t&&(t={});let n=`\\${e}-s |`;for(let[e,r]of Object.entries(t))n="x-morph"===e&&"string"!=typeof r?n+S(e)+'="'+r.join(",")+'" ':n+S(e)+'="'+r+'" ';return n+"\\*"})(S(n.subType.split(":")[1]),n.atts);t.usfmBits.push(r)}}],endMilestone:[{description:"Output end milestone",test:()=>!0,action:({context:e,workspace:t})=>{t.usfmBits.push(`\\${S(e.sequences[0].element.subType.split(":")[1])}-e\\*`)}}],text:[{description:"Output text",test:()=>!0,action:({context:e,workspace:t})=>{const n=e.sequences[0].element.text;t.usfmBits.push(n)}}],mark:[{description:"Output chapter or verses",test:()=>!0,action:({context:e,workspace:t})=>{const n=e.sequences[0].element;"verses"===n.subType&&t.usfmBits.push(`\n\\v ${n.atts.number}\n`)}}],endSequence:[{description:"Output \\cl",test:({context:e})=>e.document.metadata.document.cl&&"title"===e.sequences[0].type,action:({context:e,workspace:t})=>{t.usfmBits.push(`\n\\cl ${e.document.metadata.document.cl}\n`)}}],startWrapper:[{description:"Output start tag",test:()=>!0,action:({workspace:e,context:t})=>{let n=t.sequences[0];e.nestedWrapper>0?e.usfmBits.push(`\\+${S(n.element.subType.split(":")[1])} `):e.usfmBits.push(`\\${S(n.element.subType.split(":")[1])} `),e.nestedWrapper+=1}}],endWrapper:[{description:"Output end tag",test:({context:e})=>!["fr","fq","fqa","fk","fl","fw","fp","ft","xo","xk","xq","xt","xta"].includes(e.sequences[0].element.subType.split(":")[1]),action:({workspace:e,context:t})=>{e.nestedWrapper-=1;let n=t.sequences[0],r=n.element.subType.split(":")[1],s=e.nestedWrapper>0;if("w"===r){let t=((e,t={},n=!1)=>{null==t&&(t={});let r="|";for(let[e,n]of Object.entries(t))r=r+S(e)+'="'+n+'" ';return r+="\\",n&&(r+="+"),r+e+"*"})(S(r),n.element.atts,s);e.usfmBits.push(t)}else s?e.usfmBits.push(`\\+${S(n.element.subType.split(":")[1])}*`):e.usfmBits.push(`\\${S(n.element.subType.split(":")[1])}*`)}},{description:"Do NOT output end tag",test:()=>!0,action:({workspace:e})=>{e.nestedWrapper-=1}}],endDocument:[{description:"Build output",test:()=>!0,action:({workspace:e,output:t})=>{t.usfm=e.usfmBits.join("").replace(/(\s*)\n(\s*)/gm,"\n")}}]};var E={name:"perf2usfm",type:"Transform",description:"PERF=>USFM",inputs:[{name:"perf",type:"json",source:""},{name:"report",type:"json",source:""}],outputs:[{name:"usfm",type:"text"}],code:function({perf:e,report:t}){const n={};return new(0,u.PerfRenderFromJson)({srcJson:e,actions:b}).renderDocument({docId:"",config:{report:t},output:n}),{usfm:n.usfm}}};const w={startDocument:[{description:"Set up storage",test:()=>!0,action:({workspace:e,output:t})=>{e.verseContent=[],e.chapter=null,e.verses=null,t.cv={}}}],mark:[{description:"Update CV state",test:()=>!0,action:({context:e,workspace:t,output:n})=>{const{element:r}=e.sequences[0];"chapter"===r.subType?(t.chapter=r.atts.number,t.verses=0,n.cv[t.chapter]={},n.cv[t.chapter][t.verses]={}):"verses"===r.subType&&(t.verses=r.atts.number,n.cv[t.chapter][t.verses]={})}}],text:[{description:"Log occurrences",test:()=>!0,action:({context:e,workspace:t,output:n})=>{const{chapter:r,verses:s}=t,{text:o}=e.sequences[0].element,a=l(d)("([\\p{Letter}\\p{Number}\\p{Mark}\\u2060]{1,127})"),i=l(d).match(o,a,"all");for(const e of i)n.cv[r][s][e]??=0,n.cv[r][s][e]+=1}}]};var A={name:"verseWords",type:"Transform",description:"PERF=>JSON: Counts words occurrences",inputs:[{name:"perf",type:"json",source:""}],outputs:[{name:"verseWords",type:"json"}],code:function({perf:e}){const t={};return new(0,u.PerfRenderFromJson)({srcJson:e,actions:w}).renderDocument({docId:"",config:{},output:t}),{verseWords:t.cv}}};const T={startDocument:[{description:"Set up",test:()=>!0,action:({workspace:e,output:t})=>(e.chapter=null,e.verses=null,e.lastWord="",e.waitingMarkup=[],e.currentOccurrences={},e.PendingStartMilestones=[],t.stripped={},!0)}],startMilestone:[{description:"Ignore zaln startMilestone events",test:({context:e})=>"usfm:zaln"===e.sequences[0].element.subType,action:({context:e,workspace:t})=>{const n=e.sequences[0].element;n.subtype=n.subType,delete n.subType,t.waitingMarkup.push(n),t.PendingStartMilestones.push(n)}}],endMilestone:[{description:"Ignore zaln endMilestone events",test:({context:e})=>"usfm:zaln"===e.sequences[0].element.subType,action:({context:e,workspace:t,output:n,config:r})=>{const{chapter:s,verses:o,lastWord:a}=t,{verseWords:i}=r,c=["after",a,t.currentOccurrences[a],i[s][o][a]].join("--"),u={...e.sequences[0].element};u.subtype=u.subType,delete u.subType;const d={chapter:s,verses:o,occurrence:t.currentOccurrences[a],occurrences:i[s][o][a],position:"after",word:a,payload:u,startMilestone:t.PendingStartMilestones.shift()};return n.stripped[t.chapter][t.verses][c]?n.stripped[t.chapter][t.verses][c].push(d):n.stripped[t.chapter][t.verses][c]=[d],!1}}],startWrapper:[{description:"Ignore w startWrapper events",test:({context:e})=>"usfm:w"===e.sequences[0].element.subType,action:({context:e,workspace:t})=>{const n={...e.sequences[0].element};n.subtype=n.subType,delete n.subType,t.waitingMarkup.push(n)}}],endWrapper:[{description:"Ignore w endWrapper events",test:({context:e})=>"usfm:w"===e.sequences[0].element.subType,action:({context:e})=>{}}],text:[{description:"Log occurrences",test:()=>!0,action:({context:e,workspace:t,output:n,config:r})=>{try{const s=e.sequences[0].element.text,o=l(d)("([\\p{Letter}\\p{Number}\\p{Mark}\\u2060]{1,127})"),a=l(d).match(s,o,"all"),{chapter:i,verses:c}=t,{verseWords:u}=r;for(const e of a){for(t.currentOccurrences[e]??=0,t.currentOccurrences[e]++;t.waitingMarkup.length;){const r=t.waitingMarkup.shift(),s=["before",e,t.currentOccurrences[e],u[i][c][e]].join("--"),o={chapter:i,verses:c,occurrence:t.currentOccurrences[e],occurrences:u[i][c][e],position:"before",word:e,payload:{...r,..."usfm:w"===r.subtype&&{content:[e]}}};n.stripped[t.chapter][t.verses][s]?n.stripped[t.chapter][t.verses][s].push(o):n.stripped[t.chapter][t.verses][s]=[o]}t.lastWord=e}}catch(e){throw new Error(e)}return!0}}],mark:[{description:"Update CV state",test:()=>!0,action:({context:e,workspace:t,output:n})=>{try{const r=e.sequences[0].element;"chapter"===r.subType?(t.chapter=r.atts.number,t.verses=0,t.lastWord="",t.currentOccurrences={},n.stripped[t.chapter]={},n.stripped[t.chapter][t.verses]={}):"verses"===r.subType&&(t.verses=r.atts.number,t.lastWord="",t.currentOccurrences={},n.stripped[t.chapter][t.verses]={})}catch(e){throw new Error(e)}return!0}}]};var k={name:"stripAlignment",type:"Transform",description:"PERF=>PERF: Strips alignment markup",inputs:[{name:"perf",type:"json",source:""},{name:"verseWords",type:"json",source:""}],outputs:[{name:"perf",type:"json"},{name:"strippedAlignment",type:"json"}],code:function({perf:e,verseWords:t}){const n={};return new(0,u.PerfRenderFromJson)({srcJson:e,actions:(0,u.mergeActions)([T,D.identityActions])}).renderDocument({docId:"",config:{verseWords:t},output:n}),{perf:n.perf,strippedAlignment:n.stripped}}};const P=e=>{let t=[];for(const n of e)"string"==typeof n?t.length>0&&"string"==typeof t[t.length-1]?t[t.length-1]+=n:t.push(n):(n.content&&(n.content=P(n.content)),n.metaContent&&(n.metaContent=P(n.content)),t.push(n));return t},_=e=>{const t=l(p)(e);for(const e of Object.values(t.sequences))for(const t of e.blocks)t.content&&(t.content=P(t.content)),t.metaContent&&(t.metaContent=P(t.metaContent));return t};var I={name:"mergePerfText",type:"Transform",description:"PERF=>PERF: Merge consecutive text strings",inputs:[{name:"perf",type:"json",source:""}],outputs:[{name:"perf",type:"json"}],code:function({perf:e}){return{perf:_(e)}}};const N=[["printable","wordLike",l(d)("([\\p{Letter}\\p{Number}\\p{Mark}\\u2060]{1,127})")],["printable","lineSpace",l(d)("([\\p{Separator}\t]{1,127})")],["printable","punctuation",l(d)("([\\p{Punctuation}\\p{Math_Symbol}\\p{Currency_Symbol}\\p{Modifier_Symbol}\\p{Other_Symbol}])")],["bad","unknown",l(d)("(.)")]],O=l(d).union(N.map((e=>e[2]))),x={type:"end_milestone",subType:"usfm:zaln"},$={startDocument:[{description:"setup",test:()=>!0,action:({workspace:e})=>(e.chapter=null,e.verses=null,e.currentOccurrences={},!0)}],text:[{description:"add-to-text",test:()=>!0,action:({config:e,context:t,workspace:n,output:r})=>{try{const r=t.sequences[0].element.text,s=l(d).match(r,O,"all"),{chapter:o,verses:a}=n;if(!a)return!0;const{totalOccurrences:i,strippedAlignment:u}=e,p={opened:null},f=({subtype:e,content:t=[],atts:n={}})=>({type:"wrapper",subtype:e,content:t,atts:n});for(const e of s){if(!l(d).match(e,N[0][2],"all").length){n.outputContentStack[0].push(e);continue}n.currentOccurrences[e]??=0,n.currentOccurrences[e]++;const t=t=>[t,e,n.currentOccurrences[e],i[o][a][e]].join("--"),r=u[o][a];let s=!1;const h=r[t("after")],m=r[t("before")];h?.length&&!p.opened&&(h.map((({startMilestone:e})=>n.outputContentStack[0].push(e))),s=!0),m?.forEach((({payload:e})=>{"start_milestone"!==e.type&&n.outputContentStack[0].push(e),"start_milestone"!==e.type||s||(n.outputContentStack[0].push(e),p.opened=!0)})),h?.forEach((({payload:e})=>{p.opened=!1,n.outputContentStack[0].push(e)})),m?.length||(c.log(`pushing unaligned word: ${e}`),p.opened&&(n.outputContentStack[0].push(x),p.opened=!1),n.outputContentStack[0].push(f({subtype:"usfm:w",content:[e]})))}return!1}catch(e){throw new Error(e)}}}],mark:[{description:"mark-chapters",test:({context:e})=>"chapter"===e.sequences[0].element.subType,action:({config:e,context:t,workspace:n,output:r})=>{const s=t.sequences[0].element;return n.chapter=s.atts.number,n.verses=0,!0}},{description:"mark-verses",test:({context:e})=>"verses"===e.sequences[0].element.subType,action:({config:e,context:t,workspace:n,output:r})=>{const s=t.sequences[0].element;return n.verses=s.atts.number,n.currentOccurrences={},!0}}]};var C={name:"mergeAlignment",type:"Transform",description:"PERF=>PERF adds report to verses",inputs:[{name:"perf",type:"json",source:""},{name:"strippedAlignment",type:"json",source:""},{name:"verseWords",type:"json",source:""}],outputs:[{name:"perf",type:"json"}],code:function({perf:e,verseWords:t,strippedAlignment:n}){const r={};return new(0,u.PerfRenderFromJson)({srcJson:e,actions:(0,u.mergeActions)([$,u.transforms.perf2perf.identityActions])}).renderDocument({docId:"",config:{totalOccurrences:t,strippedAlignment:n},output:r}),{perf:r.perf}}};const q={startMilestone:[{description:"Ignore startMilestone events",test:()=>!0,action:()=>{}}],endMilestone:[{description:"Ignore endMilestone events",test:()=>!0,action:()=>{}}],startWrapper:[{description:"Ignore startWrapper events",test:()=>!0,action:()=>{}}],endWrapper:[{description:"Ignore endWrapper events",test:()=>!0,action:()=>{}}],blockGraft:[{description:"Ignore blockGraft events, except for title (\\mt)",test:e=>"title"!==e.context.sequences[0].block.subType,action:e=>{}}],inlineGraft:[{description:"Ignore inlineGraft events",test:()=>!0,action:()=>{}}],mark:[{description:"Ignore mark events, except for chapter and verses",test:({context:e})=>!["chapter","verses"].includes(e.sequences[0].element.subType),action:()=>{}}]};var j={name:"justTheBible",type:"Transform",description:"PERF=>PERF: Strips most markup",documentation:"This transform removes milestones, wrappers and most marks. It has been used in several pipelines. It may also be stripping metaContent.",inputs:[{name:"perf",type:"json",source:""}],outputs:[{name:"perf",type:"json"}],code:function({perf:e}){const t={};return new(0,u.PerfRenderFromJson)({srcJson:e,actions:(0,u.mergeActions)([q,l(h)])}).renderDocument({docId:"",config:{},output:t}),{perf:t.perf}}},D={usfm2perf:l(f),identityActions:l(h),calculateUsfmChapterPositions:v,perf2usfm:E,verseWords:A,stripAlignment:k,mergePerfText:I,mergeAlignment:C,justTheBible:j},R={wordSearchPipeline:l(JSON.parse('[{"id":0,"type":"Inputs","inputs":{"perf":"json","searchString":"text","ignoreCase":"text","asRegex":"text","logic":"text","asPartial":"text"}},{"id":1,"title":"Simplify Input PERF","name":"justTheBible","transformName":"justTheBible","type":"Transform","inputs":[{"name":"perf","type":"json","source":"Input perf"}],"outputs":[{"name":"perf","type":"json"}]},{"id":2,"title":"Merge Text in Input PERF","name":"mergePerfText","transformName":"mergePerfText","type":"Transform","inputs":[{"name":"perf","type":"json","source":"Transform 1 perf"}],"outputs":[{"name":"perf","type":"json"}]},{"id":3,"title":"Search Term","type":"Source","sourceLocation":"local","localValue":"Jesus","outputType":"text"},{"id":4,"title":"Ignore Case","type":"Source","sourceLocation":"local","localValue":"1","outputType":"text"},{"id":5,"title":"Regex","type":"Source","sourceLocation":"local","localValue":"0","outputType":"text"},{"id":5,"title":"Logic","type":"Source","sourceLocation":"local","localValue":"O","outputType":"text"},{"id":6,"title":"Partial","type":"Source","sourceLocation":"local","localValue":"0","outputType":"text"},{"id":7,"title":"Do Word Search","name":"wordSearch","transformName":"wordSearch","type":"Transform","inputs":[{"name":"perf","type":"json","source":"Transform 2 perf"},{"name":"searchString","type":"text","source":"Input searchString"},{"name":"ignoreCase","type":"text","source":"Input ignoreCase"},{"name":"regex","type":"text","source":"Input asRegex"},{"name":"logic","type":"text","source":"Input logic"},{"name":"partial","type":"text","source":"Input asPartial"}],"outputs":[{"name":"matches","type":"json"}]},{"id":999,"type":"Outputs","outputs":[{"name":"matches","type":"json","source":"Transform 7 matches"}]}]'))};const M=l(d)("([\\p{Letter}\\p{Number}\\p{Mark}\\u2060]{1,127})"),B={startDocument:[{description:"Set up state variables and output",test:()=>!0,action:({config:e,context:t,workspace:n,output:r})=>{n.chapter=null,n.verses=null,n.matches=new Set([]),n.chunks=[],e.regex&&(n.regex=new RegExp(e.toSearch,e.regexFlags))}}],mark:[{description:"Update CV state",test:()=>!0,action:({config:e,context:t,workspace:n,output:r})=>{const s=t.sequences[0].element;"chapter"===s.subType?(L(n,e),n.chapter=s.atts.number,n.chunks=[]):"verses"===s.subType&&(L(n,e),n.verses=s.atts.number,n.chunks=[])}}],text:[{description:"Add matching verses to set",test:({context:e,workspace:t})=>t.chapter&&t.verses,action:({config:e,context:t,workspace:n,output:r})=>{const s=t.sequences[0].element.text;n.chunks.push(s)}}],endDocument:[{description:"Sort matches",test:()=>!0,action:({config:e,context:t,workspace:n,output:r})=>{r.bookCode=t?.document?.metadata?.document?.bookCode||"",r.searchTerms=Array.isArray(e.toSearch)?e.toSearch.join(" "):e.toSearch,r.options=[],e.ignoreCase&&r.options.push("ignoreCase"),e.andLogic&&r.options.push("andLogic"),e.orLogic&&r.options.push("orLogic"),e.partialMatch&&r.options.push("partialMatch"),e.regex&&r.options.push("regex"),L(n,e),r.matches=Array.from(n.matches).sort(((e,t)=>1e3*e.chapter+e.verses-(1e3*t.chapter+t.verses)))}}]};function G(e,t,n,r){if(e.regex)return r.regex.test(t);const s=Array.isArray(n);e.ignoreCase&&(t=t.toLowerCase(),n=s?n.map((e=>e.toLowerCase())):n.toLowerCase()),s||(n=[n]),e.partialMatch||(t=l(d).split(t,M));let o=!0,a=!1;for(const e of n)t.includes(e)?a=!0:o=!1;return e.andLogic?o:a}const L=function(e,t){e.chunks.length&&G(t,e.chunks.join(""),t.toSearch,e)&&function(e,t){const n={chapter:e.chapter,verses:e.verses,content:[]};let r=t.toSearch;const s={...t,andLogic:!1};let o=e.chunks.join("");const a=l(d).split(o,M);for(const t of a)t&&(G(s,t,r,e)?n.content.push({type:"wrapper",subtype:"x-search-match",content:[t]}):n.content.push(t));e.matches.add(n)}(e,t)},V=e=>{let t=[];for(const n of e)"string"==typeof n?t.length>0&&"string"==typeof t[t.length-1]?t[t.length-1]+=n:t.push(n):(n.content&&(n.content=V(n.content)),n.metaContent&&(n.metaContent=V(n.content)),t.push(n));return t},F=e=>{const t=l(p)(e);for(const e of Object.values(t.sequences))for(const t of e.blocks)t.content&&(t.content=V(t.content)),t.metaContent&&(t.metaContent=V(t.metaContent));return t};var U={wordSearch:{name:"wordSearch",type:"Transform",description:"PERF=>JSON: Searches for a word",inputs:[{name:"perf",type:"json",source:""},{name:"searchString",type:"text",source:""},{name:"ignoreCase",type:"text",source:""},{name:"regex",type:"text",source:""},{name:"logic",type:"text",source:""},{name:"partial",type:"text",source:""}],outputs:[{name:"matches",type:"json"}],code:function({perf:e,searchString:t,ignoreCase:n="1",logic:r="",regex:s="0",partialMatch:o="0"}){const a=new(0,u.PerfRenderFromJson)({srcJson:e,actions:B}),i={},c="1"===n.trim(),d="A"===(r=r.trim().substring(0,1).toUpperCase()),p="O"===r,l=o&&"1"===o.trim();let f="1"===s.trim(),h=t.trim();if(!f&&(h.includes("?")||h.includes("*"))){let e=h.replaceAll("?","\\S{1}");e=e.replaceAll("*","\\S*"),l||(e="\\b"+e+"\\b"),h="/"+e+"/"}let m="";if(h.startsWith("/")&&h.includes("/",2)){f=!0;const e=h.split("/");h=e[1],m=e[2],c&&!m.includes("i")&&(m+="i")}else(d||p)&&h&&(h=h.split(" "));return a.renderDocument({docId:"",config:{toSearch:h,ignoreCase:c,andLogic:d,orLogic:p,partialMatch:l,regex:f,regexFlags:m},output:i}),{matches:i}}},mergePerfText:{name:"mergePerfText",type:"Transform",description:"PERF=>PERF: Merge consecutive text strings",inputs:[{name:"perf",type:"json",source:""}],outputs:[{name:"perf",type:"json"}],code:function({perf:e}){return{perf:F(e)}}}};e.exports={PipelineHandler:class{constructor({pipelines:e=null,transforms:t=null,proskomma:n=null,verbose:r=!1}){if(null!==n){this.proskomma=n;const e="{ id }",t=n.gqlQuerySync(e)||{};if(!t||!t.data.id)throw new Error("Provided Proskomma instance does not have any ID")}if(this.pipelines=m,this.transforms=D,null!=e)for(let t of Object.keys(e))this.pipelines[t]=e[t];if(null!=t)for(let e of Object.keys(t))this.transforms[e]=t[e];this.verbose=r}getProskomma(){return this.proskomma}setProskomma(e){this.proskomma=e}listPipelinesNames(){c.log(Object.keys(this.pipelines).join("\n"))}getPipeline(e,t){if(!this.pipelines[e])throw new Error(`Unknown pipeline name '${e}'`);const n=this.pipelines[e],r=n[0].inputs;if(Object.keys(r).length!==Object.keys(t).length)throw new Error(`${Object.keys(r).length} input(s) expected by ${e} but ${Object.keys(t).length} provided (${Object.keys(t).join(", ")})`);for(const[n,s]of Object.entries(r)){if(!t[n])throw new Error(`Input ${n} not provided as input to ${e}`);if("string"==typeof t[n]!=("text"===s))throw new Error(`Input ${n} must be ${s} but ${"string"==typeof t[n]?"text":"json"} was provided`)}return n}async runPipeline(e,t){const n=this.getPipeline(e,t);return await this.evaluateSteps({specSteps:n,inputValues:t})}evaluateSteps({specSteps:e,inputValues:t}){if(this.verbose&&c.log("** Evaluate **"),!e.filter((e=>"Inputs"===e.type))[0])throw new Error("No Inputs step found in report steps");const n=e.filter((e=>"Outputs"===e.type))[0];if(!n)throw new Error("No Outputs step found in report steps");const r=e.filter((e=>"Transform"===e.type));if(0===r.length)throw new Error("No Transform steps found in report steps");const s={},o={};for(const e of Object.values(r)){s[e.id]={};for(const t of e.inputs)s[e.id][t.name]=null;o[e.id]={};for(const t of e.outputs)o[e.id][t]=null}for(const[e,n]of Object.entries(t))for(const t of r)for(const r of t.inputs)r.source===`Input ${e}`&&(this.verbose&&c.log(`Copying Input ${e} to Transform ${t.id} ${r.name} input`),s[t.id][r.name]=n);let a=!0;for(;a;){a=!1;for(const e of r)if(0===Object.values(s[e.id]).filter((e=>!e)).length&&Object.values(o[e.id]).filter((e=>!e)).length>0){this.verbose&&c.log(`Evaluating Transform ${e.id}`);try{o[e.id]=this.transforms[e.name].code({...s[e.id],proskomma:this.getProskomma()})}catch(t){const n=`Error evaluating Transform ${e.id} (name=${e.name}, type=${typeof e.code}): ${t}`;throw new Error(n)}for(const t of r)for(const n of t.inputs)for(const r of Object.keys(o[e.id]))n.source===`Transform ${e.id} ${r}`&&(this.verbose&&c.log(`Copying Transform ${e.id} ${r} output to Transform ${t.id} ${n.name} input`),s[t.id][n.name]=o[e.id][r]);a=!0}}const i={};for(const e of n.outputs){const t=e.source.split(" ")[1];this.verbose&&c.log(`Copying Transform ${t} ${e.name} to Output ${e.name}`),i[e.name]=o[t][e.name]}return this.verbose&&c.log("****"),i}},pipelines:m,transforms:D,testPipelines:R,testTransforms:U}},8837:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.MissingRefError=t.ValidationError=t.CodeGen=t.Name=t.nil=t.stringify=t.str=t._=t.KeywordCxt=void 0;const r=n(5606),s=n(3460),o=n(9775),a=n(8753),i=["/properties"],c="http://json-schema.org/draft-07/schema";class u extends r.default{_addVocabularies(){super._addVocabularies(),s.default.forEach((e=>this.addVocabulary(e))),this.opts.discriminator&&this.addKeyword(o.default)}_addDefaultMetaSchema(){if(super._addDefaultMetaSchema(),!this.opts.meta)return;const e=this.opts.$data?this.$dataMetaSchema(a,i):a;this.addMetaSchema(e,c,!1),this.refs["http://json-schema.org/schema"]=c}defaultMeta(){return this.opts.defaultMeta=super.defaultMeta()||(this.getSchema(c)?c:void 0)}}e.exports=t=u,Object.defineProperty(t,"__esModule",{value:!0}),t.default=u;var d=n(4015);Object.defineProperty(t,"KeywordCxt",{enumerable:!0,get:function(){return d.KeywordCxt}});var p=n(9525);Object.defineProperty(t,"_",{enumerable:!0,get:function(){return p._}}),Object.defineProperty(t,"str",{enumerable:!0,get:function(){return p.str}}),Object.defineProperty(t,"stringify",{enumerable:!0,get:function(){return p.stringify}}),Object.defineProperty(t,"nil",{enumerable:!0,get:function(){return p.nil}}),Object.defineProperty(t,"Name",{enumerable:!0,get:function(){return p.Name}}),Object.defineProperty(t,"CodeGen",{enumerable:!0,get:function(){return p.CodeGen}});var l=n(324);Object.defineProperty(t,"ValidationError",{enumerable:!0,get:function(){return l.default}});var f=n(5421);Object.defineProperty(t,"MissingRefError",{enumerable:!0,get:function(){return f.default}})},8968:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.regexpCode=t.getEsmExportName=t.getProperty=t.safeStringify=t.stringify=t.strConcat=t.addCodeArg=t.str=t._=t.nil=t._Code=t.Name=t.IDENTIFIER=t._CodeOrName=void 0;class n{}t._CodeOrName=n,t.IDENTIFIER=/^[a-z$_][a-z$_0-9]*$/i;class r extends n{constructor(e){if(super(),!t.IDENTIFIER.test(e))throw new Error("CodeGen: name must be a valid identifier");this.str=e}toString(){return this.str}emptyStr(){return!1}get names(){return{[this.str]:1}}}t.Name=r;class s extends n{constructor(e){super(),this._items="string"==typeof e?[e]:e}toString(){return this.str}emptyStr(){if(this._items.length>1)return!1;const e=this._items[0];return""===e||'""'===e}get str(){var e;return null!==(e=this._str)&&void 0!==e?e:this._str=this._items.reduce(((e,t)=>`${e}${t}`),"")}get names(){var e;return null!==(e=this._names)&&void 0!==e?e:this._names=this._items.reduce(((e,t)=>(t instanceof r&&(e[t.str]=(e[t.str]||0)+1),e)),{})}}function o(e,...t){const n=[e[0]];let r=0;for(;r<t.length;)c(n,t[r]),n.push(e[++r]);return new s(n)}t._Code=s,t.nil=new s(""),t._=o;const a=new s("+");function i(e,...t){const n=[d(e[0])];let r=0;for(;r<t.length;)n.push(a),c(n,t[r]),n.push(a,d(e[++r]));return function(e){let t=1;for(;t<e.length-1;){if(e[t]===a){const n=u(e[t-1],e[t+1]);if(void 0!==n){e.splice(t-1,3,n);continue}e[t++]="+"}t++}}(n),new s(n)}function c(e,t){var n;t instanceof s?e.push(...t._items):t instanceof r?e.push(t):e.push("number"==typeof(n=t)||"boolean"==typeof n||null===n?n:d(Array.isArray(n)?n.join(","):n))}function u(e,t){if('""'===t)return e;if('""'===e)return t;if("string"==typeof e){if(t instanceof r||'"'!==e[e.length-1])return;return"string"!=typeof t?`${e.slice(0,-1)}${t}"`:'"'===t[0]?e.slice(0,-1)+t.slice(1):void 0}return"string"!=typeof t||'"'!==t[0]||e instanceof r?void 0:`"${e}${t.slice(1)}`}function d(e){return JS