@bitblit/ratchet-common 4.0.184-alpha → 4.0.185-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.d.ts
CHANGED
|
@@ -57,6 +57,7 @@ export * from './network/browser-local-ip-provider.js';
|
|
|
57
57
|
export * from './network/fixed-local-ip-provider.js';
|
|
58
58
|
export * from './network/local-ip-provider.js';
|
|
59
59
|
export * from './network/network-ratchet.js';
|
|
60
|
+
export * from './network/restful-api-http-error.js';
|
|
60
61
|
export * from './stream/buffer-writable.js';
|
|
61
62
|
export * from './stream/multi-stream.js';
|
|
62
63
|
export * from './stream/stream-ratchet.js';
|
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,f,g;!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 L{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 L(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 O{static MAX_LEADING_ZEROS_FORMAT_LENGTH=1e3;static toFixedDecimalNumber(t,e){const r=O.safeNumber(t);return null==r?r:O.safeNumber(r.toFixed(e))}static leadingZeros(t,e){const r=String(t);if(r.length<e){let t="0000";if(e>O.MAX_LEADING_ZEROS_FORMAT_LENGTH)throw"Cannot format number that large (max length is "+O.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=O.safeNumber(t),s=O.safeNumber(e),o=O.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=>O.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!==O.safeNumber(t)}static boolToInt(t){return T.parseBool(t)?1:0}}class E{constructor(){}static translateToOriginVector(t){let e=null;return E.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 E.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 E.validPlane(t)&&E.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&&E.validPoint(t.p1)&&E.validPoint(t.p2)&&!E.samePoint(t.p1,t.p2)}static validLines(t){return!!t&&T.allTrue(t.map((t=>E.validLine(t))))}static validPolyLine(t){return!!t&&t.pts?.length>1&&T.allTrue(t.pts.map((t=>E.validPoint(t))))}static polyLineToLines(t){let e=null;if(E.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 E.validPolyLine(t)?t.pts[t.pts.length-1]:null}static lineToPolyLine(t){return E.validLine(t)?{pts:[t.p1,t.p2]}:null}static linesToPolyLines(t){let e=null;if(E.validLines(t)){e=[];let r=E.lineToPolyLine(t[0]);for(let n=1;n<t.length;n++)E.samePoint(E.lastPointOnPolyLine(r),t[n].p1)?r.pts.push(t[n].p2):(e.push(r),r=E.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=>E.validPoint(t))),!1)}static planeContainsPoint(t,e){return E.validPlane(e)&&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=>E.planeContainsPoint(t,e))).reduce(((t,e)=>t&&e),!0)}static linesToPoints(t){let e=null;return E.validLines(t)&&(e=t.map((t=>[t.p1,t.p2])).flat()),e}static pointsToLines(t){let e=null;if(E.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(E.validPoints(t)){r=Object.assign([],t),n=E.translateToOriginVector(r),r=E.translate(r,n);let e=E.minimalContainingPlane(r);r=E.xToY(r),e={width:e.height,height:e.width},n={x:-1*n.y,y:-1*n.x},r=E.mirrorPointsOnPlane(r,e,!0,!1),r=E.translate(r,n)}const s=e>4?e%4:e;return s>1&&(r=E.rotateRightAboutOrigin90Degrees(r,s-1)),r}static planeContainsLines(t,e){return t&&E.planeContainsPoints(t.map((t=>[t.p1,t.p2])).flat(),e)}static planeContainsPolyLine(t,e){return E.planeContainsLines(E.polyLineToLines(t),e)}static planeContainsLine(t,e){return E.validPlane(e)&&E.validLine(t)&&E.planeContainsPoint(t.p1,e)&&E.planeContainsPoint(t.p2,e)}static xToY(t){let e=null;return E.validPoints(t)&&(e=t.map((t=>({x:t.y,y:t.x})))),e}static translate(t,e){let r=null;return E.validPoints(t)&&E.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 E.validPoints(t)&&E.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(E.validPoints(t)&&E.validPlane(e)&&E.validPlane(r)){const s=E.scaleVector(e,r);n=t.map((t=>({x:t.x*s.x,y:t.y*s.y}))),n=E.mirrorPointsOnPlane(n,r,r.rightToLeft!==e.rightToLeft,r.topToBottom!==e.topToBottom)}return n}static transformPointToNewPlane(t,e,r){const n=E.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 M{constructor(){}static buildInformation(){return{version:"184",hash:"d240256bf20f61305d48224bc1b5bc41fc34efd3",branch:"alpha-2023-07-10-12",tag:"alpha-2023-07-10-12",timeBuiltISO:"2023-07-10T20:23:11-0700",notes:"No notes"}}}class _{entries=[];update(t,e=1){if(t){const r=this.entries.find((e=>e.item===t));r?r.count+=e:this.entries.push({item:t,count:e})}}sort(){this.entries.sort(((t,e)=>{let r=e.count-t.count;return 0===r&&(r=String(e.item).localeCompare(String(t.item))),r}))}sortKeys(){this.entries.sort(((t,e)=>String(e.item).localeCompare(String(t.item))))}reverse(){this.entries.reverse()}getEntries(){return this.entries}getTotalCount(){let t=0;return this.entries.forEach((e=>t+=e.count)),t}countForValue(t){const e=this.entries.find((e=>e.item===t));return e?e.count:0}percentForValue(t){const e=this.getTotalCount();return 0===e?0:this.countForValue(t)/e}}!function(t){t[t.RETURN_NULL=0]="RETURN_NULL",t[t.THROW_EXCEPTION=1]="THROW_EXCEPTION",t[t.ADD_FLAG=2]="ADD_FLAG"}(f||(f={}));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=O.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=O.leadingZeros;let a=i(o,2)+":"+i(s,2)+":";return a+=e?i(n,2)+"."+i(r,3):i(n,2),a}static daysBetween(t,e){return r.fromJSDate(t).diff(r.fromJSDate(e)).days}static createSteps(t,e,n,s,o){let i=r.fromMillis(t).setZone(n);const a=r.fromMillis(e),l=[];for(;i<a;)l.push(i.toFormat(s)),i=i.plus(o);return l}}class v{_encryptionKeyPromise;_decryptKeysPromise;_jtiGenerator;_decryptOnlyKeyUseLogLevel;_parseFailureLogLevel;static EXPIRED_FLAG_NAME="__jwtServiceExpiredFlag";constructor(t,e,r=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[v.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 v.decodeTokenNoVerify(t),n=Math.floor(Date.now()/1e3);if(r.exp){const t=r.exp>100*n?Math.floor(r.exp/1e3):r.exp;e=Math.max(0,t-n)}}return e}static async msRemainingUntilExpiration(t){const e=await v.secondsRemainingUntilExpiration(t);let r=null;return null!=e&&(r=1e3*e),r}async decodeToken(t,e=f.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 v.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 f.THROW_EXCEPTION:throw new Error("JWT Token was expired");case f.ADD_FLAG:o[v.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?f.ADD_FLAG:f.THROW_EXCEPTION,s=await this.decodeToken(t,n),o=s.exp&&s.iat?s.exp-s.iat:null,i=r||o;v.removeJwtFields(s),v.removeExpiredFlag(s);return await this.createTokenString(s,i)}static decodeTokenNoVerify(t){return e.decode(t)}static removeJwtFields(t){t&&["iss","sub","aud","exp","nbf","iat","jti"].forEach((e=>{delete t[e]}))}static removeExpiredFlag(t){t&&delete t[v.EXPIRED_FLAG_NAME]}}class P{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 P.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 P.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&&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 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 A{static safeObjectToBase64JSON(t){return t?A.generateBase64VersionOfString(JSON.stringify(t)):null}static safeBase64JSONParse(t){let e={};try{t&&(e=JSON.parse(A.base64StringToString(t)))}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 A.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 I{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 B{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=B.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=>B.keyToEnum(t,e))).filter((t=>!!t))}}class F{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&&P.throwFormattedErr("Cannot define both time to live and overrideTimeRemainingMS"),this._config.overrideTimeRemainingMS||this._config.timeToLiveMS||P.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 O.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&&P.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:O.safeNumber(t.lat.toFixed(e)),lng:O.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&&O.between(t.lat,e.origin.lat,e.extent.lat)&&O.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 P.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}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 f=a.length;for(;a.length>0;){const e=a.slice(0,Math.min(a.length,n));a=a.slice(e.length);const r=e.map((e=>t.apply(c,e))),l=await Promise.all(r);u+=r.length,i=i.concat(l);const g=u/f;S.logByLevel(s,"%d elements remain : %s",a.length,o.dumpExpected(g))}return o.log(),i}static async runBoundedParallelSingleParam(t,e,r,n=1,s=l.debug){const o=R.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 ${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 q extends o{_val=[];constructor(){super()}_write(t,e,r){t&&this._val.push(t),r()}get value(){return Buffer.concat(this._val)}}class Y 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 Q{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){P.throwFormattedErr("StringWebWritableStream failure : %s",t)}},{highWaterMark:3,size:()=>1});return await t.pipeTo(r),Buffer.concat(e)}static async webReadableStreamToString(t){return(await Q.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?Q.stringToReadable(null):Q.stringToReadable(w.safeString(t))}}class tt extends o{_val="";constructor(){super()}_write(t,e,r){this._val+=t?t.toString():"",r()}get value(){return this._val}}class et{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=et.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 rt{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(rt.isValidE164Number(r),"outBoundNumber invalid format")}static async sendMessageDirect(t,e,r,n,s){const o=new rt(t,e,r);return await o.sendMessage(n,s)}static generateTwilioBasicAuth(t,e){return"Basic "+A.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(rt.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),!rt.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:rt.generateTwilioBasicAuth(this.accountSid,this.authToken),"Content-Type":"application/x-www-form-urlencoded"},body:o},l=await a(rt.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 nt{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=O.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 st{static transform(t,e=[]){return st.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=st.applyTransformToPrimitive(t,e,r,n);break;case"object":s=st.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=st.transformGeneric(n,e,r,t);null!=o&&s.push(o)}))):(s={},Object.keys(t).forEach((r=>{const n=t[r],o=st.applyTransformToPrimitive(r,e,!0,t);if(null!=o){let r=st.transformGeneric(n,e,!1,t);r=st.applyTransformToPrimitive(r,e,!1,t),null!=r&&(s[o]=r)}})),s=st.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"}(g||(g={}));class ot{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?g.RollbackFailed:s.error?g.RolledBack:g.Success,S.info("Transaction completed with status : %s",s.finalState),n?.executeAfterRollback&&s.finalState!==g.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!==g.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{R as ArrayRatchet,A as Base64Ratchet,T as BooleanRatchet,$ as BrowserLocalIpProvider,q as BufferWritable,nt as BuiltInTransforms,p as ClassicSingleLineLogMessageFormatter,I as CompositeLastSuccessProvider,C as DateRatchet,x as DurationRatchet,B as EnumRatchet,P as ErrorRatchet,F as EsmRatchet,f as ExpiredJwtHandling,D as ExpiringObject,U as ExpiringObjectConfig,X as FixedLocalIpProvider,j as GeolocationRatchet,k as GlobalRatchet,et as GoogleRecaptchaRatchet,_ as Histogram,v as JwtRatchet,V as KeyValue,H as LogMessageBuilder,u as LogMessageFormatType,S as Logger,L as LoggerInstance,l as LoggerLevelName,c as LoggerOutputFunction,h as LoggerRingBuffer,d as LoggerUtil,N as MapRatchet,Y as MultiStream,Z as NetworkRatchet,G as No,m as NoneLogMessageFormatter,O as NumberRatchet,J as PromiseRatchet,E as Ratchet2d,M as RatchetInfo,b as RequireRatchet,K as StopWatch,Q as StreamRatchet,w as StringRatchet,tt as StringWritable,y as StructuredJsonLogMessageFormatter,W as TimeZoneRatchet,z as TimeoutToken,g as TransactionFinalState,ot as TransactionRatchet,st as TransformRatchet,rt 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 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};
|
|
2
2
|
//# sourceMappingURL=index.mjs.map
|
package/lib/index.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.mjs","sources":["../src/logger/logger-level-name.ts","../src/logger/logger-output-function.ts","../src/logger/log-message-format-type.ts","../src/jwt/expired-jwt-handling.ts","../src/tx/transaction-final-state.ts","../src/logger/logger-ring-buffer.ts","../src/logger/logger-util.ts","../src/logger/classic-single-line-log-message-formatter.ts","../src/logger/none-log-message-formatter.ts","../src/logger/structured-json-log-message-formatter.ts","../src/lang/require-ratchet.ts","../src/lang/string-ratchet.ts","../src/logger/logger-instance.ts","../src/logger/logger.ts","../src/lang/number-ratchet.ts","../src/lang/boolean-ratchet.ts","../src/2d/ratchet-2d.ts","../src/build/ratchet-common-info.ts","../src/histogram/histogram.ts","../src/lang/duration-ratchet.ts","../src/jwt/jwt-ratchet.ts","../src/lang/error-ratchet.ts","../src/lang/map-ratchet.ts","../src/lang/array-ratchet.ts","../src/lang/base64-ratchet.ts","../src/lang/composite-last-success-provider.ts","../src/lang/date-ratchet.ts","../src/lang/enum-ratchet.ts","../src/lang/esm-ratchet.ts","../src/lang/expiring-object.ts","../src/lang/geolocation-ratchet.ts","../src/lang/global-ratchet.ts","../src/lang/key-value.ts","../src/lang/no.ts","../src/lang/timeout-token.ts","../src/lang/stop-watch.ts","../src/lang/promise-ratchet.ts","../src/lang/time-zone-ratchet.ts","../src/logger/log-message-builder.ts","../src/network/network-ratchet.ts","../src/network/browser-local-ip-provider.ts","../src/network/fixed-local-ip-provider.ts","../src/stream/buffer-writable.ts","../src/stream/multi-stream.ts","../src/stream/stream-ratchet.ts","../src/stream/string-writable.ts","../src/third-party/google/google-recaptcha-ratchet.ts","../src/third-party/twilio/twilio-ratchet.ts","../src/transform/built-in-transforms.ts","../src/transform/transform-ratchet.ts","../src/tx/transaction-ratchet.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],"names":["LoggerLevelName","LoggerOutputFunction","LogMessageFormatType","ExpiredJwtHandling","TransactionFinalState","LoggerRingBuffer","_lastLogMessage","messageSource","timestamp","Date","getTime","lvl","info","_buffer","_bufferIdx","_lastSnapshotIdx","_bufferSize","constructor","size","Error","this","currentIndex","lastSnapshotIdx","bufferSize","newSize","clearRingBuffer","getMessages","inStartFrom","clear","reverseSort","rval","start","slice","firstIdx","i","Math","max","push","reverse","takeSnapshot","trailingEdge","messages","logMessagesTruncated","getLastLogMessage","Object","assign","addToRingBuffer","newMsg","LoggerUtil","static","error","warn","verbose","debug","silly","outputFn","Console","output","Map","StdOut","process","stdout","write","myStdOut","chunk","cb","set","console","ConsoleNoDebug","log","targetLevel","currentEnabled","idxTarget","LOG_LEVELS_IN_ORDER","indexOf","ClassicSingleLineLogMessageFormatter","formatMessage","msg","meta","tmp","options","trace","util","format","subsVars","NoneLogMessageFormatter","StructuredJsonLogMessageFormatter","globalVars","params","toISOString","loggerInstanceName","loggerInstanceId","JSON","stringify","RequireRatchet","ob","name","isNullOrUndefined","trim","length","ob1","ob2","message","equal","arr","expectedLength","customMsg","notNullOrUndefined","restArgs","args","Array","from","arguments","len","noNullOrUndefinedValuesInArray","StringRatchet","val","TextEncoder","encode","TextDecoder","decode","trimToNull","parse","err","attemptJsonParse","input","check","Set","test","charAt","has","add","alphabet","true","allUnique","step","allPermutationsOfLength","forEach","s","replace","c","r","random","toString","floor","value","toLowerCase","RFC_3986_RESERVED","bytes","decimals","dm","parseFloat","pow","toFixed","String","inVal","validCharsIn","validChars","prefixLength","suffixLength","pl","sl","rem","substring","pad","negative","sVal","startsWith","safeString","x","trimToEmpty","trimAllStringPropertiesInPlace","toEmpty","keys","key","stringContainsOnlyNumbers","split","join","reduce","previousValue","currentValue","charCodeAt","LoggerInstance","_loggerMeta","_ringBuffer","_formatter","_level","_handlerFunctionMap","_options","inOptions","addPreProcessor","proc","preProcessors","ringBuffer","dumpConfigurationIntoLog","dumpOptionsIntoLog","labels","map","p","label","changeRingBufferSize","ringBufferSize","updateTracePrefix","newValue","newOpts","formatType","None","StructuredJson","initialLevel","handlerFunctionMap","outputFunction","oldId","createRandomHexString","level","newLevel","consoleLogPassThru","levelIsEnabled","passThruPrefix","unshift","get","defaultHandlerFunction","createLogMessage","now","formatMessages","msgs","m","filter","recordMessageBuilder","msgBuild","recordMessage","toMessage","inMsg","errorP","warnP","infoP","verboseP","debugP","sillyP","logByLevel","importMessages","prefixIn","addTimestamp","prefix","mOut","Logger","ClassicSingleLine","DEFAULT_OPTIONS","retroactive","LOGGER_INSTANCES","values","li","loggerName","inst","applyDefaultsToOptions","getLogger","buf","NumberRatchet","placesAfterPoint","v","safeNumber","MAX_LEADING_ZEROS_FORMAT_LENGTH","inTest","inP1","inP2","p1","p2","ifNotNumber","useDefaultForNullAndUndefined","type","Number","isNaN","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","BufferWritable","Writable","_val","super","_write","MultiStream","Readable","_object","object","objectMode","_read","StreamRatchet","stream","bufs","next","read","out","writer","WritableStream","controller","stringToUint8Array","abort","reason","highWaterMark","pipeTo","webReadableStreamToBuffer","ReadableStream","enqueue","close","stringToReadable","StringWritable","GoogleRecaptchaRatchet","keySecret","fetchFn","fetch","GOOGLE_VERIFY_URL","resp","body","json","success","TwilioRatchet","accountSid","authToken","outBoundNumber","isValidE164Number","recipientPhoneNumbers","ratchet","sendMessage","sid","phoneNumber","encodeURIComponent","post","method","headers","authorization","generateTwilioBasicAuth","TWILLIO_BASE_API_URL","parsedResponse","num","BuiltInTransforms","rule","transform","isKey","group1","newFieldName","oldFieldNamesInOrder","abortIfFieldMissing","n","temp","fieldNames","oldVal","oldName","newName","valueToAdd","oldFormat","newFormat","oldValue","TransformRatchet","toTransform","rules","transformGeneric","applyTransformToPrimitive","applyTransformToObject","newKey","TransactionRatchet","steps","initialContext","inConfiguration","config","stepLogLevel","finalContext","finalState","stepNames","execute","errorStep","rollback","rollbackError","rollbackErrorStep","RollbackFailed","RolledBack","Success","executeAfterRollback","executeAfterRollbackFailure"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.mjs","sources":["../src/logger/logger-level-name.ts","../src/logger/logger-output-function.ts","../src/logger/log-message-format-type.ts","../src/jwt/expired-jwt-handling.ts","../src/tx/transaction-final-state.ts","../src/logger/logger-ring-buffer.ts","../src/logger/logger-util.ts","../src/logger/classic-single-line-log-message-formatter.ts","../src/logger/none-log-message-formatter.ts","../src/logger/structured-json-log-message-formatter.ts","../src/lang/require-ratchet.ts","../src/lang/string-ratchet.ts","../src/logger/logger-instance.ts","../src/logger/logger.ts","../src/lang/number-ratchet.ts","../src/lang/boolean-ratchet.ts","../src/2d/ratchet-2d.ts","../src/build/ratchet-common-info.ts","../src/histogram/histogram.ts","../src/lang/duration-ratchet.ts","../src/jwt/jwt-ratchet.ts","../src/lang/error-ratchet.ts","../src/lang/map-ratchet.ts","../src/lang/array-ratchet.ts","../src/lang/base64-ratchet.ts","../src/lang/composite-last-success-provider.ts","../src/lang/date-ratchet.ts","../src/lang/enum-ratchet.ts","../src/lang/esm-ratchet.ts","../src/lang/expiring-object.ts","../src/lang/geolocation-ratchet.ts","../src/lang/global-ratchet.ts","../src/lang/key-value.ts","../src/lang/no.ts","../src/lang/timeout-token.ts","../src/lang/stop-watch.ts","../src/lang/promise-ratchet.ts","../src/lang/time-zone-ratchet.ts","../src/logger/log-message-builder.ts","../src/network/network-ratchet.ts","../src/network/browser-local-ip-provider.ts","../src/network/fixed-local-ip-provider.ts","../src/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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"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
export declare class RestfulApiHttpError<T = void> extends Error {
|
|
2
|
+
private static readonly RATCHET_RESTFUL_API_HTTP_ERROR_FLAG_KEY;
|
|
3
|
+
private _httpStatusCode;
|
|
4
|
+
private _errors;
|
|
5
|
+
private _detailErrorCode;
|
|
6
|
+
private _endUserErrors;
|
|
7
|
+
private _details;
|
|
8
|
+
private _requestId;
|
|
9
|
+
private _wrappedError;
|
|
10
|
+
constructor(...errors: string[]);
|
|
11
|
+
static combineErrorStringsWithDefault(errors: string[], defMessage?: string): string;
|
|
12
|
+
setFormattedErrorMessage(format: string, ...input: any[]): void;
|
|
13
|
+
withFormattedErrorMessage(format: string, ...input: any[]): RestfulApiHttpError<T>;
|
|
14
|
+
withHttpStatusCode(httpStatusCode: number): RestfulApiHttpError<T>;
|
|
15
|
+
withErrors(errors: string[]): RestfulApiHttpError<T>;
|
|
16
|
+
withDetailErrorCode(detailErrorCode: number): RestfulApiHttpError<T>;
|
|
17
|
+
withEndUserErrors(endUserErrors: string[]): RestfulApiHttpError<T>;
|
|
18
|
+
withDetails(details: T): RestfulApiHttpError<T>;
|
|
19
|
+
withRequestId(requestId: string): RestfulApiHttpError<T>;
|
|
20
|
+
withWrappedError(err: Error): RestfulApiHttpError<T>;
|
|
21
|
+
isWrappedError(): boolean;
|
|
22
|
+
static wrapError<T = void>(err: Error): RestfulApiHttpError<T>;
|
|
23
|
+
static objectIsRestfulApiHttpError(obj: any): boolean;
|
|
24
|
+
get httpStatusCode(): number;
|
|
25
|
+
get errors(): string[];
|
|
26
|
+
get detailErrorCode(): number;
|
|
27
|
+
get endUserErrors(): string[];
|
|
28
|
+
get details(): T;
|
|
29
|
+
get requestId(): string;
|
|
30
|
+
get wrappedError(): Error;
|
|
31
|
+
set httpStatusCode(value: number);
|
|
32
|
+
set errors(value: string[]);
|
|
33
|
+
set detailErrorCode(value: number);
|
|
34
|
+
set endUserErrors(value: string[]);
|
|
35
|
+
set details(value: T);
|
|
36
|
+
set requestId(value: string);
|
|
37
|
+
set wrappedError(value: Error);
|
|
38
|
+
static errorIsX0x(errIn: Error, xClass: number): boolean;
|
|
39
|
+
static errorIs40x(err: Error): boolean;
|
|
40
|
+
static errorIs50x(err: Error): boolean;
|
|
41
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|