| {"version":3,"file":"flowtime.js","sources":["../src/createLcg.js","../src/flowtime.js"],"sourcesContent":["export default (seed, modulus, multiplier, increment) => {\n const m = modulus\n const a = multiplier\n const c = increment\n let z = seed\n\n return {\n rand: () => {\n z = (a * z + c) % m\n return z / m\n }\n }\n}\n","import createLcg from './createLcg'\n\nconst getSeedsFromDate = (date) => {\n const year = date.getFullYear()\n const month = (date.getMonth() + 1).toString().padStart(2, '0')\n const day = date\n .getDate() // day of the month\n .toString()\n .padStart(2, '0')\n const hour = date\n .getHours()\n .toString()\n .padStart(2, '0')\n\n return {\n minute: parseInt(`${year}${month}${day}${hour}`),\n hour: parseInt(`${year}${month}${day}`)\n }\n}\n\nconst getSequenceFromLcg = (lcg, length) => {\n const values = []\n\n // generate sequence\n for (let i = 0; i < length; i++) {\n values.push(lcg.rand())\n }\n\n // copy and sort sequence\n const sorted = values.slice().sort()\n\n // normalize values based on their order\n for (let i = 0; i < sorted.length; i++) {\n values[values.indexOf(sorted[i])] = i\n }\n\n return values\n}\n\nconst getHourLcg = (seed) =>\n // values from the Numerical Recipes book\n createLcg(seed, 4294967296, 1664525, 1013904223)\n\nconst getMinuteLcg = (seed) =>\n // values from MINSTD\n createLcg(seed, 2147483647, 48271, 0)\n\nconst mergeTimeWithDate = (time, date) => {\n const flowdate = new Date(date.getTime())\n flowdate.setHours(time.hour)\n flowdate.setMinutes(time.minute)\n flowdate.setSeconds(time.second)\n return flowdate\n}\n\nexport const fromDate = (date) => {\n // extract seeds\n const seed = getSeedsFromDate(date)\n\n // generate sequences\n const mLcg = getMinuteLcg(seed.minute)\n const mSequence = getSequenceFromLcg(mLcg, 60)\n const hLcg = getHourLcg(seed.hour)\n const hSequence = getSequenceFromLcg(hLcg, 24)\n\n // build flowtime\n const time = {\n hour: hSequence[date.getHours()],\n minute: mSequence[date.getMinutes()],\n second: date.getSeconds()\n }\n\n return {\n ...time,\n toDate: () => mergeTimeWithDate(time, date)\n }\n}\n\nexport const fromNow = () => fromDate(new Date())\n"],"names":["seed","modulus","multiplier","increment","const","m","a","c","z","rand","getSequenceFromLcg","lcg","length","values","i","push","sorted","slice","sort","indexOf","fromDate","date","year","getFullYear","month","getMonth","toString","padStart","day","getDate","hour","getHours","minute","parseInt","getSeedsFromDate","mLcg","createLcg","getMinuteLcg","mSequence","hLcg","getHourLcg","time","getMinutes","second","getSeconds","Object","toDate","flowdate","Date","getTime","setHours","setMinutes","setSeconds","mergeTimeWithDate"],"mappings":"WAAgBA,EAAMC,EAASC,EAAYC,GACzCC,IAAMC,EAAIJ,EACJK,EAAIJ,EACJK,EAAIJ,EACNK,EAAIR,EAER,OACES,gBAEE,OADAD,GAAKF,EAAIE,EAAID,GAAKF,GACPA,ICPjBD,IAkBMM,WAAsBC,EAAKC,GAI/B,IAHAR,IAAMS,KAGGC,EAAI,EAAGA,EAAIF,EAAQE,IAC1BD,EAAOE,KAAKJ,EAAIF,QAOlB,IAHAL,IAAMY,EAASH,EAAOI,QAAQC,OAGrBJ,EAAI,EAAGA,EAAIE,EAAOJ,OAAQE,IACjCD,EAAOA,EAAOM,QAAQH,EAAOF,KAAOA,EAGtC,OAAOD,GAmBIO,WAAYC,GAEvBjB,IAAMJ,WAvDkBqB,GACxBjB,IAAMkB,EAAOD,EAAKE,cACZC,GAASH,EAAKI,WAAa,GAAGC,WAAWC,SAAS,EAAG,KACrDC,EAAMP,EACTQ,UACAH,WACAC,SAAS,EAAG,KACTG,EAAOT,EACVU,WACAL,WACAC,SAAS,EAAG,KAEf,OACEK,OAAQC,YAAYX,EAAOE,EAAQI,EAAME,GACzCA,KAAMG,YAAYX,EAAOE,EAAQI,IAyCtBM,CAAiBb,GAGxBc,WAjBcnC,UAEpBoC,EAAUpC,EAAM,WAAY,MAAO,GAetBqC,CAAarC,EAAKgC,QACzBM,EAAY5B,EAAmByB,EAAM,IACrCI,WAvBYvC,UAElBoC,EAAUpC,EAAM,WAAY,QAAS,YAqBxBwC,CAAWxC,EAAK8B,MAIvBW,GACJX,KAJgBpB,EAAmB6B,EAAM,IAIzBlB,EAAKU,YACrBC,OAAQM,EAAUjB,EAAKqB,cACvBC,OAAQtB,EAAKuB,cAGf,OAAOC,iBACFJ,GACHK,kCA3BuBL,EAAMpB,GAC/BjB,IAAM2C,EAAW,IAAIC,KAAK3B,EAAK4B,WAI/B,OAHAF,EAASG,SAAST,EAAKX,MACvBiB,EAASI,WAAWV,EAAKT,QACzBe,EAASK,WAAWX,EAAKE,QAClBI,EAsBSM,CAAkBZ,EAAMpB,4DAIbD,EAAS,IAAI4B"} |
| function t(t,n,r,e){var u=n,o=r,a=e,i=t;return{rand:function(){return(i=(o*i+a)%u)/u}}}var n=function(t,n){for(var r=[],e=0;e<n;e++)r.push(t.rand());for(var u=r.slice().sort(),o=0;o<u.length;o++)r[r.indexOf(u[o])]=o;return r},r=function(r){var e=function(t){var n=t.getFullYear(),r=(t.getMonth()+1).toString().padStart(2,"0"),e=t.getDate().toString().padStart(2,"0"),u=t.getHours().toString().padStart(2,"0");return{minute:parseInt(""+n+r+e+u),hour:parseInt(""+n+r+e)}}(r),u=function(n){return t(n,2147483647,48271,0)}(e.minute),o=n(u,60),a=function(n){return t(n,4294967296,1664525,1013904223)}(e.hour),i={hour:n(a,24)[r.getHours()],minute:o[r.getMinutes()],second:r.getSeconds()};return Object.assign({},i,{toDate:function(){return function(t,n){var r=new Date(n.getTime());return r.setHours(t.hour),r.setMinutes(t.minute),r.setSeconds(t.second),r}(i,r)}})},e=function(){return r(new Date)};export{r as fromDate,e as fromNow}; | ||
| //# sourceMappingURL=flowtime.mjs.map |
| {"version":3,"file":"flowtime.mjs","sources":["../src/createLcg.js","../src/flowtime.js"],"sourcesContent":["export default (seed, modulus, multiplier, increment) => {\n const m = modulus\n const a = multiplier\n const c = increment\n let z = seed\n\n return {\n rand: () => {\n z = (a * z + c) % m\n return z / m\n }\n }\n}\n","import createLcg from './createLcg'\n\nconst getSeedsFromDate = (date) => {\n const year = date.getFullYear()\n const month = (date.getMonth() + 1).toString().padStart(2, '0')\n const day = date\n .getDate() // day of the month\n .toString()\n .padStart(2, '0')\n const hour = date\n .getHours()\n .toString()\n .padStart(2, '0')\n\n return {\n minute: parseInt(`${year}${month}${day}${hour}`),\n hour: parseInt(`${year}${month}${day}`)\n }\n}\n\nconst getSequenceFromLcg = (lcg, length) => {\n const values = []\n\n // generate sequence\n for (let i = 0; i < length; i++) {\n values.push(lcg.rand())\n }\n\n // copy and sort sequence\n const sorted = values.slice().sort()\n\n // normalize values based on their order\n for (let i = 0; i < sorted.length; i++) {\n values[values.indexOf(sorted[i])] = i\n }\n\n return values\n}\n\nconst getHourLcg = (seed) =>\n // values from the Numerical Recipes book\n createLcg(seed, 4294967296, 1664525, 1013904223)\n\nconst getMinuteLcg = (seed) =>\n // values from MINSTD\n createLcg(seed, 2147483647, 48271, 0)\n\nconst mergeTimeWithDate = (time, date) => {\n const flowdate = new Date(date.getTime())\n flowdate.setHours(time.hour)\n flowdate.setMinutes(time.minute)\n flowdate.setSeconds(time.second)\n return flowdate\n}\n\nexport const fromDate = (date) => {\n // extract seeds\n const seed = getSeedsFromDate(date)\n\n // generate sequences\n const mLcg = getMinuteLcg(seed.minute)\n const mSequence = getSequenceFromLcg(mLcg, 60)\n const hLcg = getHourLcg(seed.hour)\n const hSequence = getSequenceFromLcg(hLcg, 24)\n\n // build flowtime\n const time = {\n hour: hSequence[date.getHours()],\n minute: mSequence[date.getMinutes()],\n second: date.getSeconds()\n }\n\n return {\n ...time,\n toDate: () => mergeTimeWithDate(time, date)\n }\n}\n\nexport const fromNow = () => fromDate(new Date())\n"],"names":["seed","modulus","multiplier","increment","const","m","a","c","z","rand","getSequenceFromLcg","lcg","length","values","i","push","sorted","slice","sort","indexOf","fromDate","date","year","getFullYear","month","getMonth","toString","padStart","day","getDate","hour","getHours","minute","parseInt","getSeedsFromDate","mLcg","createLcg","getMinuteLcg","mSequence","hLcg","getHourLcg","time","getMinutes","second","getSeconds","Object","toDate","flowdate","Date","getTime","setHours","setMinutes","setSeconds","mergeTimeWithDate","fromNow"],"mappings":"WAAgBA,EAAMC,EAASC,EAAYC,GACzCC,IAAMC,EAAIJ,EACJK,EAAIJ,EACJK,EAAIJ,EACNK,EAAIR,EAER,OACES,gBAEE,OADAD,GAAKF,EAAIE,EAAID,GAAKF,GACPA,ICPjBD,IAkBMM,WAAsBC,EAAKC,GAI/B,IAHAR,IAAMS,KAGGC,EAAI,EAAGA,EAAIF,EAAQE,IAC1BD,EAAOE,KAAKJ,EAAIF,QAOlB,IAHAL,IAAMY,EAASH,EAAOI,QAAQC,OAGrBJ,EAAI,EAAGA,EAAIE,EAAOJ,OAAQE,IACjCD,EAAOA,EAAOM,QAAQH,EAAOF,KAAOA,EAGtC,OAAOD,GAmBIO,WAAYC,GAEvBjB,IAAMJ,WAvDkBqB,GACxBjB,IAAMkB,EAAOD,EAAKE,cACZC,GAASH,EAAKI,WAAa,GAAGC,WAAWC,SAAS,EAAG,KACrDC,EAAMP,EACTQ,UACAH,WACAC,SAAS,EAAG,KACTG,EAAOT,EACVU,WACAL,WACAC,SAAS,EAAG,KAEf,OACEK,OAAQC,YAAYX,EAAOE,EAAQI,EAAME,GACzCA,KAAMG,YAAYX,EAAOE,EAAQI,IAyCtBM,CAAiBb,GAGxBc,WAjBcnC,UAEpBoC,EAAUpC,EAAM,WAAY,MAAO,GAetBqC,CAAarC,EAAKgC,QACzBM,EAAY5B,EAAmByB,EAAM,IACrCI,WAvBYvC,UAElBoC,EAAUpC,EAAM,WAAY,QAAS,YAqBxBwC,CAAWxC,EAAK8B,MAIvBW,GACJX,KAJgBpB,EAAmB6B,EAAM,IAIzBlB,EAAKU,YACrBC,OAAQM,EAAUjB,EAAKqB,cACvBC,OAAQtB,EAAKuB,cAGf,OAAOC,iBACFJ,GACHK,kCA3BuBL,EAAMpB,GAC/BjB,IAAM2C,EAAW,IAAIC,KAAK3B,EAAK4B,WAI/B,OAHAF,EAASG,SAAST,EAAKX,MACvBiB,EAASI,WAAWV,EAAKT,QACzBe,EAASK,WAAWX,EAAKE,QAClBI,EAsBSM,CAAkBZ,EAAMpB,OAI7BiC,oBAAgBlC,EAAS,IAAI4B"} |
| {"version":3,"file":"flowtime.umd.js","sources":["../src/createLcg.js","../src/flowtime.js"],"sourcesContent":["export default (seed, modulus, multiplier, increment) => {\n const m = modulus\n const a = multiplier\n const c = increment\n let z = seed\n\n return {\n rand: () => {\n z = (a * z + c) % m\n return z / m\n }\n }\n}\n","import createLcg from './createLcg'\n\nconst getSeedsFromDate = (date) => {\n const year = date.getFullYear()\n const month = (date.getMonth() + 1).toString().padStart(2, '0')\n const day = date\n .getDate() // day of the month\n .toString()\n .padStart(2, '0')\n const hour = date\n .getHours()\n .toString()\n .padStart(2, '0')\n\n return {\n minute: parseInt(`${year}${month}${day}${hour}`),\n hour: parseInt(`${year}${month}${day}`)\n }\n}\n\nconst getSequenceFromLcg = (lcg, length) => {\n const values = []\n\n // generate sequence\n for (let i = 0; i < length; i++) {\n values.push(lcg.rand())\n }\n\n // copy and sort sequence\n const sorted = values.slice().sort()\n\n // normalize values based on their order\n for (let i = 0; i < sorted.length; i++) {\n values[values.indexOf(sorted[i])] = i\n }\n\n return values\n}\n\nconst getHourLcg = (seed) =>\n // values from the Numerical Recipes book\n createLcg(seed, 4294967296, 1664525, 1013904223)\n\nconst getMinuteLcg = (seed) =>\n // values from MINSTD\n createLcg(seed, 2147483647, 48271, 0)\n\nconst mergeTimeWithDate = (time, date) => {\n const flowdate = new Date(date.getTime())\n flowdate.setHours(time.hour)\n flowdate.setMinutes(time.minute)\n flowdate.setSeconds(time.second)\n return flowdate\n}\n\nexport const fromDate = (date) => {\n // extract seeds\n const seed = getSeedsFromDate(date)\n\n // generate sequences\n const mLcg = getMinuteLcg(seed.minute)\n const mSequence = getSequenceFromLcg(mLcg, 60)\n const hLcg = getHourLcg(seed.hour)\n const hSequence = getSequenceFromLcg(hLcg, 24)\n\n // build flowtime\n const time = {\n hour: hSequence[date.getHours()],\n minute: mSequence[date.getMinutes()],\n second: date.getSeconds()\n }\n\n return {\n ...time,\n toDate: () => mergeTimeWithDate(time, date)\n }\n}\n\nexport const fromNow = () => fromDate(new Date())\n"],"names":["seed","modulus","multiplier","increment","const","m","a","c","z","rand","getSequenceFromLcg","lcg","length","values","i","push","sorted","slice","sort","indexOf","fromDate","date","year","getFullYear","month","getMonth","toString","padStart","day","getDate","hour","getHours","minute","parseInt","getSeedsFromDate","mLcg","createLcg","getMinuteLcg","mSequence","hLcg","getHourLcg","time","getMinutes","second","getSeconds","Object","toDate","flowdate","Date","getTime","setHours","setMinutes","setSeconds","mergeTimeWithDate"],"mappings":"yLAAgBA,EAAMC,EAASC,EAAYC,GACzCC,IAAMC,EAAIJ,EACJK,EAAIJ,EACJK,EAAIJ,EACNK,EAAIR,EAER,OACES,gBAEE,OADAD,GAAKF,EAAIE,EAAID,GAAKF,GACPA,ICPjBD,IAkBMM,WAAsBC,EAAKC,GAI/B,IAHAR,IAAMS,KAGGC,EAAI,EAAGA,EAAIF,EAAQE,IAC1BD,EAAOE,KAAKJ,EAAIF,QAOlB,IAHAL,IAAMY,EAASH,EAAOI,QAAQC,OAGrBJ,EAAI,EAAGA,EAAIE,EAAOJ,OAAQE,IACjCD,EAAOA,EAAOM,QAAQH,EAAOF,KAAOA,EAGtC,OAAOD,GAmBIO,WAAYC,GAEvBjB,IAAMJ,WAvDkBqB,GACxBjB,IAAMkB,EAAOD,EAAKE,cACZC,GAASH,EAAKI,WAAa,GAAGC,WAAWC,SAAS,EAAG,KACrDC,EAAMP,EACTQ,UACAH,WACAC,SAAS,EAAG,KACTG,EAAOT,EACVU,WACAL,WACAC,SAAS,EAAG,KAEf,OACEK,OAAQC,YAAYX,EAAOE,EAAQI,EAAME,GACzCA,KAAMG,YAAYX,EAAOE,EAAQI,IAyCtBM,CAAiBb,GAGxBc,WAjBcnC,UAEpBoC,EAAUpC,EAAM,WAAY,MAAO,GAetBqC,CAAarC,EAAKgC,QACzBM,EAAY5B,EAAmByB,EAAM,IACrCI,WAvBYvC,UAElBoC,EAAUpC,EAAM,WAAY,QAAS,YAqBxBwC,CAAWxC,EAAK8B,MAIvBW,GACJX,KAJgBpB,EAAmB6B,EAAM,IAIzBlB,EAAKU,YACrBC,OAAQM,EAAUjB,EAAKqB,cACvBC,OAAQtB,EAAKuB,cAGf,OAAOC,iBACFJ,GACHK,kCA3BuBL,EAAMpB,GAC/BjB,IAAM2C,EAAW,IAAIC,KAAK3B,EAAK4B,WAI/B,OAHAF,EAASG,SAAST,EAAKX,MACvBiB,EAASI,WAAWV,EAAKT,QACzBe,EAASK,WAAWX,EAAKE,QAClBI,EAsBSM,CAAkBZ,EAAMpB,gDAIbD,EAAS,IAAI4B"} |
+3
-4
| { | ||
| "name": "flowtime", | ||
| "version": "1.2.2", | ||
| "version": "1.2.3", | ||
| "description": "An unpredictable time library for JavaScript", | ||
@@ -20,4 +20,4 @@ "license": "MIT", | ||
| "files": [ | ||
| "src/*.js", | ||
| "dist/*.js" | ||
| "src/*", | ||
| "dist/*" | ||
| ], | ||
@@ -30,3 +30,2 @@ "scripts": { | ||
| "watch": "jest --watch", | ||
| "demo": "npm run build && open dist/index.html", | ||
| "prepare": "npm run build" | ||
@@ -33,0 +32,0 @@ }, |
Minified code
QualityThis package contains minified code. This may be harmless in some cases where minified code is included in packaged libraries, however packages on npm should not minify code.
Found 1 instance in 1 package
Deprecated
MaintenanceThe maintainer of the package marked it as deprecated. This could indicate that a single version should not be used, or that the package is no longer maintained and any new vulnerabilities will not be fixed.
Found 1 instance in 1 package
24505
107.58%12
50%94
5.62%0
-100%4
33.33%