@bitblit/ratchet-common 4.0.262-alpha → 4.0.267-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{$enum as n}from"ts-enum-util";import s from"url";import o from"cross-fetch";const i={error:"error",warn:"warn",info:"info",verbose:"verbose",debug:"debug",silly:"silly"};class a{_lastLogMessage={messageSource:"No message yet",timestamp:(new Date).getTime(),lvl:i.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++}}const l={Console:"Console",ConsoleNoDebug:"ConsoleNoDebug",StdOut:"StdOut"};class c{static LOG_LEVELS_IN_ORDER=[i.error,i.warn,i.info,i.verbose,i.debug,i.silly];static handlerFunctionMap(t=l.Console){const e=new Map;if(t===l.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(i.error,t),e.set(i.warn,t),e.set(i.info,t),e.set(i.verbose,t),e.set(i.debug,t),e.set(i.silly,t)}else e.set(i.error,console.error),e.set(i.warn,console.warn),e.set(i.info,console.info),e.set(i.verbose,t===l.ConsoleNoDebug?console.log:console.debug),e.set(i.debug,t===l.ConsoleNoDebug?console.log:console.debug),e.set(i.silly,t===l.ConsoleNoDebug?console.log:console.debug);return e}static defaultHandlerFunction(){return console.info}static levelIsEnabled(t,e){const r=c.LOG_LEVELS_IN_ORDER.indexOf(t),n=c.LOG_LEVELS_IN_ORDER.indexOf(e);return r>-1&&n>-1&&n>=r}}const u={ClassicSingleLine:"ClassicSingleLine",StructuredJson:"StructuredJson",None:"None"};class g{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 d{formatMessage(t,e){return null}}class h{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 f{static isNullOrUndefined(t){return Object.is(t,null)||Object.is(t,void 0)}static notNullOrUndefined(t,e="object"){if(f.isNullOrUndefined(t))throw new Error(e+" may not be null or undefined")}static notNullUndefinedOrOnlyWhitespaceString(t,e="string"){if(f.isNullOrUndefined(t)||""===t.trim())throw new Error(e+" may not be null or undefined or only whitespace string")}static notNullUndefinedOrEmptyArray(t,e="string"){if(f.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"){f.equal(t,!0,e)}static noNullOrUndefinedValuesInArray(t,e=null,r=null){if(f.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(f.isNullOrUndefined(t[e]))throw new Error(`Array index ${e} was null or undefined ${r}`)}static noNullOrUndefinedValuesInRestArgs(t,...e){if(f.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(f.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 f.noNullOrUndefinedValuesInArray(t,e)}}class p{static RFC_3986_RESERVED=["!","*","'","(",")",";",":","@","&","=","+","$",",","/","?","#","[","]","%"];static DIGITS="0123456789";static HEXITS=p.DIGITS+"ABCDEF";static UPPER_CASE_LATIN="ABCDEFGHIJKLMNOPQRSTUVWXYZ";static LOWER_CASE_LATIN="abcdefghijklmnopqrstuvwxyz";static CASE_INSENSITIVE_LATIN=p.UPPER_CASE_LATIN+p.LOWER_CASE_LATIN;static stringIsInGivenAlphabet(t,e){let r=!1;if(t&&e)for(let n=0;n<t.length&&!r;n++)r=e.includes(t.charAt(n));return r}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(p.trimToNull(t))try{e=JSON.parse(t)}catch(t){e=null}return e}static canParseAsJson(t){return!!p.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){f.true(p.allUnique(e),"Alphabet must be unique");const n=1===t?[""]:p.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(" ","-"),p.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?p.safeString(t):"").trim()}static trimToNull(t){const e=p.trimToEmpty(t);return e.length>0?e:null}static trimAllStringPropertiesToNullInPlace(t){return p.trimAllStringPropertiesInPlace(t,!1)}static trimAllStringPropertiesToEmptyInPlace(t){return p.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?p.trimToEmpty(t[r]):p.trimToNull(t[r]))})),t}static stripNonNumeric(t){let e=t;if(null!=t&&!p.stringContainsOnlyNumbers(t)){e="";for(let r=0;r<t.length;r++){const n=t.charAt(r);(p.stringContainsOnlyNumbers(n)||0===r&&"-"===n)&&(e+=n)}}return e}static csvSafe(t){let e=p.trimToEmpty(p.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))}static replaceAll(t,e,r){let n=t;return n?.length&&e?.length&&r?.length&&(n=n.split(e).join(r)),n}}class m{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=>p.trimToNull(t.label())||"Unlabelled"));this.info("Preprocessors: %j",t)}}changeRingBufferSize(t){this._ringBuffer=null,t&&(this._ringBuffer=new a(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 a(this._options.ringBufferSize)),this._options.formatType){case u.None:this._formatter=new d;break;case u.StructuredJson:this._formatter=new h;break;default:this._formatter=new g}this._level=this._options.initialLevel,this._handlerFunctionMap=c.handlerFunctionMap(this._options.outputFunction);const e=this._loggerMeta?this._loggerMeta.loggerInstanceId:null;this._loggerMeta={options:this._options,loggerInstanceName:this.loggerInstanceName,loggerInstanceId:e||p.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(c.levelIsEnabled(t,this._level)){let r=this._options.trace||"";r+="["+t+"] ",e.unshift(r);(this._handlerFunctionMap.get(t)||c.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(c.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)||c.defaultHandlerFunction)(e),this._ringBuffer&&this._ringBuffer.addToRingBuffer(r)}}return e}error(t,...e){const r=this.createLogMessage(i.error,{},t,...e);return this.recordMessage(r)}errorP(...t){this.consoleLogPassThru(i.error,...t)}warn(t,...e){const r=this.createLogMessage(i.warn,{},t,...e);return this.recordMessage(r)}warnP(...t){this.consoleLogPassThru(i.warn,...t)}info(t,...e){const r=this.createLogMessage(i.info,{},t,...e);return this.recordMessage(r)}infoP(...t){this.consoleLogPassThru(i.info,...t)}verbose(t,...e){const r=this.createLogMessage(i.verbose,{},t,...e);return this.recordMessage(r)}verboseP(...t){this.consoleLogPassThru(i.verbose,...t)}debug(t,...e){const r=this.createLogMessage(i.debug,{},t,...e);return this.recordMessage(r)}debugP(...t){this.consoleLogPassThru(i.debug,...t)}silly(t,...e){const r=this.createLogMessage(i.silly,{},t,...e);return this.recordMessage(r)}sillyP(...t){this.consoleLogPassThru(i.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 y{static LOGGER_INSTANCES=new Map;static DEFAULT_OPTIONS={initialLevel:i.info,formatType:u.ClassicSingleLine,trace:null,globalVars:{},outputFunction:l.Console,ringBufferSize:0,preProcessors:[]};static applyDefaultsToOptions(t){const e=t||{};return e.initialLevel=e.initialLevel??y.DEFAULT_OPTIONS.initialLevel,e.formatType=e.formatType??y.DEFAULT_OPTIONS.formatType,e.trace=e.trace??y.DEFAULT_OPTIONS.trace,e.globalVars=e.globalVars??y.DEFAULT_OPTIONS.globalVars,e.outputFunction=e.outputFunction??y.DEFAULT_OPTIONS.outputFunction,e.ringBufferSize=e.ringBufferSize??y.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");y.DEFAULT_OPTIONS=Object.assign({},t),e&&Array.from(y.LOGGER_INSTANCES.values()).forEach((e=>e.options=t))}static getLogger(t="default",e){let r=y.LOGGER_INSTANCES.get(t);if(!r){const n=y.applyDefaultsToOptions(e);r=new m(t,n),y.LOGGER_INSTANCES.set(t,r)}return r}static recordMessageBuilder(t){return y.getLogger().recordMessageBuilder(t)}static recordMessage(t){return y.getLogger().recordMessage(t)}static formatMessages(t){return y.getLogger().formatMessages(t)}static updateTracePrefix(t){return y.getLogger().updateTracePrefix(t)}static changeRingBufferSize(t){return y.getLogger().changeRingBufferSize(t)}static getRingBuffer(){return y.getLogger().ringBuffer}static dumpConfigurationIntoLog(){return y.getLogger().dumpConfigurationIntoLog()}static dumpOptionsIntoLog(){return y.getLogger().dumpOptionsIntoLog()}static getLevel(){return y.getLogger().level}static setLevel(t){y.getLogger().level=t}static getOptions(){return y.getLogger().options}static getMessages(t=null,e=!1,r=!1){const n=y.getLogger().ringBuffer;return n?n.getMessages(t,e,r):null}static consoleLogPassThru(t,...e){return y.getLogger().consoleLogPassThru(t,...e)}static error(t,...e){return y.getLogger().error(t,...e)}static errorP(...t){return y.getLogger().errorP(...t)}static warn(t,...e){return y.getLogger().warn(t,...e)}static warnP(...t){return y.getLogger().warnP(...t)}static info(t,...e){return y.getLogger().info(t,...e)}static infoP(...t){return y.getLogger().infoP(...t)}static verbose(t,...e){return y.getLogger().verbose(t,...e)}static verboseP(...t){return y.getLogger().verboseP(...t)}static debug(t,...e){return y.getLogger().debug(t,...e)}static debugP(...t){return y.getLogger().debugP(...t)}static silly(t,...e){return y.getLogger().silly(t,...e)}static sillyP(...t){return y.getLogger().sillyP(...t)}static takeSnapshot(){const t=y.getLogger().ringBuffer;return t?t.takeSnapshot():null}static logByLevel(t,e,...r){return y.getLogger().logByLevel(t,e,...r)}static importMessages(t,e="",r=!0){return y.getLogger().importMessages(t,e,r)}static getLastLogMessage(){const t=y.getLogger().ringBuffer;return t?t.getLastLogMessage():null}}class b{static MAX_LEADING_ZEROS_FORMAT_LENGTH=1e3;static toFixedDecimalNumber(t,e){const r=b.safeNumber(t);return null==r?r:b.safeNumber(r.toFixed(e))}static leadingZeros(t,e){const r=String(t);if(r.length<e){let t="0000";if(e>b.MAX_LEADING_ZEROS_FORMAT_LENGTH)throw"Cannot format number that large (max length is "+b.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=b.safeNumber(t),s=b.safeNumber(e),o=b.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):(y.warn("Value is of type %s, returning default",r),n=e),isNaN(n)&&(y.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=>b.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){f.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){f.notNullOrUndefined(t,"items"),f.notNullOrUndefined(e,"buckets"),f.true(t>0&&t===Math.floor(t),"Items integer larger than 0"),f.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!==b.safeNumber(t)}static boolToInt(t){return E.parseBool(t)?1:0}}class S{constructor(){}static translateToOriginVector(t){let e=null;return S.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 S.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 S.validPlane(t)&&S.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&&S.validPoint(t.p1)&&S.validPoint(t.p2)&&!S.samePoint(t.p1,t.p2)}static validLines(t){return!!t&&E.allTrue(t.map((t=>S.validLine(t))))}static validPolyLine(t){return!!t&&t.pts?.length>1&&E.allTrue(t.pts.map((t=>S.validPoint(t))))}static polyLineToLines(t){let e=null;if(S.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 S.validPolyLine(t)?t.pts[t.pts.length-1]:null}static lineToPolyLine(t){return S.validLine(t)?{pts:[t.p1,t.p2]}:null}static linesToPolyLines(t){let e=null;if(S.validLines(t)){e=[];let r=S.lineToPolyLine(t[0]);for(let n=1;n<t.length;n++)S.samePoint(S.lastPointOnPolyLine(r),t[n].p1)?r.pts.push(t[n].p2):(e.push(r),r=S.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=>S.validPoint(t))),!1)}static planeContainsPoint(t,e){return S.validPlane(e)&&S.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=>S.planeContainsPoint(t,e))).reduce(((t,e)=>t&&e),!0)}static linesToPoints(t){let e=null;return S.validLines(t)&&(e=t.map((t=>[t.p1,t.p2])).flat()),e}static pointsToLines(t){let e=null;if(S.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(S.validPoints(t)){r=Object.assign([],t),n=S.translateToOriginVector(r),r=S.translate(r,n);let e=S.minimalContainingPlane(r);r=S.xToY(r),e={width:e.height,height:e.width},n={x:-1*n.y,y:-1*n.x},r=S.mirrorPointsOnPlane(r,e,!0,!1),r=S.translate(r,n)}const s=e>4?e%4:e;return s>1&&(r=S.rotateRightAboutOrigin90Degrees(r,s-1)),r}static planeContainsLines(t,e){return t&&S.planeContainsPoints(t.map((t=>[t.p1,t.p2])).flat(),e)}static planeContainsPolyLine(t,e){return S.planeContainsLines(S.polyLineToLines(t),e)}static planeContainsLine(t,e){return S.validPlane(e)&&S.validLine(t)&&S.planeContainsPoint(t.p1,e)&&S.planeContainsPoint(t.p2,e)}static xToY(t){let e=null;return S.validPoints(t)&&(e=t.map((t=>({x:t.y,y:t.x})))),e}static translate(t,e){let r=null;return S.validPoints(t)&&S.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 S.validPoints(t)&&S.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(S.validPoints(t)&&S.validPlane(e)&&S.validPlane(r)){const s=S.scaleVector(e,r);n=t.map((t=>({x:t.x*s.x,y:t.y*s.y}))),n=S.mirrorPointsOnPlane(n,r,r.rightToLeft!==e.rightToLeft,r.topToBottom!==e.topToBottom)}return n}static transformPointToNewPlane(t,e,r){const n=S.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 w{constructor(){}static buildInformation(){return{version:"262",hash:"80bb0ca0ef60248cefd578302196c1be906ba23a",branch:"alpha-2023-10-19-2",tag:"alpha-2023-10-19-2",timeBuiltISO:"2023-10-19T12:38:16-0700",notes:"No notes"}}}class T{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}}var _;!function(t){t[t.RETURN_NULL=0]="RETURN_NULL",t[t.THROW_EXCEPTION=1]="THROW_EXCEPTION",t[t.ADD_FLAG=2]="ADD_FLAG"}(_||(_={}));class L{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=b.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=b.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 O{_encryptionKeyPromise;_decryptKeysPromise;_jtiGenerator;_decryptOnlyKeyUseLogLevel;_parseFailureLogLevel;static EXPIRED_FLAG_NAME="__jwtServiceExpiredFlag";constructor(t,e,r=p.createType4Guid,n=i.info,s=i.debug){this._encryptionKeyPromise=t,this._decryptKeysPromise=e,this._jtiGenerator=r,this._decryptOnlyKeyUseLogLevel=n,this._parseFailureLogLevel=s,f.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[O.EXPIRED_FLAG_NAME]}static async invalidSafeDecode(t,r,n=i.silly){let s=null;try{s=e.verify(t,r,{ignoreExpiration:!0})}catch(t){y.logByLevel(n,"Caught %s - ignoring",t)}return s}static async secondsRemainingUntilExpiration(t){let e=null;if(p.trimToNull(t)){const r=await O.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 O.secondsRemainingUntilExpiration(t);let r=null;return null!=e&&(r=1e3*e),r}async decodeToken(t,e=_.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(p.obscure(n[e],1,1));const a=e===n.length-1&&this.parseFailureLogLevel?this.parseFailureLogLevel:i.silly;o=await O.invalidSafeDecode(t,n[e],a),o&&e>=r.length&&y.logByLevel(this.decryptOnlyKeyUseLogLevel,"Used old key to decode token : %s",p.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(y.debug("JWT token expired or before NBF : on %d, %s ago",o.exp,L.formatMsDuration(1e3*n)),e){case _.THROW_EXCEPTION:throw new Error("JWT Token was expired");case _.ADD_FLAG:o[O.EXPIRED_FLAG_NAME]=!0;break;default:o=null}}}else y.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=p.trimToNull(n)?p.trimToNull(n):await this.selectRandomEncryptionKey();if(f.notNullOrUndefined(t,"payload"),t.jti=this.jtiGenerator?this.jtiGenerator():null,r){const e=Math.floor(Date.now()/1e3)+r;y.debug("Forcing expiration to %d",e),t.exp=e}return e.sign(t,s)}async refreshJWTString(t,e,r){const n=e?_.ADD_FLAG:_.THROW_EXCEPTION,s=await this.decodeToken(t,n),o=s.exp&&s.iat?s.exp-s.iat:null,i=r||o;O.removeJwtFields(s),O.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[O.EXPIRED_FLAG_NAME]}}class M{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){y.error("Failed to json stringify"),r=String(t)}return e&&y.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 M.fErr(t,...e)}}class x{static expandNestedKeysToObjects(t,e="."){if(!e||1!==e.length)throw new Error("Invalid separator (must be single character)");const r={};return Object.keys(t).forEach((n=>{const s=n.split(e);let o=r;for(;s.length>1;)o[s[0]]=o[s[0]]||{},o=o[s[0]],s.splice(0,1);o[s[0]]=t[n]})),r}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 M.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?x.findValue(t[e[0]],e.slice(1)):null:t}static findValueDotPath(t,e){return e&&0!=e.length?t?x.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]=x.cleanup(o[t][e]);else o[t]=x.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&&y.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){y.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 N{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:N.findSplit(t,e,r)||0;const o=null===n?t.length:N.findSplit(t,e,n),i=x.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(f.notNullOrUndefined(t),f.notNullOrUndefined(e),f.notNullOrUndefined(r),0===t.length||x.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=x.findValueDotPath(t[i],e);n===s||n===s-1?o=n:a<=r?n=i:s=i}return o}}class P{static safeObjectToBase64JSON(t){return t?P.generateBase64VersionOfString(JSON.stringify(t)):null}static safeBase64JSONParse(t){let e={};try{t&&(e=JSON.parse(P.base64StringToString(t,"utf-8")))}catch(r){y.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 P.generateBase64VersionOfUint8Array(p.stringToUint8Array(t))}static generateBase64VersionOfUint8Array(t){return P.uint8ArrayToBase64String(t)}static base64StringToUint8Array(t){try{return P.base64StringToBytes(t)}catch(e){throw y.error("Failed to decode base64: %s",t),e}}static base64StringToString(t,e="utf8"){return new TextDecoder(e).decode(P.base64StringToUint8Array(t))}static BASE64_ABC=["A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z","0","1","2","3","4","5","6","7","8","9","+","/"];static BASE64_CODES=[255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,62,255,255,255,63,52,53,54,55,56,57,58,59,60,61,255,255,255,0,255,255,255,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,255,255,255,255,255,255,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51];static getBase64Code(t){if(t>=P.BASE64_CODES.length)throw new Error("Unable to parse base64 string.");const e=P.BASE64_CODES[t];if(255===e)throw new Error("Unable to parse base64 string.");return e}static uint8ArrayToBase64UrlString(t){let e=P.uint8ArrayToBase64String(t);return e=e.split("+").join("-").split("/").join("_").split("=").join(""),e}static uint8ArrayToBase64String(t){let e,r="";const n=t.length;for(e=2;e<n;e+=3)r+=P.BASE64_ABC[t[e-2]>>2],r+=P.BASE64_ABC[(3&t[e-2])<<4|t[e-1]>>4],r+=P.BASE64_ABC[(15&t[e-1])<<2|t[e]>>6],r+=P.BASE64_ABC[63&t[e]];return e===n+1&&(r+=P.BASE64_ABC[t[e-2]>>2],r+=P.BASE64_ABC[(3&t[e-2])<<4],r+="=="),e===n&&(r+=P.BASE64_ABC[t[e-2]>>2],r+=P.BASE64_ABC[(3&t[e-2])<<4|t[e-1]>>4],r+=P.BASE64_ABC[(15&t[e-1])<<2],r+="="),r}static base64StringToBytes(t){if(t.length%4!=0)throw M.fErr("Unable to parse base64 string, length: %s",t.length);const e=t.indexOf("=");if(-1!==e&&e<t.length-2)throw M.fErr("Unable to parse base64 string, index %s",e);const r=t.endsWith("==")?2:t.endsWith("=")?1:0,n=t.length,s=new Uint8Array(n/4*3);let o;for(let e=0,r=0;e<n;e+=4,r+=3)o=P.getBase64Code(t.charCodeAt(e))<<18|P.getBase64Code(t.charCodeAt(e+1))<<12|P.getBase64Code(t.charCodeAt(e+2))<<6|P.getBase64Code(t.charCodeAt(e+3)),s[r]=o>>16,s[r+1]=o>>8&255,s[r+2]=255&o;return s.subarray(0,s.length-r)}static base64UrlStringToBytes(t){let e=t.split("-").join("+").split("_").join("/");for(;e.length%4!=0;)e+="=";return y.info("pre: %s post %s",t,e),P.base64StringToBytes(e)}static encodeStringToBase64String(t,e=new TextEncoder){return P.uint8ArrayToBase64String(e.encode(t))}static encodeStringToBase64UrlString(t,e=new TextEncoder){return P.uint8ArrayToBase64UrlString(e.encode(t))}static decodeBase64StringToString(t,e=new TextDecoder){return e.decode(P.base64StringToBytes(t))}static decodeBase64UrlStringToString(t,e=new TextDecoder){return e.decode(P.base64UrlStringToBytes(t))}}class A{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 v{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(v.FULL_DATE_FORMAT)}static formatDefaultDateOnly(t){return r.fromJSDate(t).toFormat(v.DEFAULT_DATE_FORMAT)}static parseDefaultDate(t){return r.fromFormat(t,v.DEFAULT_DATE_FORMAT).toJSDate()}static parseCommonUsDate(t){let e=null;if(t){let n=v.COMMON_US_DATE_FORMAT;2===t.indexOf("-")&&(n=n.split("/").join("-")),e=r.fromFormat(t,n).toJSDate()}return e}}class I{static listEnumKeys(t){return n(t).getValues()}static keyToEnum(t,e,r=!1){const s=n(t);let o=null;if(e&&(o=s.asValueOrDefault(e,null),!o&&!r)){const r=I.listEnumKeys(t).find((t=>t.toUpperCase()===e.toUpperCase()));r&&(o=s.asValueOrDefault(r,null))}return o}static parseCsvToEnumArray(t,e){return p.trimToEmpty(e).split(",").map((t=>t.trim())).map((e=>I.keyToEnum(t,e))).filter((t=>!!t))}}class C{static fetchDirName(t){if(!t)throw new Error("Need to provide root (should be import.meta.url)");return s.fileURLToPath(new URL(".",t))}static fetchFileName(t){if(!t)throw new Error("Need to provide root (should be import.meta.url)");return s.fileURLToPath(t)}}class R{_config;_cacheObject;_lastUpdatedEpochMS;_timeRemainingMS;constructor(t){this._config=Object.assign({},this.defaultConfig(),t||{}),this._config.overrideTimeRemainingMS&&this._config.timeToLiveMS&&M.throwFormattedErr("Cannot define both time to live and overrideTimeRemainingMS"),this._config.overrideTimeRemainingMS||this._config.timeToLiveMS||M.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:i.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()),y.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();y.logByLevel(this._config.logLevel,"Auto call to generator returned %j",t),this.update(t)}return this._cacheObject}}class B{timeToLiveMS;generator;initialValue;logLevel;overrideTimeRemainingMS}class U{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 U.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 b.safeNumber((69.172*r).toFixed(4))}static milesInDegLatLng(t,e=0){f.notNullOrUndefined(t),f.true(t>=0);return t/U.degreeOfLatLngInMiles(e)}static centerOfBounds(t){return f.notNullOrUndefined(t),{lat:(t.extent.lat+t.origin.lat)/2,lng:(t.extent.lng+t.origin.lng)/2}}static calculateSplits(t,e,r){f.notNullOrUndefined(t),f.notNullOrUndefined(e),f.notNullOrUndefined(r),t.sort(((t,e)=>t.origin[r]-e.origin[r]));const n=t.map((t=>U.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))):y.silly("Skipping, size : %d, %j",r,s)}return y.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&&M.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=U.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=U.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(U.combineBounds(s))}}y.info("New bounds : %j",n)}return n}static canonicalizeBounds(t,e=!1){f.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:b.safeNumber(t.lat.toFixed(e)),lng:b.safeNumber(t.lng.toFixed(e))}}static locationToBounds(t,e){const r=U.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&&b.between(t.lat,e.origin.lat,e.extent.lat)&&b.between(t.lng,e.origin.lng,e.extent.lng)}static pointInAnyBound(t,e,r=10){let n=!1;if(e.length>r){const r=U.buildRatchetLocationBoundsMap(e);n=U.pointInRatchetLocationBoundsMap(t,r)}else for(let r=0;r<e.length&&!n;r++)n=U.pointInBounds(t,e[r]);return n}static pointInRatchetLocationBoundsMap(t,e){let r=!1;const n=U.findRatchetLocationBoundsMapEntry(t,e);if(n){const e=n.bounds;for(let n=0;n<e.length&&!r;n++)r=U.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 F{constructor(){}static fetchGlobalRecord(t){let e=null;if(process?.env?(y.silly("Using process.env as global"),e=process.env):global?.process?.env?(y.silly("Using global.process.env as global"),e=global.process.env):global&&(y.silly("Using process.env as global"),e=global),!e){if(!t)throw M.fErr("Could not find process.env OR global in scope");y.silly("Returning null as global"),e=null}return e}static fetchGlobalVar(t){f.notNullOrUndefined(t,"envVar");return F.fetchGlobalRecord()[t]}static setGlobalVar(t,e){f.notNullOrUndefined(t,"envVar"),f.notNullOrUndefined(e,"value");F.fetchGlobalRecord()[t]=e}}class D{key;value}class j{static op(...t){}}class k{title;timeoutMS;__timeoutTokenFlagField=!0;constructor(t,e){this.title=t,this.timeoutMS=e}writeToLog(t=i.warn){y.logByLevel(t,"Timed out after %d ms waiting for results of %s",this.timeoutMS,this.title)}static isTimeoutToken(t){return!!t&&!!t.__timeoutTokenFlagField}}class V{get createTime(){return this._createTime}starts=new Map;ends=new Map;_createTime=Date.now();_label=p.createRandomHexString(4);_labelIncludedInOutput=!1;constructor(){}withLabel(t){return this._label=p.trimToNull(t),this}withLabelIncludedInOutput(t){return this._labelIncludedInOutput=t,this}get label(){return this._label}set label(t){this._label=t}get labelIncludedInOutput(){return this._labelIncludedInOutput}set labelIncludedInOutput(t){this._labelIncludedInOutput=t}start(t){f.notNullUndefinedOrOnlyWhitespaceString(t,"name");const e=Date.now();return this.starts.set(p.trimToNull(t),e),e}stop(t){f.notNullUndefinedOrOnlyWhitespaceString(t,"name");const e=Date.now();return this.ends.set(p.trimToNull(t),e),e}reset(t){f.notNullUndefinedOrOnlyWhitespaceString(t,"name"),this.starts.delete(p.trimToNull(t)),this.ends.delete(p.trimToNull(t))}hasTimer(t){return f.notNullUndefinedOrOnlyWhitespaceString(t,"name"),this.starts.has(t)}log(t,e,r=i.info){y.logByLevel(r,this.dump(t,e))}logExpected(t,e,r,n=i.info){y.logByLevel(n,this.dumpExpected(t,e,r))}timerNames(){return Array.from(this.starts.keys())}dumpAll(t=", ",e){const r=this.timerNames().map((t=>this.dump(t,e)));let n="Overall: "+this.dump(null,e);return r.length>0&&(n+=t,n+=r.join(t)),n}dump(t,e){let r=this._labelIncludedInOutput?this._label+" ":"";const n=p.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 "+L.formatMsDuration(o-s,!e):s&&(r+="running for "+L.formatMsDuration(Date.now()-s,!e))}return r}dumpExpected(t,e,r){let n=this._labelIncludedInOutput?this._label+" ":"";const s=p.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 "+L.formatMsDuration(i-o,!r);else if(o){const e=Date.now()-o,s=e/t-e;n+="running for "+L.formatMsDuration(e,!r)+" approx "+L.formatMsDuration(s,!r)+" remaining"}}return n}expectedRemainingMS(t,e){let r=null;if(!t||t<=0);else if(t>1);else{const n=p.trimToNull(e),s=e?this.starts.get(n):this._createTime,o=e?this.ends.get(n):Date.now();if(s&&o)r=o-s;else if(s){const e=Date.now()-s;r=e/t-e}}return r}elapsedMS(t){let e=null;const r=p.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 G{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,G.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 G.createTimeoutPromise("Wait "+t,t),y.silly("Finished wait of %d ms",t)}static dumpResult(t,e=!1){y.info("Success, result was : \n\n%s\n\n",JSON.stringify(t)),process.exit(0)}static dumpError(t,e=!1){y.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 y.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(G.dumpResult).catch(G.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 y.warn("%s: Invalid configuration for waitFor - exiting immediately",s),y.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 y.warn("%s: Caught error while waiting, giving up",s),!1}return null===i?(y.debug("%s:CurVal was null - aborting",s),!1):i==e?(y.debug("%s:Found expected value",s),!0):o>n?(y.debug("%s:Exceeded max cycles, giving up",s),!1):(y.debug("%s : value not reached yet, waiting (count = %d of %d)",s,o,n),await G.wait(r),G.waitFor(t,e,r,n,s,o+1))}static async runBoundedParallel(t,e,r,n=1,s=i.debug){const o=new V;let a=[],l=e;y.logByLevel(s,"Processing %d total elements %d at a time",e.length,n);const c=r||this;let u=0;const g=l.length;for(;l.length>0;){const e=l.slice(0,Math.min(l.length,n));l=l.slice(e.length);const r=e.map((e=>t.apply(c,e))),i=await Promise.all(r);u+=r.length,a=a.concat(i);const d=u/g;y.logByLevel(s,"%d elements remain : %s",l.length,o.dumpExpected(d))}return o.log(),a}static async runBoundedParallelSingleParam(t,e,r,n=1,s=i.debug){const o=N.wrapElementsInArray(e);return G.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 z{constructor(){}static sortNullToTop(t,e,r){return z.nullSafeSort(t,e,!0,r)}static sortNullToBottom(t,e,r){return z.nullSafeSort(t,e,!1,r)}static nullSafeSort(t,e,r,n){let s;return s=f.isNullOrUndefined(t)&&f.isNullOrUndefined(e)?0:f.isNullOrUndefined(t)?r?-1/0:1/0:f.isNullOrUndefined(e)?r?1/0:-1/0:n(t,e),s}static sortNumericStringsAsNumbers(t,e,r){const n=b.safeNumber(t),s=b.safeNumber(e);return z.nullSafeSort(n,s,r,((t,e)=>t-e))}}class W{static PACIFIC=new W("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 K{constructor(){}static mergeArrays(t){let e=null;if(t?.length){let r=0;t.forEach((t=>{r+=t.length})),e=new Uint8Array(r);let n=0;t.forEach((t=>{e.set(t,n),n+=t.length}))}return e}static deepEqual(t,e){let r=!1;if(t&&e&&t.length===e.length){let n=!1;for(let r=0;r<t.length&&!n;r++)n=t[r]!==e[r];r=!n}return r}}class H{constructor(){}static async webReadableStreamToUint8Array(t){const e=[],r=new WritableStream({write:async(t,r)=>("string"==typeof t?e.push(p.stringToUint8Array(t)):e.push(t),null),abort(t){M.throwFormattedErr("StringWebWritableStream failure : %s",t)}},{highWaterMark:3,size:()=>1});return await t.pipeTo(r),K.mergeArrays(e)}static async webReadableStreamToString(t){const e=await H.webReadableStreamToUint8Array(t);return(new TextDecoder).decode(e)}static stringToWebReadableStream(t){return new ReadableStream({start:e=>(t&&e.enqueue(t),e.close(),null)},{highWaterMark:t?t.length:null})}}class J{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 J(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 Z{static LOCAL_IP=null;static findLocalIp(t=!0){return y.info("Attempting to find local IP (V 2)"),Z.LOCAL_IP&&t?Promise.resolve(Z.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&&Z.grepSDP("a="+e.candidate.candidate,n,t)},r.createOffer((function(e){Z.grepSDP(e.sdp,n,t),r.setLocalDescription(e)}),(function(e){y.warn("Offer failed : %s",e),t(Z.updateLocalIP("FIND_UNSUPPORTED"))}))}else y.warn("IP Address find not supported on this device"),t(Z.updateLocalIP("FIND_UNSUPPORTED"))}catch(e){y.warn("Error finding local ip address : %s",e),t(Z.updateLocalIP("ERROR"))}})):(y.warn("Window not found, cannot calculate local ip"),Promise.resolve(Z.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 Z.LOCAL_IP=t,Z.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]&&Z.updateAddressList(s,e,r)}else if(~t.indexOf("c=")){const n=t.split(" ")[2];Z.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(Z.updateLocalIP(n[0]));else{const t=n.sort().join(",");y.warn("Multiple addresses found, returning sorted join : %s",t),r(Z.updateLocalIP(t))}}}class q{currentIp="UNSET";constructor(){Z.findLocalIp(!1).then((t=>{y.info("Setting local IP to %s",t),this.currentIp=t})).catch((t=>{y.warn("Unable to set current IP - leaving as UNSET : %s",t)}))}ready(){return"UNSET"!==this.currentIp}currentLocalIpAddress(){return this.currentIp}}class X{fixed;constructor(t){this.fixed=t}currentLocalIpAddress(){return this.fixed}}class $ extends Error{static RATCHET_RESTFUL_API_HTTP_ERROR_FLAG_KEY="__ratchetRestfulApiHttpErrorFlag";_httpStatusCode=500;_errors;_detailErrorCode;_endUserErrors;_details;_requestId;_wrappedError;constructor(...t){super($.combineErrorStringsWithDefault(t)),Object.setPrototypeOf(this,$.prototype),this._errors=t,this[$.RATCHET_RESTFUL_API_HTTP_ERROR_FLAG_KEY]=!0}static combineErrorStringsWithDefault(t,e="Internal Server Error"){return t&&t.length>0?t.join(","):e}setFormattedErrorMessage(e,...r){const n=t.format(e,...r);this.errors=[n]}withFormattedErrorMessage(t,...e){return this.setFormattedErrorMessage(t,...e),this}withHttpStatusCode(t){return this.httpStatusCode=t,this}withErrors(t){return this.errors=t,this}withDetailErrorCode(t){return this._detailErrorCode=t,this}withEndUserErrors(t){return this._endUserErrors=t,this}withDetails(t){return this._details=t,this}withRequestId(t){return this._requestId=t,this}withWrappedError(t){return this._wrappedError=t,this}isWrappedError(){return!!this._wrappedError}static wrapError(t){let e=null;return e=$.objectIsRestfulApiHttpError(t)?t:new $(t.message).withWrappedError(t).withHttpStatusCode(500),e}static objectIsRestfulApiHttpError(t){return t&&!0===t[$.RATCHET_RESTFUL_API_HTTP_ERROR_FLAG_KEY]}get httpStatusCode(){return this._httpStatusCode}get errors(){return this._errors}get detailErrorCode(){return this._detailErrorCode}get endUserErrors(){return this._endUserErrors}get details(){return this._details}get requestId(){return this._requestId}get wrappedError(){return this._wrappedError}set httpStatusCode(t){this._httpStatusCode=t||500}set errors(t){this._errors=t||["Internal Server Error"],this.message=$.combineErrorStringsWithDefault(this._errors)}set detailErrorCode(t){this._detailErrorCode=t}set endUserErrors(t){this._endUserErrors=t}set details(t){this._details=t}set requestId(t){this._requestId=t||"MISSING"}set wrappedError(t){this._wrappedError=t}static errorIsX0x(t,e){let r=!1;if(t&&$.objectIsRestfulApiHttpError(t)){const n=t,s=b.safeNumber(n.httpStatusCode),o=100*e;r=s>=o&&s<=o+99}return r}static errorIs40x(t){return $.errorIsX0x(t,4)}static errorIs50x(t){return $.errorIsX0x(t,5)}}class Y{static GOOGLE_VERIFY_URL="https://www.google.com/recaptcha/api/siteverify?secret={{KEY}}&response={{TOKEN}}";static async verifyRecaptchaToken(t,e,r=o){y.debug("Verifying recaptcha token : %s",e);let n=null;if(!p.safeString(e))return y.warn("Recaptcha validation error, no token passed : %s",e),n;y.info("Validating Recaptcha via Google API : %s",e);let s=Y.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){y.error("Failed to read from google : %s",t),n=!1}return n}}class Q{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,f.notNullOrUndefined(t,"accountSid"),f.notNullOrUndefined(e,"authToken"),f.notNullOrUndefined(r,"outBoundNumber"),f.true(Q.isValidE164Number(r),"outBoundNumber invalid format")}static async sendMessageDirect(t,e,r,n,s){const o=new Q(t,e,r);return await o.sendMessage(n,s)}static generateTwilioBasicAuth(t,e){return"Basic "+P.generateBase64VersionOfString(t+":"+e)}async sendMessage(t,e){const r=[];if(f.notNullOrUndefined(t,"recipientPhoneNumbers"),f.notNullOrUndefined(p.trimToNull(e),"message"),f.true(t.length>0,"recipientPhoneNumbers non-empty"),t.forEach((t=>{f.true(Q.isValidE164Number(t),t+" is not valid")})),t&&t.length>0&&p.trimToNull(e)){y.info("Sending %s to %j",e,t);for(let n=0;n<t.length;n++){const s=t[n];if(y.info("To: %s",s),!Q.isValidE164Number(s))throw new Error("number must be E164 format!");const i="Body="+encodeURIComponent(e)+"&From="+encodeURIComponent(this.outBoundNumber)+"&To="+encodeURIComponent(s),a={method:"post",headers:{authorization:Q.generateTwilioBasicAuth(this.accountSid,this.authToken),"Content-Type":"application/x-www-form-urlencoded"},body:i},l=await o(Q.TWILLIO_BASE_API_URL+"/Accounts/"+this.accountSid+"/Messages.json",a),c=await l.json();y.debug("TwilioRatchet: For %s got %j",s,c),r.push(c)}}else y.warn("Not sending empty message / empty recipients");return r}static isValidE164Number(t){return/^\+?[1-9]\d{1,14}$/.test(t)}}class tt{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=b.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){y.warn("Failed to reparse date %s in format %s : %s",o,e,t)}})),s)}}}class et{static transform(t,e=[]){return et.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=et.applyTransformToPrimitive(t,e,r,n);break;case"object":s=et.applyTransformToObject(t,e,r,n);break;default:throw new Error("Unrecognized type "+o)}return s}static applyTransformToObject(t,e=[],r,n=null){y.silly("Tranform: %j, %s, %j",t,r,n);let s=null;return null!=t&&(Array.isArray(t)?(s=[],t.forEach((n=>{const o=et.transformGeneric(n,e,r,t);null!=o&&s.push(o)}))):(s={},Object.keys(t).forEach((r=>{const n=t[r],o=et.applyTransformToPrimitive(r,e,!0,t);if(null!=o){let r=et.transformGeneric(n,e,!1,t);r=et.applyTransformToPrimitive(r,e,!1,t),null!=r&&(s[o]=r)}})),s=et.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}}const rt={Success:"Success",RolledBack:"RolledBack",RollbackFailed:"RollbackFailed"};class nt{static async execute(t,e,r){f.notNullOrUndefined(t,"steps"),f.notNullOrUndefined(e,"initialContext"),f.true(t.length>0,"steps may not be empty");const n=Object.assign({},r||{});n.stepLogLevel=n.stepLogLevel||i.info;const s={finalContext:e,finalState:null},o=t.map(((t,e)=>t.name||"Step "+e));y.info("Beginning transaction of %d steps",t.length);let a=0;do{y.logByLevel(n.stepLogLevel,"Processing step %d of %d (%s)",a+1,t.length,o[a]);try{await t[a].execute(s.finalContext,a),a++}catch(t){y.error("Failure detected on step %d : %s : %s : Rolling back",a,o[a],t,t),s.error=t,s.errorStep=a}}while(!s.error&&a<t.length);if(s.error)do{y.logByLevel(n.stepLogLevel,"Rolling back step %d of %d (%s)",a+1,t.length,o[a]);try{t[a].rollback?await t[a].rollback(s.finalContext,a):y.info("Skipping - no rollback defined")}catch(t){y.error("Very bad - rollback code failed on step %d : %s : Aborting in invalid state: %s",a,o[a],t,t),s.rollbackError=t,s.rollbackErrorStep=a}a--}while(a>=0);if(s.finalState=s.rollbackError?rt.RollbackFailed:s.error?rt.RolledBack:rt.Success,y.info("Transaction completed with status : %s",s.finalState),n?.executeAfterRollback&&s.finalState!==rt.Success)try{y.info("Applying executeAfterRollback"),await n.executeAfterRollback(s)}catch(t){y.error("Very bad - failure in executeAfterRollback : %s",t,t)}if(n?.executeAfterRollbackFailure&&s.finalState!==rt.Success)try{y.info("Applying executeAfterRollbackFailure"),await n.executeAfterRollbackFailure(s)}catch(t){y.error("Very bad - failure in executeAfterRollbackFailure : %s",t,t)}return s}}export{N as ArrayRatchet,P as Base64Ratchet,E as BooleanRatchet,q as BrowserLocalIpProvider,tt as BuiltInTransforms,g as ClassicSingleLineLogMessageFormatter,A as CompositeLastSuccessProvider,v as DateRatchet,L as DurationRatchet,I as EnumRatchet,M as ErrorRatchet,C as EsmRatchet,_ as ExpiredJwtHandling,R as ExpiringObject,B as ExpiringObjectConfig,X as FixedLocalIpProvider,U as GeolocationRatchet,F as GlobalRatchet,Y as GoogleRecaptchaRatchet,T as Histogram,O as JwtRatchet,D as KeyValue,J as LogMessageBuilder,u as LogMessageFormatType,y as Logger,m as LoggerInstance,i as LoggerLevelName,l as LoggerOutputFunction,a as LoggerRingBuffer,c as LoggerUtil,x as MapRatchet,Z as NetworkRatchet,j as No,d as NoneLogMessageFormatter,b as NumberRatchet,G as PromiseRatchet,S as Ratchet2d,w as RatchetInfo,f as RequireRatchet,$ as RestfulApiHttpError,z as SortRatchet,V as StopWatch,p as StringRatchet,h as StructuredJsonLogMessageFormatter,W as TimeZoneRatchet,k as TimeoutToken,rt as TransactionFinalState,nt as TransactionRatchet,et as TransformRatchet,Q as TwilioRatchet,K as Uint8ArrayRatchet,H as WebStreamRatchet};
1
+ import t from"util";import e from"jsonwebtoken";import{DateTime as r}from"luxon";import{$enum as n}from"ts-enum-util";import s from"url";import o from"cross-fetch";const i={error:"error",warn:"warn",info:"info",verbose:"verbose",debug:"debug",silly:"silly"};class a{_lastLogMessage={messageSource:"No message yet",timestamp:(new Date).getTime(),lvl:i.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++}}const l={Console:"Console",ConsoleNoDebug:"ConsoleNoDebug",StdOut:"StdOut"};class c{static LOG_LEVELS_IN_ORDER=[i.error,i.warn,i.info,i.verbose,i.debug,i.silly];static handlerFunctionMap(t=l.Console){const e=new Map;if(t===l.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(i.error,t),e.set(i.warn,t),e.set(i.info,t),e.set(i.verbose,t),e.set(i.debug,t),e.set(i.silly,t)}else e.set(i.error,console.error),e.set(i.warn,console.warn),e.set(i.info,console.info),e.set(i.verbose,t===l.ConsoleNoDebug?console.log:console.debug),e.set(i.debug,t===l.ConsoleNoDebug?console.log:console.debug),e.set(i.silly,t===l.ConsoleNoDebug?console.log:console.debug);return e}static defaultHandlerFunction(){return console.info}static levelIsEnabled(t,e){const r=c.LOG_LEVELS_IN_ORDER.indexOf(t),n=c.LOG_LEVELS_IN_ORDER.indexOf(e);return r>-1&&n>-1&&n>=r}}const u={ClassicSingleLine:"ClassicSingleLine",StructuredJson:"StructuredJson",None:"None"};class g{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 d{formatMessage(t,e){return null}}class h{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 f{static isNullOrUndefined(t){return Object.is(t,null)||Object.is(t,void 0)}static notNullOrUndefined(t,e="object"){if(f.isNullOrUndefined(t))throw new Error(e+" may not be null or undefined")}static notNullUndefinedOrOnlyWhitespaceString(t,e="string"){if(f.isNullOrUndefined(t)||""===t.trim())throw new Error(e+" may not be null or undefined or only whitespace string")}static notNullUndefinedOrEmptyArray(t,e="string"){if(f.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"){f.equal(t,!0,e)}static noNullOrUndefinedValuesInArray(t,e=null,r=null){if(f.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(f.isNullOrUndefined(t[e]))throw new Error(`Array index ${e} was null or undefined ${r}`)}static noNullOrUndefinedValuesInRestArgs(t,...e){if(f.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(f.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 f.noNullOrUndefinedValuesInArray(t,e)}}class p{static RFC_3986_RESERVED=["!","*","'","(",")",";",":","@","&","=","+","$",",","/","?","#","[","]","%"];static DIGITS="0123456789";static HEXITS=p.DIGITS+"ABCDEF";static UPPER_CASE_LATIN="ABCDEFGHIJKLMNOPQRSTUVWXYZ";static LOWER_CASE_LATIN="abcdefghijklmnopqrstuvwxyz";static CASE_INSENSITIVE_LATIN=p.UPPER_CASE_LATIN+p.LOWER_CASE_LATIN;static stringIsInGivenAlphabet(t,e){let r=!1;if(t&&e)for(let n=0;n<t.length&&!r;n++)r=e.includes(t.charAt(n));return r}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(p.trimToNull(t))try{e=JSON.parse(t)}catch(t){e=null}return e}static canParseAsJson(t){return!!p.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){f.true(p.allUnique(e),"Alphabet must be unique");const n=1===t?[""]:p.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(" ","-"),p.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?p.safeString(t):"").trim()}static trimToNull(t){const e=p.trimToEmpty(t);return e.length>0?e:null}static trimAllStringPropertiesToNullInPlace(t){return p.trimAllStringPropertiesInPlace(t,!1)}static trimAllStringPropertiesToEmptyInPlace(t){return p.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?p.trimToEmpty(t[r]):p.trimToNull(t[r]))})),t}static stripNonNumeric(t){let e=t;if(null!=t&&!p.stringContainsOnlyNumbers(t)){e="";for(let r=0;r<t.length;r++){const n=t.charAt(r);(p.stringContainsOnlyNumbers(n)||0===r&&"-"===n)&&(e+=n)}}return e}static csvSafe(t){let e=p.trimToEmpty(p.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))}static replaceAll(t,e,r){let n=t;return n?.length&&e?.length&&r?.length&&(n=n.split(e).join(r)),n}}class m{loggerInstanceName;_guid=Math.floor(1e6*Math.random());_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("Guid: %s Options: %j",this._guid,this.options),this?.options?.preProcessors?.length){const t=this.options.preProcessors.map((t=>p.trimToNull(t.label())||"Unlabelled"));this.info("Preprocessors: %j",t)}}get guid(){return this._guid}changeRingBufferSize(t){this._ringBuffer=null,t&&(this._ringBuffer=new a(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 a(this._options.ringBufferSize)),this._options.formatType){case u.None:this._formatter=new d;break;case u.StructuredJson:this._formatter=new h;break;default:this._formatter=new g}this._level=this._options.initialLevel,this._handlerFunctionMap=c.handlerFunctionMap(this._options.outputFunction);const e=this._loggerMeta?this._loggerMeta.loggerInstanceId:null;this._loggerMeta={options:this._options,loggerInstanceName:this.loggerInstanceName,loggerInstanceId:e||p.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(c.levelIsEnabled(t,this._level)){let r=this._options.trace||"";r+="["+t+"] ",e.unshift(r);(this._handlerFunctionMap.get(t)||c.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(c.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)||c.defaultHandlerFunction)(e),this._ringBuffer&&this._ringBuffer.addToRingBuffer(r)}}return e}error(t,...e){const r=this.createLogMessage(i.error,{},t,...e);return this.recordMessage(r)}errorP(...t){this.consoleLogPassThru(i.error,...t)}warn(t,...e){const r=this.createLogMessage(i.warn,{},t,...e);return this.recordMessage(r)}warnP(...t){this.consoleLogPassThru(i.warn,...t)}info(t,...e){const r=this.createLogMessage(i.info,{},t,...e);return this.recordMessage(r)}infoP(...t){this.consoleLogPassThru(i.info,...t)}verbose(t,...e){const r=this.createLogMessage(i.verbose,{},t,...e);return this.recordMessage(r)}verboseP(...t){this.consoleLogPassThru(i.verbose,...t)}debug(t,...e){const r=this.createLogMessage(i.debug,{},t,...e);return this.recordMessage(r)}debugP(...t){this.consoleLogPassThru(i.debug,...t)}silly(t,...e){const r=this.createLogMessage(i.silly,{},t,...e);return this.recordMessage(r)}sillyP(...t){this.consoleLogPassThru(i.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 y{static LOGGER_INSTANCE_MAP_GLOBAL_KEY="RATCHET_GLOBAL_LOGGER_MAP_V01";static GLOBAL_PROVIDER=process||global||window;static DEFAULT_OPTIONS={initialLevel:i.info,formatType:u.ClassicSingleLine,trace:null,globalVars:{},outputFunction:l.Console,ringBufferSize:0,preProcessors:[]};static applyDefaultsToOptions(t){const e=t||{};return e.initialLevel=e.initialLevel??y.DEFAULT_OPTIONS.initialLevel,e.formatType=e.formatType??y.DEFAULT_OPTIONS.formatType,e.trace=e.trace??y.DEFAULT_OPTIONS.trace,e.globalVars=e.globalVars??y.DEFAULT_OPTIONS.globalVars,e.outputFunction=e.outputFunction??y.DEFAULT_OPTIONS.outputFunction,e.ringBufferSize=e.ringBufferSize??y.DEFAULT_OPTIONS.ringBufferSize,e}static loggerInstances(){if(!y.GLOBAL_PROVIDER)throw new Error("Cannot create logger - could not find a global provider");let t=y.GLOBAL_PROVIDER[y.LOGGER_INSTANCE_MAP_GLOBAL_KEY];return t||(t=new Map,y.GLOBAL_PROVIDER[y.LOGGER_INSTANCE_MAP_GLOBAL_KEY]=t),t}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");y.DEFAULT_OPTIONS=Object.assign({},t),e&&Array.from(y.loggerInstances().values()).forEach((e=>e.options=t))}static getLogger(t="default",e){let r=y.loggerInstances().get(t);if(!r){const n=y.applyDefaultsToOptions(e);r=new m(t,n),y.loggerInstances().set(t,r)}return r}static recordMessageBuilder(t){return y.getLogger().recordMessageBuilder(t)}static recordMessage(t){return y.getLogger().recordMessage(t)}static formatMessages(t){return y.getLogger().formatMessages(t)}static updateTracePrefix(t){return y.getLogger().updateTracePrefix(t)}static changeRingBufferSize(t){return y.getLogger().changeRingBufferSize(t)}static getRingBuffer(){return y.getLogger().ringBuffer}static dumpConfigurationIntoLog(){return y.getLogger().dumpConfigurationIntoLog()}static dumpOptionsIntoLog(){return y.getLogger().dumpOptionsIntoLog()}static getLevel(){return y.getLogger().level}static setLevel(t){y.getLogger().level=t}static getOptions(){return y.getLogger().options}static getMessages(t=null,e=!1,r=!1){const n=y.getLogger().ringBuffer;return n?n.getMessages(t,e,r):null}static consoleLogPassThru(t,...e){return y.getLogger().consoleLogPassThru(t,...e)}static error(t,...e){return y.getLogger().error(t,...e)}static errorP(...t){return y.getLogger().errorP(...t)}static warn(t,...e){return y.getLogger().warn(t,...e)}static warnP(...t){return y.getLogger().warnP(...t)}static info(t,...e){return y.getLogger().info(t,...e)}static infoP(...t){return y.getLogger().infoP(...t)}static verbose(t,...e){return y.getLogger().verbose(t,...e)}static verboseP(...t){return y.getLogger().verboseP(...t)}static debug(t,...e){return y.getLogger().debug(t,...e)}static debugP(...t){return y.getLogger().debugP(...t)}static silly(t,...e){return y.getLogger().silly(t,...e)}static sillyP(...t){return y.getLogger().sillyP(...t)}static takeSnapshot(){const t=y.getLogger().ringBuffer;return t?t.takeSnapshot():null}static logByLevel(t,e,...r){return y.getLogger().logByLevel(t,e,...r)}static importMessages(t,e="",r=!0){return y.getLogger().importMessages(t,e,r)}static getLastLogMessage(){const t=y.getLogger().ringBuffer;return t?t.getLastLogMessage():null}}class b{static MAX_LEADING_ZEROS_FORMAT_LENGTH=1e3;static toFixedDecimalNumber(t,e){const r=b.safeNumber(t);return null==r?r:b.safeNumber(r.toFixed(e))}static leadingZeros(t,e){const r=String(t);if(r.length<e){let t="0000";if(e>b.MAX_LEADING_ZEROS_FORMAT_LENGTH)throw"Cannot format number that large (max length is "+b.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=b.safeNumber(t),s=b.safeNumber(e),o=b.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):(y.warn("Value is of type %s, returning default",r),n=e),isNaN(n)&&(y.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=>b.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){f.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){f.notNullOrUndefined(t,"items"),f.notNullOrUndefined(e,"buckets"),f.true(t>0&&t===Math.floor(t),"Items integer larger than 0"),f.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!==b.safeNumber(t)}static boolToInt(t){return E.parseBool(t)?1:0}}class w{constructor(){}static translateToOriginVector(t){let e=null;return w.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 w.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 w.validPlane(t)&&w.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&&w.validPoint(t.p1)&&w.validPoint(t.p2)&&!w.samePoint(t.p1,t.p2)}static validLines(t){return!!t&&E.allTrue(t.map((t=>w.validLine(t))))}static validPolyLine(t){return!!t&&t.pts?.length>1&&E.allTrue(t.pts.map((t=>w.validPoint(t))))}static polyLineToLines(t){let e=null;if(w.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 w.validPolyLine(t)?t.pts[t.pts.length-1]:null}static lineToPolyLine(t){return w.validLine(t)?{pts:[t.p1,t.p2]}:null}static linesToPolyLines(t){let e=null;if(w.validLines(t)){e=[];let r=w.lineToPolyLine(t[0]);for(let n=1;n<t.length;n++)w.samePoint(w.lastPointOnPolyLine(r),t[n].p1)?r.pts.push(t[n].p2):(e.push(r),r=w.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=>w.validPoint(t))),!1)}static planeContainsPoint(t,e){return w.validPlane(e)&&w.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=>w.planeContainsPoint(t,e))).reduce(((t,e)=>t&&e),!0)}static linesToPoints(t){let e=null;return w.validLines(t)&&(e=t.map((t=>[t.p1,t.p2])).flat()),e}static pointsToLines(t){let e=null;if(w.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(w.validPoints(t)){r=Object.assign([],t),n=w.translateToOriginVector(r),r=w.translate(r,n);let e=w.minimalContainingPlane(r);r=w.xToY(r),e={width:e.height,height:e.width},n={x:-1*n.y,y:-1*n.x},r=w.mirrorPointsOnPlane(r,e,!0,!1),r=w.translate(r,n)}const s=e>4?e%4:e;return s>1&&(r=w.rotateRightAboutOrigin90Degrees(r,s-1)),r}static planeContainsLines(t,e){return t&&w.planeContainsPoints(t.map((t=>[t.p1,t.p2])).flat(),e)}static planeContainsPolyLine(t,e){return w.planeContainsLines(w.polyLineToLines(t),e)}static planeContainsLine(t,e){return w.validPlane(e)&&w.validLine(t)&&w.planeContainsPoint(t.p1,e)&&w.planeContainsPoint(t.p2,e)}static xToY(t){let e=null;return w.validPoints(t)&&(e=t.map((t=>({x:t.y,y:t.x})))),e}static translate(t,e){let r=null;return w.validPoints(t)&&w.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 w.validPoints(t)&&w.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(w.validPoints(t)&&w.validPlane(e)&&w.validPlane(r)){const s=w.scaleVector(e,r);n=t.map((t=>({x:t.x*s.x,y:t.y*s.y}))),n=w.mirrorPointsOnPlane(n,r,r.rightToLeft!==e.rightToLeft,r.topToBottom!==e.topToBottom)}return n}static transformPointToNewPlane(t,e,r){const n=w.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 S{constructor(){}static buildInformation(){return{version:"267",hash:"8fc50c6b9a7172b970787d36cc33c84c63a4f879",branch:"alpha-2023-10-24-2",tag:"alpha-2023-10-24-2",timeBuiltISO:"2023-10-24T22:08:24-0700",notes:"No notes"}}}class _{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}}var L;!function(t){t[t.RETURN_NULL=0]="RETURN_NULL",t[t.THROW_EXCEPTION=1]="THROW_EXCEPTION",t[t.ADD_FLAG=2]="ADD_FLAG"}(L||(L={}));class T{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=b.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=b.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 O{_encryptionKeyPromise;_decryptKeysPromise;_jtiGenerator;_decryptOnlyKeyUseLogLevel;_parseFailureLogLevel;static EXPIRED_FLAG_NAME="__jwtServiceExpiredFlag";constructor(t,e,r=p.createType4Guid,n=i.info,s=i.debug){this._encryptionKeyPromise=t,this._decryptKeysPromise=e,this._jtiGenerator=r,this._decryptOnlyKeyUseLogLevel=n,this._parseFailureLogLevel=s,f.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[O.EXPIRED_FLAG_NAME]}static async invalidSafeDecode(t,r,n=i.silly){let s=null;try{s=e.verify(t,r,{ignoreExpiration:!0})}catch(t){y.logByLevel(n,"Caught %s - ignoring",t)}return s}static async secondsRemainingUntilExpiration(t){let e=null;if(p.trimToNull(t)){const r=await O.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 O.secondsRemainingUntilExpiration(t);let r=null;return null!=e&&(r=1e3*e),r}async decodeToken(t,e=L.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(p.obscure(n[e],1,1));const a=e===n.length-1&&this.parseFailureLogLevel?this.parseFailureLogLevel:i.silly;o=await O.invalidSafeDecode(t,n[e],a),o&&e>=r.length&&y.logByLevel(this.decryptOnlyKeyUseLogLevel,"Used old key to decode token : %s",p.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(y.debug("JWT token expired or before NBF : on %d, %s ago",o.exp,T.formatMsDuration(1e3*n)),e){case L.THROW_EXCEPTION:throw new Error("JWT Token was expired");case L.ADD_FLAG:o[O.EXPIRED_FLAG_NAME]=!0;break;default:o=null}}}else y.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=p.trimToNull(n)?p.trimToNull(n):await this.selectRandomEncryptionKey();if(f.notNullOrUndefined(t,"payload"),t.jti=this.jtiGenerator?this.jtiGenerator():null,r){const e=Math.floor(Date.now()/1e3)+r;y.debug("Forcing expiration to %d",e),t.exp=e}return e.sign(t,s)}async refreshJWTString(t,e,r){const n=e?L.ADD_FLAG:L.THROW_EXCEPTION,s=await this.decodeToken(t,n),o=s.exp&&s.iat?s.exp-s.iat:null,i=r||o;O.removeJwtFields(s),O.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[O.EXPIRED_FLAG_NAME]}}class M{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){y.error("Failed to json stringify"),r=String(t)}return e&&y.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 M.fErr(t,...e)}}class x{static expandNestedKeysToObjects(t,e="."){if(!e||1!==e.length)throw new Error("Invalid separator (must be single character)");const r={};return Object.keys(t).forEach((n=>{const s=n.split(e);let o=r;for(;s.length>1;)o[s[0]]=o[s[0]]||{},o=o[s[0]],s.splice(0,1);o[s[0]]=t[n]})),r}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 M.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?x.findValue(t[e[0]],e.slice(1)):null:t}static findValueDotPath(t,e){return e&&0!=e.length?t?x.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]=x.cleanup(o[t][e]);else o[t]=x.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&&y.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){y.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=x.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(f.notNullOrUndefined(t),f.notNullOrUndefined(e),f.notNullOrUndefined(r),0===t.length||x.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=x.findValueDotPath(t[i],e);n===s||n===s-1?o=n:a<=r?n=i:s=i}return o}}class P{static safeObjectToBase64JSON(t){return t?P.generateBase64VersionOfString(JSON.stringify(t)):null}static safeBase64JSONParse(t){let e={};try{t&&(e=JSON.parse(P.base64StringToString(t,"utf-8")))}catch(r){y.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 P.generateBase64VersionOfUint8Array(p.stringToUint8Array(t))}static generateBase64VersionOfUint8Array(t){return P.uint8ArrayToBase64String(t)}static base64StringToUint8Array(t){try{return P.base64StringToBytes(t)}catch(e){throw y.error("Failed to decode base64: %s",t),e}}static base64StringToString(t,e="utf8"){return new TextDecoder(e).decode(P.base64StringToUint8Array(t))}static BASE64_ABC=["A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z","0","1","2","3","4","5","6","7","8","9","+","/"];static BASE64_CODES=[255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,62,255,255,255,63,52,53,54,55,56,57,58,59,60,61,255,255,255,0,255,255,255,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,255,255,255,255,255,255,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51];static getBase64Code(t){if(t>=P.BASE64_CODES.length)throw new Error("Unable to parse base64 string.");const e=P.BASE64_CODES[t];if(255===e)throw new Error("Unable to parse base64 string.");return e}static uint8ArrayToBase64UrlString(t){let e=P.uint8ArrayToBase64String(t);return e=e.split("+").join("-").split("/").join("_").split("=").join(""),e}static uint8ArrayToBase64String(t){let e,r="";const n=t.length;for(e=2;e<n;e+=3)r+=P.BASE64_ABC[t[e-2]>>2],r+=P.BASE64_ABC[(3&t[e-2])<<4|t[e-1]>>4],r+=P.BASE64_ABC[(15&t[e-1])<<2|t[e]>>6],r+=P.BASE64_ABC[63&t[e]];return e===n+1&&(r+=P.BASE64_ABC[t[e-2]>>2],r+=P.BASE64_ABC[(3&t[e-2])<<4],r+="=="),e===n&&(r+=P.BASE64_ABC[t[e-2]>>2],r+=P.BASE64_ABC[(3&t[e-2])<<4|t[e-1]>>4],r+=P.BASE64_ABC[(15&t[e-1])<<2],r+="="),r}static base64StringToBytes(t){if(t.length%4!=0)throw M.fErr("Unable to parse base64 string, length: %s",t.length);const e=t.indexOf("=");if(-1!==e&&e<t.length-2)throw M.fErr("Unable to parse base64 string, index %s",e);const r=t.endsWith("==")?2:t.endsWith("=")?1:0,n=t.length,s=new Uint8Array(n/4*3);let o;for(let e=0,r=0;e<n;e+=4,r+=3)o=P.getBase64Code(t.charCodeAt(e))<<18|P.getBase64Code(t.charCodeAt(e+1))<<12|P.getBase64Code(t.charCodeAt(e+2))<<6|P.getBase64Code(t.charCodeAt(e+3)),s[r]=o>>16,s[r+1]=o>>8&255,s[r+2]=255&o;return s.subarray(0,s.length-r)}static base64UrlStringToBytes(t){let e=t.split("-").join("+").split("_").join("/");for(;e.length%4!=0;)e+="=";return y.info("pre: %s post %s",t,e),P.base64StringToBytes(e)}static encodeStringToBase64String(t,e=new TextEncoder){return P.uint8ArrayToBase64String(e.encode(t))}static encodeStringToBase64UrlString(t,e=new TextEncoder){return P.uint8ArrayToBase64UrlString(e.encode(t))}static decodeBase64StringToString(t,e=new TextDecoder){return e.decode(P.base64StringToBytes(t))}static decodeBase64UrlStringToString(t,e=new TextDecoder){return e.decode(P.base64UrlStringToBytes(t))}}class N{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 v{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(v.FULL_DATE_FORMAT)}static formatDefaultDateOnly(t){return r.fromJSDate(t).toFormat(v.DEFAULT_DATE_FORMAT)}static parseDefaultDate(t){return r.fromFormat(t,v.DEFAULT_DATE_FORMAT).toJSDate()}static parseCommonUsDate(t){let e=null;if(t){let n=v.COMMON_US_DATE_FORMAT;2===t.indexOf("-")&&(n=n.split("/").join("-")),e=r.fromFormat(t,n).toJSDate()}return e}}class I{static listEnumKeys(t){return n(t).getValues()}static keyToEnum(t,e,r=!1){const s=n(t);let o=null;if(e&&(o=s.asValueOrDefault(e,null),!o&&!r)){const r=I.listEnumKeys(t).find((t=>t.toUpperCase()===e.toUpperCase()));r&&(o=s.asValueOrDefault(r,null))}return o}static parseCsvToEnumArray(t,e){return p.trimToEmpty(e).split(",").map((t=>t.trim())).map((e=>I.keyToEnum(t,e))).filter((t=>!!t))}}class R{static fetchDirName(t){if(!t)throw new Error("Need to provide root (should be import.meta.url)");return s.fileURLToPath(new URL(".",t))}static fetchFileName(t){if(!t)throw new Error("Need to provide root (should be import.meta.url)");return s.fileURLToPath(t)}}class C{_config;_cacheObject;_lastUpdatedEpochMS;_timeRemainingMS;constructor(t){this._config=Object.assign({},this.defaultConfig(),t||{}),this._config.overrideTimeRemainingMS&&this._config.timeToLiveMS&&M.throwFormattedErr("Cannot define both time to live and overrideTimeRemainingMS"),this._config.overrideTimeRemainingMS||this._config.timeToLiveMS||M.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:i.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()),y.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();y.logByLevel(this._config.logLevel,"Auto call to generator returned %j",t),this.update(t)}return this._cacheObject}}class B{timeToLiveMS;generator;initialValue;logLevel;overrideTimeRemainingMS}class U{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 U.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 b.safeNumber((69.172*r).toFixed(4))}static milesInDegLatLng(t,e=0){f.notNullOrUndefined(t),f.true(t>=0);return t/U.degreeOfLatLngInMiles(e)}static centerOfBounds(t){return f.notNullOrUndefined(t),{lat:(t.extent.lat+t.origin.lat)/2,lng:(t.extent.lng+t.origin.lng)/2}}static calculateSplits(t,e,r){f.notNullOrUndefined(t),f.notNullOrUndefined(e),f.notNullOrUndefined(r),t.sort(((t,e)=>t.origin[r]-e.origin[r]));const n=t.map((t=>U.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))):y.silly("Skipping, size : %d, %j",r,s)}return y.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&&M.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=U.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=U.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(U.combineBounds(s))}}y.info("New bounds : %j",n)}return n}static canonicalizeBounds(t,e=!1){f.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:b.safeNumber(t.lat.toFixed(e)),lng:b.safeNumber(t.lng.toFixed(e))}}static locationToBounds(t,e){const r=U.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&&b.between(t.lat,e.origin.lat,e.extent.lat)&&b.between(t.lng,e.origin.lng,e.extent.lng)}static pointInAnyBound(t,e,r=10){let n=!1;if(e.length>r){const r=U.buildRatchetLocationBoundsMap(e);n=U.pointInRatchetLocationBoundsMap(t,r)}else for(let r=0;r<e.length&&!n;r++)n=U.pointInBounds(t,e[r]);return n}static pointInRatchetLocationBoundsMap(t,e){let r=!1;const n=U.findRatchetLocationBoundsMapEntry(t,e);if(n){const e=n.bounds;for(let n=0;n<e.length&&!r;n++)r=U.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 D{constructor(){}static fetchGlobalRecord(t){let e=null;if(process?.env?(y.silly("Using process.env as global"),e=process.env):global?.process?.env?(y.silly("Using global.process.env as global"),e=global.process.env):global&&(y.silly("Using process.env as global"),e=global),!e){if(!t)throw M.fErr("Could not find process.env OR global in scope");y.silly("Returning null as global"),e=null}return e}static fetchGlobalVar(t){f.notNullOrUndefined(t,"envVar");return D.fetchGlobalRecord()[t]}static setGlobalVar(t,e){f.notNullOrUndefined(t,"envVar"),f.notNullOrUndefined(e,"value");D.fetchGlobalRecord()[t]=e}}class F{key;value}class j{static op(...t){}}class k{title;timeoutMS;__timeoutTokenFlagField=!0;constructor(t,e){this.title=t,this.timeoutMS=e}writeToLog(t=i.warn){y.logByLevel(t,"Timed out after %d ms waiting for results of %s",this.timeoutMS,this.title)}static isTimeoutToken(t){return!!t&&!!t.__timeoutTokenFlagField}}class V{get createTime(){return this._createTime}starts=new Map;ends=new Map;_createTime=Date.now();_label=p.createRandomHexString(4);_labelIncludedInOutput=!1;constructor(){}withLabel(t){return this._label=p.trimToNull(t),this}withLabelIncludedInOutput(t){return this._labelIncludedInOutput=t,this}get label(){return this._label}set label(t){this._label=t}get labelIncludedInOutput(){return this._labelIncludedInOutput}set labelIncludedInOutput(t){this._labelIncludedInOutput=t}start(t){f.notNullUndefinedOrOnlyWhitespaceString(t,"name");const e=Date.now();return this.starts.set(p.trimToNull(t),e),e}stop(t){f.notNullUndefinedOrOnlyWhitespaceString(t,"name");const e=Date.now();return this.ends.set(p.trimToNull(t),e),e}reset(t){f.notNullUndefinedOrOnlyWhitespaceString(t,"name"),this.starts.delete(p.trimToNull(t)),this.ends.delete(p.trimToNull(t))}hasTimer(t){return f.notNullUndefinedOrOnlyWhitespaceString(t,"name"),this.starts.has(t)}log(t,e,r=i.info){y.logByLevel(r,this.dump(t,e))}logExpected(t,e,r,n=i.info){y.logByLevel(n,this.dumpExpected(t,e,r))}timerNames(){return Array.from(this.starts.keys())}dumpAll(t=", ",e){const r=this.timerNames().map((t=>this.dump(t,e)));let n="Overall: "+this.dump(null,e);return r.length>0&&(n+=t,n+=r.join(t)),n}dump(t,e){let r=this._labelIncludedInOutput?this._label+" ":"";const n=p.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 "+T.formatMsDuration(o-s,!e):s&&(r+="running for "+T.formatMsDuration(Date.now()-s,!e))}return r}dumpExpected(t,e,r){let n=this._labelIncludedInOutput?this._label+" ":"";const s=p.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 "+T.formatMsDuration(i-o,!r);else if(o){const e=Date.now()-o,s=e/t-e;n+="running for "+T.formatMsDuration(e,!r)+" approx "+T.formatMsDuration(s,!r)+" remaining"}}return n}expectedRemainingMS(t,e){let r=null;if(!t||t<=0);else if(t>1);else{const n=p.trimToNull(e),s=e?this.starts.get(n):this._createTime,o=e?this.ends.get(n):Date.now();if(s&&o)r=o-s;else if(s){const e=Date.now()-s;r=e/t-e}}return r}elapsedMS(t){let e=null;const r=p.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 G{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,G.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 G.createTimeoutPromise("Wait "+t,t),y.silly("Finished wait of %d ms",t)}static dumpResult(t,e=!1){y.info("Success, result was : \n\n%s\n\n",JSON.stringify(t)),process.exit(0)}static dumpError(t,e=!1){y.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 y.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(G.dumpResult).catch(G.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 y.warn("%s: Invalid configuration for waitFor - exiting immediately",s),y.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 y.warn("%s: Caught error while waiting, giving up",s),!1}return null===i?(y.debug("%s:CurVal was null - aborting",s),!1):i==e?(y.debug("%s:Found expected value",s),!0):o>n?(y.debug("%s:Exceeded max cycles, giving up",s),!1):(y.debug("%s : value not reached yet, waiting (count = %d of %d)",s,o,n),await G.wait(r),G.waitFor(t,e,r,n,s,o+1))}static async runBoundedParallel(t,e,r,n=1,s=i.debug){const o=new V;let a=[],l=e;y.logByLevel(s,"Processing %d total elements %d at a time",e.length,n);const c=r||this;let u=0;const g=l.length;for(;l.length>0;){const e=l.slice(0,Math.min(l.length,n));l=l.slice(e.length);const r=e.map((e=>t.apply(c,e))),i=await Promise.all(r);u+=r.length,a=a.concat(i);const d=u/g;y.logByLevel(s,"%d elements remain : %s",l.length,o.dumpExpected(d))}return o.log(),a}static async runBoundedParallelSingleParam(t,e,r,n=1,s=i.debug){const o=A.wrapElementsInArray(e);return G.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 z{constructor(){}static sortNullToTop(t,e,r){return z.nullSafeSort(t,e,!0,r)}static sortNullToBottom(t,e,r){return z.nullSafeSort(t,e,!1,r)}static nullSafeSort(t,e,r,n){let s;return s=f.isNullOrUndefined(t)&&f.isNullOrUndefined(e)?0:f.isNullOrUndefined(t)?r?-1/0:1/0:f.isNullOrUndefined(e)?r?1/0:-1/0:n(t,e),s}static sortNumericStringsAsNumbers(t,e,r){const n=b.safeNumber(t),s=b.safeNumber(e);return z.nullSafeSort(n,s,r,((t,e)=>t-e))}}class K{static PACIFIC=new K("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 W{constructor(){}static mergeArrays(t){let e=null;if(t?.length){let r=0;t.forEach((t=>{r+=t.length})),e=new Uint8Array(r);let n=0;t.forEach((t=>{e.set(t,n),n+=t.length}))}return e}static deepEqual(t,e){let r=!1;if(t&&e&&t.length===e.length){let n=!1;for(let r=0;r<t.length&&!n;r++)n=t[r]!==e[r];r=!n}return r}}class H{constructor(){}static async webReadableStreamToUint8Array(t){const e=[],r=new WritableStream({write:async(t,r)=>("string"==typeof t?e.push(p.stringToUint8Array(t)):e.push(t),null),abort(t){M.throwFormattedErr("StringWebWritableStream failure : %s",t)}},{highWaterMark:3,size:()=>1});return await t.pipeTo(r),W.mergeArrays(e)}static async webReadableStreamToString(t){const e=await H.webReadableStreamToUint8Array(t);return(new TextDecoder).decode(e)}static stringToWebReadableStream(t){return new ReadableStream({start:e=>(t&&e.enqueue(t),e.close(),null)},{highWaterMark:t?t.length:null})}}class J{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 J(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 Z{static LOCAL_IP=null;static findLocalIp(t=!0){return y.info("Attempting to find local IP (V 2)"),Z.LOCAL_IP&&t?Promise.resolve(Z.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&&Z.grepSDP("a="+e.candidate.candidate,n,t)},r.createOffer((function(e){Z.grepSDP(e.sdp,n,t),r.setLocalDescription(e)}),(function(e){y.warn("Offer failed : %s",e),t(Z.updateLocalIP("FIND_UNSUPPORTED"))}))}else y.warn("IP Address find not supported on this device"),t(Z.updateLocalIP("FIND_UNSUPPORTED"))}catch(e){y.warn("Error finding local ip address : %s",e),t(Z.updateLocalIP("ERROR"))}})):(y.warn("Window not found, cannot calculate local ip"),Promise.resolve(Z.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 Z.LOCAL_IP=t,Z.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]&&Z.updateAddressList(s,e,r)}else if(~t.indexOf("c=")){const n=t.split(" ")[2];Z.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(Z.updateLocalIP(n[0]));else{const t=n.sort().join(",");y.warn("Multiple addresses found, returning sorted join : %s",t),r(Z.updateLocalIP(t))}}}class q{currentIp="UNSET";constructor(){Z.findLocalIp(!1).then((t=>{y.info("Setting local IP to %s",t),this.currentIp=t})).catch((t=>{y.warn("Unable to set current IP - leaving as UNSET : %s",t)}))}ready(){return"UNSET"!==this.currentIp}currentLocalIpAddress(){return this.currentIp}}class X{fixed;constructor(t){this.fixed=t}currentLocalIpAddress(){return this.fixed}}class Y extends Error{static RATCHET_RESTFUL_API_HTTP_ERROR_FLAG_KEY="__ratchetRestfulApiHttpErrorFlag";_httpStatusCode=500;_errors;_detailErrorCode;_endUserErrors;_details;_requestId;_wrappedError;constructor(...t){super(Y.combineErrorStringsWithDefault(t)),Object.setPrototypeOf(this,Y.prototype),this._errors=t,this[Y.RATCHET_RESTFUL_API_HTTP_ERROR_FLAG_KEY]=!0}static combineErrorStringsWithDefault(t,e="Internal Server Error"){return t&&t.length>0?t.join(","):e}setFormattedErrorMessage(e,...r){const n=t.format(e,...r);this.errors=[n]}withFormattedErrorMessage(t,...e){return this.setFormattedErrorMessage(t,...e),this}withHttpStatusCode(t){return this.httpStatusCode=t,this}withErrors(t){return this.errors=t,this}withDetailErrorCode(t){return this._detailErrorCode=t,this}withEndUserErrors(t){return this._endUserErrors=t,this}withDetails(t){return this._details=t,this}withRequestId(t){return this._requestId=t,this}withWrappedError(t){return this._wrappedError=t,this}isWrappedError(){return!!this._wrappedError}static wrapError(t){let e=null;return e=Y.objectIsRestfulApiHttpError(t)?t:new Y(t.message).withWrappedError(t).withHttpStatusCode(500),e}static objectIsRestfulApiHttpError(t){return t&&!0===t[Y.RATCHET_RESTFUL_API_HTTP_ERROR_FLAG_KEY]}get httpStatusCode(){return this._httpStatusCode}get errors(){return this._errors}get detailErrorCode(){return this._detailErrorCode}get endUserErrors(){return this._endUserErrors}get details(){return this._details}get requestId(){return this._requestId}get wrappedError(){return this._wrappedError}set httpStatusCode(t){this._httpStatusCode=t||500}set errors(t){this._errors=t||["Internal Server Error"],this.message=Y.combineErrorStringsWithDefault(this._errors)}set detailErrorCode(t){this._detailErrorCode=t}set endUserErrors(t){this._endUserErrors=t}set details(t){this._details=t}set requestId(t){this._requestId=t||"MISSING"}set wrappedError(t){this._wrappedError=t}static errorIsX0x(t,e){let r=!1;if(t&&Y.objectIsRestfulApiHttpError(t)){const n=t,s=b.safeNumber(n.httpStatusCode),o=100*e;r=s>=o&&s<=o+99}return r}static errorIs40x(t){return Y.errorIsX0x(t,4)}static errorIs50x(t){return Y.errorIsX0x(t,5)}}class ${static GOOGLE_VERIFY_URL="https://www.google.com/recaptcha/api/siteverify?secret={{KEY}}&response={{TOKEN}}";static async verifyRecaptchaToken(t,e,r=o){y.debug("Verifying recaptcha token : %s",e);let n=null;if(!p.safeString(e))return y.warn("Recaptcha validation error, no token passed : %s",e),n;y.info("Validating Recaptcha via Google API : %s",e);let s=$.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){y.error("Failed to read from google : %s",t),n=!1}return n}}class Q{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,f.notNullOrUndefined(t,"accountSid"),f.notNullOrUndefined(e,"authToken"),f.notNullOrUndefined(r,"outBoundNumber"),f.true(Q.isValidE164Number(r),"outBoundNumber invalid format")}static async sendMessageDirect(t,e,r,n,s){const o=new Q(t,e,r);return await o.sendMessage(n,s)}static generateTwilioBasicAuth(t,e){return"Basic "+P.generateBase64VersionOfString(t+":"+e)}async sendMessage(t,e){const r=[];if(f.notNullOrUndefined(t,"recipientPhoneNumbers"),f.notNullOrUndefined(p.trimToNull(e),"message"),f.true(t.length>0,"recipientPhoneNumbers non-empty"),t.forEach((t=>{f.true(Q.isValidE164Number(t),t+" is not valid")})),t&&t.length>0&&p.trimToNull(e)){y.info("Sending %s to %j",e,t);for(let n=0;n<t.length;n++){const s=t[n];if(y.info("To: %s",s),!Q.isValidE164Number(s))throw new Error("number must be E164 format!");const i="Body="+encodeURIComponent(e)+"&From="+encodeURIComponent(this.outBoundNumber)+"&To="+encodeURIComponent(s),a={method:"post",headers:{authorization:Q.generateTwilioBasicAuth(this.accountSid,this.authToken),"Content-Type":"application/x-www-form-urlencoded"},body:i},l=await o(Q.TWILLIO_BASE_API_URL+"/Accounts/"+this.accountSid+"/Messages.json",a),c=await l.json();y.debug("TwilioRatchet: For %s got %j",s,c),r.push(c)}}else y.warn("Not sending empty message / empty recipients");return r}static isValidE164Number(t){return/^\+?[1-9]\d{1,14}$/.test(t)}}class tt{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=b.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){y.warn("Failed to reparse date %s in format %s : %s",o,e,t)}})),s)}}}class et{static transform(t,e=[]){return et.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=et.applyTransformToPrimitive(t,e,r,n);break;case"object":s=et.applyTransformToObject(t,e,r,n);break;default:throw new Error("Unrecognized type "+o)}return s}static applyTransformToObject(t,e=[],r,n=null){y.silly("Tranform: %j, %s, %j",t,r,n);let s=null;return null!=t&&(Array.isArray(t)?(s=[],t.forEach((n=>{const o=et.transformGeneric(n,e,r,t);null!=o&&s.push(o)}))):(s={},Object.keys(t).forEach((r=>{const n=t[r],o=et.applyTransformToPrimitive(r,e,!0,t);if(null!=o){let r=et.transformGeneric(n,e,!1,t);r=et.applyTransformToPrimitive(r,e,!1,t),null!=r&&(s[o]=r)}})),s=et.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}}const rt={Success:"Success",RolledBack:"RolledBack",RollbackFailed:"RollbackFailed"};class nt{static async execute(t,e,r){f.notNullOrUndefined(t,"steps"),f.notNullOrUndefined(e,"initialContext"),f.true(t.length>0,"steps may not be empty");const n=Object.assign({},r||{});n.stepLogLevel=n.stepLogLevel||i.info;const s={finalContext:e,finalState:null},o=t.map(((t,e)=>t.name||"Step "+e));y.info("Beginning transaction of %d steps",t.length);let a=0;do{y.logByLevel(n.stepLogLevel,"Processing step %d of %d (%s)",a+1,t.length,o[a]);try{await t[a].execute(s.finalContext,a),a++}catch(t){y.error("Failure detected on step %d : %s : %s : Rolling back",a,o[a],t,t),s.error=t,s.errorStep=a}}while(!s.error&&a<t.length);if(s.error)do{y.logByLevel(n.stepLogLevel,"Rolling back step %d of %d (%s)",a+1,t.length,o[a]);try{t[a].rollback?await t[a].rollback(s.finalContext,a):y.info("Skipping - no rollback defined")}catch(t){y.error("Very bad - rollback code failed on step %d : %s : Aborting in invalid state: %s",a,o[a],t,t),s.rollbackError=t,s.rollbackErrorStep=a}a--}while(a>=0);if(s.finalState=s.rollbackError?rt.RollbackFailed:s.error?rt.RolledBack:rt.Success,y.info("Transaction completed with status : %s",s.finalState),n?.executeAfterRollback&&s.finalState!==rt.Success)try{y.info("Applying executeAfterRollback"),await n.executeAfterRollback(s)}catch(t){y.error("Very bad - failure in executeAfterRollback : %s",t,t)}if(n?.executeAfterRollbackFailure&&s.finalState!==rt.Success)try{y.info("Applying executeAfterRollbackFailure"),await n.executeAfterRollbackFailure(s)}catch(t){y.error("Very bad - failure in executeAfterRollbackFailure : %s",t,t)}return s}}export{A as ArrayRatchet,P as Base64Ratchet,E as BooleanRatchet,q as BrowserLocalIpProvider,tt as BuiltInTransforms,g as ClassicSingleLineLogMessageFormatter,N as CompositeLastSuccessProvider,v as DateRatchet,T as DurationRatchet,I as EnumRatchet,M as ErrorRatchet,R as EsmRatchet,L as ExpiredJwtHandling,C as ExpiringObject,B as ExpiringObjectConfig,X as FixedLocalIpProvider,U as GeolocationRatchet,D as GlobalRatchet,$ as GoogleRecaptchaRatchet,_ as Histogram,O as JwtRatchet,F as KeyValue,J as LogMessageBuilder,u as LogMessageFormatType,y as Logger,m as LoggerInstance,i as LoggerLevelName,l as LoggerOutputFunction,a as LoggerRingBuffer,c as LoggerUtil,x as MapRatchet,Z as NetworkRatchet,j as No,d as NoneLogMessageFormatter,b as NumberRatchet,G as PromiseRatchet,w as Ratchet2d,S as RatchetInfo,f as RequireRatchet,Y as RestfulApiHttpError,z as SortRatchet,V as StopWatch,p as StringRatchet,h as StructuredJsonLogMessageFormatter,K as TimeZoneRatchet,k as TimeoutToken,rt as TransactionFinalState,nt as TransactionRatchet,et as TransformRatchet,Q as TwilioRatchet,W as Uint8ArrayRatchet,H as WebStreamRatchet};
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-ring-buffer.ts","../src/logger/logger-output-function.ts","../src/logger/logger-util.ts","../src/logger/log-message-format-type.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/jwt/expired-jwt-handling.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/sort-ratchet.ts","../src/lang/time-zone-ratchet.ts","../src/lang/uint-8-array-ratchet.ts","../src/lang/web-stream-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/network/restful-api-http-error.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-final-state.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","error","warn","info","verbose","debug","silly","LoggerRingBuffer","_lastLogMessage","messageSource","timestamp","Date","getTime","lvl","_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","LoggerOutputFunction","Console","ConsoleNoDebug","StdOut","LoggerUtil","static","handlerFunctionMap","outputFn","output","Map","process","stdout","write","myStdOut","chunk","cb","set","console","log","defaultHandlerFunction","levelIsEnabled","targetLevel","currentEnabled","idxTarget","LOG_LEVELS_IN_ORDER","indexOf","LogMessageFormatType","ClassicSingleLine","StructuredJson","None","ClassicSingleLineLogMessageFormatter","formatMessage","msg","meta","tmp","options","trace","util","format","subsVars","NoneLogMessageFormatter","StructuredJsonLogMessageFormatter","globalVars","params","toISOString","loggerInstanceName","loggerInstanceId","JSON","stringify","RequireRatchet","isNullOrUndefined","ob","is","undefined","notNullOrUndefined","name","notNullUndefinedOrOnlyWhitespaceString","trim","notNullUndefinedOrEmptyArray","length","equal","ob1","ob2","message","noNullOrUndefinedValuesInArray","arr","expectedLength","customMsg","noNullOrUndefinedValuesInRestArgs","restArgs","constructorArgumentsMatchLengthAndAreNonNull","args","Array","from","arguments","len","StringRatchet","DIGITS","UPPER_CASE_LATIN","LOWER_CASE_LATIN","stringIsInGivenAlphabet","input","alphabet","includes","charAt","stringToUint8Array","val","TextEncoder","encode","uint8ArrayToString","TextDecoder","decode","attemptJsonParse","trimToNull","parse","err","canParseAsJson","allUnique","check","Set","test","has","add","allPermutationsOfLength","true","step","forEach","s","createType4Guid","replace","c","r","random","toString","createRandomHexString","floor","canonicalize","value","toLowerCase","RFC_3986_RESERVED","formatBytes","bytes","decimals","dm","parseFloat","pow","toFixed","safeString","String","stringContainsOnlyNumbers","stringContainsOnlyAlphanumeric","stringContainsOnlyHex","stringContainsOnly","inVal","validCharsIn","validChars","obscure","prefixLength","suffixLength","pl","sl","rem","substring","leadingZeros","pad","negative","sVal","startsWith","trimToEmpty","x","trimAllStringPropertiesToNullInPlace","trimAllStringPropertiesInPlace","trimAllStringPropertiesToEmptyInPlace","toEmpty","keys","key","stripNonNumeric","csvSafe","split","join","stripNonAscii","reduce","previousValue","currentValue","charCodeAt","replaceAll","src","dst","LoggerInstance","_loggerMeta","_ringBuffer","_formatter","_level","_handlerFunctionMap","_options","inOptions","addPreProcessor","proc","preProcessors","ringBuffer","dumpConfigurationIntoLog","dumpOptionsIntoLog","labels","map","p","label","changeRingBufferSize","ringBufferSize","updateTracePrefix","newValue","newOpts","formatType","initialLevel","outputFunction","oldId","level","newLevel","consoleLogPassThru","passThruPrefix","unshift","get","createLogMessage","now","formatMessages","msgs","m","filter","recordMessageBuilder","msgBuild","recordMessage","toMessage","inMsg","errorP","warnP","infoP","verboseP","debugP","sillyP","logByLevel","importMessages","prefixIn","addTimestamp","prefix","mOut","Logger","applyDefaultsToOptions","DEFAULT_OPTIONS","changeDefaultOptions","retroactive","LOGGER_INSTANCES","values","li","getLogger","loggerName","inst","getRingBuffer","getLevel","setLevel","getOptions","buf","NumberRatchet","toFixedDecimalNumber","placesAfterPoint","v","safeNumber","MAX_LEADING_ZEROS_FORMAT_LENGTH","between","inTest","inP1","inP2","p1","p2","ifNotNumber","useDefaultForNullAndUndefined","type","Number","isNaN","numberCSVToList","inputCSV","fitToWindow","b1","b2","low","min","high","windowSize","groupNumbersIntoContiguousRanges","inputData","minRangeSize","sort","a","b","singles","ranges","j","distributeItemsEvenly","items","buckets","offset","loc","createRange","minInclusive","maxExclusive","BooleanRatchet","allTrue","vals","emptyArraysReturn","anyTrue","parseBool","intToBool","boolToInt","Ratchet2d","translateToOriginVector","points","validPoints","y","minimalContainingPlane","width","height","scaleVector","validPlane","samePoint","atLeastOneDimensionShared","plane","validLine","line","validPoint","validLines","lines","l","validPolyLine","pline","pts","polyLineToLines","lastPointOnPolyLine","polyLine","lineToPolyLine","linesToPolyLines","currentPLine","pt","planeContainsPoint","planeContainsPoints","linesToPoints","flat","pointsToLines","rotateRightAboutOrigin90Degrees","times","translate","xToY","mirrorPointsOnPlane","timesToRotate","planeContainsLines","planeContainsPolyLine","planeContainsLine","xlate","mirrorX","mirrorY","transformPointsToNewPlane","scale","rightToLeft","topToBottom","transformPointToNewPlane","point","transformLines","fitCurve","curveDef","inputX","idx","xSpread","ySpread","yAdd","RatchetInfo","buildInformation","version","hash","branch","tag","timeBuiltISO","notes","Histogram","entries","update","addValue","entry","find","e","item","count","localeCompare","sortKeys","getEntries","getTotalCount","h","countForValue","percentForValue","total","ExpiredJwtHandling","DurationRatchet","formatMsDuration","ms","includeMS","rem_ms","seconds","minutes","hours","days","f","colonFormatMsDuration","daysBetween","d1","d2","DateTime","fromJSDate","diff","createSteps","startEpochMS","endEpochMS","timezone","outputFormat","stepUnit","curDate","fromMillis","setZone","endDate","toFormat","plus","JwtRatchet","_encryptionKeyPromise","_decryptKeysPromise","_jtiGenerator","_decryptOnlyKeyUseLogLevel","_parseFailureLogLevel","encryptionKeyPromise","decryptKeysPromise","jtiGenerator","decryptOnlyKeyUseLogLevel","parseFailureLogLevel","hasExpiredFlag","EXPIRED_FLAG_NAME","invalidSafeDecode","payloadString","decryptKey","logLevel","jwt","verify","ignoreExpiration","secondsRemainingUntilExpiration","decodeTokenNoVerify","nowSecond","exp","expSeconds","msRemainingUntilExpiration","secs","decodeToken","expiredHandling","RETURN_NULL","encKeys","encryptionKeyArray","decKeys","concat","keysTried","payload","nowSeconds","nbfSeconds","nbf","age","THROW_EXCEPTION","ADD_FLAG","encKey","isArray","selectRandomEncryptionKey","createTokenString","expirationSeconds","overrideEncryptionKey","jti","expires","sign","refreshJWTString","tokenString","allowExpired","handling","originalDurationSeconds","iat","newExpirationSeconds","removeJwtFields","removeExpiredFlag","token","k","ErrorRatchet","safeStringifyErr","err2","asErr","fErr","throwFormattedErr","MapRatchet","expandNestedKeysToObjects","separator","path","target","splice","mapByUniqueProperty","propName","groupByProperty","findValue","toSearch","findValueDotPath","dotPath","simpleDeepCompare","object1","object2","toKeyValueList","returnArray","fromKeyValueList","list","cleanup","obj","stripZero","stripNull","stripUndefined","stripEmptyString","o","extractValueFromMapIgnoreCase","finder","newVal","safeCallFunction","fnName","caseInsensitiveAccess","keyName","keyNameCI","ArrayRatchet","wrapElementsInArray","compareTwoArrays","ar1","ar2","fn","id1","id2","matching","setOneOnly","setTwoOnly","aVal","pVal","comp","extractSubarrayFromSortedByNumberField","fieldDotPath","bottomIdx","findSplit","topIdx","bottomValue","curIdx","curVal","Base64Ratchet","safeObjectToBase64JSON","generateBase64VersionOfString","safeBase64JSONParse","base64StringToString","generateBase64VersionOfBlob","blob","Promise","resolve","reject","reader","FileReader","onloadend","result","readAsDataURL","generateBase64VersionOfUint8Array","uint8ArrayToBase64String","base64StringToUint8Array","b64encoded","base64StringToBytes","encoding","getBase64Code","charCode","BASE64_CODES","code","uint8ArrayToBase64UrlString","BASE64_ABC","str","index","missingOctets","endsWith","n","Uint8Array","buffer","subarray","base64UrlStringToBytes","dec","encodeStringToBase64String","encoder","encodeStringToBase64UrlString","decodeBase64StringToString","decoder","decodeBase64UrlStringToString","CompositeLastSuccessProvider","sources","mostRecent","mostRecentSrc","lastSuccess","DateRatchet","formatFullDate","FULL_DATE_FORMAT","formatDefaultDateOnly","DEFAULT_DATE_FORMAT","parseDefaultDate","fromFormat","toJSDate","parseCommonUsDate","templ","COMMON_US_DATE_FORMAT","EnumRatchet","listEnumKeys","enumeration","$enum","getValues","keyToEnum","caseSensitive","asValueOrDefault","mKey","toUpperCase","parseCsvToEnumArray","EsmRatchet","fetchDirName","root","url","fileURLToPath","URL","fetchFileName","ExpiringObject","_config","_cacheObject","_lastUpdatedEpochMS","_timeRemainingMS","inputConfig","defaultConfig","overrideTimeRemainingMS","timeToLiveMS","initialValue","defaultTimeRemainingMS","generator","lastUpdatedEpochMS","ageMS","doNotUpdateClock","fetchCacheObjectTimeRemainingMS","fetch","ExpiringObjectConfig","GeolocationRatchet","distanceBetweenLocations","lat1","lon1","lat2","lon2","unit","uU","radlat1","PI","radlat2","theta","radtheta","dist","sin","cos","acos","distanceBetweenRatchetGeoLocations","loc1","loc2","lat","lng","degreeOfLatLngInMiles","latitudeInDecimalDegress","latInRads","cosLat","milesInDegLatLng","miles","centerOfBounds","bounds","extent","origin","calculateSplits","slices","field","splits","clusterGeoBounds","inputVal","latSlices","lngSlices","lngSplits","lngStartIdx","lngEndIdx","lngBatch","latSplits","latStartIdx","latEndIdx","latBatch","combineBounds","canonicalizeBounds","inp","allowCrossover","minLat","maxLat","minLng","maxLng","roundLocation","roundDigits","locationToBounds","radiusMiles","sameLocation","pointInBounds","bound","pointInAnyBound","inBounds","minPointsBeforeMapping","mp","buildRatchetLocationBoundsMap","pointInRatchetLocationBoundsMap","findRatchetLocationBoundsMapEntry","latOffset","lngOffset","ltIdx","trunc","lngIdx","mapping","latEntries","lngEntries","newRow","row","GlobalRatchet","fetchGlobalRecord","returnNullOnNone","env","global","fetchGlobalVar","envVar","setGlobalVar","KeyValue","No","op","TimeoutToken","title","timeoutMS","__timeoutTokenFlagField","writeToLog","isTimeoutToken","StopWatch","createTime","_createTime","starts","ends","_label","_labelIncludedInOutput","withLabel","withLabelIncludedInOutput","labelIncludedInOutput","stop","reset","delete","hasTimer","shortForm","dump","logExpected","pctComplete","dumpExpected","timerNames","dumpAll","outs","cleanName","end","elapsedMS","remainMS","expectedRemainingMS","PromiseRatchet","resolveOnEvent","evtSrc","okEvtNames","errEvtNames","res","rej","on","timeout","srcPromise","race","createTimeoutPromise","id","setTimeout","clearTimeout","wait","time","dumpResult","autoDebug","exit","dumpError","logErrorAndReturnNull","runPromiseAndDump","promise","then","catch","waitFor","testFunction","expectedValue","intervalMS","maxCycles","runBoundedParallel","promiseFn","context","maxConcurrent","sw","remain","ctx","processed","totalCount","curBatch","proms","apply","all","pct","runBoundedParallelSingleParam","wrappedParams","asyncForEachSerial","array","callback","asyncForEachParallel","SortRatchet","sortNullToTop","bothNonNullSort","nullSafeSort","sortNullToBottom","nullsOnTop","Infinity","sortNumericStringsAsNumbers","sortNonNumbersToTop","an","bn","ax","bx","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","Uint8ArrayRatchet","mergeArrays","myArrays","deepEqual","arr1","arr2","mismatch","WebStreamRatchet","webReadableStreamToUint8Array","stream","out","writer","WritableStream","async","controller","abort","reason","highWaterMark","pipeTo","webReadableStreamToString","stringToWebReadableStream","ReadableStream","enqueue","close","LogMessageBuilder","wrapped","clone","subVars","NetworkRatchet","findLocalIp","useCache","LOCAL_IP","window","RTCPeerConnection","rtc","iceServers","addrs","create","createDataChannel","reliable","onicecandidate","evt","candidate","grepSDP","createOffer","offerDesc","sdp","setLocalDescription","updateLocalIP","parseUrl","href","match","protocol","host","hostname","port","pathname","search","newIp","parts","addr","updateAddressList","newAddr","displayAddrs","multi","BrowserLocalIpProvider","currentIp","ready","currentLocalIpAddress","FixedLocalIpProvider","fixed","RestfulApiHttpError","_httpStatusCode","_errors","_detailErrorCode","_endUserErrors","_details","_requestId","_wrappedError","errors","super","combineErrorStringsWithDefault","setPrototypeOf","prototype","RATCHET_RESTFUL_API_HTTP_ERROR_FLAG_KEY","defMessage","setFormattedErrorMessage","withFormattedErrorMessage","withHttpStatusCode","httpStatusCode","withErrors","withDetailErrorCode","detailErrorCode","withEndUserErrors","endUserErrors","withDetails","details","withRequestId","requestId","withWrappedError","isWrappedError","wrapError","objectIsRestfulApiHttpError","wrappedError","errorIsX0x","errIn","xClass","bot","errorIs40x","errorIs50x","GoogleRecaptchaRatchet","verifyRecaptchaToken","keySecret","fetchFn","GOOGLE_VERIFY_URL","resp","body","json","success","TwilioRatchet","accountSid","authToken","outBoundNumber","isValidE164Number","sendMessageDirect","recipientPhoneNumbers","ratchet","sendMessage","generateTwilioBasicAuth","sid","phoneNumber","encodeURIComponent","post","method","headers","authorization","TWILLIO_BASE_API_URL","parsedResponse","num","BuiltInTransforms","keysOnly","rule","transform","isKey","valuesOnly","stringReplaceTransform","stripStringTransform","retainAll","removeAll","snakeToCamelCase","group1","stringToNumber","camelToSnakeCase","concatenateToNewField","newFieldName","oldFieldNamesInOrder","abortIfFieldMissing","temp","numberToBool","fieldNames","oldVal","boolToNumber","makeDuplicateField","oldName","newName","addField","valueToAdd","reformatDateFields","oldFormat","newFormat","oldValue","TransformRatchet","toTransform","rules","transformGeneric","applyTransformToPrimitive","applyTransformToObject","newKey","TransactionFinalState","Success","RolledBack","RollbackFailed","TransactionRatchet","execute","steps","initialContext","inConfiguration","config","stepLogLevel","finalContext","finalState","stepNames","errorStep","rollback","rollbackError","rollbackErrorStep","executeAfterRollback","executeAfterRollbackFailure"],"mappings":"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"}
1
+ {"version":3,"file":"index.mjs","sources":["../src/logger/logger-level-name.ts","../src/logger/logger-ring-buffer.ts","../src/logger/logger-output-function.ts","../src/logger/logger-util.ts","../src/logger/log-message-format-type.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/jwt/expired-jwt-handling.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/sort-ratchet.ts","../src/lang/time-zone-ratchet.ts","../src/lang/uint-8-array-ratchet.ts","../src/lang/web-stream-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/network/restful-api-http-error.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-final-state.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","error","warn","info","verbose","debug","silly","LoggerRingBuffer","_lastLogMessage","messageSource","timestamp","Date","getTime","lvl","_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","LoggerOutputFunction","Console","ConsoleNoDebug","StdOut","LoggerUtil","static","handlerFunctionMap","outputFn","output","Map","process","stdout","write","myStdOut","chunk","cb","set","console","log","defaultHandlerFunction","levelIsEnabled","targetLevel","currentEnabled","idxTarget","LOG_LEVELS_IN_ORDER","indexOf","LogMessageFormatType","ClassicSingleLine","StructuredJson","None","ClassicSingleLineLogMessageFormatter","formatMessage","msg","meta","tmp","options","trace","util","format","subsVars","NoneLogMessageFormatter","StructuredJsonLogMessageFormatter","globalVars","params","toISOString","loggerInstanceName","loggerInstanceId","JSON","stringify","RequireRatchet","isNullOrUndefined","ob","is","undefined","notNullOrUndefined","name","notNullUndefinedOrOnlyWhitespaceString","trim","notNullUndefinedOrEmptyArray","length","equal","ob1","ob2","message","noNullOrUndefinedValuesInArray","arr","expectedLength","customMsg","noNullOrUndefinedValuesInRestArgs","restArgs","constructorArgumentsMatchLengthAndAreNonNull","args","Array","from","arguments","len","StringRatchet","DIGITS","UPPER_CASE_LATIN","LOWER_CASE_LATIN","stringIsInGivenAlphabet","input","alphabet","includes","charAt","stringToUint8Array","val","TextEncoder","encode","uint8ArrayToString","TextDecoder","decode","attemptJsonParse","trimToNull","parse","err","canParseAsJson","allUnique","check","Set","test","has","add","allPermutationsOfLength","true","step","forEach","s","createType4Guid","replace","c","r","random","toString","createRandomHexString","floor","canonicalize","value","toLowerCase","RFC_3986_RESERVED","formatBytes","bytes","decimals","dm","parseFloat","pow","toFixed","safeString","String","stringContainsOnlyNumbers","stringContainsOnlyAlphanumeric","stringContainsOnlyHex","stringContainsOnly","inVal","validCharsIn","validChars","obscure","prefixLength","suffixLength","pl","sl","rem","substring","leadingZeros","pad","negative","sVal","startsWith","trimToEmpty","x","trimAllStringPropertiesToNullInPlace","trimAllStringPropertiesInPlace","trimAllStringPropertiesToEmptyInPlace","toEmpty","keys","key","stripNonNumeric","csvSafe","split","join","stripNonAscii","reduce","previousValue","currentValue","charCodeAt","replaceAll","src","dst","LoggerInstance","_guid","_loggerMeta","_ringBuffer","_formatter","_level","_handlerFunctionMap","_options","inOptions","addPreProcessor","proc","preProcessors","ringBuffer","dumpConfigurationIntoLog","dumpOptionsIntoLog","labels","map","p","label","guid","changeRingBufferSize","ringBufferSize","updateTracePrefix","newValue","newOpts","formatType","initialLevel","outputFunction","oldId","level","newLevel","consoleLogPassThru","passThruPrefix","unshift","get","createLogMessage","now","formatMessages","msgs","m","filter","recordMessageBuilder","msgBuild","recordMessage","toMessage","inMsg","errorP","warnP","infoP","verboseP","debugP","sillyP","logByLevel","importMessages","prefixIn","addTimestamp","prefix","mOut","Logger","global","window","applyDefaultsToOptions","DEFAULT_OPTIONS","loggerInstances","GLOBAL_PROVIDER","LOGGER_INSTANCE_MAP_GLOBAL_KEY","changeDefaultOptions","retroactive","values","li","getLogger","loggerName","inst","getRingBuffer","getLevel","setLevel","getOptions","buf","NumberRatchet","toFixedDecimalNumber","placesAfterPoint","v","safeNumber","MAX_LEADING_ZEROS_FORMAT_LENGTH","between","inTest","inP1","inP2","p1","p2","ifNotNumber","useDefaultForNullAndUndefined","type","Number","isNaN","numberCSVToList","inputCSV","fitToWindow","b1","b2","low","min","high","windowSize","groupNumbersIntoContiguousRanges","inputData","minRangeSize","sort","a","b","singles","ranges","j","distributeItemsEvenly","items","buckets","offset","loc","createRange","minInclusive","maxExclusive","BooleanRatchet","allTrue","vals","emptyArraysReturn","anyTrue","parseBool","intToBool","boolToInt","Ratchet2d","translateToOriginVector","points","validPoints","y","minimalContainingPlane","width","height","scaleVector","validPlane","samePoint","atLeastOneDimensionShared","plane","validLine","line","validPoint","validLines","lines","l","validPolyLine","pline","pts","polyLineToLines","lastPointOnPolyLine","polyLine","lineToPolyLine","linesToPolyLines","currentPLine","pt","planeContainsPoint","planeContainsPoints","linesToPoints","flat","pointsToLines","rotateRightAboutOrigin90Degrees","times","translate","xToY","mirrorPointsOnPlane","timesToRotate","planeContainsLines","planeContainsPolyLine","planeContainsLine","xlate","mirrorX","mirrorY","transformPointsToNewPlane","scale","rightToLeft","topToBottom","transformPointToNewPlane","point","transformLines","fitCurve","curveDef","inputX","idx","xSpread","ySpread","yAdd","RatchetInfo","buildInformation","version","hash","branch","tag","timeBuiltISO","notes","Histogram","entries","update","addValue","entry","find","e","item","count","localeCompare","sortKeys","getEntries","getTotalCount","h","countForValue","percentForValue","total","ExpiredJwtHandling","DurationRatchet","formatMsDuration","ms","includeMS","rem_ms","seconds","minutes","hours","days","f","colonFormatMsDuration","daysBetween","d1","d2","DateTime","fromJSDate","diff","createSteps","startEpochMS","endEpochMS","timezone","outputFormat","stepUnit","curDate","fromMillis","setZone","endDate","toFormat","plus","JwtRatchet","_encryptionKeyPromise","_decryptKeysPromise","_jtiGenerator","_decryptOnlyKeyUseLogLevel","_parseFailureLogLevel","encryptionKeyPromise","decryptKeysPromise","jtiGenerator","decryptOnlyKeyUseLogLevel","parseFailureLogLevel","hasExpiredFlag","EXPIRED_FLAG_NAME","invalidSafeDecode","payloadString","decryptKey","logLevel","jwt","verify","ignoreExpiration","secondsRemainingUntilExpiration","decodeTokenNoVerify","nowSecond","exp","expSeconds","msRemainingUntilExpiration","secs","decodeToken","expiredHandling","RETURN_NULL","encKeys","encryptionKeyArray","decKeys","concat","keysTried","payload","nowSeconds","nbfSeconds","nbf","age","THROW_EXCEPTION","ADD_FLAG","encKey","isArray","selectRandomEncryptionKey","createTokenString","expirationSeconds","overrideEncryptionKey","jti","expires","sign","refreshJWTString","tokenString","allowExpired","handling","originalDurationSeconds","iat","newExpirationSeconds","removeJwtFields","removeExpiredFlag","token","k","ErrorRatchet","safeStringifyErr","err2","asErr","fErr","throwFormattedErr","MapRatchet","expandNestedKeysToObjects","separator","path","target","splice","mapByUniqueProperty","propName","groupByProperty","findValue","toSearch","findValueDotPath","dotPath","simpleDeepCompare","object1","object2","toKeyValueList","returnArray","fromKeyValueList","list","cleanup","obj","stripZero","stripNull","stripUndefined","stripEmptyString","o","extractValueFromMapIgnoreCase","finder","newVal","safeCallFunction","fnName","caseInsensitiveAccess","keyName","keyNameCI","ArrayRatchet","wrapElementsInArray","compareTwoArrays","ar1","ar2","fn","id1","id2","matching","setOneOnly","setTwoOnly","aVal","pVal","comp","extractSubarrayFromSortedByNumberField","fieldDotPath","bottomIdx","findSplit","topIdx","bottomValue","curIdx","curVal","Base64Ratchet","safeObjectToBase64JSON","generateBase64VersionOfString","safeBase64JSONParse","base64StringToString","generateBase64VersionOfBlob","blob","Promise","resolve","reject","reader","FileReader","onloadend","result","readAsDataURL","generateBase64VersionOfUint8Array","uint8ArrayToBase64String","base64StringToUint8Array","b64encoded","base64StringToBytes","encoding","getBase64Code","charCode","BASE64_CODES","code","uint8ArrayToBase64UrlString","BASE64_ABC","str","index","missingOctets","endsWith","n","Uint8Array","buffer","subarray","base64UrlStringToBytes","dec","encodeStringToBase64String","encoder","encodeStringToBase64UrlString","decodeBase64StringToString","decoder","decodeBase64UrlStringToString","CompositeLastSuccessProvider","sources","mostRecent","mostRecentSrc","lastSuccess","DateRatchet","formatFullDate","FULL_DATE_FORMAT","formatDefaultDateOnly","DEFAULT_DATE_FORMAT","parseDefaultDate","fromFormat","toJSDate","parseCommonUsDate","templ","COMMON_US_DATE_FORMAT","EnumRatchet","listEnumKeys","enumeration","$enum","getValues","keyToEnum","caseSensitive","asValueOrDefault","mKey","toUpperCase","parseCsvToEnumArray","EsmRatchet","fetchDirName","root","url","fileURLToPath","URL","fetchFileName","ExpiringObject","_config","_cacheObject","_lastUpdatedEpochMS","_timeRemainingMS","inputConfig","defaultConfig","overrideTimeRemainingMS","timeToLiveMS","initialValue","defaultTimeRemainingMS","generator","lastUpdatedEpochMS","ageMS","doNotUpdateClock","fetchCacheObjectTimeRemainingMS","fetch","ExpiringObjectConfig","GeolocationRatchet","distanceBetweenLocations","lat1","lon1","lat2","lon2","unit","uU","radlat1","PI","radlat2","theta","radtheta","dist","sin","cos","acos","distanceBetweenRatchetGeoLocations","loc1","loc2","lat","lng","degreeOfLatLngInMiles","latitudeInDecimalDegress","latInRads","cosLat","milesInDegLatLng","miles","centerOfBounds","bounds","extent","origin","calculateSplits","slices","field","splits","clusterGeoBounds","inputVal","latSlices","lngSlices","lngSplits","lngStartIdx","lngEndIdx","lngBatch","latSplits","latStartIdx","latEndIdx","latBatch","combineBounds","canonicalizeBounds","inp","allowCrossover","minLat","maxLat","minLng","maxLng","roundLocation","roundDigits","locationToBounds","radiusMiles","sameLocation","pointInBounds","bound","pointInAnyBound","inBounds","minPointsBeforeMapping","mp","buildRatchetLocationBoundsMap","pointInRatchetLocationBoundsMap","findRatchetLocationBoundsMapEntry","latOffset","lngOffset","ltIdx","trunc","lngIdx","mapping","latEntries","lngEntries","newRow","row","GlobalRatchet","fetchGlobalRecord","returnNullOnNone","env","fetchGlobalVar","envVar","setGlobalVar","KeyValue","No","op","TimeoutToken","title","timeoutMS","__timeoutTokenFlagField","writeToLog","isTimeoutToken","StopWatch","createTime","_createTime","starts","ends","_label","_labelIncludedInOutput","withLabel","withLabelIncludedInOutput","labelIncludedInOutput","stop","reset","delete","hasTimer","shortForm","dump","logExpected","pctComplete","dumpExpected","timerNames","dumpAll","outs","cleanName","end","elapsedMS","remainMS","expectedRemainingMS","PromiseRatchet","resolveOnEvent","evtSrc","okEvtNames","errEvtNames","res","rej","on","timeout","srcPromise","race","createTimeoutPromise","id","setTimeout","clearTimeout","wait","time","dumpResult","autoDebug","exit","dumpError","logErrorAndReturnNull","runPromiseAndDump","promise","then","catch","waitFor","testFunction","expectedValue","intervalMS","maxCycles","runBoundedParallel","promiseFn","context","maxConcurrent","sw","remain","ctx","processed","totalCount","curBatch","proms","apply","all","pct","runBoundedParallelSingleParam","wrappedParams","asyncForEachSerial","array","callback","asyncForEachParallel","SortRatchet","sortNullToTop","bothNonNullSort","nullSafeSort","sortNullToBottom","nullsOnTop","Infinity","sortNumericStringsAsNumbers","sortNonNumbersToTop","an","bn","ax","bx","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","Uint8ArrayRatchet","mergeArrays","myArrays","deepEqual","arr1","arr2","mismatch","WebStreamRatchet","webReadableStreamToUint8Array","stream","out","writer","WritableStream","async","controller","abort","reason","highWaterMark","pipeTo","webReadableStreamToString","stringToWebReadableStream","ReadableStream","enqueue","close","LogMessageBuilder","wrapped","clone","subVars","NetworkRatchet","findLocalIp","useCache","LOCAL_IP","RTCPeerConnection","rtc","iceServers","addrs","create","createDataChannel","reliable","onicecandidate","evt","candidate","grepSDP","createOffer","offerDesc","sdp","setLocalDescription","updateLocalIP","parseUrl","href","match","protocol","host","hostname","port","pathname","search","newIp","parts","addr","updateAddressList","newAddr","displayAddrs","multi","BrowserLocalIpProvider","currentIp","ready","currentLocalIpAddress","FixedLocalIpProvider","fixed","RestfulApiHttpError","_httpStatusCode","_errors","_detailErrorCode","_endUserErrors","_details","_requestId","_wrappedError","errors","super","combineErrorStringsWithDefault","setPrototypeOf","prototype","RATCHET_RESTFUL_API_HTTP_ERROR_FLAG_KEY","defMessage","setFormattedErrorMessage","withFormattedErrorMessage","withHttpStatusCode","httpStatusCode","withErrors","withDetailErrorCode","detailErrorCode","withEndUserErrors","endUserErrors","withDetails","details","withRequestId","requestId","withWrappedError","isWrappedError","wrapError","objectIsRestfulApiHttpError","wrappedError","errorIsX0x","errIn","xClass","bot","errorIs40x","errorIs50x","GoogleRecaptchaRatchet","verifyRecaptchaToken","keySecret","fetchFn","GOOGLE_VERIFY_URL","resp","body","json","success","TwilioRatchet","accountSid","authToken","outBoundNumber","isValidE164Number","sendMessageDirect","recipientPhoneNumbers","ratchet","sendMessage","generateTwilioBasicAuth","sid","phoneNumber","encodeURIComponent","post","method","headers","authorization","TWILLIO_BASE_API_URL","parsedResponse","num","BuiltInTransforms","keysOnly","rule","transform","isKey","valuesOnly","stringReplaceTransform","stripStringTransform","retainAll","removeAll","snakeToCamelCase","group1","stringToNumber","camelToSnakeCase","concatenateToNewField","newFieldName","oldFieldNamesInOrder","abortIfFieldMissing","temp","numberToBool","fieldNames","oldVal","boolToNumber","makeDuplicateField","oldName","newName","addField","valueToAdd","reformatDateFields","oldFormat","newFormat","oldValue","TransformRatchet","toTransform","rules","transformGeneric","applyTransformToPrimitive","applyTransformToObject","newKey","TransactionFinalState","Success","RolledBack","RollbackFailed","TransactionRatchet","execute","steps","initialContext","inConfiguration","config","stepLogLevel","finalContext","finalState","stepNames","errorStep","rollback","rollbackError","rollbackErrorStep","executeAfterRollback","executeAfterRollbackFailure"],"mappings":"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"}
@@ -6,6 +6,7 @@ import { LogMessageBuilder } from './log-message-builder.js';
6
6
  import { LogMessageProcessor } from './log-message-processor.js';
7
7
  export declare class LoggerInstance {
8
8
  private loggerInstanceName;
9
+ private _guid;
9
10
  private _loggerMeta;
10
11
  private _ringBuffer;
11
12
  private _formatter;
@@ -17,6 +18,7 @@ export declare class LoggerInstance {
17
18
  get ringBuffer(): LoggerRingBuffer;
18
19
  dumpConfigurationIntoLog(): void;
19
20
  dumpOptionsIntoLog(): void;
21
+ get guid(): number;
20
22
  changeRingBufferSize(newSize: number): void;
21
23
  updateTracePrefix(newValue: string): void;
22
24
  get options(): LoggerOptions;
@@ -6,9 +6,11 @@ import { LoggerLevelName } from './logger-level-name.js';
6
6
  import { LoggerRingBuffer } from './logger-ring-buffer.js';
7
7
  import { LogMessageBuilder } from './log-message-builder.js';
8
8
  export declare class Logger {
9
- private static LOGGER_INSTANCES;
9
+ private static LOGGER_INSTANCE_MAP_GLOBAL_KEY;
10
+ private static GLOBAL_PROVIDER;
10
11
  private static DEFAULT_OPTIONS;
11
12
  static applyDefaultsToOptions(input?: LoggerOptions): LoggerOptions;
13
+ private static loggerInstances;
12
14
  static changeDefaultOptions(input: LoggerOptions, retroactive?: boolean): void;
13
15
  static getLogger(loggerName?: string, inOptions?: LoggerOptions): LoggerInstance;
14
16
  static recordMessageBuilder(msgBuild: LogMessageBuilder): string;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bitblit/ratchet-common",
3
- "version": "4.0.262-alpha",
3
+ "version": "4.0.267-alpha",
4
4
  "description": "Common tools for general use",
5
5
  "type": "module",
6
6
  "files": [