@master4n/temporal-transformer
Advanced tools
| import { EpochValidationError } from '../errors/EpochValidationError.js'; | ||
| import { EpochToDate, DateToEpoch, ParsedDuration, TimezoneOffset, EpochNow, EpochUnit, Result } from '../types/index.js'; | ||
| export declare function safeConvertEpoch(epoch: number, format?: string): Result<EpochToDate, EpochValidationError>; | ||
| export declare function safeConvertDateToEpoch(date: Date, timezone?: string): Result<DateToEpoch, EpochValidationError>; | ||
| export declare function safeConvertEpochToTimezone(epoch: number, timezone: string, format?: string): Result<string, EpochValidationError>; | ||
| export declare function safeParseToEpoch(input: string, format?: string, timezone?: string): Result<DateToEpoch, EpochValidationError>; | ||
| export declare function safeGetDurationBetween(fromEpoch: number, toEpoch: number): Result<ParsedDuration, EpochValidationError>; | ||
| export declare function safeGetTimezoneOffset(timezone: string, epoch?: number): Result<TimezoneOffset, EpochValidationError>; | ||
| export declare function safeGetEpochNow(): Result<EpochNow, EpochValidationError>; | ||
| export declare function safeGetEpochUnit(epoch: number | string): Result<EpochUnit, EpochValidationError>; |
| import { EpochValidationError } from '../errors/EpochValidationError.js'; | ||
| import { EpochToDate, DateToEpoch, ParsedDuration, TimezoneOffset, EpochNow, EpochUnit, Result } from '../types/index.js'; | ||
| export declare function safeConvertEpoch(epoch: number, format?: string): Result<EpochToDate, EpochValidationError>; | ||
| export declare function safeConvertDateToEpoch(date: Date, timezone?: string): Result<DateToEpoch, EpochValidationError>; | ||
| export declare function safeConvertEpochToTimezone(epoch: number, timezone: string, format?: string): Result<string, EpochValidationError>; | ||
| export declare function safeParseToEpoch(input: string, format?: string, timezone?: string): Result<DateToEpoch, EpochValidationError>; | ||
| export declare function safeGetDurationBetween(fromEpoch: number, toEpoch: number): Result<ParsedDuration, EpochValidationError>; | ||
| export declare function safeGetTimezoneOffset(timezone: string, epoch?: number): Result<TimezoneOffset, EpochValidationError>; | ||
| export declare function safeGetEpochNow(): Result<EpochNow, EpochValidationError>; | ||
| export declare function safeGetEpochUnit(epoch: number | string): Result<EpochUnit, EpochValidationError>; |
| import { formatDuration } from '../utils/utility.js'; | ||
| import { EpochToDate, DateToEpoch, ParsedDuration, EpochNow, TimezoneOffset } from '../types/index.js'; | ||
| import { EpochToDate, DateToEpoch, ParsedDuration, EpochNow, TimezoneOffset, EpochUnit } from '../types/index.js'; | ||
| export declare function convertEpoch(epoch: number, format?: string): EpochToDate; | ||
| export declare function convertDateToEpoch(date: Date, timezone?: string): DateToEpoch; | ||
| export declare function convertEpochToTimezone(epoch: number, timezone: string, format?: string): string; | ||
| export declare function getEpochUnit(epoch: number | string): EpochUnit; | ||
| export declare function parseToEpoch(input: string, format?: string, timezone?: string): DateToEpoch; | ||
@@ -7,0 +8,0 @@ export declare function getDurationBetween(fromEpoch: number, toEpoch: number): ParsedDuration; |
@@ -10,3 +10,6 @@ export declare enum EpochError { | ||
| ParseError = "Cannot Parse The Provided Date String", | ||
| RangeError = "Invalid Range: fromEpoch Must Be Less Than Or Equal To toEpoch" | ||
| RangeError = "Invalid Range: fromEpoch Must Be Less Than Or Equal To toEpoch", | ||
| InputTooLong = "Input String Exceeds Maximum Allowed Length", | ||
| FormatTooLong = "Format String Exceeds Maximum Allowed Length", | ||
| ClockOutOfRange = "System Clock Returned A Value Outside JavaScript Date Range" | ||
| } | ||
@@ -13,0 +16,0 @@ export declare class EpochValidationError extends Error { |
@@ -1,2 +0,2 @@ | ||
| "use strict";var o,e=require("moment-timezone");exports.EpochUnit=void 0,(o=exports.EpochUnit||(exports.EpochUnit={})).SECONDS="seconds",o.MILLI_SECONDS="milliseconds",o.MICRO_SECONDS="microseconds",o.NANO_SECONDS="nanoseconds";const r={SECONDS:1e10,MILLI_SECONDS:1e13,MICRO_SECONDS:1e16,NANO_SECONDS:1e19};var t;exports.EpochError=void 0,(t=exports.EpochError||(exports.EpochError={})).UndefinedOrNull="Epoch Is Undefined Or Null",t.NotANumber="Epoch Is Not A Number Or Cannot Be Parsed As A Number",t.OutOfRange="Epoch Is Out Of The Valid Range",t.EpochUnit="Invalid Epoch Unit",t.Empty="Epoch Is Empty",t.DateError="Invalid Date Format Or Value",t.TimezoneError="Unknown Timezone",t.ParseError="Cannot Parse The Provided Date String",t.RangeError="Invalid Range: fromEpoch Must Be Less Than Or Equal To toEpoch";class n extends Error{constructor(o){super(o),this.name="EpochValidationError"}}function s(o){const e=function(o){if(null==o)throw new n(exports.EpochError.UndefinedOrNull);if("string"==typeof o){if(0===o.trim().length)throw new n(exports.EpochError.Empty);const e=Number(o);if(isNaN(e))throw new n(exports.EpochError.NotANumber);o=e}else if("number"!=typeof o)throw new n(exports.EpochError.NotANumber);if(!isFinite(o)||isNaN(o))throw new n(exports.EpochError.NotANumber);if(!Number.isInteger(o)){const e=o.toString(),r=e.indexOf(".");if(-1===r)return Math.round(o);const t=e.length-r-1;o=Math.round(o*Math.pow(10,t))}return o}(o),t=Math.abs(e);let s,i;if(t<r.SECONDS)s=1e3*e,i=exports.EpochUnit.SECONDS;else if(t<r.MILLI_SECONDS)s=e,i=exports.EpochUnit.MILLI_SECONDS;else if(t<r.MICRO_SECONDS)s=Math.floor(e/1e3),i=exports.EpochUnit.MICRO_SECONDS;else{if(!(t<r.NANO_SECONDS))throw new n(exports.EpochError.EpochUnit);s=Math.floor(e/1e6),i=exports.EpochUnit.NANO_SECONDS}return{epochUnit:i,epochInMilliseconds:s}}function i(o){if(!e.tz.names().includes(o))throw new n(exports.EpochError.TimezoneError)}const c=/^[0-9a-zA-Z\s\-\/:.TZ+,()]+$/;exports.EpochValidationError=n,exports.convertDateToEpoch=function(o,r=e.tz.guess()){!function(o){if(!e(o).isValid())throw new n(exports.EpochError.DateError)}(o),i(r);const t=e(o);return{epochInSeconds:t.unix(),epochInMilliseconds:t.valueOf(),dateTimeInGMT:t.tz("Etc/GMT").format("YYYY-MM-DD HH:mm:ss"),dateTime:t.tz(r).format("YYYY-MM-DD HH:mm:ss"),timezone:r}},exports.convertEpoch=function(o,r="YYYY-MM-DD HH:mm:ss.SSSSSS"){const{epochInMilliseconds:t,epochUnit:n}=s(o),i=e(t),c=e.tz.guess();return{timezone:c,dateTime:i.tz(c).format(r),dateTimeInGMT:i.tz("Etc/GMT").format(r),epochUnit:n,epoch:o,relative:function(o){const e=Date.now()-o,r=Math.abs(e)/1e3,t=r/60,n=t/60,s=n/24,i=s/30,c=s/365,a=e<0?" from now":" ago";if(r<=60)return`${Math.floor(r)} seconds${a}`;if(t<=60)return`${Math.floor(t)} minutes${a}`;if(n<=24)return`${Math.floor(n)} hours ${Math.floor(t%60)} minutes${a}`;if(s<=30)return`${Math.floor(s)} days ${Math.floor(n%24)} hours${a}`;if(i<=12)return`${Math.floor(i)} months ${Math.floor(s%30)} days${a}`;return`${Math.floor(c)} years ${Math.floor(s%365/30)} months${a}`}(t)}},exports.convertEpochToTimezone=function(o,r,t="YYYY-MM-DD HH:mm:ss.SSSSSS"){i(r);const{epochInMilliseconds:n}=s(o);return e(n).tz(r).format(t)},exports.formatDuration=function(o){const r=e.duration(Math.abs(o)),t=Math.floor(r.asYears()),n=r.months(),s=r.days(),i=r.hours(),c=r.minutes(),a=r.seconds(),h=[];return t>0&&h.push(`${t} year${1!==t?"s":""}`),n>0&&h.push(`${n} month${1!==n?"s":""}`),s>0&&h.push(`${s} day${1!==s?"s":""}`),i>0&&h.push(`${i} hour${1!==i?"s":""}`),c>0&&h.push(`${c} minute${1!==c?"s":""}`),a>0&&h.push(`${a} second${1!==a?"s":""}`),h.length>0?h.join(", "):"0 seconds"},exports.getDurationBetween=function(o,r){const{epochInMilliseconds:t}=s(o),{epochInMilliseconds:i}=s(r);if(t>i)throw new n(exports.EpochError.RangeError);return function(o,r){const t=r-o,n=e(o),s=e(r),i=s.diff(n,"years"),c=n.clone().add(i,"years"),a=s.diff(c,"months"),h=c.clone().add(a,"months"),p=s.diff(h,"days"),u=h.clone().add(p,"days"),f=s.diff(u,"hours"),d=u.clone().add(f,"hours"),E=s.diff(d,"minutes"),m=d.clone().add(E,"minutes"),l=s.diff(m,"seconds"),M=m.clone().add(l,"seconds");return{years:i,months:a,days:p,hours:f,minutes:E,seconds:l,milliseconds:s.diff(M,"milliseconds"),totalMilliseconds:t,humanReadable:[[i,"year"],[a,"month"],[p,"day"],[f,"hour"],[E,"minute"],[l,"second"]].filter((([o])=>o>0)).map((([o,e])=>`${o} ${e}${1!==o?"s":""}`)).join(", ")||"0 seconds"}}(t,i)},exports.getEpochNow=function(){const o=Date.now();return{seconds:Math.floor(o/1e3),milliseconds:o,iso:new Date(o).toISOString(),timezone:e.tz.guess()}},exports.getTimezoneList=function(){return e.tz.names()},exports.getTimezoneOffset=function(o,r){i(o);const t=r?s(r).epochInMilliseconds:Date.now(),n=e(t).tz(o);return{offset:n.format("Z"),offsetMinutes:n.utcOffset()}},exports.isValidEpoch=function(o){try{return s(o),!0}catch{return!1}},exports.isValidTimezone=function(o){return e.tz.names().includes(o)},exports.parseToEpoch=function(o,r,t=e.tz.guess()){if(!o||0===o.trim().length)throw new n(exports.EpochError.ParseError);if(!c.test(o.trim()))throw new n(exports.EpochError.ParseError);i(t);const s=r?e.tz(o,r,!0,t):e.tz(o,e.ISO_8601,!0,t);if(!s.isValid())throw new n(exports.EpochError.ParseError);return{epochInSeconds:s.unix(),epochInMilliseconds:s.valueOf(),dateTimeInGMT:s.clone().utc().format("YYYY-MM-DD HH:mm:ss"),dateTime:s.format("YYYY-MM-DD HH:mm:ss"),timezone:t}}; | ||
| "use strict";var o,e=require("moment-timezone");exports.EpochUnit=void 0,(o=exports.EpochUnit||(exports.EpochUnit={})).SECONDS="seconds",o.MILLI_SECONDS="milliseconds",o.MICRO_SECONDS="microseconds",o.NANO_SECONDS="nanoseconds";const t={SECONDS:1e10,MILLI_SECONDS:1e13,MICRO_SECONDS:1e16,NANO_SECONDS:1e19},r=864e13,n=-864e13,s=256,i=256;var c;exports.EpochError=void 0,(c=exports.EpochError||(exports.EpochError={})).UndefinedOrNull="Epoch Is Undefined Or Null",c.NotANumber="Epoch Is Not A Number Or Cannot Be Parsed As A Number",c.OutOfRange="Epoch Is Out Of The Valid Range",c.EpochUnit="Invalid Epoch Unit",c.Empty="Epoch Is Empty",c.DateError="Invalid Date Format Or Value",c.TimezoneError="Unknown Timezone",c.ParseError="Cannot Parse The Provided Date String",c.RangeError="Invalid Range: fromEpoch Must Be Less Than Or Equal To toEpoch",c.InputTooLong="Input String Exceeds Maximum Allowed Length",c.FormatTooLong="Format String Exceeds Maximum Allowed Length",c.ClockOutOfRange="System Clock Returned A Value Outside JavaScript Date Range";class a extends Error{constructor(o){super(o),this.name="EpochValidationError"}}function h(o){const e=function(o){if(null==o)throw new a(exports.EpochError.UndefinedOrNull);if("string"==typeof o){if(o.length>s)throw new a(exports.EpochError.InputTooLong);if(0===o.trim().length)throw new a(exports.EpochError.Empty);const e=Number(o);if(isNaN(e))throw new a(exports.EpochError.NotANumber);o=e}else if("number"!=typeof o)throw new a(exports.EpochError.NotANumber);if(!isFinite(o)||isNaN(o))throw new a(exports.EpochError.NotANumber);if(!Number.isInteger(o)){const e=o.toString(),t=e.indexOf(".");if(-1===t)return Math.round(o);const r=e.length-t-1;o=Math.round(o*Math.pow(10,r))}return o}(o),r=Math.abs(e);let n,i;if(r<t.SECONDS)n=1e3*e,i=exports.EpochUnit.SECONDS;else if(r<t.MILLI_SECONDS)n=e,i=exports.EpochUnit.MILLI_SECONDS;else if(r<t.MICRO_SECONDS)n=Math.floor(e/1e3),i=exports.EpochUnit.MICRO_SECONDS;else{if(!(r<t.NANO_SECONDS))throw new a(exports.EpochError.EpochUnit);n=Math.floor(e/1e6),i=exports.EpochUnit.NANO_SECONDS}return{epochUnit:i,epochInMilliseconds:n}}function p(o){if(!e.tz.names().includes(o))throw new a(exports.EpochError.TimezoneError)}function u(o){if(o.length>i)throw new a(exports.EpochError.FormatTooLong)}function f(o){return Object.freeze(o)}function E(o,t="YYYY-MM-DD HH:mm:ss.SSSSSS"){u(t);const{epochInMilliseconds:r,epochUnit:n}=h(o),s=e(r),i=e.tz.guess()||"UTC";return f({timezone:i,dateTime:s.tz(i).format(t),dateTimeInGMT:s.tz("Etc/GMT").format(t),epochUnit:n,epoch:o,relative:function(o){const e=Date.now()-o,t=Math.abs(e)/1e3,r=t/60,n=r/60,s=n/24,i=s/30,c=s/365,a=e<0?" from now":" ago";if(t<=60)return`${Math.floor(t)} seconds${a}`;if(r<=60)return`${Math.floor(r)} minutes${a}`;if(n<=24)return`${Math.floor(n)} hours ${Math.floor(r%60)} minutes${a}`;if(s<=30)return`${Math.floor(s)} days ${Math.floor(n%24)} hours${a}`;if(i<=12)return`${Math.floor(i)} months ${Math.floor(s%30)} days${a}`;return`${Math.floor(c)} years ${Math.floor(s%365/30)} months${a}`}(r)})}function l(o,t=e.tz.guess()||"UTC"){!function(o){if(!e(o).isValid())throw new a(exports.EpochError.DateError)}(o),p(t);const r=e(o);return f({epochInSeconds:r.unix(),epochInMilliseconds:r.valueOf(),dateTimeInGMT:r.tz("Etc/GMT").format("YYYY-MM-DD HH:mm:ss"),dateTime:r.tz(t).format("YYYY-MM-DD HH:mm:ss"),timezone:t})}function d(o,t,r="YYYY-MM-DD HH:mm:ss.SSSSSS"){u(r),p(t);const{epochInMilliseconds:n}=h(o);return e(n).tz(t).format(r)}function m(o){return h(o).epochUnit}const M=/^[0-9a-zA-Z\s\-\/:.TZ+,()]+$/;function x(o,t,r=e.tz.guess()||"UTC"){if(null==o||"string"!=typeof o)throw new a(exports.EpochError.ParseError);if(o.length>s)throw new a(exports.EpochError.InputTooLong);const n=o.trim();if(0===n.length)throw new a(exports.EpochError.ParseError);if(!M.test(n))throw new a(exports.EpochError.ParseError);void 0!==t&&u(t),p(r);const i=t?e.tz(o,t,!0,r):e.tz(o,e.ISO_8601,!0,r);if(!i.isValid())throw new a(exports.EpochError.ParseError);return f({epochInSeconds:i.unix(),epochInMilliseconds:i.valueOf(),dateTimeInGMT:i.clone().utc().format("YYYY-MM-DD HH:mm:ss"),dateTime:i.format("YYYY-MM-DD HH:mm:ss"),timezone:r})}function S(o,t){const{epochInMilliseconds:r}=h(o),{epochInMilliseconds:n}=h(t);if(r>n)throw new a(exports.EpochError.RangeError);return f(function(o,t){const r=t-o,n=e(o),s=e(t),i=s.diff(n,"years"),c=n.clone().add(i,"years"),a=s.diff(c,"months"),h=c.clone().add(a,"months"),p=s.diff(h,"days"),u=h.clone().add(p,"days"),f=s.diff(u,"hours"),E=u.clone().add(f,"hours"),l=s.diff(E,"minutes"),d=E.clone().add(l,"minutes"),m=s.diff(d,"seconds"),M=d.clone().add(m,"seconds");return{years:i,months:a,days:p,hours:f,minutes:l,seconds:m,milliseconds:s.diff(M,"milliseconds"),totalMilliseconds:r,humanReadable:[[i,"year"],[a,"month"],[p,"day"],[f,"hour"],[l,"minute"],[m,"second"]].filter((([o])=>o>0)).map((([o,e])=>`${o} ${e}${1!==o?"s":""}`)).join(", ")||"0 seconds"}}(r,n))}function N(o,t){p(o);const r=t?h(t).epochInMilliseconds:Date.now(),n=e(r).tz(o);return f({offset:n.format("Z"),offsetMinutes:n.utcOffset()})}function O(){const o=Date.now();if(!isFinite(o)||o<n||o>r)throw new a(exports.EpochError.ClockOutOfRange);let t;try{t=e.tz.guess()||"UTC"}catch{t="UTC"}return f({seconds:Math.floor(o/1e3),milliseconds:o,iso:new Date(o).toISOString(),timezone:t})}function w(o){try{return{ok:!0,value:o()}}catch(o){if(o instanceof a)return{ok:!1,error:o};throw o}}exports.EpochThreshold=t,exports.EpochValidationError=a,exports.MAX_EPOCH_MS=r,exports.MAX_FORMAT_STRING_LENGTH=i,exports.MAX_INPUT_STRING_LENGTH=s,exports.MIN_EPOCH_MS=n,exports.convertDateToEpoch=l,exports.convertEpoch=E,exports.convertEpochToTimezone=d,exports.formatDuration=function(o){const t=e.duration(Math.abs(o)),r=Math.floor(t.asYears()),n=t.months(),s=t.days(),i=t.hours(),c=t.minutes(),a=t.seconds(),h=[];return r>0&&h.push(`${r} year${1!==r?"s":""}`),n>0&&h.push(`${n} month${1!==n?"s":""}`),s>0&&h.push(`${s} day${1!==s?"s":""}`),i>0&&h.push(`${i} hour${1!==i?"s":""}`),c>0&&h.push(`${c} minute${1!==c?"s":""}`),a>0&&h.push(`${a} second${1!==a?"s":""}`),h.length>0?h.join(", "):"0 seconds"},exports.getDurationBetween=S,exports.getEpochNow=O,exports.getEpochUnit=m,exports.getTimezoneList=function(){return[...e.tz.names()]},exports.getTimezoneOffset=N,exports.isValidEpoch=function(o){try{return h(o),!0}catch{return!1}},exports.isValidTimezone=function(o){return e.tz.names().includes(o)},exports.parseToEpoch=x,exports.safeConvertDateToEpoch=function(o,e){return w((()=>l(o,e)))},exports.safeConvertEpoch=function(o,e){return w((()=>E(o,e)))},exports.safeConvertEpochToTimezone=function(o,e,t){return w((()=>d(o,e,t)))},exports.safeGetDurationBetween=function(o,e){return w((()=>S(o,e)))},exports.safeGetEpochNow=function(){return w((()=>O()))},exports.safeGetEpochUnit=function(o){return w((()=>m(o)))},exports.safeGetTimezoneOffset=function(o,e){return w((()=>N(o,e)))},exports.safeParseToEpoch=function(o,e,t){return w((()=>x(o,e,t)))}; | ||
| //# sourceMappingURL=index.cjs.map |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"index.cjs","sources":["../../src/types/index.ts","../../src/errors/EpochValidationError.ts","../../src/utils/validations.ts","../../src/epoch/convertor.ts","../../src/utils/utility.ts"],"sourcesContent":[null,null,null,null,null],"names":["EpochUnit","EpochThreshold","SECONDS","MILLI_SECONDS","MICRO_SECONDS","NANO_SECONDS","EpochError","EpochValidationError","Error","constructor","message","super","this","name","getEpochUnitAndEpochInMiliseconds","epoch","validEpoch","UndefinedOrNull","trim","length","Empty","parsed","Number","isNaN","NotANumber","isFinite","isInteger","str","toString","dotIndex","indexOf","Math","round","fractionLength","pow","validateEpoch","absoluteEpoch","abs","epochInMilliseconds","epochUnit","floor","validTimezone","timezone","moment","tz","names","includes","TimezoneError","DATE_INPUT_RE","date","guess","isValid","DateError","validateMomentDate","dateMoment","epochInSeconds","unix","valueOf","dateTimeInGMT","format","dateTime","relative","epochMillis","diffMillis","Date","now","diffSeconds","diffMinutes","diffHours","diffDays","diffMonths","diffYears","suffix","getRelativeTimeDifference","milliseconds","d","duration","years","asYears","months","days","hours","minutes","seconds","segments","push","join","fromEpoch","toEpoch","fromMs","toMs","RangeError","totalMs","from","to","diff","afterYears","clone","add","afterMonths","afterDays","afterHours","afterMinutes","afterSeconds","totalMilliseconds","humanReadable","filter","v","map","label","parseDuration","iso","toISOString","ms","m","offset","offsetMinutes","utcOffset","input","ParseError","test","ISO_8601","utc"],"mappings":"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"} | ||
| {"version":3,"file":"index.cjs","sources":["../../src/types/index.ts","../../src/errors/EpochValidationError.ts","../../src/utils/validations.ts","../../src/epoch/convertor.ts","../../src/utils/utility.ts","../../src/epoch/safe.ts"],"sourcesContent":[null,null,null,null,null,null],"names":["EpochUnit","EpochThreshold","SECONDS","MILLI_SECONDS","MICRO_SECONDS","NANO_SECONDS","MAX_EPOCH_MS","MIN_EPOCH_MS","MAX_INPUT_STRING_LENGTH","MAX_FORMAT_STRING_LENGTH","EpochError","EpochValidationError","Error","constructor","message","super","this","name","getEpochUnitAndEpochInMiliseconds","epoch","validEpoch","UndefinedOrNull","length","InputTooLong","trim","Empty","parsed","Number","isNaN","NotANumber","isFinite","isInteger","str","toString","dotIndex","indexOf","Math","round","fractionLength","pow","validateEpoch","absoluteEpoch","abs","epochInMilliseconds","epochUnit","floor","validTimezone","timezone","moment","tz","names","includes","TimezoneError","assertFormatLength","format","FormatTooLong","freeze","o","Object","convertEpoch","date","guess","dateTime","dateTimeInGMT","relative","epochMillis","diffMillis","Date","now","diffSeconds","diffMinutes","diffHours","diffDays","diffMonths","diffYears","suffix","getRelativeTimeDifference","convertDateToEpoch","isValid","DateError","validateMomentDate","dateMoment","epochInSeconds","unix","valueOf","convertEpochToTimezone","getEpochUnit","DATE_INPUT_RE","parseToEpoch","input","ParseError","trimmed","test","undefined","ISO_8601","clone","utc","getDurationBetween","fromEpoch","toEpoch","fromMs","toMs","RangeError","totalMs","from","to","years","diff","afterYears","add","months","afterMonths","days","afterDays","hours","afterHours","minutes","afterMinutes","seconds","afterSeconds","milliseconds","totalMilliseconds","humanReadable","filter","v","map","label","join","parseDuration","getTimezoneOffset","ms","m","offset","offsetMinutes","utcOffset","getEpochNow","ClockOutOfRange","iso","toISOString","wrap","fn","ok","value","e","error","d","duration","asYears","segments","push"],"mappings":"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"} |
@@ -1,4 +0,5 @@ | ||
| export { EpochToDate, DateToEpoch, EpochUnit, DurationUnit, StartEndUnit, ParsedDuration, EpochNow, TimezoneOffset, } from './types/index.js'; | ||
| export { EpochToDate, DateToEpoch, EpochUnit, EpochThreshold, DurationUnit, StartEndUnit, ParsedDuration, EpochNow, TimezoneOffset, Result, MAX_EPOCH_MS, MIN_EPOCH_MS, MAX_INPUT_STRING_LENGTH, MAX_FORMAT_STRING_LENGTH, } from './types/index.js'; | ||
| export { EpochError, EpochValidationError } from './errors/EpochValidationError.js'; | ||
| export { isValidEpoch, isValidTimezone } from './utils/validations.js'; | ||
| export * from './epoch/convertor.js'; | ||
| export * from './epoch/safe.js'; |
@@ -51,1 +51,14 @@ export declare enum EpochUnit { | ||
| } | ||
| export declare const MAX_EPOCH_MS = 8640000000000000; | ||
| export declare const MIN_EPOCH_MS = -8640000000000000; | ||
| export declare const MAX_INPUT_STRING_LENGTH = 256; | ||
| export declare const MAX_FORMAT_STRING_LENGTH = 256; | ||
| export type Result<T, E = Error> = { | ||
| ok: true; | ||
| value: T; | ||
| error?: never; | ||
| } | { | ||
| ok: false; | ||
| value?: never; | ||
| error: E; | ||
| }; |
| import { formatDuration } from '../utils/utility.js'; | ||
| import { EpochToDate, DateToEpoch, ParsedDuration, EpochNow, TimezoneOffset } from '../types/index.js'; | ||
| import { EpochToDate, DateToEpoch, ParsedDuration, EpochNow, TimezoneOffset, EpochUnit } from '../types/index.js'; | ||
| export declare function convertEpoch(epoch: number, format?: string): EpochToDate; | ||
| export declare function convertDateToEpoch(date: Date, timezone?: string): DateToEpoch; | ||
| export declare function convertEpochToTimezone(epoch: number, timezone: string, format?: string): string; | ||
| export declare function getEpochUnit(epoch: number | string): EpochUnit; | ||
| export declare function parseToEpoch(input: string, format?: string, timezone?: string): DateToEpoch; | ||
@@ -7,0 +8,0 @@ export declare function getDurationBetween(fromEpoch: number, toEpoch: number): ParsedDuration; |
@@ -10,3 +10,6 @@ export declare enum EpochError { | ||
| ParseError = "Cannot Parse The Provided Date String", | ||
| RangeError = "Invalid Range: fromEpoch Must Be Less Than Or Equal To toEpoch" | ||
| RangeError = "Invalid Range: fromEpoch Must Be Less Than Or Equal To toEpoch", | ||
| InputTooLong = "Input String Exceeds Maximum Allowed Length", | ||
| FormatTooLong = "Format String Exceeds Maximum Allowed Length", | ||
| ClockOutOfRange = "System Clock Returned A Value Outside JavaScript Date Range" | ||
| } | ||
@@ -13,0 +16,0 @@ export declare class EpochValidationError extends Error { |
+2
-1
@@ -1,4 +0,5 @@ | ||
| export { EpochToDate, DateToEpoch, EpochUnit, DurationUnit, StartEndUnit, ParsedDuration, EpochNow, TimezoneOffset, } from './types/index.js'; | ||
| export { EpochToDate, DateToEpoch, EpochUnit, EpochThreshold, DurationUnit, StartEndUnit, ParsedDuration, EpochNow, TimezoneOffset, Result, MAX_EPOCH_MS, MIN_EPOCH_MS, MAX_INPUT_STRING_LENGTH, MAX_FORMAT_STRING_LENGTH, } from './types/index.js'; | ||
| export { EpochError, EpochValidationError } from './errors/EpochValidationError.js'; | ||
| export { isValidEpoch, isValidTimezone } from './utils/validations.js'; | ||
| export * from './epoch/convertor.js'; | ||
| export * from './epoch/safe.js'; |
+1
-1
@@ -1,2 +0,2 @@ | ||
| import n from"moment-timezone";var e;!function(n){n.SECONDS="seconds",n.MILLI_SECONDS="milliseconds",n.MICRO_SECONDS="microseconds",n.NANO_SECONDS="nanoseconds"}(e||(e={}));const o={SECONDS:1e10,MILLI_SECONDS:1e13,MICRO_SECONDS:1e16,NANO_SECONDS:1e19};var t;!function(n){n.UndefinedOrNull="Epoch Is Undefined Or Null",n.NotANumber="Epoch Is Not A Number Or Cannot Be Parsed As A Number",n.OutOfRange="Epoch Is Out Of The Valid Range",n.EpochUnit="Invalid Epoch Unit",n.Empty="Epoch Is Empty",n.DateError="Invalid Date Format Or Value",n.TimezoneError="Unknown Timezone",n.ParseError="Cannot Parse The Provided Date String",n.RangeError="Invalid Range: fromEpoch Must Be Less Than Or Equal To toEpoch"}(t||(t={}));class r extends Error{constructor(n){super(n),this.name="EpochValidationError"}}function s(n){const s=function(n){if(null==n)throw new r(t.UndefinedOrNull);if("string"==typeof n){if(0===n.trim().length)throw new r(t.Empty);const e=Number(n);if(isNaN(e))throw new r(t.NotANumber);n=e}else if("number"!=typeof n)throw new r(t.NotANumber);if(!isFinite(n)||isNaN(n))throw new r(t.NotANumber);if(!Number.isInteger(n)){const e=n.toString(),o=e.indexOf(".");if(-1===o)return Math.round(n);const t=e.length-o-1;n=Math.round(n*Math.pow(10,t))}return n}(n),i=Math.abs(s);let a,c;if(i<o.SECONDS)a=1e3*s,c=e.SECONDS;else if(i<o.MILLI_SECONDS)a=s,c=e.MILLI_SECONDS;else if(i<o.MICRO_SECONDS)a=Math.floor(s/1e3),c=e.MICRO_SECONDS;else{if(!(i<o.NANO_SECONDS))throw new r(t.EpochUnit);a=Math.floor(s/1e6),c=e.NANO_SECONDS}return{epochUnit:c,epochInMilliseconds:a}}function i(e){if(!n.tz.names().includes(e))throw new r(t.TimezoneError)}function a(n){try{return s(n),!0}catch{return!1}}function c(e){return n.tz.names().includes(e)}function u(e){const o=n.duration(Math.abs(e)),t=Math.floor(o.asYears()),r=o.months(),s=o.days(),i=o.hours(),a=o.minutes(),c=o.seconds(),u=[];return t>0&&u.push(`${t} year${1!==t?"s":""}`),r>0&&u.push(`${r} month${1!==r?"s":""}`),s>0&&u.push(`${s} day${1!==s?"s":""}`),i>0&&u.push(`${i} hour${1!==i?"s":""}`),a>0&&u.push(`${a} minute${1!==a?"s":""}`),c>0&&u.push(`${c} second${1!==c?"s":""}`),u.length>0?u.join(", "):"0 seconds"}function f(e,o="YYYY-MM-DD HH:mm:ss.SSSSSS"){const{epochInMilliseconds:t,epochUnit:r}=s(e),i=n(t),a=n.tz.guess();return{timezone:a,dateTime:i.tz(a).format(o),dateTimeInGMT:i.tz("Etc/GMT").format(o),epochUnit:r,epoch:e,relative:function(n){const e=Date.now()-n,o=Math.abs(e)/1e3,t=o/60,r=t/60,s=r/24,i=s/30,a=s/365,c=e<0?" from now":" ago";if(o<=60)return`${Math.floor(o)} seconds${c}`;if(t<=60)return`${Math.floor(t)} minutes${c}`;if(r<=24)return`${Math.floor(r)} hours ${Math.floor(t%60)} minutes${c}`;if(s<=30)return`${Math.floor(s)} days ${Math.floor(r%24)} hours${c}`;if(i<=12)return`${Math.floor(i)} months ${Math.floor(s%30)} days${c}`;return`${Math.floor(a)} years ${Math.floor(s%365/30)} months${c}`}(t)}}function h(e,o=n.tz.guess()){!function(e){if(!n(e).isValid())throw new r(t.DateError)}(e),i(o);const s=n(e);return{epochInSeconds:s.unix(),epochInMilliseconds:s.valueOf(),dateTimeInGMT:s.tz("Etc/GMT").format("YYYY-MM-DD HH:mm:ss"),dateTime:s.tz(o).format("YYYY-MM-DD HH:mm:ss"),timezone:o}}function d(e,o,t="YYYY-MM-DD HH:mm:ss.SSSSSS"){i(o);const{epochInMilliseconds:r}=s(e);return n(r).tz(o).format(t)}const m=/^[0-9a-zA-Z\s\-\/:.TZ+,()]+$/;function l(e,o,s=n.tz.guess()){if(!e||0===e.trim().length)throw new r(t.ParseError);if(!m.test(e.trim()))throw new r(t.ParseError);i(s);const a=o?n.tz(e,o,!0,s):n.tz(e,n.ISO_8601,!0,s);if(!a.isValid())throw new r(t.ParseError);return{epochInSeconds:a.unix(),epochInMilliseconds:a.valueOf(),dateTimeInGMT:a.clone().utc().format("YYYY-MM-DD HH:mm:ss"),dateTime:a.format("YYYY-MM-DD HH:mm:ss"),timezone:s}}function M(e,o){const{epochInMilliseconds:i}=s(e),{epochInMilliseconds:a}=s(o);if(i>a)throw new r(t.RangeError);return function(e,o){const t=o-e,r=n(e),s=n(o),i=s.diff(r,"years"),a=r.clone().add(i,"years"),c=s.diff(a,"months"),u=a.clone().add(c,"months"),f=s.diff(u,"days"),h=u.clone().add(f,"days"),d=s.diff(h,"hours"),m=h.clone().add(d,"hours"),l=s.diff(m,"minutes"),M=m.clone().add(l,"minutes"),S=s.diff(M,"seconds"),E=M.clone().add(S,"seconds");return{years:i,months:c,days:f,hours:d,minutes:l,seconds:S,milliseconds:s.diff(E,"milliseconds"),totalMilliseconds:t,humanReadable:[[i,"year"],[c,"month"],[f,"day"],[d,"hour"],[l,"minute"],[S,"second"]].filter((([n])=>n>0)).map((([n,e])=>`${n} ${e}${1!==n?"s":""}`)).join(", ")||"0 seconds"}}(i,a)}function S(e,o){i(e);const t=o?s(o).epochInMilliseconds:Date.now(),r=n(t).tz(e);return{offset:r.format("Z"),offsetMinutes:r.utcOffset()}}function E(){return n.tz.names()}function N(){const e=Date.now();return{seconds:Math.floor(e/1e3),milliseconds:e,iso:new Date(e).toISOString(),timezone:n.tz.guess()}}export{t as EpochError,e as EpochUnit,r as EpochValidationError,h as convertDateToEpoch,f as convertEpoch,d as convertEpochToTimezone,u as formatDuration,M as getDurationBetween,N as getEpochNow,E as getTimezoneList,S as getTimezoneOffset,a as isValidEpoch,c as isValidTimezone,l as parseToEpoch}; | ||
| import n from"moment-timezone";var e;!function(n){n.SECONDS="seconds",n.MILLI_SECONDS="milliseconds",n.MICRO_SECONDS="microseconds",n.NANO_SECONDS="nanoseconds"}(e||(e={}));const t={SECONDS:1e10,MILLI_SECONDS:1e13,MICRO_SECONDS:1e16,NANO_SECONDS:1e19},o=864e13,r=-864e13,s=256,i=256;var u;!function(n){n.UndefinedOrNull="Epoch Is Undefined Or Null",n.NotANumber="Epoch Is Not A Number Or Cannot Be Parsed As A Number",n.OutOfRange="Epoch Is Out Of The Valid Range",n.EpochUnit="Invalid Epoch Unit",n.Empty="Epoch Is Empty",n.DateError="Invalid Date Format Or Value",n.TimezoneError="Unknown Timezone",n.ParseError="Cannot Parse The Provided Date String",n.RangeError="Invalid Range: fromEpoch Must Be Less Than Or Equal To toEpoch",n.InputTooLong="Input String Exceeds Maximum Allowed Length",n.FormatTooLong="Format String Exceeds Maximum Allowed Length",n.ClockOutOfRange="System Clock Returned A Value Outside JavaScript Date Range"}(u||(u={}));class c extends Error{constructor(n){super(n),this.name="EpochValidationError"}}function a(n){const o=function(n){if(null==n)throw new c(u.UndefinedOrNull);if("string"==typeof n){if(n.length>s)throw new c(u.InputTooLong);if(0===n.trim().length)throw new c(u.Empty);const e=Number(n);if(isNaN(e))throw new c(u.NotANumber);n=e}else if("number"!=typeof n)throw new c(u.NotANumber);if(!isFinite(n)||isNaN(n))throw new c(u.NotANumber);if(!Number.isInteger(n)){const e=n.toString(),t=e.indexOf(".");if(-1===t)return Math.round(n);const o=e.length-t-1;n=Math.round(n*Math.pow(10,o))}return n}(n),r=Math.abs(o);let i,a;if(r<t.SECONDS)i=1e3*o,a=e.SECONDS;else if(r<t.MILLI_SECONDS)i=o,a=e.MILLI_SECONDS;else if(r<t.MICRO_SECONDS)i=Math.floor(o/1e3),a=e.MICRO_SECONDS;else{if(!(r<t.NANO_SECONDS))throw new c(u.EpochUnit);i=Math.floor(o/1e6),a=e.NANO_SECONDS}return{epochUnit:a,epochInMilliseconds:i}}function f(e){if(!n.tz.names().includes(e))throw new c(u.TimezoneError)}function h(n){try{return a(n),!0}catch{return!1}}function l(e){return n.tz.names().includes(e)}function d(e){const t=n.duration(Math.abs(e)),o=Math.floor(t.asYears()),r=t.months(),s=t.days(),i=t.hours(),u=t.minutes(),c=t.seconds(),a=[];return o>0&&a.push(`${o} year${1!==o?"s":""}`),r>0&&a.push(`${r} month${1!==r?"s":""}`),s>0&&a.push(`${s} day${1!==s?"s":""}`),i>0&&a.push(`${i} hour${1!==i?"s":""}`),u>0&&a.push(`${u} minute${1!==u?"s":""}`),c>0&&a.push(`${c} second${1!==c?"s":""}`),a.length>0?a.join(", "):"0 seconds"}function m(n){if(n.length>i)throw new c(u.FormatTooLong)}function M(n){return Object.freeze(n)}function S(e,t="YYYY-MM-DD HH:mm:ss.SSSSSS"){m(t);const{epochInMilliseconds:o,epochUnit:r}=a(e),s=n(o),i=n.tz.guess()||"UTC";return M({timezone:i,dateTime:s.tz(i).format(t),dateTimeInGMT:s.tz("Etc/GMT").format(t),epochUnit:r,epoch:e,relative:function(n){const e=Date.now()-n,t=Math.abs(e)/1e3,o=t/60,r=o/60,s=r/24,i=s/30,u=s/365,c=e<0?" from now":" ago";if(t<=60)return`${Math.floor(t)} seconds${c}`;if(o<=60)return`${Math.floor(o)} minutes${c}`;if(r<=24)return`${Math.floor(r)} hours ${Math.floor(o%60)} minutes${c}`;if(s<=30)return`${Math.floor(s)} days ${Math.floor(r%24)} hours${c}`;if(i<=12)return`${Math.floor(i)} months ${Math.floor(s%30)} days${c}`;return`${Math.floor(u)} years ${Math.floor(s%365/30)} months${c}`}(o)})}function p(e,t=n.tz.guess()||"UTC"){!function(e){if(!n(e).isValid())throw new c(u.DateError)}(e),f(t);const o=n(e);return M({epochInSeconds:o.unix(),epochInMilliseconds:o.valueOf(),dateTimeInGMT:o.tz("Etc/GMT").format("YYYY-MM-DD HH:mm:ss"),dateTime:o.tz(t).format("YYYY-MM-DD HH:mm:ss"),timezone:t})}function E(e,t,o="YYYY-MM-DD HH:mm:ss.SSSSSS"){m(o),f(t);const{epochInMilliseconds:r}=a(e);return n(r).tz(t).format(o)}function O(n){return a(n).epochUnit}const w=/^[0-9a-zA-Z\s\-\/:.TZ+,()]+$/;function N(e,t,o=n.tz.guess()||"UTC"){if(null==e||"string"!=typeof e)throw new c(u.ParseError);if(e.length>s)throw new c(u.InputTooLong);const r=e.trim();if(0===r.length)throw new c(u.ParseError);if(!w.test(r))throw new c(u.ParseError);void 0!==t&&m(t),f(o);const i=t?n.tz(e,t,!0,o):n.tz(e,n.ISO_8601,!0,o);if(!i.isValid())throw new c(u.ParseError);return M({epochInSeconds:i.unix(),epochInMilliseconds:i.valueOf(),dateTimeInGMT:i.clone().utc().format("YYYY-MM-DD HH:mm:ss"),dateTime:i.format("YYYY-MM-DD HH:mm:ss"),timezone:o})}function I(e,t){const{epochInMilliseconds:o}=a(e),{epochInMilliseconds:r}=a(t);if(o>r)throw new c(u.RangeError);return M(function(e,t){const o=t-e,r=n(e),s=n(t),i=s.diff(r,"years"),u=r.clone().add(i,"years"),c=s.diff(u,"months"),a=u.clone().add(c,"months"),f=s.diff(a,"days"),h=a.clone().add(f,"days"),l=s.diff(h,"hours"),d=h.clone().add(l,"hours"),m=s.diff(d,"minutes"),M=d.clone().add(m,"minutes"),S=s.diff(M,"seconds"),p=M.clone().add(S,"seconds");return{years:i,months:c,days:f,hours:l,minutes:m,seconds:S,milliseconds:s.diff(p,"milliseconds"),totalMilliseconds:o,humanReadable:[[i,"year"],[c,"month"],[f,"day"],[l,"hour"],[m,"minute"],[S,"second"]].filter((([n])=>n>0)).map((([n,e])=>`${n} ${e}${1!==n?"s":""}`)).join(", ")||"0 seconds"}}(o,r))}function D(e,t){f(e);const o=t?a(t).epochInMilliseconds:Date.now(),r=n(o).tz(e);return M({offset:r.format("Z"),offsetMinutes:r.utcOffset()})}function g(){return[...n.tz.names()]}function $(){const e=Date.now();if(!isFinite(e)||e<r||e>o)throw new c(u.ClockOutOfRange);let t;try{t=n.tz.guess()||"UTC"}catch{t="UTC"}return M({seconds:Math.floor(e/1e3),milliseconds:e,iso:new Date(e).toISOString(),timezone:t})}function C(n){try{return{ok:!0,value:n()}}catch(n){if(n instanceof c)return{ok:!1,error:n};throw n}}function T(n,e){return C((()=>S(n,e)))}function z(n,e){return C((()=>p(n,e)))}function Y(n,e,t){return C((()=>E(n,e,t)))}function y(n,e,t){return C((()=>N(n,e,t)))}function L(n,e){return C((()=>I(n,e)))}function U(n,e){return C((()=>D(n,e)))}function A(){return C((()=>$()))}function b(n){return C((()=>O(n)))}export{u as EpochError,t as EpochThreshold,e as EpochUnit,c as EpochValidationError,o as MAX_EPOCH_MS,i as MAX_FORMAT_STRING_LENGTH,s as MAX_INPUT_STRING_LENGTH,r as MIN_EPOCH_MS,p as convertDateToEpoch,S as convertEpoch,E as convertEpochToTimezone,d as formatDuration,I as getDurationBetween,$ as getEpochNow,O as getEpochUnit,g as getTimezoneList,D as getTimezoneOffset,h as isValidEpoch,l as isValidTimezone,N as parseToEpoch,z as safeConvertDateToEpoch,T as safeConvertEpoch,Y as safeConvertEpochToTimezone,L as safeGetDurationBetween,A as safeGetEpochNow,b as safeGetEpochUnit,U as safeGetTimezoneOffset,y as safeParseToEpoch}; | ||
| //# sourceMappingURL=index.js.map |
+1
-1
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"index.js","sources":["../../src/types/index.ts","../../src/errors/EpochValidationError.ts","../../src/utils/validations.ts","../../src/utils/utility.ts","../../src/epoch/convertor.ts"],"sourcesContent":[null,null,null,null,null],"names":["EpochUnit","EpochThreshold","SECONDS","MILLI_SECONDS","MICRO_SECONDS","NANO_SECONDS","EpochError","EpochValidationError","Error","constructor","message","super","this","name","getEpochUnitAndEpochInMiliseconds","epoch","validEpoch","UndefinedOrNull","trim","length","Empty","parsed","Number","isNaN","NotANumber","isFinite","isInteger","str","toString","dotIndex","indexOf","Math","round","fractionLength","pow","validateEpoch","absoluteEpoch","abs","epochInMilliseconds","epochUnit","floor","validTimezone","timezone","moment","tz","names","includes","TimezoneError","isValidEpoch","isValidTimezone","formatDuration","milliseconds","d","duration","years","asYears","months","days","hours","minutes","seconds","segments","push","join","convertEpoch","format","date","guess","dateTime","dateTimeInGMT","relative","epochMillis","diffMillis","Date","now","diffSeconds","diffMinutes","diffHours","diffDays","diffMonths","diffYears","suffix","getRelativeTimeDifference","convertDateToEpoch","isValid","DateError","validateMomentDate","dateMoment","epochInSeconds","unix","valueOf","convertEpochToTimezone","DATE_INPUT_RE","parseToEpoch","input","ParseError","test","ISO_8601","clone","utc","getDurationBetween","fromEpoch","toEpoch","fromMs","toMs","RangeError","totalMs","from","to","diff","afterYears","add","afterMonths","afterDays","afterHours","afterMinutes","afterSeconds","totalMilliseconds","humanReadable","filter","v","map","label","parseDuration","getTimezoneOffset","ms","m","offset","offsetMinutes","utcOffset","getTimezoneList","getEpochNow","iso","toISOString"],"mappings":"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"} | ||
| {"version":3,"file":"index.js","sources":["../../src/types/index.ts","../../src/errors/EpochValidationError.ts","../../src/utils/validations.ts","../../src/utils/utility.ts","../../src/epoch/convertor.ts","../../src/epoch/safe.ts"],"sourcesContent":[null,null,null,null,null,null],"names":["EpochUnit","EpochThreshold","SECONDS","MILLI_SECONDS","MICRO_SECONDS","NANO_SECONDS","MAX_EPOCH_MS","MIN_EPOCH_MS","MAX_INPUT_STRING_LENGTH","MAX_FORMAT_STRING_LENGTH","EpochError","EpochValidationError","Error","constructor","message","super","this","name","getEpochUnitAndEpochInMiliseconds","epoch","validEpoch","UndefinedOrNull","length","InputTooLong","trim","Empty","parsed","Number","isNaN","NotANumber","isFinite","isInteger","str","toString","dotIndex","indexOf","Math","round","fractionLength","pow","validateEpoch","absoluteEpoch","abs","epochInMilliseconds","epochUnit","floor","validTimezone","timezone","moment","tz","names","includes","TimezoneError","isValidEpoch","isValidTimezone","formatDuration","milliseconds","d","duration","years","asYears","months","days","hours","minutes","seconds","segments","push","join","assertFormatLength","format","FormatTooLong","freeze","o","Object","convertEpoch","date","guess","dateTime","dateTimeInGMT","relative","epochMillis","diffMillis","Date","now","diffSeconds","diffMinutes","diffHours","diffDays","diffMonths","diffYears","suffix","getRelativeTimeDifference","convertDateToEpoch","isValid","DateError","validateMomentDate","dateMoment","epochInSeconds","unix","valueOf","convertEpochToTimezone","getEpochUnit","DATE_INPUT_RE","parseToEpoch","input","ParseError","trimmed","test","undefined","ISO_8601","clone","utc","getDurationBetween","fromEpoch","toEpoch","fromMs","toMs","RangeError","totalMs","from","to","diff","afterYears","add","afterMonths","afterDays","afterHours","afterMinutes","afterSeconds","totalMilliseconds","humanReadable","filter","v","map","label","parseDuration","getTimezoneOffset","ms","m","offset","offsetMinutes","utcOffset","getTimezoneList","getEpochNow","ClockOutOfRange","iso","toISOString","wrap","fn","ok","value","e","error","safeConvertEpoch","safeConvertDateToEpoch","safeConvertEpochToTimezone","safeParseToEpoch","safeGetDurationBetween","safeGetTimezoneOffset","safeGetEpochNow","safeGetEpochUnit"],"mappings":"mCAAYA,GAAZ,SAAYA,GACVA,EAAA,QAAA,UACAA,EAAA,cAAA,eACAA,EAAA,cAAA,eACAA,EAAA,aAAA,aACD,CALD,CAAYA,IAAAA,EAAS,CAAA,IAOd,MAAMC,EAAiB,CAC5BC,QAAS,KACTC,cAAe,KACfC,cAAe,KACfC,aAAc,MA2DHC,EAAe,OACfC,GAAe,OAIfC,EAA0B,IAC1BC,EAA2B,QC5E5BC,GAAZ,SAAYA,GACVA,EAAA,gBAAA,6BACAA,EAAA,WAAA,wDACAA,EAAA,WAAA,kCACAA,EAAA,UAAA,qBACAA,EAAA,MAAA,iBACAA,EAAA,UAAA,+BACAA,EAAA,cAAA,mBACAA,EAAA,WAAA,wCACAA,EAAA,WAAA,iEACAA,EAAA,aAAA,8CACAA,EAAA,cAAA,+CACAA,EAAA,gBAAA,6DACD,CAbD,CAAYA,IAAAA,EAAU,CAAA,IAehB,MAAOC,UAA6BC,MACxC,WAAAC,CAAYC,GACVC,MAAMD,GACNE,KAAKC,KAAO,sBACd,EC8BI,SAAUC,EAAkCC,GAIhD,MAAMC,EA9CR,SAAuBD,GACrB,GAAIA,QACF,MAAM,IAAIR,EAAqBD,EAAWW,iBAG5C,GAAqB,iBAAVF,EAAoB,CAC7B,GAAIA,EAAMG,OAASd,EACjB,MAAM,IAAIG,EAAqBD,EAAWa,cAE5C,GAA4B,IAAxBJ,EAAMK,OAAOF,OACf,MAAM,IAAIX,EAAqBD,EAAWe,OAE5C,MAAMC,EAASC,OAAOR,GACtB,GAAIS,MAAMF,GACR,MAAM,IAAIf,EAAqBD,EAAWmB,YAE5CV,EAAQO,CACV,MAAO,GAAqB,iBAAVP,EAChB,MAAM,IAAIR,EAAqBD,EAAWmB,YAI5C,IAAKC,SAASX,IAAUS,MAAMT,GAC5B,MAAM,IAAIR,EAAqBD,EAAWmB,YAG5C,IAAKF,OAAOI,UAAUZ,GAAQ,CAC5B,MAAMa,EAAMb,EAAMc,WACZC,EAAWF,EAAIG,QAAQ,KAE7B,IAAiB,IAAbD,EAAiB,OAAOE,KAAKC,MAAMlB,GACvC,MAAMmB,EAAiBN,EAAIV,OAASY,EAAW,EAC/Cf,EAAQiB,KAAKC,MAAMlB,EAAQiB,KAAKG,IAAI,GAAID,GAC1C,CACA,OAAOnB,CACT,CAWqBqB,CAAcrB,GAC3BsB,EAAwBL,KAAKM,IAAItB,GACvC,IAAIuB,EACAC,EACJ,GAAIH,EAAgBxC,EAAeC,QACjCyC,EAAmC,IAAbvB,EACtBwB,EAAY5C,EAAUE,aACjB,GAAIuC,EAAgBxC,EAAeE,cACxCwC,EAAsBvB,EACtBwB,EAAY5C,EAAUG,mBACjB,GAAIsC,EAAgBxC,EAAeG,cACxCuC,EAAsBP,KAAKS,MAAMzB,EAAa,KAC9CwB,EAAY5C,EAAUI,kBACjB,MAAIqC,EAAgBxC,EAAeI,cAIxC,MAAM,IAAIM,EAAqBD,EAAWV,WAH1C2C,EAAsBP,KAAKS,MAAMzB,EAAa,KAC9CwB,EAAY5C,EAAUK,YAGxB,CAEA,MAAO,CACLuC,YACAD,sBAEJ,CAEM,SAAUG,EAAcC,GAE5B,IADuBC,EAAOC,GAAGC,QACbC,SAASJ,GAC3B,MAAM,IAAIpC,EAAqBD,EAAW0C,cAE9C,CAEM,SAAUC,EAAalC,GAC3B,IAEE,OADAD,EAAkCC,IAC3B,CACT,CAAE,MACA,OAAO,CACT,CACF,CAEM,SAAUmC,EAAgBP,GAC9B,OAAOC,EAAOC,GAAGC,QAAQC,SAASJ,EACpC,CC1CM,SAAUQ,EAAeC,GAC7B,MAAMC,EAAIT,EAAOU,SAAStB,KAAKM,IAAIc,IAC7BG,EAAQvB,KAAKS,MAAMY,EAAEG,WACrBC,EAASJ,EAAEI,SACXC,EAAOL,EAAEK,OACTC,EAAQN,EAAEM,QACVC,EAAUP,EAAEO,UACZC,EAAUR,EAAEQ,UAEZC,EAAqB,GAQ3B,OAPIP,EAAQ,GAAGO,EAASC,KAAK,GAAGR,SAAuB,IAAVA,EAAc,IAAM,MAC7DE,EAAS,GAAGK,EAASC,KAAK,GAAGN,UAA0B,IAAXA,EAAe,IAAM,MACjEC,EAAO,GAAGI,EAASC,KAAK,GAAGL,QAAoB,IAATA,EAAa,IAAM,MACzDC,EAAQ,GAAGG,EAASC,KAAK,GAAGJ,SAAuB,IAAVA,EAAc,IAAM,MAC7DC,EAAU,GAAGE,EAASC,KAAK,GAAGH,WAA6B,IAAZA,EAAgB,IAAM,MACrEC,EAAU,GAAGC,EAASC,KAAK,GAAGF,WAA6B,IAAZA,EAAgB,IAAM,MAElEC,EAAS5C,OAAS,EAAI4C,EAASE,KAAK,MAAQ,WACrD,CChDA,SAASC,EAAmBC,GAC1B,GAAIA,EAAOhD,OAASb,EAClB,MAAM,IAAIE,EAAqBD,EAAW6D,cAE9C,CAEA,SAASC,EAAyBC,GAChC,OAAOC,OAAOF,OAAOC,EACvB,UAEgBE,EACdxD,EACAmD,EAAiB,8BAEjBD,EAAmBC,GACnB,MAAM3B,oBAAEA,EAAmBC,UAAEA,GAC3B1B,EAAkCC,GAC9ByD,EAAsB5B,EAAOL,GAC7BI,EAAWC,EAAOC,GAAG4B,SAAW,MAKtC,OAAOL,EAAO,CAAEzB,WAAU+B,SAJTF,EAAK3B,GAAGF,GAAUuB,OAAOA,GAINS,cAHdH,EAAK3B,GAAG,WAAWqB,OAAOA,GAGG1B,YAAWzB,QAAO6D,SDrCjE,SAAoCC,GACxC,MACMC,EADoBC,KAAKC,MACQH,EAEjCI,EADgBjD,KAAKM,IAAIwC,GACK,IAC9BI,EAAcD,EAAc,GAC5BE,EAAYD,EAAc,GAC1BE,EAAWD,EAAY,GACvBE,EAAaD,EAAW,GACxBE,EAAYF,EAAW,IAGvBG,EADWT,EAAa,EACJ,YAAc,OAExC,GAAIG,GAAe,GACjB,MAAO,GAAGjD,KAAKS,MAAMwC,aAAuBM,IACvC,GAAIL,GAAe,GACxB,MAAO,GAAGlD,KAAKS,MAAMyC,aAAuBK,IACvC,GAAIJ,GAAa,GAGtB,MAAO,GAFOnD,KAAKS,MAAM0C,YACTnD,KAAKS,MAAMyC,EAAc,cACEK,IACtC,GAAIH,GAAY,GAGrB,MAAO,GAFMpD,KAAKS,MAAM2C,WACVpD,KAAKS,MAAM0C,EAAY,YACAI,IAChC,GAAIF,GAAc,GAGvB,MAAO,GAFQrD,KAAKS,MAAM4C,aACbrD,KAAKS,MAAM2C,EAAW,WACIG,IAIvC,MAAO,GAFOvD,KAAKS,MAAM6C,YACVtD,KAAKS,MAAO2C,EAAW,IAAO,aACJG,GAE7C,CCAmBC,CAA0BjD,IAG7C,CAEM,SAAUkD,EACdjB,EACA7B,EAAmBC,EAAOC,GAAG4B,SAAW,QDLpC,SAA6BD,GAEjC,IADmB5B,EAAO4B,GACVkB,UACd,MAAM,IAAInF,EAAqBD,EAAWqF,UAE9C,CCEEC,CAAmBpB,GACnB9B,EAAcC,GACd,MAAMkD,EAAajD,EAAO4B,GAO1B,OAAOJ,EAAO,CACZ0B,eAPqBD,EAAWE,OAQhCxD,oBAP0BsD,EAAWG,UAQrCrB,cANoBkB,EAAWhD,GAAG,WAAWqB,OAAO,uBAOpDQ,SANemB,EAAWhD,GAAGF,GAAUuB,OAAO,uBAO9CvB,YAEJ,CAEM,SAAUsD,EACdlF,EACA4B,EACAuB,EAAiB,8BAEjBD,EAAmBC,GACnBxB,EAAcC,GACd,MAAMJ,oBAAEA,GAAwBzB,EAAkCC,GAClE,OAAO6B,EAAOL,GAAqBM,GAAGF,GAAUuB,OAAOA,EACzD,CAEM,SAAUgC,EAAanF,GAC3B,OAAOD,EAAkCC,GAAOyB,SAClD,CAIA,MAAM2D,EAAgB,+BAEhB,SAAUC,EACdC,EACAnC,EACAvB,EAAmBC,EAAOC,GAAG4B,SAAW,OAExC,GAAa,MAAT4B,GAAkC,iBAAVA,EAC1B,MAAM,IAAI9F,EAAqBD,EAAWgG,YAE5C,GAAID,EAAMnF,OAASd,EACjB,MAAM,IAAIG,EAAqBD,EAAWa,cAE5C,MAAMoF,EAAUF,EAAMjF,OACtB,GAAuB,IAAnBmF,EAAQrF,OACV,MAAM,IAAIX,EAAqBD,EAAWgG,YAE5C,IAAKH,EAAcK,KAAKD,GACtB,MAAM,IAAIhG,EAAqBD,EAAWgG,iBAE7BG,IAAXvC,GACFD,EAAmBC,GAErBxB,EAAcC,GAEd,MAAMkD,EAAa3B,EACftB,EAAOC,GAAGwD,EAAOnC,GAAQ,EAAMvB,GAC/BC,EAAOC,GAAGwD,EAAOzD,EAAO8D,UAAU,EAAM/D,GAC5C,IAAKkD,EAAWH,UACd,MAAM,IAAInF,EAAqBD,EAAWgG,YAE5C,OAAOlC,EAAO,CACZ0B,eAAgBD,EAAWE,OAC3BxD,oBAAqBsD,EAAWG,UAChCrB,cAAekB,EAAWc,QAAQC,MAAM1C,OAAO,uBAC/CQ,SAAUmB,EAAW3B,OAAO,uBAC5BvB,YAEJ,CAEM,SAAUkE,EACdC,EACAC,GAEA,MAAQxE,oBAAqByE,GAAWlG,EAAkCgG,IAClEvE,oBAAqB0E,GAASnG,EAAkCiG,GACxE,GAAIC,EAASC,EACX,MAAM,IAAI1G,EAAqBD,EAAW4G,YAE5C,OAAO9C,EDhEH,SAAwB4C,EAAgBC,GAC5C,MAAME,EAAUF,EAAOD,EACjBI,EAAOxE,EAAOoE,GACdK,EAAKzE,EAAOqE,GAEZ1D,EAAQ8D,EAAGC,KAAKF,EAAM,SACtBG,EAAaH,EAAKT,QAAQa,IAAIjE,EAAO,SACrCE,EAAS4D,EAAGC,KAAKC,EAAY,UAC7BE,EAAcF,EAAWZ,QAAQa,IAAI/D,EAAQ,UAC7CC,EAAO2D,EAAGC,KAAKG,EAAa,QAC5BC,EAAYD,EAAYd,QAAQa,IAAI9D,EAAM,QAC1CC,EAAQ0D,EAAGC,KAAKI,EAAW,SAC3BC,EAAaD,EAAUf,QAAQa,IAAI7D,EAAO,SAC1CC,EAAUyD,EAAGC,KAAKK,EAAY,WAC9BC,EAAeD,EAAWhB,QAAQa,IAAI5D,EAAS,WAC/CC,EAAUwD,EAAGC,KAAKM,EAAc,WAChCC,EAAeD,EAAajB,QAAQa,IAAI3D,EAAS,WAavD,MAAO,CAAEN,QAAOE,SAAQC,OAAMC,QAAOC,UAASC,UAAST,aAZlCiE,EAAGC,KAAKO,EAAc,gBAY0BC,kBAAmBX,EAASY,cAV1D,CACrC,CAACxE,EAAO,QAAS,CAACE,EAAQ,SAAU,CAACC,EAAM,OAC3C,CAACC,EAAO,QAAS,CAACC,EAAS,UAAW,CAACC,EAAS,WAI7CmE,QAAO,EAAEC,KAAOA,EAAI,IACpBC,KAAI,EAAED,EAAGE,KAAW,GAAGF,KAAKE,IAAc,IAANF,EAAU,IAAM,OACpDjE,KAAK,OAAS,YAGrB,CCkCgBoE,CAAcpB,EAAQC,GACtC,CAEM,SAAUoB,EACd1F,EACA5B,GAEA2B,EAAcC,GACd,MAAM2F,EAAKvH,EACPD,EAAkCC,GAAOwB,oBACzCwC,KAAKC,MACHuD,EAAI3F,EAAO0F,GAAIzF,GAAGF,GACxB,OAAOyB,EAAO,CAAEoE,OAAQD,EAAErE,OAAO,KAAMuE,cAAeF,EAAEG,aAC1D,UAEgBC,IAEd,MAAO,IAAI/F,EAAOC,GAAGC,QACvB,UAEgB8F,IACd,MAAMxF,EAAe2B,KAAKC,MAC1B,IAAKtD,SAAS0B,IAAiBA,EAAejD,GAAgBiD,EAAelD,EAC3E,MAAM,IAAIK,EAAqBD,EAAWuI,iBAE5C,IAAIlG,EACJ,IACEA,EAAWC,EAAOC,GAAG4B,SAAW,KAClC,CAAE,MACA9B,EAAW,KACb,CACA,OAAOyB,EAAO,CACZP,QAAS7B,KAAKS,MAAMW,EAAe,KACnCA,eACA0F,IAAK,IAAI/D,KAAK3B,GAAc2F,cAC5BpG,YAEJ,CC3JA,SAASqG,EAAQC,GACf,IACE,MAAO,CAAEC,IAAI,EAAMC,MAAOF,IAC5B,CAAE,MAAOG,GACP,GAAIA,aAAa7I,EAAsB,MAAO,CAAE2I,IAAI,EAAOG,MAAOD,GAClE,MAAMA,CACR,CACF,CAEM,SAAUE,EACdvI,EACAmD,GAEA,OAAO8E,GAAK,IAAMzE,EAAaxD,EAAOmD,IACxC,CAEM,SAAUqF,EACd/E,EACA7B,GAEA,OAAOqG,GAAK,IAAMvD,EAAmBjB,EAAM7B,IAC7C,UAEgB6G,EACdzI,EACA4B,EACAuB,GAEA,OAAO8E,GAAK,IAAM/C,EAAuBlF,EAAO4B,EAAUuB,IAC5D,UAEgBuF,EACdpD,EACAnC,EACAvB,GAEA,OAAOqG,GAAK,IAAM5C,EAAaC,EAAOnC,EAAQvB,IAChD,CAEM,SAAU+G,EACd5C,EACAC,GAEA,OAAOiC,GAAK,IAAMnC,EAAmBC,EAAWC,IAClD,CAEM,SAAU4C,EACdhH,EACA5B,GAEA,OAAOiI,GAAK,IAAMX,EAAkB1F,EAAU5B,IAChD,UAEgB6I,IACd,OAAOZ,GAAK,IAAMJ,KACpB,CAEM,SAAUiB,EACd9I,GAEA,OAAOiI,GAAK,IAAM9C,EAAanF,IACjC"} |
+13
-0
@@ -51,1 +51,14 @@ export declare enum EpochUnit { | ||
| } | ||
| export declare const MAX_EPOCH_MS = 8640000000000000; | ||
| export declare const MIN_EPOCH_MS = -8640000000000000; | ||
| export declare const MAX_INPUT_STRING_LENGTH = 256; | ||
| export declare const MAX_FORMAT_STRING_LENGTH = 256; | ||
| export type Result<T, E = Error> = { | ||
| ok: true; | ||
| value: T; | ||
| error?: never; | ||
| } | { | ||
| ok: false; | ||
| value?: never; | ||
| error: E; | ||
| }; |
+34
-2
@@ -7,2 +7,8 @@ declare enum EpochUnit { | ||
| } | ||
| declare const EpochThreshold: { | ||
| SECONDS: number; | ||
| MILLI_SECONDS: number; | ||
| MICRO_SECONDS: number; | ||
| NANO_SECONDS: number; | ||
| }; | ||
| type DurationUnit = 'years' | 'months' | 'weeks' | 'days' | 'hours' | 'minutes' | 'seconds' | 'milliseconds'; | ||
@@ -46,2 +52,15 @@ type StartEndUnit = 'day' | 'week' | 'month' | 'year'; | ||
| } | ||
| declare const MAX_EPOCH_MS = 8640000000000000; | ||
| declare const MIN_EPOCH_MS = -8640000000000000; | ||
| declare const MAX_INPUT_STRING_LENGTH = 256; | ||
| declare const MAX_FORMAT_STRING_LENGTH = 256; | ||
| type Result<T, E = Error> = { | ||
| ok: true; | ||
| value: T; | ||
| error?: never; | ||
| } | { | ||
| ok: false; | ||
| value?: never; | ||
| error: E; | ||
| }; | ||
@@ -57,3 +76,6 @@ declare enum EpochError { | ||
| ParseError = "Cannot Parse The Provided Date String", | ||
| RangeError = "Invalid Range: fromEpoch Must Be Less Than Or Equal To toEpoch" | ||
| RangeError = "Invalid Range: fromEpoch Must Be Less Than Or Equal To toEpoch", | ||
| InputTooLong = "Input String Exceeds Maximum Allowed Length", | ||
| FormatTooLong = "Format String Exceeds Maximum Allowed Length", | ||
| ClockOutOfRange = "System Clock Returned A Value Outside JavaScript Date Range" | ||
| } | ||
@@ -72,2 +94,3 @@ declare class EpochValidationError extends Error { | ||
| declare function convertEpochToTimezone(epoch: number, timezone: string, format?: string): string; | ||
| declare function getEpochUnit(epoch: number | string): EpochUnit; | ||
| declare function parseToEpoch(input: string, format?: string, timezone?: string): DateToEpoch; | ||
@@ -79,2 +102,11 @@ declare function getDurationBetween(fromEpoch: number, toEpoch: number): ParsedDuration; | ||
| export { type DateToEpoch, type DurationUnit, EpochError, type EpochNow, type EpochToDate, EpochUnit, EpochValidationError, type ParsedDuration, type StartEndUnit, type TimezoneOffset, convertDateToEpoch, convertEpoch, convertEpochToTimezone, formatDuration, getDurationBetween, getEpochNow, getTimezoneList, getTimezoneOffset, isValidEpoch, isValidTimezone, parseToEpoch }; | ||
| declare function safeConvertEpoch(epoch: number, format?: string): Result<EpochToDate, EpochValidationError>; | ||
| declare function safeConvertDateToEpoch(date: Date, timezone?: string): Result<DateToEpoch, EpochValidationError>; | ||
| declare function safeConvertEpochToTimezone(epoch: number, timezone: string, format?: string): Result<string, EpochValidationError>; | ||
| declare function safeParseToEpoch(input: string, format?: string, timezone?: string): Result<DateToEpoch, EpochValidationError>; | ||
| declare function safeGetDurationBetween(fromEpoch: number, toEpoch: number): Result<ParsedDuration, EpochValidationError>; | ||
| declare function safeGetTimezoneOffset(timezone: string, epoch?: number): Result<TimezoneOffset, EpochValidationError>; | ||
| declare function safeGetEpochNow(): Result<EpochNow, EpochValidationError>; | ||
| declare function safeGetEpochUnit(epoch: number | string): Result<EpochUnit, EpochValidationError>; | ||
| export { type DateToEpoch, type DurationUnit, EpochError, type EpochNow, EpochThreshold, type EpochToDate, EpochUnit, EpochValidationError, MAX_EPOCH_MS, MAX_FORMAT_STRING_LENGTH, MAX_INPUT_STRING_LENGTH, MIN_EPOCH_MS, type ParsedDuration, type Result, type StartEndUnit, type TimezoneOffset, convertDateToEpoch, convertEpoch, convertEpochToTimezone, formatDuration, getDurationBetween, getEpochNow, getEpochUnit, getTimezoneList, getTimezoneOffset, isValidEpoch, isValidTimezone, parseToEpoch, safeConvertDateToEpoch, safeConvertEpoch, safeConvertEpochToTimezone, safeGetDurationBetween, safeGetEpochNow, safeGetEpochUnit, safeGetTimezoneOffset, safeParseToEpoch }; |
+1
-1
| { | ||
| "name": "@master4n/temporal-transformer", | ||
| "version": "1.2.1", | ||
| "version": "1.3.0", | ||
| "description": "TypeScript library to convert epoch timestamps (seconds, milliseconds, microseconds, nanoseconds) to human-readable dates, parse date strings to epoch, compute durations, and handle timezone conversions.", | ||
@@ -5,0 +5,0 @@ "main": "./commonjs/index.cjs", |
+116
-1
@@ -42,7 +42,9 @@ # @master4n/temporal-transformer | ||
| - **Timezone utilities** — list all 600+ IANA timezones, get UTC offset for any zone | ||
| - **Result-style safe API** — every function has a `safeXxx` variant returning `{ ok, value | error }` instead of throwing | ||
| - **Safe predicates** — `isValidEpoch` / `isValidTimezone` that never throw | ||
| - **Frozen results** — returned objects are `Object.freeze()`'d to prevent downstream tampering | ||
| - **Relative time** — "3 hours 15 minutes ago" / "2 days from now" | ||
| - **Full TypeScript support** — strict types, enums, and interfaces exported | ||
| - **Dual ESM + CJS build** — works in Next.js, Node.js, Vite, webpack | ||
| - **Secure input validation** — guards against `null`, `undefined`, `Infinity`, `NaN`, empty strings, and non-numeric input | ||
| - **Hardened input validation** — DoS-capped string and format lengths, rejects HTML/XSS payloads, `Infinity`, `NaN`, prototype-pollution attempts, and clock-corruption edge cases | ||
@@ -174,2 +176,19 @@ --- | ||
| ### `getEpochUnit(epoch)` | ||
| Returns just the detected unit of an epoch value — useful for routing logic without doing the full conversion. | ||
| ```typescript | ||
| function getEpochUnit(epoch: number | string): EpochUnit | ||
| ``` | ||
| ```typescript | ||
| getEpochUnit(1622547800); // EpochUnit.SECONDS === 'seconds' | ||
| getEpochUnit(1622547800000); // EpochUnit.MILLI_SECONDS === 'milliseconds' | ||
| getEpochUnit(1622547800000000); // EpochUnit.MICRO_SECONDS === 'microseconds' | ||
| getEpochUnit(1622547800000000000); // EpochUnit.NANO_SECONDS === 'nanoseconds' | ||
| ``` | ||
| --- | ||
| ### `parseToEpoch(input, format?, timezone?)` | ||
@@ -452,2 +471,83 @@ | ||
| ## Result-Style Safe API (unique feature) | ||
| Every function has a `safeXxx` counterpart that returns a discriminated `Result<T>` object instead of throwing. This is ideal for code paths handling untrusted input — API endpoints, form validation, batch processors — where `try`/`catch` becomes noise. | ||
| ```typescript | ||
| import { safeConvertEpoch, safeParseToEpoch, safeGetEpochNow } from '@master4n/temporal-transformer'; | ||
| const result = safeConvertEpoch(req.body.timestamp); | ||
| if (result.ok) { | ||
| console.log(result.value.dateTime); // typed as EpochToDate | ||
| } else { | ||
| console.log(result.error.message); // typed as EpochValidationError | ||
| } | ||
| ``` | ||
| | Safe variant | Wraps | Returns | | ||
| |-------------------------------|-----------------------------|--------------------------------------------------| | ||
| | `safeConvertEpoch` | `convertEpoch` | `Result<EpochToDate, EpochValidationError>` | | ||
| | `safeConvertDateToEpoch` | `convertDateToEpoch` | `Result<DateToEpoch, EpochValidationError>` | | ||
| | `safeConvertEpochToTimezone` | `convertEpochToTimezone` | `Result<string, EpochValidationError>` | | ||
| | `safeParseToEpoch` | `parseToEpoch` | `Result<DateToEpoch, EpochValidationError>` | | ||
| | `safeGetDurationBetween` | `getDurationBetween` | `Result<ParsedDuration, EpochValidationError>` | | ||
| | `safeGetTimezoneOffset` | `getTimezoneOffset` | `Result<TimezoneOffset, EpochValidationError>` | | ||
| | `safeGetEpochNow` | `getEpochNow` | `Result<EpochNow, EpochValidationError>` | | ||
| | `safeGetEpochUnit` | `getEpochUnit` | `Result<EpochUnit, EpochValidationError>` | | ||
| ### The `Result<T>` type | ||
| ```typescript | ||
| type Result<T, E = Error> = | ||
| | { ok: true; value: T; error?: never } | ||
| | { ok: false; value?: never; error: E }; | ||
| ``` | ||
| The discriminant is `ok`. TypeScript narrows `value` and `error` automatically once you branch on it. | ||
| --- | ||
| ## Security Model | ||
| `temporal-transformer` treats every input as untrusted. The library has been audited against the OWASP-style threat model below; the test suite [`test/epoch/security.test.ts`](./test/epoch/security.test.ts) pins each defense. | ||
| ### Threats addressed | ||
| | Threat | Defense | | ||
| |----------------------------------------------|--------------------------------------------------------------------------| | ||
| | **Prototype pollution** via `__proto__` | Object inputs are rejected with `NotANumber` before any property access | | ||
| | **`Infinity`, `-Infinity`, `NaN`** | Explicit `isFinite` guard, throws `NotANumber` | | ||
| | **String DoS** (e.g. 1M-char numeric string) | `MAX_INPUT_STRING_LENGTH = 256` → throws `InputTooLong` | | ||
| | **Format-string DoS** (memory amplification) | `MAX_FORMAT_STRING_LENGTH = 256` → throws `FormatTooLong` | | ||
| | **XSS / HTML in `parseToEpoch`** | Character allowlist regex rejects payloads before reaching moment | | ||
| | **Stderr leakage of payloads** | Strict ISO 8601 mode bypasses moment's `js Date()` fallback path | | ||
| | **Timezone injection** | `validTimezone` checks input against the IANA name list | | ||
| | **Result object tampering** | All return values are `Object.freeze()`'d | | ||
| | **Internal array mutation** | `getTimezoneList` returns a defensive copy | | ||
| | **System clock corruption** (`Date.now()`) | `getEpochNow` validates against `±MAX_EPOCH_MS`, throws `ClockOutOfRange`| | ||
| | **Reversed-range duration** | `getDurationBetween` throws `RangeError` if `from > to` | | ||
| | **ReDoS** | All regexes are linear-time (no nested quantifiers, no backreferences) | | ||
| ### Known caller responsibilities | ||
| - **Format string output is literal**: moment's `[bracketed]` literals in a format string are emitted verbatim. If you pass user-controlled format strings *and* output the result to HTML, you must HTML-escape on output. The library does not interpret format strings as user-supplied content. | ||
| - **`convertDateToEpoch(date)` trusts `date.getTime()`**: a `Date` subclass with an overridden `valueOf()`/`getTime()` returns whatever those methods return. Validate `instanceof Date` and untainted construction at your trust boundary if this matters. | ||
| ### Exported security constants | ||
| ```typescript | ||
| import { | ||
| MAX_EPOCH_MS, // 8.64e15 — JS Date upper bound | ||
| MIN_EPOCH_MS, // -8.64e15 — JS Date lower bound | ||
| MAX_INPUT_STRING_LENGTH, // 256 | ||
| MAX_FORMAT_STRING_LENGTH, // 256 | ||
| } from '@master4n/temporal-transformer'; | ||
| ``` | ||
| ### Reporting | ||
| If you discover a security issue, please open a private advisory on [github.com/Master4Novice/common/security](https://github.com/Master4Novice/common/security/advisories) rather than a public issue. | ||
| --- | ||
| ## Common Recipes | ||
@@ -498,2 +598,17 @@ | ||
| ### 1.3.0 | ||
| - **New (unique):** Result-style safe API — every function has a `safeXxx` counterpart returning `{ ok, value | error }` instead of throwing (8 functions, see [Result-Style Safe API](#result-style-safe-api-unique-feature)) | ||
| - **New:** `getEpochUnit(epoch)` — standalone helper that returns just the detected `EpochUnit` | ||
| - **Security:** Frozen result objects (`Object.freeze`) prevent downstream tampering | ||
| - **Security:** `MAX_INPUT_STRING_LENGTH` (256) caps DoS via outsized numeric/date strings — throws `InputTooLong` | ||
| - **Security:** `MAX_FORMAT_STRING_LENGTH` (256) caps memory-amplification via format strings — throws `FormatTooLong` | ||
| - **Security:** `getEpochNow` validates `Date.now()` against `MIN_EPOCH_MS` / `MAX_EPOCH_MS` and throws `ClockOutOfRange` instead of a raw `RangeError` on a corrupted system clock | ||
| - **Security:** `getTimezoneList` returns a defensive copy, preventing mutation of the shared internal array | ||
| - **Security:** `parseToEpoch` now rejects non-string input early with `ParseError` | ||
| - **Security:** Fallback to `'UTC'` when `moment.tz.guess()` returns an empty string | ||
| - **New exports:** `Result<T, E>`, `MAX_EPOCH_MS`, `MIN_EPOCH_MS`, `MAX_INPUT_STRING_LENGTH`, `MAX_FORMAT_STRING_LENGTH`, `EpochThreshold` | ||
| - **New errors:** `EpochError.InputTooLong`, `EpochError.FormatTooLong`, `EpochError.ClockOutOfRange` | ||
| - **Docs:** New [Security Model](#security-model) section enumerating the threat model and defenses | ||
| ### 1.2.1 | ||
@@ -500,0 +615,0 @@ |
76790
35.25%22
10%415
31.33%648
21.58%