@bitblit/ratchet-common 4.0.162-alpha → 4.0.164-alpha

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.
package/lib/index.mjs CHANGED
@@ -1,2 +1,2 @@
1
- import t from"util";import e from"jsonwebtoken";import{DateTime as r}from"luxon";import{set as n}from"lodash-es";import{$enum as s}from"ts-enum-util";import o from"url";import{Writable as i,Readable as a}from"stream";import l from"cross-fetch";var c,u,f,g,h;!function(t){t.error="error",t.warn="warn",t.info="info",t.verbose="verbose",t.debug="debug",t.silly="silly"}(c||(c={}));class d{_lastLogMessage={messageSource:"No message yet",timestamp:(new Date).getTime(),lvl:c.info};_buffer=[];_bufferIdx=0;_lastSnapshotIdx=0;_bufferSize;constructor(t){if(!t)throw new Error("Cannot create ring buffer of size 0");this._bufferSize=t}get currentIndex(){return this._bufferIdx}get lastSnapshotIdx(){return this._lastSnapshotIdx}set bufferSize(t){if(!t)throw new Error("Cannot create ring buffer of size 0");this._bufferSize=t,this.clearRingBuffer()}getMessages(t=null,e=!1,r=!1){let n=null;if(this._bufferIdx<this._bufferSize){const e=null==t?0:t;n=this._buffer.slice(e,this._bufferIdx)}else{n=[];const e=this._bufferIdx-this._bufferSize;for(let r=t?Math.max(t,e):e;r<this._bufferIdx;r++)n.push(this._buffer[r%this._bufferSize])}return e&&this.clearRingBuffer(),r&&(n=n.reverse()),n}takeSnapshot(){const t=Math.max(0,this._bufferIdx-this._bufferSize),e={messages:this.getMessages(this._lastSnapshotIdx),logMessagesTruncated:Math.max(0,t-this._lastSnapshotIdx)};return this._lastSnapshotIdx=this._bufferIdx,e}getLastLogMessage(){return Object.assign({},this._lastLogMessage)}clearRingBuffer(){this._buffer=[],this._bufferIdx=0,this._lastSnapshotIdx=0}addToRingBuffer(t){this._lastLogMessage=t,this._buffer[this._bufferIdx%this._bufferSize]=t,this._bufferIdx++}}!function(t){t.Console="Console",t.ConsoleNoDebug="ConsoleNoDebug",t.StdOut="StdOut"}(u||(u={}));class p{static LOG_LEVELS_IN_ORDER=[c.error,c.warn,c.info,c.verbose,c.debug,c.silly];static handlerFunctionMap(t=u.Console){const e=new Map;if(t===u.StdOut){if(!process?.stdout?.write)throw new Error("Cannot use standard out - process.stdout.write not found");const t=(t,e)=>process.stdout.write(t,"utf-8",e);e.set(c.error,t),e.set(c.warn,t),e.set(c.info,t),e.set(c.verbose,t),e.set(c.debug,t),e.set(c.silly,t)}else e.set(c.error,console.error),e.set(c.warn,console.warn),e.set(c.info,console.info),e.set(c.verbose,t===u.ConsoleNoDebug?console.log:console.debug),e.set(c.debug,t===u.ConsoleNoDebug?console.log:console.debug),e.set(c.silly,t===u.ConsoleNoDebug?console.log:console.debug);return e}static defaultHandlerFunction(){return console.info}static levelIsEnabled(t,e){const r=p.LOG_LEVELS_IN_ORDER.indexOf(t),n=p.LOG_LEVELS_IN_ORDER.indexOf(e);return r>-1&&n>-1&&n>=r}}!function(t){t.ClassicSingleLine="ClassicSingleLine",t.StructuredJson="StructuredJson",t.None="None"}(f||(f={}));class m{formatMessage(e,r){let n=null;return e&&(n="",n+=r.options.trace?r.options.trace+" ":"",n+="["+e.lvl+"] ",n+=t.format(e.messageSource,...e.subsVars)),n}}class y{formatMessage(t,e){return null}}class b{formatMessage(e,r){let n=null;if(e){const s=Object.assign({},r.options.globalVars||{},e.params||{});s.msg=t.format(e.messageSource,...e.subsVars),s.utcDateTime=new Date(e.timestamp).toISOString(),s.logLevel=e.lvl,r.options.trace&&(s.trace=r.options.trace),s.logName=r.loggerInstanceName,s.logId=r.loggerInstanceId,n=JSON.stringify(s)+"\n"}return n}}class w{static isNullOrUndefined(t){return null==t}static notNullOrUndefined(t,e="object"){if(w.isNullOrUndefined(t))throw new Error(e+" may not be null or undefined")}static notNullUndefinedOrOnlyWhitespaceString(t,e="string"){if(w.isNullOrUndefined(t)||""===t.trim())throw new Error(e+" may not be null or undefined or only whitespace string")}static notNullUndefinedOrEmptyArray(t,e="string"){if(w.isNullOrUndefined(t)||0===t.length)throw new Error(e+" may not be null or undefined or an empty array")}static equal(t,e,r="Values must be equal"){if(t!==e)throw new Error(r)}static true(t,e="Value must be true"){w.equal(t,!0,e)}static noNullOrUndefinedValuesInArray(t,e=null,r=null){if(w.notNullOrUndefined(t,"Source array may not be null"),null!==e&&t.length!==e)throw new Error(`Expected array of length ${e} but was ${t.length} ${r}`);for(let e=0;e<t.length;e++)if(w.isNullOrUndefined(t[e]))throw new Error(`Array index ${e} was null or undefined ${r}`)}static noNullOrUndefinedValuesInRestArgs(t,...e){if(w.notNullOrUndefined(e,"Source array may not be null"),null!==t&&e.length!==t)throw new Error(`Expected array of length ${t} but was ${e.length}`);for(let t=0;t<e.length;t++)if(w.isNullOrUndefined(e[t]))throw new Error(`Array index ${t} was null or undefined`)}static constructorArgumentsMatchLengthAndAreNonNull(){const t=Array.from(arguments),e=this.constructor.length;return w.noNullOrUndefinedValuesInArray(t,e)}}class L{static RFC_3986_RESERVED=["!","*","'","(",")",";",":","@","&","=","+","$",",","/","?","#","[","]","%"];static stringToUint8Array(t){return t?(new TextEncoder).encode(t):null}static uint8ArrayToString(t){return t?(new TextDecoder).decode(t):null}static attemptJsonParse(t){let e=null;if(L.trimToNull(t))try{e=JSON.parse(t)}catch(t){e=null}return e}static canParseAsJson(t){return!!L.attemptJsonParse(t)}static allUnique(t){let e=!0;if(t){const r=new Set;for(let n=0;n<t.length&&e;n++){const s=t.charAt(n);e=!r.has(s),r.add(s)}}return e}static allPermutationsOfLength(t,e){const r=[];if(t>0&&e&&e.length>0){w.true(L.allUnique(e),"Alphabet must be unique");const n=1===t?[""]:L.allPermutationsOfLength(t-1,e);for(let t=0;t<e.length;t++)n.forEach((n=>r.push(e.charAt(t)+n)))}return r}static createType4Guid(){return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,(function(t){const e=16*Math.random()|0;return("x"==t?e:3&e|8).toString(16)}))}static createRandomHexString(t=10){let e="";for(let r=0;r<t;r++)e+=Math.floor(16*Math.random()).toString(16);return e}static canonicalize(t){let e=t?t.toLowerCase():"";return e=e.replace(" ","-"),L.RFC_3986_RESERVED.forEach((t=>{e=e.replace(t,"")})),e}static formatBytes(t,e=2){if(0==t)return"0 Bytes";const r=e||2,n=Math.floor(Math.log(t)/Math.log(1024));return parseFloat((t/Math.pow(1024,n)).toFixed(r))+" "+["Bytes","KB","MB","GB","TB","PB","EB","ZB","YB"][n]}static safeString(t){let e=null;if(null!=t){e="string"==typeof t?t:String(t)}return e}static stringContainsOnlyNumbers(t){return/^[0-9]+$/.test(t)}static stringContainsOnlyAlphanumeric(t){return/^[0-9a-zA-Z]+$/.test(t)}static stringContainsOnlyHex(t){return/^[0-9a-fA-F]+$/.test(t)}static stringContainsOnly(t,e){const r=t||"",n=e||"";let s=!0;for(let t=0;t<r.length&&s;t++)s=n.indexOf(r.charAt(t))>=0;return s}static obscure(t,e=2,r=2){if(!t)return t;const n=t.length;let s=e,o=r;for(;n>0&&n<s+o+1;)s=Math.max(0,s-1),o=Math.max(0,o-1);const i=n-(s+o);let a="";a+=t.substring(0,s);for(let t=0;t<i;t++)a+="*";return a+=t.substring(n-o),a}static leadingZeros(t,e){const r="00000000000000000000000000000000000000000000000000";let n=!1,s=String(t);if(s.startsWith("-")&&(n=!0,s=s.substring(1)),e>50)throw new Error("Cannot format number that large");let o=(r+s).slice(-1*e);return n&&(o="-"+o),o}static trimToEmpty(t){return(t?L.safeString(t):"").trim()}static trimToNull(t){const e=L.trimToEmpty(t);return e.length>0?e:null}static trimAllStringPropertiesToNullInPlace(t){return L.trimAllStringPropertiesInPlace(t,!1)}static trimAllStringPropertiesToEmptyInPlace(t){return L.trimAllStringPropertiesInPlace(t,!0)}static trimAllStringPropertiesInPlace(t,e){return Object.keys(t).forEach((r=>{const n=t[r];null!=n&&"string"==typeof n&&(t[r]=e?L.trimToEmpty(t[r]):L.trimToNull(t[r]))})),t}static stripNonNumeric(t){let e=t;if(null!=t&&!L.stringContainsOnlyNumbers(t)){e="";for(let r=0;r<t.length;r++){const n=t.charAt(r);(L.stringContainsOnlyNumbers(n)||0===r&&"-"===n)&&(e+=n)}}return e}static csvSafe(t){let e=L.trimToEmpty(L.safeString(t));return e.split('"').join('\\"'),-1===e.indexOf(",")&&-1===e.indexOf('"')&&-1===e.indexOf("'")||(e='"'+e+'"'),e}static stripNonAscii(t){return[...t].reduce(((t,e)=>e.charCodeAt(0)>127?t:t+e))}}class S{loggerInstanceName;_loggerMeta;_ringBuffer;_formatter;_level;_handlerFunctionMap;_options;constructor(t="default",e){this.loggerInstanceName=t,this.options=e}addPreProcessor(t){return t&&(this._options.preProcessors=this._options.preProcessors||[],this._options.preProcessors.push(t)),Object.assign([],this._options.preProcessors)}get ringBuffer(){return this._ringBuffer}dumpConfigurationIntoLog(){this.error("ERROR enabled"),this.warn("WARN enabled"),this.info("INFO enabled"),this.verbose("VERBOSE enabled"),this.debug("DEBUG enabled"),this.silly("SILLY enabled")}dumpOptionsIntoLog(){if(this.info("Options: %j",this.options),this?.options?.preProcessors?.length){const t=this.options.preProcessors.map((t=>L.trimToNull(t.label())||"Unlabelled"));this.info("Preprocessors: %j",t)}}changeRingBufferSize(t){this._ringBuffer=null,t&&(this._ringBuffer=new d(t),this._options.ringBufferSize=t)}updateTracePrefix(t){this._options.trace=t}get options(){return Object.assign({},this._options)}set options(t){switch(this._options=Object.assign({},t),this._options.ringBufferSize&&(this._ringBuffer=new d(this._options.ringBufferSize)),this._options.formatType){case f.None:this._formatter=new y;break;case f.StructuredJson:this._formatter=new b;break;default:this._formatter=new m}this._level=this._options.initialLevel,this._handlerFunctionMap=p.handlerFunctionMap(this._options.outputFunction);const e=this._loggerMeta?this._loggerMeta.loggerInstanceId:null;this._loggerMeta={options:this._options,loggerInstanceName:this.loggerInstanceName,loggerInstanceId:e||L.createRandomHexString(8)}}get level(){return this._level}set level(t){if(!t)throw new Error("Cannot set level to null/undefined");this._level=t}consoleLogPassThru(t,...e){if(p.levelIsEnabled(t,this._level)){let r=this._options.trace||"";r+="["+t+"] ",e.unshift(r);(this._handlerFunctionMap.get(t)||p.defaultHandlerFunction)(...e)}}createLogMessage(t,e,r,...n){return{lvl:t,timestamp:Date.now(),messageSource:r,subsVars:n,params:e}}formatMessage(t){return t?this._formatter.formatMessage(t,this._loggerMeta):null}formatMessages(t){return(t||[]).map((t=>this.formatMessage(t))).filter((t=>!!t))}recordMessageBuilder(t){return this.recordMessage(t.toMessage())}recordMessage(t){let e=null;if(p.levelIsEnabled(t.lvl,this._level)){let r=Object.assign({},t);if(this._options.preProcessors?.length)for(let t=0;t<this._options.preProcessors.length;t++)r=this._options.preProcessors[t].process(r);if(e=this.formatMessage(r),e){(this._handlerFunctionMap.get(r.lvl)||p.defaultHandlerFunction)(e),this._ringBuffer&&this._ringBuffer.addToRingBuffer(r)}}return e}error(t,...e){const r=this.createLogMessage(c.error,{},t,...e);return this.recordMessage(r)}errorP(...t){this.consoleLogPassThru(c.error,...t)}warn(t,...e){const r=this.createLogMessage(c.warn,{},t,...e);return this.recordMessage(r)}warnP(...t){this.consoleLogPassThru(c.warn,...t)}info(t,...e){const r=this.createLogMessage(c.info,{},t,...e);return this.recordMessage(r)}infoP(...t){this.consoleLogPassThru(c.info,...t)}verbose(t,...e){const r=this.createLogMessage(c.verbose,{},t,...e);return this.recordMessage(r)}verboseP(...t){this.consoleLogPassThru(c.verbose,...t)}debug(t,...e){const r=this.createLogMessage(c.debug,{},t,...e);return this.recordMessage(r)}debugP(...t){this.consoleLogPassThru(c.debug,...t)}silly(t,...e){const r=this.createLogMessage(c.silly,{},t,...e);return this.recordMessage(r)}sillyP(...t){this.consoleLogPassThru(c.silly,...t)}logByLevel(t,e,...r){const n=this.createLogMessage(t,{},e,...r);this.recordMessage(n)}importMessages(t,e="",r=!0){const n=e||"";t&&t.length>0&&(this.silly("Received import data : %d msgs",t.length),t.forEach((t=>{if(t.messageSource){let e=n;if(r){e+=" ("+String(new Date).substring(15,24)+") : ",e+=t.messageSource}this.logByLevel(t.lvl,e)}})))}}class O{static LOGGER_INSTANCES=new Map;static DEFAULT_OPTIONS={initialLevel:c.info,formatType:f.ClassicSingleLine,trace:null,globalVars:{},outputFunction:u.Console,ringBufferSize:0,preProcessors:[]};static applyDefaultsToOptions(t){const e=t||{};return e.initialLevel=e.initialLevel??O.DEFAULT_OPTIONS.initialLevel,e.formatType=e.formatType??O.DEFAULT_OPTIONS.formatType,e.trace=e.trace??O.DEFAULT_OPTIONS.trace,e.globalVars=e.globalVars??O.DEFAULT_OPTIONS.globalVars,e.outputFunction=e.outputFunction??O.DEFAULT_OPTIONS.outputFunction,e.ringBufferSize=e.ringBufferSize??O.DEFAULT_OPTIONS.ringBufferSize,e}static changeDefaultOptions(t,e){if(!t||!t.initialLevel||!t.formatType)throw new Error("Default options must be non-null, and provide initial level and format type");O.DEFAULT_OPTIONS=Object.assign({},t),e&&Array.from(O.LOGGER_INSTANCES.values()).forEach((e=>e.options=t))}static getLogger(t="default",e){let r=O.LOGGER_INSTANCES.get(t);if(!r){const n=O.applyDefaultsToOptions(e);r=new S(t,n),O.LOGGER_INSTANCES.set(t,r)}return r}static recordMessageBuilder(t){return O.getLogger().recordMessageBuilder(t)}static recordMessage(t){return O.getLogger().recordMessage(t)}static formatMessages(t){return O.getLogger().formatMessages(t)}static updateTracePrefix(t){return O.getLogger().updateTracePrefix(t)}static changeRingBufferSize(t){return O.getLogger().changeRingBufferSize(t)}static getRingBuffer(){return O.getLogger().ringBuffer}static dumpConfigurationIntoLog(){return O.getLogger().dumpConfigurationIntoLog()}static dumpOptionsIntoLog(){return O.getLogger().dumpOptionsIntoLog()}static getLevel(){return O.getLogger().level}static setLevel(t){O.getLogger().level=t}static getOptions(){return O.getLogger().options}static getMessages(t=null,e=!1,r=!1){const n=O.getLogger().ringBuffer;return n?n.getMessages(t,e,r):null}static consoleLogPassThru(t,...e){return O.getLogger().consoleLogPassThru(t,...e)}static error(t,...e){return O.getLogger().error(t,...e)}static errorP(...t){return O.getLogger().errorP(...t)}static warn(t,...e){return O.getLogger().warn(t,...e)}static warnP(...t){return O.getLogger().warnP(...t)}static info(t,...e){return O.getLogger().info(t,...e)}static infoP(...t){return O.getLogger().infoP(...t)}static verbose(t,...e){return O.getLogger().verbose(t,...e)}static verboseP(...t){return O.getLogger().verboseP(...t)}static debug(t,...e){return O.getLogger().debug(t,...e)}static debugP(...t){return O.getLogger().debugP(...t)}static silly(t,...e){return O.getLogger().silly(t,...e)}static sillyP(...t){return O.getLogger().sillyP(...t)}static takeSnapshot(){const t=O.getLogger().ringBuffer;return t?t.takeSnapshot():null}static logByLevel(t,e,...r){return O.getLogger().logByLevel(t,e,...r)}static importMessages(t,e="",r=!0){return O.getLogger().importMessages(t,e,r)}static getLastLogMessage(){const t=O.getLogger().ringBuffer;return t?t.getLastLogMessage():null}}class T{static MAX_LEADING_ZEROS_FORMAT_LENGTH=1e3;static toFixedDecimalNumber(t,e){const r=T.safeNumber(t);return null==r?r:T.safeNumber(r.toFixed(e))}static leadingZeros(t,e){const r=String(t);if(r.length<e){let t="0000";if(e>T.MAX_LEADING_ZEROS_FORMAT_LENGTH)throw"Cannot format number that large (max length is "+T.MAX_LEADING_ZEROS_FORMAT_LENGTH+")";for(;t.length<e;)t+=t;return(t+r).slice(-1*e)}return r}static between(t,e,r){const n=T.safeNumber(t),s=T.safeNumber(e),o=T.safeNumber(r);return n>=s&&n<=o||n>=o&&n<=s}static safeNumber(t,e=null,r){let n;if(null!=t){const r=typeof t;"number"==r?n=t:"string"==r?n=0===t.trim().length?e:Number.parseFloat(t):(O.warn("Value is of type %s, returning default",r),n=e),isNaN(n)&&(O.debug("Parsed string to NaN - using NaN value from param"),n=e)}else n=r?e:t;return n}static numberCSVToList(t){let e=null;return t&&(e=t.split(",").map((t=>T.safeNumber(t.trim()))),e=e.filter((t=>"number"==typeof t&&!isNaN(t)))),e}static fitToWindow(t,e,r){let n=t;if(null===t||null===e||null===r||e<0||r<0||t<0)throw new Error("All values must be non-null and larger than 0");const s=Math.min(e,r),o=Math.max(e,r),i=o-s;if(o===s)n=o;else{for(;n<s;)n+=i;for(;n>o;)n-=i}return n}static groupNumbersIntoContiguousRanges(t,e=3){w.notNullOrUndefined(t);const r=Object.assign([],t);r.sort(((t,e)=>t-e));const n=[],s=[];let o=0;for(let t=1;t<r.length;t++)if(r[t]===r[t-1]+1);else{if(o===t-1)n.push(r[t-1]);else{if(t-o<e)for(let e=o;e<t;e++)n.push(r[e]);else s.push({min:r[o],max:r[t-1]})}o=t}return{singles:n,ranges:s}}static distributeItemsEvenly(t,e){w.notNullOrUndefined(t,"items"),w.notNullOrUndefined(e,"buckets"),w.true(t>0&&t===Math.floor(t),"Items integer larger than 0"),w.true(e>0&&e===Math.floor(e),"Buckets integer larger than 0");const r=e/t,n=[];for(let t=0;t<e;t++)n.push(0);let s=0,o=t;for(;o>0;)n[Math.floor(s)%e]++,o--,s+=r;return n}static createRange(t,e,r=1){const n=[];let s=t;for(;s<e;)n.push(s),s+=r;return n}}class E{static allTrue(t,e=!1){let r=null;return r=!!t&&(t.length>0?t.reduce(((t,e)=>t&&e),!0):e),r}static anyTrue(t,e=!1){let r=null;return r=!!t&&(t.length>0?t.reduce(((t,e)=>t||e),!1):e),r}static parseBool(t){return!0===t||null!=t&&"string"==typeof t&&"true"===t.toLowerCase()}static intToBool(t){return null!=t&&0!==T.safeNumber(t)}static boolToInt(t){return E.parseBool(t)?1:0}}class M{constructor(){}static translateToOriginVector(t){let e=null;return M.validPoints(t)&&(e={x:null,y:null},t.forEach((t=>{e.x=null===e.x||t.x<e.x?t.x:e.x,e.y=null===e.y||t.y<e.y?t.y:e.y})),e.x*=-1,e.y*=-1),e}static minimalContainingPlane(t){let e=null;return M.validPoints(t)&&(e={width:0,height:0},t.forEach((t=>{e.width=Math.max(e.width,t.x+1),e.height=Math.max(e.height,t.y+1)}))),e}static scaleVector(t,e){let r=null;return M.validPlane(t)&&M.validPlane(e)&&(r={x:e.width/t.width,y:e.height/t.height}),r}static samePoint(t,e){return!!t&&!!e&&t.x===e.x&&t.y===e.y}static atLeastOneDimensionShared(t,e){return!(!t||!e||t.x!==e.x&&t.y!==e.y)}static validPlane(t){return!!t&&!!t.height&&!!t.width}static validLine(t){return!!t&&M.validPoint(t.p1)&&M.validPoint(t.p2)&&!M.samePoint(t.p1,t.p2)}static validLines(t){return!!t&&E.allTrue(t.map((t=>M.validLine(t))))}static validPolyLine(t){return!!t&&t.pts?.length>1&&E.allTrue(t.pts.map((t=>M.validPoint(t))))}static polyLineToLines(t){let e=null;if(M.validPolyLine(t)){e=[];for(let r=1;r<t.pts.length;r++)e.push({p1:t.pts[r-1],p2:t.pts[r]})}return e}static lastPointOnPolyLine(t){return M.validPolyLine(t)?t.pts[t.pts.length-1]:null}static lineToPolyLine(t){return M.validLine(t)?{pts:[t.p1,t.p2]}:null}static linesToPolyLines(t){let e=null;if(M.validLines(t)){e=[];let r=M.lineToPolyLine(t[0]);for(let n=1;n<t.length;n++)M.samePoint(M.lastPointOnPolyLine(r),t[n].p1)?r.pts.push(t[n].p2):(e.push(r),r=M.lineToPolyLine(t[n]));e.push(r)}return e}static validPoint(t){return!!t&&null!=t.x&&null!=t.x&&null!==t.y&&void 0!==t.y}static validPoints(t){return!!t&&E.allTrue(t.map((t=>M.validPoint(t))),!1)}static planeContainsPoint(t,e){return M.validPlane(e)&&M.validPoint(t)&&t.x>=0&&t.x<e.width&&t.y>=0&&t.y<e.height}static planeContainsPoints(t,e){return t&&t.map((t=>M.planeContainsPoint(t,e))).reduce(((t,e)=>t&&e),!0)}static linesToPoints(t){let e=null;return M.validLines(t)&&(e=t.map((t=>[t.p1,t.p2])).flat()),e}static pointsToLines(t){let e=null;if(M.validPoints(t)){if(t.length%2!=0)throw new Error("Cannot convert non-even array of points into lines");e=[];for(let r=0;r<t.length;r+=2)e.push({p1:t[r],p2:t[r+1]})}return e}static rotateRightAboutOrigin90Degrees(t,e=1){let r=null,n={x:0,y:0};if(M.validPoints(t)){r=Object.assign([],t),n=M.translateToOriginVector(r),r=M.translate(r,n);let e=M.minimalContainingPlane(r);r=M.xToY(r),e={width:e.height,height:e.width},n={x:-1*n.y,y:-1*n.x},r=M.mirrorPointsOnPlane(r,e,!0,!1),r=M.translate(r,n)}const s=e>4?e%4:e;return s>1&&(r=M.rotateRightAboutOrigin90Degrees(r,s-1)),r}static planeContainsLines(t,e){return t&&M.planeContainsPoints(t.map((t=>[t.p1,t.p2])).flat(),e)}static planeContainsPolyLine(t,e){return M.planeContainsLines(M.polyLineToLines(t),e)}static planeContainsLine(t,e){return M.validPlane(e)&&M.validLine(t)&&M.planeContainsPoint(t.p1,e)&&M.planeContainsPoint(t.p2,e)}static xToY(t){let e=null;return M.validPoints(t)&&(e=t.map((t=>({x:t.y,y:t.x})))),e}static translate(t,e){let r=null;return M.validPoints(t)&&M.validPoint(e)&&(r=t.map((t=>({x:t.x+e.x,y:t.y+e.y})))),r}static mirrorPointsOnPlane(t,e,r,n){let s=null;return M.validPoints(t)&&M.validPlane(e)&&(s=r||n?t.map((t=>({x:r?e.width-1-t.x:t.x,y:n?e.height-1-t.y:t.y}))):Object.assign([],t)),s}static transformPointsToNewPlane(t,e,r){let n=null;if(M.validPoints(t)&&M.validPlane(e)&&M.validPlane(r)){const s=M.scaleVector(e,r);n=t.map((t=>({x:t.x*s.x,y:t.y*s.y}))),n=M.mirrorPointsOnPlane(n,r,r.rightToLeft!==e.rightToLeft,r.topToBottom!==e.topToBottom)}return n}static transformPointToNewPlane(t,e,r){const n=M.transformPointsToNewPlane([t],e,r);return 1===n.length?n[0]:null}static transformLines(t,e,r){return null}static fitCurve(t,e){if(t.sort(((t,e)=>t.x-e.x)),e<=t[0].x)return t[0].y;if(e>=t[t.length-1].x)return t[t.length-1].y;{let r=0;for(;t[r+1].x<e;)r++;const n=t[r+1].x-t[r].x,s=t[r+1].y-t[r].y,o=(e-t[r].x)/n*s;return t[r].y+o}}}class _{constructor(){}static buildInformation(){return{version:"162",hash:"86497fe1e6bc434493115b4e8bbcb3eb529de458",branch:"alpha-2023-06-28-2",tag:"alpha-2023-06-28-2",timeBuiltISO:"2023-06-28T00:39:33-0700",notes:"No notes"}}}class x{entries=[];update(t,e=1){if(t){const r=this.entries.find((e=>e.item===t));r?r.count+=e:this.entries.push({item:t,count:e})}}sort(){this.entries.sort(((t,e)=>{let r=e.count-t.count;return 0===r&&(r=String(e.item).localeCompare(String(t.item))),r}))}sortKeys(){this.entries.sort(((t,e)=>String(e.item).localeCompare(String(t.item))))}reverse(){this.entries.reverse()}getEntries(){return this.entries}getTotalCount(){let t=0;return this.entries.forEach((e=>t+=e.count)),t}countForValue(t){const e=this.entries.find((e=>e.item===t));return e?e.count:0}percentForValue(t){const e=this.getTotalCount();return 0===e?0:this.countForValue(t)/e}}!function(t){t[t.RETURN_NULL=0]="RETURN_NULL",t[t.THROW_EXCEPTION=1]="THROW_EXCEPTION",t[t.ADD_FLAG=2]="ADD_FLAG"}(g||(g={}));class P{static formatMsDuration(t,e=!1){const r=Math.floor(t%1e3),n=Math.floor(t/1e3)%60,s=Math.floor(t/6e4)%60,o=Math.floor(t/36e5)%24,i=Math.floor(t/864e5),a=T.leadingZeros;let l=a(o,2)+"h"+a(s,2)+"m";return l+=e?a(n,2)+"."+a(r,3)+"s":a(n,2)+"s",i>0&&(l=i+"d"+l),l}static colonFormatMsDuration(t,e=!1){const r=t%1e3,n=Math.floor(t/1e3)%60,s=Math.floor(t/6e4)%60,o=Math.floor(t/36e5),i=T.leadingZeros;let a=i(o,2)+":"+i(s,2)+":";return a+=e?i(n,2)+"."+i(r,3):i(n,2),a}static daysBetween(t,e){return r.fromJSDate(t).diff(r.fromJSDate(e)).days}static createSteps(t,e,n,s,o){let i=r.fromMillis(t).setZone(n);const a=r.fromMillis(e),l=[];for(;i<a;)l.push(i.toFormat(s)),i=i.plus(o);return l}}class v{_encryptionKeyPromise;_decryptKeysPromise;_jtiGenerator;_decryptOnlyKeyUseLogLevel;_parseFailureLogLevel;static EXPIRED_FLAG_NAME="__jwtServiceExpiredFlag";constructor(t,e,r=L.createType4Guid,n=c.info,s=c.debug){this._encryptionKeyPromise=t,this._decryptKeysPromise=e,this._jtiGenerator=r,this._decryptOnlyKeyUseLogLevel=n,this._parseFailureLogLevel=s,w.notNullOrUndefined(t,"encryptionKeyPromise")}get encryptionKeyPromise(){return this._encryptionKeyPromise}get decryptKeysPromise(){return this._decryptKeysPromise}get jtiGenerator(){return this._jtiGenerator}get decryptOnlyKeyUseLogLevel(){return this._decryptOnlyKeyUseLogLevel}get parseFailureLogLevel(){return this._parseFailureLogLevel}static hasExpiredFlag(t){return t&&!0===t[v.EXPIRED_FLAG_NAME]}static async invalidSafeDecode(t,r,n=c.silly){let s=null;try{s=e.verify(t,r,{ignoreExpiration:!0})}catch(t){O.logByLevel(n,"Caught %s - ignoring",t)}return s}static async secondsRemainingUntilExpiration(t){let e=null;if(L.trimToNull(t)){const r=await v.decodeTokenNoVerify(t),n=Math.floor(Date.now()/1e3);if(r.exp){const t=r.exp>100*n?Math.floor(r.exp/1e3):r.exp;e=Math.max(0,t-n)}}return e}static async msRemainingUntilExpiration(t){const e=await v.secondsRemainingUntilExpiration(t);let r=null;return null!=e&&(r=1e3*e),r}async decodeToken(t,e=g.RETURN_NULL){const r=await this.encryptionKeyArray();let n=Object.assign([],r);this.decryptKeysPromise&&(n=n.concat(await this.decryptKeysPromise));const s=[];let o=null;for(let e=0;e<n.length&&!o;e++){s.push(L.obscure(n[e],1,1));const i=e===n.length-1&&this.parseFailureLogLevel?this.parseFailureLogLevel:c.silly;o=await v.invalidSafeDecode(t,n[e],i),o&&e>=r.length&&O.logByLevel(this.decryptOnlyKeyUseLogLevel,"Used old key to decode token : %s",L.obscure(n[e],2))}if(o){const t=Math.floor(Date.now()/1e3),r=o?.exp&&o.exp>100*t?Math.floor(o.exp/1e3):o?.exp,n=o?.nbf&&o.nbf>100*t?Math.floor(o.nbf/1e3):o?.nbf;if(r&&t>=r||n&&t<=n){const n=t-r;switch(O.debug("JWT token expired or before NBF : on %d, %s ago",o.exp,P.formatMsDuration(1e3*n)),e){case g.THROW_EXCEPTION:throw new Error("JWT Token was expired");case g.ADD_FLAG:o[v.EXPIRED_FLAG_NAME]=!0;break;default:o=null}}}else O.warn("Unable to parse a payload (Tried %j) from : %s",s,t);return o}async encryptionKeyArray(){const t=await this.encryptionKeyPromise,e=Array.isArray(t)?t:[t];if(e.length<1)throw new Error("Cannot create JwtRatchet with empty encryption key set");return e}async selectRandomEncryptionKey(){const t=await this.encryptionKeyArray();return t[Math.floor(Math.random()*t.length)]}async createTokenString(t,r,n){const s=L.trimToNull(n)?L.trimToNull(n):await this.selectRandomEncryptionKey();if(w.notNullOrUndefined(t,"payload"),t.jti=this.jtiGenerator?this.jtiGenerator():null,r){const e=Math.floor(Date.now()/1e3)+r;O.debug("Forcing expiration to %d",e),t.exp=e}return e.sign(t,s)}async refreshJWTString(t,e,r){const n=e?g.ADD_FLAG:g.THROW_EXCEPTION,s=await this.decodeToken(t,n),o=s.exp&&s.iat?s.exp-s.iat:null,i=r||o;v.removeJwtFields(s),v.removeExpiredFlag(s);return await this.createTokenString(s,i)}static decodeTokenNoVerify(t){return e.decode(t)}static removeJwtFields(t){t&&["iss","sub","aud","exp","nbf","iat","jti"].forEach((e=>{delete t[e]}))}static removeExpiredFlag(t){t&&delete t[v.EXPIRED_FLAG_NAME]}}class N{static safeStringifyErr(t,e=!0){let r="ERR WAS NULL";if(t)if(t.message)r=t.message;else try{r=JSON.stringify(t)}catch(e){O.error("Failed to json stringify"),r=String(t)}return e&&O.error("%s",r,t),r}static asErr(t){let e=null;return t&&(e=t instanceof Error?t:new Error("Force-Cast to error : "+String(t))),e}static fErr(e,...r){const n=t.format(e,...r);return new Error(n)}static throwFormattedErr(t,...e){throw N.fErr(t,...e)}}class R{static expandNestedKeys(t){const e={};return Object.keys(t).forEach((r=>{n(e,r,t[r])})),e}static mapByUniqueProperty(t,e){if(!t||!e)throw new Error("Neither input nor propName can be null");const r=new Map;return t.forEach((t=>{const n=t?t[e]:null;if(null==n)throw new Error("No value for "+e+" found in "+JSON.stringify(t));if(r.has(n))throw new Error("Multiple values found for "+n);r.set(n,t)})),r}static groupByProperty(t,e){if(!t||!e)throw new Error("Neither input nor propName can be null");const r=new Map;return t.forEach((t=>{const n=t?t[e]:null;if(null==n)throw N.fErr("No value for %s found in %j",e,t);r.has(n)||r.set(n,[]),r.get(n).push(t)})),r}static findValue(t,e){return e&&0!=e.length?t?R.findValue(t[e[0]],e.slice(1)):null:t}static findValueDotPath(t,e){return e&&0!=e.length?t?R.findValue(t,e.split(".")):null:t}static simpleDeepCompare(t,e){return null==t&&null==e||null!=t&&null!=e&&JSON.stringify(t)==JSON.stringify(e)}static toKeyValueList(t){const e=[];for(const r of Object.keys(t))e.push({key:r,value:t[r]});return e}static fromKeyValueList(t){const e={};return t.forEach((t=>e[t.key]=t.value)),e}static cleanup(t,e=!1,r=!0,n=!0,s=!0){if(null==t||"object"!=typeof t)return t;const o=JSON.parse(JSON.stringify(t));return Object.keys(o).forEach((t=>{if(o[t]&&"object"==typeof o[t])if(Array.isArray(o[t]))for(let e=0;e<o[t].length;e++)o[t][e]=R.cleanup(o[t][e]);else o[t]=R.cleanup(o[t]);else void 0===o[t]&&n||null===o[t]&&r||""===o[t]&&s||0===o[t]&&e?delete o[t]:o[t]=o[t]})),o}static extractValueFromMapIgnoreCase(t,e){let r=null;if(t&&e){const n=e.toLowerCase();Object.keys(t).forEach((s=>{if(s.toLowerCase()===n){const n=t[s];r&&O.warn("Multiple entries found for %s (replacing %s with %s",e,r,n),r=n}}))}return r}static safeCallFunction(t,e){let r=!1;if(t&&t[e]&&"function"==typeof t[e])try{t[e](),r=!0}catch(r){O.warn("Error calling %s on %s : %s",e,t,r,r)}return r}static caseInsensitiveAccess(t,e){let r=null;if(t&&e&&(r=t[e],!r)){const n=Object.keys(t).find((t=>t.toLowerCase()===e.toLowerCase()));n&&(r=t[n])}return r}}class A{static wrapElementsInArray(t){return t.map((t=>[t]))}static compareTwoArrays(t,e,r){t.sort(r),e.sort(r);let n=0,s=0;const o={matching:[],setOneOnly:[],setTwoOnly:[]};for(;n<t.length&&s<e.length;){const i=t[n],a=e[s],l=r(i,a);0===l?(o.matching.push(i),n++,s++):l<0?(o.setOneOnly.push(i),n++):(o.setTwoOnly.push(a),s++)}return n<t.length-1&&(o.setOneOnly=o.setOneOnly.concat(t.slice(n))),s<e.length-1&&(o.setTwoOnly=o.setTwoOnly.concat(e.slice(s))),o}static extractSubarrayFromSortedByNumberField(t,e,r,n){if(!t||0===t.length)return t;let s=null===r?0:A.findSplit(t,e,r)||0;const o=null===n?t.length:A.findSplit(t,e,n),i=R.findValueDotPath(t[s],e);return s===t.length-1&&i<r?[]:(s<t.length&&s<o&&i<r&&s++,t.slice(s,o+1))}static findSplit(t,e,r){if(w.notNullOrUndefined(t),w.notNullOrUndefined(e),w.notNullOrUndefined(r),0===t.length||R.findValueDotPath(t[0],e)>r)return null;let n=0,s=t.length,o=null;for(;null===o;){const i=Math.floor((n+s)/2),a=R.findValueDotPath(t[i],e);n===s||n===s-1?o=n:a<=r?n=i:s=i}return o}}class I{static safeObjectToBase64JSON(t){return t?I.generateBase64VersionOfString(JSON.stringify(t)):null}static safeBase64JSONParse(t){let e={};try{t&&(e=JSON.parse(I.base64StringToString(t)))}catch(r){O.warn("Error parsing b64/json : %s as json, got %s",t,r,r),e={}}return e}static generateBase64VersionOfBlob(t){return new Promise((function(e,r){if(t&&0!=t.size){const r=new FileReader;r.onloadend=function(){e(r.result.toString())},r.readAsDataURL(t)}else r("Wont convert null or non-blob or empty blob")}))}static generateBase64VersionOfString(t){return I.generateBase64VersionOfBuffer(Buffer.from(t))}static generateBase64VersionOfBuffer(t){return t.toString("base64")}static base64StringToBuffer(t){return Buffer.from(t,"base64")}static base64StringToString(t,e="utf8"){return Buffer.from(t,"base64").toString(e)}}class C{sources;mostRecent;constructor(t,e=!0){if(!t||0==t.length)throw Error("Cannot create composite provider with null/empty sources");this.sources=t,this.mostRecent=e}lastSuccess(){let t=null;return this.sources.forEach((e=>{const r=e.lastSuccess();null!=r&&(t=null==t||r>t&&this.mostRecent||r<t&&!this.mostRecent?r:t)})),t}}class B{static COMMON_US_DATE_FORMAT="MM/dd/yyyy";static DEFAULT_DATE_FORMAT="yyyy-MM-dd";static FULL_DATE_FORMAT="yyyy-MM-dd_HH_mm_ss";static PACIFIC_TIME_ZONE="America/Los_Angeles";static UTC_TIME_ZONE="etc/UTC";static formatFullDate(t){return r.fromJSDate(t).toFormat(B.FULL_DATE_FORMAT)}static formatDefaultDateOnly(t){return r.fromJSDate(t).toFormat(B.DEFAULT_DATE_FORMAT)}static parseDefaultDate(t){return r.fromFormat(t,B.DEFAULT_DATE_FORMAT).toJSDate()}static parseCommonUsDate(t){let e=null;if(t){let n=B.COMMON_US_DATE_FORMAT;2===t.indexOf("-")&&(n=n.split("/").join("-")),e=r.fromFormat(t,n).toJSDate()}return e}}class F{static listEnumKeys(t){return s(t).getValues()}static keyToEnum(t,e,r=!1){const n=s(t);let o=null;if(e&&(o=n.asValueOrDefault(e,null),!o&&!r)){const r=F.listEnumKeys(t).find((t=>t.toUpperCase()===e.toUpperCase()));r&&(o=n.asValueOrDefault(r,null))}return o}static parseCsvToEnumArray(t,e){return L.trimToEmpty(e).split(",").map((t=>t.trim())).map((e=>F.keyToEnum(t,e))).filter((t=>!!t))}}class D{static fetchDirName(t){if(!t)throw new Error("Need to provide root (should be import.meta.url)");return o.fileURLToPath(new URL(".",t))}static fetchFileName(t){if(!t)throw new Error("Need to provide root (should be import.meta.url)");return o.fileURLToPath(t)}}class U{_config;_cacheObject;_lastUpdatedEpochMS;_timeRemainingMS;constructor(t){this._config=Object.assign({},this.defaultConfig(),t||{}),this._config.overrideTimeRemainingMS&&this._config.timeToLiveMS&&N.throwFormattedErr("Cannot define both time to live and overrideTimeRemainingMS"),this._config.overrideTimeRemainingMS||this._config.timeToLiveMS||N.throwFormattedErr("Must define exactly one of timeToLiveMS or overrideTimeRemainingMS"),this._config.initialValue&&this.update(this._config.initialValue),this._timeRemainingMS=this._config.overrideTimeRemainingMS||this.defaultTimeRemainingMS}defaultConfig(){return{generator:null,initialValue:null,logLevel:c.debug,overrideTimeRemainingMS:null,timeToLiveMS:6e4}}async defaultTimeRemainingMS(t){let e=0;if(t){const r=(new Date).getTime()-t;e=Math.max(0,this._config.timeToLiveMS-r)}return e}update(t,e=!1){this._cacheObject=t,e||(this._lastUpdatedEpochMS=(new Date).getTime()),O.logByLevel(this._config.logLevel,"Updated cache value to %j",t)}async fetchCacheObjectTimeRemainingMS(){return this._timeRemainingMS(this._lastUpdatedEpochMS)}async fetch(){if(await this._timeRemainingMS(this._lastUpdatedEpochMS)||(this._cacheObject=null,this._lastUpdatedEpochMS=null),!this._cacheObject&&this._config.generator){const t=await this._config.generator();O.logByLevel(this._config.logLevel,"Auto call to generator returned %j",t),this.update(t)}return this._cacheObject}}class j{timeToLiveMS;generator;initialValue;logLevel;overrideTimeRemainingMS}class k{constructor(){}static distanceBetweenLocations(t,e,r,n,s="M"){const o=s?s.toUpperCase():"";if(-1===["M","K","N","F","E"].indexOf(o))throw new Error("Invalid unit");if(t==r&&e==n)return 0;{const s=Math.PI*t/180,i=Math.PI*r/180,a=e-n,l=Math.PI*a/180;let c=Math.sin(s)*Math.sin(i)+Math.cos(s)*Math.cos(i)*Math.cos(l);return c>1&&(c=1),c=Math.acos(c),c=180*c/Math.PI,c=60*c*1.1515,"F"===o&&(c*=5280),"K"===o&&(c*=1.609344),"E"===o&&(c*=1609.344),"N"===o&&(c*=.8684),c}}static distanceBetweenRatchetGeoLocations(t,e,r="M"){return k.distanceBetweenLocations(t.lat,t.lng,e.lat,e.lng,r)}static degreeOfLatLngInMiles(t=0){const e=t*Math.PI/180,r=Math.cos(e);return T.safeNumber((69.172*r).toFixed(4))}static milesInDegLatLng(t,e=0){w.notNullOrUndefined(t),w.true(t>=0);return t/k.degreeOfLatLngInMiles(e)}static centerOfBounds(t){return w.notNullOrUndefined(t),{lat:(t.extent.lat+t.origin.lat)/2,lng:(t.extent.lng+t.origin.lng)/2}}static calculateSplits(t,e,r){w.notNullOrUndefined(t),w.notNullOrUndefined(e),w.notNullOrUndefined(r),t.sort(((t,e)=>t.origin[r]-e.origin[r]));const n=t.map((t=>k.centerOfBounds(t))).map((t=>t[r])),s=[];for(let t=1;t<n.length;t++){const r=n[t]-n[t-1];s.length<e?(s.push({idx:t,size:r}),s.sort(((t,e)=>t.size-e.size))):r>s[0].size?(s[0]={idx:t,size:r},s.sort(((t,e)=>t.size-e.size))):O.silly("Skipping, size : %d, %j",r,s)}return O.info("Splits at : %j",s),s.sort(((t,e)=>t.idx-e.idx)),s}static clusterGeoBounds(t,e=2,r=5){let n=null;if(e*r<2&&N.throwFormattedErr("Cannot set slices to less than 2 : %d x %d",e,r),t){n=[];const s=Object.assign([],t);s.sort(((t,e)=>t.origin.lng-e.origin.lng));const o=k.calculateSplits(t,r-1,"lng");o.sort(((t,e)=>t.idx-e.idx));for(let t=0;t<=o.length;t++){const r=0===t?0:o[t-1].idx,i=t===o.length?s.length:o[t].idx,a=s.slice(r,i);a.sort(((t,e)=>t.origin.lat-e.origin.lat));const l=k.calculateSplits(a,e-1,"lat");for(let t=0;t<=l.length;t++){const e=0==t?0:l[t-1].idx,r=t===l.length?a.length:l[t].idx,s=a.slice(e,r);n.push(k.combineBounds(s))}}O.info("New bounds : %j",n)}return n}static canonicalizeBounds(t,e=!1){w.notNullOrUndefined(t,"RatchetLocationBounds");const r=Math.min(t.extent.lat,t.origin.lat),n=Math.max(t.extent.lat,t.origin.lat),s=Math.min(t.extent.lng,t.origin.lng),o=Math.max(t.extent.lng,t.origin.lng);if(r<0&&n>0||r>0&&n<0||(r<0&&n>0||r>0&&n<0)){if(e)return t;throw new Error("Cannot canonicalize, bounds crosses over boundary")}return{origin:{lat:r,lng:s},extent:{lat:n,lng:o}}}static combineBounds(t){let e=null;return t&&t.length>0&&(e={origin:{lat:t.map((t=>t.origin.lat)).reduce(((t,e)=>Math.min(t,e))),lng:t.map((t=>t.origin.lng)).reduce(((t,e)=>Math.min(t,e)))},extent:{lat:t.map((t=>t.extent.lat)).reduce(((t,e)=>Math.max(t,e))),lng:t.map((t=>t.extent.lng)).reduce(((t,e)=>Math.max(t,e)))}}),e}static roundLocation(t,e){return{lat:T.safeNumber(t.lat.toFixed(e)),lng:T.safeNumber(t.lng.toFixed(e))}}static locationToBounds(t,e){const r=k.milesInDegLatLng(e,t.lat);return{origin:{lat:t.lat-r,lng:t.lng-r},extent:{lat:t.lat+r,lng:t.lng+r}}}static sameLocation(t,e){return!!t&&!!e&&t.lat===e.lat&&t.lng===e.lng}static pointInBounds(t,e){return!!t&&!!e&&T.between(t.lat,e.origin.lat,e.extent.lat)&&T.between(t.lng,e.origin.lng,e.extent.lng)}static pointInAnyBound(t,e,r=10){let n=!1;if(e.length>r){const r=k.buildRatchetLocationBoundsMap(e);n=k.pointInRatchetLocationBoundsMap(t,r)}else for(let r=0;r<e.length&&!n;r++)n=k.pointInBounds(t,e[r]);return n}static pointInRatchetLocationBoundsMap(t,e){let r=!1;const n=k.findRatchetLocationBoundsMapEntry(t,e);if(n){const e=n.bounds;for(let n=0;n<e.length&&!r;n++)r=k.pointInBounds(t,e[n])}return r}static findRatchetLocationBoundsMapEntry(t,e){let r=null;if(t.lat>=e.latOffset&&t.lat<=e.maxLat&&t.lng>=e.lngOffset&&t.lng<=e.maxLng){const n=Math.trunc(t.lat)-e.latOffset,s=Math.trunc(t.lng)-e.lngOffset;r=e.mapping[n][s]}return r}static buildRatchetLocationBoundsMap(t){const e=t.map((t=>t.origin.lat)).reduce(((t,e)=>Math.min(t,e))),r=t.map((t=>t.origin.lng)).reduce(((t,e)=>Math.min(t,e))),n=t.map((t=>t.extent.lat)).reduce(((t,e)=>Math.max(t,e))),s=t.map((t=>t.extent.lng)).reduce(((t,e)=>Math.max(t,e))),o=Math.trunc(e)-1,i=Math.trunc(r)-1,a=Math.trunc(n)-o+1,l=Math.trunc(s)-i+1,c=[];for(let t=0;t<a;t++){const e=[];for(let r=0;r<l;r++)e.push({lat:o+t,lng:i+r,bounds:[]});c.push(e)}return t.forEach((t=>{for(let e=Math.trunc(t.origin.lat);e<=Math.trunc(t.extent.lat);e++){const r=c[e-o];for(let e=Math.trunc(t.origin.lng);e<=Math.trunc(t.extent.lng);e++){r[e-i].bounds.push(t)}}})),{latOffset:o,lngOffset:i,maxLat:o+a,maxLng:i+l,mapping:c}}}class V{constructor(){}static fetchGlobalRecord(t){let e=null;if(process?.env?(O.silly("Using process.env as global"),e=process.env):global?.process?.env?(O.silly("Using global.process.env as global"),e=global.process.env):global&&(O.silly("Using process.env as global"),e=global),!e){if(!t)throw N.fErr("Could not find process.env OR global in scope");O.silly("Returning null as global"),e=null}return e}static fetchGlobalVar(t){w.notNullOrUndefined(t,"envVar");return V.fetchGlobalRecord()[t]}static setGlobalVar(t,e){w.notNullOrUndefined(t,"envVar"),w.notNullOrUndefined(e,"value");V.fetchGlobalRecord()[t]=e}}class G{key;value}class z{static op(...t){}}class K{title;timeoutMS;__timeoutTokenFlagField=!0;constructor(t,e){this.title=t,this.timeoutMS=e}writeToLog(t=c.warn){O.logByLevel(t,"Timed out after %d ms waiting for results of %s",this.timeoutMS,this.title)}static isTimeoutToken(t){return!!t&&!!t.__timeoutTokenFlagField}}class J{label;starts=new Map;ends=new Map;createTime=Date.now();constructor(t=L.createRandomHexString(4)){this.label=t}start(t){w.notNullUndefinedOrOnlyWhitespaceString(t,"name");const e=Date.now();return this.starts.set(L.trimToNull(t),e),e}stop(t){w.notNullUndefinedOrOnlyWhitespaceString(t,"name");const e=Date.now();return this.ends.set(L.trimToNull(t),e),e}reset(t){w.notNullUndefinedOrOnlyWhitespaceString(t,"name"),this.starts.delete(L.trimToNull(t)),this.ends.delete(L.trimToNull(t))}hasTimer(t){return w.notNullUndefinedOrOnlyWhitespaceString(t,"name"),this.starts.has(t)}log(t,e,r=c.info){O.logByLevel(r,this.dump(t,e))}logExpected(t,e,r,n=c.info){O.logByLevel(n,this.dumpExpected(t,e,r))}dump(t,e){let r=this.label+" ";const n=L.trimToNull(t);if(n&&!this.hasTimer(n))r+="No such timer : "+n;else{const s=t?this.starts.get(n):this.createTime,o=t?this.ends.get(n):Date.now();r+=(n||"Default")+" ",s&&o?r+="completed in "+P.formatMsDuration(o-s,!e):s&&(r+="running for "+P.formatMsDuration(Date.now()-s,!e))}return r}dumpExpected(t,e,r){let n=this.label+" ";const s=L.trimToNull(e);if(s&&!this.hasTimer(s))n+="No such timer : "+s;else if(!t||t<=0)n+="Cannot generate output for 0 percent complete";else if(t>1)n+="Cannot generate output for percent > 1";else{n+=(s||"Default")+" ";const o=e?this.starts.get(s):this.createTime,i=e?this.ends.get(s):Date.now();if(o&&i)n+="completed in "+P.formatMsDuration(i-o,!r);else if(o){const e=Date.now()-o,s=e/t-e;n+="running for "+P.formatMsDuration(e,!r)+" approx "+P.formatMsDuration(s,!r)+" remaining"}}return n}elapsedMS(t){let e=null;const r=L.trimToNull(t);if(r&&!this.hasTimer(r))e=null;else{const n=t?this.starts.get(r):this.createTime,s=t?this.ends.get(r):Date.now();n&&s?e=s-n:n&&(e=Date.now()-n)}return e}}class W{static resolveOnEvent(t,e,r=[],n=null){return t&&e&&0!==e.length&&t.on||Promise.reject("Cannot continue - missing source object or name, or the object is not an event source"),new Promise(((s,o)=>{e.forEach((e=>{t.on(e,(()=>{s(n)}))})),r&&r.forEach((e=>{t.on(e,(t=>{o(t)}))}))}))}static timeout(t,e,r){return Promise.race([t,W.createTimeoutPromise(e,r)])}static createTimeoutPromise(t,e){return new Promise(((r,n)=>{const s=setTimeout((()=>{clearTimeout(s);const n=new K(t,e);r(n)}),e)}))}static async wait(t){await W.createTimeoutPromise("Wait "+t,t),O.silly("Finished wait of %d ms",t)}static dumpResult(t,e=!1){O.info("Success, result was : \n\n%s\n\n",JSON.stringify(t)),process.exit(0)}static dumpError(t,e=!1){O.warn("Failure, err was : \n\n%s\n\n -- \n\n%s\n\n",JSON.stringify(t),String(t)),console.trace(),process.exit(1)}static logErrorAndReturnNull(t,e=!1){return O.warn("Failure, err was : \n\n%s\n\n -- \n\n%s\n\n",JSON.stringify(t),String(t)),null}static runPromiseAndDump(t){t.then(W.dumpResult).catch(W.dumpError)}static async waitFor(t,e,r,n,s="waitFor",o=0){if(null==e||r<50||n<1||o<0||"function"!=typeof t)return O.warn("%s: Invalid configuration for waitFor - exiting immediately",s),O.warn("ExpectedValue : %s ; interval: %d ; maxCycles: %d ; test : %s",e,r,n,typeof t),!1;let i=null;try{i=t(o)}catch(t){return O.warn("%s: Caught error while waiting, giving up",s),!1}return null===i?(O.debug("%s:CurVal was null - aborting",s),!1):i==e?(O.debug("%s:Found expected value",s),!0):o>n?(O.debug("%s:Exceeded max cycles, giving up",s),!1):(O.debug("%s : value not reached yet, waiting (count = %d of %d)",s,o,n),await W.wait(r),W.waitFor(t,e,r,n,s,o+1))}static async runBoundedParallel(t,e,r,n=1,s=c.debug){const o=new J;let i=[],a=e;O.logByLevel(s,"Processing %d total elements %d at a time",e.length,n);const l=r||this;let u=0;const f=a.length;for(;a.length>0;){const e=a.slice(0,Math.min(a.length,n));a=a.slice(e.length);const r=e.map((e=>t.apply(l,e))),c=await Promise.all(r);u+=r.length,i=i.concat(c);const g=u/f;O.logByLevel(s,"%d elements remain : %s",a.length,o.dumpExpected(g))}return o.log(),i}static async runBoundedParallelSingleParam(t,e,r,n=1,s=c.debug){const o=A.wrapElementsInArray(e);return W.runBoundedParallel(t,o,r,n,s)}static async asyncForEachSerial(t,e){for(let r=0;r<t.length;r++)await e(t[r],r,t)}static async asyncForEachParallel(t,e){const r=[];for(let n=0;n<t.length;n++)r.push(e(t[n],n,t));await Promise.all(r)}constructor(){}}class H{static PACIFIC=new H("America/Los_Angeles");timezone;constructor(t){if(!t)throw"Timezone cannot be null";this.timezone=t}currentHour(){return r.local().setZone(this.timezone).hour}toEpochSeconds(t){return Math.round(t.toMillis()/1e3)}startOfTodayEpochSeconds(){return this.toEpochSeconds(r.local().setZone(this.timezone).set({hour:0,minute:0,second:0,millisecond:0}))}startOfMatchingDayEpochSeconds(t){return this.toEpochSeconds(r.fromMillis(t).set({hour:0,minute:0,second:0,millisecond:0}))}startOfMatchingDayEpochMS(t){return 1e3*this.startOfMatchingDayEpochSeconds(t)}startOfCurrentHourEpochSeconds(){return this.toEpochSeconds(r.local().setZone(this.timezone).set({minute:0,second:0,millisecond:0}))}startOfCurrentMinuteEpochSeconds(){return this.toEpochSeconds(r.local().setZone(this.timezone).set({second:0,millisecond:0}))}startOfCurrentSecondEpochSeconds(){return this.toEpochSeconds(r.local().setZone(this.timezone).set({millisecond:0}))}startOfTodayEpochMS(){return r.local().setZone(this.timezone).set({hour:0,minute:0,second:0,millisecond:0}).toMillis()}dailySlotCount(t){return Math.ceil(864e5/t)}currentTimeSlotIdx(t){if(t<1)throw new Error("Cannot process with slot less than one ms wide");const e=this.startOfTodayEpochMS(),r=(new Date).getTime()-e;return Math.floor(r/t)}matchingTimeSlotIdx(t,e){if(e<1)throw new Error("Cannot process with slot less than one ms wide");const r=t-this.startOfMatchingDayEpochMS(t);return Math.floor(r/e)}startOfCurrentSlotEpochMS(t){return this.startOfTodayEpochMS()+this.currentTimeSlotIdx(t)*t}startOfMatchingSlotEpochMS(t,e){return this.startOfMatchingDayEpochMS(t)+this.matchingTimeSlotIdx(t,e)*e}}class Z{wrapped;constructor(t,e){if(!t)throw Error("Cannot set level to null/undefined");this.wrapped={lvl:t,timestamp:Date.now(),messageSource:e}}clone(){const t=new Z(this.wrapped.lvl,this.wrapped.messageSource);return t.wrapped=Object.assign({},this.wrapped),t}level(t){if(!t)throw Error("Cannot set level to null/undefined");return this.wrapped.lvl=t,this}timestamp(t){if(!t)throw Error("Cannot set timestamp to null/undefined");return this.wrapped.timestamp=t,this}messageSource(t){return this.wrapped.messageSource=t,this}subVars(t){return this.wrapped.subsVars=t||[],this}params(t){return this.wrapped.params=t||{},this}p(t,e){return this.wrapped.params=this.wrapped.params||{},this.wrapped.params[t]=e,this}toMessage(){return Object.assign({},this.wrapped)}}class ${static LOCAL_IP=null;static findLocalIp(t=!0){return O.info("Attempting to find local IP (V 2)"),$.LOCAL_IP&&t?Promise.resolve($.LOCAL_IP):"undefined"!=typeof window?new Promise((function(t,e){try{const e=window.RTCPeerConnection||window.webkitRTCPeerConnection||window.mozRTCPeerConnection;if(e){const r=new e({iceServers:[]}),n=Object.create(null);n["0.0.0.0"]=!1,r.createDataChannel("",{reliable:!1}),r.onicecandidate=function(e){e.candidate&&$.grepSDP("a="+e.candidate.candidate,n,t)},r.createOffer((function(e){$.grepSDP(e.sdp,n,t),r.setLocalDescription(e)}),(function(e){O.warn("Offer failed : %s",e),t($.updateLocalIP("FIND_UNSUPPORTED"))}))}else O.warn("IP Address find not supported on this device"),t($.updateLocalIP("FIND_UNSUPPORTED"))}catch(e){O.warn("Error finding local ip address : %s",e),t($.updateLocalIP("ERROR"))}})):(O.warn("Window not found, cannot calculate local ip"),Promise.resolve($.updateLocalIP("NO_WINDOW")))}static parseUrl(t){const e=t.match(/^(https?\:)\/\/(([^:\/?#]*)(?:\:([0-9]+))?)([\/]{0,1}[^?#]*)(\?[^#]*|)(#.*|)$/);return e&&{href:t,protocol:e[1],host:e[2],hostname:e[3],port:e[4],pathname:e[5],search:e[6],hash:e[7]}}static updateLocalIP(t){return $.LOCAL_IP=t,$.LOCAL_IP}static grepSDP(t,e,r){t.split("\r\n").forEach((function(t){if(~t.indexOf("a=candidate")){const n=t.split(" "),s=n[4];"host"===n[7]&&$.updateAddressList(s,e,r)}else if(~t.indexOf("c=")){const n=t.split(" ")[2];$.updateAddressList(n,e,r)}}))}static updateAddressList(t,e,r){if(t in e)return;e[t]=!0;const n=Object.keys(e).filter((function(t){return e[t]}));if(n&&1==n.length)r($.updateLocalIP(n[0]));else{const t=n.sort().join(",");O.warn("Multiple addresses found, returning sorted join : %s",t),r($.updateLocalIP(t))}}}class X{currentIp="UNSET";constructor(){$.findLocalIp(!1).then((t=>{O.info("Setting local IP to %s",t),this.currentIp=t})).catch((t=>{O.warn("Unable to set current IP - leaving as UNSET : %s",t)}))}ready(){return"UNSET"!==this.currentIp}currentLocalIpAddress(){return this.currentIp}}class q{fixed;constructor(t){this.fixed=t}currentLocalIpAddress(){return this.fixed}}class Y extends i{_val=[];constructor(){super()}_write(t,e,r){t&&this._val.push(t),r()}get value(){return Buffer.concat(this._val)}}class Q extends a{_object;constructor(t,e={}){super(t instanceof Buffer||"string"==typeof t?e:{objectMode:!0}),this._object=t}_read(){this.push(this._object),this._object=null}}class tt{constructor(){}static readableToBufferSync(t){const e=[];let r=t.read();for(;r;)e.push(r),r=t.read();return Buffer.concat(e)}static async webReadableStreamToBuffer(t){const e=[],r=new WritableStream({write:async(t,r)=>("string"==typeof t?L.stringToUint8Array(t):e.push(t),null),abort(t){N.throwFormattedErr("StringWebWritableStream failure : %s",t)}},{highWaterMark:3,size:()=>1});return await t.pipeTo(r),Buffer.concat(e)}static async webReadableStreamToString(t){return(await tt.webReadableStreamToBuffer(t)).toString()}static stringToReadable(t){return new a({read(){this.push(t),this.push(null)}})}static stringToWebReadableStream(t){return new ReadableStream({start:e=>(t&&e.enqueue(t),e.close(),null)},{highWaterMark:t?t.length:null})}static anyToStringReadable(t){return null==t?tt.stringToReadable(null):tt.stringToReadable(L.safeString(t))}}class et extends i{_val="";constructor(){super()}_write(t,e,r){this._val+=t?t.toString():"",r()}get value(){return this._val}}class rt{static GOOGLE_VERIFY_URL="https://www.google.com/recaptcha/api/siteverify?secret={{KEY}}&response={{TOKEN}}";static async verifyRecaptchaToken(t,e,r=l){O.debug("Verifying recaptcha token : %s",e);let n=null;if(!L.safeString(e))return O.warn("Recaptcha validation error, no token passed : %s",e),n;O.info("Validating Recaptcha via Google API : %s",e);let s=rt.GOOGLE_VERIFY_URL;s=s.split("{{KEY}}").join(t),s=s.split("{{TOKEN}}").join(e);try{const t=await r(s),e=await t.json();n=e&&e.success}catch(t){O.error("Failed to read from google : %s",t),n=!1}return n}}class nt{accountSid;authToken;outBoundNumber;static TWILLIO_BASE_API_URL="https://api.twilio.com/2010-04-01";constructor(t,e,r){this.accountSid=t,this.authToken=e,this.outBoundNumber=r,w.notNullOrUndefined(t,"accountSid"),w.notNullOrUndefined(e,"authToken"),w.notNullOrUndefined(r,"outBoundNumber"),w.true(nt.isValidE164Number(r),"outBoundNumber invalid format")}static async sendMessageDirect(t,e,r,n,s){const o=new nt(t,e,r);return await o.sendMessage(n,s)}static generateTwilioBasicAuth(t,e){return"Basic "+I.generateBase64VersionOfString(t+":"+e)}async sendMessage(t,e){const r=[];if(w.notNullOrUndefined(t,"recipientPhoneNumbers"),w.notNullOrUndefined(L.trimToNull(e),"message"),w.true(t.length>0,"recipientPhoneNumbers non-empty"),t.forEach((t=>{w.true(nt.isValidE164Number(t),t+" is not valid")})),t&&t.length>0&&L.trimToNull(e)){O.info("Sending %s to %j",e,t);for(let n=0;n<t.length;n++){const s=t[n];if(O.info("To: %s",s),!nt.isValidE164Number(s))throw new Error("number must be E164 format!");const o="Body="+encodeURIComponent(e)+"&From="+encodeURIComponent(this.outBoundNumber)+"&To="+encodeURIComponent(s),i={method:"post",headers:{authorization:nt.generateTwilioBasicAuth(this.accountSid,this.authToken),"Content-Type":"application/x-www-form-urlencoded"},body:o},a=await l(nt.TWILLIO_BASE_API_URL+"/Accounts/"+this.accountSid+"/Messages.json",i),c=await a.json();O.debug("TwilioRatchet: For %s got %j",s,c),r.push(c)}}else O.warn("Not sending empty message / empty recipients");return r}static isValidE164Number(t){return/^\+?[1-9]\d{1,14}$/.test(t)}}class st{static keysOnly(t){return{transform:(e,r,n)=>r?t.transform(e,r,n):e}}static valuesOnly(t){return{transform:(e,r,n)=>r?e:t.transform(e,r,n)}}static stringReplaceTransform(t,e){return{transform:(r,n,s)=>r==t?e:r}}static stripStringTransform(t){return{transform:(e,r,n)=>e==t?null:e}}static retainAll(t){return{transform:(e,r,n)=>-1==t.indexOf(e)?null:e}}static removeAll(t){return{transform:(e,r,n)=>t.indexOf(e)>-1?null:e}}static snakeToCamelCase(){return{transform(t,e,r){let n=t;return"string"==typeof t&&(n=t.replace(/_([a-z0-9])/gi,(function(t,e){return e.toUpperCase()}))),n}}}static stringToNumber(){return{transform(t,e,r){let n=t;if("string"==typeof t){const e=T.safeNumber(t);null!==e&&(n=e)}return n}}}static camelToSnakeCase(){return{transform(t,e,r){let n=t;return"string"==typeof t&&(n=t.replace(/\.?([A-Z]+)/g,(function(t,e){return"_"+e.toLowerCase()})).replace(/^_/,"")),n}}}static concatenateToNewField(t,e,r=!0){return{transform(n,s,o){if("object"==typeof n){let s="";e.forEach((t=>{if(null!=s){const e=n[t];s=null==e&&r?null:null==e?s:s+String(e)}})),null!=s&&(n[t]=s,e.forEach((t=>delete n[t])))}return n}}}static numberToBool(t){return{transform:(e,r,n)=>("object"==typeof e&&t.forEach((t=>{const r=e[t];if("number"==typeof r){const n=0!=r;e[t]=n}})),e)}}static boolToNumber(t){return{transform:(e,r,n)=>("object"==typeof e&&t.forEach((t=>{const r=e[t];if("boolean"==typeof r){const n=r?1:0;e[t]=n}})),e)}}static makeDuplicateField(t,e){return{transform(r,n,s){if("object"==typeof r){const n=r[t];null!=n&&(r[e]=n)}return r}}}static addField(t,e){return{transform:(r,n,s)=>("object"==typeof r&&(r[t]=e),r)}}static reformatDateFields(t,e,n){return{transform:(s,o,i)=>("object"==typeof s&&t.forEach((t=>{const o=s[t];if(null!=o)try{const i=r.fromFormat(o,e).toFormat(n);s[t]=i}catch(t){O.warn("Failed to reparse date %s in format %s : %s",o,e,t)}})),s)}}}class ot{static transform(t,e=[]){return ot.transformGeneric(t,e,!1,null)}static transformGeneric(t,e=[],r,n){let s=null;const o=typeof t;switch(o){case"undefined":case"symbol":case"function":s=t;break;case"number":case"string":case"boolean":s=ot.applyTransformToPrimitive(t,e,r,n);break;case"object":s=ot.applyTransformToObject(t,e,r,n);break;default:throw new Error("Unrecognized type "+o)}return s}static applyTransformToObject(t,e=[],r,n=null){O.silly("Tranform: %j, %s, %j",t,r,n);let s=null;return null!=t&&(Array.isArray(t)?(s=[],t.forEach((n=>{const o=ot.transformGeneric(n,e,r,t);null!=o&&s.push(o)}))):(s={},Object.keys(t).forEach((r=>{const n=t[r],o=ot.applyTransformToPrimitive(r,e,!0,t);if(null!=o){let r=ot.transformGeneric(n,e,!1,t);r=ot.applyTransformToPrimitive(r,e,!1,t),null!=r&&(s[o]=r)}})),s=ot.applyTransformToPrimitive(s,e,!1,t))),s}static applyTransformToPrimitive(t,e=[],r,n){let s=t;return e.forEach((t=>{s=null==s?null:t.transform(s,r,n)})),s}}!function(t){t.Success="Success",t.RolledBack="RolledBack",t.RollbackFailed="RollbackFailed"}(h||(h={}));class it{static async execute(t,e,r){w.notNullOrUndefined(t,"steps"),w.notNullOrUndefined(e,"initialContext"),w.true(t.length>0,"steps may not be empty");const n=Object.assign({},r||{});n.stepLogLevel=n.stepLogLevel||c.info;const s={finalContext:e,finalState:null},o=t.map(((t,e)=>t.name||"Step "+e));O.info("Beginning transaction of %d steps",t.length);let i=0;do{O.logByLevel(n.stepLogLevel,"Processing step %d of %d (%s)",i+1,t.length,o[i]);try{await t[i].execute(s.finalContext,i),i++}catch(t){O.error("Failure detected on step %d : %s : %s : Rolling back",i,o[i],t,t),s.error=t,s.errorStep=i}}while(!s.error&&i<t.length);if(s.error)do{O.logByLevel(n.stepLogLevel,"Rolling back step %d of %d (%s)",i+1,t.length,o[i]);try{t[i].rollback?await t[i].rollback(s.finalContext,i):O.info("Skipping - no rollback defined")}catch(t){O.error("Very bad - rollback code failed on step %d : %s : Aborting in invalid state: %s",i,o[i],t,t),s.rollbackError=t,s.rollbackErrorStep=i}i--}while(i>=0);if(s.finalState=s.rollbackError?h.RollbackFailed:s.error?h.RolledBack:h.Success,O.info("Transaction completed with status : %s",s.finalState),n?.executeAfterRollback&&s.finalState!==h.Success)try{O.info("Applying executeAfterRollback"),await n.executeAfterRollback(s)}catch(t){O.error("Very bad - failure in executeAfterRollback : %s",t,t)}if(n?.executeAfterRollbackFailure&&s.finalState!==h.Success)try{O.info("Applying executeAfterRollbackFailure"),await n.executeAfterRollbackFailure(s)}catch(t){O.error("Very bad - failure in executeAfterRollbackFailure : %s",t,t)}return s}}export{A as ArrayRatchet,I as Base64Ratchet,E as BooleanRatchet,X as BrowserLocalIpProvider,Y as BufferWritable,st as BuiltInTransforms,m as ClassicSingleLineLogMessageFormatter,C as CompositeLastSuccessProvider,B as DateRatchet,P as DurationRatchet,F as EnumRatchet,N as ErrorRatchet,D as EsmRatchet,g as ExpiredJwtHandling,U as ExpiringObject,j as ExpiringObjectConfig,q as FixedLocalIpProvider,k as GeolocationRatchet,V as GlobalRatchet,rt as GoogleRecaptchaRatchet,x as Histogram,v as JwtRatchet,G as KeyValue,Z as LogMessageBuilder,f as LogMessageFormatType,O as Logger,S as LoggerInstance,c as LoggerLevelName,u as LoggerOutputFunction,d as LoggerRingBuffer,p as LoggerUtil,R as MapRatchet,Q as MultiStream,$ as NetworkRatchet,z as No,y as NoneLogMessageFormatter,T as NumberRatchet,W as PromiseRatchet,M as Ratchet2d,_ as RatchetInfo,w as RequireRatchet,J as StopWatch,tt as StreamRatchet,L as StringRatchet,et as StringWritable,b as StructuredJsonLogMessageFormatter,H as TimeZoneRatchet,K as TimeoutToken,h as TransactionFinalState,it as TransactionRatchet,ot as TransformRatchet,nt as TwilioRatchet};
1
+ import t from"util";import e from"jsonwebtoken";import{DateTime as r}from"luxon";import{set as n}from"lodash-es";import{$enum as s}from"ts-enum-util";import o from"url";import{Writable as i,Readable as a}from"stream";import l from"cross-fetch";var c,u,f,g,h;!function(t){t.error="error",t.warn="warn",t.info="info",t.verbose="verbose",t.debug="debug",t.silly="silly"}(c||(c={}));class d{_lastLogMessage={messageSource:"No message yet",timestamp:(new Date).getTime(),lvl:c.info};_buffer=[];_bufferIdx=0;_lastSnapshotIdx=0;_bufferSize;constructor(t){if(!t)throw new Error("Cannot create ring buffer of size 0");this._bufferSize=t}get currentIndex(){return this._bufferIdx}get lastSnapshotIdx(){return this._lastSnapshotIdx}set bufferSize(t){if(!t)throw new Error("Cannot create ring buffer of size 0");this._bufferSize=t,this.clearRingBuffer()}getMessages(t=null,e=!1,r=!1){let n=null;if(this._bufferIdx<this._bufferSize){const e=null==t?0:t;n=this._buffer.slice(e,this._bufferIdx)}else{n=[];const e=this._bufferIdx-this._bufferSize;for(let r=t?Math.max(t,e):e;r<this._bufferIdx;r++)n.push(this._buffer[r%this._bufferSize])}return e&&this.clearRingBuffer(),r&&(n=n.reverse()),n}takeSnapshot(){const t=Math.max(0,this._bufferIdx-this._bufferSize),e={messages:this.getMessages(this._lastSnapshotIdx),logMessagesTruncated:Math.max(0,t-this._lastSnapshotIdx)};return this._lastSnapshotIdx=this._bufferIdx,e}getLastLogMessage(){return Object.assign({},this._lastLogMessage)}clearRingBuffer(){this._buffer=[],this._bufferIdx=0,this._lastSnapshotIdx=0}addToRingBuffer(t){this._lastLogMessage=t,this._buffer[this._bufferIdx%this._bufferSize]=t,this._bufferIdx++}}!function(t){t.Console="Console",t.ConsoleNoDebug="ConsoleNoDebug",t.StdOut="StdOut"}(u||(u={}));class p{static LOG_LEVELS_IN_ORDER=[c.error,c.warn,c.info,c.verbose,c.debug,c.silly];static handlerFunctionMap(t=u.Console){const e=new Map;if(t===u.StdOut){if(!process?.stdout?.write)throw new Error("Cannot use standard out - process.stdout.write not found");const t=(t,e)=>process.stdout.write(t,"utf-8",e);e.set(c.error,t),e.set(c.warn,t),e.set(c.info,t),e.set(c.verbose,t),e.set(c.debug,t),e.set(c.silly,t)}else e.set(c.error,console.error),e.set(c.warn,console.warn),e.set(c.info,console.info),e.set(c.verbose,t===u.ConsoleNoDebug?console.log:console.debug),e.set(c.debug,t===u.ConsoleNoDebug?console.log:console.debug),e.set(c.silly,t===u.ConsoleNoDebug?console.log:console.debug);return e}static defaultHandlerFunction(){return console.info}static levelIsEnabled(t,e){const r=p.LOG_LEVELS_IN_ORDER.indexOf(t),n=p.LOG_LEVELS_IN_ORDER.indexOf(e);return r>-1&&n>-1&&n>=r}}!function(t){t.ClassicSingleLine="ClassicSingleLine",t.StructuredJson="StructuredJson",t.None="None"}(f||(f={}));class m{formatMessage(e,r){let n=null;return e&&(n="",n+=r.options.trace?r.options.trace+" ":"",n+="["+e.lvl+"] ",n+=t.format(e.messageSource,...e.subsVars)),n}}class y{formatMessage(t,e){return null}}class b{formatMessage(e,r){let n=null;if(e){const s=Object.assign({},r.options.globalVars||{},e.params||{});s.msg=t.format(e.messageSource,...e.subsVars),s.utcDateTime=new Date(e.timestamp).toISOString(),s.logLevel=e.lvl,r.options.trace&&(s.trace=r.options.trace),s.logName=r.loggerInstanceName,s.logId=r.loggerInstanceId,n=JSON.stringify(s)+"\n"}return n}}class w{static isNullOrUndefined(t){return null==t}static notNullOrUndefined(t,e="object"){if(w.isNullOrUndefined(t))throw new Error(e+" may not be null or undefined")}static notNullUndefinedOrOnlyWhitespaceString(t,e="string"){if(w.isNullOrUndefined(t)||""===t.trim())throw new Error(e+" may not be null or undefined or only whitespace string")}static notNullUndefinedOrEmptyArray(t,e="string"){if(w.isNullOrUndefined(t)||0===t.length)throw new Error(e+" may not be null or undefined or an empty array")}static equal(t,e,r="Values must be equal"){if(t!==e)throw new Error(r)}static true(t,e="Value must be true"){w.equal(t,!0,e)}static noNullOrUndefinedValuesInArray(t,e=null,r=null){if(w.notNullOrUndefined(t,"Source array may not be null"),null!==e&&t.length!==e)throw new Error(`Expected array of length ${e} but was ${t.length} ${r}`);for(let e=0;e<t.length;e++)if(w.isNullOrUndefined(t[e]))throw new Error(`Array index ${e} was null or undefined ${r}`)}static noNullOrUndefinedValuesInRestArgs(t,...e){if(w.notNullOrUndefined(e,"Source array may not be null"),null!==t&&e.length!==t)throw new Error(`Expected array of length ${t} but was ${e.length}`);for(let t=0;t<e.length;t++)if(w.isNullOrUndefined(e[t]))throw new Error(`Array index ${t} was null or undefined`)}static constructorArgumentsMatchLengthAndAreNonNull(){const t=Array.from(arguments),e=this.constructor.length;return w.noNullOrUndefinedValuesInArray(t,e)}}class L{static RFC_3986_RESERVED=["!","*","'","(",")",";",":","@","&","=","+","$",",","/","?","#","[","]","%"];static stringToUint8Array(t){return t?(new TextEncoder).encode(t):null}static uint8ArrayToString(t){return t?(new TextDecoder).decode(t):null}static attemptJsonParse(t){let e=null;if(L.trimToNull(t))try{e=JSON.parse(t)}catch(t){e=null}return e}static canParseAsJson(t){return!!L.attemptJsonParse(t)}static allUnique(t){let e=!0;if(t){const r=new Set;for(let n=0;n<t.length&&e;n++){const s=t.charAt(n);e=!r.has(s),r.add(s)}}return e}static allPermutationsOfLength(t,e){const r=[];if(t>0&&e&&e.length>0){w.true(L.allUnique(e),"Alphabet must be unique");const n=1===t?[""]:L.allPermutationsOfLength(t-1,e);for(let t=0;t<e.length;t++)n.forEach((n=>r.push(e.charAt(t)+n)))}return r}static createType4Guid(){return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,(function(t){const e=16*Math.random()|0;return("x"==t?e:3&e|8).toString(16)}))}static createRandomHexString(t=10){let e="";for(let r=0;r<t;r++)e+=Math.floor(16*Math.random()).toString(16);return e}static canonicalize(t){let e=t?t.toLowerCase():"";return e=e.replace(" ","-"),L.RFC_3986_RESERVED.forEach((t=>{e=e.replace(t,"")})),e}static formatBytes(t,e=2){if(0==t)return"0 Bytes";const r=e||2,n=Math.floor(Math.log(t)/Math.log(1024));return parseFloat((t/Math.pow(1024,n)).toFixed(r))+" "+["Bytes","KB","MB","GB","TB","PB","EB","ZB","YB"][n]}static safeString(t){let e=null;if(null!=t){e="string"==typeof t?t:String(t)}return e}static stringContainsOnlyNumbers(t){return/^[0-9]+$/.test(t)}static stringContainsOnlyAlphanumeric(t){return/^[0-9a-zA-Z]+$/.test(t)}static stringContainsOnlyHex(t){return/^[0-9a-fA-F]+$/.test(t)}static stringContainsOnly(t,e){const r=t||"",n=e||"";let s=!0;for(let t=0;t<r.length&&s;t++)s=n.indexOf(r.charAt(t))>=0;return s}static obscure(t,e=2,r=2){if(!t)return t;const n=t.length;let s=e,o=r;for(;n>0&&n<s+o+1;)s=Math.max(0,s-1),o=Math.max(0,o-1);const i=n-(s+o);let a="";a+=t.substring(0,s);for(let t=0;t<i;t++)a+="*";return a+=t.substring(n-o),a}static leadingZeros(t,e){const r="00000000000000000000000000000000000000000000000000";let n=!1,s=String(t);if(s.startsWith("-")&&(n=!0,s=s.substring(1)),e>50)throw new Error("Cannot format number that large");let o=(r+s).slice(-1*e);return n&&(o="-"+o),o}static trimToEmpty(t){return(t?L.safeString(t):"").trim()}static trimToNull(t){const e=L.trimToEmpty(t);return e.length>0?e:null}static trimAllStringPropertiesToNullInPlace(t){return L.trimAllStringPropertiesInPlace(t,!1)}static trimAllStringPropertiesToEmptyInPlace(t){return L.trimAllStringPropertiesInPlace(t,!0)}static trimAllStringPropertiesInPlace(t,e){return Object.keys(t).forEach((r=>{const n=t[r];null!=n&&"string"==typeof n&&(t[r]=e?L.trimToEmpty(t[r]):L.trimToNull(t[r]))})),t}static stripNonNumeric(t){let e=t;if(null!=t&&!L.stringContainsOnlyNumbers(t)){e="";for(let r=0;r<t.length;r++){const n=t.charAt(r);(L.stringContainsOnlyNumbers(n)||0===r&&"-"===n)&&(e+=n)}}return e}static csvSafe(t){let e=L.trimToEmpty(L.safeString(t));return e.split('"').join('\\"'),-1===e.indexOf(",")&&-1===e.indexOf('"')&&-1===e.indexOf("'")||(e='"'+e+'"'),e}static stripNonAscii(t){return[...t].reduce(((t,e)=>e.charCodeAt(0)>127?t:t+e))}}class S{loggerInstanceName;_loggerMeta;_ringBuffer;_formatter;_level;_handlerFunctionMap;_options;constructor(t="default",e){this.loggerInstanceName=t,this.options=e}addPreProcessor(t){return t&&(this._options.preProcessors=this._options.preProcessors||[],this._options.preProcessors.push(t)),Object.assign([],this._options.preProcessors)}get ringBuffer(){return this._ringBuffer}dumpConfigurationIntoLog(){this.error("ERROR enabled"),this.warn("WARN enabled"),this.info("INFO enabled"),this.verbose("VERBOSE enabled"),this.debug("DEBUG enabled"),this.silly("SILLY enabled")}dumpOptionsIntoLog(){if(this.info("Options: %j",this.options),this?.options?.preProcessors?.length){const t=this.options.preProcessors.map((t=>L.trimToNull(t.label())||"Unlabelled"));this.info("Preprocessors: %j",t)}}changeRingBufferSize(t){this._ringBuffer=null,t&&(this._ringBuffer=new d(t),this._options.ringBufferSize=t)}updateTracePrefix(t){this._options.trace=t}get options(){return Object.assign({},this._options)}set options(t){switch(this._options=Object.assign({},t),this._options.ringBufferSize&&(this._ringBuffer=new d(this._options.ringBufferSize)),this._options.formatType){case f.None:this._formatter=new y;break;case f.StructuredJson:this._formatter=new b;break;default:this._formatter=new m}this._level=this._options.initialLevel,this._handlerFunctionMap=p.handlerFunctionMap(this._options.outputFunction);const e=this._loggerMeta?this._loggerMeta.loggerInstanceId:null;this._loggerMeta={options:this._options,loggerInstanceName:this.loggerInstanceName,loggerInstanceId:e||L.createRandomHexString(8)}}get level(){return this._level}set level(t){if(!t)throw new Error("Cannot set level to null/undefined");this._level=t}consoleLogPassThru(t,...e){if(p.levelIsEnabled(t,this._level)){let r=this._options.trace||"";r+="["+t+"] ",e.unshift(r);(this._handlerFunctionMap.get(t)||p.defaultHandlerFunction)(...e)}}createLogMessage(t,e,r,...n){return{lvl:t,timestamp:Date.now(),messageSource:r,subsVars:n,params:e}}formatMessage(t){return t?this._formatter.formatMessage(t,this._loggerMeta):null}formatMessages(t){return(t||[]).map((t=>this.formatMessage(t))).filter((t=>!!t))}recordMessageBuilder(t){return this.recordMessage(t.toMessage())}recordMessage(t){let e=null;if(p.levelIsEnabled(t.lvl,this._level)){let r=Object.assign({},t);if(this._options.preProcessors?.length)for(let t=0;t<this._options.preProcessors.length;t++)r=this._options.preProcessors[t].process(r);if(e=this.formatMessage(r),e){(this._handlerFunctionMap.get(r.lvl)||p.defaultHandlerFunction)(e),this._ringBuffer&&this._ringBuffer.addToRingBuffer(r)}}return e}error(t,...e){const r=this.createLogMessage(c.error,{},t,...e);return this.recordMessage(r)}errorP(...t){this.consoleLogPassThru(c.error,...t)}warn(t,...e){const r=this.createLogMessage(c.warn,{},t,...e);return this.recordMessage(r)}warnP(...t){this.consoleLogPassThru(c.warn,...t)}info(t,...e){const r=this.createLogMessage(c.info,{},t,...e);return this.recordMessage(r)}infoP(...t){this.consoleLogPassThru(c.info,...t)}verbose(t,...e){const r=this.createLogMessage(c.verbose,{},t,...e);return this.recordMessage(r)}verboseP(...t){this.consoleLogPassThru(c.verbose,...t)}debug(t,...e){const r=this.createLogMessage(c.debug,{},t,...e);return this.recordMessage(r)}debugP(...t){this.consoleLogPassThru(c.debug,...t)}silly(t,...e){const r=this.createLogMessage(c.silly,{},t,...e);return this.recordMessage(r)}sillyP(...t){this.consoleLogPassThru(c.silly,...t)}logByLevel(t,e,...r){const n=this.createLogMessage(t,{},e,...r);this.recordMessage(n)}importMessages(t,e="",r=!0){const n=e||"";t&&t.length>0&&(this.silly("Received import data : %d msgs",t.length),t.forEach((t=>{if(t.messageSource){let e=n;if(r){e+=" ("+String(new Date).substring(15,24)+") : ",e+=t.messageSource}this.logByLevel(t.lvl,e)}})))}}class O{static LOGGER_INSTANCES=new Map;static DEFAULT_OPTIONS={initialLevel:c.info,formatType:f.ClassicSingleLine,trace:null,globalVars:{},outputFunction:u.Console,ringBufferSize:0,preProcessors:[]};static applyDefaultsToOptions(t){const e=t||{};return e.initialLevel=e.initialLevel??O.DEFAULT_OPTIONS.initialLevel,e.formatType=e.formatType??O.DEFAULT_OPTIONS.formatType,e.trace=e.trace??O.DEFAULT_OPTIONS.trace,e.globalVars=e.globalVars??O.DEFAULT_OPTIONS.globalVars,e.outputFunction=e.outputFunction??O.DEFAULT_OPTIONS.outputFunction,e.ringBufferSize=e.ringBufferSize??O.DEFAULT_OPTIONS.ringBufferSize,e}static changeDefaultOptions(t,e){if(!t||!t.initialLevel||!t.formatType)throw new Error("Default options must be non-null, and provide initial level and format type");O.DEFAULT_OPTIONS=Object.assign({},t),e&&Array.from(O.LOGGER_INSTANCES.values()).forEach((e=>e.options=t))}static getLogger(t="default",e){let r=O.LOGGER_INSTANCES.get(t);if(!r){const n=O.applyDefaultsToOptions(e);r=new S(t,n),O.LOGGER_INSTANCES.set(t,r)}return r}static recordMessageBuilder(t){return O.getLogger().recordMessageBuilder(t)}static recordMessage(t){return O.getLogger().recordMessage(t)}static formatMessages(t){return O.getLogger().formatMessages(t)}static updateTracePrefix(t){return O.getLogger().updateTracePrefix(t)}static changeRingBufferSize(t){return O.getLogger().changeRingBufferSize(t)}static getRingBuffer(){return O.getLogger().ringBuffer}static dumpConfigurationIntoLog(){return O.getLogger().dumpConfigurationIntoLog()}static dumpOptionsIntoLog(){return O.getLogger().dumpOptionsIntoLog()}static getLevel(){return O.getLogger().level}static setLevel(t){O.getLogger().level=t}static getOptions(){return O.getLogger().options}static getMessages(t=null,e=!1,r=!1){const n=O.getLogger().ringBuffer;return n?n.getMessages(t,e,r):null}static consoleLogPassThru(t,...e){return O.getLogger().consoleLogPassThru(t,...e)}static error(t,...e){return O.getLogger().error(t,...e)}static errorP(...t){return O.getLogger().errorP(...t)}static warn(t,...e){return O.getLogger().warn(t,...e)}static warnP(...t){return O.getLogger().warnP(...t)}static info(t,...e){return O.getLogger().info(t,...e)}static infoP(...t){return O.getLogger().infoP(...t)}static verbose(t,...e){return O.getLogger().verbose(t,...e)}static verboseP(...t){return O.getLogger().verboseP(...t)}static debug(t,...e){return O.getLogger().debug(t,...e)}static debugP(...t){return O.getLogger().debugP(...t)}static silly(t,...e){return O.getLogger().silly(t,...e)}static sillyP(...t){return O.getLogger().sillyP(...t)}static takeSnapshot(){const t=O.getLogger().ringBuffer;return t?t.takeSnapshot():null}static logByLevel(t,e,...r){return O.getLogger().logByLevel(t,e,...r)}static importMessages(t,e="",r=!0){return O.getLogger().importMessages(t,e,r)}static getLastLogMessage(){const t=O.getLogger().ringBuffer;return t?t.getLastLogMessage():null}}class T{static MAX_LEADING_ZEROS_FORMAT_LENGTH=1e3;static toFixedDecimalNumber(t,e){const r=T.safeNumber(t);return null==r?r:T.safeNumber(r.toFixed(e))}static leadingZeros(t,e){const r=String(t);if(r.length<e){let t="0000";if(e>T.MAX_LEADING_ZEROS_FORMAT_LENGTH)throw"Cannot format number that large (max length is "+T.MAX_LEADING_ZEROS_FORMAT_LENGTH+")";for(;t.length<e;)t+=t;return(t+r).slice(-1*e)}return r}static between(t,e,r){const n=T.safeNumber(t),s=T.safeNumber(e),o=T.safeNumber(r);return n>=s&&n<=o||n>=o&&n<=s}static safeNumber(t,e=null,r){let n;if(null!=t){const r=typeof t;"number"==r?n=t:"string"==r?n=0===t.trim().length?e:Number.parseFloat(t):(O.warn("Value is of type %s, returning default",r),n=e),isNaN(n)&&(O.debug("Parsed string to NaN - using NaN value from param"),n=e)}else n=void 0===r?null:r?e:t;return n}static numberCSVToList(t){let e=null;return t&&(e=t.split(",").map((t=>T.safeNumber(t.trim()))),e=e.filter((t=>"number"==typeof t&&!isNaN(t)))),e}static fitToWindow(t,e,r){let n=t;if(null===t||null===e||null===r||e<0||r<0||t<0)throw new Error("All values must be non-null and larger than 0");const s=Math.min(e,r),o=Math.max(e,r),i=o-s;if(o===s)n=o;else{for(;n<s;)n+=i;for(;n>o;)n-=i}return n}static groupNumbersIntoContiguousRanges(t,e=3){w.notNullOrUndefined(t);const r=Object.assign([],t);r.sort(((t,e)=>t-e));const n=[],s=[];let o=0;for(let t=1;t<r.length;t++)if(r[t]===r[t-1]+1);else{if(o===t-1)n.push(r[t-1]);else{if(t-o<e)for(let e=o;e<t;e++)n.push(r[e]);else s.push({min:r[o],max:r[t-1]})}o=t}return{singles:n,ranges:s}}static distributeItemsEvenly(t,e){w.notNullOrUndefined(t,"items"),w.notNullOrUndefined(e,"buckets"),w.true(t>0&&t===Math.floor(t),"Items integer larger than 0"),w.true(e>0&&e===Math.floor(e),"Buckets integer larger than 0");const r=e/t,n=[];for(let t=0;t<e;t++)n.push(0);let s=0,o=t;for(;o>0;)n[Math.floor(s)%e]++,o--,s+=r;return n}static createRange(t,e,r=1){const n=[];let s=t;for(;s<e;)n.push(s),s+=r;return n}}class E{static allTrue(t,e=!1){let r=null;return r=!!t&&(t.length>0?t.reduce(((t,e)=>t&&e),!0):e),r}static anyTrue(t,e=!1){let r=null;return r=!!t&&(t.length>0?t.reduce(((t,e)=>t||e),!1):e),r}static parseBool(t){return!0===t||null!=t&&"string"==typeof t&&"true"===t.toLowerCase()}static intToBool(t){return null!=t&&0!==T.safeNumber(t)}static boolToInt(t){return E.parseBool(t)?1:0}}class M{constructor(){}static translateToOriginVector(t){let e=null;return M.validPoints(t)&&(e={x:null,y:null},t.forEach((t=>{e.x=null===e.x||t.x<e.x?t.x:e.x,e.y=null===e.y||t.y<e.y?t.y:e.y})),e.x*=-1,e.y*=-1),e}static minimalContainingPlane(t){let e=null;return M.validPoints(t)&&(e={width:0,height:0},t.forEach((t=>{e.width=Math.max(e.width,t.x+1),e.height=Math.max(e.height,t.y+1)}))),e}static scaleVector(t,e){let r=null;return M.validPlane(t)&&M.validPlane(e)&&(r={x:e.width/t.width,y:e.height/t.height}),r}static samePoint(t,e){return!!t&&!!e&&t.x===e.x&&t.y===e.y}static atLeastOneDimensionShared(t,e){return!(!t||!e||t.x!==e.x&&t.y!==e.y)}static validPlane(t){return!!t&&!!t.height&&!!t.width}static validLine(t){return!!t&&M.validPoint(t.p1)&&M.validPoint(t.p2)&&!M.samePoint(t.p1,t.p2)}static validLines(t){return!!t&&E.allTrue(t.map((t=>M.validLine(t))))}static validPolyLine(t){return!!t&&t.pts?.length>1&&E.allTrue(t.pts.map((t=>M.validPoint(t))))}static polyLineToLines(t){let e=null;if(M.validPolyLine(t)){e=[];for(let r=1;r<t.pts.length;r++)e.push({p1:t.pts[r-1],p2:t.pts[r]})}return e}static lastPointOnPolyLine(t){return M.validPolyLine(t)?t.pts[t.pts.length-1]:null}static lineToPolyLine(t){return M.validLine(t)?{pts:[t.p1,t.p2]}:null}static linesToPolyLines(t){let e=null;if(M.validLines(t)){e=[];let r=M.lineToPolyLine(t[0]);for(let n=1;n<t.length;n++)M.samePoint(M.lastPointOnPolyLine(r),t[n].p1)?r.pts.push(t[n].p2):(e.push(r),r=M.lineToPolyLine(t[n]));e.push(r)}return e}static validPoint(t){return!!t&&null!=t.x&&null!=t.x&&null!==t.y&&void 0!==t.y}static validPoints(t){return!!t&&E.allTrue(t.map((t=>M.validPoint(t))),!1)}static planeContainsPoint(t,e){return M.validPlane(e)&&M.validPoint(t)&&t.x>=0&&t.x<e.width&&t.y>=0&&t.y<e.height}static planeContainsPoints(t,e){return t&&t.map((t=>M.planeContainsPoint(t,e))).reduce(((t,e)=>t&&e),!0)}static linesToPoints(t){let e=null;return M.validLines(t)&&(e=t.map((t=>[t.p1,t.p2])).flat()),e}static pointsToLines(t){let e=null;if(M.validPoints(t)){if(t.length%2!=0)throw new Error("Cannot convert non-even array of points into lines");e=[];for(let r=0;r<t.length;r+=2)e.push({p1:t[r],p2:t[r+1]})}return e}static rotateRightAboutOrigin90Degrees(t,e=1){let r=null,n={x:0,y:0};if(M.validPoints(t)){r=Object.assign([],t),n=M.translateToOriginVector(r),r=M.translate(r,n);let e=M.minimalContainingPlane(r);r=M.xToY(r),e={width:e.height,height:e.width},n={x:-1*n.y,y:-1*n.x},r=M.mirrorPointsOnPlane(r,e,!0,!1),r=M.translate(r,n)}const s=e>4?e%4:e;return s>1&&(r=M.rotateRightAboutOrigin90Degrees(r,s-1)),r}static planeContainsLines(t,e){return t&&M.planeContainsPoints(t.map((t=>[t.p1,t.p2])).flat(),e)}static planeContainsPolyLine(t,e){return M.planeContainsLines(M.polyLineToLines(t),e)}static planeContainsLine(t,e){return M.validPlane(e)&&M.validLine(t)&&M.planeContainsPoint(t.p1,e)&&M.planeContainsPoint(t.p2,e)}static xToY(t){let e=null;return M.validPoints(t)&&(e=t.map((t=>({x:t.y,y:t.x})))),e}static translate(t,e){let r=null;return M.validPoints(t)&&M.validPoint(e)&&(r=t.map((t=>({x:t.x+e.x,y:t.y+e.y})))),r}static mirrorPointsOnPlane(t,e,r,n){let s=null;return M.validPoints(t)&&M.validPlane(e)&&(s=r||n?t.map((t=>({x:r?e.width-1-t.x:t.x,y:n?e.height-1-t.y:t.y}))):Object.assign([],t)),s}static transformPointsToNewPlane(t,e,r){let n=null;if(M.validPoints(t)&&M.validPlane(e)&&M.validPlane(r)){const s=M.scaleVector(e,r);n=t.map((t=>({x:t.x*s.x,y:t.y*s.y}))),n=M.mirrorPointsOnPlane(n,r,r.rightToLeft!==e.rightToLeft,r.topToBottom!==e.topToBottom)}return n}static transformPointToNewPlane(t,e,r){const n=M.transformPointsToNewPlane([t],e,r);return 1===n.length?n[0]:null}static transformLines(t,e,r){return null}static fitCurve(t,e){if(t.sort(((t,e)=>t.x-e.x)),e<=t[0].x)return t[0].y;if(e>=t[t.length-1].x)return t[t.length-1].y;{let r=0;for(;t[r+1].x<e;)r++;const n=t[r+1].x-t[r].x,s=t[r+1].y-t[r].y,o=(e-t[r].x)/n*s;return t[r].y+o}}}class _{constructor(){}static buildInformation(){return{version:"164",hash:"454a0441bf65aa19342e68b99b02f9270d049cab",branch:"alpha-2023-07-03-4",tag:"alpha-2023-07-03-4",timeBuiltISO:"2023-07-03T10:15:40-0700",notes:"No notes"}}}class x{entries=[];update(t,e=1){if(t){const r=this.entries.find((e=>e.item===t));r?r.count+=e:this.entries.push({item:t,count:e})}}sort(){this.entries.sort(((t,e)=>{let r=e.count-t.count;return 0===r&&(r=String(e.item).localeCompare(String(t.item))),r}))}sortKeys(){this.entries.sort(((t,e)=>String(e.item).localeCompare(String(t.item))))}reverse(){this.entries.reverse()}getEntries(){return this.entries}getTotalCount(){let t=0;return this.entries.forEach((e=>t+=e.count)),t}countForValue(t){const e=this.entries.find((e=>e.item===t));return e?e.count:0}percentForValue(t){const e=this.getTotalCount();return 0===e?0:this.countForValue(t)/e}}!function(t){t[t.RETURN_NULL=0]="RETURN_NULL",t[t.THROW_EXCEPTION=1]="THROW_EXCEPTION",t[t.ADD_FLAG=2]="ADD_FLAG"}(g||(g={}));class P{static formatMsDuration(t,e=!1){const r=Math.floor(t%1e3),n=Math.floor(t/1e3)%60,s=Math.floor(t/6e4)%60,o=Math.floor(t/36e5)%24,i=Math.floor(t/864e5),a=T.leadingZeros;let l=a(o,2)+"h"+a(s,2)+"m";return l+=e?a(n,2)+"."+a(r,3)+"s":a(n,2)+"s",i>0&&(l=i+"d"+l),l}static colonFormatMsDuration(t,e=!1){const r=t%1e3,n=Math.floor(t/1e3)%60,s=Math.floor(t/6e4)%60,o=Math.floor(t/36e5),i=T.leadingZeros;let a=i(o,2)+":"+i(s,2)+":";return a+=e?i(n,2)+"."+i(r,3):i(n,2),a}static daysBetween(t,e){return r.fromJSDate(t).diff(r.fromJSDate(e)).days}static createSteps(t,e,n,s,o){let i=r.fromMillis(t).setZone(n);const a=r.fromMillis(e),l=[];for(;i<a;)l.push(i.toFormat(s)),i=i.plus(o);return l}}class v{_encryptionKeyPromise;_decryptKeysPromise;_jtiGenerator;_decryptOnlyKeyUseLogLevel;_parseFailureLogLevel;static EXPIRED_FLAG_NAME="__jwtServiceExpiredFlag";constructor(t,e,r=L.createType4Guid,n=c.info,s=c.debug){this._encryptionKeyPromise=t,this._decryptKeysPromise=e,this._jtiGenerator=r,this._decryptOnlyKeyUseLogLevel=n,this._parseFailureLogLevel=s,w.notNullOrUndefined(t,"encryptionKeyPromise")}get encryptionKeyPromise(){return this._encryptionKeyPromise}get decryptKeysPromise(){return this._decryptKeysPromise}get jtiGenerator(){return this._jtiGenerator}get decryptOnlyKeyUseLogLevel(){return this._decryptOnlyKeyUseLogLevel}get parseFailureLogLevel(){return this._parseFailureLogLevel}static hasExpiredFlag(t){return t&&!0===t[v.EXPIRED_FLAG_NAME]}static async invalidSafeDecode(t,r,n=c.silly){let s=null;try{s=e.verify(t,r,{ignoreExpiration:!0})}catch(t){O.logByLevel(n,"Caught %s - ignoring",t)}return s}static async secondsRemainingUntilExpiration(t){let e=null;if(L.trimToNull(t)){const r=await v.decodeTokenNoVerify(t),n=Math.floor(Date.now()/1e3);if(r.exp){const t=r.exp>100*n?Math.floor(r.exp/1e3):r.exp;e=Math.max(0,t-n)}}return e}static async msRemainingUntilExpiration(t){const e=await v.secondsRemainingUntilExpiration(t);let r=null;return null!=e&&(r=1e3*e),r}async decodeToken(t,e=g.RETURN_NULL){const r=await this.encryptionKeyArray();let n=Object.assign([],r);this.decryptKeysPromise&&(n=n.concat(await this.decryptKeysPromise));const s=[];let o=null;for(let e=0;e<n.length&&!o;e++){s.push(L.obscure(n[e],1,1));const i=e===n.length-1&&this.parseFailureLogLevel?this.parseFailureLogLevel:c.silly;o=await v.invalidSafeDecode(t,n[e],i),o&&e>=r.length&&O.logByLevel(this.decryptOnlyKeyUseLogLevel,"Used old key to decode token : %s",L.obscure(n[e],2))}if(o){const t=Math.floor(Date.now()/1e3),r=o?.exp&&o.exp>100*t?Math.floor(o.exp/1e3):o?.exp,n=o?.nbf&&o.nbf>100*t?Math.floor(o.nbf/1e3):o?.nbf;if(r&&t>=r||n&&t<=n){const n=t-r;switch(O.debug("JWT token expired or before NBF : on %d, %s ago",o.exp,P.formatMsDuration(1e3*n)),e){case g.THROW_EXCEPTION:throw new Error("JWT Token was expired");case g.ADD_FLAG:o[v.EXPIRED_FLAG_NAME]=!0;break;default:o=null}}}else O.warn("Unable to parse a payload (Tried %j) from : %s",s,t);return o}async encryptionKeyArray(){const t=await this.encryptionKeyPromise,e=Array.isArray(t)?t:[t];if(e.length<1)throw new Error("Cannot create JwtRatchet with empty encryption key set");return e}async selectRandomEncryptionKey(){const t=await this.encryptionKeyArray();return t[Math.floor(Math.random()*t.length)]}async createTokenString(t,r,n){const s=L.trimToNull(n)?L.trimToNull(n):await this.selectRandomEncryptionKey();if(w.notNullOrUndefined(t,"payload"),t.jti=this.jtiGenerator?this.jtiGenerator():null,r){const e=Math.floor(Date.now()/1e3)+r;O.debug("Forcing expiration to %d",e),t.exp=e}return e.sign(t,s)}async refreshJWTString(t,e,r){const n=e?g.ADD_FLAG:g.THROW_EXCEPTION,s=await this.decodeToken(t,n),o=s.exp&&s.iat?s.exp-s.iat:null,i=r||o;v.removeJwtFields(s),v.removeExpiredFlag(s);return await this.createTokenString(s,i)}static decodeTokenNoVerify(t){return e.decode(t)}static removeJwtFields(t){t&&["iss","sub","aud","exp","nbf","iat","jti"].forEach((e=>{delete t[e]}))}static removeExpiredFlag(t){t&&delete t[v.EXPIRED_FLAG_NAME]}}class N{static safeStringifyErr(t,e=!0){let r="ERR WAS NULL";if(t)if(t.message)r=t.message;else try{r=JSON.stringify(t)}catch(e){O.error("Failed to json stringify"),r=String(t)}return e&&O.error("%s",r,t),r}static asErr(t){let e=null;return t&&(e=t instanceof Error?t:new Error("Force-Cast to error : "+String(t))),e}static fErr(e,...r){const n=t.format(e,...r);return new Error(n)}static throwFormattedErr(t,...e){throw N.fErr(t,...e)}}class R{static expandNestedKeys(t){const e={};return Object.keys(t).forEach((r=>{n(e,r,t[r])})),e}static mapByUniqueProperty(t,e){if(!t||!e)throw new Error("Neither input nor propName can be null");const r=new Map;return t.forEach((t=>{const n=t?t[e]:null;if(null==n)throw new Error("No value for "+e+" found in "+JSON.stringify(t));if(r.has(n))throw new Error("Multiple values found for "+n);r.set(n,t)})),r}static groupByProperty(t,e){if(!t||!e)throw new Error("Neither input nor propName can be null");const r=new Map;return t.forEach((t=>{const n=t?t[e]:null;if(null==n)throw N.fErr("No value for %s found in %j",e,t);r.has(n)||r.set(n,[]),r.get(n).push(t)})),r}static findValue(t,e){return e&&0!=e.length?t?R.findValue(t[e[0]],e.slice(1)):null:t}static findValueDotPath(t,e){return e&&0!=e.length?t?R.findValue(t,e.split(".")):null:t}static simpleDeepCompare(t,e){return null==t&&null==e||null!=t&&null!=e&&JSON.stringify(t)==JSON.stringify(e)}static toKeyValueList(t){const e=[];for(const r of Object.keys(t))e.push({key:r,value:t[r]});return e}static fromKeyValueList(t){const e={};return t.forEach((t=>e[t.key]=t.value)),e}static cleanup(t,e=!1,r=!0,n=!0,s=!0){if(null==t||"object"!=typeof t)return t;const o=JSON.parse(JSON.stringify(t));return Object.keys(o).forEach((t=>{if(o[t]&&"object"==typeof o[t])if(Array.isArray(o[t]))for(let e=0;e<o[t].length;e++)o[t][e]=R.cleanup(o[t][e]);else o[t]=R.cleanup(o[t]);else void 0===o[t]&&n||null===o[t]&&r||""===o[t]&&s||0===o[t]&&e?delete o[t]:o[t]=o[t]})),o}static extractValueFromMapIgnoreCase(t,e){let r=null;if(t&&e){const n=e.toLowerCase();Object.keys(t).forEach((s=>{if(s.toLowerCase()===n){const n=t[s];r&&O.warn("Multiple entries found for %s (replacing %s with %s",e,r,n),r=n}}))}return r}static safeCallFunction(t,e){let r=!1;if(t&&t[e]&&"function"==typeof t[e])try{t[e](),r=!0}catch(r){O.warn("Error calling %s on %s : %s",e,t,r,r)}return r}static caseInsensitiveAccess(t,e){let r=null;if(t&&e&&(r=t[e],!r)){const n=Object.keys(t).find((t=>t.toLowerCase()===e.toLowerCase()));n&&(r=t[n])}return r}}class A{static wrapElementsInArray(t){return t.map((t=>[t]))}static compareTwoArrays(t,e,r){t.sort(r),e.sort(r);let n=0,s=0;const o={matching:[],setOneOnly:[],setTwoOnly:[]};for(;n<t.length&&s<e.length;){const i=t[n],a=e[s],l=r(i,a);0===l?(o.matching.push(i),n++,s++):l<0?(o.setOneOnly.push(i),n++):(o.setTwoOnly.push(a),s++)}return n<t.length-1&&(o.setOneOnly=o.setOneOnly.concat(t.slice(n))),s<e.length-1&&(o.setTwoOnly=o.setTwoOnly.concat(e.slice(s))),o}static extractSubarrayFromSortedByNumberField(t,e,r,n){if(!t||0===t.length)return t;let s=null===r?0:A.findSplit(t,e,r)||0;const o=null===n?t.length:A.findSplit(t,e,n),i=R.findValueDotPath(t[s],e);return s===t.length-1&&i<r?[]:(s<t.length&&s<o&&i<r&&s++,t.slice(s,o+1))}static findSplit(t,e,r){if(w.notNullOrUndefined(t),w.notNullOrUndefined(e),w.notNullOrUndefined(r),0===t.length||R.findValueDotPath(t[0],e)>r)return null;let n=0,s=t.length,o=null;for(;null===o;){const i=Math.floor((n+s)/2),a=R.findValueDotPath(t[i],e);n===s||n===s-1?o=n:a<=r?n=i:s=i}return o}}class I{static safeObjectToBase64JSON(t){return t?I.generateBase64VersionOfString(JSON.stringify(t)):null}static safeBase64JSONParse(t){let e={};try{t&&(e=JSON.parse(I.base64StringToString(t)))}catch(r){O.warn("Error parsing b64/json : %s as json, got %s",t,r,r),e={}}return e}static generateBase64VersionOfBlob(t){return new Promise((function(e,r){if(t&&0!=t.size){const r=new FileReader;r.onloadend=function(){e(r.result.toString())},r.readAsDataURL(t)}else r("Wont convert null or non-blob or empty blob")}))}static generateBase64VersionOfString(t){return I.generateBase64VersionOfBuffer(Buffer.from(t))}static generateBase64VersionOfBuffer(t){return t.toString("base64")}static base64StringToBuffer(t){return Buffer.from(t,"base64")}static base64StringToString(t,e="utf8"){return Buffer.from(t,"base64").toString(e)}}class C{sources;mostRecent;constructor(t,e=!0){if(!t||0==t.length)throw Error("Cannot create composite provider with null/empty sources");this.sources=t,this.mostRecent=e}lastSuccess(){let t=null;return this.sources.forEach((e=>{const r=e.lastSuccess();null!=r&&(t=null==t||r>t&&this.mostRecent||r<t&&!this.mostRecent?r:t)})),t}}class B{static COMMON_US_DATE_FORMAT="MM/dd/yyyy";static DEFAULT_DATE_FORMAT="yyyy-MM-dd";static FULL_DATE_FORMAT="yyyy-MM-dd_HH_mm_ss";static PACIFIC_TIME_ZONE="America/Los_Angeles";static UTC_TIME_ZONE="etc/UTC";static formatFullDate(t){return r.fromJSDate(t).toFormat(B.FULL_DATE_FORMAT)}static formatDefaultDateOnly(t){return r.fromJSDate(t).toFormat(B.DEFAULT_DATE_FORMAT)}static parseDefaultDate(t){return r.fromFormat(t,B.DEFAULT_DATE_FORMAT).toJSDate()}static parseCommonUsDate(t){let e=null;if(t){let n=B.COMMON_US_DATE_FORMAT;2===t.indexOf("-")&&(n=n.split("/").join("-")),e=r.fromFormat(t,n).toJSDate()}return e}}class F{static listEnumKeys(t){return s(t).getValues()}static keyToEnum(t,e,r=!1){const n=s(t);let o=null;if(e&&(o=n.asValueOrDefault(e,null),!o&&!r)){const r=F.listEnumKeys(t).find((t=>t.toUpperCase()===e.toUpperCase()));r&&(o=n.asValueOrDefault(r,null))}return o}static parseCsvToEnumArray(t,e){return L.trimToEmpty(e).split(",").map((t=>t.trim())).map((e=>F.keyToEnum(t,e))).filter((t=>!!t))}}class D{static fetchDirName(t){if(!t)throw new Error("Need to provide root (should be import.meta.url)");return o.fileURLToPath(new URL(".",t))}static fetchFileName(t){if(!t)throw new Error("Need to provide root (should be import.meta.url)");return o.fileURLToPath(t)}}class U{_config;_cacheObject;_lastUpdatedEpochMS;_timeRemainingMS;constructor(t){this._config=Object.assign({},this.defaultConfig(),t||{}),this._config.overrideTimeRemainingMS&&this._config.timeToLiveMS&&N.throwFormattedErr("Cannot define both time to live and overrideTimeRemainingMS"),this._config.overrideTimeRemainingMS||this._config.timeToLiveMS||N.throwFormattedErr("Must define exactly one of timeToLiveMS or overrideTimeRemainingMS"),this._config.initialValue&&this.update(this._config.initialValue),this._timeRemainingMS=this._config.overrideTimeRemainingMS||this.defaultTimeRemainingMS}defaultConfig(){return{generator:null,initialValue:null,logLevel:c.debug,overrideTimeRemainingMS:null,timeToLiveMS:6e4}}async defaultTimeRemainingMS(t){let e=0;if(t){const r=(new Date).getTime()-t;e=Math.max(0,this._config.timeToLiveMS-r)}return e}update(t,e=!1){this._cacheObject=t,e||(this._lastUpdatedEpochMS=(new Date).getTime()),O.logByLevel(this._config.logLevel,"Updated cache value to %j",t)}async fetchCacheObjectTimeRemainingMS(){return this._timeRemainingMS(this._lastUpdatedEpochMS)}async fetch(){if(await this._timeRemainingMS(this._lastUpdatedEpochMS)||(this._cacheObject=null,this._lastUpdatedEpochMS=null),!this._cacheObject&&this._config.generator){const t=await this._config.generator();O.logByLevel(this._config.logLevel,"Auto call to generator returned %j",t),this.update(t)}return this._cacheObject}}class j{timeToLiveMS;generator;initialValue;logLevel;overrideTimeRemainingMS}class k{constructor(){}static distanceBetweenLocations(t,e,r,n,s="M"){const o=s?s.toUpperCase():"";if(-1===["M","K","N","F","E"].indexOf(o))throw new Error("Invalid unit");if(t==r&&e==n)return 0;{const s=Math.PI*t/180,i=Math.PI*r/180,a=e-n,l=Math.PI*a/180;let c=Math.sin(s)*Math.sin(i)+Math.cos(s)*Math.cos(i)*Math.cos(l);return c>1&&(c=1),c=Math.acos(c),c=180*c/Math.PI,c=60*c*1.1515,"F"===o&&(c*=5280),"K"===o&&(c*=1.609344),"E"===o&&(c*=1609.344),"N"===o&&(c*=.8684),c}}static distanceBetweenRatchetGeoLocations(t,e,r="M"){return k.distanceBetweenLocations(t.lat,t.lng,e.lat,e.lng,r)}static degreeOfLatLngInMiles(t=0){const e=t*Math.PI/180,r=Math.cos(e);return T.safeNumber((69.172*r).toFixed(4))}static milesInDegLatLng(t,e=0){w.notNullOrUndefined(t),w.true(t>=0);return t/k.degreeOfLatLngInMiles(e)}static centerOfBounds(t){return w.notNullOrUndefined(t),{lat:(t.extent.lat+t.origin.lat)/2,lng:(t.extent.lng+t.origin.lng)/2}}static calculateSplits(t,e,r){w.notNullOrUndefined(t),w.notNullOrUndefined(e),w.notNullOrUndefined(r),t.sort(((t,e)=>t.origin[r]-e.origin[r]));const n=t.map((t=>k.centerOfBounds(t))).map((t=>t[r])),s=[];for(let t=1;t<n.length;t++){const r=n[t]-n[t-1];s.length<e?(s.push({idx:t,size:r}),s.sort(((t,e)=>t.size-e.size))):r>s[0].size?(s[0]={idx:t,size:r},s.sort(((t,e)=>t.size-e.size))):O.silly("Skipping, size : %d, %j",r,s)}return O.info("Splits at : %j",s),s.sort(((t,e)=>t.idx-e.idx)),s}static clusterGeoBounds(t,e=2,r=5){let n=null;if(e*r<2&&N.throwFormattedErr("Cannot set slices to less than 2 : %d x %d",e,r),t){n=[];const s=Object.assign([],t);s.sort(((t,e)=>t.origin.lng-e.origin.lng));const o=k.calculateSplits(t,r-1,"lng");o.sort(((t,e)=>t.idx-e.idx));for(let t=0;t<=o.length;t++){const r=0===t?0:o[t-1].idx,i=t===o.length?s.length:o[t].idx,a=s.slice(r,i);a.sort(((t,e)=>t.origin.lat-e.origin.lat));const l=k.calculateSplits(a,e-1,"lat");for(let t=0;t<=l.length;t++){const e=0==t?0:l[t-1].idx,r=t===l.length?a.length:l[t].idx,s=a.slice(e,r);n.push(k.combineBounds(s))}}O.info("New bounds : %j",n)}return n}static canonicalizeBounds(t,e=!1){w.notNullOrUndefined(t,"RatchetLocationBounds");const r=Math.min(t.extent.lat,t.origin.lat),n=Math.max(t.extent.lat,t.origin.lat),s=Math.min(t.extent.lng,t.origin.lng),o=Math.max(t.extent.lng,t.origin.lng);if(r<0&&n>0||r>0&&n<0||(r<0&&n>0||r>0&&n<0)){if(e)return t;throw new Error("Cannot canonicalize, bounds crosses over boundary")}return{origin:{lat:r,lng:s},extent:{lat:n,lng:o}}}static combineBounds(t){let e=null;return t&&t.length>0&&(e={origin:{lat:t.map((t=>t.origin.lat)).reduce(((t,e)=>Math.min(t,e))),lng:t.map((t=>t.origin.lng)).reduce(((t,e)=>Math.min(t,e)))},extent:{lat:t.map((t=>t.extent.lat)).reduce(((t,e)=>Math.max(t,e))),lng:t.map((t=>t.extent.lng)).reduce(((t,e)=>Math.max(t,e)))}}),e}static roundLocation(t,e){return{lat:T.safeNumber(t.lat.toFixed(e)),lng:T.safeNumber(t.lng.toFixed(e))}}static locationToBounds(t,e){const r=k.milesInDegLatLng(e,t.lat);return{origin:{lat:t.lat-r,lng:t.lng-r},extent:{lat:t.lat+r,lng:t.lng+r}}}static sameLocation(t,e){return!!t&&!!e&&t.lat===e.lat&&t.lng===e.lng}static pointInBounds(t,e){return!!t&&!!e&&T.between(t.lat,e.origin.lat,e.extent.lat)&&T.between(t.lng,e.origin.lng,e.extent.lng)}static pointInAnyBound(t,e,r=10){let n=!1;if(e.length>r){const r=k.buildRatchetLocationBoundsMap(e);n=k.pointInRatchetLocationBoundsMap(t,r)}else for(let r=0;r<e.length&&!n;r++)n=k.pointInBounds(t,e[r]);return n}static pointInRatchetLocationBoundsMap(t,e){let r=!1;const n=k.findRatchetLocationBoundsMapEntry(t,e);if(n){const e=n.bounds;for(let n=0;n<e.length&&!r;n++)r=k.pointInBounds(t,e[n])}return r}static findRatchetLocationBoundsMapEntry(t,e){let r=null;if(t.lat>=e.latOffset&&t.lat<=e.maxLat&&t.lng>=e.lngOffset&&t.lng<=e.maxLng){const n=Math.trunc(t.lat)-e.latOffset,s=Math.trunc(t.lng)-e.lngOffset;r=e.mapping[n][s]}return r}static buildRatchetLocationBoundsMap(t){const e=t.map((t=>t.origin.lat)).reduce(((t,e)=>Math.min(t,e))),r=t.map((t=>t.origin.lng)).reduce(((t,e)=>Math.min(t,e))),n=t.map((t=>t.extent.lat)).reduce(((t,e)=>Math.max(t,e))),s=t.map((t=>t.extent.lng)).reduce(((t,e)=>Math.max(t,e))),o=Math.trunc(e)-1,i=Math.trunc(r)-1,a=Math.trunc(n)-o+1,l=Math.trunc(s)-i+1,c=[];for(let t=0;t<a;t++){const e=[];for(let r=0;r<l;r++)e.push({lat:o+t,lng:i+r,bounds:[]});c.push(e)}return t.forEach((t=>{for(let e=Math.trunc(t.origin.lat);e<=Math.trunc(t.extent.lat);e++){const r=c[e-o];for(let e=Math.trunc(t.origin.lng);e<=Math.trunc(t.extent.lng);e++){r[e-i].bounds.push(t)}}})),{latOffset:o,lngOffset:i,maxLat:o+a,maxLng:i+l,mapping:c}}}class V{constructor(){}static fetchGlobalRecord(t){let e=null;if(process?.env?(O.silly("Using process.env as global"),e=process.env):global?.process?.env?(O.silly("Using global.process.env as global"),e=global.process.env):global&&(O.silly("Using process.env as global"),e=global),!e){if(!t)throw N.fErr("Could not find process.env OR global in scope");O.silly("Returning null as global"),e=null}return e}static fetchGlobalVar(t){w.notNullOrUndefined(t,"envVar");return V.fetchGlobalRecord()[t]}static setGlobalVar(t,e){w.notNullOrUndefined(t,"envVar"),w.notNullOrUndefined(e,"value");V.fetchGlobalRecord()[t]=e}}class G{key;value}class z{static op(...t){}}class K{title;timeoutMS;__timeoutTokenFlagField=!0;constructor(t,e){this.title=t,this.timeoutMS=e}writeToLog(t=c.warn){O.logByLevel(t,"Timed out after %d ms waiting for results of %s",this.timeoutMS,this.title)}static isTimeoutToken(t){return!!t&&!!t.__timeoutTokenFlagField}}class J{label;starts=new Map;ends=new Map;createTime=Date.now();constructor(t=L.createRandomHexString(4)){this.label=t}start(t){w.notNullUndefinedOrOnlyWhitespaceString(t,"name");const e=Date.now();return this.starts.set(L.trimToNull(t),e),e}stop(t){w.notNullUndefinedOrOnlyWhitespaceString(t,"name");const e=Date.now();return this.ends.set(L.trimToNull(t),e),e}reset(t){w.notNullUndefinedOrOnlyWhitespaceString(t,"name"),this.starts.delete(L.trimToNull(t)),this.ends.delete(L.trimToNull(t))}hasTimer(t){return w.notNullUndefinedOrOnlyWhitespaceString(t,"name"),this.starts.has(t)}log(t,e,r=c.info){O.logByLevel(r,this.dump(t,e))}logExpected(t,e,r,n=c.info){O.logByLevel(n,this.dumpExpected(t,e,r))}dump(t,e){let r=this.label+" ";const n=L.trimToNull(t);if(n&&!this.hasTimer(n))r+="No such timer : "+n;else{const s=t?this.starts.get(n):this.createTime,o=t?this.ends.get(n):Date.now();r+=(n||"Default")+" ",s&&o?r+="completed in "+P.formatMsDuration(o-s,!e):s&&(r+="running for "+P.formatMsDuration(Date.now()-s,!e))}return r}dumpExpected(t,e,r){let n=this.label+" ";const s=L.trimToNull(e);if(s&&!this.hasTimer(s))n+="No such timer : "+s;else if(!t||t<=0)n+="Cannot generate output for 0 percent complete";else if(t>1)n+="Cannot generate output for percent > 1";else{n+=(s||"Default")+" ";const o=e?this.starts.get(s):this.createTime,i=e?this.ends.get(s):Date.now();if(o&&i)n+="completed in "+P.formatMsDuration(i-o,!r);else if(o){const e=Date.now()-o,s=e/t-e;n+="running for "+P.formatMsDuration(e,!r)+" approx "+P.formatMsDuration(s,!r)+" remaining"}}return n}elapsedMS(t){let e=null;const r=L.trimToNull(t);if(r&&!this.hasTimer(r))e=null;else{const n=t?this.starts.get(r):this.createTime,s=t?this.ends.get(r):Date.now();n&&s?e=s-n:n&&(e=Date.now()-n)}return e}}class W{static resolveOnEvent(t,e,r=[],n=null){return t&&e&&0!==e.length&&t.on||Promise.reject("Cannot continue - missing source object or name, or the object is not an event source"),new Promise(((s,o)=>{e.forEach((e=>{t.on(e,(()=>{s(n)}))})),r&&r.forEach((e=>{t.on(e,(t=>{o(t)}))}))}))}static timeout(t,e,r){return Promise.race([t,W.createTimeoutPromise(e,r)])}static createTimeoutPromise(t,e){return new Promise(((r,n)=>{const s=setTimeout((()=>{clearTimeout(s);const n=new K(t,e);r(n)}),e)}))}static async wait(t){await W.createTimeoutPromise("Wait "+t,t),O.silly("Finished wait of %d ms",t)}static dumpResult(t,e=!1){O.info("Success, result was : \n\n%s\n\n",JSON.stringify(t)),process.exit(0)}static dumpError(t,e=!1){O.warn("Failure, err was : \n\n%s\n\n -- \n\n%s\n\n",JSON.stringify(t),String(t)),console.trace(),process.exit(1)}static logErrorAndReturnNull(t,e=!1){return O.warn("Failure, err was : \n\n%s\n\n -- \n\n%s\n\n",JSON.stringify(t),String(t)),null}static runPromiseAndDump(t){t.then(W.dumpResult).catch(W.dumpError)}static async waitFor(t,e,r,n,s="waitFor",o=0){if(null==e||r<50||n<1||o<0||"function"!=typeof t)return O.warn("%s: Invalid configuration for waitFor - exiting immediately",s),O.warn("ExpectedValue : %s ; interval: %d ; maxCycles: %d ; test : %s",e,r,n,typeof t),!1;let i=null;try{i=t(o)}catch(t){return O.warn("%s: Caught error while waiting, giving up",s),!1}return null===i?(O.debug("%s:CurVal was null - aborting",s),!1):i==e?(O.debug("%s:Found expected value",s),!0):o>n?(O.debug("%s:Exceeded max cycles, giving up",s),!1):(O.debug("%s : value not reached yet, waiting (count = %d of %d)",s,o,n),await W.wait(r),W.waitFor(t,e,r,n,s,o+1))}static async runBoundedParallel(t,e,r,n=1,s=c.debug){const o=new J;let i=[],a=e;O.logByLevel(s,"Processing %d total elements %d at a time",e.length,n);const l=r||this;let u=0;const f=a.length;for(;a.length>0;){const e=a.slice(0,Math.min(a.length,n));a=a.slice(e.length);const r=e.map((e=>t.apply(l,e))),c=await Promise.all(r);u+=r.length,i=i.concat(c);const g=u/f;O.logByLevel(s,"%d elements remain : %s",a.length,o.dumpExpected(g))}return o.log(),i}static async runBoundedParallelSingleParam(t,e,r,n=1,s=c.debug){const o=A.wrapElementsInArray(e);return W.runBoundedParallel(t,o,r,n,s)}static async asyncForEachSerial(t,e){for(let r=0;r<t.length;r++)await e(t[r],r,t)}static async asyncForEachParallel(t,e){const r=[];for(let n=0;n<t.length;n++)r.push(e(t[n],n,t));await Promise.all(r)}constructor(){}}class H{static PACIFIC=new H("America/Los_Angeles");timezone;constructor(t){if(!t)throw"Timezone cannot be null";this.timezone=t}currentHour(){return r.local().setZone(this.timezone).hour}toEpochSeconds(t){return Math.round(t.toMillis()/1e3)}startOfTodayEpochSeconds(){return this.toEpochSeconds(r.local().setZone(this.timezone).set({hour:0,minute:0,second:0,millisecond:0}))}startOfMatchingDayEpochSeconds(t){return this.toEpochSeconds(r.fromMillis(t).set({hour:0,minute:0,second:0,millisecond:0}))}startOfMatchingDayEpochMS(t){return 1e3*this.startOfMatchingDayEpochSeconds(t)}startOfCurrentHourEpochSeconds(){return this.toEpochSeconds(r.local().setZone(this.timezone).set({minute:0,second:0,millisecond:0}))}startOfCurrentMinuteEpochSeconds(){return this.toEpochSeconds(r.local().setZone(this.timezone).set({second:0,millisecond:0}))}startOfCurrentSecondEpochSeconds(){return this.toEpochSeconds(r.local().setZone(this.timezone).set({millisecond:0}))}startOfTodayEpochMS(){return r.local().setZone(this.timezone).set({hour:0,minute:0,second:0,millisecond:0}).toMillis()}dailySlotCount(t){return Math.ceil(864e5/t)}currentTimeSlotIdx(t){if(t<1)throw new Error("Cannot process with slot less than one ms wide");const e=this.startOfTodayEpochMS(),r=(new Date).getTime()-e;return Math.floor(r/t)}matchingTimeSlotIdx(t,e){if(e<1)throw new Error("Cannot process with slot less than one ms wide");const r=t-this.startOfMatchingDayEpochMS(t);return Math.floor(r/e)}startOfCurrentSlotEpochMS(t){return this.startOfTodayEpochMS()+this.currentTimeSlotIdx(t)*t}startOfMatchingSlotEpochMS(t,e){return this.startOfMatchingDayEpochMS(t)+this.matchingTimeSlotIdx(t,e)*e}}class Z{wrapped;constructor(t,e){if(!t)throw Error("Cannot set level to null/undefined");this.wrapped={lvl:t,timestamp:Date.now(),messageSource:e}}clone(){const t=new Z(this.wrapped.lvl,this.wrapped.messageSource);return t.wrapped=Object.assign({},this.wrapped),t}level(t){if(!t)throw Error("Cannot set level to null/undefined");return this.wrapped.lvl=t,this}timestamp(t){if(!t)throw Error("Cannot set timestamp to null/undefined");return this.wrapped.timestamp=t,this}messageSource(t){return this.wrapped.messageSource=t,this}subVars(t){return this.wrapped.subsVars=t||[],this}params(t){return this.wrapped.params=t||{},this}p(t,e){return this.wrapped.params=this.wrapped.params||{},this.wrapped.params[t]=e,this}toMessage(){return Object.assign({},this.wrapped)}}class ${static LOCAL_IP=null;static findLocalIp(t=!0){return O.info("Attempting to find local IP (V 2)"),$.LOCAL_IP&&t?Promise.resolve($.LOCAL_IP):"undefined"!=typeof window?new Promise((function(t,e){try{const e=window.RTCPeerConnection||window.webkitRTCPeerConnection||window.mozRTCPeerConnection;if(e){const r=new e({iceServers:[]}),n=Object.create(null);n["0.0.0.0"]=!1,r.createDataChannel("",{reliable:!1}),r.onicecandidate=function(e){e.candidate&&$.grepSDP("a="+e.candidate.candidate,n,t)},r.createOffer((function(e){$.grepSDP(e.sdp,n,t),r.setLocalDescription(e)}),(function(e){O.warn("Offer failed : %s",e),t($.updateLocalIP("FIND_UNSUPPORTED"))}))}else O.warn("IP Address find not supported on this device"),t($.updateLocalIP("FIND_UNSUPPORTED"))}catch(e){O.warn("Error finding local ip address : %s",e),t($.updateLocalIP("ERROR"))}})):(O.warn("Window not found, cannot calculate local ip"),Promise.resolve($.updateLocalIP("NO_WINDOW")))}static parseUrl(t){const e=t.match(/^(https?\:)\/\/(([^:\/?#]*)(?:\:([0-9]+))?)([\/]{0,1}[^?#]*)(\?[^#]*|)(#.*|)$/);return e&&{href:t,protocol:e[1],host:e[2],hostname:e[3],port:e[4],pathname:e[5],search:e[6],hash:e[7]}}static updateLocalIP(t){return $.LOCAL_IP=t,$.LOCAL_IP}static grepSDP(t,e,r){t.split("\r\n").forEach((function(t){if(~t.indexOf("a=candidate")){const n=t.split(" "),s=n[4];"host"===n[7]&&$.updateAddressList(s,e,r)}else if(~t.indexOf("c=")){const n=t.split(" ")[2];$.updateAddressList(n,e,r)}}))}static updateAddressList(t,e,r){if(t in e)return;e[t]=!0;const n=Object.keys(e).filter((function(t){return e[t]}));if(n&&1==n.length)r($.updateLocalIP(n[0]));else{const t=n.sort().join(",");O.warn("Multiple addresses found, returning sorted join : %s",t),r($.updateLocalIP(t))}}}class X{currentIp="UNSET";constructor(){$.findLocalIp(!1).then((t=>{O.info("Setting local IP to %s",t),this.currentIp=t})).catch((t=>{O.warn("Unable to set current IP - leaving as UNSET : %s",t)}))}ready(){return"UNSET"!==this.currentIp}currentLocalIpAddress(){return this.currentIp}}class q{fixed;constructor(t){this.fixed=t}currentLocalIpAddress(){return this.fixed}}class Y extends i{_val=[];constructor(){super()}_write(t,e,r){t&&this._val.push(t),r()}get value(){return Buffer.concat(this._val)}}class Q extends a{_object;constructor(t,e={}){super(t instanceof Buffer||"string"==typeof t?e:{objectMode:!0}),this._object=t}_read(){this.push(this._object),this._object=null}}class tt{constructor(){}static readableToBufferSync(t){const e=[];let r=t.read();for(;r;)e.push(r),r=t.read();return Buffer.concat(e)}static async webReadableStreamToBuffer(t){const e=[],r=new WritableStream({write:async(t,r)=>("string"==typeof t?L.stringToUint8Array(t):e.push(t),null),abort(t){N.throwFormattedErr("StringWebWritableStream failure : %s",t)}},{highWaterMark:3,size:()=>1});return await t.pipeTo(r),Buffer.concat(e)}static async webReadableStreamToString(t){return(await tt.webReadableStreamToBuffer(t)).toString()}static stringToReadable(t){return new a({read(){this.push(t),this.push(null)}})}static stringToWebReadableStream(t){return new ReadableStream({start:e=>(t&&e.enqueue(t),e.close(),null)},{highWaterMark:t?t.length:null})}static anyToStringReadable(t){return null==t?tt.stringToReadable(null):tt.stringToReadable(L.safeString(t))}}class et extends i{_val="";constructor(){super()}_write(t,e,r){this._val+=t?t.toString():"",r()}get value(){return this._val}}class rt{static GOOGLE_VERIFY_URL="https://www.google.com/recaptcha/api/siteverify?secret={{KEY}}&response={{TOKEN}}";static async verifyRecaptchaToken(t,e,r=l){O.debug("Verifying recaptcha token : %s",e);let n=null;if(!L.safeString(e))return O.warn("Recaptcha validation error, no token passed : %s",e),n;O.info("Validating Recaptcha via Google API : %s",e);let s=rt.GOOGLE_VERIFY_URL;s=s.split("{{KEY}}").join(t),s=s.split("{{TOKEN}}").join(e);try{const t=await r(s),e=await t.json();n=e&&e.success}catch(t){O.error("Failed to read from google : %s",t),n=!1}return n}}class nt{accountSid;authToken;outBoundNumber;static TWILLIO_BASE_API_URL="https://api.twilio.com/2010-04-01";constructor(t,e,r){this.accountSid=t,this.authToken=e,this.outBoundNumber=r,w.notNullOrUndefined(t,"accountSid"),w.notNullOrUndefined(e,"authToken"),w.notNullOrUndefined(r,"outBoundNumber"),w.true(nt.isValidE164Number(r),"outBoundNumber invalid format")}static async sendMessageDirect(t,e,r,n,s){const o=new nt(t,e,r);return await o.sendMessage(n,s)}static generateTwilioBasicAuth(t,e){return"Basic "+I.generateBase64VersionOfString(t+":"+e)}async sendMessage(t,e){const r=[];if(w.notNullOrUndefined(t,"recipientPhoneNumbers"),w.notNullOrUndefined(L.trimToNull(e),"message"),w.true(t.length>0,"recipientPhoneNumbers non-empty"),t.forEach((t=>{w.true(nt.isValidE164Number(t),t+" is not valid")})),t&&t.length>0&&L.trimToNull(e)){O.info("Sending %s to %j",e,t);for(let n=0;n<t.length;n++){const s=t[n];if(O.info("To: %s",s),!nt.isValidE164Number(s))throw new Error("number must be E164 format!");const o="Body="+encodeURIComponent(e)+"&From="+encodeURIComponent(this.outBoundNumber)+"&To="+encodeURIComponent(s),i={method:"post",headers:{authorization:nt.generateTwilioBasicAuth(this.accountSid,this.authToken),"Content-Type":"application/x-www-form-urlencoded"},body:o},a=await l(nt.TWILLIO_BASE_API_URL+"/Accounts/"+this.accountSid+"/Messages.json",i),c=await a.json();O.debug("TwilioRatchet: For %s got %j",s,c),r.push(c)}}else O.warn("Not sending empty message / empty recipients");return r}static isValidE164Number(t){return/^\+?[1-9]\d{1,14}$/.test(t)}}class st{static keysOnly(t){return{transform:(e,r,n)=>r?t.transform(e,r,n):e}}static valuesOnly(t){return{transform:(e,r,n)=>r?e:t.transform(e,r,n)}}static stringReplaceTransform(t,e){return{transform:(r,n,s)=>r==t?e:r}}static stripStringTransform(t){return{transform:(e,r,n)=>e==t?null:e}}static retainAll(t){return{transform:(e,r,n)=>-1==t.indexOf(e)?null:e}}static removeAll(t){return{transform:(e,r,n)=>t.indexOf(e)>-1?null:e}}static snakeToCamelCase(){return{transform(t,e,r){let n=t;return"string"==typeof t&&(n=t.replace(/_([a-z0-9])/gi,(function(t,e){return e.toUpperCase()}))),n}}}static stringToNumber(){return{transform(t,e,r){let n=t;if("string"==typeof t){const e=T.safeNumber(t);null!==e&&(n=e)}return n}}}static camelToSnakeCase(){return{transform(t,e,r){let n=t;return"string"==typeof t&&(n=t.replace(/\.?([A-Z]+)/g,(function(t,e){return"_"+e.toLowerCase()})).replace(/^_/,"")),n}}}static concatenateToNewField(t,e,r=!0){return{transform(n,s,o){if("object"==typeof n){let s="";e.forEach((t=>{if(null!=s){const e=n[t];s=null==e&&r?null:null==e?s:s+String(e)}})),null!=s&&(n[t]=s,e.forEach((t=>delete n[t])))}return n}}}static numberToBool(t){return{transform:(e,r,n)=>("object"==typeof e&&t.forEach((t=>{const r=e[t];if("number"==typeof r){const n=0!=r;e[t]=n}})),e)}}static boolToNumber(t){return{transform:(e,r,n)=>("object"==typeof e&&t.forEach((t=>{const r=e[t];if("boolean"==typeof r){const n=r?1:0;e[t]=n}})),e)}}static makeDuplicateField(t,e){return{transform(r,n,s){if("object"==typeof r){const n=r[t];null!=n&&(r[e]=n)}return r}}}static addField(t,e){return{transform:(r,n,s)=>("object"==typeof r&&(r[t]=e),r)}}static reformatDateFields(t,e,n){return{transform:(s,o,i)=>("object"==typeof s&&t.forEach((t=>{const o=s[t];if(null!=o)try{const i=r.fromFormat(o,e).toFormat(n);s[t]=i}catch(t){O.warn("Failed to reparse date %s in format %s : %s",o,e,t)}})),s)}}}class ot{static transform(t,e=[]){return ot.transformGeneric(t,e,!1,null)}static transformGeneric(t,e=[],r,n){let s=null;const o=typeof t;switch(o){case"undefined":case"symbol":case"function":s=t;break;case"number":case"string":case"boolean":s=ot.applyTransformToPrimitive(t,e,r,n);break;case"object":s=ot.applyTransformToObject(t,e,r,n);break;default:throw new Error("Unrecognized type "+o)}return s}static applyTransformToObject(t,e=[],r,n=null){O.silly("Tranform: %j, %s, %j",t,r,n);let s=null;return null!=t&&(Array.isArray(t)?(s=[],t.forEach((n=>{const o=ot.transformGeneric(n,e,r,t);null!=o&&s.push(o)}))):(s={},Object.keys(t).forEach((r=>{const n=t[r],o=ot.applyTransformToPrimitive(r,e,!0,t);if(null!=o){let r=ot.transformGeneric(n,e,!1,t);r=ot.applyTransformToPrimitive(r,e,!1,t),null!=r&&(s[o]=r)}})),s=ot.applyTransformToPrimitive(s,e,!1,t))),s}static applyTransformToPrimitive(t,e=[],r,n){let s=t;return e.forEach((t=>{s=null==s?null:t.transform(s,r,n)})),s}}!function(t){t.Success="Success",t.RolledBack="RolledBack",t.RollbackFailed="RollbackFailed"}(h||(h={}));class it{static async execute(t,e,r){w.notNullOrUndefined(t,"steps"),w.notNullOrUndefined(e,"initialContext"),w.true(t.length>0,"steps may not be empty");const n=Object.assign({},r||{});n.stepLogLevel=n.stepLogLevel||c.info;const s={finalContext:e,finalState:null},o=t.map(((t,e)=>t.name||"Step "+e));O.info("Beginning transaction of %d steps",t.length);let i=0;do{O.logByLevel(n.stepLogLevel,"Processing step %d of %d (%s)",i+1,t.length,o[i]);try{await t[i].execute(s.finalContext,i),i++}catch(t){O.error("Failure detected on step %d : %s : %s : Rolling back",i,o[i],t,t),s.error=t,s.errorStep=i}}while(!s.error&&i<t.length);if(s.error)do{O.logByLevel(n.stepLogLevel,"Rolling back step %d of %d (%s)",i+1,t.length,o[i]);try{t[i].rollback?await t[i].rollback(s.finalContext,i):O.info("Skipping - no rollback defined")}catch(t){O.error("Very bad - rollback code failed on step %d : %s : Aborting in invalid state: %s",i,o[i],t,t),s.rollbackError=t,s.rollbackErrorStep=i}i--}while(i>=0);if(s.finalState=s.rollbackError?h.RollbackFailed:s.error?h.RolledBack:h.Success,O.info("Transaction completed with status : %s",s.finalState),n?.executeAfterRollback&&s.finalState!==h.Success)try{O.info("Applying executeAfterRollback"),await n.executeAfterRollback(s)}catch(t){O.error("Very bad - failure in executeAfterRollback : %s",t,t)}if(n?.executeAfterRollbackFailure&&s.finalState!==h.Success)try{O.info("Applying executeAfterRollbackFailure"),await n.executeAfterRollbackFailure(s)}catch(t){O.error("Very bad - failure in executeAfterRollbackFailure : %s",t,t)}return s}}export{A as ArrayRatchet,I as Base64Ratchet,E as BooleanRatchet,X as BrowserLocalIpProvider,Y as BufferWritable,st as BuiltInTransforms,m as ClassicSingleLineLogMessageFormatter,C as CompositeLastSuccessProvider,B as DateRatchet,P as DurationRatchet,F as EnumRatchet,N as ErrorRatchet,D as EsmRatchet,g as ExpiredJwtHandling,U as ExpiringObject,j as ExpiringObjectConfig,q as FixedLocalIpProvider,k as GeolocationRatchet,V as GlobalRatchet,rt as GoogleRecaptchaRatchet,x as Histogram,v as JwtRatchet,G as KeyValue,Z as LogMessageBuilder,f as LogMessageFormatType,O as Logger,S as LoggerInstance,c as LoggerLevelName,u as LoggerOutputFunction,d as LoggerRingBuffer,p as LoggerUtil,R as MapRatchet,Q as MultiStream,$ as NetworkRatchet,z as No,y as NoneLogMessageFormatter,T as NumberRatchet,W as PromiseRatchet,M as Ratchet2d,_ as RatchetInfo,w as RequireRatchet,J as StopWatch,tt as StreamRatchet,L as StringRatchet,et as StringWritable,b as StructuredJsonLogMessageFormatter,H as TimeZoneRatchet,K as TimeoutToken,h as TransactionFinalState,it as TransactionRatchet,ot as TransformRatchet,nt as TwilioRatchet};
2
2
  //# sourceMappingURL=index.mjs.map
package/lib/index.mjs.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","sources":["../src/logger/logger-level-name.ts","../src/logger/logger-output-function.ts","../src/logger/log-message-format-type.ts","../src/jwt/expired-jwt-handling.ts","../src/tx/transaction-final-state.ts","../src/logger/logger-ring-buffer.ts","../src/logger/logger-util.ts","../src/logger/classic-single-line-log-message-formatter.ts","../src/logger/none-log-message-formatter.ts","../src/logger/structured-json-log-message-formatter.ts","../src/lang/require-ratchet.ts","../src/lang/string-ratchet.ts","../src/logger/logger-instance.ts","../src/logger/logger.ts","../src/lang/number-ratchet.ts","../src/lang/boolean-ratchet.ts","../src/2d/ratchet-2d.ts","../src/build/ratchet-common-info.ts","../src/histogram/histogram.ts","../src/lang/duration-ratchet.ts","../src/jwt/jwt-ratchet.ts","../src/lang/error-ratchet.ts","../src/lang/map-ratchet.ts","../src/lang/array-ratchet.ts","../src/lang/base64-ratchet.ts","../src/lang/composite-last-success-provider.ts","../src/lang/date-ratchet.ts","../src/lang/enum-ratchet.ts","../src/lang/esm-ratchet.ts","../src/lang/expiring-object.ts","../src/lang/geolocation-ratchet.ts","../src/lang/global-ratchet.ts","../src/lang/key-value.ts","../src/lang/no.ts","../src/lang/timeout-token.ts","../src/lang/stop-watch.ts","../src/lang/promise-ratchet.ts","../src/lang/time-zone-ratchet.ts","../src/logger/log-message-builder.ts","../src/network/network-ratchet.ts","../src/network/browser-local-ip-provider.ts","../src/network/fixed-local-ip-provider.ts","../src/stream/buffer-writable.ts","../src/stream/multi-stream.ts","../src/stream/stream-ratchet.ts","../src/stream/string-writable.ts","../src/third-party/google/google-recaptcha-ratchet.ts","../src/third-party/twilio/twilio-ratchet.ts","../src/transform/built-in-transforms.ts","../src/transform/transform-ratchet.ts","../src/tx/transaction-ratchet.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],"names":["LoggerLevelName","LoggerOutputFunction","LogMessageFormatType","ExpiredJwtHandling","TransactionFinalState","LoggerRingBuffer","_lastLogMessage","messageSource","timestamp","Date","getTime","lvl","info","_buffer","_bufferIdx","_lastSnapshotIdx","_bufferSize","constructor","size","Error","this","currentIndex","lastSnapshotIdx","bufferSize","newSize","clearRingBuffer","getMessages","inStartFrom","clear","reverseSort","rval","start","slice","firstIdx","i","Math","max","push","reverse","takeSnapshot","trailingEdge","messages","logMessagesTruncated","getLastLogMessage","Object","assign","addToRingBuffer","newMsg","LoggerUtil","static","error","warn","verbose","debug","silly","outputFn","Console","output","Map","StdOut","process","stdout","write","myStdOut","chunk","cb","set","console","ConsoleNoDebug","log","targetLevel","currentEnabled","idxTarget","LOG_LEVELS_IN_ORDER","indexOf","ClassicSingleLineLogMessageFormatter","formatMessage","msg","meta","tmp","options","trace","util","format","subsVars","NoneLogMessageFormatter","StructuredJsonLogMessageFormatter","globalVars","params","toISOString","loggerInstanceName","loggerInstanceId","JSON","stringify","RequireRatchet","ob","name","isNullOrUndefined","trim","length","ob1","ob2","message","equal","arr","expectedLength","customMsg","notNullOrUndefined","restArgs","args","Array","from","arguments","len","noNullOrUndefinedValuesInArray","StringRatchet","val","TextEncoder","encode","TextDecoder","decode","trimToNull","parse","err","attemptJsonParse","input","check","Set","test","charAt","has","add","alphabet","true","allUnique","step","allPermutationsOfLength","forEach","s","replace","c","r","random","toString","floor","value","toLowerCase","RFC_3986_RESERVED","bytes","decimals","dm","parseFloat","pow","toFixed","String","inVal","validCharsIn","validChars","prefixLength","suffixLength","pl","sl","rem","substring","pad","negative","sVal","startsWith","safeString","x","trimToEmpty","trimAllStringPropertiesInPlace","toEmpty","keys","key","stringContainsOnlyNumbers","split","join","reduce","previousValue","currentValue","charCodeAt","LoggerInstance","_loggerMeta","_ringBuffer","_formatter","_level","_handlerFunctionMap","_options","inOptions","addPreProcessor","proc","preProcessors","ringBuffer","dumpConfigurationIntoLog","dumpOptionsIntoLog","labels","map","p","label","changeRingBufferSize","ringBufferSize","updateTracePrefix","newValue","newOpts","formatType","None","StructuredJson","initialLevel","handlerFunctionMap","outputFunction","oldId","createRandomHexString","level","newLevel","consoleLogPassThru","levelIsEnabled","passThruPrefix","unshift","get","defaultHandlerFunction","createLogMessage","now","formatMessages","msgs","m","filter","recordMessageBuilder","msgBuild","recordMessage","toMessage","inMsg","errorP","warnP","infoP","verboseP","debugP","sillyP","logByLevel","importMessages","prefixIn","addTimestamp","prefix","mOut","Logger","ClassicSingleLine","DEFAULT_OPTIONS","retroactive","LOGGER_INSTANCES","values","li","loggerName","inst","applyDefaultsToOptions","getLogger","buf","NumberRatchet","placesAfterPoint","v","safeNumber","MAX_LEADING_ZEROS_FORMAT_LENGTH","inTest","inP1","inP2","p1","p2","ifNotNumber","useDefaultForNullAndUndefined","type","Number","isNaN","inputCSV","b1","b2","low","min","high","windowSize","inputData","minRangeSize","sort","a","b","singles","ranges","j","items","buckets","offset","loc","minInclusive","maxExclusive","BooleanRatchet","vals","emptyArraysReturn","parseBool","Ratchet2d","points","validPoints","y","width","height","src","dst","validPlane","plane","line","validPoint","samePoint","lines","allTrue","l","validLine","pline","pts","validPolyLine","polyLine","validLines","currentPLine","lineToPolyLine","lastPointOnPolyLine","pt","undefined","planeContainsPoint","flat","times","translate","translateToOriginVector","minimalContainingPlane","xToY","mirrorPointsOnPlane","timesToRotate","rotateRightAboutOrigin90Degrees","planeContainsPoints","planeContainsLines","polyLineToLines","xlate","mirrorX","mirrorY","scale","scaleVector","rightToLeft","topToBottom","point","transformPointsToNewPlane","curveDef","inputX","idx","xSpread","ySpread","yAdd","RatchetInfo","version","hash","branch","tag","timeBuiltISO","notes","Histogram","entries","update","addValue","entry","find","e","item","count","localeCompare","sortKeys","getEntries","getTotalCount","h","countForValue","percentForValue","total","DurationRatchet","ms","includeMS","rem_ms","seconds","minutes","hours","days","f","leadingZeros","d1","d2","DateTime","fromJSDate","diff","startEpochMS","endEpochMS","timezone","outputFormat","stepUnit","curDate","fromMillis","setZone","endDate","toFormat","plus","JwtRatchet","_encryptionKeyPromise","_decryptKeysPromise","_jtiGenerator","_decryptOnlyKeyUseLogLevel","_parseFailureLogLevel","createType4Guid","encryptionKeyPromise","decryptKeysPromise","jtiGenerator","decryptOnlyKeyUseLogLevel","parseFailureLogLevel","EXPIRED_FLAG_NAME","payloadString","decryptKey","logLevel","jwt","verify","ignoreExpiration","decodeTokenNoVerify","nowSecond","exp","expSeconds","secs","secondsRemainingUntilExpiration","async","expiredHandling","RETURN_NULL","encKeys","encryptionKeyArray","decKeys","concat","keysTried","payload","obscure","invalidSafeDecode","nowSeconds","nbfSeconds","nbf","age","formatMsDuration","THROW_EXCEPTION","ADD_FLAG","encKey","isArray","expirationSeconds","overrideEncryptionKey","selectRandomEncryptionKey","jti","expires","sign","tokenString","allowExpired","handling","decodeToken","originalDurationSeconds","iat","newExpirationSeconds","removeJwtFields","removeExpiredFlag","createTokenString","token","k","ErrorRatchet","err2","fErr","MapRatchet","propName","toSearch","path","findValue","dotPath","object1","object2","returnArray","list","obj","stripZero","stripNull","stripUndefined","stripEmptyString","o","cleanup","finder","newVal","fnName","keyName","keyNameCI","ArrayRatchet","ar1","ar2","fn","id1","id2","matching","setOneOnly","setTwoOnly","aVal","pVal","comp","fieldDotPath","bottomIdx","findSplit","topIdx","bottomValue","findValueDotPath","target","curIdx","curVal","Base64Ratchet","generateBase64VersionOfString","base64StringToString","blob","Promise","resolve","reject","reader","FileReader","onloadend","result","readAsDataURL","generateBase64VersionOfBuffer","Buffer","encoding","CompositeLastSuccessProvider","sources","mostRecent","mostRecentSrc","lastSuccess","DateRatchet","FULL_DATE_FORMAT","DEFAULT_DATE_FORMAT","fromFormat","toJSDate","templ","COMMON_US_DATE_FORMAT","EnumRatchet","enumeration","$enum","getValues","caseSensitive","asValueOrDefault","mKey","listEnumKeys","toUpperCase","keyToEnum","EsmRatchet","root","url","fileURLToPath","URL","ExpiringObject","_config","_cacheObject","_lastUpdatedEpochMS","_timeRemainingMS","inputConfig","defaultConfig","overrideTimeRemainingMS","timeToLiveMS","throwFormattedErr","initialValue","defaultTimeRemainingMS","generator","lastUpdatedEpochMS","ageMS","doNotUpdateClock","ExpiringObjectConfig","GeolocationRatchet","lat1","lon1","lat2","lon2","unit","uU","radlat1","PI","radlat2","theta","radtheta","dist","sin","cos","acos","loc1","loc2","distanceBetweenLocations","lat","lng","latitudeInDecimalDegress","latInRads","cosLat","miles","degreeOfLatLngInMiles","bounds","extent","origin","slices","field","centerOfBounds","splits","inputVal","latSlices","lngSlices","lngSplits","calculateSplits","lngStartIdx","lngEndIdx","lngBatch","latSplits","latStartIdx","latEndIdx","latBatch","combineBounds","inp","allowCrossover","minLat","maxLat","minLng","maxLng","roundDigits","radiusMiles","milesInDegLatLng","bound","between","inBounds","minPointsBeforeMapping","mp","buildRatchetLocationBoundsMap","pointInRatchetLocationBoundsMap","pointInBounds","findRatchetLocationBoundsMapEntry","latOffset","lngOffset","ltIdx","trunc","lngIdx","mapping","latEntries","lngEntries","newRow","row","GlobalRatchet","returnNullOnNone","env","global","envVar","fetchGlobalRecord","KeyValue","No","TimeoutToken","title","timeoutMS","__timeoutTokenFlagField","writeToLog","StopWatch","starts","ends","createTime","notNullUndefinedOrOnlyWhitespaceString","stop","reset","delete","hasTimer","shortForm","dump","logExpected","pctComplete","dumpExpected","cleanName","end","elapsedMS","remainMS","PromiseRatchet","evtSrc","okEvtNames","errEvtNames","res","rej","on","srcPromise","race","createTimeoutPromise","id","setTimeout","clearTimeout","time","autoDebug","exit","promise","then","dumpResult","catch","dumpError","testFunction","expectedValue","intervalMS","maxCycles","wait","waitFor","promiseFn","context","maxConcurrent","sw","remain","ctx","processed","totalCount","curBatch","proms","apply","all","pct","wrappedParams","wrapElementsInArray","runBoundedParallel","array","callback","index","TimeZoneRatchet","currentHour","local","hour","toEpochSeconds","dt","round","toMillis","startOfTodayEpochSeconds","minute","second","millisecond","startOfMatchingDayEpochSeconds","inputTS","startOfMatchingDayEpochMS","startOfCurrentHourEpochSeconds","startOfCurrentMinuteEpochSeconds","startOfCurrentSecondEpochSeconds","startOfTodayEpochMS","dailySlotCount","slotWidthMs","ceil","currentTimeSlotIdx","startOfToday","delta","matchingTimeSlotIdx","startOfCurrentSlotEpochMS","startOfMatchingSlotEpochMS","LogMessageBuilder","wrapped","clone","subVars","NetworkRatchet","useCache","LOCAL_IP","window","RTCPeerConnection","rtc","iceServers","addrs","create","createDataChannel","reliable","onicecandidate","evt","candidate","grepSDP","createOffer","offerDesc","sdp","setLocalDescription","updateLocalIP","href","match","protocol","host","hostname","port","pathname","search","newIp","parts","addr","updateAddressList","newAddr","displayAddrs","multi","BrowserLocalIpProvider","currentIp","findLocalIp","ready","currentLocalIpAddress","FixedLocalIpProvider","fixed","BufferWritable","Writable","_val","super","_write","MultiStream","Readable","_object","object","objectMode","_read","StreamRatchet","stream","bufs","next","read","out","writer","WritableStream","controller","stringToUint8Array","abort","reason","highWaterMark","pipeTo","webReadableStreamToBuffer","ReadableStream","enqueue","close","stringToReadable","StringWritable","GoogleRecaptchaRatchet","keySecret","fetchFn","fetch","GOOGLE_VERIFY_URL","resp","body","json","success","TwilioRatchet","accountSid","authToken","outBoundNumber","isValidE164Number","recipientPhoneNumbers","ratchet","sendMessage","sid","phoneNumber","encodeURIComponent","post","method","headers","authorization","generateTwilioBasicAuth","TWILLIO_BASE_API_URL","parsedResponse","num","BuiltInTransforms","rule","transform","isKey","group1","newFieldName","oldFieldNamesInOrder","abortIfFieldMissing","n","temp","fieldNames","oldVal","oldName","newName","valueToAdd","oldFormat","newFormat","oldValue","TransformRatchet","toTransform","rules","transformGeneric","applyTransformToPrimitive","applyTransformToObject","newKey","TransactionRatchet","steps","initialContext","inConfiguration","config","stepLogLevel","finalContext","finalState","stepNames","execute","errorStep","rollback","rollbackError","rollbackErrorStep","RollbackFailed","RolledBack","Success","executeAfterRollback","executeAfterRollbackFailure"],"mappings":"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"}
1
+ {"version":3,"file":"index.mjs","sources":["../src/logger/logger-level-name.ts","../src/logger/logger-output-function.ts","../src/logger/log-message-format-type.ts","../src/jwt/expired-jwt-handling.ts","../src/tx/transaction-final-state.ts","../src/logger/logger-ring-buffer.ts","../src/logger/logger-util.ts","../src/logger/classic-single-line-log-message-formatter.ts","../src/logger/none-log-message-formatter.ts","../src/logger/structured-json-log-message-formatter.ts","../src/lang/require-ratchet.ts","../src/lang/string-ratchet.ts","../src/logger/logger-instance.ts","../src/logger/logger.ts","../src/lang/number-ratchet.ts","../src/lang/boolean-ratchet.ts","../src/2d/ratchet-2d.ts","../src/build/ratchet-common-info.ts","../src/histogram/histogram.ts","../src/lang/duration-ratchet.ts","../src/jwt/jwt-ratchet.ts","../src/lang/error-ratchet.ts","../src/lang/map-ratchet.ts","../src/lang/array-ratchet.ts","../src/lang/base64-ratchet.ts","../src/lang/composite-last-success-provider.ts","../src/lang/date-ratchet.ts","../src/lang/enum-ratchet.ts","../src/lang/esm-ratchet.ts","../src/lang/expiring-object.ts","../src/lang/geolocation-ratchet.ts","../src/lang/global-ratchet.ts","../src/lang/key-value.ts","../src/lang/no.ts","../src/lang/timeout-token.ts","../src/lang/stop-watch.ts","../src/lang/promise-ratchet.ts","../src/lang/time-zone-ratchet.ts","../src/logger/log-message-builder.ts","../src/network/network-ratchet.ts","../src/network/browser-local-ip-provider.ts","../src/network/fixed-local-ip-provider.ts","../src/stream/buffer-writable.ts","../src/stream/multi-stream.ts","../src/stream/stream-ratchet.ts","../src/stream/string-writable.ts","../src/third-party/google/google-recaptcha-ratchet.ts","../src/third-party/twilio/twilio-ratchet.ts","../src/transform/built-in-transforms.ts","../src/transform/transform-ratchet.ts","../src/tx/transaction-ratchet.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],"names":["LoggerLevelName","LoggerOutputFunction","LogMessageFormatType","ExpiredJwtHandling","TransactionFinalState","LoggerRingBuffer","_lastLogMessage","messageSource","timestamp","Date","getTime","lvl","info","_buffer","_bufferIdx","_lastSnapshotIdx","_bufferSize","constructor","size","Error","this","currentIndex","lastSnapshotIdx","bufferSize","newSize","clearRingBuffer","getMessages","inStartFrom","clear","reverseSort","rval","start","slice","firstIdx","i","Math","max","push","reverse","takeSnapshot","trailingEdge","messages","logMessagesTruncated","getLastLogMessage","Object","assign","addToRingBuffer","newMsg","LoggerUtil","static","error","warn","verbose","debug","silly","outputFn","Console","output","Map","StdOut","process","stdout","write","myStdOut","chunk","cb","set","console","ConsoleNoDebug","log","targetLevel","currentEnabled","idxTarget","LOG_LEVELS_IN_ORDER","indexOf","ClassicSingleLineLogMessageFormatter","formatMessage","msg","meta","tmp","options","trace","util","format","subsVars","NoneLogMessageFormatter","StructuredJsonLogMessageFormatter","globalVars","params","toISOString","loggerInstanceName","loggerInstanceId","JSON","stringify","RequireRatchet","ob","name","isNullOrUndefined","trim","length","ob1","ob2","message","equal","arr","expectedLength","customMsg","notNullOrUndefined","restArgs","args","Array","from","arguments","len","noNullOrUndefinedValuesInArray","StringRatchet","val","TextEncoder","encode","TextDecoder","decode","trimToNull","parse","err","attemptJsonParse","input","check","Set","test","charAt","has","add","alphabet","true","allUnique","step","allPermutationsOfLength","forEach","s","replace","c","r","random","toString","floor","value","toLowerCase","RFC_3986_RESERVED","bytes","decimals","dm","parseFloat","pow","toFixed","String","inVal","validCharsIn","validChars","prefixLength","suffixLength","pl","sl","rem","substring","pad","negative","sVal","startsWith","safeString","x","trimToEmpty","trimAllStringPropertiesInPlace","toEmpty","keys","key","stringContainsOnlyNumbers","split","join","reduce","previousValue","currentValue","charCodeAt","LoggerInstance","_loggerMeta","_ringBuffer","_formatter","_level","_handlerFunctionMap","_options","inOptions","addPreProcessor","proc","preProcessors","ringBuffer","dumpConfigurationIntoLog","dumpOptionsIntoLog","labels","map","p","label","changeRingBufferSize","ringBufferSize","updateTracePrefix","newValue","newOpts","formatType","None","StructuredJson","initialLevel","handlerFunctionMap","outputFunction","oldId","createRandomHexString","level","newLevel","consoleLogPassThru","levelIsEnabled","passThruPrefix","unshift","get","defaultHandlerFunction","createLogMessage","now","formatMessages","msgs","m","filter","recordMessageBuilder","msgBuild","recordMessage","toMessage","inMsg","errorP","warnP","infoP","verboseP","debugP","sillyP","logByLevel","importMessages","prefixIn","addTimestamp","prefix","mOut","Logger","ClassicSingleLine","DEFAULT_OPTIONS","retroactive","LOGGER_INSTANCES","values","li","loggerName","inst","applyDefaultsToOptions","getLogger","buf","NumberRatchet","placesAfterPoint","v","safeNumber","MAX_LEADING_ZEROS_FORMAT_LENGTH","inTest","inP1","inP2","p1","p2","ifNotNumber","useDefaultForNullAndUndefined","type","Number","isNaN","undefined","inputCSV","b1","b2","low","min","high","windowSize","inputData","minRangeSize","sort","a","b","singles","ranges","j","items","buckets","offset","loc","minInclusive","maxExclusive","BooleanRatchet","vals","emptyArraysReturn","parseBool","Ratchet2d","points","validPoints","y","width","height","src","dst","validPlane","plane","line","validPoint","samePoint","lines","allTrue","l","validLine","pline","pts","validPolyLine","polyLine","validLines","currentPLine","lineToPolyLine","lastPointOnPolyLine","pt","planeContainsPoint","flat","times","translate","translateToOriginVector","minimalContainingPlane","xToY","mirrorPointsOnPlane","timesToRotate","rotateRightAboutOrigin90Degrees","planeContainsPoints","planeContainsLines","polyLineToLines","xlate","mirrorX","mirrorY","scale","scaleVector","rightToLeft","topToBottom","point","transformPointsToNewPlane","curveDef","inputX","idx","xSpread","ySpread","yAdd","RatchetInfo","version","hash","branch","tag","timeBuiltISO","notes","Histogram","entries","update","addValue","entry","find","e","item","count","localeCompare","sortKeys","getEntries","getTotalCount","h","countForValue","percentForValue","total","DurationRatchet","ms","includeMS","rem_ms","seconds","minutes","hours","days","f","leadingZeros","d1","d2","DateTime","fromJSDate","diff","startEpochMS","endEpochMS","timezone","outputFormat","stepUnit","curDate","fromMillis","setZone","endDate","toFormat","plus","JwtRatchet","_encryptionKeyPromise","_decryptKeysPromise","_jtiGenerator","_decryptOnlyKeyUseLogLevel","_parseFailureLogLevel","createType4Guid","encryptionKeyPromise","decryptKeysPromise","jtiGenerator","decryptOnlyKeyUseLogLevel","parseFailureLogLevel","EXPIRED_FLAG_NAME","payloadString","decryptKey","logLevel","jwt","verify","ignoreExpiration","decodeTokenNoVerify","nowSecond","exp","expSeconds","secs","secondsRemainingUntilExpiration","async","expiredHandling","RETURN_NULL","encKeys","encryptionKeyArray","decKeys","concat","keysTried","payload","obscure","invalidSafeDecode","nowSeconds","nbfSeconds","nbf","age","formatMsDuration","THROW_EXCEPTION","ADD_FLAG","encKey","isArray","expirationSeconds","overrideEncryptionKey","selectRandomEncryptionKey","jti","expires","sign","tokenString","allowExpired","handling","decodeToken","originalDurationSeconds","iat","newExpirationSeconds","removeJwtFields","removeExpiredFlag","createTokenString","token","k","ErrorRatchet","err2","fErr","MapRatchet","propName","toSearch","path","findValue","dotPath","object1","object2","returnArray","list","obj","stripZero","stripNull","stripUndefined","stripEmptyString","o","cleanup","finder","newVal","fnName","keyName","keyNameCI","ArrayRatchet","ar1","ar2","fn","id1","id2","matching","setOneOnly","setTwoOnly","aVal","pVal","comp","fieldDotPath","bottomIdx","findSplit","topIdx","bottomValue","findValueDotPath","target","curIdx","curVal","Base64Ratchet","generateBase64VersionOfString","base64StringToString","blob","Promise","resolve","reject","reader","FileReader","onloadend","result","readAsDataURL","generateBase64VersionOfBuffer","Buffer","encoding","CompositeLastSuccessProvider","sources","mostRecent","mostRecentSrc","lastSuccess","DateRatchet","FULL_DATE_FORMAT","DEFAULT_DATE_FORMAT","fromFormat","toJSDate","templ","COMMON_US_DATE_FORMAT","EnumRatchet","enumeration","$enum","getValues","caseSensitive","asValueOrDefault","mKey","listEnumKeys","toUpperCase","keyToEnum","EsmRatchet","root","url","fileURLToPath","URL","ExpiringObject","_config","_cacheObject","_lastUpdatedEpochMS","_timeRemainingMS","inputConfig","defaultConfig","overrideTimeRemainingMS","timeToLiveMS","throwFormattedErr","initialValue","defaultTimeRemainingMS","generator","lastUpdatedEpochMS","ageMS","doNotUpdateClock","ExpiringObjectConfig","GeolocationRatchet","lat1","lon1","lat2","lon2","unit","uU","radlat1","PI","radlat2","theta","radtheta","dist","sin","cos","acos","loc1","loc2","distanceBetweenLocations","lat","lng","latitudeInDecimalDegress","latInRads","cosLat","miles","degreeOfLatLngInMiles","bounds","extent","origin","slices","field","centerOfBounds","splits","inputVal","latSlices","lngSlices","lngSplits","calculateSplits","lngStartIdx","lngEndIdx","lngBatch","latSplits","latStartIdx","latEndIdx","latBatch","combineBounds","inp","allowCrossover","minLat","maxLat","minLng","maxLng","roundDigits","radiusMiles","milesInDegLatLng","bound","between","inBounds","minPointsBeforeMapping","mp","buildRatchetLocationBoundsMap","pointInRatchetLocationBoundsMap","pointInBounds","findRatchetLocationBoundsMapEntry","latOffset","lngOffset","ltIdx","trunc","lngIdx","mapping","latEntries","lngEntries","newRow","row","GlobalRatchet","returnNullOnNone","env","global","envVar","fetchGlobalRecord","KeyValue","No","TimeoutToken","title","timeoutMS","__timeoutTokenFlagField","writeToLog","StopWatch","starts","ends","createTime","notNullUndefinedOrOnlyWhitespaceString","stop","reset","delete","hasTimer","shortForm","dump","logExpected","pctComplete","dumpExpected","cleanName","end","elapsedMS","remainMS","PromiseRatchet","evtSrc","okEvtNames","errEvtNames","res","rej","on","srcPromise","race","createTimeoutPromise","id","setTimeout","clearTimeout","time","autoDebug","exit","promise","then","dumpResult","catch","dumpError","testFunction","expectedValue","intervalMS","maxCycles","wait","waitFor","promiseFn","context","maxConcurrent","sw","remain","ctx","processed","totalCount","curBatch","proms","apply","all","pct","wrappedParams","wrapElementsInArray","runBoundedParallel","array","callback","index","TimeZoneRatchet","currentHour","local","hour","toEpochSeconds","dt","round","toMillis","startOfTodayEpochSeconds","minute","second","millisecond","startOfMatchingDayEpochSeconds","inputTS","startOfMatchingDayEpochMS","startOfCurrentHourEpochSeconds","startOfCurrentMinuteEpochSeconds","startOfCurrentSecondEpochSeconds","startOfTodayEpochMS","dailySlotCount","slotWidthMs","ceil","currentTimeSlotIdx","startOfToday","delta","matchingTimeSlotIdx","startOfCurrentSlotEpochMS","startOfMatchingSlotEpochMS","LogMessageBuilder","wrapped","clone","subVars","NetworkRatchet","useCache","LOCAL_IP","window","RTCPeerConnection","rtc","iceServers","addrs","create","createDataChannel","reliable","onicecandidate","evt","candidate","grepSDP","createOffer","offerDesc","sdp","setLocalDescription","updateLocalIP","href","match","protocol","host","hostname","port","pathname","search","newIp","parts","addr","updateAddressList","newAddr","displayAddrs","multi","BrowserLocalIpProvider","currentIp","findLocalIp","ready","currentLocalIpAddress","FixedLocalIpProvider","fixed","BufferWritable","Writable","_val","super","_write","MultiStream","Readable","_object","object","objectMode","_read","StreamRatchet","stream","bufs","next","read","out","writer","WritableStream","controller","stringToUint8Array","abort","reason","highWaterMark","pipeTo","webReadableStreamToBuffer","ReadableStream","enqueue","close","stringToReadable","StringWritable","GoogleRecaptchaRatchet","keySecret","fetchFn","fetch","GOOGLE_VERIFY_URL","resp","body","json","success","TwilioRatchet","accountSid","authToken","outBoundNumber","isValidE164Number","recipientPhoneNumbers","ratchet","sendMessage","sid","phoneNumber","encodeURIComponent","post","method","headers","authorization","generateTwilioBasicAuth","TWILLIO_BASE_API_URL","parsedResponse","num","BuiltInTransforms","rule","transform","isKey","group1","newFieldName","oldFieldNamesInOrder","abortIfFieldMissing","n","temp","fieldNames","oldVal","oldName","newName","valueToAdd","oldFormat","newFormat","oldValue","TransformRatchet","toTransform","rules","transformGeneric","applyTransformToPrimitive","applyTransformToObject","newKey","TransactionRatchet","steps","initialContext","inConfiguration","config","stepLogLevel","finalContext","finalState","stepNames","execute","errorStep","rollback","rollbackError","rollbackErrorStep","RollbackFailed","RolledBack","Success","executeAfterRollback","executeAfterRollbackFailure"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bitblit/ratchet-common",
3
- "version": "4.0.162-alpha",
3
+ "version": "4.0.164-alpha",
4
4
  "description": "Common tools for general use",
5
5
  "type": "module",
6
6
  "files": [