@bitblit/ratchet-common 4.0.321-alpha → 4.0.323-alpha
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/index.mjs +1 -1
- package/lib/index.mjs.map +1 -1
- package/package.json +1 -1
package/lib/index.mjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import t from"util";import e from"jsonwebtoken";import{DateTime as r}from"luxon";import{$enum as n}from"ts-enum-util";import s from"url";import i from"cross-fetch";const o={error:"error",warn:"warn",info:"info",verbose:"verbose",debug:"debug",silly:"silly"};class a{_lastLogMessage={messageSource:"No message yet",timestamp:(new Date).getTime(),lvl:o.info};_buffer=[];_bufferIdx=0;_lastSnapshotIdx=0;_bufferSize;constructor(t){if(!t)throw new Error("Cannot create ring buffer of size 0");this._bufferSize=t}get currentIndex(){return this._bufferIdx}get lastSnapshotIdx(){return this._lastSnapshotIdx}set bufferSize(t){if(!t)throw new Error("Cannot create ring buffer of size 0");this._bufferSize=t,this.clearRingBuffer()}getMessages(t=null,e=!1,r=!1){let n=null;if(this._bufferIdx<this._bufferSize){const e=null==t?0:t;n=this._buffer.slice(e,this._bufferIdx)}else{n=[];const e=this._bufferIdx-this._bufferSize;for(let r=t?Math.max(t,e):e;r<this._bufferIdx;r++)n.push(this._buffer[r%this._bufferSize])}return e&&this.clearRingBuffer(),r&&(n=n.reverse()),n}takeSnapshot(){const t=Math.max(0,this._bufferIdx-this._bufferSize),e={messages:this.getMessages(this._lastSnapshotIdx),logMessagesTruncated:Math.max(0,t-this._lastSnapshotIdx)};return this._lastSnapshotIdx=this._bufferIdx,e}getLastLogMessage(){return Object.assign({},this._lastLogMessage)}clearRingBuffer(){this._buffer=[],this._bufferIdx=0,this._lastSnapshotIdx=0}addToRingBuffer(t){this._lastLogMessage=t,this._buffer[this._bufferIdx%this._bufferSize]=t,this._bufferIdx++}}const l={Console:"Console",ConsoleNoDebug:"ConsoleNoDebug",StdOut:"StdOut"};class c{static LOG_LEVELS_IN_ORDER=[o.error,o.warn,o.info,o.verbose,o.debug,o.silly];static handlerFunctionMap(t=l.Console){const e=new Map;if(t===l.StdOut){if(!process?.stdout?.write)throw new Error("Cannot use standard out - process.stdout.write not found");const t=(t,e)=>process.stdout.write(t,"utf-8",e);e.set(o.error,t),e.set(o.warn,t),e.set(o.info,t),e.set(o.verbose,t),e.set(o.debug,t),e.set(o.silly,t)}else e.set(o.error,console.error),e.set(o.warn,console.warn),e.set(o.info,console.info),e.set(o.verbose,t===l.ConsoleNoDebug?console.log:console.debug),e.set(o.debug,t===l.ConsoleNoDebug?console.log:console.debug),e.set(o.silly,t===l.ConsoleNoDebug?console.log:console.debug);return e}static defaultHandlerFunction(){return console.info}static levelIsEnabled(t,e){const r=c.LOG_LEVELS_IN_ORDER.indexOf(t),n=c.LOG_LEVELS_IN_ORDER.indexOf(e);return r>-1&&n>-1&&n>=r}}const u={ClassicSingleLine:"ClassicSingleLine",StructuredJson:"StructuredJson",None:"None"};class d{formatMessage(e,r){let n=null;return e&&(n="",n+=r.options.trace?r.options.trace+" ":"",n+="["+e.lvl+"] ",n+=t.format(e.messageSource,...e.subsVars)),n}}class h{formatMessage(t,e){return null}}class g{formatMessage(e,r){let n=null;if(e){const s=Object.assign({},r.options.globalVars||{},e.params||{});s.msg=t.format(e.messageSource,...e.subsVars),s.utcDateTime=new Date(e.timestamp).toISOString(),s.logLevel=e.lvl,r.options.trace&&(s.trace=r.options.trace),s.logName=r.loggerInstanceName,s.logId=r.loggerInstanceId,n=JSON.stringify(s)+"\n"}return n}}class f{static isNullOrUndefined(t){return Object.is(t,null)||Object.is(t,void 0)}static notNullOrUndefined(t,e="object"){if(f.isNullOrUndefined(t))throw new Error(e+" may not be null or undefined")}static notNullUndefinedOrOnlyWhitespaceString(t,e="string"){if(f.isNullOrUndefined(t)||""===t.trim())throw new Error(e+" may not be null or undefined or only whitespace string")}static notNullUndefinedOrEmptyArray(t,e="string"){if(f.isNullOrUndefined(t)||0===t.length)throw new Error(e+" may not be null or undefined or an empty array")}static equal(t,e,r="Values must be equal"){if(t!==e)throw new Error(r)}static true(t,e="Value must be true"){f.equal(t,!0,e)}static noNullOrUndefinedValuesInArray(t,e=null,r=null){if(f.notNullOrUndefined(t,"Source array may not be null"),null!==e&&t.length!==e)throw new Error(`Expected array of length ${e} but was ${t.length} ${r}`);for(let e=0;e<t.length;e++)if(f.isNullOrUndefined(t[e]))throw new Error(`Array index ${e} was null or undefined ${r}`)}static noNullOrUndefinedValuesInRestArgs(t,...e){if(f.notNullOrUndefined(e,"Source array may not be null"),null!==t&&e.length!==t)throw new Error(`Expected array of length ${t} but was ${e.length}`);for(let t=0;t<e.length;t++)if(f.isNullOrUndefined(e[t]))throw new Error(`Array index ${t} was null or undefined`)}static constructorArgumentsMatchLengthAndAreNonNull(){const t=Array.from(arguments),e=this.constructor.length;return f.noNullOrUndefinedValuesInArray(t,e)}}class p{static RFC_3986_RESERVED=["!","*","'","(",")",";",":","@","&","=","+","$",",","/","?","#","[","]","%"];static DIGITS="0123456789";static HEXITS=p.DIGITS+"ABCDEF";static UPPER_CASE_LATIN="ABCDEFGHIJKLMNOPQRSTUVWXYZ";static LOWER_CASE_LATIN="abcdefghijklmnopqrstuvwxyz";static CASE_INSENSITIVE_LATIN=p.UPPER_CASE_LATIN+p.LOWER_CASE_LATIN;static stringIsInGivenAlphabet(t,e){let r=!1;if(t&&e)for(let n=0;n<t.length&&!r;n++)r=e.includes(t.charAt(n));return r}static stringToUint8Array(t){return t?(new TextEncoder).encode(t):null}static uint8ArrayToString(t){return t?(new TextDecoder).decode(t):null}static attemptJsonParse(t){let e=null;if(p.trimToNull(t))try{e=JSON.parse(t)}catch(t){e=null}return e}static canParseAsJson(t){return!!p.attemptJsonParse(t)}static allUnique(t){let e=!0;if(t){const r=new Set;for(let n=0;n<t.length&&e;n++){const s=t.charAt(n);e=!r.has(s),r.add(s)}}return e}static allPermutationsOfLength(t,e){const r=[];if(t>0&&e&&e.length>0){f.true(p.allUnique(e),"Alphabet must be unique");const n=1===t?[""]:p.allPermutationsOfLength(t-1,e);for(let t=0;t<e.length;t++)n.forEach((n=>r.push(e.charAt(t)+n)))}return r}static breakIntoBlocks(t,e,r){let n="";for(;t.length>e;)n=r+t.substring(t.length-e)+n,t=t.substring(0,t.length-e);return n=t.length>0?t+n:n.substring(1),n}static createShortUid(t=0,e=1e3,r=36){const n=Math.floor(Date.now()/1e3),s=parseInt(String(Math.floor(Math.random()*e))+String(n)).toString(r);return t>0?p.breakIntoBlocks(s,t,"-"):s}static createType4Guid(){return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,(function(t){const e=16*Math.random()|0;return("x"==t?e:3&e|8).toString(16)}))}static createRandomHexString(t=10){let e="";for(let r=0;r<t;r++)e+=Math.floor(16*Math.random()).toString(16);return e}static canonicalize(t){let e=t?t.toLowerCase():"";return e=e.replace(" ","-"),p.RFC_3986_RESERVED.forEach((t=>{e=e.replace(t,"")})),e}static formatBytes(t,e=2){if(0==t)return"0 Bytes";const r=e||2,n=Math.floor(Math.log(t)/Math.log(1024));return parseFloat((t/Math.pow(1024,n)).toFixed(r))+" "+["Bytes","KB","MB","GB","TB","PB","EB","ZB","YB"][n]}static safeString(t){let e=null;if(null!=t){e="string"==typeof t?t:String(t)}return e}static stringContainsOnlyNumbers(t){return/^[0-9]+$/.test(t)}static stringContainsOnlyAlphanumeric(t){return/^[0-9a-zA-Z]+$/.test(t)}static stringContainsOnlyHex(t){return/^[0-9a-fA-F]+$/.test(t)}static stringContainsOnly(t,e){const r=t||"",n=e||"";let s=!0;for(let t=0;t<r.length&&s;t++)s=n.indexOf(r.charAt(t))>=0;return s}static obscure(t,e=2,r=2){if(!t)return t;const n=t.length;let s=e,i=r;for(;n>0&&n<s+i+1;)s=Math.max(0,s-1),i=Math.max(0,i-1);const o=n-(s+i);let a="";a+=t.substring(0,s);for(let t=0;t<o;t++)a+="*";return a+=t.substring(n-i),a}static leadingZeros(t,e){const r="00000000000000000000000000000000000000000000000000";let n=!1,s=String(t);if(s.startsWith("-")&&(n=!0,s=s.substring(1)),e>50)throw new Error("Cannot format number that large");let i=(r+s).slice(-1*e);return n&&(i="-"+i),i}static trimToEmpty(t){return(t?p.safeString(t):"").trim()}static trimToNull(t){const e=p.trimToEmpty(t);return e.length>0?e:null}static trimAllStringPropertiesToNullInPlace(t){return p.trimAllStringPropertiesInPlace(t,!1)}static trimAllStringPropertiesToEmptyInPlace(t){return p.trimAllStringPropertiesInPlace(t,!0)}static trimAllStringPropertiesInPlace(t,e){return Object.keys(t).forEach((r=>{const n=t[r];null!=n&&"string"==typeof n&&(t[r]=e?p.trimToEmpty(t[r]):p.trimToNull(t[r]))})),t}static stripNonNumeric(t){let e=t;if(null!=t&&!p.stringContainsOnlyNumbers(t)){e="";for(let r=0;r<t.length;r++){const n=t.charAt(r);(p.stringContainsOnlyNumbers(n)||0===r&&"-"===n)&&(e+=n)}}return e}static csvSafe(t){let e=p.trimToEmpty(p.safeString(t));return e.split('"').join('\\"'),-1===e.indexOf(",")&&-1===e.indexOf('"')&&-1===e.indexOf("'")||(e='"'+e+'"'),e}static stripNonAscii(t){return[...t].reduce(((t,e)=>e.charCodeAt(0)>127?t:t+e))}static replaceAll(t,e,r){let n=t;return n?.length&&e?.length&&r?.length&&(n=n.split(e).join(r)),n}}class m{loggerInstanceName;_guid=Math.floor(1e6*Math.random());_loggerMeta;_ringBuffer;_formatter;_level;_handlerFunctionMap;_options;constructor(t="default",e){this.loggerInstanceName=t,this.options=e}addPreProcessor(t){return t&&(this._options.preProcessors=this._options.preProcessors||[],this._options.preProcessors.push(t)),Object.assign([],this._options.preProcessors)}get ringBuffer(){return this._ringBuffer}dumpConfigurationIntoLog(){this.error("ERROR enabled"),this.warn("WARN enabled"),this.info("INFO enabled"),this.verbose("VERBOSE enabled"),this.debug("DEBUG enabled"),this.silly("SILLY enabled")}dumpOptionsIntoLog(){if(this.info("Guid: %s Options: %j",this._guid,this.options),this?.options?.preProcessors?.length){const t=this.options.preProcessors.map((t=>p.trimToNull(t.label())||"Unlabelled"));this.info("Preprocessors: %j",t)}}get guid(){return this._guid}changeRingBufferSize(t){this._ringBuffer=null,t&&(this._ringBuffer=new a(t),this._options.ringBufferSize=t)}updateTracePrefix(t){this._options.trace=t}get options(){return Object.assign({},this._options)}set options(t){switch(this._options=Object.assign({},t),this._options.ringBufferSize&&(this._ringBuffer=new a(this._options.ringBufferSize)),this._options.formatType){case u.None:this._formatter=new h;break;case u.StructuredJson:this._formatter=new g;break;default:this._formatter=new d}this._level=this._options.initialLevel,this._handlerFunctionMap=c.handlerFunctionMap(this._options.outputFunction);const e=this._loggerMeta?this._loggerMeta.loggerInstanceId:null;this._loggerMeta={options:this._options,loggerInstanceName:this.loggerInstanceName,loggerInstanceId:e||p.createRandomHexString(8)}}get level(){return this._level}set level(t){if(!t)throw new Error("Cannot set level to null/undefined");this._level=t}consoleLogPassThru(t,...e){if(c.levelIsEnabled(t,this._level)){let r=this._options.trace||"";r+="["+t+"] ",e.unshift(r);(this._handlerFunctionMap.get(t)||c.defaultHandlerFunction)(...e)}}createLogMessage(t,e,r,...n){return{lvl:t,timestamp:Date.now(),messageSource:r,subsVars:n,params:e}}formatMessage(t){return t?this._formatter.formatMessage(t,this._loggerMeta):null}formatMessages(t){return(t||[]).map((t=>this.formatMessage(t))).filter((t=>!!t))}recordMessageBuilder(t){return this.recordMessage(t.toMessage())}recordMessage(t){let e=null;if(c.levelIsEnabled(t.lvl,this._level)){let r=Object.assign({},t);if(this._options.preProcessors?.length)for(let t=0;t<this._options.preProcessors.length;t++)r=this._options.preProcessors[t].process(r);if(e=this.formatMessage(r),e){(this._handlerFunctionMap.get(r.lvl)||c.defaultHandlerFunction)(e),this._ringBuffer&&this._ringBuffer.addToRingBuffer(r)}}return e}error(t,...e){const r=this.createLogMessage(o.error,{},t,...e);return this.recordMessage(r)}errorP(...t){this.consoleLogPassThru(o.error,...t)}warn(t,...e){const r=this.createLogMessage(o.warn,{},t,...e);return this.recordMessage(r)}warnP(...t){this.consoleLogPassThru(o.warn,...t)}info(t,...e){const r=this.createLogMessage(o.info,{},t,...e);return this.recordMessage(r)}infoP(...t){this.consoleLogPassThru(o.info,...t)}verbose(t,...e){const r=this.createLogMessage(o.verbose,{},t,...e);return this.recordMessage(r)}verboseP(...t){this.consoleLogPassThru(o.verbose,...t)}debug(t,...e){const r=this.createLogMessage(o.debug,{},t,...e);return this.recordMessage(r)}debugP(...t){this.consoleLogPassThru(o.debug,...t)}silly(t,...e){const r=this.createLogMessage(o.silly,{},t,...e);return this.recordMessage(r)}sillyP(...t){this.consoleLogPassThru(o.silly,...t)}logByLevel(t,e,...r){const n=this.createLogMessage(t,{},e,...r);this.recordMessage(n)}importMessages(t,e="",r=!0){const n=e||"";t&&t.length>0&&(this.silly("Received import data : %d msgs",t.length),t.forEach((t=>{if(t.messageSource){let e=n;if(r){e+=" ("+String(new Date).substring(15,24)+") : ",e+=t.messageSource}this.logByLevel(t.lvl,e)}})))}}class y{static LOGGER_INSTANCE_MAP_GLOBAL_KEY="RATCHET_GLOBAL_LOGGER_MAP_V01";static GLOBAL_PROVIDER=process||global||window;static DEFAULT_OPTIONS={initialLevel:o.info,formatType:u.ClassicSingleLine,trace:null,globalVars:{},outputFunction:l.Console,ringBufferSize:0,preProcessors:[]};static applyDefaultsToOptions(t){const e=t||{};return e.initialLevel=e.initialLevel??y.DEFAULT_OPTIONS.initialLevel,e.formatType=e.formatType??y.DEFAULT_OPTIONS.formatType,e.trace=e.trace??y.DEFAULT_OPTIONS.trace,e.globalVars=e.globalVars??y.DEFAULT_OPTIONS.globalVars,e.outputFunction=e.outputFunction??y.DEFAULT_OPTIONS.outputFunction,e.ringBufferSize=e.ringBufferSize??y.DEFAULT_OPTIONS.ringBufferSize,e}static loggerInstances(){if(!y.GLOBAL_PROVIDER)throw new Error("Cannot create logger - could not find a global provider");let t=y.GLOBAL_PROVIDER[y.LOGGER_INSTANCE_MAP_GLOBAL_KEY];return t||(t=new Map,y.GLOBAL_PROVIDER[y.LOGGER_INSTANCE_MAP_GLOBAL_KEY]=t),t}static changeDefaultOptions(t,e){if(!t||!t.initialLevel||!t.formatType)throw new Error("Default options must be non-null, and provide initial level and format type");y.DEFAULT_OPTIONS=Object.assign({},t),e&&Array.from(y.loggerInstances().values()).forEach((e=>e.options=t))}static getLogger(t="default",e){let r=y.loggerInstances().get(t);if(!r){const n=y.applyDefaultsToOptions(e);r=new m(t,n),y.loggerInstances().set(t,r)}return r}static recordMessageBuilder(t){return y.getLogger().recordMessageBuilder(t)}static recordMessage(t){return y.getLogger().recordMessage(t)}static formatMessages(t){return y.getLogger().formatMessages(t)}static updateTracePrefix(t){return y.getLogger().updateTracePrefix(t)}static changeRingBufferSize(t){return y.getLogger().changeRingBufferSize(t)}static getRingBuffer(){return y.getLogger().ringBuffer}static dumpConfigurationIntoLog(){return y.getLogger().dumpConfigurationIntoLog()}static dumpOptionsIntoLog(){return y.getLogger().dumpOptionsIntoLog()}static getLevel(){return y.getLogger().level}static setLevel(t){y.getLogger().level=t}static getOptions(){return y.getLogger().options}static getMessages(t=null,e=!1,r=!1){const n=y.getLogger().ringBuffer;return n?n.getMessages(t,e,r):null}static consoleLogPassThru(t,...e){return y.getLogger().consoleLogPassThru(t,...e)}static error(t,...e){return y.getLogger().error(t,...e)}static errorP(...t){return y.getLogger().errorP(...t)}static warn(t,...e){return y.getLogger().warn(t,...e)}static warnP(...t){return y.getLogger().warnP(...t)}static info(t,...e){return y.getLogger().info(t,...e)}static infoP(...t){return y.getLogger().infoP(...t)}static verbose(t,...e){return y.getLogger().verbose(t,...e)}static verboseP(...t){return y.getLogger().verboseP(...t)}static debug(t,...e){return y.getLogger().debug(t,...e)}static debugP(...t){return y.getLogger().debugP(...t)}static silly(t,...e){return y.getLogger().silly(t,...e)}static sillyP(...t){return y.getLogger().sillyP(...t)}static takeSnapshot(){const t=y.getLogger().ringBuffer;return t?t.takeSnapshot():null}static logByLevel(t,e,...r){return y.getLogger().logByLevel(t,e,...r)}static importMessages(t,e="",r=!0){return y.getLogger().importMessages(t,e,r)}static getLastLogMessage(){const t=y.getLogger().ringBuffer;return t?t.getLastLogMessage():null}}class b{static MAX_LEADING_ZEROS_FORMAT_LENGTH=1e3;static DEFAULT_SAFE_NUMBER_OPTIONS={ifNotNumber:null,returnValueForNull:null,returnValueForUndefined:null,preParseCharacterMapping:{",":""}};static toFixedDecimalNumber(t,e){const r=b.safeNumber(t);return null==r?r:b.safeNumber(r.toFixed(e))}static leadingZeros(t,e){const r=String(t);if(r.length<e){let t="0000";if(e>b.MAX_LEADING_ZEROS_FORMAT_LENGTH)throw"Cannot format number that large (max length is "+b.MAX_LEADING_ZEROS_FORMAT_LENGTH+")";for(;t.length<e;)t+=t;return(t+r).slice(-1*e)}return r}static between(t,e,r){const n=b.safeNumber(t),s=b.safeNumber(e),i=b.safeNumber(r);return n>=s&&n<=i||n>=i&&n<=s}static safeNumber(t,e=null,r){const n={ifNotNumber:e,returnValueForNull:r?e:null,returnValueForUndefined:r?e:void 0};return void 0===r&&(n.returnValueForUndefined=null),b.safeNumberOpt(t,n)}static safeNumberOpt(t,e){let r;const n=Object.assign({},b.DEFAULT_SAFE_NUMBER_OPTIONS,e||{});if(null===t)r=n.returnValueForNull;else if(void 0===t)r=n.returnValueForUndefined;else{const e=typeof t;if("number"==e)r=t;else if("string"==e){let e=t.trim();if(0===e.length)r=n.ifNotNumber;else{if(n.preParseCharacterMapping&&Object.keys(n.preParseCharacterMapping).length>0){let t="";for(let r=0;r<e.length;r++){const s=e.charAt(r);t+=void 0===n.preParseCharacterMapping[s]?s:n.preParseCharacterMapping[s]}e=t}r=Number.parseFloat(e)}}else y.warn("Value is of type %s, returning default",e),r=n.ifNotNumber;isNaN(r)&&(y.debug("Parsed string to NaN - using NaN value from param"),r=n.ifNotNumber)}return r}static numberCSVToList(t){let e=null;return t&&(e=t.split(",").map((t=>b.safeNumber(t.trim()))),e=e.filter((t=>"number"==typeof t&&!isNaN(t)))),e}static fitToWindow(t,e,r){let n=t;if(null===t||null===e||null===r||e<0||r<0||t<0)throw new Error("All values must be non-null and larger than 0");const s=Math.min(e,r),i=Math.max(e,r),o=i-s;if(i===s)n=i;else{for(;n<s;)n+=o;for(;n>i;)n-=o}return n}static groupNumbersIntoContiguousRanges(t,e=3){f.notNullOrUndefined(t);const r=Object.assign([],t);r.sort(((t,e)=>t-e));const n=[],s=[];let i=0;for(let t=1;t<r.length;t++)if(r[t]===r[t-1]+1);else{if(i===t-1)n.push(r[t-1]);else{if(t-i<e)for(let e=i;e<t;e++)n.push(r[e]);else s.push({min:r[i],max:r[t-1]})}i=t}return{singles:n,ranges:s}}static distributeItemsEvenly(t,e){f.notNullOrUndefined(t,"items"),f.notNullOrUndefined(e,"buckets"),f.true(t>0&&t===Math.floor(t),"Items integer larger than 0"),f.true(e>0&&e===Math.floor(e),"Buckets integer larger than 0");const r=e/t,n=[];for(let t=0;t<e;t++)n.push(0);let s=0,i=t;for(;i>0;)n[Math.floor(s)%e]++,i--,s+=r;return n}static createRange(t,e,r=1){const n=[];let s=t;for(;s<e;)n.push(s),s+=r;return n}}class E{static allTrue(t,e=!1){let r=null;return r=!!t&&(t.length>0?t.reduce(((t,e)=>t&&e),!0):e),r}static anyTrue(t,e=!1){let r=null;return r=!!t&&(t.length>0?t.reduce(((t,e)=>t||e),!1):e),r}static parseBool(t){return!0===t||null!=t&&"string"==typeof t&&"true"===t.toLowerCase()}static intToBool(t){return null!=t&&0!==b.safeNumber(t)}static boolToInt(t){return E.parseBool(t)?1:0}}class S{constructor(){}static translateToOriginVector(t){let e=null;return S.validPoints(t)&&(e={x:null,y:null},t.forEach((t=>{e.x=null===e.x||t.x<e.x?t.x:e.x,e.y=null===e.y||t.y<e.y?t.y:e.y})),e.x*=-1,e.y*=-1),e}static minimalContainingPlane(t){let e=null;return S.validPoints(t)&&(e={width:0,height:0},t.forEach((t=>{e.width=Math.max(e.width,t.x+1),e.height=Math.max(e.height,t.y+1)}))),e}static scaleVector(t,e){let r=null;return S.validPlane(t)&&S.validPlane(e)&&(r={x:e.width/t.width,y:e.height/t.height}),r}static samePoint(t,e){return!!t&&!!e&&t.x===e.x&&t.y===e.y}static atLeastOneDimensionShared(t,e){return!(!t||!e||t.x!==e.x&&t.y!==e.y)}static validPlane(t){return!!t&&!!t.height&&!!t.width}static validLine(t){return!!t&&S.validPoint(t.p1)&&S.validPoint(t.p2)&&!S.samePoint(t.p1,t.p2)}static validLines(t){return!!t&&E.allTrue(t.map((t=>S.validLine(t))))}static validPolyLine(t){return!!t&&t.pts?.length>1&&E.allTrue(t.pts.map((t=>S.validPoint(t))))}static polyLineToLines(t){let e=null;if(S.validPolyLine(t)){e=[];for(let r=1;r<t.pts.length;r++)e.push({p1:t.pts[r-1],p2:t.pts[r]})}return e}static lastPointOnPolyLine(t){return S.validPolyLine(t)?t.pts[t.pts.length-1]:null}static lineToPolyLine(t){return S.validLine(t)?{pts:[t.p1,t.p2]}:null}static linesToPolyLines(t){let e=null;if(S.validLines(t)){e=[];let r=S.lineToPolyLine(t[0]);for(let n=1;n<t.length;n++)S.samePoint(S.lastPointOnPolyLine(r),t[n].p1)?r.pts.push(t[n].p2):(e.push(r),r=S.lineToPolyLine(t[n]));e.push(r)}return e}static validPoint(t){return!!t&&null!=t.x&&null!=t.x&&null!==t.y&&void 0!==t.y}static validPoints(t){return!!t&&E.allTrue(t.map((t=>S.validPoint(t))),!1)}static planeContainsPoint(t,e){return S.validPlane(e)&&S.validPoint(t)&&t.x>=0&&t.x<e.width&&t.y>=0&&t.y<e.height}static planeContainsPoints(t,e){return t&&t.map((t=>S.planeContainsPoint(t,e))).reduce(((t,e)=>t&&e),!0)}static linesToPoints(t){let e=null;return S.validLines(t)&&(e=t.map((t=>[t.p1,t.p2])).flat()),e}static pointsToLines(t){let e=null;if(S.validPoints(t)){if(t.length%2!=0)throw new Error("Cannot convert non-even array of points into lines");e=[];for(let r=0;r<t.length;r+=2)e.push({p1:t[r],p2:t[r+1]})}return e}static rotateRightAboutOrigin90Degrees(t,e=1){let r=null,n={x:0,y:0};if(S.validPoints(t)){r=Object.assign([],t),n=S.translateToOriginVector(r),r=S.translate(r,n);let e=S.minimalContainingPlane(r);r=S.xToY(r),e={width:e.height,height:e.width},n={x:-1*n.y,y:-1*n.x},r=S.mirrorPointsOnPlane(r,e,!0,!1),r=S.translate(r,n)}const s=e>4?e%4:e;return s>1&&(r=S.rotateRightAboutOrigin90Degrees(r,s-1)),r}static planeContainsLines(t,e){return t&&S.planeContainsPoints(t.map((t=>[t.p1,t.p2])).flat(),e)}static planeContainsPolyLine(t,e){return S.planeContainsLines(S.polyLineToLines(t),e)}static planeContainsLine(t,e){return S.validPlane(e)&&S.validLine(t)&&S.planeContainsPoint(t.p1,e)&&S.planeContainsPoint(t.p2,e)}static xToY(t){let e=null;return S.validPoints(t)&&(e=t.map((t=>({x:t.y,y:t.x})))),e}static translate(t,e){let r=null;return S.validPoints(t)&&S.validPoint(e)&&(r=t.map((t=>({x:t.x+e.x,y:t.y+e.y})))),r}static mirrorPointsOnPlane(t,e,r,n){let s=null;return S.validPoints(t)&&S.validPlane(e)&&(s=r||n?t.map((t=>({x:r?e.width-1-t.x:t.x,y:n?e.height-1-t.y:t.y}))):Object.assign([],t)),s}static transformPointsToNewPlane(t,e,r){let n=null;if(S.validPoints(t)&&S.validPlane(e)&&S.validPlane(r)){const s=S.scaleVector(e,r);n=t.map((t=>({x:t.x*s.x,y:t.y*s.y}))),n=S.mirrorPointsOnPlane(n,r,r.rightToLeft!==e.rightToLeft,r.topToBottom!==e.topToBottom)}return n}static transformPointToNewPlane(t,e,r){const n=S.transformPointsToNewPlane([t],e,r);return 1===n.length?n[0]:null}static transformLines(t,e,r){return null}static fitCurve(t,e){if(t.sort(((t,e)=>t.x-e.x)),e<=t[0].x)return t[0].y;if(e>=t[t.length-1].x)return t[t.length-1].y;{let r=0;for(;t[r+1].x<e;)r++;const n=t[r+1].x-t[r].x,s=t[r+1].y-t[r].y,i=(e-t[r].x)/n*s;return t[r].y+i}}}class w{constructor(){}static buildInformation(){return{version:"321",hash:"214a479d3e7c0e0cddc64148b40dd97c696bf138",branch:"alpha-2024-03-13-6",tag:"alpha-2024-03-13-6",timeBuiltISO:"2024-03-13T01:39:22-0700",notes:"No notes"}}}class T{entries=[];update(t,e=1){if(t){const r=this.entries.find((e=>e.item===t));r?r.count+=e:this.entries.push({item:t,count:e})}}sort(){this.entries.sort(((t,e)=>{let r=e.count-t.count;return 0===r&&(r=String(e.item).localeCompare(String(t.item))),r}))}sortKeys(){this.entries.sort(((t,e)=>String(e.item).localeCompare(String(t.item))))}reverse(){this.entries.reverse()}getEntries(){return this.entries}getTotalCount(){let t=0;return this.entries.forEach((e=>t+=e.count)),t}countForValue(t){const e=this.entries.find((e=>e.item===t));return e?e.count:0}percentForValue(t){const e=this.getTotalCount();return 0===e?0:this.countForValue(t)/e}}var O;!function(t){t[t.RETURN_NULL=0]="RETURN_NULL",t[t.THROW_EXCEPTION=1]="THROW_EXCEPTION",t[t.ADD_FLAG=2]="ADD_FLAG"}(O||(O={}));class _{static formatMsDuration(t,e=!1){const r=Math.floor(t%1e3),n=Math.floor(t/1e3)%60,s=Math.floor(t/6e4)%60,i=Math.floor(t/36e5)%24,o=Math.floor(t/864e5),a=b.leadingZeros;let l=a(i,2)+"h"+a(s,2)+"m";return l+=e?a(n,2)+"."+a(r,3)+"s":a(n,2)+"s",o>0&&(l=o+"d"+l),l}static colonFormatMsDuration(t,e=!1){const r=t%1e3,n=Math.floor(t/1e3)%60,s=Math.floor(t/6e4)%60,i=Math.floor(t/36e5),o=b.leadingZeros;let a=o(i,2)+":"+o(s,2)+":";return a+=e?o(n,2)+"."+o(r,3):o(n,2),a}static daysBetween(t,e){return r.fromJSDate(t).diff(r.fromJSDate(e)).days}static createSteps(t,e,n,s,i){let o=r.fromMillis(t).setZone(n);const a=r.fromMillis(e),l=[];for(;o<a;)l.push(o.toFormat(s)),o=o.plus(i);return l}}class L{_encryptionKeyPromise;_decryptKeysPromise;_jtiGenerator;_decryptOnlyKeyUseLogLevel;_parseFailureLogLevel;static EXPIRED_FLAG_NAME="__jwtServiceExpiredFlag";constructor(t,e,r=p.createType4Guid,n=o.info,s=o.debug){this._encryptionKeyPromise=t,this._decryptKeysPromise=e,this._jtiGenerator=r,this._decryptOnlyKeyUseLogLevel=n,this._parseFailureLogLevel=s,f.notNullOrUndefined(t,"encryptionKeyPromise")}get encryptionKeyPromise(){return this._encryptionKeyPromise}get decryptKeysPromise(){return this._decryptKeysPromise}get jtiGenerator(){return this._jtiGenerator}get decryptOnlyKeyUseLogLevel(){return this._decryptOnlyKeyUseLogLevel}get parseFailureLogLevel(){return this._parseFailureLogLevel}static hasExpiredFlag(t){return t&&!0===t[L.EXPIRED_FLAG_NAME]}static async invalidSafeDecode(t,r,n=o.silly){let s=null;try{s=e.verify(t,r,{ignoreExpiration:!0})}catch(t){y.logByLevel(n,"Caught %s - ignoring",t)}return s}static async secondsRemainingUntilExpiration(t){let e=null;if(p.trimToNull(t)){const r=await L.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 L.secondsRemainingUntilExpiration(t);let r=null;return null!=e&&(r=1e3*e),r}async decodeToken(t,e=0){const r=await this.encryptionKeyArray();let n=Object.assign([],r);this.decryptKeysPromise&&(n=n.concat(await this.decryptKeysPromise));const s=[];let i=null;for(let e=0;e<n.length&&!i;e++){s.push(p.obscure(n[e],1,1));const a=e===n.length-1&&this.parseFailureLogLevel?this.parseFailureLogLevel:o.silly;i=await L.invalidSafeDecode(t,n[e],a),i&&e>=r.length&&y.logByLevel(this.decryptOnlyKeyUseLogLevel,"Used old key to decode token : %s",p.obscure(n[e],2))}if(i){const t=Math.floor(Date.now()/1e3),r=i?.exp&&i.exp>100*t?Math.floor(i.exp/1e3):i?.exp,n=i?.nbf&&i.nbf>100*t?Math.floor(i.nbf/1e3):i?.nbf;if(r&&t>=r||n&&t<=n){const n=t-r;switch(y.debug("JWT token expired or before NBF : on %d, %s ago",i.exp,_.formatMsDuration(1e3*n)),e){case 1:throw new Error("JWT Token was expired");case 2:i[L.EXPIRED_FLAG_NAME]=!0;break;default:i=null}}}else y.warn("Unable to parse a payload (Tried %j) from : %s",s,t);return i}async encryptionKeyArray(){const t=await this.encryptionKeyPromise,e=Array.isArray(t)?t:[t];if(e.length<1)throw new Error("Cannot create JwtRatchet with empty encryption key set");return e}async selectRandomEncryptionKey(){const t=await this.encryptionKeyArray();return t[Math.floor(Math.random()*t.length)]}async createTokenString(t,r,n){const s=p.trimToNull(n)?p.trimToNull(n):await this.selectRandomEncryptionKey();if(f.notNullOrUndefined(t,"payload"),t.jti=this.jtiGenerator?this.jtiGenerator():null,r){const e=Math.floor(Date.now()/1e3)+r;y.debug("Forcing expiration to %d",e),t.exp=e}return e.sign(t,s)}async refreshJWTString(t,e,r){const n=e?2:1,s=await this.decodeToken(t,n),i=s.exp&&s.iat?s.exp-s.iat:null,o=r||i;L.removeJwtFields(s),L.removeExpiredFlag(s);return await this.createTokenString(s,o)}static decodeTokenNoVerify(t){return e.decode(t)}static removeJwtFields(t){t&&["iss","sub","aud","exp","nbf","iat","jti"].forEach((e=>{delete t[e]}))}static removeExpiredFlag(t){t&&delete t[L.EXPIRED_FLAG_NAME]}}class M{static safeStringifyErr(t,e=!0){let r="ERR WAS NULL";if(t)if(t.message)r=t.message;else try{r=JSON.stringify(t)}catch(e){y.error("Failed to json stringify"),r=String(t)}return e&&y.error("%s",r,t),r}static asErr(t){let e=null;return t&&(e=t instanceof Error?t:new Error("Force-Cast to error : "+String(t))),e}static fErr(e,...r){const n=t.format(e,...r);return new Error(n)}static throwFormattedErr(t,...e){throw M.fErr(t,...e)}}class A{static expandNestedKeysToObjects(t,e="."){if(!e||1!==e.length)throw new Error("Invalid separator (must be single character)");const r={};return Object.keys(t).forEach((n=>{const s=n.split(e);let i=r;for(;s.length>1;)i[s[0]]=i[s[0]]||{},i=i[s[0]],s.splice(0,1);i[s[0]]=t[n]})),r}static mapByUniqueProperty(t,e){if(!t||!e)throw new Error("Neither input nor propName can be null");const r=new Map;return t.forEach((t=>{const n=t?t[e]:null;if(null==n)throw new Error("No value for "+e+" found in "+JSON.stringify(t));if(r.has(n))throw new Error("Multiple values found for "+n);r.set(n,t)})),r}static groupByProperty(t,e){if(!t||!e)throw new Error("Neither input nor propName can be null");const r=new Map;return t.forEach((t=>{const n=t?t[e]:null;if(null==n)throw M.fErr("No value for %s found in %j",e,t);r.has(n)||r.set(n,[]),r.get(n).push(t)})),r}static findValue(t,e){return e&&0!=e.length?t?A.findValue(t[e[0]],e.slice(1)):null:t}static findValueDotPath(t,e){return e&&0!=e.length?t?A.findValue(t,e.split(".")):null:t}static simpleDeepCompare(t,e){return null==t&&null==e||null!=t&&null!=e&&JSON.stringify(t)==JSON.stringify(e)}static toKeyValueList(t){const e=[];for(const r of Object.keys(t))e.push({key:r,value:t[r]});return e}static fromKeyValueList(t){const e={};return t.forEach((t=>e[t.key]=t.value)),e}static cleanup(t,e=!1,r=!0,n=!0,s=!0){if(null==t||"object"!=typeof t)return t;const i=JSON.parse(JSON.stringify(t));return Object.keys(i).forEach((t=>{if(i[t]&&"object"==typeof i[t])if(Array.isArray(i[t]))for(let e=0;e<i[t].length;e++)i[t][e]=A.cleanup(i[t][e]);else i[t]=A.cleanup(i[t]);else void 0===i[t]&&n||null===i[t]&&r||""===i[t]&&s||0===i[t]&&e?delete i[t]:i[t]=i[t]})),i}static extractValueFromMapIgnoreCase(t,e){let r=null;if(t&&e){const n=e.toLowerCase();Object.keys(t).forEach((s=>{if(s.toLowerCase()===n){const n=t[s];r&&y.warn("Multiple entries found for %s (replacing %s with %s",e,r,n),r=n}}))}return r}static safeCallFunction(t,e){let r=!1;if(t&&t[e]&&"function"==typeof t[e])try{t[e](),r=!0}catch(r){y.warn("Error calling %s on %s : %s",e,t,r,r)}return r}static caseInsensitiveAccess(t,e){let r=null;if(t&&e&&(r=t[e],!r)){const n=Object.keys(t).find((t=>t.toLowerCase()===e.toLowerCase()));n&&(r=t[n])}return r}}class N{static wrapElementsInArray(t){return t.map((t=>[t]))}static compareTwoArrays(t,e,r){t.sort(r),e.sort(r);let n=0,s=0;const i={matching:[],setOneOnly:[],setTwoOnly:[]};for(;n<t.length&&s<e.length;){const o=t[n],a=e[s],l=r(o,a);0===l?(i.matching.push(o),n++,s++):l<0?(i.setOneOnly.push(o),n++):(i.setTwoOnly.push(a),s++)}return n<t.length-1&&(i.setOneOnly=i.setOneOnly.concat(t.slice(n))),s<e.length-1&&(i.setTwoOnly=i.setTwoOnly.concat(e.slice(s))),i}static extractSubarrayFromSortedByNumberField(t,e,r,n){if(!t||0===t.length)return t;let s=null===r?0:N.findSplit(t,e,r)||0;const i=null===n?t.length:N.findSplit(t,e,n),o=A.findValueDotPath(t[s],e);return s===t.length-1&&o<r?[]:(s<t.length&&s<i&&o<r&&s++,t.slice(s,i+1))}static findSplit(t,e,r){if(f.notNullOrUndefined(t),f.notNullOrUndefined(e),f.notNullOrUndefined(r),0===t.length||A.findValueDotPath(t[0],e)>r)return null;let n=0,s=t.length,i=null;for(;null===i;){const o=Math.floor((n+s)/2),a=A.findValueDotPath(t[o],e);n===s||n===s-1?i=n:a<=r?n=o:s=o}return i}}class x{static safeObjectToBase64JSON(t){return t?x.generateBase64VersionOfString(JSON.stringify(t)):null}static safeBase64JSONParse(t){let e={};try{t&&(e=JSON.parse(x.base64StringToString(t,"utf-8")))}catch(r){y.warn("Error parsing b64/json : %s as json, got %s",t,r,r),e={}}return e}static generateBase64VersionOfBlob(t){return new Promise((function(e,r){if(t&&0!=t.size){const r=new FileReader;r.onloadend=function(){e(r.result.toString())},r.readAsDataURL(t)}else r("Wont convert null or non-blob or empty blob")}))}static generateBase64VersionOfString(t){return x.generateBase64VersionOfUint8Array(p.stringToUint8Array(t))}static generateBase64VersionOfUint8Array(t){return x.uint8ArrayToBase64String(t)}static base64StringToUint8Array(t){try{return x.base64StringToBytes(t)}catch(e){throw y.error("Failed to decode base64: %s",t),e}}static base64StringToString(t,e="utf8"){return new TextDecoder(e).decode(x.base64StringToUint8Array(t))}static BASE64_ABC=["A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z","0","1","2","3","4","5","6","7","8","9","+","/"];static BASE64_CODES=[255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,62,255,255,255,63,52,53,54,55,56,57,58,59,60,61,255,255,255,0,255,255,255,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,255,255,255,255,255,255,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51];static getBase64Code(t){if(t>=x.BASE64_CODES.length)throw new Error("Unable to parse base64 string.");const e=x.BASE64_CODES[t];if(255===e)throw new Error("Unable to parse base64 string.");return e}static uint8ArrayToBase64UrlString(t){let e=x.uint8ArrayToBase64String(t);return e=e.split("+").join("-").split("/").join("_").split("=").join(""),e}static uint8ArrayToBase64String(t){let e,r="";const n=t.length;for(e=2;e<n;e+=3)r+=x.BASE64_ABC[t[e-2]>>2],r+=x.BASE64_ABC[(3&t[e-2])<<4|t[e-1]>>4],r+=x.BASE64_ABC[(15&t[e-1])<<2|t[e]>>6],r+=x.BASE64_ABC[63&t[e]];return e===n+1&&(r+=x.BASE64_ABC[t[e-2]>>2],r+=x.BASE64_ABC[(3&t[e-2])<<4],r+="=="),e===n&&(r+=x.BASE64_ABC[t[e-2]>>2],r+=x.BASE64_ABC[(3&t[e-2])<<4|t[e-1]>>4],r+=x.BASE64_ABC[(15&t[e-1])<<2],r+="="),r}static base64StringToBytes(t){if(t.length%4!=0)throw M.fErr("Unable to parse base64 string, length: %s",t.length);const e=t.indexOf("=");if(-1!==e&&e<t.length-2)throw M.fErr("Unable to parse base64 string, index %s",e);const r=t.endsWith("==")?2:t.endsWith("=")?1:0,n=t.length,s=new Uint8Array(n/4*3);let i;for(let e=0,r=0;e<n;e+=4,r+=3)i=x.getBase64Code(t.charCodeAt(e))<<18|x.getBase64Code(t.charCodeAt(e+1))<<12|x.getBase64Code(t.charCodeAt(e+2))<<6|x.getBase64Code(t.charCodeAt(e+3)),s[r]=i>>16,s[r+1]=i>>8&255,s[r+2]=255&i;return s.subarray(0,s.length-r)}static base64UrlStringToBytes(t){let e=t.split("-").join("+").split("_").join("/");for(;e.length%4!=0;)e+="=";return y.info("pre: %s post %s",t,e),x.base64StringToBytes(e)}static encodeStringToBase64String(t,e=new TextEncoder){return x.uint8ArrayToBase64String(e.encode(t))}static encodeStringToBase64UrlString(t,e=new TextEncoder){return x.uint8ArrayToBase64UrlString(e.encode(t))}static decodeBase64StringToString(t,e=new TextDecoder){return e.decode(x.base64StringToBytes(t))}static decodeBase64UrlStringToString(t,e=new TextDecoder){return e.decode(x.base64UrlStringToBytes(t))}}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 v{static COMMON_US_DATE_FORMAT="MM/dd/yyyy";static DEFAULT_DATE_FORMAT="yyyy-MM-dd";static FULL_DATE_FORMAT="yyyy-MM-dd_HH_mm_ss";static PACIFIC_TIME_ZONE="America/Los_Angeles";static UTC_TIME_ZONE="etc/UTC";static formatFullDate(t){return r.fromJSDate(t).toFormat(v.FULL_DATE_FORMAT)}static formatDefaultDateOnly(t){return r.fromJSDate(t).toFormat(v.DEFAULT_DATE_FORMAT)}static parseDefaultDate(t){return r.fromFormat(t,v.DEFAULT_DATE_FORMAT).toJSDate()}static parseCommonUsDate(t){let e=null;if(t){let n=v.COMMON_US_DATE_FORMAT;2===t.indexOf("-")&&(n=n.split("/").join("-")),e=r.fromFormat(t,n).toJSDate()}return e}}class P{static listEnumKeys(t){return n(t).getValues()}static keyToEnum(t,e,r=!1){const s=n(t);let i=null;if(e&&(i=s.asValueOrDefault(e,null),!i&&!r)){const r=P.listEnumKeys(t).find((t=>t.toUpperCase()===e.toUpperCase()));r&&(i=s.asValueOrDefault(r,null))}return i}static parseCsvToEnumArray(t,e){return p.trimToEmpty(e).split(",").map((t=>t.trim())).map((e=>P.keyToEnum(t,e))).filter((t=>!!t))}}class R{static fetchDirName(t){if(!t)throw new Error("Need to provide root (should be import.meta.url)");return s.fileURLToPath(new URL(".",t))}static fetchFileName(t){if(!t)throw new Error("Need to provide root (should be import.meta.url)");return s.fileURLToPath(t)}}class C{_config;_cacheObject;_lastUpdatedEpochMS;_timeRemainingMS;constructor(t){this._config=Object.assign({},this.defaultConfig(),t||{}),this._config.overrideTimeRemainingMS&&this._config.timeToLiveMS&&M.throwFormattedErr("Cannot define both time to live and overrideTimeRemainingMS"),this._config.overrideTimeRemainingMS||this._config.timeToLiveMS||M.throwFormattedErr("Must define exactly one of timeToLiveMS or overrideTimeRemainingMS"),this._config.initialValue&&this.update(this._config.initialValue),this._timeRemainingMS=this._config.overrideTimeRemainingMS||this.defaultTimeRemainingMS}defaultConfig(){return{generator:null,initialValue:null,logLevel:o.debug,overrideTimeRemainingMS:null,timeToLiveMS:6e4}}async defaultTimeRemainingMS(t){let e=0;if(t){const r=(new Date).getTime()-t;e=Math.max(0,this._config.timeToLiveMS-r)}return e}update(t,e=!1){this._cacheObject=t,e||(this._lastUpdatedEpochMS=(new Date).getTime()),y.logByLevel(this._config.logLevel,"Updated cache value to %j",t)}async fetchCacheObjectTimeRemainingMS(){return this._timeRemainingMS(this._lastUpdatedEpochMS)}async fetch(){if(await this._timeRemainingMS(this._lastUpdatedEpochMS)||(this._cacheObject=null,this._lastUpdatedEpochMS=null),!this._cacheObject&&this._config.generator){const t=await this._config.generator();y.logByLevel(this._config.logLevel,"Auto call to generator returned %j",t),this.update(t)}return this._cacheObject}}class B{timeToLiveMS;generator;initialValue;logLevel;overrideTimeRemainingMS}class U{constructor(){}static distanceBetweenLocations(t,e,r,n,s="M"){const i=s?s.toUpperCase():"";if(-1===["M","K","N","F","E"].indexOf(i))throw new Error("Invalid unit");if(t==r&&e==n)return 0;{const s=Math.PI*t/180,o=Math.PI*r/180,a=e-n,l=Math.PI*a/180;let c=Math.sin(s)*Math.sin(o)+Math.cos(s)*Math.cos(o)*Math.cos(l);return c>1&&(c=1),c=Math.acos(c),c=180*c/Math.PI,c=60*c*1.1515,"F"===i&&(c*=5280),"K"===i&&(c*=1.609344),"E"===i&&(c*=1609.344),"N"===i&&(c*=.8684),c}}static distanceBetweenRatchetGeoLocations(t,e,r="M"){return U.distanceBetweenLocations(t.lat,t.lng,e.lat,e.lng,r)}static degreeOfLatLngInMiles(t=0){const e=t*Math.PI/180,r=Math.cos(e);return b.safeNumber((69.172*r).toFixed(4))}static milesInDegLatLng(t,e=0){f.notNullOrUndefined(t),f.true(t>=0);return t/U.degreeOfLatLngInMiles(e)}static centerOfBounds(t){return f.notNullOrUndefined(t),{lat:(t.extent.lat+t.origin.lat)/2,lng:(t.extent.lng+t.origin.lng)/2}}static calculateSplits(t,e,r){f.notNullOrUndefined(t),f.notNullOrUndefined(e),f.notNullOrUndefined(r),t.sort(((t,e)=>t.origin[r]-e.origin[r]));const n=t.map((t=>U.centerOfBounds(t))).map((t=>t[r])),s=[];for(let t=1;t<n.length;t++){const r=n[t]-n[t-1];s.length<e?(s.push({idx:t,size:r}),s.sort(((t,e)=>t.size-e.size))):r>s[0].size?(s[0]={idx:t,size:r},s.sort(((t,e)=>t.size-e.size))):y.silly("Skipping, size : %d, %j",r,s)}return y.info("Splits at : %j",s),s.sort(((t,e)=>t.idx-e.idx)),s}static clusterGeoBounds(t,e=2,r=5){let n=null;if(e*r<2&&M.throwFormattedErr("Cannot set slices to less than 2 : %d x %d",e,r),t){n=[];const s=Object.assign([],t);s.sort(((t,e)=>t.origin.lng-e.origin.lng));const i=U.calculateSplits(t,r-1,"lng");i.sort(((t,e)=>t.idx-e.idx));for(let t=0;t<=i.length;t++){const r=0===t?0:i[t-1].idx,o=t===i.length?s.length:i[t].idx,a=s.slice(r,o);a.sort(((t,e)=>t.origin.lat-e.origin.lat));const l=U.calculateSplits(a,e-1,"lat");for(let t=0;t<=l.length;t++){const e=0==t?0:l[t-1].idx,r=t===l.length?a.length:l[t].idx,s=a.slice(e,r);n.push(U.combineBounds(s))}}y.info("New bounds : %j",n)}return n}static canonicalizeBounds(t,e=!1){f.notNullOrUndefined(t,"RatchetLocationBounds");const r=Math.min(t.extent.lat,t.origin.lat),n=Math.max(t.extent.lat,t.origin.lat),s=Math.min(t.extent.lng,t.origin.lng),i=Math.max(t.extent.lng,t.origin.lng);if(r<0&&n>0||r>0&&n<0||(r<0&&n>0||r>0&&n<0)){if(e)return t;throw new Error("Cannot canonicalize, bounds crosses over boundary")}return{origin:{lat:r,lng:s},extent:{lat:n,lng:i}}}static combineBounds(t){let e=null;return t&&t.length>0&&(e={origin:{lat:t.map((t=>t.origin.lat)).reduce(((t,e)=>Math.min(t,e))),lng:t.map((t=>t.origin.lng)).reduce(((t,e)=>Math.min(t,e)))},extent:{lat:t.map((t=>t.extent.lat)).reduce(((t,e)=>Math.max(t,e))),lng:t.map((t=>t.extent.lng)).reduce(((t,e)=>Math.max(t,e)))}}),e}static roundLocation(t,e){return{lat:b.safeNumber(t.lat.toFixed(e)),lng:b.safeNumber(t.lng.toFixed(e))}}static locationToBounds(t,e){const r=U.milesInDegLatLng(e,t.lat);return{origin:{lat:t.lat-r,lng:t.lng-r},extent:{lat:t.lat+r,lng:t.lng+r}}}static sameLocation(t,e){return!!t&&!!e&&t.lat===e.lat&&t.lng===e.lng}static pointInBounds(t,e){return!!t&&!!e&&b.between(t.lat,e.origin.lat,e.extent.lat)&&b.between(t.lng,e.origin.lng,e.extent.lng)}static pointInAnyBound(t,e,r=10){let n=!1;if(e.length>r){const r=U.buildRatchetLocationBoundsMap(e);n=U.pointInRatchetLocationBoundsMap(t,r)}else for(let r=0;r<e.length&&!n;r++)n=U.pointInBounds(t,e[r]);return n}static pointInRatchetLocationBoundsMap(t,e){let r=!1;const n=U.findRatchetLocationBoundsMapEntry(t,e);if(n){const e=n.bounds;for(let n=0;n<e.length&&!r;n++)r=U.pointInBounds(t,e[n])}return r}static findRatchetLocationBoundsMapEntry(t,e){let r=null;if(t.lat>=e.latOffset&&t.lat<=e.maxLat&&t.lng>=e.lngOffset&&t.lng<=e.maxLng){const n=Math.trunc(t.lat)-e.latOffset,s=Math.trunc(t.lng)-e.lngOffset;r=e.mapping[n][s]}return r}static buildRatchetLocationBoundsMap(t){const e=t.map((t=>t.origin.lat)).reduce(((t,e)=>Math.min(t,e))),r=t.map((t=>t.origin.lng)).reduce(((t,e)=>Math.min(t,e))),n=t.map((t=>t.extent.lat)).reduce(((t,e)=>Math.max(t,e))),s=t.map((t=>t.extent.lng)).reduce(((t,e)=>Math.max(t,e))),i=Math.trunc(e)-1,o=Math.trunc(r)-1,a=Math.trunc(n)-i+1,l=Math.trunc(s)-o+1,c=[];for(let t=0;t<a;t++){const e=[];for(let r=0;r<l;r++)e.push({lat:i+t,lng:o+r,bounds:[]});c.push(e)}return t.forEach((t=>{for(let e=Math.trunc(t.origin.lat);e<=Math.trunc(t.extent.lat);e++){const r=c[e-i];for(let e=Math.trunc(t.origin.lng);e<=Math.trunc(t.extent.lng);e++){r[e-o].bounds.push(t)}}})),{latOffset:i,lngOffset:o,maxLat:i+a,maxLng:o+l,mapping:c}}}class D{constructor(){}static fetchGlobalRecord(t){let e=null;if(process?.env?(y.silly("Using process.env as global"),e=process.env):global?.process?.env?(y.silly("Using global.process.env as global"),e=global.process.env):global&&(y.silly("Using process.env as global"),e=global),!e){if(!t)throw M.fErr("Could not find process.env OR global in scope");y.silly("Returning null as global"),e=null}return e}static fetchGlobalVar(t){f.notNullOrUndefined(t,"envVar");return D.fetchGlobalRecord()[t]}static setGlobalVar(t,e){f.notNullOrUndefined(t,"envVar"),f.notNullOrUndefined(e,"value");D.fetchGlobalRecord()[t]=e}}class F{key;value}class j{static op(...t){}}class V{title;timeoutMS;__timeoutTokenFlagField=!0;constructor(t,e){this.title=t,this.timeoutMS=e}writeToLog(t=o.warn){y.logByLevel(t,"Timed out after %d ms waiting for results of %s",this.timeoutMS,this.title)}static isTimeoutToken(t){return!!t&&!!t.__timeoutTokenFlagField}}class k{get createTime(){return this._createTime}starts=new Map;ends=new Map;_createTime=Date.now();_label=p.createRandomHexString(4);_labelIncludedInOutput=!1;constructor(){}withLabel(t){return this._label=p.trimToNull(t),this}withLabelIncludedInOutput(t){return this._labelIncludedInOutput=t,this}get label(){return this._label}set label(t){this._label=t}get labelIncludedInOutput(){return this._labelIncludedInOutput}set labelIncludedInOutput(t){this._labelIncludedInOutput=t}start(t){f.notNullUndefinedOrOnlyWhitespaceString(t,"name");const e=Date.now();return this.starts.set(p.trimToNull(t),e),e}stop(t){f.notNullUndefinedOrOnlyWhitespaceString(t,"name");const e=Date.now();return this.ends.set(p.trimToNull(t),e),e}reset(t){f.notNullUndefinedOrOnlyWhitespaceString(t,"name"),this.starts.delete(p.trimToNull(t)),this.ends.delete(p.trimToNull(t))}hasTimer(t){return f.notNullUndefinedOrOnlyWhitespaceString(t,"name"),this.starts.has(t)}log(t,e,r=o.info){y.logByLevel(r,this.dump(t,e))}logExpected(t,e,r,n=o.info){y.logByLevel(n,this.dumpExpected(t,e,r))}timerNames(){return Array.from(this.starts.keys())}dumpAll(t=", ",e){const r=this.timerNames().map((t=>this.dump(t,e)));let n="Overall: "+this.dump(null,e);return r.length>0&&(n+=t,n+=r.join(t)),n}dump(t,e){let r=this._labelIncludedInOutput?this._label+" ":"";const n=p.trimToNull(t);if(n&&!this.hasTimer(n))r+="No such timer : "+n;else{const s=t?this.starts.get(n):this._createTime,i=t?this.ends.get(n):Date.now();r+=(n||"Default")+" ",s&&i?r+="completed in "+_.formatMsDuration(i-s,!e):s&&(r+="running for "+_.formatMsDuration(Date.now()-s,!e))}return r}dumpExpected(t,e,r){let n=this._labelIncludedInOutput?this._label+" ":"";const s=p.trimToNull(e);if(s&&!this.hasTimer(s))n+="No such timer : "+s;else if(!t||t<=0)n+="Cannot generate output for 0 percent complete";else if(t>1)n+="Cannot generate output for percent > 1";else{n+=(s||"Default")+" ";const i=e?this.starts.get(s):this._createTime,o=e?this.ends.get(s):Date.now();if(i&&o)n+="completed in "+_.formatMsDuration(o-i,!r);else if(i){const e=Date.now()-i,s=e/t-e;n+="running for "+_.formatMsDuration(e,!r)+" approx "+_.formatMsDuration(s,!r)+" remaining"}}return n}expectedRemainingMS(t,e){let r=null;if(!t||t<=0);else if(t>1);else{const n=p.trimToNull(e),s=e?this.starts.get(n):this._createTime,i=e?this.ends.get(n):Date.now();if(s&&i)r=i-s;else if(s){const e=Date.now()-s;r=e/t-e}}return r}elapsedMS(t){let e=null;const r=p.trimToNull(t);if(r&&!this.hasTimer(r))e=null;else{const n=t?this.starts.get(r):this._createTime,s=t?this.ends.get(r):Date.now();n&&s?e=s-n:n&&(e=Date.now()-n)}return e}}class G{static resolveOnEvent(t,e,r=[],n=null){return t&&e&&0!==e.length&&t.on||Promise.reject("Cannot continue - missing source object or name, or the object is not an event source"),new Promise(((s,i)=>{e.forEach((e=>{t.on(e,(()=>{s(n)}))})),r&&r.forEach((e=>{t.on(e,(t=>{i(t)}))}))}))}static timeout(t,e,r){return Promise.race([t,G.createTimeoutPromise(e,r)])}static createTimeoutPromise(t,e){return new Promise(((r,n)=>{const s=setTimeout((()=>{clearTimeout(s);const n=new V(t,e);r(n)}),e)}))}static async wait(t){await G.createTimeoutPromise("Wait "+t,t),y.silly("Finished wait of %d ms",t)}static dumpResult(t,e=!1){y.info("Success, result was : \n\n%s\n\n",JSON.stringify(t)),process.exit(0)}static dumpError(t,e=!1){y.warn("Failure, err was : \n\n%s\n\n -- \n\n%s\n\n",JSON.stringify(t),String(t)),console.trace(),process.exit(1)}static logErrorAndReturnNull(t,e=!1){return y.warn("Failure, err was : \n\n%s\n\n -- \n\n%s\n\n",JSON.stringify(t),String(t)),null}static runPromiseAndDump(t){t.then(G.dumpResult).catch(G.dumpError)}static async waitFor(t,e,r,n,s="waitFor",i=0){if(null==e||r<50||n<1||i<0||"function"!=typeof t)return y.warn("%s: Invalid configuration for waitFor - exiting immediately",s),y.warn("ExpectedValue : %s ; interval: %d ; maxCycles: %d ; test : %s",e,r,n,typeof t),!1;let o=null;try{o=t(i)}catch(t){return y.warn("%s: Caught error while waiting, giving up",s),!1}return null===o?(y.debug("%s:CurVal was null - aborting",s),!1):o==e?(y.debug("%s:Found expected value",s),!0):i>n?(y.debug("%s:Exceeded max cycles, giving up",s),!1):(y.debug("%s : value not reached yet, waiting (count = %d of %d)",s,i,n),await G.wait(r),G.waitFor(t,e,r,n,s,i+1))}static async runBoundedParallel(t,e,r,n=1,s=o.debug){const i=new k;let a=[],l=e;y.logByLevel(s,"Processing %d total elements %d at a time",e.length,n);const c=r||this;let u=0;const d=l.length;for(;l.length>0;){const e=l.slice(0,Math.min(l.length,n));l=l.slice(e.length);const r=e.map((e=>t.apply(c,e))),o=await Promise.all(r);u+=r.length,a=a.concat(o);const h=u/d;y.logByLevel(s,"%d elements remain : %s",l.length,i.dumpExpected(h))}return i.log(),a}static async runBoundedParallelSingleParam(t,e,r,n=1,s=o.debug){const i=N.wrapElementsInArray(e);return G.runBoundedParallel(t,i,r,n,s)}static async asyncForEachSerial(t,e){for(let r=0;r<t.length;r++)await e(t[r],r,t)}static async asyncForEachParallel(t,e){const r=[];for(let n=0;n<t.length;n++)r.push(e(t[n],n,t));await Promise.all(r)}constructor(){}}class z{constructor(){}static sortNullToTop(t,e,r){return z.nullSafeSort(t,e,!0,r)}static sortNullToBottom(t,e,r){return z.nullSafeSort(t,e,!1,r)}static nullSafeSort(t,e,r,n){let s;return s=f.isNullOrUndefined(t)&&f.isNullOrUndefined(e)?0:f.isNullOrUndefined(t)?r?-1/0:1/0:f.isNullOrUndefined(e)?r?1/0:-1/0:n(t,e),s}static sortNumericStringsAsNumbers(t,e,r){const n=b.safeNumber(t),s=b.safeNumber(e);return z.nullSafeSort(n,s,r,((t,e)=>t-e))}}class W{timezoneIanaName;static PACIFIC=new W("America/Los_Angeles");constructor(t){if(this.timezoneIanaName=t,!t||0===t.trim().length)throw"Timezone cannot be null or empty"}get ianaName(){return this.timezoneIanaName}currentHour(){return r.local().setZone(this.timezoneIanaName).hour}toEpochSeconds(t){return Math.round(t.toMillis()/1e3)}startOfTodayEpochSeconds(){return this.toEpochSeconds(r.local().setZone(this.timezoneIanaName).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.timezoneIanaName).set({minute:0,second:0,millisecond:0}))}startOfCurrentMinuteEpochSeconds(){return this.toEpochSeconds(r.local().setZone(this.timezoneIanaName).set({second:0,millisecond:0}))}startOfCurrentSecondEpochSeconds(){return this.toEpochSeconds(r.local().setZone(this.timezoneIanaName).set({millisecond:0}))}startOfTodayEpochMS(){return r.local().setZone(this.timezoneIanaName).set({hour:0,minute:0,second:0,millisecond:0}).toMillis()}dailySlotCount(t){return Math.ceil(864e5/t)}currentTimeSlotIdx(t){if(t<1)throw new Error("Cannot process with slot less than one ms wide");const e=this.startOfTodayEpochMS(),r=(new Date).getTime()-e;return Math.floor(r/t)}matchingTimeSlotIdx(t,e){if(e<1)throw new Error("Cannot process with slot less than one ms wide");const r=t-this.startOfMatchingDayEpochMS(t);return Math.floor(r/e)}startOfCurrentSlotEpochMS(t){return this.startOfTodayEpochMS()+this.currentTimeSlotIdx(t)*t}startOfMatchingSlotEpochMS(t,e){return this.startOfMatchingDayEpochMS(t)+this.matchingTimeSlotIdx(t,e)*e}}class K{constructor(){}static mergeArrays(t){let e=null;if(t?.length){let r=0;t.forEach((t=>{r+=t.length})),e=new Uint8Array(r);let n=0;t.forEach((t=>{e.set(t,n),n+=t.length}))}return e}static deepEqual(t,e){let r=!1;if(t&&e&&t.length===e.length){let n=!1;for(let r=0;r<t.length&&!n;r++)n=t[r]!==e[r];r=!n}return r}}class H{constructor(){}static async webReadableStreamToUint8Array(t){const e=[],r=new WritableStream({write:async(t,r)=>("string"==typeof t?e.push(p.stringToUint8Array(t)):e.push(t),null),abort(t){M.throwFormattedErr("StringWebWritableStream failure : %s",t)}},{highWaterMark:3,size:()=>1});return await t.pipeTo(r),K.mergeArrays(e)}static async webReadableStreamToString(t){const e=await H.webReadableStreamToUint8Array(t);return(new TextDecoder).decode(e)}static stringToWebReadableStream(t){return new ReadableStream({start:e=>(t&&e.enqueue(t),e.close(),null)},{highWaterMark:t?t.length:null})}}class J{wrapped;constructor(t,e){if(!t)throw Error("Cannot set level to null/undefined");this.wrapped={lvl:t,timestamp:Date.now(),messageSource:e}}clone(){const t=new J(this.wrapped.lvl,this.wrapped.messageSource);return t.wrapped=Object.assign({},this.wrapped),t}level(t){if(!t)throw Error("Cannot set level to null/undefined");return this.wrapped.lvl=t,this}timestamp(t){if(!t)throw Error("Cannot set timestamp to null/undefined");return this.wrapped.timestamp=t,this}messageSource(t){return this.wrapped.messageSource=t,this}subVars(t){return this.wrapped.subsVars=t||[],this}params(t){return this.wrapped.params=t||{},this}p(t,e){return this.wrapped.params=this.wrapped.params||{},this.wrapped.params[t]=e,this}toMessage(){return Object.assign({},this.wrapped)}}class Z{static EMAIL=new RegExp(".+@.+\\.[a-z]+");constructor(){}static convertResolvedReadyToSendEmailToRaw(t){f.notNullOrUndefined(t,"RTS must be defined"),f.notNullOrUndefined(t.destinationAddresses,"Destination addresses must be defined");const e="To: "+t.destinationAddresses.join(", ")+"\n",r=t.bccAddresses&&t.bccAddresses.length>0?"Bcc: "+t.bccAddresses.join(", ")+"\n":"",n=t.fromAddress,s="NextPart",i="AltPart";let o="From: "+n+"\n";return o+=e,o+=r,o+="Subject: "+t.subject+"\n",o+="MIME-Version: 1.0\n",o+='Content-Type: multipart/mixed; boundary="'+s+'"\n',o+="\n\n--"+s+"\n",o+='Content-Type: multipart/alternative; boundary="'+i+'"\n',p.trimToNull(t.htmlMessage)&&(o+="\n\n--"+i+"\n",o+='Content-Type: text/html; charset="UTF-8"\n\n',o+=t.htmlMessage),p.trimToNull(t.txtMessage)&&(o+="\n\n--"+i+"\n",o+="Content-Type: text/plain\n\n",o+=t.txtMessage),o+="\n\n--"+i+"--\n",t.attachments&&t.attachments.forEach((t=>{o+="\n\n--"+s+"\n",o+="Content-Type: "+t.contentType+'; name="'+t.filename+'"\n',o+="Content-Transfer-Encoding: base64\n",o+="Content-Disposition: attachment\n\n",o+=t.base64Data.replace(/([^\0]{76})/g,"$1\n")+"\n\n"})),o+="\n\n--"+s+"--\n",o}static validEmail(t){return null!==t&&Z.EMAIL.test(t)}}class q{config;constructor(t){this.config=t,f.notNullOrUndefined(t,"config"),f.notNullOrUndefined(t.provider,"config.provider")}async fillEmailBody(t,e,r,n=null,s=null,i=null){return f.notNullOrUndefined(r),this.config.templateRenderer||M.throwFormattedErr("Cannot use fill body if template renderer not set"),t.htmlMessage=await this.config.templateRenderer.renderTemplate(r,e,s,i),t.txtMessage=n?await this.config.templateRenderer.renderTemplate(n,e):null,t}async fillEmailBodyAndSend(t,e,r,n=null,s=null,i=null){const o=await this.fillEmailBody(t,e,r,n,s,i);return await this.sendEmail(o)}filterEmailsToValid(t){return(t||[]).filter((t=>{if(this.config.allowedDestinationEmails&&0!=this.config.allowedDestinationEmails.length){return!!this.config.allowedDestinationEmails.find((e=>e.test(t)))}return!0}))}async archiveEmailIfConfigured(t,e){let r=null;if(t&&this.config.provider.archiveEmail&&!t.doNotArchive){y.debug("Archiving outbound email to : %j",t.destinationAddresses);try{r={raw:await this.config.provider.archiveEmail(t,e),error:null,meta:{}}}catch(e){y.warn("Failed to archive email %j : %s",t,e),r={raw:null,error:M.safeStringifyErr(e),meta:{}}}}return r}applyLimitsToBodySizesIfAnyInPlace(t){if(this.config.maxMessageBodySizeInBytes){const e=p.trimToEmpty(t.txtMessage).length+p.trimToEmpty(t.htmlMessage).length;if(e>this.config.maxMessageBodySizeInBytes){if(y.warn("Max message size is %d but size is %d - converting",this.config.maxMessageBodySizeInBytes,e),t.attachments=t.attachments||[],p.trimToNull(t.txtMessage)){const e={filename:"original-txt-body.txt",contentType:"text/plain",base64Data:x.generateBase64VersionOfString(t.txtMessage)};t.attachments.push(e)}if(p.trimToNull(t.htmlMessage)){const e={filename:"original-html-body.html",contentType:"text/html",base64Data:x.generateBase64VersionOfString(t.htmlMessage)};t.attachments.push(e)}t.htmlMessage=null,t.txtMessage="The message was too large and was converted to attachment(s). Please see attached files for content"}}}applyLimitsToAttachmentSizesIfAnyInPlace(t){if(this.config.maxAttachmentSizeInBase64Bytes){const e=[];t.attachments&&t.attachments.forEach((t=>{t.base64Data&&t.base64Data.length<this.config.maxAttachmentSizeInBase64Bytes?e.push(t):(y.warn("Removing too-large attachment : %s : %s : %d",t.filename,t.contentType,t.base64Data.length),e.push({filename:"attachment-removed-notice-"+p.createRandomHexString(4)+".txt",contentType:"text/plain",base64Data:x.generateBase64VersionOfString("Attachment "+t.filename+" of type "+t.contentType+" was removed since it was "+t.base64Data.length+" bytes but max allowed is "+this.config.maxAttachmentSizeInBase64Bytes)}))})),t.attachments=e}}async sendEmail(t){f.notNullOrUndefined(t,"RTS must be defined"),f.notNullOrUndefined(t.destinationAddresses,"Destination addresses must be defined");let e=null;const r=await this.resolveReadyToSendEmail(t);try{const n=await this.config.provider.sendEmail(r);e={request:t,resolved:r,success:!0,rawResult:n,error:null,meta:{},archiveResults:await this.archiveEmailIfConfigured(r,n)}}catch(n){e={request:t,resolved:r,success:!1,rawResult:null,error:M.safeStringifyErr(n),meta:{},archiveResults:null}}return e}async resolveReadyToSendEmail(t){f.notNullOrUndefined(t,"RTS must be defined"),f.notNullOrUndefined(t.destinationAddresses,"Destination addresses must be defined");let e=this.filterEmailsToValid(t.destinationAddresses);const r=t.doNotAutoBcc?[]:this.config.autoBccAddresses||[],n=(t.bccAddresses||[]).concat(r);0===e.length&&n.length>0&&(y.debug("Destination emails filtered to none but BCC defined, copying BCC"),e=n);const s=Object.assign({},t);return s.srcDestinationAddresses=t.destinationAddresses,s.srcBccAddresses=t.bccAddresses,s.destinationAddresses=e,s.bccAddresses=n,this.applyLimitsToBodySizesIfAnyInPlace(s),this.applyLimitsToAttachmentSizesIfAnyInPlace(s),0===s.destinationAddresses.length&&y.info("After cleaning email lists, no destination addresses left - not sending email"),s.fromAddress=s.fromAddress||this.config.defaultSendingAddress,s}}class Y{failEmails;constructor(t=[]){this.failEmails=t}async sendEmail(t){return y.info("Called send email : %j",t),this.failEmails&&this.failEmails.forEach((e=>{if(t?.destinationAddresses?.includes(e))throw M.fErr("Forced-fail email address: %s",e)})),"OK"}async archiveEmail(t){return y.info("Called archive email : %j",t),this.failEmails&&this.failEmails.forEach((e=>{if(t?.destinationAddresses?.includes(e))throw M.fErr("Forced-fail email address: %s",e)})),"OK"}}class X{static LOCAL_IP=null;static findLocalIp(t=!0){return y.info("Attempting to find local IP (V 2)"),X.LOCAL_IP&&t?Promise.resolve(X.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&&X.grepSDP("a="+e.candidate.candidate,n,t)},r.createOffer((function(e){X.grepSDP(e.sdp,n,t),r.setLocalDescription(e)}),(function(e){y.warn("Offer failed : %s",e),t(X.updateLocalIP("FIND_UNSUPPORTED"))}))}else y.warn("IP Address find not supported on this device"),t(X.updateLocalIP("FIND_UNSUPPORTED"))}catch(e){y.warn("Error finding local ip address : %s",e),t(X.updateLocalIP("ERROR"))}})):(y.warn("Window not found, cannot calculate local ip"),Promise.resolve(X.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 X.LOCAL_IP=t,X.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]&&X.updateAddressList(s,e,r)}else if(~t.indexOf("c=")){const n=t.split(" ")[2];X.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(X.updateLocalIP(n[0]));else{const t=n.sort().join(",");y.warn("Multiple addresses found, returning sorted join : %s",t),r(X.updateLocalIP(t))}}}class ${currentIp="UNSET";constructor(){X.findLocalIp(!1).then((t=>{y.info("Setting local IP to %s",t),this.currentIp=t})).catch((t=>{y.warn("Unable to set current IP - leaving as UNSET : %s",t)}))}ready(){return"UNSET"!==this.currentIp}currentLocalIpAddress(){return this.currentIp}}class Q{fixed;constructor(t){this.fixed=t}currentLocalIpAddress(){return this.fixed}}class tt extends Error{static RATCHET_RESTFUL_API_HTTP_ERROR_FLAG_KEY="__ratchetRestfulApiHttpErrorFlag";_httpStatusCode=500;_errors;_detailErrorCode;_endUserErrors;_details;_requestId;_wrappedError;constructor(...t){super(tt.combineErrorStringsWithDefault(t)),Object.setPrototypeOf(this,tt.prototype),this._errors=t,this[tt.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=tt.objectIsRestfulApiHttpError(t)?t:new tt(t.message).withWrappedError(t).withHttpStatusCode(500),e}static objectIsRestfulApiHttpError(t){return t&&!0===t[tt.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=tt.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&&tt.objectIsRestfulApiHttpError(t)){const n=t,s=b.safeNumber(n.httpStatusCode),i=100*e;r=s>=i&&s<=i+99}return r}static errorIs40x(t){return tt.errorIsX0x(t,4)}static errorIs50x(t){return tt.errorIsX0x(t,5)}}class et{static GOOGLE_VERIFY_URL="https://www.google.com/recaptcha/api/siteverify?secret={{KEY}}&response={{TOKEN}}";static async verifyRecaptchaToken(t,e,r=i){y.debug("Verifying recaptcha token : %s",e);let n=null;if(!p.safeString(e))return y.warn("Recaptcha validation error, no token passed : %s",e),n;y.info("Validating Recaptcha via Google API : %s",e);let s=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){y.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,f.notNullOrUndefined(t,"accountSid"),f.notNullOrUndefined(e,"authToken"),f.notNullOrUndefined(r,"outBoundNumber"),f.true(rt.isValidE164Number(r),"outBoundNumber invalid format")}static async sendMessageDirect(t,e,r,n,s){const i=new rt(t,e,r);return await i.sendMessage(n,s)}static generateTwilioBasicAuth(t,e){return"Basic "+x.generateBase64VersionOfString(t+":"+e)}async sendMessage(t,e){const r=[];if(f.notNullOrUndefined(t,"recipientPhoneNumbers"),f.notNullOrUndefined(p.trimToNull(e),"message"),f.true(t.length>0,"recipientPhoneNumbers non-empty"),t&&t.length>0&&p.trimToNull(e)){y.info("Sending %s to %j",e,t);for(let n=0;n<t.length;n++){const s=t[n];if(y.info("To: %s",s),!rt.isValidE164Number(s))throw new Error("number must be E164 format!");const o="Body="+encodeURIComponent(e)+"&From="+encodeURIComponent(this.outBoundNumber)+"&To="+encodeURIComponent(s),a={method:"post",headers:{authorization:rt.generateTwilioBasicAuth(this.accountSid,this.authToken),"Content-Type":"application/x-www-form-urlencoded"},body:o},l=await i(rt.TWILLIO_BASE_API_URL+"/Accounts/"+this.accountSid+"/Messages.json",a),c=await l.json();y.debug("TwilioRatchet: For %s got %j",s,c),r.push(c)}}else y.warn("Not sending empty message / empty recipients");return r}static isValidE164Number(t){return/^\+?[1-9]\d{1,14}$/.test(t)}}class nt{accountSid;authToken;serviceSid;static TWILLIO_BASE_VERIFY_URL="https://verify.twilio.com/v2/Services/";constructor(t,e,r){this.accountSid=t,this.authToken=e,this.serviceSid=r,f.notNullUndefinedOrOnlyWhitespaceString(t,"accountSid"),f.notNullUndefinedOrOnlyWhitespaceString(e,"authToken"),f.notNullUndefinedOrOnlyWhitespaceString(r,"serviceSid")}async sendVerificationTokenUsingTwilioVerify(t){f.notNullUndefinedOrOnlyWhitespaceString(t,"recipientPhoneNumber"),f.true(rt.isValidE164Number(t),"recipientPhoneNumber must be E164");const e=t.startsWith("+1")?t:"+1"+t,r="Channel=sms&To="+encodeURIComponent(e),n={method:"post",headers:{authorization:rt.generateTwilioBasicAuth(this.accountSid,this.authToken),"Content-Type":"application/x-www-form-urlencoded"},body:r},s=nt.TWILLIO_BASE_VERIFY_URL+this.serviceSid+"/Verifications",o=await i(s,n);return await o.text()}async simpleCheckVerificationTokenUsingTwilioVerify(t,e){const r=await this.checkVerificationTokenUsingTwilioVerify(t,e);return r&&"approved"===r.status}async checkVerificationTokenUsingTwilioVerify(t,e){f.notNullUndefinedOrOnlyWhitespaceString(t,"recipientPhoneNumber"),f.true(rt.isValidE164Number(t),"recipientPhoneNumber must be E164");const r=t.startsWith("+1")?t:"+1"+t,n="To="+encodeURIComponent(r)+"&Code="+encodeURIComponent(e),s={method:"post",headers:{authorization:rt.generateTwilioBasicAuth(this.accountSid,this.authToken),"Content-Type":"application/x-www-form-urlencoded"},body:n},o=nt.TWILLIO_BASE_VERIFY_URL+this.serviceSid+"/VerificationCheck";y.info("Using %s / %j",o,s);const a=await i(o,s);return await a.json()}}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=b.safeNumber(t);null!==e&&(n=e)}return n}}}static camelToSnakeCase(){return{transform(t,e,r){let n=t;return"string"==typeof t&&(n=t.replace(/\.?([A-Z]+)/g,(function(t,e){return"_"+e.toLowerCase()})).replace(/^_/,"")),n}}}static concatenateToNewField(t,e,r=!0){return{transform(n,s,i){if("object"==typeof n){let s="";e.forEach((t=>{if(null!=s){const e=n[t];s=null==e&&r?null:null==e?s:s+String(e)}})),null!=s&&(n[t]=s,e.forEach((t=>delete n[t])))}return n}}}static numberToBool(t){return{transform:(e,r,n)=>("object"==typeof e&&t.forEach((t=>{const r=e[t];if("number"==typeof r){const n=0!=r;e[t]=n}})),e)}}static boolToNumber(t){return{transform:(e,r,n)=>("object"==typeof e&&t.forEach((t=>{const r=e[t];if("boolean"==typeof r){const n=r?1:0;e[t]=n}})),e)}}static makeDuplicateField(t,e){return{transform(r,n,s){if("object"==typeof r){const n=r[t];null!=n&&(r[e]=n)}return r}}}static addField(t,e){return{transform:(r,n,s)=>("object"==typeof r&&(r[t]=e),r)}}static reformatDateFields(t,e,n){return{transform:(s,i,o)=>("object"==typeof s&&t.forEach((t=>{const i=s[t];if(null!=i)try{const o=r.fromFormat(i,e).toFormat(n);s[t]=o}catch(t){y.warn("Failed to reparse date %s in format %s : %s",i,e,t)}})),s)}}}class it{static transform(t,e=[]){return it.transformGeneric(t,e,!1,null)}static transformGeneric(t,e=[],r,n){let s=null;const i=typeof t;switch(i){case"undefined":case"symbol":case"function":s=t;break;case"number":case"string":case"boolean":s=it.applyTransformToPrimitive(t,e,r,n);break;case"object":s=it.applyTransformToObject(t,e,r,n);break;default:throw new Error("Unrecognized type "+i)}return s}static applyTransformToObject(t,e=[],r,n=null){y.silly("Tranform: %j, %s, %j",t,r,n);let s=null;return null!=t&&(Array.isArray(t)?(s=[],t.forEach((n=>{const i=it.transformGeneric(n,e,r,t);null!=i&&s.push(i)}))):(s={},Object.keys(t).forEach((r=>{const n=t[r],i=it.applyTransformToPrimitive(r,e,!0,t);if(null!=i){let r=it.transformGeneric(n,e,!1,t);r=it.applyTransformToPrimitive(r,e,!1,t),null!=r&&(s[i]=r)}})),s=it.applyTransformToPrimitive(s,e,!1,t))),s}static applyTransformToPrimitive(t,e=[],r,n){let s=t;return e.forEach((t=>{s=null==s?null:t.transform(s,r,n)})),s}}const ot={Success:"Success",RolledBack:"RolledBack",RollbackFailed:"RollbackFailed"};class at{static async execute(t,e,r){f.notNullOrUndefined(t,"steps"),f.notNullOrUndefined(e,"initialContext"),f.true(t.length>0,"steps may not be empty");const n=Object.assign({},r||{});n.stepLogLevel=n.stepLogLevel||o.info;const s={finalContext:e,finalState:null},i=t.map(((t,e)=>t.name||"Step "+e));y.info("Beginning transaction of %d steps",t.length);let a=0;do{y.logByLevel(n.stepLogLevel,"Processing step %d of %d (%s)",a+1,t.length,i[a]);try{await t[a].execute(s.finalContext,a),a++}catch(t){y.error("Failure detected on step %d : %s : %s : Rolling back",a,i[a],t,t),s.error=t,s.errorStep=a}}while(!s.error&&a<t.length);if(s.error)do{y.logByLevel(n.stepLogLevel,"Rolling back step %d of %d (%s)",a+1,t.length,i[a]);try{t[a].rollback?await t[a].rollback(s.finalContext,a):y.info("Skipping - no rollback defined")}catch(t){y.error("Very bad - rollback code failed on step %d : %s : Aborting in invalid state: %s",a,i[a],t,t),s.rollbackError=t,s.rollbackErrorStep=a}a--}while(a>=0);if(s.finalState=s.rollbackError?ot.RollbackFailed:s.error?ot.RolledBack:ot.Success,y.info("Transaction completed with status : %s",s.finalState),n?.executeAfterRollback&&s.finalState!==ot.Success)try{y.info("Applying executeAfterRollback"),await n.executeAfterRollback(s)}catch(t){y.error("Very bad - failure in executeAfterRollback : %s",t,t)}if(n?.executeAfterRollbackFailure&&s.finalState!==ot.Success)try{y.info("Applying executeAfterRollbackFailure"),await n.executeAfterRollbackFailure(s)}catch(t){y.error("Very bad - failure in executeAfterRollbackFailure : %s",t,t)}return s}}export{N as ArrayRatchet,x as Base64Ratchet,E as BooleanRatchet,$ as BrowserLocalIpProvider,st as BuiltInTransforms,d as ClassicSingleLineLogMessageFormatter,I as CompositeLastSuccessProvider,v as DateRatchet,_ as DurationRatchet,P as EnumRatchet,M as ErrorRatchet,R as EsmRatchet,O as ExpiredJwtHandling,C as ExpiringObject,B as ExpiringObjectConfig,Q as FixedLocalIpProvider,U as GeolocationRatchet,D as GlobalRatchet,et as GoogleRecaptchaRatchet,T as Histogram,L as JwtRatchet,F as KeyValue,J as LogMessageBuilder,u as LogMessageFormatType,y as Logger,m as LoggerInstance,o as LoggerLevelName,l as LoggerOutputFunction,a as LoggerRingBuffer,c as LoggerUtil,q as Mailer,Z as MailerUtil,A as MapRatchet,X as NetworkRatchet,j as No,h as NoneLogMessageFormatter,b as NumberRatchet,G as PromiseRatchet,S as Ratchet2d,w as RatchetInfo,f as RequireRatchet,tt as RestfulApiHttpError,z as SortRatchet,k as StopWatch,p as StringRatchet,g as StructuredJsonLogMessageFormatter,Y as TestMailSendingProvider,W as TimeZoneRatchet,V as TimeoutToken,ot as TransactionFinalState,at as TransactionRatchet,it as TransformRatchet,rt as TwilioRatchet,nt as TwilioVerifyRatchet,K as Uint8ArrayRatchet,H as WebStreamRatchet};
|
|
1
|
+
import t from"util";import e from"jsonwebtoken";import{DateTime as r}from"luxon";import{$enum as n}from"ts-enum-util";import s from"url";import i from"cross-fetch";const o={error:"error",warn:"warn",info:"info",verbose:"verbose",debug:"debug",silly:"silly"};class a{_lastLogMessage={messageSource:"No message yet",timestamp:(new Date).getTime(),lvl:o.info};_buffer=[];_bufferIdx=0;_lastSnapshotIdx=0;_bufferSize;constructor(t){if(!t)throw new Error("Cannot create ring buffer of size 0");this._bufferSize=t}get currentIndex(){return this._bufferIdx}get lastSnapshotIdx(){return this._lastSnapshotIdx}set bufferSize(t){if(!t)throw new Error("Cannot create ring buffer of size 0");this._bufferSize=t,this.clearRingBuffer()}getMessages(t=null,e=!1,r=!1){let n=null;if(this._bufferIdx<this._bufferSize){const e=null==t?0:t;n=this._buffer.slice(e,this._bufferIdx)}else{n=[];const e=this._bufferIdx-this._bufferSize;for(let r=t?Math.max(t,e):e;r<this._bufferIdx;r++)n.push(this._buffer[r%this._bufferSize])}return e&&this.clearRingBuffer(),r&&(n=n.reverse()),n}takeSnapshot(){const t=Math.max(0,this._bufferIdx-this._bufferSize),e={messages:this.getMessages(this._lastSnapshotIdx),logMessagesTruncated:Math.max(0,t-this._lastSnapshotIdx)};return this._lastSnapshotIdx=this._bufferIdx,e}getLastLogMessage(){return Object.assign({},this._lastLogMessage)}clearRingBuffer(){this._buffer=[],this._bufferIdx=0,this._lastSnapshotIdx=0}addToRingBuffer(t){this._lastLogMessage=t,this._buffer[this._bufferIdx%this._bufferSize]=t,this._bufferIdx++}}const l={Console:"Console",ConsoleNoDebug:"ConsoleNoDebug",StdOut:"StdOut"};class c{static LOG_LEVELS_IN_ORDER=[o.error,o.warn,o.info,o.verbose,o.debug,o.silly];static handlerFunctionMap(t=l.Console){const e=new Map;if(t===l.StdOut){if(!process?.stdout?.write)throw new Error("Cannot use standard out - process.stdout.write not found");const t=(t,e)=>process.stdout.write(t,"utf-8",e);e.set(o.error,t),e.set(o.warn,t),e.set(o.info,t),e.set(o.verbose,t),e.set(o.debug,t),e.set(o.silly,t)}else e.set(o.error,console.error),e.set(o.warn,console.warn),e.set(o.info,console.info),e.set(o.verbose,t===l.ConsoleNoDebug?console.log:console.debug),e.set(o.debug,t===l.ConsoleNoDebug?console.log:console.debug),e.set(o.silly,t===l.ConsoleNoDebug?console.log:console.debug);return e}static defaultHandlerFunction(){return console.info}static levelIsEnabled(t,e){const r=c.LOG_LEVELS_IN_ORDER.indexOf(t),n=c.LOG_LEVELS_IN_ORDER.indexOf(e);return r>-1&&n>-1&&n>=r}}const u={ClassicSingleLine:"ClassicSingleLine",StructuredJson:"StructuredJson",None:"None"};class d{formatMessage(e,r){let n=null;return e&&(n="",n+=r.options.trace?r.options.trace+" ":"",n+="["+e.lvl+"] ",n+=t.format(e.messageSource,...e.subsVars)),n}}class h{formatMessage(t,e){return null}}class g{formatMessage(e,r){let n=null;if(e){const s=Object.assign({},r.options.globalVars||{},e.params||{});s.msg=t.format(e.messageSource,...e.subsVars),s.utcDateTime=new Date(e.timestamp).toISOString(),s.logLevel=e.lvl,r.options.trace&&(s.trace=r.options.trace),s.logName=r.loggerInstanceName,s.logId=r.loggerInstanceId,n=JSON.stringify(s)+"\n"}return n}}class f{static isNullOrUndefined(t){return Object.is(t,null)||Object.is(t,void 0)}static notNullOrUndefined(t,e="object"){if(f.isNullOrUndefined(t))throw new Error(e+" may not be null or undefined")}static notNullUndefinedOrOnlyWhitespaceString(t,e="string"){if(f.isNullOrUndefined(t)||""===t.trim())throw new Error(e+" may not be null or undefined or only whitespace string")}static notNullUndefinedOrEmptyArray(t,e="string"){if(f.isNullOrUndefined(t)||0===t.length)throw new Error(e+" may not be null or undefined or an empty array")}static equal(t,e,r="Values must be equal"){if(t!==e)throw new Error(r)}static true(t,e="Value must be true"){f.equal(t,!0,e)}static noNullOrUndefinedValuesInArray(t,e=null,r=null){if(f.notNullOrUndefined(t,"Source array may not be null"),null!==e&&t.length!==e)throw new Error(`Expected array of length ${e} but was ${t.length} ${r}`);for(let e=0;e<t.length;e++)if(f.isNullOrUndefined(t[e]))throw new Error(`Array index ${e} was null or undefined ${r}`)}static noNullOrUndefinedValuesInRestArgs(t,...e){if(f.notNullOrUndefined(e,"Source array may not be null"),null!==t&&e.length!==t)throw new Error(`Expected array of length ${t} but was ${e.length}`);for(let t=0;t<e.length;t++)if(f.isNullOrUndefined(e[t]))throw new Error(`Array index ${t} was null or undefined`)}static constructorArgumentsMatchLengthAndAreNonNull(){const t=Array.from(arguments),e=this.constructor.length;return f.noNullOrUndefinedValuesInArray(t,e)}}class p{static RFC_3986_RESERVED=["!","*","'","(",")",";",":","@","&","=","+","$",",","/","?","#","[","]","%"];static DIGITS="0123456789";static HEXITS=p.DIGITS+"ABCDEF";static UPPER_CASE_LATIN="ABCDEFGHIJKLMNOPQRSTUVWXYZ";static LOWER_CASE_LATIN="abcdefghijklmnopqrstuvwxyz";static CASE_INSENSITIVE_LATIN=p.UPPER_CASE_LATIN+p.LOWER_CASE_LATIN;static stringIsInGivenAlphabet(t,e){let r=!1;if(t&&e)for(let n=0;n<t.length&&!r;n++)r=e.includes(t.charAt(n));return r}static stringToUint8Array(t){return t?(new TextEncoder).encode(t):null}static uint8ArrayToString(t){return t?(new TextDecoder).decode(t):null}static attemptJsonParse(t){let e=null;if(p.trimToNull(t))try{e=JSON.parse(t)}catch(t){e=null}return e}static canParseAsJson(t){return!!p.attemptJsonParse(t)}static allUnique(t){let e=!0;if(t){const r=new Set;for(let n=0;n<t.length&&e;n++){const s=t.charAt(n);e=!r.has(s),r.add(s)}}return e}static allPermutationsOfLength(t,e){const r=[];if(t>0&&e&&e.length>0){f.true(p.allUnique(e),"Alphabet must be unique");const n=1===t?[""]:p.allPermutationsOfLength(t-1,e);for(let t=0;t<e.length;t++)n.forEach((n=>r.push(e.charAt(t)+n)))}return r}static breakIntoBlocks(t,e,r){let n="";for(;t.length>e;)n=r+t.substring(t.length-e)+n,t=t.substring(0,t.length-e);return n=t.length>0?t+n:n.substring(1),n}static createShortUid(t=0,e=1e3,r=36){const n=Math.floor(Date.now()/1e3),s=parseInt(String(Math.floor(Math.random()*e))+String(n)).toString(r);return t>0?p.breakIntoBlocks(s,t,"-"):s}static createType4Guid(){return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,(function(t){const e=16*Math.random()|0;return("x"==t?e:3&e|8).toString(16)}))}static createRandomHexString(t=10){let e="";for(let r=0;r<t;r++)e+=Math.floor(16*Math.random()).toString(16);return e}static canonicalize(t){let e=t?t.toLowerCase():"";return e=e.replace(" ","-"),p.RFC_3986_RESERVED.forEach((t=>{e=e.replace(t,"")})),e}static formatBytes(t,e=2){if(0==t)return"0 Bytes";const r=e||2,n=Math.floor(Math.log(t)/Math.log(1024));return parseFloat((t/Math.pow(1024,n)).toFixed(r))+" "+["Bytes","KB","MB","GB","TB","PB","EB","ZB","YB"][n]}static safeString(t){let e=null;if(null!=t){e="string"==typeof t?t:String(t)}return e}static stringContainsOnlyNumbers(t){return/^[0-9]+$/.test(t)}static stringContainsOnlyAlphanumeric(t){return/^[0-9a-zA-Z]+$/.test(t)}static stringContainsOnlyHex(t){return/^[0-9a-fA-F]+$/.test(t)}static stringContainsOnly(t,e){const r=t||"",n=e||"";let s=!0;for(let t=0;t<r.length&&s;t++)s=n.indexOf(r.charAt(t))>=0;return s}static obscure(t,e=2,r=2){if(!t)return t;const n=t.length;let s=e,i=r;for(;n>0&&n<s+i+1;)s=Math.max(0,s-1),i=Math.max(0,i-1);const o=n-(s+i);let a="";a+=t.substring(0,s);for(let t=0;t<o;t++)a+="*";return a+=t.substring(n-i),a}static leadingZeros(t,e){const r="00000000000000000000000000000000000000000000000000";let n=!1,s=String(t);if(s.startsWith("-")&&(n=!0,s=s.substring(1)),e>50)throw new Error("Cannot format number that large");let i=(r+s).slice(-1*e);return n&&(i="-"+i),i}static trimToEmpty(t){return(t?p.safeString(t):"").trim()}static trimToNull(t){const e=p.trimToEmpty(t);return e.length>0?e:null}static trimAllStringPropertiesToNullInPlace(t){return p.trimAllStringPropertiesInPlace(t,!1)}static trimAllStringPropertiesToEmptyInPlace(t){return p.trimAllStringPropertiesInPlace(t,!0)}static trimAllStringPropertiesInPlace(t,e){return Object.keys(t).forEach((r=>{const n=t[r];null!=n&&"string"==typeof n&&(t[r]=e?p.trimToEmpty(t[r]):p.trimToNull(t[r]))})),t}static stripNonNumeric(t){let e=t;if(null!=t&&!p.stringContainsOnlyNumbers(t)){e="";for(let r=0;r<t.length;r++){const n=t.charAt(r);(p.stringContainsOnlyNumbers(n)||0===r&&"-"===n)&&(e+=n)}}return e}static csvSafe(t){let e=p.trimToEmpty(p.safeString(t));return e.split('"').join('\\"'),-1===e.indexOf(",")&&-1===e.indexOf('"')&&-1===e.indexOf("'")||(e='"'+e+'"'),e}static stripNonAscii(t){return[...t].reduce(((t,e)=>e.charCodeAt(0)>127?t:t+e))}static replaceAll(t,e,r){let n=t;return n?.length&&e?.length&&r?.length&&(n=n.split(e).join(r)),n}}class m{loggerInstanceName;_guid=Math.floor(1e6*Math.random());_loggerMeta;_ringBuffer;_formatter;_level;_handlerFunctionMap;_options;constructor(t="default",e){this.loggerInstanceName=t,this.options=e}addPreProcessor(t){return t&&(this._options.preProcessors=this._options.preProcessors||[],this._options.preProcessors.push(t)),Object.assign([],this._options.preProcessors)}get ringBuffer(){return this._ringBuffer}dumpConfigurationIntoLog(){this.error("ERROR enabled"),this.warn("WARN enabled"),this.info("INFO enabled"),this.verbose("VERBOSE enabled"),this.debug("DEBUG enabled"),this.silly("SILLY enabled")}dumpOptionsIntoLog(){if(this.info("Guid: %s Options: %j",this._guid,this.options),this?.options?.preProcessors?.length){const t=this.options.preProcessors.map((t=>p.trimToNull(t.label())||"Unlabelled"));this.info("Preprocessors: %j",t)}}get guid(){return this._guid}changeRingBufferSize(t){this._ringBuffer=null,t&&(this._ringBuffer=new a(t),this._options.ringBufferSize=t)}updateTracePrefix(t){this._options.trace=t}get options(){return Object.assign({},this._options)}set options(t){switch(this._options=Object.assign({},t),this._options.ringBufferSize&&(this._ringBuffer=new a(this._options.ringBufferSize)),this._options.formatType){case u.None:this._formatter=new h;break;case u.StructuredJson:this._formatter=new g;break;default:this._formatter=new d}this._level=this._options.initialLevel,this._handlerFunctionMap=c.handlerFunctionMap(this._options.outputFunction);const e=this._loggerMeta?this._loggerMeta.loggerInstanceId:null;this._loggerMeta={options:this._options,loggerInstanceName:this.loggerInstanceName,loggerInstanceId:e||p.createRandomHexString(8)}}get level(){return this._level}set level(t){if(!t)throw new Error("Cannot set level to null/undefined");this._level=t}consoleLogPassThru(t,...e){if(c.levelIsEnabled(t,this._level)){let r=this._options.trace||"";r+="["+t+"] ",e.unshift(r);(this._handlerFunctionMap.get(t)||c.defaultHandlerFunction)(...e)}}createLogMessage(t,e,r,...n){return{lvl:t,timestamp:Date.now(),messageSource:r,subsVars:n,params:e}}formatMessage(t){return t?this._formatter.formatMessage(t,this._loggerMeta):null}formatMessages(t){return(t||[]).map((t=>this.formatMessage(t))).filter((t=>!!t))}recordMessageBuilder(t){return this.recordMessage(t.toMessage())}recordMessage(t){let e=null;if(c.levelIsEnabled(t.lvl,this._level)){let r=Object.assign({},t);if(this._options.preProcessors?.length)for(let t=0;t<this._options.preProcessors.length;t++)r=this._options.preProcessors[t].process(r);if(e=this.formatMessage(r),e){(this._handlerFunctionMap.get(r.lvl)||c.defaultHandlerFunction)(e),this._ringBuffer&&this._ringBuffer.addToRingBuffer(r)}}return e}error(t,...e){const r=this.createLogMessage(o.error,{},t,...e);return this.recordMessage(r)}errorP(...t){this.consoleLogPassThru(o.error,...t)}warn(t,...e){const r=this.createLogMessage(o.warn,{},t,...e);return this.recordMessage(r)}warnP(...t){this.consoleLogPassThru(o.warn,...t)}info(t,...e){const r=this.createLogMessage(o.info,{},t,...e);return this.recordMessage(r)}infoP(...t){this.consoleLogPassThru(o.info,...t)}verbose(t,...e){const r=this.createLogMessage(o.verbose,{},t,...e);return this.recordMessage(r)}verboseP(...t){this.consoleLogPassThru(o.verbose,...t)}debug(t,...e){const r=this.createLogMessage(o.debug,{},t,...e);return this.recordMessage(r)}debugP(...t){this.consoleLogPassThru(o.debug,...t)}silly(t,...e){const r=this.createLogMessage(o.silly,{},t,...e);return this.recordMessage(r)}sillyP(...t){this.consoleLogPassThru(o.silly,...t)}logByLevel(t,e,...r){const n=this.createLogMessage(t,{},e,...r);this.recordMessage(n)}importMessages(t,e="",r=!0){const n=e||"";t&&t.length>0&&(this.silly("Received import data : %d msgs",t.length),t.forEach((t=>{if(t.messageSource){let e=n;if(r){e+=" ("+String(new Date).substring(15,24)+") : ",e+=t.messageSource}this.logByLevel(t.lvl,e)}})))}}class y{static LOGGER_INSTANCE_MAP_GLOBAL_KEY="RATCHET_GLOBAL_LOGGER_MAP_V01";static GLOBAL_PROVIDER=process||global||window;static DEFAULT_OPTIONS={initialLevel:o.info,formatType:u.ClassicSingleLine,trace:null,globalVars:{},outputFunction:l.Console,ringBufferSize:0,preProcessors:[]};static applyDefaultsToOptions(t){const e=t||{};return e.initialLevel=e.initialLevel??y.DEFAULT_OPTIONS.initialLevel,e.formatType=e.formatType??y.DEFAULT_OPTIONS.formatType,e.trace=e.trace??y.DEFAULT_OPTIONS.trace,e.globalVars=e.globalVars??y.DEFAULT_OPTIONS.globalVars,e.outputFunction=e.outputFunction??y.DEFAULT_OPTIONS.outputFunction,e.ringBufferSize=e.ringBufferSize??y.DEFAULT_OPTIONS.ringBufferSize,e}static loggerInstances(){if(!y.GLOBAL_PROVIDER)throw new Error("Cannot create logger - could not find a global provider");let t=y.GLOBAL_PROVIDER[y.LOGGER_INSTANCE_MAP_GLOBAL_KEY];return t||(t=new Map,y.GLOBAL_PROVIDER[y.LOGGER_INSTANCE_MAP_GLOBAL_KEY]=t),t}static changeDefaultOptions(t,e){if(!t||!t.initialLevel||!t.formatType)throw new Error("Default options must be non-null, and provide initial level and format type");y.DEFAULT_OPTIONS=Object.assign({},t),e&&Array.from(y.loggerInstances().values()).forEach((e=>e.options=t))}static getLogger(t="default",e){let r=y.loggerInstances().get(t);if(!r){const n=y.applyDefaultsToOptions(e);r=new m(t,n),y.loggerInstances().set(t,r)}return r}static recordMessageBuilder(t){return y.getLogger().recordMessageBuilder(t)}static recordMessage(t){return y.getLogger().recordMessage(t)}static formatMessages(t){return y.getLogger().formatMessages(t)}static updateTracePrefix(t){return y.getLogger().updateTracePrefix(t)}static changeRingBufferSize(t){return y.getLogger().changeRingBufferSize(t)}static getRingBuffer(){return y.getLogger().ringBuffer}static dumpConfigurationIntoLog(){return y.getLogger().dumpConfigurationIntoLog()}static dumpOptionsIntoLog(){return y.getLogger().dumpOptionsIntoLog()}static getLevel(){return y.getLogger().level}static setLevel(t){y.getLogger().level=t}static getOptions(){return y.getLogger().options}static getMessages(t=null,e=!1,r=!1){const n=y.getLogger().ringBuffer;return n?n.getMessages(t,e,r):null}static consoleLogPassThru(t,...e){return y.getLogger().consoleLogPassThru(t,...e)}static error(t,...e){return y.getLogger().error(t,...e)}static errorP(...t){return y.getLogger().errorP(...t)}static warn(t,...e){return y.getLogger().warn(t,...e)}static warnP(...t){return y.getLogger().warnP(...t)}static info(t,...e){return y.getLogger().info(t,...e)}static infoP(...t){return y.getLogger().infoP(...t)}static verbose(t,...e){return y.getLogger().verbose(t,...e)}static verboseP(...t){return y.getLogger().verboseP(...t)}static debug(t,...e){return y.getLogger().debug(t,...e)}static debugP(...t){return y.getLogger().debugP(...t)}static silly(t,...e){return y.getLogger().silly(t,...e)}static sillyP(...t){return y.getLogger().sillyP(...t)}static takeSnapshot(){const t=y.getLogger().ringBuffer;return t?t.takeSnapshot():null}static logByLevel(t,e,...r){return y.getLogger().logByLevel(t,e,...r)}static importMessages(t,e="",r=!0){return y.getLogger().importMessages(t,e,r)}static getLastLogMessage(){const t=y.getLogger().ringBuffer;return t?t.getLastLogMessage():null}}class b{static MAX_LEADING_ZEROS_FORMAT_LENGTH=1e3;static DEFAULT_SAFE_NUMBER_OPTIONS={ifNotNumber:null,returnValueForNull:null,returnValueForUndefined:null,preParseCharacterMapping:{",":""}};static toFixedDecimalNumber(t,e){const r=b.safeNumber(t);return null==r?r:b.safeNumber(r.toFixed(e))}static leadingZeros(t,e){const r=String(t);if(r.length<e){let t="0000";if(e>b.MAX_LEADING_ZEROS_FORMAT_LENGTH)throw"Cannot format number that large (max length is "+b.MAX_LEADING_ZEROS_FORMAT_LENGTH+")";for(;t.length<e;)t+=t;return(t+r).slice(-1*e)}return r}static between(t,e,r){const n=b.safeNumber(t),s=b.safeNumber(e),i=b.safeNumber(r);return n>=s&&n<=i||n>=i&&n<=s}static safeNumber(t,e=null,r){const n={ifNotNumber:e,returnValueForNull:r?e:null,returnValueForUndefined:r?e:void 0};return void 0===r&&(n.returnValueForUndefined=null),b.safeNumberOpt(t,n)}static safeNumberOpt(t,e){let r;const n=Object.assign({},b.DEFAULT_SAFE_NUMBER_OPTIONS,e||{});if(null===t)r=n.returnValueForNull;else if(void 0===t)r=n.returnValueForUndefined;else{const e=typeof t;if("number"==e)r=t;else if("string"==e){let e=t.trim();if(0===e.length)r=n.ifNotNumber;else{if(n.preParseCharacterMapping&&Object.keys(n.preParseCharacterMapping).length>0){let t="";for(let r=0;r<e.length;r++){const s=e.charAt(r);t+=void 0===n.preParseCharacterMapping[s]?s:n.preParseCharacterMapping[s]}e=t}r=Number.parseFloat(e)}}else y.warn("Value is of type %s, returning default",e),r=n.ifNotNumber;isNaN(r)&&(y.debug("Parsed string to NaN - using NaN value from param"),r=n.ifNotNumber)}return r}static numberCSVToList(t){let e=null;return t&&(e=t.split(",").map((t=>b.safeNumber(t.trim()))),e=e.filter((t=>"number"==typeof t&&!isNaN(t)))),e}static fitToWindow(t,e,r){let n=t;if(null===t||null===e||null===r||e<0||r<0||t<0)throw new Error("All values must be non-null and larger than 0");const s=Math.min(e,r),i=Math.max(e,r),o=i-s;if(i===s)n=i;else{for(;n<s;)n+=o;for(;n>i;)n-=o}return n}static groupNumbersIntoContiguousRanges(t,e=3){f.notNullOrUndefined(t);const r=Object.assign([],t);r.sort(((t,e)=>t-e));const n=[],s=[];let i=0;for(let t=1;t<r.length;t++)if(r[t]===r[t-1]+1);else{if(i===t-1)n.push(r[t-1]);else{if(t-i<e)for(let e=i;e<t;e++)n.push(r[e]);else s.push({min:r[i],max:r[t-1]})}i=t}return{singles:n,ranges:s}}static distributeItemsEvenly(t,e){f.notNullOrUndefined(t,"items"),f.notNullOrUndefined(e,"buckets"),f.true(t>0&&t===Math.floor(t),"Items integer larger than 0"),f.true(e>0&&e===Math.floor(e),"Buckets integer larger than 0");const r=e/t,n=[];for(let t=0;t<e;t++)n.push(0);let s=0,i=t;for(;i>0;)n[Math.floor(s)%e]++,i--,s+=r;return n}static createRange(t,e,r=1){const n=[];let s=t;for(;s<e;)n.push(s),s+=r;return n}}class E{static allTrue(t,e=!1){let r=null;return r=!!t&&(t.length>0?t.reduce(((t,e)=>t&&e),!0):e),r}static anyTrue(t,e=!1){let r=null;return r=!!t&&(t.length>0?t.reduce(((t,e)=>t||e),!1):e),r}static parseBool(t){return!0===t||null!=t&&"string"==typeof t&&"true"===t.toLowerCase()}static intToBool(t){return null!=t&&0!==b.safeNumber(t)}static boolToInt(t){return E.parseBool(t)?1:0}}class S{constructor(){}static translateToOriginVector(t){let e=null;return S.validPoints(t)&&(e={x:null,y:null},t.forEach((t=>{e.x=null===e.x||t.x<e.x?t.x:e.x,e.y=null===e.y||t.y<e.y?t.y:e.y})),e.x*=-1,e.y*=-1),e}static minimalContainingPlane(t){let e=null;return S.validPoints(t)&&(e={width:0,height:0},t.forEach((t=>{e.width=Math.max(e.width,t.x+1),e.height=Math.max(e.height,t.y+1)}))),e}static scaleVector(t,e){let r=null;return S.validPlane(t)&&S.validPlane(e)&&(r={x:e.width/t.width,y:e.height/t.height}),r}static samePoint(t,e){return!!t&&!!e&&t.x===e.x&&t.y===e.y}static atLeastOneDimensionShared(t,e){return!(!t||!e||t.x!==e.x&&t.y!==e.y)}static validPlane(t){return!!t&&!!t.height&&!!t.width}static validLine(t){return!!t&&S.validPoint(t.p1)&&S.validPoint(t.p2)&&!S.samePoint(t.p1,t.p2)}static validLines(t){return!!t&&E.allTrue(t.map((t=>S.validLine(t))))}static validPolyLine(t){return!!t&&t.pts?.length>1&&E.allTrue(t.pts.map((t=>S.validPoint(t))))}static polyLineToLines(t){let e=null;if(S.validPolyLine(t)){e=[];for(let r=1;r<t.pts.length;r++)e.push({p1:t.pts[r-1],p2:t.pts[r]})}return e}static lastPointOnPolyLine(t){return S.validPolyLine(t)?t.pts[t.pts.length-1]:null}static lineToPolyLine(t){return S.validLine(t)?{pts:[t.p1,t.p2]}:null}static linesToPolyLines(t){let e=null;if(S.validLines(t)){e=[];let r=S.lineToPolyLine(t[0]);for(let n=1;n<t.length;n++)S.samePoint(S.lastPointOnPolyLine(r),t[n].p1)?r.pts.push(t[n].p2):(e.push(r),r=S.lineToPolyLine(t[n]));e.push(r)}return e}static validPoint(t){return!!t&&null!=t.x&&null!=t.x&&null!==t.y&&void 0!==t.y}static validPoints(t){return!!t&&E.allTrue(t.map((t=>S.validPoint(t))),!1)}static planeContainsPoint(t,e){return S.validPlane(e)&&S.validPoint(t)&&t.x>=0&&t.x<e.width&&t.y>=0&&t.y<e.height}static planeContainsPoints(t,e){return t&&t.map((t=>S.planeContainsPoint(t,e))).reduce(((t,e)=>t&&e),!0)}static linesToPoints(t){let e=null;return S.validLines(t)&&(e=t.map((t=>[t.p1,t.p2])).flat()),e}static pointsToLines(t){let e=null;if(S.validPoints(t)){if(t.length%2!=0)throw new Error("Cannot convert non-even array of points into lines");e=[];for(let r=0;r<t.length;r+=2)e.push({p1:t[r],p2:t[r+1]})}return e}static rotateRightAboutOrigin90Degrees(t,e=1){let r=null,n={x:0,y:0};if(S.validPoints(t)){r=Object.assign([],t),n=S.translateToOriginVector(r),r=S.translate(r,n);let e=S.minimalContainingPlane(r);r=S.xToY(r),e={width:e.height,height:e.width},n={x:-1*n.y,y:-1*n.x},r=S.mirrorPointsOnPlane(r,e,!0,!1),r=S.translate(r,n)}const s=e>4?e%4:e;return s>1&&(r=S.rotateRightAboutOrigin90Degrees(r,s-1)),r}static planeContainsLines(t,e){return t&&S.planeContainsPoints(t.map((t=>[t.p1,t.p2])).flat(),e)}static planeContainsPolyLine(t,e){return S.planeContainsLines(S.polyLineToLines(t),e)}static planeContainsLine(t,e){return S.validPlane(e)&&S.validLine(t)&&S.planeContainsPoint(t.p1,e)&&S.planeContainsPoint(t.p2,e)}static xToY(t){let e=null;return S.validPoints(t)&&(e=t.map((t=>({x:t.y,y:t.x})))),e}static translate(t,e){let r=null;return S.validPoints(t)&&S.validPoint(e)&&(r=t.map((t=>({x:t.x+e.x,y:t.y+e.y})))),r}static mirrorPointsOnPlane(t,e,r,n){let s=null;return S.validPoints(t)&&S.validPlane(e)&&(s=r||n?t.map((t=>({x:r?e.width-1-t.x:t.x,y:n?e.height-1-t.y:t.y}))):Object.assign([],t)),s}static transformPointsToNewPlane(t,e,r){let n=null;if(S.validPoints(t)&&S.validPlane(e)&&S.validPlane(r)){const s=S.scaleVector(e,r);n=t.map((t=>({x:t.x*s.x,y:t.y*s.y}))),n=S.mirrorPointsOnPlane(n,r,r.rightToLeft!==e.rightToLeft,r.topToBottom!==e.topToBottom)}return n}static transformPointToNewPlane(t,e,r){const n=S.transformPointsToNewPlane([t],e,r);return 1===n.length?n[0]:null}static transformLines(t,e,r){return null}static fitCurve(t,e){if(t.sort(((t,e)=>t.x-e.x)),e<=t[0].x)return t[0].y;if(e>=t[t.length-1].x)return t[t.length-1].y;{let r=0;for(;t[r+1].x<e;)r++;const n=t[r+1].x-t[r].x,s=t[r+1].y-t[r].y,i=(e-t[r].x)/n*s;return t[r].y+i}}}class w{constructor(){}static buildInformation(){return{version:"323",hash:"18c9c1a86e3d9085c322ddbbe0ce1b2b9fb52025",branch:"alpha-2024-04-04-7",tag:"alpha-2024-04-04-7",timeBuiltISO:"2024-04-04T13:12:29-0700",notes:"No notes"}}}class T{entries=[];update(t,e=1){if(t){const r=this.entries.find((e=>e.item===t));r?r.count+=e:this.entries.push({item:t,count:e})}}sort(){this.entries.sort(((t,e)=>{let r=e.count-t.count;return 0===r&&(r=String(e.item).localeCompare(String(t.item))),r}))}sortKeys(){this.entries.sort(((t,e)=>String(e.item).localeCompare(String(t.item))))}reverse(){this.entries.reverse()}getEntries(){return this.entries}getTotalCount(){let t=0;return this.entries.forEach((e=>t+=e.count)),t}countForValue(t){const e=this.entries.find((e=>e.item===t));return e?e.count:0}percentForValue(t){const e=this.getTotalCount();return 0===e?0:this.countForValue(t)/e}}var O;!function(t){t[t.RETURN_NULL=0]="RETURN_NULL",t[t.THROW_EXCEPTION=1]="THROW_EXCEPTION",t[t.ADD_FLAG=2]="ADD_FLAG"}(O||(O={}));class _{static formatMsDuration(t,e=!1){const r=Math.floor(t%1e3),n=Math.floor(t/1e3)%60,s=Math.floor(t/6e4)%60,i=Math.floor(t/36e5)%24,o=Math.floor(t/864e5),a=b.leadingZeros;let l=a(i,2)+"h"+a(s,2)+"m";return l+=e?a(n,2)+"."+a(r,3)+"s":a(n,2)+"s",o>0&&(l=o+"d"+l),l}static colonFormatMsDuration(t,e=!1){const r=t%1e3,n=Math.floor(t/1e3)%60,s=Math.floor(t/6e4)%60,i=Math.floor(t/36e5),o=b.leadingZeros;let a=o(i,2)+":"+o(s,2)+":";return a+=e?o(n,2)+"."+o(r,3):o(n,2),a}static daysBetween(t,e){return r.fromJSDate(t).diff(r.fromJSDate(e)).days}static createSteps(t,e,n,s,i){let o=r.fromMillis(t).setZone(n);const a=r.fromMillis(e),l=[];for(;o<a;)l.push(o.toFormat(s)),o=o.plus(i);return l}}class L{_encryptionKeyPromise;_decryptKeysPromise;_jtiGenerator;_decryptOnlyKeyUseLogLevel;_parseFailureLogLevel;static EXPIRED_FLAG_NAME="__jwtServiceExpiredFlag";constructor(t,e,r=p.createType4Guid,n=o.info,s=o.debug){this._encryptionKeyPromise=t,this._decryptKeysPromise=e,this._jtiGenerator=r,this._decryptOnlyKeyUseLogLevel=n,this._parseFailureLogLevel=s,f.notNullOrUndefined(t,"encryptionKeyPromise")}get encryptionKeyPromise(){return this._encryptionKeyPromise}get decryptKeysPromise(){return this._decryptKeysPromise}get jtiGenerator(){return this._jtiGenerator}get decryptOnlyKeyUseLogLevel(){return this._decryptOnlyKeyUseLogLevel}get parseFailureLogLevel(){return this._parseFailureLogLevel}static hasExpiredFlag(t){return t&&!0===t[L.EXPIRED_FLAG_NAME]}static async invalidSafeDecode(t,r,n=o.silly){let s=null;try{s=e.verify(t,r,{ignoreExpiration:!0})}catch(t){y.logByLevel(n,"Caught %s - ignoring",t)}return s}static async secondsRemainingUntilExpiration(t){let e=null;if(p.trimToNull(t)){const r=await L.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 L.secondsRemainingUntilExpiration(t);let r=null;return null!=e&&(r=1e3*e),r}async decodeToken(t,e=0){const r=await this.encryptionKeyArray();let n=Object.assign([],r);this.decryptKeysPromise&&(n=n.concat(await this.decryptKeysPromise));const s=[];let i=null;for(let e=0;e<n.length&&!i;e++){s.push(p.obscure(n[e],1,1));const a=e===n.length-1&&this.parseFailureLogLevel?this.parseFailureLogLevel:o.silly;i=await L.invalidSafeDecode(t,n[e],a),i&&e>=r.length&&y.logByLevel(this.decryptOnlyKeyUseLogLevel,"Used old key to decode token : %s",p.obscure(n[e],2))}if(i){const t=Math.floor(Date.now()/1e3),r=i?.exp&&i.exp>100*t?Math.floor(i.exp/1e3):i?.exp,n=i?.nbf&&i.nbf>100*t?Math.floor(i.nbf/1e3):i?.nbf;if(r&&t>=r||n&&t<=n){const n=t-r;switch(y.debug("JWT token expired or before NBF : on %d, %s ago",i.exp,_.formatMsDuration(1e3*n)),e){case 1:throw new Error("JWT Token was expired");case 2:i[L.EXPIRED_FLAG_NAME]=!0;break;default:i=null}}}else y.warn("Unable to parse a payload (Tried %j) from : %s",s,t);return i}async encryptionKeyArray(){const t=await this.encryptionKeyPromise,e=Array.isArray(t)?t:[t];if(e.length<1)throw new Error("Cannot create JwtRatchet with empty encryption key set");return e}async selectRandomEncryptionKey(){const t=await this.encryptionKeyArray();return t[Math.floor(Math.random()*t.length)]}async createTokenString(t,r,n){const s=p.trimToNull(n)?p.trimToNull(n):await this.selectRandomEncryptionKey();if(f.notNullOrUndefined(t,"payload"),t.jti=this.jtiGenerator?this.jtiGenerator():null,r){const e=Math.floor(Date.now()/1e3)+r;y.debug("Forcing expiration to %d",e),t.exp=e}return e.sign(t,s)}async refreshJWTString(t,e,r){const n=e?2:1,s=await this.decodeToken(t,n),i=s.exp&&s.iat?s.exp-s.iat:null,o=r||i;L.removeJwtFields(s),L.removeExpiredFlag(s);return await this.createTokenString(s,o)}static decodeTokenNoVerify(t){return e.decode(t)}static removeJwtFields(t){t&&["iss","sub","aud","exp","nbf","iat","jti"].forEach((e=>{delete t[e]}))}static removeExpiredFlag(t){t&&delete t[L.EXPIRED_FLAG_NAME]}}class M{static safeStringifyErr(t,e=!0){let r="ERR WAS NULL";if(t)if(t.message)r=t.message;else try{r=JSON.stringify(t)}catch(e){y.error("Failed to json stringify"),r=String(t)}return e&&y.error("%s",r,t),r}static asErr(t){let e=null;return t&&(e=t instanceof Error?t:new Error("Force-Cast to error : "+String(t))),e}static fErr(e,...r){const n=t.format(e,...r);return new Error(n)}static throwFormattedErr(t,...e){throw M.fErr(t,...e)}}class A{static expandNestedKeysToObjects(t,e="."){if(!e||1!==e.length)throw new Error("Invalid separator (must be single character)");const r={};return Object.keys(t).forEach((n=>{const s=n.split(e);let i=r;for(;s.length>1;)i[s[0]]=i[s[0]]||{},i=i[s[0]],s.splice(0,1);i[s[0]]=t[n]})),r}static mapByUniqueProperty(t,e){if(!t||!e)throw new Error("Neither input nor propName can be null");const r=new Map;return t.forEach((t=>{const n=t?t[e]:null;if(null==n)throw new Error("No value for "+e+" found in "+JSON.stringify(t));if(r.has(n))throw new Error("Multiple values found for "+n);r.set(n,t)})),r}static groupByProperty(t,e){if(!t||!e)throw new Error("Neither input nor propName can be null");const r=new Map;return t.forEach((t=>{const n=t?t[e]:null;if(null==n)throw M.fErr("No value for %s found in %j",e,t);r.has(n)||r.set(n,[]),r.get(n).push(t)})),r}static findValue(t,e){return e&&0!=e.length?t?A.findValue(t[e[0]],e.slice(1)):null:t}static findValueDotPath(t,e){return e&&0!=e.length?t?A.findValue(t,e.split(".")):null:t}static simpleDeepCompare(t,e){return null==t&&null==e||null!=t&&null!=e&&JSON.stringify(t)==JSON.stringify(e)}static toKeyValueList(t){const e=[];for(const r of Object.keys(t))e.push({key:r,value:t[r]});return e}static fromKeyValueList(t){const e={};return t.forEach((t=>e[t.key]=t.value)),e}static cleanup(t,e=!1,r=!0,n=!0,s=!0){if(null==t||"object"!=typeof t)return t;const i=JSON.parse(JSON.stringify(t));return Object.keys(i).forEach((t=>{if(i[t]&&"object"==typeof i[t])if(Array.isArray(i[t]))for(let e=0;e<i[t].length;e++)i[t][e]=A.cleanup(i[t][e]);else i[t]=A.cleanup(i[t]);else void 0===i[t]&&n||null===i[t]&&r||""===i[t]&&s||0===i[t]&&e?delete i[t]:i[t]=i[t]})),i}static extractValueFromMapIgnoreCase(t,e){let r=null;if(t&&e){const n=e.toLowerCase();Object.keys(t).forEach((s=>{if(s.toLowerCase()===n){const n=t[s];r&&y.warn("Multiple entries found for %s (replacing %s with %s",e,r,n),r=n}}))}return r}static safeCallFunction(t,e){let r=!1;if(t&&t[e]&&"function"==typeof t[e])try{t[e](),r=!0}catch(r){y.warn("Error calling %s on %s : %s",e,t,r,r)}return r}static caseInsensitiveAccess(t,e){let r=null;if(t&&e&&(r=t[e],!r)){const n=Object.keys(t).find((t=>t.toLowerCase()===e.toLowerCase()));n&&(r=t[n])}return r}}class N{static wrapElementsInArray(t){return t.map((t=>[t]))}static compareTwoArrays(t,e,r){t.sort(r),e.sort(r);let n=0,s=0;const i={matching:[],setOneOnly:[],setTwoOnly:[]};for(;n<t.length&&s<e.length;){const o=t[n],a=e[s],l=r(o,a);0===l?(i.matching.push(o),n++,s++):l<0?(i.setOneOnly.push(o),n++):(i.setTwoOnly.push(a),s++)}return n<t.length-1&&(i.setOneOnly=i.setOneOnly.concat(t.slice(n))),s<e.length-1&&(i.setTwoOnly=i.setTwoOnly.concat(e.slice(s))),i}static extractSubarrayFromSortedByNumberField(t,e,r,n){if(!t||0===t.length)return t;let s=null===r?0:N.findSplit(t,e,r)||0;const i=null===n?t.length:N.findSplit(t,e,n),o=A.findValueDotPath(t[s],e);return s===t.length-1&&o<r?[]:(s<t.length&&s<i&&o<r&&s++,t.slice(s,i+1))}static findSplit(t,e,r){if(f.notNullOrUndefined(t),f.notNullOrUndefined(e),f.notNullOrUndefined(r),0===t.length||A.findValueDotPath(t[0],e)>r)return null;let n=0,s=t.length,i=null;for(;null===i;){const o=Math.floor((n+s)/2),a=A.findValueDotPath(t[o],e);n===s||n===s-1?i=n:a<=r?n=o:s=o}return i}}class x{static safeObjectToBase64JSON(t){return t?x.generateBase64VersionOfString(JSON.stringify(t)):null}static safeBase64JSONParse(t){let e={};try{t&&(e=JSON.parse(x.base64StringToString(t,"utf-8")))}catch(r){y.warn("Error parsing b64/json : %s as json, got %s",t,r,r),e={}}return e}static generateBase64VersionOfBlob(t){return new Promise((function(e,r){if(t&&0!=t.size){const r=new FileReader;r.onloadend=function(){e(r.result.toString())},r.readAsDataURL(t)}else r("Wont convert null or non-blob or empty blob")}))}static generateBase64VersionOfString(t){return x.generateBase64VersionOfUint8Array(p.stringToUint8Array(t))}static generateBase64VersionOfUint8Array(t){return x.uint8ArrayToBase64String(t)}static base64StringToUint8Array(t){try{return x.base64StringToBytes(t)}catch(e){throw y.error("Failed to decode base64: %s",t),e}}static base64StringToString(t,e="utf8"){return new TextDecoder(e).decode(x.base64StringToUint8Array(t))}static BASE64_ABC=["A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z","0","1","2","3","4","5","6","7","8","9","+","/"];static BASE64_CODES=[255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,62,255,255,255,63,52,53,54,55,56,57,58,59,60,61,255,255,255,0,255,255,255,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,255,255,255,255,255,255,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51];static getBase64Code(t){if(t>=x.BASE64_CODES.length)throw new Error("Unable to parse base64 string.");const e=x.BASE64_CODES[t];if(255===e)throw new Error("Unable to parse base64 string.");return e}static uint8ArrayToBase64UrlString(t){let e=x.uint8ArrayToBase64String(t);return e=e.split("+").join("-").split("/").join("_").split("=").join(""),e}static uint8ArrayToBase64String(t){let e,r="";const n=t.length;for(e=2;e<n;e+=3)r+=x.BASE64_ABC[t[e-2]>>2],r+=x.BASE64_ABC[(3&t[e-2])<<4|t[e-1]>>4],r+=x.BASE64_ABC[(15&t[e-1])<<2|t[e]>>6],r+=x.BASE64_ABC[63&t[e]];return e===n+1&&(r+=x.BASE64_ABC[t[e-2]>>2],r+=x.BASE64_ABC[(3&t[e-2])<<4],r+="=="),e===n&&(r+=x.BASE64_ABC[t[e-2]>>2],r+=x.BASE64_ABC[(3&t[e-2])<<4|t[e-1]>>4],r+=x.BASE64_ABC[(15&t[e-1])<<2],r+="="),r}static base64StringToBytes(t){if(t.length%4!=0)throw M.fErr("Unable to parse base64 string, length: %s",t.length);const e=t.indexOf("=");if(-1!==e&&e<t.length-2)throw M.fErr("Unable to parse base64 string, index %s",e);const r=t.endsWith("==")?2:t.endsWith("=")?1:0,n=t.length,s=new Uint8Array(n/4*3);let i;for(let e=0,r=0;e<n;e+=4,r+=3)i=x.getBase64Code(t.charCodeAt(e))<<18|x.getBase64Code(t.charCodeAt(e+1))<<12|x.getBase64Code(t.charCodeAt(e+2))<<6|x.getBase64Code(t.charCodeAt(e+3)),s[r]=i>>16,s[r+1]=i>>8&255,s[r+2]=255&i;return s.subarray(0,s.length-r)}static base64UrlStringToBytes(t){let e=t.split("-").join("+").split("_").join("/");for(;e.length%4!=0;)e+="=";return y.info("pre: %s post %s",t,e),x.base64StringToBytes(e)}static encodeStringToBase64String(t,e=new TextEncoder){return x.uint8ArrayToBase64String(e.encode(t))}static encodeStringToBase64UrlString(t,e=new TextEncoder){return x.uint8ArrayToBase64UrlString(e.encode(t))}static decodeBase64StringToString(t,e=new TextDecoder){return e.decode(x.base64StringToBytes(t))}static decodeBase64UrlStringToString(t,e=new TextDecoder){return e.decode(x.base64UrlStringToBytes(t))}}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 v{static COMMON_US_DATE_FORMAT="MM/dd/yyyy";static DEFAULT_DATE_FORMAT="yyyy-MM-dd";static FULL_DATE_FORMAT="yyyy-MM-dd_HH_mm_ss";static PACIFIC_TIME_ZONE="America/Los_Angeles";static UTC_TIME_ZONE="etc/UTC";static formatFullDate(t){return r.fromJSDate(t).toFormat(v.FULL_DATE_FORMAT)}static formatDefaultDateOnly(t){return r.fromJSDate(t).toFormat(v.DEFAULT_DATE_FORMAT)}static parseDefaultDate(t){return r.fromFormat(t,v.DEFAULT_DATE_FORMAT).toJSDate()}static parseCommonUsDate(t){let e=null;if(t){let n=v.COMMON_US_DATE_FORMAT;2===t.indexOf("-")&&(n=n.split("/").join("-")),e=r.fromFormat(t,n).toJSDate()}return e}}class P{static listEnumKeys(t){return n(t).getValues()}static keyToEnum(t,e,r=!1){const s=n(t);let i=null;if(e&&(i=s.asValueOrDefault(e,null),!i&&!r)){const r=P.listEnumKeys(t).find((t=>t.toUpperCase()===e.toUpperCase()));r&&(i=s.asValueOrDefault(r,null))}return i}static parseCsvToEnumArray(t,e){return p.trimToEmpty(e).split(",").map((t=>t.trim())).map((e=>P.keyToEnum(t,e))).filter((t=>!!t))}}class R{static fetchDirName(t){if(!t)throw new Error("Need to provide root (should be import.meta.url)");return s.fileURLToPath(new URL(".",t))}static fetchFileName(t){if(!t)throw new Error("Need to provide root (should be import.meta.url)");return s.fileURLToPath(t)}}class C{_config;_cacheObject;_lastUpdatedEpochMS;_timeRemainingMS;constructor(t){this._config=Object.assign({},this.defaultConfig(),t||{}),this._config.overrideTimeRemainingMS&&this._config.timeToLiveMS&&M.throwFormattedErr("Cannot define both time to live and overrideTimeRemainingMS"),this._config.overrideTimeRemainingMS||this._config.timeToLiveMS||M.throwFormattedErr("Must define exactly one of timeToLiveMS or overrideTimeRemainingMS"),this._config.initialValue&&this.update(this._config.initialValue),this._timeRemainingMS=this._config.overrideTimeRemainingMS||this.defaultTimeRemainingMS}defaultConfig(){return{generator:null,initialValue:null,logLevel:o.debug,overrideTimeRemainingMS:null,timeToLiveMS:6e4}}async defaultTimeRemainingMS(t){let e=0;if(t){const r=(new Date).getTime()-t;e=Math.max(0,this._config.timeToLiveMS-r)}return e}update(t,e=!1){this._cacheObject=t,e||(this._lastUpdatedEpochMS=(new Date).getTime()),y.logByLevel(this._config.logLevel,"Updated cache value to %j",t)}async fetchCacheObjectTimeRemainingMS(){return this._timeRemainingMS(this._lastUpdatedEpochMS)}async fetch(){if(await this._timeRemainingMS(this._lastUpdatedEpochMS)||(this._cacheObject=null,this._lastUpdatedEpochMS=null),!this._cacheObject&&this._config.generator){const t=await this._config.generator();y.logByLevel(this._config.logLevel,"Auto call to generator returned %j",t),this.update(t)}return this._cacheObject}}class B{timeToLiveMS;generator;initialValue;logLevel;overrideTimeRemainingMS}class U{constructor(){}static distanceBetweenLocations(t,e,r,n,s="M"){const i=s?s.toUpperCase():"";if(-1===["M","K","N","F","E"].indexOf(i))throw new Error("Invalid unit");if(t==r&&e==n)return 0;{const s=Math.PI*t/180,o=Math.PI*r/180,a=e-n,l=Math.PI*a/180;let c=Math.sin(s)*Math.sin(o)+Math.cos(s)*Math.cos(o)*Math.cos(l);return c>1&&(c=1),c=Math.acos(c),c=180*c/Math.PI,c=60*c*1.1515,"F"===i&&(c*=5280),"K"===i&&(c*=1.609344),"E"===i&&(c*=1609.344),"N"===i&&(c*=.8684),c}}static distanceBetweenRatchetGeoLocations(t,e,r="M"){return U.distanceBetweenLocations(t.lat,t.lng,e.lat,e.lng,r)}static degreeOfLatLngInMiles(t=0){const e=t*Math.PI/180,r=Math.cos(e);return b.safeNumber((69.172*r).toFixed(4))}static milesInDegLatLng(t,e=0){f.notNullOrUndefined(t),f.true(t>=0);return t/U.degreeOfLatLngInMiles(e)}static centerOfBounds(t){return f.notNullOrUndefined(t),{lat:(t.extent.lat+t.origin.lat)/2,lng:(t.extent.lng+t.origin.lng)/2}}static calculateSplits(t,e,r){f.notNullOrUndefined(t),f.notNullOrUndefined(e),f.notNullOrUndefined(r),t.sort(((t,e)=>t.origin[r]-e.origin[r]));const n=t.map((t=>U.centerOfBounds(t))).map((t=>t[r])),s=[];for(let t=1;t<n.length;t++){const r=n[t]-n[t-1];s.length<e?(s.push({idx:t,size:r}),s.sort(((t,e)=>t.size-e.size))):r>s[0].size?(s[0]={idx:t,size:r},s.sort(((t,e)=>t.size-e.size))):y.silly("Skipping, size : %d, %j",r,s)}return y.info("Splits at : %j",s),s.sort(((t,e)=>t.idx-e.idx)),s}static clusterGeoBounds(t,e=2,r=5){let n=null;if(e*r<2&&M.throwFormattedErr("Cannot set slices to less than 2 : %d x %d",e,r),t){n=[];const s=Object.assign([],t);s.sort(((t,e)=>t.origin.lng-e.origin.lng));const i=U.calculateSplits(t,r-1,"lng");i.sort(((t,e)=>t.idx-e.idx));for(let t=0;t<=i.length;t++){const r=0===t?0:i[t-1].idx,o=t===i.length?s.length:i[t].idx,a=s.slice(r,o);a.sort(((t,e)=>t.origin.lat-e.origin.lat));const l=U.calculateSplits(a,e-1,"lat");for(let t=0;t<=l.length;t++){const e=0==t?0:l[t-1].idx,r=t===l.length?a.length:l[t].idx,s=a.slice(e,r);n.push(U.combineBounds(s))}}y.info("New bounds : %j",n)}return n}static canonicalizeBounds(t,e=!1){f.notNullOrUndefined(t,"RatchetLocationBounds");const r=Math.min(t.extent.lat,t.origin.lat),n=Math.max(t.extent.lat,t.origin.lat),s=Math.min(t.extent.lng,t.origin.lng),i=Math.max(t.extent.lng,t.origin.lng);if(r<0&&n>0||r>0&&n<0||(r<0&&n>0||r>0&&n<0)){if(e)return t;throw new Error("Cannot canonicalize, bounds crosses over boundary")}return{origin:{lat:r,lng:s},extent:{lat:n,lng:i}}}static combineBounds(t){let e=null;return t&&t.length>0&&(e={origin:{lat:t.map((t=>t.origin.lat)).reduce(((t,e)=>Math.min(t,e))),lng:t.map((t=>t.origin.lng)).reduce(((t,e)=>Math.min(t,e)))},extent:{lat:t.map((t=>t.extent.lat)).reduce(((t,e)=>Math.max(t,e))),lng:t.map((t=>t.extent.lng)).reduce(((t,e)=>Math.max(t,e)))}}),e}static roundLocation(t,e){return{lat:b.safeNumber(t.lat.toFixed(e)),lng:b.safeNumber(t.lng.toFixed(e))}}static locationToBounds(t,e){const r=U.milesInDegLatLng(e,t.lat);return{origin:{lat:t.lat-r,lng:t.lng-r},extent:{lat:t.lat+r,lng:t.lng+r}}}static sameLocation(t,e){return!!t&&!!e&&t.lat===e.lat&&t.lng===e.lng}static pointInBounds(t,e){return!!t&&!!e&&b.between(t.lat,e.origin.lat,e.extent.lat)&&b.between(t.lng,e.origin.lng,e.extent.lng)}static pointInAnyBound(t,e,r=10){let n=!1;if(e.length>r){const r=U.buildRatchetLocationBoundsMap(e);n=U.pointInRatchetLocationBoundsMap(t,r)}else for(let r=0;r<e.length&&!n;r++)n=U.pointInBounds(t,e[r]);return n}static pointInRatchetLocationBoundsMap(t,e){let r=!1;const n=U.findRatchetLocationBoundsMapEntry(t,e);if(n){const e=n.bounds;for(let n=0;n<e.length&&!r;n++)r=U.pointInBounds(t,e[n])}return r}static findRatchetLocationBoundsMapEntry(t,e){let r=null;if(t.lat>=e.latOffset&&t.lat<=e.maxLat&&t.lng>=e.lngOffset&&t.lng<=e.maxLng){const n=Math.trunc(t.lat)-e.latOffset,s=Math.trunc(t.lng)-e.lngOffset;r=e.mapping[n][s]}return r}static buildRatchetLocationBoundsMap(t){const e=t.map((t=>t.origin.lat)).reduce(((t,e)=>Math.min(t,e))),r=t.map((t=>t.origin.lng)).reduce(((t,e)=>Math.min(t,e))),n=t.map((t=>t.extent.lat)).reduce(((t,e)=>Math.max(t,e))),s=t.map((t=>t.extent.lng)).reduce(((t,e)=>Math.max(t,e))),i=Math.trunc(e)-1,o=Math.trunc(r)-1,a=Math.trunc(n)-i+1,l=Math.trunc(s)-o+1,c=[];for(let t=0;t<a;t++){const e=[];for(let r=0;r<l;r++)e.push({lat:i+t,lng:o+r,bounds:[]});c.push(e)}return t.forEach((t=>{for(let e=Math.trunc(t.origin.lat);e<=Math.trunc(t.extent.lat);e++){const r=c[e-i];for(let e=Math.trunc(t.origin.lng);e<=Math.trunc(t.extent.lng);e++){r[e-o].bounds.push(t)}}})),{latOffset:i,lngOffset:o,maxLat:i+a,maxLng:o+l,mapping:c}}}class D{constructor(){}static fetchGlobalRecord(t){let e=null;if(process?.env?(y.silly("Using process.env as global"),e=process.env):global?.process?.env?(y.silly("Using global.process.env as global"),e=global.process.env):global&&(y.silly("Using process.env as global"),e=global),!e){if(!t)throw M.fErr("Could not find process.env OR global in scope");y.silly("Returning null as global"),e=null}return e}static fetchGlobalVar(t){f.notNullOrUndefined(t,"envVar");return D.fetchGlobalRecord()[t]}static setGlobalVar(t,e){f.notNullOrUndefined(t,"envVar"),f.notNullOrUndefined(e,"value");D.fetchGlobalRecord()[t]=e}}class F{key;value}class j{static op(...t){}}class V{title;timeoutMS;__timeoutTokenFlagField=!0;constructor(t,e){this.title=t,this.timeoutMS=e,Object.setPrototypeOf(this,V.prototype)}writeToLog(t=o.warn){y.logByLevel(t,"Timed out after %d ms waiting for results of %s",this.timeoutMS,this.title)}static isTimeoutToken(t){return!!t&&!!t.__timeoutTokenFlagField}}class k{get createTime(){return this._createTime}starts=new Map;ends=new Map;_createTime=Date.now();_label=p.createRandomHexString(4);_labelIncludedInOutput=!1;constructor(){}withLabel(t){return this._label=p.trimToNull(t),this}withLabelIncludedInOutput(t){return this._labelIncludedInOutput=t,this}get label(){return this._label}set label(t){this._label=t}get labelIncludedInOutput(){return this._labelIncludedInOutput}set labelIncludedInOutput(t){this._labelIncludedInOutput=t}start(t){f.notNullUndefinedOrOnlyWhitespaceString(t,"name");const e=Date.now();return this.starts.set(p.trimToNull(t),e),e}stop(t){f.notNullUndefinedOrOnlyWhitespaceString(t,"name");const e=Date.now();return this.ends.set(p.trimToNull(t),e),e}reset(t){f.notNullUndefinedOrOnlyWhitespaceString(t,"name"),this.starts.delete(p.trimToNull(t)),this.ends.delete(p.trimToNull(t))}hasTimer(t){return f.notNullUndefinedOrOnlyWhitespaceString(t,"name"),this.starts.has(t)}log(t,e,r=o.info){y.logByLevel(r,this.dump(t,e))}logExpected(t,e,r,n=o.info){y.logByLevel(n,this.dumpExpected(t,e,r))}timerNames(){return Array.from(this.starts.keys())}dumpAll(t=", ",e){const r=this.timerNames().map((t=>this.dump(t,e)));let n="Overall: "+this.dump(null,e);return r.length>0&&(n+=t,n+=r.join(t)),n}dump(t,e){let r=this._labelIncludedInOutput?this._label+" ":"";const n=p.trimToNull(t);if(n&&!this.hasTimer(n))r+="No such timer : "+n;else{const s=t?this.starts.get(n):this._createTime,i=t?this.ends.get(n):Date.now();r+=(n||"Default")+" ",s&&i?r+="completed in "+_.formatMsDuration(i-s,!e):s&&(r+="running for "+_.formatMsDuration(Date.now()-s,!e))}return r}dumpExpected(t,e,r){let n=this._labelIncludedInOutput?this._label+" ":"";const s=p.trimToNull(e);if(s&&!this.hasTimer(s))n+="No such timer : "+s;else if(!t||t<=0)n+="Cannot generate output for 0 percent complete";else if(t>1)n+="Cannot generate output for percent > 1";else{n+=(s||"Default")+" ";const i=e?this.starts.get(s):this._createTime,o=e?this.ends.get(s):Date.now();if(i&&o)n+="completed in "+_.formatMsDuration(o-i,!r);else if(i){const e=Date.now()-i,s=e/t-e;n+="running for "+_.formatMsDuration(e,!r)+" approx "+_.formatMsDuration(s,!r)+" remaining"}}return n}expectedRemainingMS(t,e){let r=null;if(!t||t<=0);else if(t>1);else{const n=p.trimToNull(e),s=e?this.starts.get(n):this._createTime,i=e?this.ends.get(n):Date.now();if(s&&i)r=i-s;else if(s){const e=Date.now()-s;r=e/t-e}}return r}elapsedMS(t){let e=null;const r=p.trimToNull(t);if(r&&!this.hasTimer(r))e=null;else{const n=t?this.starts.get(r):this._createTime,s=t?this.ends.get(r):Date.now();n&&s?e=s-n:n&&(e=Date.now()-n)}return e}}class G{static resolveOnEvent(t,e,r=[],n=null){return t&&e&&0!==e.length&&t.on||Promise.reject("Cannot continue - missing source object or name, or the object is not an event source"),new Promise(((s,i)=>{e.forEach((e=>{t.on(e,(()=>{s(n)}))})),r&&r.forEach((e=>{t.on(e,(t=>{i(t)}))}))}))}static timeout(t,e,r){return Promise.race([t,G.createTimeoutPromise(e,r)])}static createTimeoutPromise(t,e){return new Promise(((r,n)=>{const s=setTimeout((()=>{clearTimeout(s);const n=new V(t,e);r(n)}),e)}))}static async wait(t){await G.createTimeoutPromise("Wait "+t,t),y.silly("Finished wait of %d ms",t)}static dumpResult(t,e=!1){y.info("Success, result was : \n\n%s\n\n",JSON.stringify(t)),process.exit(0)}static dumpError(t,e=!1){y.warn("Failure, err was : \n\n%s\n\n -- \n\n%s\n\n",JSON.stringify(t),String(t)),console.trace(),process.exit(1)}static logErrorAndReturnNull(t,e=!1){return y.warn("Failure, err was : \n\n%s\n\n -- \n\n%s\n\n",JSON.stringify(t),String(t)),null}static runPromiseAndDump(t){t.then(G.dumpResult).catch(G.dumpError)}static async waitFor(t,e,r,n,s="waitFor",i=0){if(null==e||r<50||n<1||i<0||"function"!=typeof t)return y.warn("%s: Invalid configuration for waitFor - exiting immediately",s),y.warn("ExpectedValue : %s ; interval: %d ; maxCycles: %d ; test : %s",e,r,n,typeof t),!1;let o=null;try{o=t(i)}catch(t){return y.warn("%s: Caught error while waiting, giving up",s),!1}return null===o?(y.debug("%s:CurVal was null - aborting",s),!1):o==e?(y.debug("%s:Found expected value",s),!0):i>n?(y.debug("%s:Exceeded max cycles, giving up",s),!1):(y.debug("%s : value not reached yet, waiting (count = %d of %d)",s,i,n),await G.wait(r),G.waitFor(t,e,r,n,s,i+1))}static async runBoundedParallel(t,e,r,n=1,s=o.debug){const i=new k;let a=[],l=e;y.logByLevel(s,"Processing %d total elements %d at a time",e.length,n);const c=r||this;let u=0;const d=l.length;for(;l.length>0;){const e=l.slice(0,Math.min(l.length,n));l=l.slice(e.length);const r=e.map((e=>t.apply(c,e))),o=await Promise.all(r);u+=r.length,a=a.concat(o);const h=u/d;y.logByLevel(s,"%d elements remain : %s",l.length,i.dumpExpected(h))}return i.log(),a}static async runBoundedParallelSingleParam(t,e,r,n=1,s=o.debug){const i=N.wrapElementsInArray(e);return G.runBoundedParallel(t,i,r,n,s)}static async asyncForEachSerial(t,e){for(let r=0;r<t.length;r++)await e(t[r],r,t)}static async asyncForEachParallel(t,e){const r=[];for(let n=0;n<t.length;n++)r.push(e(t[n],n,t));await Promise.all(r)}constructor(){}}class z{constructor(){}static sortNullToTop(t,e,r){return z.nullSafeSort(t,e,!0,r)}static sortNullToBottom(t,e,r){return z.nullSafeSort(t,e,!1,r)}static nullSafeSort(t,e,r,n){let s;return s=f.isNullOrUndefined(t)&&f.isNullOrUndefined(e)?0:f.isNullOrUndefined(t)?r?-1/0:1/0:f.isNullOrUndefined(e)?r?1/0:-1/0:n(t,e),s}static sortNumericStringsAsNumbers(t,e,r){const n=b.safeNumber(t),s=b.safeNumber(e);return z.nullSafeSort(n,s,r,((t,e)=>t-e))}}class W{timezoneIanaName;static PACIFIC=new W("America/Los_Angeles");constructor(t){if(this.timezoneIanaName=t,!t||0===t.trim().length)throw"Timezone cannot be null or empty"}get ianaName(){return this.timezoneIanaName}currentHour(){return r.local().setZone(this.timezoneIanaName).hour}toEpochSeconds(t){return Math.round(t.toMillis()/1e3)}startOfTodayEpochSeconds(){return this.toEpochSeconds(r.local().setZone(this.timezoneIanaName).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.timezoneIanaName).set({minute:0,second:0,millisecond:0}))}startOfCurrentMinuteEpochSeconds(){return this.toEpochSeconds(r.local().setZone(this.timezoneIanaName).set({second:0,millisecond:0}))}startOfCurrentSecondEpochSeconds(){return this.toEpochSeconds(r.local().setZone(this.timezoneIanaName).set({millisecond:0}))}startOfTodayEpochMS(){return r.local().setZone(this.timezoneIanaName).set({hour:0,minute:0,second:0,millisecond:0}).toMillis()}dailySlotCount(t){return Math.ceil(864e5/t)}currentTimeSlotIdx(t){if(t<1)throw new Error("Cannot process with slot less than one ms wide");const e=this.startOfTodayEpochMS(),r=(new Date).getTime()-e;return Math.floor(r/t)}matchingTimeSlotIdx(t,e){if(e<1)throw new Error("Cannot process with slot less than one ms wide");const r=t-this.startOfMatchingDayEpochMS(t);return Math.floor(r/e)}startOfCurrentSlotEpochMS(t){return this.startOfTodayEpochMS()+this.currentTimeSlotIdx(t)*t}startOfMatchingSlotEpochMS(t,e){return this.startOfMatchingDayEpochMS(t)+this.matchingTimeSlotIdx(t,e)*e}}class K{constructor(){}static mergeArrays(t){let e=null;if(t?.length){let r=0;t.forEach((t=>{r+=t.length})),e=new Uint8Array(r);let n=0;t.forEach((t=>{e.set(t,n),n+=t.length}))}return e}static deepEqual(t,e){let r=!1;if(t&&e&&t.length===e.length){let n=!1;for(let r=0;r<t.length&&!n;r++)n=t[r]!==e[r];r=!n}return r}}class H{constructor(){}static async webReadableStreamToUint8Array(t){const e=[],r=new WritableStream({write:async(t,r)=>("string"==typeof t?e.push(p.stringToUint8Array(t)):e.push(t),null),abort(t){M.throwFormattedErr("StringWebWritableStream failure : %s",t)}},{highWaterMark:3,size:()=>1});return await t.pipeTo(r),K.mergeArrays(e)}static async webReadableStreamToString(t){const e=await H.webReadableStreamToUint8Array(t);return(new TextDecoder).decode(e)}static stringToWebReadableStream(t){return new ReadableStream({start:e=>(t&&e.enqueue(t),e.close(),null)},{highWaterMark:t?t.length:null})}}class J{wrapped;constructor(t,e){if(!t)throw Error("Cannot set level to null/undefined");this.wrapped={lvl:t,timestamp:Date.now(),messageSource:e}}clone(){const t=new J(this.wrapped.lvl,this.wrapped.messageSource);return t.wrapped=Object.assign({},this.wrapped),t}level(t){if(!t)throw Error("Cannot set level to null/undefined");return this.wrapped.lvl=t,this}timestamp(t){if(!t)throw Error("Cannot set timestamp to null/undefined");return this.wrapped.timestamp=t,this}messageSource(t){return this.wrapped.messageSource=t,this}subVars(t){return this.wrapped.subsVars=t||[],this}params(t){return this.wrapped.params=t||{},this}p(t,e){return this.wrapped.params=this.wrapped.params||{},this.wrapped.params[t]=e,this}toMessage(){return Object.assign({},this.wrapped)}}class Z{static EMAIL=new RegExp(".+@.+\\.[a-z]+");constructor(){}static convertResolvedReadyToSendEmailToRaw(t){f.notNullOrUndefined(t,"RTS must be defined"),f.notNullOrUndefined(t.destinationAddresses,"Destination addresses must be defined");const e="To: "+t.destinationAddresses.join(", ")+"\n",r=t.bccAddresses&&t.bccAddresses.length>0?"Bcc: "+t.bccAddresses.join(", ")+"\n":"",n=t.fromAddress,s="NextPart",i="AltPart";let o="From: "+n+"\n";return o+=e,o+=r,o+="Subject: "+t.subject+"\n",o+="MIME-Version: 1.0\n",o+='Content-Type: multipart/mixed; boundary="'+s+'"\n',o+="\n\n--"+s+"\n",o+='Content-Type: multipart/alternative; boundary="'+i+'"\n',p.trimToNull(t.htmlMessage)&&(o+="\n\n--"+i+"\n",o+='Content-Type: text/html; charset="UTF-8"\n\n',o+=t.htmlMessage),p.trimToNull(t.txtMessage)&&(o+="\n\n--"+i+"\n",o+="Content-Type: text/plain\n\n",o+=t.txtMessage),o+="\n\n--"+i+"--\n",t.attachments&&t.attachments.forEach((t=>{o+="\n\n--"+s+"\n",o+="Content-Type: "+t.contentType+'; name="'+t.filename+'"\n',o+="Content-Transfer-Encoding: base64\n",o+="Content-Disposition: attachment\n\n",o+=t.base64Data.replace(/([^\0]{76})/g,"$1\n")+"\n\n"})),o+="\n\n--"+s+"--\n",o}static validEmail(t){return null!==t&&Z.EMAIL.test(t)}}class q{config;constructor(t){this.config=t,f.notNullOrUndefined(t,"config"),f.notNullOrUndefined(t.provider,"config.provider")}async fillEmailBody(t,e,r,n=null,s=null,i=null){return f.notNullOrUndefined(r),this.config.templateRenderer||M.throwFormattedErr("Cannot use fill body if template renderer not set"),t.htmlMessage=await this.config.templateRenderer.renderTemplate(r,e,s,i),t.txtMessage=n?await this.config.templateRenderer.renderTemplate(n,e):null,t}async fillEmailBodyAndSend(t,e,r,n=null,s=null,i=null){const o=await this.fillEmailBody(t,e,r,n,s,i);return await this.sendEmail(o)}filterEmailsToValid(t){return(t||[]).filter((t=>{if(this.config.allowedDestinationEmails&&0!=this.config.allowedDestinationEmails.length){return!!this.config.allowedDestinationEmails.find((e=>e.test(t)))}return!0}))}async archiveEmailIfConfigured(t,e){let r=null;if(t&&this.config.provider.archiveEmail&&!t.doNotArchive){y.debug("Archiving outbound email to : %j",t.destinationAddresses);try{r={raw:await this.config.provider.archiveEmail(t,e),error:null,meta:{}}}catch(e){y.warn("Failed to archive email %j : %s",t,e),r={raw:null,error:M.safeStringifyErr(e),meta:{}}}}return r}applyLimitsToBodySizesIfAnyInPlace(t){if(this.config.maxMessageBodySizeInBytes){const e=p.trimToEmpty(t.txtMessage).length+p.trimToEmpty(t.htmlMessage).length;if(e>this.config.maxMessageBodySizeInBytes){if(y.warn("Max message size is %d but size is %d - converting",this.config.maxMessageBodySizeInBytes,e),t.attachments=t.attachments||[],p.trimToNull(t.txtMessage)){const e={filename:"original-txt-body.txt",contentType:"text/plain",base64Data:x.generateBase64VersionOfString(t.txtMessage)};t.attachments.push(e)}if(p.trimToNull(t.htmlMessage)){const e={filename:"original-html-body.html",contentType:"text/html",base64Data:x.generateBase64VersionOfString(t.htmlMessage)};t.attachments.push(e)}t.htmlMessage=null,t.txtMessage="The message was too large and was converted to attachment(s). Please see attached files for content"}}}applyLimitsToAttachmentSizesIfAnyInPlace(t){if(this.config.maxAttachmentSizeInBase64Bytes){const e=[];t.attachments&&t.attachments.forEach((t=>{t.base64Data&&t.base64Data.length<this.config.maxAttachmentSizeInBase64Bytes?e.push(t):(y.warn("Removing too-large attachment : %s : %s : %d",t.filename,t.contentType,t.base64Data.length),e.push({filename:"attachment-removed-notice-"+p.createRandomHexString(4)+".txt",contentType:"text/plain",base64Data:x.generateBase64VersionOfString("Attachment "+t.filename+" of type "+t.contentType+" was removed since it was "+t.base64Data.length+" bytes but max allowed is "+this.config.maxAttachmentSizeInBase64Bytes)}))})),t.attachments=e}}async sendEmail(t){f.notNullOrUndefined(t,"RTS must be defined"),f.notNullOrUndefined(t.destinationAddresses,"Destination addresses must be defined");let e=null;const r=await this.resolveReadyToSendEmail(t);try{const n=await this.config.provider.sendEmail(r);e={request:t,resolved:r,success:!0,rawResult:n,error:null,meta:{},archiveResults:await this.archiveEmailIfConfigured(r,n)}}catch(n){e={request:t,resolved:r,success:!1,rawResult:null,error:M.safeStringifyErr(n),meta:{},archiveResults:null}}return e}async resolveReadyToSendEmail(t){f.notNullOrUndefined(t,"RTS must be defined"),f.notNullOrUndefined(t.destinationAddresses,"Destination addresses must be defined");let e=this.filterEmailsToValid(t.destinationAddresses);const r=t.doNotAutoBcc?[]:this.config.autoBccAddresses||[],n=(t.bccAddresses||[]).concat(r);0===e.length&&n.length>0&&(y.debug("Destination emails filtered to none but BCC defined, copying BCC"),e=n);const s=Object.assign({},t);return s.srcDestinationAddresses=t.destinationAddresses,s.srcBccAddresses=t.bccAddresses,s.destinationAddresses=e,s.bccAddresses=n,this.applyLimitsToBodySizesIfAnyInPlace(s),this.applyLimitsToAttachmentSizesIfAnyInPlace(s),0===s.destinationAddresses.length&&y.info("After cleaning email lists, no destination addresses left - not sending email"),s.fromAddress=s.fromAddress||this.config.defaultSendingAddress,s}}class Y{failEmails;constructor(t=[]){this.failEmails=t}async sendEmail(t){return y.info("Called send email : %j",t),this.failEmails&&this.failEmails.forEach((e=>{if(t?.destinationAddresses?.includes(e))throw M.fErr("Forced-fail email address: %s",e)})),"OK"}async archiveEmail(t){return y.info("Called archive email : %j",t),this.failEmails&&this.failEmails.forEach((e=>{if(t?.destinationAddresses?.includes(e))throw M.fErr("Forced-fail email address: %s",e)})),"OK"}}class X{static LOCAL_IP=null;static findLocalIp(t=!0){return y.info("Attempting to find local IP (V 2)"),X.LOCAL_IP&&t?Promise.resolve(X.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&&X.grepSDP("a="+e.candidate.candidate,n,t)},r.createOffer((function(e){X.grepSDP(e.sdp,n,t),r.setLocalDescription(e)}),(function(e){y.warn("Offer failed : %s",e),t(X.updateLocalIP("FIND_UNSUPPORTED"))}))}else y.warn("IP Address find not supported on this device"),t(X.updateLocalIP("FIND_UNSUPPORTED"))}catch(e){y.warn("Error finding local ip address : %s",e),t(X.updateLocalIP("ERROR"))}})):(y.warn("Window not found, cannot calculate local ip"),Promise.resolve(X.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 X.LOCAL_IP=t,X.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]&&X.updateAddressList(s,e,r)}else if(~t.indexOf("c=")){const n=t.split(" ")[2];X.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(X.updateLocalIP(n[0]));else{const t=n.sort().join(",");y.warn("Multiple addresses found, returning sorted join : %s",t),r(X.updateLocalIP(t))}}}class ${currentIp="UNSET";constructor(){X.findLocalIp(!1).then((t=>{y.info("Setting local IP to %s",t),this.currentIp=t})).catch((t=>{y.warn("Unable to set current IP - leaving as UNSET : %s",t)}))}ready(){return"UNSET"!==this.currentIp}currentLocalIpAddress(){return this.currentIp}}class Q{fixed;constructor(t){this.fixed=t}currentLocalIpAddress(){return this.fixed}}class tt extends Error{static RATCHET_RESTFUL_API_HTTP_ERROR_FLAG_KEY="__ratchetRestfulApiHttpErrorFlag";_httpStatusCode=500;_errors;_detailErrorCode;_endUserErrors;_details;_requestId;_wrappedError;constructor(...t){super(tt.combineErrorStringsWithDefault(t)),Object.setPrototypeOf(this,tt.prototype),this._errors=t,this[tt.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=tt.objectIsRestfulApiHttpError(t)?t:new tt(t.message).withWrappedError(t).withHttpStatusCode(500),e}static objectIsRestfulApiHttpError(t){return t&&!0===t[tt.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=tt.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&&tt.objectIsRestfulApiHttpError(t)){const n=t,s=b.safeNumber(n.httpStatusCode),i=100*e;r=s>=i&&s<=i+99}return r}static errorIs40x(t){return tt.errorIsX0x(t,4)}static errorIs50x(t){return tt.errorIsX0x(t,5)}}class et{static GOOGLE_VERIFY_URL="https://www.google.com/recaptcha/api/siteverify?secret={{KEY}}&response={{TOKEN}}";static async verifyRecaptchaToken(t,e,r=i){y.debug("Verifying recaptcha token : %s",e);let n=null;if(!p.safeString(e))return y.warn("Recaptcha validation error, no token passed : %s",e),n;y.info("Validating Recaptcha via Google API : %s",e);let s=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){y.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,f.notNullOrUndefined(t,"accountSid"),f.notNullOrUndefined(e,"authToken"),f.notNullOrUndefined(r,"outBoundNumber"),f.true(rt.isValidE164Number(r),"outBoundNumber invalid format")}static async sendMessageDirect(t,e,r,n,s){const i=new rt(t,e,r);return await i.sendMessage(n,s)}static generateTwilioBasicAuth(t,e){return"Basic "+x.generateBase64VersionOfString(t+":"+e)}async sendMessage(t,e){const r=[];if(f.notNullOrUndefined(t,"recipientPhoneNumbers"),f.notNullOrUndefined(p.trimToNull(e),"message"),f.true(t.length>0,"recipientPhoneNumbers non-empty"),t&&t.length>0&&p.trimToNull(e)){y.info("Sending %s to %j",e,t);for(let n=0;n<t.length;n++){const s=t[n];if(y.info("To: %s",s),!rt.isValidE164Number(s))throw new Error("number must be E164 format!");const o="Body="+encodeURIComponent(e)+"&From="+encodeURIComponent(this.outBoundNumber)+"&To="+encodeURIComponent(s),a={method:"post",headers:{authorization:rt.generateTwilioBasicAuth(this.accountSid,this.authToken),"Content-Type":"application/x-www-form-urlencoded"},body:o},l=await i(rt.TWILLIO_BASE_API_URL+"/Accounts/"+this.accountSid+"/Messages.json",a),c=await l.json();y.debug("TwilioRatchet: For %s got %j",s,c),r.push(c)}}else y.warn("Not sending empty message / empty recipients");return r}static isValidE164Number(t){return/^\+?[1-9]\d{1,14}$/.test(t)}}class nt{accountSid;authToken;serviceSid;static TWILLIO_BASE_VERIFY_URL="https://verify.twilio.com/v2/Services/";constructor(t,e,r){this.accountSid=t,this.authToken=e,this.serviceSid=r,f.notNullUndefinedOrOnlyWhitespaceString(t,"accountSid"),f.notNullUndefinedOrOnlyWhitespaceString(e,"authToken"),f.notNullUndefinedOrOnlyWhitespaceString(r,"serviceSid")}async sendVerificationTokenUsingTwilioVerify(t){f.notNullUndefinedOrOnlyWhitespaceString(t,"recipientPhoneNumber"),f.true(rt.isValidE164Number(t),"recipientPhoneNumber must be E164");const e=t.startsWith("+1")?t:"+1"+t,r="Channel=sms&To="+encodeURIComponent(e),n={method:"post",headers:{authorization:rt.generateTwilioBasicAuth(this.accountSid,this.authToken),"Content-Type":"application/x-www-form-urlencoded"},body:r},s=nt.TWILLIO_BASE_VERIFY_URL+this.serviceSid+"/Verifications",o=await i(s,n);return await o.text()}async simpleCheckVerificationTokenUsingTwilioVerify(t,e){const r=await this.checkVerificationTokenUsingTwilioVerify(t,e);return r&&"approved"===r.status}async checkVerificationTokenUsingTwilioVerify(t,e){f.notNullUndefinedOrOnlyWhitespaceString(t,"recipientPhoneNumber"),f.true(rt.isValidE164Number(t),"recipientPhoneNumber must be E164");const r=t.startsWith("+1")?t:"+1"+t,n="To="+encodeURIComponent(r)+"&Code="+encodeURIComponent(e),s={method:"post",headers:{authorization:rt.generateTwilioBasicAuth(this.accountSid,this.authToken),"Content-Type":"application/x-www-form-urlencoded"},body:n},o=nt.TWILLIO_BASE_VERIFY_URL+this.serviceSid+"/VerificationCheck";y.info("Using %s / %j",o,s);const a=await i(o,s);return await a.json()}}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=b.safeNumber(t);null!==e&&(n=e)}return n}}}static camelToSnakeCase(){return{transform(t,e,r){let n=t;return"string"==typeof t&&(n=t.replace(/\.?([A-Z]+)/g,(function(t,e){return"_"+e.toLowerCase()})).replace(/^_/,"")),n}}}static concatenateToNewField(t,e,r=!0){return{transform(n,s,i){if("object"==typeof n){let s="";e.forEach((t=>{if(null!=s){const e=n[t];s=null==e&&r?null:null==e?s:s+String(e)}})),null!=s&&(n[t]=s,e.forEach((t=>delete n[t])))}return n}}}static numberToBool(t){return{transform:(e,r,n)=>("object"==typeof e&&t.forEach((t=>{const r=e[t];if("number"==typeof r){const n=0!=r;e[t]=n}})),e)}}static boolToNumber(t){return{transform:(e,r,n)=>("object"==typeof e&&t.forEach((t=>{const r=e[t];if("boolean"==typeof r){const n=r?1:0;e[t]=n}})),e)}}static makeDuplicateField(t,e){return{transform(r,n,s){if("object"==typeof r){const n=r[t];null!=n&&(r[e]=n)}return r}}}static addField(t,e){return{transform:(r,n,s)=>("object"==typeof r&&(r[t]=e),r)}}static reformatDateFields(t,e,n){return{transform:(s,i,o)=>("object"==typeof s&&t.forEach((t=>{const i=s[t];if(null!=i)try{const o=r.fromFormat(i,e).toFormat(n);s[t]=o}catch(t){y.warn("Failed to reparse date %s in format %s : %s",i,e,t)}})),s)}}}class it{static transform(t,e=[]){return it.transformGeneric(t,e,!1,null)}static transformGeneric(t,e=[],r,n){let s=null;const i=typeof t;switch(i){case"undefined":case"symbol":case"function":s=t;break;case"number":case"string":case"boolean":s=it.applyTransformToPrimitive(t,e,r,n);break;case"object":s=it.applyTransformToObject(t,e,r,n);break;default:throw new Error("Unrecognized type "+i)}return s}static applyTransformToObject(t,e=[],r,n=null){y.silly("Tranform: %j, %s, %j",t,r,n);let s=null;return null!=t&&(Array.isArray(t)?(s=[],t.forEach((n=>{const i=it.transformGeneric(n,e,r,t);null!=i&&s.push(i)}))):(s={},Object.keys(t).forEach((r=>{const n=t[r],i=it.applyTransformToPrimitive(r,e,!0,t);if(null!=i){let r=it.transformGeneric(n,e,!1,t);r=it.applyTransformToPrimitive(r,e,!1,t),null!=r&&(s[i]=r)}})),s=it.applyTransformToPrimitive(s,e,!1,t))),s}static applyTransformToPrimitive(t,e=[],r,n){let s=t;return e.forEach((t=>{s=null==s?null:t.transform(s,r,n)})),s}}const ot={Success:"Success",RolledBack:"RolledBack",RollbackFailed:"RollbackFailed"};class at{static async execute(t,e,r){f.notNullOrUndefined(t,"steps"),f.notNullOrUndefined(e,"initialContext"),f.true(t.length>0,"steps may not be empty");const n=Object.assign({},r||{});n.stepLogLevel=n.stepLogLevel||o.info;const s={finalContext:e,finalState:null},i=t.map(((t,e)=>t.name||"Step "+e));y.info("Beginning transaction of %d steps",t.length);let a=0;do{y.logByLevel(n.stepLogLevel,"Processing step %d of %d (%s)",a+1,t.length,i[a]);try{await t[a].execute(s.finalContext,a),a++}catch(t){y.error("Failure detected on step %d : %s : %s : Rolling back",a,i[a],t,t),s.error=t,s.errorStep=a}}while(!s.error&&a<t.length);if(s.error)do{y.logByLevel(n.stepLogLevel,"Rolling back step %d of %d (%s)",a+1,t.length,i[a]);try{t[a].rollback?await t[a].rollback(s.finalContext,a):y.info("Skipping - no rollback defined")}catch(t){y.error("Very bad - rollback code failed on step %d : %s : Aborting in invalid state: %s",a,i[a],t,t),s.rollbackError=t,s.rollbackErrorStep=a}a--}while(a>=0);if(s.finalState=s.rollbackError?ot.RollbackFailed:s.error?ot.RolledBack:ot.Success,y.info("Transaction completed with status : %s",s.finalState),n?.executeAfterRollback&&s.finalState!==ot.Success)try{y.info("Applying executeAfterRollback"),await n.executeAfterRollback(s)}catch(t){y.error("Very bad - failure in executeAfterRollback : %s",t,t)}if(n?.executeAfterRollbackFailure&&s.finalState!==ot.Success)try{y.info("Applying executeAfterRollbackFailure"),await n.executeAfterRollbackFailure(s)}catch(t){y.error("Very bad - failure in executeAfterRollbackFailure : %s",t,t)}return s}}export{N as ArrayRatchet,x as Base64Ratchet,E as BooleanRatchet,$ as BrowserLocalIpProvider,st as BuiltInTransforms,d as ClassicSingleLineLogMessageFormatter,I as CompositeLastSuccessProvider,v as DateRatchet,_ as DurationRatchet,P as EnumRatchet,M as ErrorRatchet,R as EsmRatchet,O as ExpiredJwtHandling,C as ExpiringObject,B as ExpiringObjectConfig,Q as FixedLocalIpProvider,U as GeolocationRatchet,D as GlobalRatchet,et as GoogleRecaptchaRatchet,T as Histogram,L as JwtRatchet,F as KeyValue,J as LogMessageBuilder,u as LogMessageFormatType,y as Logger,m as LoggerInstance,o as LoggerLevelName,l as LoggerOutputFunction,a as LoggerRingBuffer,c as LoggerUtil,q as Mailer,Z as MailerUtil,A as MapRatchet,X as NetworkRatchet,j as No,h as NoneLogMessageFormatter,b as NumberRatchet,G as PromiseRatchet,S as Ratchet2d,w as RatchetInfo,f as RequireRatchet,tt as RestfulApiHttpError,z as SortRatchet,k as StopWatch,p as StringRatchet,g as StructuredJsonLogMessageFormatter,Y as TestMailSendingProvider,W as TimeZoneRatchet,V as TimeoutToken,ot as TransactionFinalState,at as TransactionRatchet,it as TransformRatchet,rt as TwilioRatchet,nt as TwilioVerifyRatchet,K as Uint8ArrayRatchet,H as WebStreamRatchet};
|
|
2
2
|
//# sourceMappingURL=index.mjs.map
|
package/lib/index.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.mjs","sources":["../src/logger/logger-level-name.ts","../src/logger/logger-ring-buffer.ts","../src/logger/logger-output-function.ts","../src/logger/logger-util.ts","../src/logger/log-message-format-type.ts","../src/logger/classic-single-line-log-message-formatter.ts","../src/logger/none-log-message-formatter.ts","../src/logger/structured-json-log-message-formatter.ts","../src/lang/require-ratchet.ts","../src/lang/string-ratchet.ts","../src/logger/logger-instance.ts","../src/logger/logger.ts","../src/lang/number-ratchet.ts","../src/lang/boolean-ratchet.ts","../src/2d/ratchet-2d.ts","../src/build/ratchet-common-info.ts","../src/histogram/histogram.ts","../src/jwt/expired-jwt-handling.ts","../src/lang/duration-ratchet.ts","../src/jwt/jwt-ratchet.ts","../src/lang/error-ratchet.ts","../src/lang/map-ratchet.ts","../src/lang/array-ratchet.ts","../src/lang/base64-ratchet.ts","../src/lang/composite-last-success-provider.ts","../src/lang/date-ratchet.ts","../src/lang/enum-ratchet.ts","../src/lang/esm-ratchet.ts","../src/lang/expiring-object.ts","../src/lang/geolocation-ratchet.ts","../src/lang/global-ratchet.ts","../src/lang/key-value.ts","../src/lang/no.ts","../src/lang/timeout-token.ts","../src/lang/stop-watch.ts","../src/lang/promise-ratchet.ts","../src/lang/sort-ratchet.ts","../src/lang/time-zone-ratchet.ts","../src/lang/uint-8-array-ratchet.ts","../src/lang/web-stream-ratchet.ts","../src/logger/log-message-builder.ts","../src/mail/mailer-util.ts","../src/mail/mailer.ts","../src/mail/test-mail-sending-provider.ts","../src/network/network-ratchet.ts","../src/network/browser-local-ip-provider.ts","../src/network/fixed-local-ip-provider.ts","../src/network/restful-api-http-error.ts","../src/third-party/google/google-recaptcha-ratchet.ts","../src/third-party/twilio/twilio-ratchet.ts","../src/third-party/twilio/twilio-verify-ratchet.ts","../src/transform/built-in-transforms.ts","../src/transform/transform-ratchet.ts","../src/tx/transaction-final-state.ts","../src/tx/transaction-ratchet.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],"names":["LoggerLevelName","error","warn","info","verbose","debug","silly","LoggerRingBuffer","_lastLogMessage","messageSource","timestamp","Date","getTime","lvl","_buffer","_bufferIdx","_lastSnapshotIdx","_bufferSize","constructor","size","Error","this","currentIndex","lastSnapshotIdx","bufferSize","newSize","clearRingBuffer","getMessages","inStartFrom","clear","reverseSort","rval","start","slice","firstIdx","i","Math","max","push","reverse","takeSnapshot","trailingEdge","messages","logMessagesTruncated","getLastLogMessage","Object","assign","addToRingBuffer","newMsg","LoggerOutputFunction","Console","ConsoleNoDebug","StdOut","LoggerUtil","static","handlerFunctionMap","outputFn","output","Map","process","stdout","write","myStdOut","chunk","cb","set","console","log","defaultHandlerFunction","levelIsEnabled","targetLevel","currentEnabled","idxTarget","LOG_LEVELS_IN_ORDER","indexOf","LogMessageFormatType","ClassicSingleLine","StructuredJson","None","ClassicSingleLineLogMessageFormatter","formatMessage","msg","meta","tmp","options","trace","util","format","subsVars","NoneLogMessageFormatter","StructuredJsonLogMessageFormatter","globalVars","params","toISOString","loggerInstanceName","loggerInstanceId","JSON","stringify","RequireRatchet","isNullOrUndefined","ob","is","undefined","notNullOrUndefined","name","notNullUndefinedOrOnlyWhitespaceString","trim","notNullUndefinedOrEmptyArray","length","equal","ob1","ob2","message","noNullOrUndefinedValuesInArray","arr","expectedLength","customMsg","noNullOrUndefinedValuesInRestArgs","restArgs","constructorArgumentsMatchLengthAndAreNonNull","args","Array","from","arguments","len","StringRatchet","DIGITS","UPPER_CASE_LATIN","LOWER_CASE_LATIN","stringIsInGivenAlphabet","input","alphabet","includes","charAt","stringToUint8Array","val","TextEncoder","encode","uint8ArrayToString","TextDecoder","decode","attemptJsonParse","trimToNull","parse","err","canParseAsJson","allUnique","check","Set","test","has","add","allPermutationsOfLength","true","step","forEach","s","breakIntoBlocks","blockSize","separator","out","substring","createShortUid","uniquesPerSecond","radix","currentEpoch","floor","now","asHex","parseInt","String","random","toString","createType4Guid","replace","c","r","createRandomHexString","canonicalize","value","toLowerCase","RFC_3986_RESERVED","formatBytes","bytes","decimals","dm","parseFloat","pow","toFixed","safeString","stringContainsOnlyNumbers","stringContainsOnlyAlphanumeric","stringContainsOnlyHex","stringContainsOnly","inVal","validCharsIn","validChars","obscure","prefixLength","suffixLength","pl","sl","rem","leadingZeros","pad","negative","sVal","startsWith","trimToEmpty","x","trimAllStringPropertiesToNullInPlace","trimAllStringPropertiesInPlace","trimAllStringPropertiesToEmptyInPlace","toEmpty","keys","key","stripNonNumeric","csvSafe","split","join","stripNonAscii","reduce","previousValue","currentValue","charCodeAt","replaceAll","src","dst","LoggerInstance","_guid","_loggerMeta","_ringBuffer","_formatter","_level","_handlerFunctionMap","_options","inOptions","addPreProcessor","proc","preProcessors","ringBuffer","dumpConfigurationIntoLog","dumpOptionsIntoLog","labels","map","p","label","guid","changeRingBufferSize","ringBufferSize","updateTracePrefix","newValue","newOpts","formatType","initialLevel","outputFunction","oldId","level","newLevel","consoleLogPassThru","passThruPrefix","unshift","get","createLogMessage","formatMessages","msgs","m","filter","recordMessageBuilder","msgBuild","recordMessage","toMessage","inMsg","errorP","warnP","infoP","verboseP","debugP","sillyP","logByLevel","importMessages","prefixIn","addTimestamp","prefix","mOut","Logger","global","window","applyDefaultsToOptions","DEFAULT_OPTIONS","loggerInstances","GLOBAL_PROVIDER","LOGGER_INSTANCE_MAP_GLOBAL_KEY","changeDefaultOptions","retroactive","values","li","getLogger","loggerName","inst","getRingBuffer","getLevel","setLevel","getOptions","buf","NumberRatchet","ifNotNumber","returnValueForNull","returnValueForUndefined","preParseCharacterMapping","toFixedDecimalNumber","placesAfterPoint","v","safeNumber","MAX_LEADING_ZEROS_FORMAT_LENGTH","between","inTest","inP1","inP2","p1","p2","useDefaultForNullAndUndefined","opts","safeNumberOpt","optionPart","DEFAULT_SAFE_NUMBER_OPTIONS","type","t2","cr","Number","isNaN","numberCSVToList","inputCSV","fitToWindow","b1","b2","low","min","high","windowSize","groupNumbersIntoContiguousRanges","inputData","minRangeSize","sort","a","b","singles","ranges","j","distributeItemsEvenly","items","buckets","offset","loc","createRange","minInclusive","maxExclusive","BooleanRatchet","allTrue","vals","emptyArraysReturn","anyTrue","parseBool","intToBool","boolToInt","Ratchet2d","translateToOriginVector","points","validPoints","y","minimalContainingPlane","width","height","scaleVector","validPlane","samePoint","atLeastOneDimensionShared","plane","validLine","line","validPoint","validLines","lines","l","validPolyLine","pline","pts","polyLineToLines","lastPointOnPolyLine","polyLine","lineToPolyLine","linesToPolyLines","currentPLine","pt","planeContainsPoint","planeContainsPoints","linesToPoints","flat","pointsToLines","rotateRightAboutOrigin90Degrees","times","translate","xToY","mirrorPointsOnPlane","timesToRotate","planeContainsLines","planeContainsPolyLine","planeContainsLine","xlate","mirrorX","mirrorY","transformPointsToNewPlane","scale","rightToLeft","topToBottom","transformPointToNewPlane","point","transformLines","fitCurve","curveDef","inputX","idx","xSpread","ySpread","yAdd","RatchetInfo","buildInformation","version","hash","branch","tag","timeBuiltISO","notes","Histogram","entries","update","addValue","entry","find","e","item","count","localeCompare","sortKeys","getEntries","getTotalCount","h","countForValue","percentForValue","total","ExpiredJwtHandling","DurationRatchet","formatMsDuration","ms","includeMS","rem_ms","seconds","minutes","hours","days","f","colonFormatMsDuration","daysBetween","d1","d2","DateTime","fromJSDate","diff","createSteps","startEpochMS","endEpochMS","timezone","outputFormat","stepUnit","curDate","fromMillis","setZone","endDate","toFormat","plus","JwtRatchet","_encryptionKeyPromise","_decryptKeysPromise","_jtiGenerator","_decryptOnlyKeyUseLogLevel","_parseFailureLogLevel","encryptionKeyPromise","decryptKeysPromise","jtiGenerator","decryptOnlyKeyUseLogLevel","parseFailureLogLevel","hasExpiredFlag","EXPIRED_FLAG_NAME","invalidSafeDecode","payloadString","decryptKey","logLevel","jwt","verify","ignoreExpiration","secondsRemainingUntilExpiration","decodeTokenNoVerify","nowSecond","exp","expSeconds","msRemainingUntilExpiration","secs","decodeToken","expiredHandling","encKeys","encryptionKeyArray","decKeys","concat","keysTried","payload","nowSeconds","nbfSeconds","nbf","age","encKey","isArray","selectRandomEncryptionKey","createTokenString","expirationSeconds","overrideEncryptionKey","jti","expires","sign","refreshJWTString","tokenString","allowExpired","handling","originalDurationSeconds","iat","newExpirationSeconds","removeJwtFields","removeExpiredFlag","token","k","ErrorRatchet","safeStringifyErr","err2","asErr","fErr","throwFormattedErr","MapRatchet","expandNestedKeysToObjects","path","target","splice","mapByUniqueProperty","propName","groupByProperty","findValue","toSearch","findValueDotPath","dotPath","simpleDeepCompare","object1","object2","toKeyValueList","returnArray","fromKeyValueList","list","cleanup","obj","stripZero","stripNull","stripUndefined","stripEmptyString","o","extractValueFromMapIgnoreCase","finder","newVal","safeCallFunction","fnName","caseInsensitiveAccess","keyName","keyNameCI","ArrayRatchet","wrapElementsInArray","compareTwoArrays","ar1","ar2","fn","id1","id2","matching","setOneOnly","setTwoOnly","aVal","pVal","comp","extractSubarrayFromSortedByNumberField","fieldDotPath","bottomIdx","findSplit","topIdx","bottomValue","curIdx","curVal","Base64Ratchet","safeObjectToBase64JSON","generateBase64VersionOfString","safeBase64JSONParse","base64StringToString","generateBase64VersionOfBlob","blob","Promise","resolve","reject","reader","FileReader","onloadend","result","readAsDataURL","generateBase64VersionOfUint8Array","uint8ArrayToBase64String","base64StringToUint8Array","b64encoded","base64StringToBytes","encoding","getBase64Code","charCode","BASE64_CODES","code","uint8ArrayToBase64UrlString","BASE64_ABC","str","index","missingOctets","endsWith","n","Uint8Array","buffer","subarray","base64UrlStringToBytes","dec","encodeStringToBase64String","encoder","encodeStringToBase64UrlString","decodeBase64StringToString","decoder","decodeBase64UrlStringToString","CompositeLastSuccessProvider","sources","mostRecent","mostRecentSrc","lastSuccess","DateRatchet","formatFullDate","FULL_DATE_FORMAT","formatDefaultDateOnly","DEFAULT_DATE_FORMAT","parseDefaultDate","fromFormat","toJSDate","parseCommonUsDate","templ","COMMON_US_DATE_FORMAT","EnumRatchet","listEnumKeys","enumeration","$enum","getValues","keyToEnum","caseSensitive","asValueOrDefault","mKey","toUpperCase","parseCsvToEnumArray","EsmRatchet","fetchDirName","root","url","fileURLToPath","URL","fetchFileName","ExpiringObject","_config","_cacheObject","_lastUpdatedEpochMS","_timeRemainingMS","inputConfig","defaultConfig","overrideTimeRemainingMS","timeToLiveMS","initialValue","defaultTimeRemainingMS","generator","lastUpdatedEpochMS","ageMS","doNotUpdateClock","fetchCacheObjectTimeRemainingMS","fetch","ExpiringObjectConfig","GeolocationRatchet","distanceBetweenLocations","lat1","lon1","lat2","lon2","unit","uU","radlat1","PI","radlat2","theta","radtheta","dist","sin","cos","acos","distanceBetweenRatchetGeoLocations","loc1","loc2","lat","lng","degreeOfLatLngInMiles","latitudeInDecimalDegress","latInRads","cosLat","milesInDegLatLng","miles","centerOfBounds","bounds","extent","origin","calculateSplits","slices","field","splits","clusterGeoBounds","inputVal","latSlices","lngSlices","lngSplits","lngStartIdx","lngEndIdx","lngBatch","latSplits","latStartIdx","latEndIdx","latBatch","combineBounds","canonicalizeBounds","inp","allowCrossover","minLat","maxLat","minLng","maxLng","roundLocation","roundDigits","locationToBounds","radiusMiles","sameLocation","pointInBounds","bound","pointInAnyBound","inBounds","minPointsBeforeMapping","mp","buildRatchetLocationBoundsMap","pointInRatchetLocationBoundsMap","findRatchetLocationBoundsMapEntry","latOffset","lngOffset","ltIdx","trunc","lngIdx","mapping","latEntries","lngEntries","newRow","row","GlobalRatchet","fetchGlobalRecord","returnNullOnNone","env","fetchGlobalVar","envVar","setGlobalVar","KeyValue","No","op","TimeoutToken","title","timeoutMS","__timeoutTokenFlagField","writeToLog","isTimeoutToken","StopWatch","createTime","_createTime","starts","ends","_label","_labelIncludedInOutput","withLabel","withLabelIncludedInOutput","labelIncludedInOutput","stop","reset","delete","hasTimer","shortForm","dump","logExpected","pctComplete","dumpExpected","timerNames","dumpAll","outs","cleanName","end","elapsedMS","remainMS","expectedRemainingMS","PromiseRatchet","resolveOnEvent","evtSrc","okEvtNames","errEvtNames","res","rej","on","timeout","srcPromise","race","createTimeoutPromise","id","setTimeout","clearTimeout","wait","time","dumpResult","autoDebug","exit","dumpError","logErrorAndReturnNull","runPromiseAndDump","promise","then","catch","waitFor","testFunction","expectedValue","intervalMS","maxCycles","runBoundedParallel","promiseFn","context","maxConcurrent","sw","remain","ctx","processed","totalCount","curBatch","proms","apply","all","pct","runBoundedParallelSingleParam","wrappedParams","asyncForEachSerial","array","callback","asyncForEachParallel","SortRatchet","sortNullToTop","bothNonNullSort","nullSafeSort","sortNullToBottom","nullsOnTop","Infinity","sortNumericStringsAsNumbers","sortNonNumbersToTop","an","bn","ax","bx","TimeZoneRatchet","timezoneIanaName","ianaName","currentHour","local","hour","toEpochSeconds","dt","round","toMillis","startOfTodayEpochSeconds","minute","second","millisecond","startOfMatchingDayEpochSeconds","inputTS","startOfMatchingDayEpochMS","startOfCurrentHourEpochSeconds","startOfCurrentMinuteEpochSeconds","startOfCurrentSecondEpochSeconds","startOfTodayEpochMS","dailySlotCount","slotWidthMs","ceil","currentTimeSlotIdx","startOfToday","delta","matchingTimeSlotIdx","startOfCurrentSlotEpochMS","startOfMatchingSlotEpochMS","Uint8ArrayRatchet","mergeArrays","myArrays","deepEqual","arr1","arr2","mismatch","WebStreamRatchet","webReadableStreamToUint8Array","stream","writer","WritableStream","async","controller","abort","reason","highWaterMark","pipeTo","webReadableStreamToString","stringToWebReadableStream","ReadableStream","enqueue","close","LogMessageBuilder","wrapped","clone","subVars","MailerUtil","RegExp","convertResolvedReadyToSendEmailToRaw","rts","destinationAddresses","toLine","bccLine","bccAddresses","fromAddress","boundary","altBoundary","rawMail","subject","htmlMessage","txtMessage","attachments","contentType","filename","base64Data","validEmail","email","EMAIL","Mailer","config","provider","fillEmailBody","htmlTemplateName","txtTemplateName","layoutName","partialNames","templateRenderer","renderTemplate","fillEmailBodyAndSend","sendEmail","filterEmailsToValid","emails","allowedDestinationEmails","archiveEmailIfConfigured","rawSendResult","archiveEmail","doNotArchive","raw","applyLimitsToBodySizesIfAnyInPlace","maxMessageBodySizeInBytes","totalSize","txtAttach","htmlAttach","applyLimitsToAttachmentSizesIfAnyInPlace","maxAttachmentSizeInBase64Bytes","filtered","inRts","resolved","resolveReadyToSendEmail","request","success","rawResult","archiveResults","toAddresses","autoBcc","doNotAutoBcc","autoBccAddresses","srcDestinationAddresses","srcBccAddresses","defaultSendingAddress","TestMailSendingProvider","failEmails","mail","fe","NetworkRatchet","findLocalIp","useCache","LOCAL_IP","RTCPeerConnection","rtc","iceServers","addrs","create","createDataChannel","reliable","onicecandidate","evt","candidate","grepSDP","createOffer","offerDesc","sdp","setLocalDescription","updateLocalIP","parseUrl","href","match","protocol","host","hostname","port","pathname","search","newIp","parts","addr","updateAddressList","newAddr","displayAddrs","multi","BrowserLocalIpProvider","currentIp","ready","currentLocalIpAddress","FixedLocalIpProvider","fixed","RestfulApiHttpError","_httpStatusCode","_errors","_detailErrorCode","_endUserErrors","_details","_requestId","_wrappedError","errors","super","combineErrorStringsWithDefault","setPrototypeOf","prototype","RATCHET_RESTFUL_API_HTTP_ERROR_FLAG_KEY","defMessage","setFormattedErrorMessage","withFormattedErrorMessage","withHttpStatusCode","httpStatusCode","withErrors","withDetailErrorCode","detailErrorCode","withEndUserErrors","endUserErrors","withDetails","details","withRequestId","requestId","withWrappedError","isWrappedError","wrapError","objectIsRestfulApiHttpError","wrappedError","errorIsX0x","errIn","xClass","bot","errorIs40x","errorIs50x","GoogleRecaptchaRatchet","verifyRecaptchaToken","keySecret","fetchFn","GOOGLE_VERIFY_URL","resp","body","json","TwilioRatchet","accountSid","authToken","outBoundNumber","isValidE164Number","sendMessageDirect","recipientPhoneNumbers","ratchet","sendMessage","generateTwilioBasicAuth","sid","phoneNumber","encodeURIComponent","post","method","headers","authorization","TWILLIO_BASE_API_URL","parsedResponse","num","TwilioVerifyRatchet","serviceSid","sendVerificationTokenUsingTwilioVerify","recipientPhoneNumber","phone","TWILLIO_BASE_VERIFY_URL","text","simpleCheckVerificationTokenUsingTwilioVerify","checkVerificationTokenUsingTwilioVerify","status","BuiltInTransforms","keysOnly","rule","transform","isKey","valuesOnly","stringReplaceTransform","stripStringTransform","retainAll","removeAll","snakeToCamelCase","group1","stringToNumber","camelToSnakeCase","concatenateToNewField","newFieldName","oldFieldNamesInOrder","abortIfFieldMissing","temp","numberToBool","fieldNames","oldVal","boolToNumber","makeDuplicateField","oldName","newName","addField","valueToAdd","reformatDateFields","oldFormat","newFormat","oldValue","TransformRatchet","toTransform","rules","transformGeneric","applyTransformToPrimitive","applyTransformToObject","newKey","TransactionFinalState","Success","RolledBack","RollbackFailed","TransactionRatchet","execute","steps","initialContext","inConfiguration","stepLogLevel","finalContext","finalState","stepNames","errorStep","rollback","rollbackError","rollbackErrorStep","executeAfterRollback","executeAfterRollbackFailure"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.mjs","sources":["../src/logger/logger-level-name.ts","../src/logger/logger-ring-buffer.ts","../src/logger/logger-output-function.ts","../src/logger/logger-util.ts","../src/logger/log-message-format-type.ts","../src/logger/classic-single-line-log-message-formatter.ts","../src/logger/none-log-message-formatter.ts","../src/logger/structured-json-log-message-formatter.ts","../src/lang/require-ratchet.ts","../src/lang/string-ratchet.ts","../src/logger/logger-instance.ts","../src/logger/logger.ts","../src/lang/number-ratchet.ts","../src/lang/boolean-ratchet.ts","../src/2d/ratchet-2d.ts","../src/build/ratchet-common-info.ts","../src/histogram/histogram.ts","../src/jwt/expired-jwt-handling.ts","../src/lang/duration-ratchet.ts","../src/jwt/jwt-ratchet.ts","../src/lang/error-ratchet.ts","../src/lang/map-ratchet.ts","../src/lang/array-ratchet.ts","../src/lang/base64-ratchet.ts","../src/lang/composite-last-success-provider.ts","../src/lang/date-ratchet.ts","../src/lang/enum-ratchet.ts","../src/lang/esm-ratchet.ts","../src/lang/expiring-object.ts","../src/lang/geolocation-ratchet.ts","../src/lang/global-ratchet.ts","../src/lang/key-value.ts","../src/lang/no.ts","../src/lang/timeout-token.ts","../src/lang/stop-watch.ts","../src/lang/promise-ratchet.ts","../src/lang/sort-ratchet.ts","../src/lang/time-zone-ratchet.ts","../src/lang/uint-8-array-ratchet.ts","../src/lang/web-stream-ratchet.ts","../src/logger/log-message-builder.ts","../src/mail/mailer-util.ts","../src/mail/mailer.ts","../src/mail/test-mail-sending-provider.ts","../src/network/network-ratchet.ts","../src/network/browser-local-ip-provider.ts","../src/network/fixed-local-ip-provider.ts","../src/network/restful-api-http-error.ts","../src/third-party/google/google-recaptcha-ratchet.ts","../src/third-party/twilio/twilio-ratchet.ts","../src/third-party/twilio/twilio-verify-ratchet.ts","../src/transform/built-in-transforms.ts","../src/transform/transform-ratchet.ts","../src/tx/transaction-final-state.ts","../src/tx/transaction-ratchet.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],"names":["LoggerLevelName","error","warn","info","verbose","debug","silly","LoggerRingBuffer","_lastLogMessage","messageSource","timestamp","Date","getTime","lvl","_buffer","_bufferIdx","_lastSnapshotIdx","_bufferSize","constructor","size","Error","this","currentIndex","lastSnapshotIdx","bufferSize","newSize","clearRingBuffer","getMessages","inStartFrom","clear","reverseSort","rval","start","slice","firstIdx","i","Math","max","push","reverse","takeSnapshot","trailingEdge","messages","logMessagesTruncated","getLastLogMessage","Object","assign","addToRingBuffer","newMsg","LoggerOutputFunction","Console","ConsoleNoDebug","StdOut","LoggerUtil","static","handlerFunctionMap","outputFn","output","Map","process","stdout","write","myStdOut","chunk","cb","set","console","log","defaultHandlerFunction","levelIsEnabled","targetLevel","currentEnabled","idxTarget","LOG_LEVELS_IN_ORDER","indexOf","LogMessageFormatType","ClassicSingleLine","StructuredJson","None","ClassicSingleLineLogMessageFormatter","formatMessage","msg","meta","tmp","options","trace","util","format","subsVars","NoneLogMessageFormatter","StructuredJsonLogMessageFormatter","globalVars","params","toISOString","loggerInstanceName","loggerInstanceId","JSON","stringify","RequireRatchet","isNullOrUndefined","ob","is","undefined","notNullOrUndefined","name","notNullUndefinedOrOnlyWhitespaceString","trim","notNullUndefinedOrEmptyArray","length","equal","ob1","ob2","message","noNullOrUndefinedValuesInArray","arr","expectedLength","customMsg","noNullOrUndefinedValuesInRestArgs","restArgs","constructorArgumentsMatchLengthAndAreNonNull","args","Array","from","arguments","len","StringRatchet","DIGITS","UPPER_CASE_LATIN","LOWER_CASE_LATIN","stringIsInGivenAlphabet","input","alphabet","includes","charAt","stringToUint8Array","val","TextEncoder","encode","uint8ArrayToString","TextDecoder","decode","attemptJsonParse","trimToNull","parse","err","canParseAsJson","allUnique","check","Set","test","has","add","allPermutationsOfLength","true","step","forEach","s","breakIntoBlocks","blockSize","separator","out","substring","createShortUid","uniquesPerSecond","radix","currentEpoch","floor","now","asHex","parseInt","String","random","toString","createType4Guid","replace","c","r","createRandomHexString","canonicalize","value","toLowerCase","RFC_3986_RESERVED","formatBytes","bytes","decimals","dm","parseFloat","pow","toFixed","safeString","stringContainsOnlyNumbers","stringContainsOnlyAlphanumeric","stringContainsOnlyHex","stringContainsOnly","inVal","validCharsIn","validChars","obscure","prefixLength","suffixLength","pl","sl","rem","leadingZeros","pad","negative","sVal","startsWith","trimToEmpty","x","trimAllStringPropertiesToNullInPlace","trimAllStringPropertiesInPlace","trimAllStringPropertiesToEmptyInPlace","toEmpty","keys","key","stripNonNumeric","csvSafe","split","join","stripNonAscii","reduce","previousValue","currentValue","charCodeAt","replaceAll","src","dst","LoggerInstance","_guid","_loggerMeta","_ringBuffer","_formatter","_level","_handlerFunctionMap","_options","inOptions","addPreProcessor","proc","preProcessors","ringBuffer","dumpConfigurationIntoLog","dumpOptionsIntoLog","labels","map","p","label","guid","changeRingBufferSize","ringBufferSize","updateTracePrefix","newValue","newOpts","formatType","initialLevel","outputFunction","oldId","level","newLevel","consoleLogPassThru","passThruPrefix","unshift","get","createLogMessage","formatMessages","msgs","m","filter","recordMessageBuilder","msgBuild","recordMessage","toMessage","inMsg","errorP","warnP","infoP","verboseP","debugP","sillyP","logByLevel","importMessages","prefixIn","addTimestamp","prefix","mOut","Logger","global","window","applyDefaultsToOptions","DEFAULT_OPTIONS","loggerInstances","GLOBAL_PROVIDER","LOGGER_INSTANCE_MAP_GLOBAL_KEY","changeDefaultOptions","retroactive","values","li","getLogger","loggerName","inst","getRingBuffer","getLevel","setLevel","getOptions","buf","NumberRatchet","ifNotNumber","returnValueForNull","returnValueForUndefined","preParseCharacterMapping","toFixedDecimalNumber","placesAfterPoint","v","safeNumber","MAX_LEADING_ZEROS_FORMAT_LENGTH","between","inTest","inP1","inP2","p1","p2","useDefaultForNullAndUndefined","opts","safeNumberOpt","optionPart","DEFAULT_SAFE_NUMBER_OPTIONS","type","t2","cr","Number","isNaN","numberCSVToList","inputCSV","fitToWindow","b1","b2","low","min","high","windowSize","groupNumbersIntoContiguousRanges","inputData","minRangeSize","sort","a","b","singles","ranges","j","distributeItemsEvenly","items","buckets","offset","loc","createRange","minInclusive","maxExclusive","BooleanRatchet","allTrue","vals","emptyArraysReturn","anyTrue","parseBool","intToBool","boolToInt","Ratchet2d","translateToOriginVector","points","validPoints","y","minimalContainingPlane","width","height","scaleVector","validPlane","samePoint","atLeastOneDimensionShared","plane","validLine","line","validPoint","validLines","lines","l","validPolyLine","pline","pts","polyLineToLines","lastPointOnPolyLine","polyLine","lineToPolyLine","linesToPolyLines","currentPLine","pt","planeContainsPoint","planeContainsPoints","linesToPoints","flat","pointsToLines","rotateRightAboutOrigin90Degrees","times","translate","xToY","mirrorPointsOnPlane","timesToRotate","planeContainsLines","planeContainsPolyLine","planeContainsLine","xlate","mirrorX","mirrorY","transformPointsToNewPlane","scale","rightToLeft","topToBottom","transformPointToNewPlane","point","transformLines","fitCurve","curveDef","inputX","idx","xSpread","ySpread","yAdd","RatchetInfo","buildInformation","version","hash","branch","tag","timeBuiltISO","notes","Histogram","entries","update","addValue","entry","find","e","item","count","localeCompare","sortKeys","getEntries","getTotalCount","h","countForValue","percentForValue","total","ExpiredJwtHandling","DurationRatchet","formatMsDuration","ms","includeMS","rem_ms","seconds","minutes","hours","days","f","colonFormatMsDuration","daysBetween","d1","d2","DateTime","fromJSDate","diff","createSteps","startEpochMS","endEpochMS","timezone","outputFormat","stepUnit","curDate","fromMillis","setZone","endDate","toFormat","plus","JwtRatchet","_encryptionKeyPromise","_decryptKeysPromise","_jtiGenerator","_decryptOnlyKeyUseLogLevel","_parseFailureLogLevel","encryptionKeyPromise","decryptKeysPromise","jtiGenerator","decryptOnlyKeyUseLogLevel","parseFailureLogLevel","hasExpiredFlag","EXPIRED_FLAG_NAME","invalidSafeDecode","payloadString","decryptKey","logLevel","jwt","verify","ignoreExpiration","secondsRemainingUntilExpiration","decodeTokenNoVerify","nowSecond","exp","expSeconds","msRemainingUntilExpiration","secs","decodeToken","expiredHandling","encKeys","encryptionKeyArray","decKeys","concat","keysTried","payload","nowSeconds","nbfSeconds","nbf","age","encKey","isArray","selectRandomEncryptionKey","createTokenString","expirationSeconds","overrideEncryptionKey","jti","expires","sign","refreshJWTString","tokenString","allowExpired","handling","originalDurationSeconds","iat","newExpirationSeconds","removeJwtFields","removeExpiredFlag","token","k","ErrorRatchet","safeStringifyErr","err2","asErr","fErr","throwFormattedErr","MapRatchet","expandNestedKeysToObjects","path","target","splice","mapByUniqueProperty","propName","groupByProperty","findValue","toSearch","findValueDotPath","dotPath","simpleDeepCompare","object1","object2","toKeyValueList","returnArray","fromKeyValueList","list","cleanup","obj","stripZero","stripNull","stripUndefined","stripEmptyString","o","extractValueFromMapIgnoreCase","finder","newVal","safeCallFunction","fnName","caseInsensitiveAccess","keyName","keyNameCI","ArrayRatchet","wrapElementsInArray","compareTwoArrays","ar1","ar2","fn","id1","id2","matching","setOneOnly","setTwoOnly","aVal","pVal","comp","extractSubarrayFromSortedByNumberField","fieldDotPath","bottomIdx","findSplit","topIdx","bottomValue","curIdx","curVal","Base64Ratchet","safeObjectToBase64JSON","generateBase64VersionOfString","safeBase64JSONParse","base64StringToString","generateBase64VersionOfBlob","blob","Promise","resolve","reject","reader","FileReader","onloadend","result","readAsDataURL","generateBase64VersionOfUint8Array","uint8ArrayToBase64String","base64StringToUint8Array","b64encoded","base64StringToBytes","encoding","getBase64Code","charCode","BASE64_CODES","code","uint8ArrayToBase64UrlString","BASE64_ABC","str","index","missingOctets","endsWith","n","Uint8Array","buffer","subarray","base64UrlStringToBytes","dec","encodeStringToBase64String","encoder","encodeStringToBase64UrlString","decodeBase64StringToString","decoder","decodeBase64UrlStringToString","CompositeLastSuccessProvider","sources","mostRecent","mostRecentSrc","lastSuccess","DateRatchet","formatFullDate","FULL_DATE_FORMAT","formatDefaultDateOnly","DEFAULT_DATE_FORMAT","parseDefaultDate","fromFormat","toJSDate","parseCommonUsDate","templ","COMMON_US_DATE_FORMAT","EnumRatchet","listEnumKeys","enumeration","$enum","getValues","keyToEnum","caseSensitive","asValueOrDefault","mKey","toUpperCase","parseCsvToEnumArray","EsmRatchet","fetchDirName","root","url","fileURLToPath","URL","fetchFileName","ExpiringObject","_config","_cacheObject","_lastUpdatedEpochMS","_timeRemainingMS","inputConfig","defaultConfig","overrideTimeRemainingMS","timeToLiveMS","initialValue","defaultTimeRemainingMS","generator","lastUpdatedEpochMS","ageMS","doNotUpdateClock","fetchCacheObjectTimeRemainingMS","fetch","ExpiringObjectConfig","GeolocationRatchet","distanceBetweenLocations","lat1","lon1","lat2","lon2","unit","uU","radlat1","PI","radlat2","theta","radtheta","dist","sin","cos","acos","distanceBetweenRatchetGeoLocations","loc1","loc2","lat","lng","degreeOfLatLngInMiles","latitudeInDecimalDegress","latInRads","cosLat","milesInDegLatLng","miles","centerOfBounds","bounds","extent","origin","calculateSplits","slices","field","splits","clusterGeoBounds","inputVal","latSlices","lngSlices","lngSplits","lngStartIdx","lngEndIdx","lngBatch","latSplits","latStartIdx","latEndIdx","latBatch","combineBounds","canonicalizeBounds","inp","allowCrossover","minLat","maxLat","minLng","maxLng","roundLocation","roundDigits","locationToBounds","radiusMiles","sameLocation","pointInBounds","bound","pointInAnyBound","inBounds","minPointsBeforeMapping","mp","buildRatchetLocationBoundsMap","pointInRatchetLocationBoundsMap","findRatchetLocationBoundsMapEntry","latOffset","lngOffset","ltIdx","trunc","lngIdx","mapping","latEntries","lngEntries","newRow","row","GlobalRatchet","fetchGlobalRecord","returnNullOnNone","env","fetchGlobalVar","envVar","setGlobalVar","KeyValue","No","op","TimeoutToken","title","timeoutMS","__timeoutTokenFlagField","setPrototypeOf","prototype","writeToLog","isTimeoutToken","StopWatch","createTime","_createTime","starts","ends","_label","_labelIncludedInOutput","withLabel","withLabelIncludedInOutput","labelIncludedInOutput","stop","reset","delete","hasTimer","shortForm","dump","logExpected","pctComplete","dumpExpected","timerNames","dumpAll","outs","cleanName","end","elapsedMS","remainMS","expectedRemainingMS","PromiseRatchet","resolveOnEvent","evtSrc","okEvtNames","errEvtNames","res","rej","on","timeout","srcPromise","race","createTimeoutPromise","id","setTimeout","clearTimeout","wait","time","dumpResult","autoDebug","exit","dumpError","logErrorAndReturnNull","runPromiseAndDump","promise","then","catch","waitFor","testFunction","expectedValue","intervalMS","maxCycles","runBoundedParallel","promiseFn","context","maxConcurrent","sw","remain","ctx","processed","totalCount","curBatch","proms","apply","all","pct","runBoundedParallelSingleParam","wrappedParams","asyncForEachSerial","array","callback","asyncForEachParallel","SortRatchet","sortNullToTop","bothNonNullSort","nullSafeSort","sortNullToBottom","nullsOnTop","Infinity","sortNumericStringsAsNumbers","sortNonNumbersToTop","an","bn","ax","bx","TimeZoneRatchet","timezoneIanaName","ianaName","currentHour","local","hour","toEpochSeconds","dt","round","toMillis","startOfTodayEpochSeconds","minute","second","millisecond","startOfMatchingDayEpochSeconds","inputTS","startOfMatchingDayEpochMS","startOfCurrentHourEpochSeconds","startOfCurrentMinuteEpochSeconds","startOfCurrentSecondEpochSeconds","startOfTodayEpochMS","dailySlotCount","slotWidthMs","ceil","currentTimeSlotIdx","startOfToday","delta","matchingTimeSlotIdx","startOfCurrentSlotEpochMS","startOfMatchingSlotEpochMS","Uint8ArrayRatchet","mergeArrays","myArrays","deepEqual","arr1","arr2","mismatch","WebStreamRatchet","webReadableStreamToUint8Array","stream","writer","WritableStream","async","controller","abort","reason","highWaterMark","pipeTo","webReadableStreamToString","stringToWebReadableStream","ReadableStream","enqueue","close","LogMessageBuilder","wrapped","clone","subVars","MailerUtil","RegExp","convertResolvedReadyToSendEmailToRaw","rts","destinationAddresses","toLine","bccLine","bccAddresses","fromAddress","boundary","altBoundary","rawMail","subject","htmlMessage","txtMessage","attachments","contentType","filename","base64Data","validEmail","email","EMAIL","Mailer","config","provider","fillEmailBody","htmlTemplateName","txtTemplateName","layoutName","partialNames","templateRenderer","renderTemplate","fillEmailBodyAndSend","sendEmail","filterEmailsToValid","emails","allowedDestinationEmails","archiveEmailIfConfigured","rawSendResult","archiveEmail","doNotArchive","raw","applyLimitsToBodySizesIfAnyInPlace","maxMessageBodySizeInBytes","totalSize","txtAttach","htmlAttach","applyLimitsToAttachmentSizesIfAnyInPlace","maxAttachmentSizeInBase64Bytes","filtered","inRts","resolved","resolveReadyToSendEmail","request","success","rawResult","archiveResults","toAddresses","autoBcc","doNotAutoBcc","autoBccAddresses","srcDestinationAddresses","srcBccAddresses","defaultSendingAddress","TestMailSendingProvider","failEmails","mail","fe","NetworkRatchet","findLocalIp","useCache","LOCAL_IP","RTCPeerConnection","rtc","iceServers","addrs","create","createDataChannel","reliable","onicecandidate","evt","candidate","grepSDP","createOffer","offerDesc","sdp","setLocalDescription","updateLocalIP","parseUrl","href","match","protocol","host","hostname","port","pathname","search","newIp","parts","addr","updateAddressList","newAddr","displayAddrs","multi","BrowserLocalIpProvider","currentIp","ready","currentLocalIpAddress","FixedLocalIpProvider","fixed","RestfulApiHttpError","_httpStatusCode","_errors","_detailErrorCode","_endUserErrors","_details","_requestId","_wrappedError","errors","super","combineErrorStringsWithDefault","RATCHET_RESTFUL_API_HTTP_ERROR_FLAG_KEY","defMessage","setFormattedErrorMessage","withFormattedErrorMessage","withHttpStatusCode","httpStatusCode","withErrors","withDetailErrorCode","detailErrorCode","withEndUserErrors","endUserErrors","withDetails","details","withRequestId","requestId","withWrappedError","isWrappedError","wrapError","objectIsRestfulApiHttpError","wrappedError","errorIsX0x","errIn","xClass","bot","errorIs40x","errorIs50x","GoogleRecaptchaRatchet","verifyRecaptchaToken","keySecret","fetchFn","GOOGLE_VERIFY_URL","resp","body","json","TwilioRatchet","accountSid","authToken","outBoundNumber","isValidE164Number","sendMessageDirect","recipientPhoneNumbers","ratchet","sendMessage","generateTwilioBasicAuth","sid","phoneNumber","encodeURIComponent","post","method","headers","authorization","TWILLIO_BASE_API_URL","parsedResponse","num","TwilioVerifyRatchet","serviceSid","sendVerificationTokenUsingTwilioVerify","recipientPhoneNumber","phone","TWILLIO_BASE_VERIFY_URL","text","simpleCheckVerificationTokenUsingTwilioVerify","checkVerificationTokenUsingTwilioVerify","status","BuiltInTransforms","keysOnly","rule","transform","isKey","valuesOnly","stringReplaceTransform","stripStringTransform","retainAll","removeAll","snakeToCamelCase","group1","stringToNumber","camelToSnakeCase","concatenateToNewField","newFieldName","oldFieldNamesInOrder","abortIfFieldMissing","temp","numberToBool","fieldNames","oldVal","boolToNumber","makeDuplicateField","oldName","newName","addField","valueToAdd","reformatDateFields","oldFormat","newFormat","oldValue","TransformRatchet","toTransform","rules","transformGeneric","applyTransformToPrimitive","applyTransformToObject","newKey","TransactionFinalState","Success","RolledBack","RollbackFailed","TransactionRatchet","execute","steps","initialContext","inConfiguration","stepLogLevel","finalContext","finalState","stepNames","errorStep","rollback","rollbackError","rollbackErrorStep","executeAfterRollback","executeAfterRollbackFailure"],"mappings":"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"}
|