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