@bitblit/ratchet-common 4.0.246-alpha → 4.0.253-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 i from"cross-fetch";var o,a,l,c,u;!function(t){t.error="error",t.warn="warn",t.info="info",t.verbose="verbose",t.debug="debug",t.silly="silly"}(o||(o={}));class g{_lastLogMessage={messageSource:"No message yet",timestamp:(new Date).getTime(),lvl:o.info};_buffer=[];_bufferIdx=0;_lastSnapshotIdx=0;_bufferSize;constructor(t){if(!t)throw new Error("Cannot create ring buffer of size 0");this._bufferSize=t}get currentIndex(){return this._bufferIdx}get lastSnapshotIdx(){return this._lastSnapshotIdx}set bufferSize(t){if(!t)throw new Error("Cannot create ring buffer of size 0");this._bufferSize=t,this.clearRingBuffer()}getMessages(t=null,e=!1,r=!1){let n=null;if(this._bufferIdx<this._bufferSize){const e=null==t?0:t;n=this._buffer.slice(e,this._bufferIdx)}else{n=[];const e=this._bufferIdx-this._bufferSize;for(let r=t?Math.max(t,e):e;r<this._bufferIdx;r++)n.push(this._buffer[r%this._bufferSize])}return e&&this.clearRingBuffer(),r&&(n=n.reverse()),n}takeSnapshot(){const t=Math.max(0,this._bufferIdx-this._bufferSize),e={messages:this.getMessages(this._lastSnapshotIdx),logMessagesTruncated:Math.max(0,t-this._lastSnapshotIdx)};return this._lastSnapshotIdx=this._bufferIdx,e}getLastLogMessage(){return Object.assign({},this._lastLogMessage)}clearRingBuffer(){this._buffer=[],this._bufferIdx=0,this._lastSnapshotIdx=0}addToRingBuffer(t){this._lastLogMessage=t,this._buffer[this._bufferIdx%this._bufferSize]=t,this._bufferIdx++}}!function(t){t.Console="Console",t.ConsoleNoDebug="ConsoleNoDebug",t.StdOut="StdOut"}(a||(a={}));class h{static LOG_LEVELS_IN_ORDER=[o.error,o.warn,o.info,o.verbose,o.debug,o.silly];static handlerFunctionMap(t=a.Console){const e=new Map;if(t===a.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(o.error,t),e.set(o.warn,t),e.set(o.info,t),e.set(o.verbose,t),e.set(o.debug,t),e.set(o.silly,t)}else e.set(o.error,console.error),e.set(o.warn,console.warn),e.set(o.info,console.info),e.set(o.verbose,t===a.ConsoleNoDebug?console.log:console.debug),e.set(o.debug,t===a.ConsoleNoDebug?console.log:console.debug),e.set(o.silly,t===a.ConsoleNoDebug?console.log:console.debug);return e}static defaultHandlerFunction(){return console.info}static levelIsEnabled(t,e){const r=h.LOG_LEVELS_IN_ORDER.indexOf(t),n=h.LOG_LEVELS_IN_ORDER.indexOf(e);return r>-1&&n>-1&&n>=r}}!function(t){t.ClassicSingleLine="ClassicSingleLine",t.StructuredJson="StructuredJson",t.None="None"}(l||(l={}));class d{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 f{formatMessage(t,e){return null}}class p{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 m{static isNullOrUndefined(t){return null==t}static notNullOrUndefined(t,e="object"){if(m.isNullOrUndefined(t))throw new Error(e+" may not be null or undefined")}static notNullUndefinedOrOnlyWhitespaceString(t,e="string"){if(m.isNullOrUndefined(t)||""===t.trim())throw new Error(e+" may not be null or undefined or only whitespace string")}static notNullUndefinedOrEmptyArray(t,e="string"){if(m.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"){m.equal(t,!0,e)}static noNullOrUndefinedValuesInArray(t,e=null,r=null){if(m.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(m.isNullOrUndefined(t[e]))throw new Error(`Array index ${e} was null or undefined ${r}`)}static noNullOrUndefinedValuesInRestArgs(t,...e){if(m.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(m.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 m.noNullOrUndefinedValuesInArray(t,e)}}class y{static RFC_3986_RESERVED=["!","*","'","(",")",";",":","@","&","=","+","$",",","/","?","#","[","]","%"];static DIGITS="0123456789";static HEXITS=y.DIGITS+"ABCDEF";static UPPER_CASE_LATIN="ABCDEFGHIJKLMNOPQRSTUVWXYZ";static LOWER_CASE_LATIN="abcdefghijklmnopqrstuvwxyz";static CASE_INSENSITIVE_LATIN=y.UPPER_CASE_LATIN+y.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(y.trimToNull(t))try{e=JSON.parse(t)}catch(t){e=null}return e}static canParseAsJson(t){return!!y.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){m.true(y.allUnique(e),"Alphabet must be unique");const n=1===t?[""]:y.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(" ","-"),y.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,i=r;for(;n>0&&n<s+i+1;)s=Math.max(0,s-1),i=Math.max(0,i-1);const o=n-(s+i);let a="";a+=t.substring(0,s);for(let t=0;t<o;t++)a+="*";return a+=t.substring(n-i),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 i=(r+s).slice(-1*e);return n&&(i="-"+i),i}static trimToEmpty(t){return(t?y.safeString(t):"").trim()}static trimToNull(t){const e=y.trimToEmpty(t);return e.length>0?e:null}static trimAllStringPropertiesToNullInPlace(t){return y.trimAllStringPropertiesInPlace(t,!1)}static trimAllStringPropertiesToEmptyInPlace(t){return y.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?y.trimToEmpty(t[r]):y.trimToNull(t[r]))})),t}static stripNonNumeric(t){let e=t;if(null!=t&&!y.stringContainsOnlyNumbers(t)){e="";for(let r=0;r<t.length;r++){const n=t.charAt(r);(y.stringContainsOnlyNumbers(n)||0===r&&"-"===n)&&(e+=n)}}return e}static csvSafe(t){let e=y.trimToEmpty(y.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 b{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=>y.trimToNull(t.label())||"Unlabelled"));this.info("Preprocessors: %j",t)}}changeRingBufferSize(t){this._ringBuffer=null,t&&(this._ringBuffer=new g(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 g(this._options.ringBufferSize)),this._options.formatType){case l.None:this._formatter=new f;break;case l.StructuredJson:this._formatter=new p;break;default:this._formatter=new d}this._level=this._options.initialLevel,this._handlerFunctionMap=h.handlerFunctionMap(this._options.outputFunction);const e=this._loggerMeta?this._loggerMeta.loggerInstanceId:null;this._loggerMeta={options:this._options,loggerInstanceName:this.loggerInstanceName,loggerInstanceId:e||y.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(h.levelIsEnabled(t,this._level)){let r=this._options.trace||"";r+="["+t+"] ",e.unshift(r);(this._handlerFunctionMap.get(t)||h.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(h.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)||h.defaultHandlerFunction)(e),this._ringBuffer&&this._ringBuffer.addToRingBuffer(r)}}return e}error(t,...e){const r=this.createLogMessage(o.error,{},t,...e);return this.recordMessage(r)}errorP(...t){this.consoleLogPassThru(o.error,...t)}warn(t,...e){const r=this.createLogMessage(o.warn,{},t,...e);return this.recordMessage(r)}warnP(...t){this.consoleLogPassThru(o.warn,...t)}info(t,...e){const r=this.createLogMessage(o.info,{},t,...e);return this.recordMessage(r)}infoP(...t){this.consoleLogPassThru(o.info,...t)}verbose(t,...e){const r=this.createLogMessage(o.verbose,{},t,...e);return this.recordMessage(r)}verboseP(...t){this.consoleLogPassThru(o.verbose,...t)}debug(t,...e){const r=this.createLogMessage(o.debug,{},t,...e);return this.recordMessage(r)}debugP(...t){this.consoleLogPassThru(o.debug,...t)}silly(t,...e){const r=this.createLogMessage(o.silly,{},t,...e);return this.recordMessage(r)}sillyP(...t){this.consoleLogPassThru(o.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 E{static LOGGER_INSTANCES=new Map;static DEFAULT_OPTIONS={initialLevel:o.info,formatType:l.ClassicSingleLine,trace:null,globalVars:{},outputFunction:a.Console,ringBufferSize:0,preProcessors:[]};static applyDefaultsToOptions(t){const e=t||{};return e.initialLevel=e.initialLevel??E.DEFAULT_OPTIONS.initialLevel,e.formatType=e.formatType??E.DEFAULT_OPTIONS.formatType,e.trace=e.trace??E.DEFAULT_OPTIONS.trace,e.globalVars=e.globalVars??E.DEFAULT_OPTIONS.globalVars,e.outputFunction=e.outputFunction??E.DEFAULT_OPTIONS.outputFunction,e.ringBufferSize=e.ringBufferSize??E.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");E.DEFAULT_OPTIONS=Object.assign({},t),e&&Array.from(E.LOGGER_INSTANCES.values()).forEach((e=>e.options=t))}static getLogger(t="default",e){let r=E.LOGGER_INSTANCES.get(t);if(!r){const n=E.applyDefaultsToOptions(e);r=new b(t,n),E.LOGGER_INSTANCES.set(t,r)}return r}static recordMessageBuilder(t){return E.getLogger().recordMessageBuilder(t)}static recordMessage(t){return E.getLogger().recordMessage(t)}static formatMessages(t){return E.getLogger().formatMessages(t)}static updateTracePrefix(t){return E.getLogger().updateTracePrefix(t)}static changeRingBufferSize(t){return E.getLogger().changeRingBufferSize(t)}static getRingBuffer(){return E.getLogger().ringBuffer}static dumpConfigurationIntoLog(){return E.getLogger().dumpConfigurationIntoLog()}static dumpOptionsIntoLog(){return E.getLogger().dumpOptionsIntoLog()}static getLevel(){return E.getLogger().level}static setLevel(t){E.getLogger().level=t}static getOptions(){return E.getLogger().options}static getMessages(t=null,e=!1,r=!1){const n=E.getLogger().ringBuffer;return n?n.getMessages(t,e,r):null}static consoleLogPassThru(t,...e){return E.getLogger().consoleLogPassThru(t,...e)}static error(t,...e){return E.getLogger().error(t,...e)}static errorP(...t){return E.getLogger().errorP(...t)}static warn(t,...e){return E.getLogger().warn(t,...e)}static warnP(...t){return E.getLogger().warnP(...t)}static info(t,...e){return E.getLogger().info(t,...e)}static infoP(...t){return E.getLogger().infoP(...t)}static verbose(t,...e){return E.getLogger().verbose(t,...e)}static verboseP(...t){return E.getLogger().verboseP(...t)}static debug(t,...e){return E.getLogger().debug(t,...e)}static debugP(...t){return E.getLogger().debugP(...t)}static silly(t,...e){return E.getLogger().silly(t,...e)}static sillyP(...t){return E.getLogger().sillyP(...t)}static takeSnapshot(){const t=E.getLogger().ringBuffer;return t?t.takeSnapshot():null}static logByLevel(t,e,...r){return E.getLogger().logByLevel(t,e,...r)}static importMessages(t,e="",r=!0){return E.getLogger().importMessages(t,e,r)}static getLastLogMessage(){const t=E.getLogger().ringBuffer;return t?t.getLastLogMessage():null}}class w{static MAX_LEADING_ZEROS_FORMAT_LENGTH=1e3;static toFixedDecimalNumber(t,e){const r=w.safeNumber(t);return null==r?r:w.safeNumber(r.toFixed(e))}static leadingZeros(t,e){const r=String(t);if(r.length<e){let t="0000";if(e>w.MAX_LEADING_ZEROS_FORMAT_LENGTH)throw"Cannot format number that large (max length is "+w.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=w.safeNumber(t),s=w.safeNumber(e),i=w.safeNumber(r);return n>=s&&n<=i||n>=i&&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):(E.warn("Value is of type %s, returning default",r),n=e),isNaN(n)&&(E.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=>w.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),i=Math.max(e,r),o=i-s;if(i===s)n=i;else{for(;n<s;)n+=o;for(;n>i;)n-=o}return n}static groupNumbersIntoContiguousRanges(t,e=3){m.notNullOrUndefined(t);const r=Object.assign([],t);r.sort(((t,e)=>t-e));const n=[],s=[];let i=0;for(let t=1;t<r.length;t++)if(r[t]===r[t-1]+1);else{if(i===t-1)n.push(r[t-1]);else{if(t-i<e)for(let e=i;e<t;e++)n.push(r[e]);else s.push({min:r[i],max:r[t-1]})}i=t}return{singles:n,ranges:s}}static distributeItemsEvenly(t,e){m.notNullOrUndefined(t,"items"),m.notNullOrUndefined(e,"buckets"),m.true(t>0&&t===Math.floor(t),"Items integer larger than 0"),m.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,i=t;for(;i>0;)n[Math.floor(s)%e]++,i--,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 S{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!==w.safeNumber(t)}static boolToInt(t){return S.parseBool(t)?1:0}}class T{constructor(){}static translateToOriginVector(t){let e=null;return T.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 T.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 T.validPlane(t)&&T.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&&T.validPoint(t.p1)&&T.validPoint(t.p2)&&!T.samePoint(t.p1,t.p2)}static validLines(t){return!!t&&S.allTrue(t.map((t=>T.validLine(t))))}static validPolyLine(t){return!!t&&t.pts?.length>1&&S.allTrue(t.pts.map((t=>T.validPoint(t))))}static polyLineToLines(t){let e=null;if(T.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 T.validPolyLine(t)?t.pts[t.pts.length-1]:null}static lineToPolyLine(t){return T.validLine(t)?{pts:[t.p1,t.p2]}:null}static linesToPolyLines(t){let e=null;if(T.validLines(t)){e=[];let r=T.lineToPolyLine(t[0]);for(let n=1;n<t.length;n++)T.samePoint(T.lastPointOnPolyLine(r),t[n].p1)?r.pts.push(t[n].p2):(e.push(r),r=T.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&&S.allTrue(t.map((t=>T.validPoint(t))),!1)}static planeContainsPoint(t,e){return T.validPlane(e)&&T.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=>T.planeContainsPoint(t,e))).reduce(((t,e)=>t&&e),!0)}static linesToPoints(t){let e=null;return T.validLines(t)&&(e=t.map((t=>[t.p1,t.p2])).flat()),e}static pointsToLines(t){let e=null;if(T.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(T.validPoints(t)){r=Object.assign([],t),n=T.translateToOriginVector(r),r=T.translate(r,n);let e=T.minimalContainingPlane(r);r=T.xToY(r),e={width:e.height,height:e.width},n={x:-1*n.y,y:-1*n.x},r=T.mirrorPointsOnPlane(r,e,!0,!1),r=T.translate(r,n)}const s=e>4?e%4:e;return s>1&&(r=T.rotateRightAboutOrigin90Degrees(r,s-1)),r}static planeContainsLines(t,e){return t&&T.planeContainsPoints(t.map((t=>[t.p1,t.p2])).flat(),e)}static planeContainsPolyLine(t,e){return T.planeContainsLines(T.polyLineToLines(t),e)}static planeContainsLine(t,e){return T.validPlane(e)&&T.validLine(t)&&T.planeContainsPoint(t.p1,e)&&T.planeContainsPoint(t.p2,e)}static xToY(t){let e=null;return T.validPoints(t)&&(e=t.map((t=>({x:t.y,y:t.x})))),e}static translate(t,e){let r=null;return T.validPoints(t)&&T.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 T.validPoints(t)&&T.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(T.validPoints(t)&&T.validPlane(e)&&T.validPlane(r)){const s=T.scaleVector(e,r);n=t.map((t=>({x:t.x*s.x,y:t.y*s.y}))),n=T.mirrorPointsOnPlane(n,r,r.rightToLeft!==e.rightToLeft,r.topToBottom!==e.topToBottom)}return n}static transformPointToNewPlane(t,e,r){const n=T.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,i=(e-t[r].x)/n*s;return t[r].y+i}}}class _{constructor(){}static buildInformation(){return{version:"246",hash:"34d095bf20f158e8c42d63def45e0b1c943bfea3",branch:"alpha-2023-10-09-6",tag:"alpha-2023-10-09-6",timeBuiltISO:"2023-10-09T22:19:07-0700",notes:"No notes"}}}class L{entries=[];update(t,e=1){if(t){const r=this.entries.find((e=>e.item===t));r?r.count+=e:this.entries.push({item:t,count:e})}}sort(){this.entries.sort(((t,e)=>{let r=e.count-t.count;return 0===r&&(r=String(e.item).localeCompare(String(t.item))),r}))}sortKeys(){this.entries.sort(((t,e)=>String(e.item).localeCompare(String(t.item))))}reverse(){this.entries.reverse()}getEntries(){return this.entries}getTotalCount(){let t=0;return this.entries.forEach((e=>t+=e.count)),t}countForValue(t){const e=this.entries.find((e=>e.item===t));return e?e.count:0}percentForValue(t){const e=this.getTotalCount();return 0===e?0:this.countForValue(t)/e}}!function(t){t[t.RETURN_NULL=0]="RETURN_NULL",t[t.THROW_EXCEPTION=1]="THROW_EXCEPTION",t[t.ADD_FLAG=2]="ADD_FLAG"}(c||(c={}));class O{static formatMsDuration(t,e=!1){const r=Math.floor(t%1e3),n=Math.floor(t/1e3)%60,s=Math.floor(t/6e4)%60,i=Math.floor(t/36e5)%24,o=Math.floor(t/864e5),a=w.leadingZeros;let l=a(i,2)+"h"+a(s,2)+"m";return l+=e?a(n,2)+"."+a(r,3)+"s":a(n,2)+"s",o>0&&(l=o+"d"+l),l}static colonFormatMsDuration(t,e=!1){const r=t%1e3,n=Math.floor(t/1e3)%60,s=Math.floor(t/6e4)%60,i=Math.floor(t/36e5),o=w.leadingZeros;let a=o(i,2)+":"+o(s,2)+":";return a+=e?o(n,2)+"."+o(r,3):o(n,2),a}static daysBetween(t,e){return r.fromJSDate(t).diff(r.fromJSDate(e)).days}static createSteps(t,e,n,s,i){let o=r.fromMillis(t).setZone(n);const a=r.fromMillis(e),l=[];for(;o<a;)l.push(o.toFormat(s)),o=o.plus(i);return l}}class M{_encryptionKeyPromise;_decryptKeysPromise;_jtiGenerator;_decryptOnlyKeyUseLogLevel;_parseFailureLogLevel;static EXPIRED_FLAG_NAME="__jwtServiceExpiredFlag";constructor(t,e,r=y.createType4Guid,n=o.info,s=o.debug){this._encryptionKeyPromise=t,this._decryptKeysPromise=e,this._jtiGenerator=r,this._decryptOnlyKeyUseLogLevel=n,this._parseFailureLogLevel=s,m.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[M.EXPIRED_FLAG_NAME]}static async invalidSafeDecode(t,r,n=o.silly){let s=null;try{s=e.verify(t,r,{ignoreExpiration:!0})}catch(t){E.logByLevel(n,"Caught %s - ignoring",t)}return s}static async secondsRemainingUntilExpiration(t){let e=null;if(y.trimToNull(t)){const r=await M.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 M.secondsRemainingUntilExpiration(t);let r=null;return null!=e&&(r=1e3*e),r}async decodeToken(t,e=c.RETURN_NULL){const r=await this.encryptionKeyArray();let n=Object.assign([],r);this.decryptKeysPromise&&(n=n.concat(await this.decryptKeysPromise));const s=[];let i=null;for(let e=0;e<n.length&&!i;e++){s.push(y.obscure(n[e],1,1));const a=e===n.length-1&&this.parseFailureLogLevel?this.parseFailureLogLevel:o.silly;i=await M.invalidSafeDecode(t,n[e],a),i&&e>=r.length&&E.logByLevel(this.decryptOnlyKeyUseLogLevel,"Used old key to decode token : %s",y.obscure(n[e],2))}if(i){const t=Math.floor(Date.now()/1e3),r=i?.exp&&i.exp>100*t?Math.floor(i.exp/1e3):i?.exp,n=i?.nbf&&i.nbf>100*t?Math.floor(i.nbf/1e3):i?.nbf;if(r&&t>=r||n&&t<=n){const n=t-r;switch(E.debug("JWT token expired or before NBF : on %d, %s ago",i.exp,O.formatMsDuration(1e3*n)),e){case c.THROW_EXCEPTION:throw new Error("JWT Token was expired");case c.ADD_FLAG:i[M.EXPIRED_FLAG_NAME]=!0;break;default:i=null}}}else E.warn("Unable to parse a payload (Tried %j) from : %s",s,t);return i}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=y.trimToNull(n)?y.trimToNull(n):await this.selectRandomEncryptionKey();if(m.notNullOrUndefined(t,"payload"),t.jti=this.jtiGenerator?this.jtiGenerator():null,r){const e=Math.floor(Date.now()/1e3)+r;E.debug("Forcing expiration to %d",e),t.exp=e}return e.sign(t,s)}async refreshJWTString(t,e,r){const n=e?c.ADD_FLAG:c.THROW_EXCEPTION,s=await this.decodeToken(t,n),i=s.exp&&s.iat?s.exp-s.iat:null,o=r||i;M.removeJwtFields(s),M.removeExpiredFlag(s);return await this.createTokenString(s,o)}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[M.EXPIRED_FLAG_NAME]}}class x{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){E.error("Failed to json stringify"),r=String(t)}return e&&E.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 x.fErr(t,...e)}}class P{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 i=r;for(;s.length>1;)i[s[0]]=i[s[0]]||{},i=i[s[0]],s.splice(0,1);i[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 x.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?P.findValue(t[e[0]],e.slice(1)):null:t}static findValueDotPath(t,e){return e&&0!=e.length?t?P.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 i=JSON.parse(JSON.stringify(t));return Object.keys(i).forEach((t=>{if(i[t]&&"object"==typeof i[t])if(Array.isArray(i[t]))for(let e=0;e<i[t].length;e++)i[t][e]=P.cleanup(i[t][e]);else i[t]=P.cleanup(i[t]);else void 0===i[t]&&n||null===i[t]&&r||""===i[t]&&s||0===i[t]&&e?delete i[t]:i[t]=i[t]})),i}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&&E.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){E.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 i={matching:[],setOneOnly:[],setTwoOnly:[]};for(;n<t.length&&s<e.length;){const o=t[n],a=e[s],l=r(o,a);0===l?(i.matching.push(o),n++,s++):l<0?(i.setOneOnly.push(o),n++):(i.setTwoOnly.push(a),s++)}return n<t.length-1&&(i.setOneOnly=i.setOneOnly.concat(t.slice(n))),s<e.length-1&&(i.setTwoOnly=i.setTwoOnly.concat(e.slice(s))),i}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 i=null===n?t.length:N.findSplit(t,e,n),o=P.findValueDotPath(t[s],e);return s===t.length-1&&o<r?[]:(s<t.length&&s<i&&o<r&&s++,t.slice(s,i+1))}static findSplit(t,e,r){if(m.notNullOrUndefined(t),m.notNullOrUndefined(e),m.notNullOrUndefined(r),0===t.length||P.findValueDotPath(t[0],e)>r)return null;let n=0,s=t.length,i=null;for(;null===i;){const o=Math.floor((n+s)/2),a=P.findValueDotPath(t[o],e);n===s||n===s-1?i=n:a<=r?n=o:s=o}return i}}class A{static safeObjectToBase64JSON(t){return t?A.generateBase64VersionOfString(JSON.stringify(t)):null}static safeBase64JSONParse(t){let e={};try{t&&(e=JSON.parse(A.base64StringToString(t,"utf-8")))}catch(r){E.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 A.generateBase64VersionOfUint8Array(y.stringToUint8Array(t))}static generateBase64VersionOfUint8Array(t){return A.uint8ArrayToBase64String(t)}static base64StringToUint8Array(t){try{return A.base64StringToBytes(t)}catch(e){throw E.error("Failed to decode base64: %s",t),e}}static base64StringToString(t,e="utf8"){return new TextDecoder(e).decode(A.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>=A.BASE64_CODES.length)throw new Error("Unable to parse base64 string.");const e=A.BASE64_CODES[t];if(255===e)throw new Error("Unable to parse base64 string.");return e}static uint8ArrayToBase64UrlString(t){let e=A.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+=A.BASE64_ABC[t[e-2]>>2],r+=A.BASE64_ABC[(3&t[e-2])<<4|t[e-1]>>4],r+=A.BASE64_ABC[(15&t[e-1])<<2|t[e]>>6],r+=A.BASE64_ABC[63&t[e]];return e===n+1&&(r+=A.BASE64_ABC[t[e-2]>>2],r+=A.BASE64_ABC[(3&t[e-2])<<4],r+="=="),e===n&&(r+=A.BASE64_ABC[t[e-2]>>2],r+=A.BASE64_ABC[(3&t[e-2])<<4|t[e-1]>>4],r+=A.BASE64_ABC[(15&t[e-1])<<2],r+="="),r}static base64StringToBytes(t){if(t.length%4!=0)throw x.fErr("Unable to parse base64 string, length: %s",t.length);const e=t.indexOf("=");if(-1!==e&&e<t.length-2)throw x.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 i;for(let e=0,r=0;e<n;e+=4,r+=3)i=A.getBase64Code(t.charCodeAt(e))<<18|A.getBase64Code(t.charCodeAt(e+1))<<12|A.getBase64Code(t.charCodeAt(e+2))<<6|A.getBase64Code(t.charCodeAt(e+3)),s[r]=i>>16,s[r+1]=i>>8&255,s[r+2]=255&i;return s.subarray(0,s.length-r)}static base64UrlStringToBytes(t){let e=t.split("-").join("+").split("_").join("/");for(;e.length%4!=0;)e+="=";return E.info("pre: %s post %s",t,e),A.base64StringToBytes(e)}static encodeStringToBase64String(t,e=new TextEncoder){return A.uint8ArrayToBase64String(e.encode(t))}static encodeStringToBase64UrlString(t,e=new TextEncoder){return A.uint8ArrayToBase64UrlString(e.encode(t))}static decodeBase64StringToString(t,e=new TextDecoder){return e.decode(A.base64StringToBytes(t))}static decodeBase64UrlStringToString(t,e=new TextDecoder){return e.decode(A.base64UrlStringToBytes(t))}}class v{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 I{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(I.FULL_DATE_FORMAT)}static formatDefaultDateOnly(t){return r.fromJSDate(t).toFormat(I.DEFAULT_DATE_FORMAT)}static parseDefaultDate(t){return r.fromFormat(t,I.DEFAULT_DATE_FORMAT).toJSDate()}static parseCommonUsDate(t){let e=null;if(t){let n=I.COMMON_US_DATE_FORMAT;2===t.indexOf("-")&&(n=n.split("/").join("-")),e=r.fromFormat(t,n).toJSDate()}return e}}class C{static listEnumKeys(t){return n(t).getValues()}static keyToEnum(t,e,r=!1){const s=n(t);let i=null;if(e&&(i=s.asValueOrDefault(e,null),!i&&!r)){const r=C.listEnumKeys(t).find((t=>t.toUpperCase()===e.toUpperCase()));r&&(i=s.asValueOrDefault(r,null))}return i}static parseCsvToEnumArray(t,e){return y.trimToEmpty(e).split(",").map((t=>t.trim())).map((e=>C.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 B{_config;_cacheObject;_lastUpdatedEpochMS;_timeRemainingMS;constructor(t){this._config=Object.assign({},this.defaultConfig(),t||{}),this._config.overrideTimeRemainingMS&&this._config.timeToLiveMS&&x.throwFormattedErr("Cannot define both time to live and overrideTimeRemainingMS"),this._config.overrideTimeRemainingMS||this._config.timeToLiveMS||x.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:o.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()),E.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();E.logByLevel(this._config.logLevel,"Auto call to generator returned %j",t),this.update(t)}return this._cacheObject}}class U{timeToLiveMS;generator;initialValue;logLevel;overrideTimeRemainingMS}class F{constructor(){}static distanceBetweenLocations(t,e,r,n,s="M"){const i=s?s.toUpperCase():"";if(-1===["M","K","N","F","E"].indexOf(i))throw new Error("Invalid unit");if(t==r&&e==n)return 0;{const s=Math.PI*t/180,o=Math.PI*r/180,a=e-n,l=Math.PI*a/180;let c=Math.sin(s)*Math.sin(o)+Math.cos(s)*Math.cos(o)*Math.cos(l);return c>1&&(c=1),c=Math.acos(c),c=180*c/Math.PI,c=60*c*1.1515,"F"===i&&(c*=5280),"K"===i&&(c*=1.609344),"E"===i&&(c*=1609.344),"N"===i&&(c*=.8684),c}}static distanceBetweenRatchetGeoLocations(t,e,r="M"){return F.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 w.safeNumber((69.172*r).toFixed(4))}static milesInDegLatLng(t,e=0){m.notNullOrUndefined(t),m.true(t>=0);return t/F.degreeOfLatLngInMiles(e)}static centerOfBounds(t){return m.notNullOrUndefined(t),{lat:(t.extent.lat+t.origin.lat)/2,lng:(t.extent.lng+t.origin.lng)/2}}static calculateSplits(t,e,r){m.notNullOrUndefined(t),m.notNullOrUndefined(e),m.notNullOrUndefined(r),t.sort(((t,e)=>t.origin[r]-e.origin[r]));const n=t.map((t=>F.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))):E.silly("Skipping, size : %d, %j",r,s)}return E.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&&x.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 i=F.calculateSplits(t,r-1,"lng");i.sort(((t,e)=>t.idx-e.idx));for(let t=0;t<=i.length;t++){const r=0===t?0:i[t-1].idx,o=t===i.length?s.length:i[t].idx,a=s.slice(r,o);a.sort(((t,e)=>t.origin.lat-e.origin.lat));const l=F.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(F.combineBounds(s))}}E.info("New bounds : %j",n)}return n}static canonicalizeBounds(t,e=!1){m.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),i=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:i}}}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:w.safeNumber(t.lat.toFixed(e)),lng:w.safeNumber(t.lng.toFixed(e))}}static locationToBounds(t,e){const r=F.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&&w.between(t.lat,e.origin.lat,e.extent.lat)&&w.between(t.lng,e.origin.lng,e.extent.lng)}static pointInAnyBound(t,e,r=10){let n=!1;if(e.length>r){const r=F.buildRatchetLocationBoundsMap(e);n=F.pointInRatchetLocationBoundsMap(t,r)}else for(let r=0;r<e.length&&!n;r++)n=F.pointInBounds(t,e[r]);return n}static pointInRatchetLocationBoundsMap(t,e){let r=!1;const n=F.findRatchetLocationBoundsMapEntry(t,e);if(n){const e=n.bounds;for(let n=0;n<e.length&&!r;n++)r=F.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))),i=Math.trunc(e)-1,o=Math.trunc(r)-1,a=Math.trunc(n)-i+1,l=Math.trunc(s)-o+1,c=[];for(let t=0;t<a;t++){const e=[];for(let r=0;r<l;r++)e.push({lat:i+t,lng:o+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-i];for(let e=Math.trunc(t.origin.lng);e<=Math.trunc(t.extent.lng);e++){r[e-o].bounds.push(t)}}})),{latOffset:i,lngOffset:o,maxLat:i+a,maxLng:o+l,mapping:c}}}class D{constructor(){}static fetchGlobalRecord(t){let e=null;if(process?.env?(E.silly("Using process.env as global"),e=process.env):global?.process?.env?(E.silly("Using global.process.env as global"),e=global.process.env):global&&(E.silly("Using process.env as global"),e=global),!e){if(!t)throw x.fErr("Could not find process.env OR global in scope");E.silly("Returning null as global"),e=null}return e}static fetchGlobalVar(t){m.notNullOrUndefined(t,"envVar");return D.fetchGlobalRecord()[t]}static setGlobalVar(t,e){m.notNullOrUndefined(t,"envVar"),m.notNullOrUndefined(e,"value");D.fetchGlobalRecord()[t]=e}}class j{key;value}class k{static op(...t){}}class V{title;timeoutMS;__timeoutTokenFlagField=!0;constructor(t,e){this.title=t,this.timeoutMS=e}writeToLog(t=o.warn){E.logByLevel(t,"Timed out after %d ms waiting for results of %s",this.timeoutMS,this.title)}static isTimeoutToken(t){return!!t&&!!t.__timeoutTokenFlagField}}class G{get createTime(){return this._createTime}starts=new Map;ends=new Map;_createTime=Date.now();_label=y.createRandomHexString(4);_labelIncludedInOutput=!1;constructor(){}withLabel(t){return this._label=y.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){m.notNullUndefinedOrOnlyWhitespaceString(t,"name");const e=Date.now();return this.starts.set(y.trimToNull(t),e),e}stop(t){m.notNullUndefinedOrOnlyWhitespaceString(t,"name");const e=Date.now();return this.ends.set(y.trimToNull(t),e),e}reset(t){m.notNullUndefinedOrOnlyWhitespaceString(t,"name"),this.starts.delete(y.trimToNull(t)),this.ends.delete(y.trimToNull(t))}hasTimer(t){return m.notNullUndefinedOrOnlyWhitespaceString(t,"name"),this.starts.has(t)}log(t,e,r=o.info){E.logByLevel(r,this.dump(t,e))}logExpected(t,e,r,n=o.info){E.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=y.trimToNull(t);if(n&&!this.hasTimer(n))r+="No such timer : "+n;else{const s=t?this.starts.get(n):this._createTime,i=t?this.ends.get(n):Date.now();r+=(n||"Default")+" ",s&&i?r+="completed in "+O.formatMsDuration(i-s,!e):s&&(r+="running for "+O.formatMsDuration(Date.now()-s,!e))}return r}dumpExpected(t,e,r){let n=this._labelIncludedInOutput?this._label+" ":"";const s=y.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 i=e?this.starts.get(s):this._createTime,o=e?this.ends.get(s):Date.now();if(i&&o)n+="completed in "+O.formatMsDuration(o-i,!r);else if(i){const e=Date.now()-i,s=e/t-e;n+="running for "+O.formatMsDuration(e,!r)+" approx "+O.formatMsDuration(s,!r)+" remaining"}}return n}expectedRemainingMS(t,e){let r=null;if(!t||t<=0);else if(t>1);else{const n=y.trimToNull(e),s=e?this.starts.get(n):this._createTime,i=e?this.ends.get(n):Date.now();if(s&&i)r=i-s;else if(s){const e=Date.now()-s;r=e/t-e}}return r}elapsedMS(t){let e=null;const r=y.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 z{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,i)=>{e.forEach((e=>{t.on(e,(()=>{s(n)}))})),r&&r.forEach((e=>{t.on(e,(t=>{i(t)}))}))}))}static timeout(t,e,r){return Promise.race([t,z.createTimeoutPromise(e,r)])}static createTimeoutPromise(t,e){return new Promise(((r,n)=>{const s=setTimeout((()=>{clearTimeout(s);const n=new V(t,e);r(n)}),e)}))}static async wait(t){await z.createTimeoutPromise("Wait "+t,t),E.silly("Finished wait of %d ms",t)}static dumpResult(t,e=!1){E.info("Success, result was : \n\n%s\n\n",JSON.stringify(t)),process.exit(0)}static dumpError(t,e=!1){E.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 E.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(z.dumpResult).catch(z.dumpError)}static async waitFor(t,e,r,n,s="waitFor",i=0){if(null==e||r<50||n<1||i<0||"function"!=typeof t)return E.warn("%s: Invalid configuration for waitFor - exiting immediately",s),E.warn("ExpectedValue : %s ; interval: %d ; maxCycles: %d ; test : %s",e,r,n,typeof t),!1;let o=null;try{o=t(i)}catch(t){return E.warn("%s: Caught error while waiting, giving up",s),!1}return null===o?(E.debug("%s:CurVal was null - aborting",s),!1):o==e?(E.debug("%s:Found expected value",s),!0):i>n?(E.debug("%s:Exceeded max cycles, giving up",s),!1):(E.debug("%s : value not reached yet, waiting (count = %d of %d)",s,i,n),await z.wait(r),z.waitFor(t,e,r,n,s,i+1))}static async runBoundedParallel(t,e,r,n=1,s=o.debug){const i=new G;let a=[],l=e;E.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))),o=await Promise.all(r);u+=r.length,a=a.concat(o);const h=u/g;E.logByLevel(s,"%d elements remain : %s",l.length,i.dumpExpected(h))}return i.log(),a}static async runBoundedParallelSingleParam(t,e,r,n=1,s=o.debug){const i=N.wrapElementsInArray(e);return z.runBoundedParallel(t,i,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 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(y.stringToUint8Array(t)):e.push(t),null),abort(t){x.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 E.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){E.warn("Offer failed : %s",e),t(Z.updateLocalIP("FIND_UNSUPPORTED"))}))}else E.warn("IP Address find not supported on this device"),t(Z.updateLocalIP("FIND_UNSUPPORTED"))}catch(e){E.warn("Error finding local ip address : %s",e),t(Z.updateLocalIP("ERROR"))}})):(E.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(",");E.warn("Multiple addresses found, returning sorted join : %s",t),r(Z.updateLocalIP(t))}}}class q{currentIp="UNSET";constructor(){Z.findLocalIp(!1).then((t=>{E.info("Setting local IP to %s",t),this.currentIp=t})).catch((t=>{E.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=w.safeNumber(n.httpStatusCode),i=100*e;r=s>=i&&s<=i+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=i){E.debug("Verifying recaptcha token : %s",e);let n=null;if(!y.safeString(e))return E.warn("Recaptcha validation error, no token passed : %s",e),n;E.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){E.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,m.notNullOrUndefined(t,"accountSid"),m.notNullOrUndefined(e,"authToken"),m.notNullOrUndefined(r,"outBoundNumber"),m.true(Q.isValidE164Number(r),"outBoundNumber invalid format")}static async sendMessageDirect(t,e,r,n,s){const i=new Q(t,e,r);return await i.sendMessage(n,s)}static generateTwilioBasicAuth(t,e){return"Basic "+A.generateBase64VersionOfString(t+":"+e)}async sendMessage(t,e){const r=[];if(m.notNullOrUndefined(t,"recipientPhoneNumbers"),m.notNullOrUndefined(y.trimToNull(e),"message"),m.true(t.length>0,"recipientPhoneNumbers non-empty"),t.forEach((t=>{m.true(Q.isValidE164Number(t),t+" is not valid")})),t&&t.length>0&&y.trimToNull(e)){E.info("Sending %s to %j",e,t);for(let n=0;n<t.length;n++){const s=t[n];if(E.info("To: %s",s),!Q.isValidE164Number(s))throw new Error("number must be E164 format!");const o="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:o},l=await i(Q.TWILLIO_BASE_API_URL+"/Accounts/"+this.accountSid+"/Messages.json",a),c=await l.json();E.debug("TwilioRatchet: For %s got %j",s,c),r.push(c)}}else E.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=w.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,i){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,i,o)=>("object"==typeof s&&t.forEach((t=>{const i=s[t];if(null!=i)try{const o=r.fromFormat(i,e).toFormat(n);s[t]=o}catch(t){E.warn("Failed to reparse date %s in format %s : %s",i,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 i=typeof t;switch(i){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 "+i)}return s}static applyTransformToObject(t,e=[],r,n=null){E.silly("Tranform: %j, %s, %j",t,r,n);let s=null;return null!=t&&(Array.isArray(t)?(s=[],t.forEach((n=>{const i=et.transformGeneric(n,e,r,t);null!=i&&s.push(i)}))):(s={},Object.keys(t).forEach((r=>{const n=t[r],i=et.applyTransformToPrimitive(r,e,!0,t);if(null!=i){let r=et.transformGeneric(n,e,!1,t);r=et.applyTransformToPrimitive(r,e,!1,t),null!=r&&(s[i]=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}}!function(t){t.Success="Success",t.RolledBack="RolledBack",t.RollbackFailed="RollbackFailed"}(u||(u={}));class rt{static async execute(t,e,r){m.notNullOrUndefined(t,"steps"),m.notNullOrUndefined(e,"initialContext"),m.true(t.length>0,"steps may not be empty");const n=Object.assign({},r||{});n.stepLogLevel=n.stepLogLevel||o.info;const s={finalContext:e,finalState:null},i=t.map(((t,e)=>t.name||"Step "+e));E.info("Beginning transaction of %d steps",t.length);let a=0;do{E.logByLevel(n.stepLogLevel,"Processing step %d of %d (%s)",a+1,t.length,i[a]);try{await t[a].execute(s.finalContext,a),a++}catch(t){E.error("Failure detected on step %d : %s : %s : Rolling back",a,i[a],t,t),s.error=t,s.errorStep=a}}while(!s.error&&a<t.length);if(s.error)do{E.logByLevel(n.stepLogLevel,"Rolling back step %d of %d (%s)",a+1,t.length,i[a]);try{t[a].rollback?await t[a].rollback(s.finalContext,a):E.info("Skipping - no rollback defined")}catch(t){E.error("Very bad - rollback code failed on step %d : %s : Aborting in invalid state: %s",a,i[a],t,t),s.rollbackError=t,s.rollbackErrorStep=a}a--}while(a>=0);if(s.finalState=s.rollbackError?u.RollbackFailed:s.error?u.RolledBack:u.Success,E.info("Transaction completed with status : %s",s.finalState),n?.executeAfterRollback&&s.finalState!==u.Success)try{E.info("Applying executeAfterRollback"),await n.executeAfterRollback(s)}catch(t){E.error("Very bad - failure in executeAfterRollback : %s",t,t)}if(n?.executeAfterRollbackFailure&&s.finalState!==u.Success)try{E.info("Applying executeAfterRollbackFailure"),await n.executeAfterRollbackFailure(s)}catch(t){E.error("Very bad - failure in executeAfterRollbackFailure : %s",t,t)}return s}}export{N as ArrayRatchet,A as Base64Ratchet,S as BooleanRatchet,q as BrowserLocalIpProvider,tt as BuiltInTransforms,d as ClassicSingleLineLogMessageFormatter,v as CompositeLastSuccessProvider,I as DateRatchet,O as DurationRatchet,C as EnumRatchet,x as ErrorRatchet,R as EsmRatchet,c as ExpiredJwtHandling,B as ExpiringObject,U as ExpiringObjectConfig,X as FixedLocalIpProvider,F as GeolocationRatchet,D as GlobalRatchet,Y as GoogleRecaptchaRatchet,L as Histogram,M as JwtRatchet,j as KeyValue,J as LogMessageBuilder,l as LogMessageFormatType,E as Logger,b as LoggerInstance,o as LoggerLevelName,a as LoggerOutputFunction,g as LoggerRingBuffer,h as LoggerUtil,P as MapRatchet,Z as NetworkRatchet,k as No,f as NoneLogMessageFormatter,w as NumberRatchet,z as PromiseRatchet,T as Ratchet2d,_ as RatchetInfo,m as RequireRatchet,$ as RestfulApiHttpError,G as StopWatch,y as StringRatchet,p as StructuredJsonLogMessageFormatter,W as TimeZoneRatchet,V as TimeoutToken,u as TransactionFinalState,rt 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 h{formatMessage(t,e){return null}}class d{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 null==t}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 h;break;case u.StructuredJson:this._formatter=new d;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 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:"253",hash:"5847b5bb382869e20ccda53fd41ba3e428512b18",branch:"alpha-2023-10-12-8",tag:"alpha-2023-10-12-8",timeBuiltISO:"2023-10-12T15:23:00-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 P{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:P.findSplit(t,e,r)||0;const o=null===n?t.length:P.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 N{static safeObjectToBase64JSON(t){return t?N.generateBase64VersionOfString(JSON.stringify(t)):null}static safeBase64JSONParse(t){let e={};try{t&&(e=JSON.parse(N.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 N.generateBase64VersionOfUint8Array(p.stringToUint8Array(t))}static generateBase64VersionOfUint8Array(t){return N.uint8ArrayToBase64String(t)}static base64StringToUint8Array(t){try{return N.base64StringToBytes(t)}catch(e){throw y.error("Failed to decode base64: %s",t),e}}static base64StringToString(t,e="utf8"){return new TextDecoder(e).decode(N.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>=N.BASE64_CODES.length)throw new Error("Unable to parse base64 string.");const e=N.BASE64_CODES[t];if(255===e)throw new Error("Unable to parse base64 string.");return e}static uint8ArrayToBase64UrlString(t){let e=N.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+=N.BASE64_ABC[t[e-2]>>2],r+=N.BASE64_ABC[(3&t[e-2])<<4|t[e-1]>>4],r+=N.BASE64_ABC[(15&t[e-1])<<2|t[e]>>6],r+=N.BASE64_ABC[63&t[e]];return e===n+1&&(r+=N.BASE64_ABC[t[e-2]>>2],r+=N.BASE64_ABC[(3&t[e-2])<<4],r+="=="),e===n&&(r+=N.BASE64_ABC[t[e-2]>>2],r+=N.BASE64_ABC[(3&t[e-2])<<4|t[e-1]>>4],r+=N.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=N.getBase64Code(t.charCodeAt(e))<<18|N.getBase64Code(t.charCodeAt(e+1))<<12|N.getBase64Code(t.charCodeAt(e+2))<<6|N.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),N.base64StringToBytes(e)}static encodeStringToBase64String(t,e=new TextEncoder){return N.uint8ArrayToBase64String(e.encode(t))}static encodeStringToBase64UrlString(t,e=new TextEncoder){return N.uint8ArrayToBase64UrlString(e.encode(t))}static decodeBase64StringToString(t,e=new TextDecoder){return e.decode(N.base64StringToBytes(t))}static decodeBase64UrlStringToString(t,e=new TextDecoder){return e.decode(N.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 h=u/g;y.logByLevel(s,"%d elements remain : %s",l.length,o.dumpExpected(h))}return o.log(),a}static async runBoundedParallelSingleParam(t,e,r,n=1,s=i.debug){const o=P.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{static PACIFIC=new z("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 K{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 K.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 H{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 H(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 J{static LOCAL_IP=null;static findLocalIp(t=!0){return y.info("Attempting to find local IP (V 2)"),J.LOCAL_IP&&t?Promise.resolve(J.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&&J.grepSDP("a="+e.candidate.candidate,n,t)},r.createOffer((function(e){J.grepSDP(e.sdp,n,t),r.setLocalDescription(e)}),(function(e){y.warn("Offer failed : %s",e),t(J.updateLocalIP("FIND_UNSUPPORTED"))}))}else y.warn("IP Address find not supported on this device"),t(J.updateLocalIP("FIND_UNSUPPORTED"))}catch(e){y.warn("Error finding local ip address : %s",e),t(J.updateLocalIP("ERROR"))}})):(y.warn("Window not found, cannot calculate local ip"),Promise.resolve(J.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 J.LOCAL_IP=t,J.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]&&J.updateAddressList(s,e,r)}else if(~t.indexOf("c=")){const n=t.split(" ")[2];J.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(J.updateLocalIP(n[0]));else{const t=n.sort().join(",");y.warn("Multiple addresses found, returning sorted join : %s",t),r(J.updateLocalIP(t))}}}class Z{currentIp="UNSET";constructor(){J.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 q{fixed;constructor(t){this.fixed=t}currentLocalIpAddress(){return this.fixed}}class X extends Error{static RATCHET_RESTFUL_API_HTTP_ERROR_FLAG_KEY="__ratchetRestfulApiHttpErrorFlag";_httpStatusCode=500;_errors;_detailErrorCode;_endUserErrors;_details;_requestId;_wrappedError;constructor(...t){super(X.combineErrorStringsWithDefault(t)),Object.setPrototypeOf(this,X.prototype),this._errors=t,this[X.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=X.objectIsRestfulApiHttpError(t)?t:new X(t.message).withWrappedError(t).withHttpStatusCode(500),e}static objectIsRestfulApiHttpError(t){return t&&!0===t[X.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=X.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&&X.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 X.errorIsX0x(t,4)}static errorIs50x(t){return X.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 Y{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(Y.isValidE164Number(r),"outBoundNumber invalid format")}static async sendMessageDirect(t,e,r,n,s){const o=new Y(t,e,r);return await o.sendMessage(n,s)}static generateTwilioBasicAuth(t,e){return"Basic "+N.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(Y.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),!Y.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:Y.generateTwilioBasicAuth(this.accountSid,this.authToken),"Content-Type":"application/x-www-form-urlencoded"},body:i},l=await o(Y.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 Q{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 tt{static transform(t,e=[]){return tt.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=tt.applyTransformToPrimitive(t,e,r,n);break;case"object":s=tt.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=tt.transformGeneric(n,e,r,t);null!=o&&s.push(o)}))):(s={},Object.keys(t).forEach((r=>{const n=t[r],o=tt.applyTransformToPrimitive(r,e,!0,t);if(null!=o){let r=tt.transformGeneric(n,e,!1,t);r=tt.applyTransformToPrimitive(r,e,!1,t),null!=r&&(s[o]=r)}})),s=tt.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 et={Success:"Success",RolledBack:"RolledBack",RollbackFailed:"RollbackFailed"};class rt{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?et.RollbackFailed:s.error?et.RolledBack:et.Success,y.info("Transaction completed with status : %s",s.finalState),n?.executeAfterRollback&&s.finalState!==et.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!==et.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{P as ArrayRatchet,N as Base64Ratchet,E as BooleanRatchet,Z as BrowserLocalIpProvider,Q 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,q as FixedLocalIpProvider,U as GeolocationRatchet,F as GlobalRatchet,$ as GoogleRecaptchaRatchet,T as Histogram,O as JwtRatchet,D as KeyValue,H 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,J as NetworkRatchet,j as No,h as NoneLogMessageFormatter,b as NumberRatchet,G as PromiseRatchet,w as Ratchet2d,S as RatchetInfo,f as RequireRatchet,X as RestfulApiHttpError,V as StopWatch,p as StringRatchet,d as StructuredJsonLogMessageFormatter,z as TimeZoneRatchet,k as TimeoutToken,et as TransactionFinalState,rt as TransactionRatchet,tt as TransformRatchet,Y as TwilioRatchet,W as Uint8ArrayRatchet,K 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-output-function.ts","../src/logger/log-message-format-type.ts","../src/jwt/expired-jwt-handling.ts","../src/tx/transaction-final-state.ts","../src/logger/logger-ring-buffer.ts","../src/logger/logger-util.ts","../src/logger/classic-single-line-log-message-formatter.ts","../src/logger/none-log-message-formatter.ts","../src/logger/structured-json-log-message-formatter.ts","../src/lang/require-ratchet.ts","../src/lang/string-ratchet.ts","../src/logger/logger-instance.ts","../src/logger/logger.ts","../src/lang/number-ratchet.ts","../src/lang/boolean-ratchet.ts","../src/2d/ratchet-2d.ts","../src/build/ratchet-common-info.ts","../src/histogram/histogram.ts","../src/lang/duration-ratchet.ts","../src/jwt/jwt-ratchet.ts","../src/lang/error-ratchet.ts","../src/lang/map-ratchet.ts","../src/lang/array-ratchet.ts","../src/lang/base64-ratchet.ts","../src/lang/composite-last-success-provider.ts","../src/lang/date-ratchet.ts","../src/lang/enum-ratchet.ts","../src/lang/esm-ratchet.ts","../src/lang/expiring-object.ts","../src/lang/geolocation-ratchet.ts","../src/lang/global-ratchet.ts","../src/lang/key-value.ts","../src/lang/no.ts","../src/lang/timeout-token.ts","../src/lang/stop-watch.ts","../src/lang/promise-ratchet.ts","../src/lang/time-zone-ratchet.ts","../src/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-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],"names":["LoggerLevelName","LoggerOutputFunction","LogMessageFormatType","ExpiredJwtHandling","TransactionFinalState","LoggerRingBuffer","_lastLogMessage","messageSource","timestamp","Date","getTime","lvl","info","_buffer","_bufferIdx","_lastSnapshotIdx","_bufferSize","constructor","size","Error","this","currentIndex","lastSnapshotIdx","bufferSize","newSize","clearRingBuffer","getMessages","inStartFrom","clear","reverseSort","rval","start","slice","firstIdx","i","Math","max","push","reverse","takeSnapshot","trailingEdge","messages","logMessagesTruncated","getLastLogMessage","Object","assign","addToRingBuffer","newMsg","LoggerUtil","static","error","warn","verbose","debug","silly","handlerFunctionMap","outputFn","Console","output","Map","StdOut","process","stdout","write","myStdOut","chunk","cb","set","console","ConsoleNoDebug","log","defaultHandlerFunction","levelIsEnabled","targetLevel","currentEnabled","idxTarget","LOG_LEVELS_IN_ORDER","indexOf","ClassicSingleLineLogMessageFormatter","formatMessage","msg","meta","tmp","options","trace","util","format","subsVars","NoneLogMessageFormatter","StructuredJsonLogMessageFormatter","globalVars","params","toISOString","loggerInstanceName","loggerInstanceId","JSON","stringify","RequireRatchet","isNullOrUndefined","ob","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","None","StructuredJson","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","ClassicSingleLine","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","undefined","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","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","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","TransactionRatchet","execute","steps","initialContext","inConfiguration","config","stepLogLevel","finalContext","finalState","stepNames","errorStep","rollback","rollbackError","rollbackErrorStep","RollbackFailed","RolledBack","Success","executeAfterRollback","executeAfterRollbackFailure"],"mappings":"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"}
1
+ {"version":3,"file":"index.mjs","sources":["../src/logger/logger-level-name.ts","../src/logger/logger-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/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],"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","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","undefined","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","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,5 +1,6 @@
1
- export declare enum LogMessageFormatType {
2
- ClassicSingleLine = "ClassicSingleLine",
3
- StructuredJson = "StructuredJson",
4
- None = "None"
5
- }
1
+ export declare const LogMessageFormatType: {
2
+ readonly ClassicSingleLine: "ClassicSingleLine";
3
+ readonly StructuredJson: "StructuredJson";
4
+ readonly None: "None";
5
+ };
6
+ export type LogMessageFormatType = (typeof LogMessageFormatType)[keyof typeof LogMessageFormatType];
@@ -1,8 +1,9 @@
1
- export declare enum LoggerLevelName {
2
- error = "error",
3
- warn = "warn",
4
- info = "info",
5
- verbose = "verbose",
6
- debug = "debug",
7
- silly = "silly"
8
- }
1
+ export declare const LoggerLevelName: {
2
+ readonly error: "error";
3
+ readonly warn: "warn";
4
+ readonly info: "info";
5
+ readonly verbose: "verbose";
6
+ readonly debug: "debug";
7
+ readonly silly: "silly";
8
+ };
9
+ export type LoggerLevelName = (typeof LoggerLevelName)[keyof typeof LoggerLevelName];
@@ -1,5 +1,6 @@
1
- export declare enum LoggerOutputFunction {
2
- Console = "Console",
3
- ConsoleNoDebug = "ConsoleNoDebug",
4
- StdOut = "StdOut"
5
- }
1
+ export declare const LoggerOutputFunction: {
2
+ Console: string;
3
+ ConsoleNoDebug: string;
4
+ StdOut: string;
5
+ };
6
+ export type LoggerOutputFunction = (typeof LoggerOutputFunction)[keyof typeof LoggerOutputFunction];
@@ -1,5 +1,6 @@
1
- export declare enum TransactionFinalState {
2
- Success = "Success",
3
- RolledBack = "RolledBack",
4
- RollbackFailed = "RollbackFailed"
5
- }
1
+ export declare const TransactionFinalState: {
2
+ Success: string;
3
+ RolledBack: string;
4
+ RollbackFailed: string;
5
+ };
6
+ export type TransactionFinalState = (typeof TransactionFinalState)[keyof typeof TransactionFinalState];
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bitblit/ratchet-common",
3
- "version": "4.0.246-alpha",
3
+ "version": "4.0.253-alpha",
4
4
  "description": "Common tools for general use",
5
5
  "type": "module",
6
6
  "files": [
@@ -21,7 +21,8 @@
21
21
  "Austin Grantham <agrantham@algidious.com>",
22
22
  "Lucas Myers <veganbeef@protonmail.com>",
23
23
  "Joel Flint <joel@stimulimedia.net>",
24
- "Bilal Shahid <bshahid@adomni.com>"
24
+ "Bilal Shahid <bshahid@adomni.com>",
25
+ "Benn Linger <benn@bennlinger.com>"
25
26
  ],
26
27
  "husky": {
27
28
  "hooks": {