{"_id":"@art-suite/art-time","_rev":"7-bbcb2bc87a968c9e3ac1c155e7b06046","name":"@art-suite/art-time","dist-tags":{"latest":"0.2.3"},"versions":{"0.1.0":{"name":"@art-suite/art-time","version":"0.1.0","author":{"name":"Shane Brinkman-Davis Delamore"},"license":"ISC","_id":"@art-suite/art-time@0.1.0","maintainers":[{"name":"shanebdavis","email":"shanebdavis@gmail.com"}],"homepage":"https://github.com/art-suite/art-suite-foundations","bugs":{"url":"https://github.com/art-suite/art-suite-foundations/issues"},"dist":{"shasum":"65ca41cdbf426d3836a381dd02a936a19084be6a","tarball":"https://registry.npmjs.org/@art-suite/art-time/-/art-time-0.1.0.tgz","fileCount":40,"integrity":"sha512-waKcEaLIbAIiQ0QW43rucscPFrSNDXa4Z48QS8qO01V6wyT7OQDs9kdlOk0Uj0cxeuYHBhJHVpik+MRB0SiY/g==","signatures":[{"sig":"MEYCIQCLJqqghScLmkrLGUXxxflDfCNXtSRoY7idkhgHJgQ8dQIhAKH/ulhTKu0hm4aX/YiDnNU2teyUTvTjugHNnM873GEq","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":114455},"jest":{"verbose":true,"testEnvironment":"node","collectCoverageFrom":["build/**/*.js","!build/test/**/*.js"],"testPathIgnorePatterns":["/node_modules/","<rootDir>/test"],"coveragePathIgnorePatterns":["/index.js$","/namespace.js$"]},"watch":{"build":{"quiet":false,"patterns":["source"],"extensions":["caf"]}},"gitHead":"26b273b0b9996ec43172464bf214e4156329e83c","scripts":{"nn":"nn build/* ","test":"npm run build\njest","build":"rsync -av --include='*.js' --include='*.css' --exclude='*' ./source/ ./build/\ncaf -m -c source -o build\nnpm run nn","clean":"rm -rf build/*","test-watch":"jest --watch","build-clean":"# BUILD CLEAN START\n#   - building into: build-temp\n#\nrm -rf ./__build-old__\nrsync -av --include='*.js' --include='*.css' --exclude='*' ./source/ ./build/\ncaf -m -c source -o build-temp\nnpm run nn\n\nnn build-temp/*\n\n# BUILD CLEAN FINIALIZING\n#  - replace old build in:   build\n#  - with new build from:    build-temp\n#\nmv build __build-old__\nmv build-temp build\nrm -rf ./__build-old__","build-watch":"nodemon -e js,ts,jsx,tsx,caf,coffee,json -x npm run build"},"_npmUser":{"name":"shanebdavis","email":"shanebdavis@gmail.com"},"repository":{"url":"git+https://github.com/art-suite/art-suite-foundations.git","type":"git"},"_npmVersion":"10.8.2","description":"Easy, fast, fuzzy text search.","directories":{},"_nodeVersion":"22.2.0","dependencies":{"stable":"^0.1.8","art-standard-lib":"^1.73.3"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/art-time_0.1.0_1725300313560_0.42508111413311944","host":"s3://npm-registry-packages"}},"0.1.1":{"name":"@art-suite/art-time","version":"0.1.1","author":{"name":"Shane Brinkman-Davis Delamore"},"license":"ISC","_id":"@art-suite/art-time@0.1.1","maintainers":[{"name":"shanebdavis","email":"shanebdavis@gmail.com"}],"homepage":"https://github.com/art-suite/art-suite-foundations","bugs":{"url":"https://github.com/art-suite/art-suite-foundations/issues"},"dist":{"shasum":"4fc1a5cf26c025ec36870525a59840e2f7834572","tarball":"https://registry.npmjs.org/@art-suite/art-time/-/art-time-0.1.1.tgz","fileCount":27,"integrity":"sha512-ReQwFKAONt46pfW35vUBbG9oZg941obusW/9HT7VPMfegjUBGQTDT+J9L3IcNfiO+9RbJScPBC7Z6HI7IsAYFA==","signatures":[{"sig":"MEUCIQDk2PtPi1YAJsXDsI0NUedyQCnjx+yLuyBV5OQ7BXkSyAIgaVC6eLXbXohrXXxJqSq97NkvNr8nGuKmneY+GNpSFu0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":31125},"jest":{"verbose":true,"testEnvironment":"node","collectCoverageFrom":["build/**/*.js","!build/test/**/*.js"],"testPathIgnorePatterns":["/node_modules/","<rootDir>/test"],"coveragePathIgnorePatterns":["/index.js$","/namespace.js$"]},"types":"./index.d.ts","watch":{"build":{"quiet":false,"patterns":["source"],"extensions":["caf"]}},"gitHead":"8f67844700f8a1a18773c6f8792534f531a7afc8","scripts":{"nn":"nn build/* ","test":"npm run build\njest","build":"rsync -av --include='*.js' --include='*.css' --exclude='*' ./source/ ./build/\ncaf -m -c source -o build\nnpm run nn","clean":"rm -rf build/*","test-watch":"jest --watch","build-clean":"# BUILD CLEAN START\n#   - building into: build-temp\n#\nrm -rf ./__build-old__\nrsync -av --include='*.js' --include='*.css' --exclude='*' ./source/ ./build/\ncaf -m -c source -o build-temp\nnpm run nn\n\nnn build-temp/*\n\n# BUILD CLEAN FINIALIZING\n#  - replace old build in:   build\n#  - with new build from:    build-temp\n#\nmv build __build-old__\nmv build-temp build\nrm -rf ./__build-old__","build-watch":"nodemon -e js,ts,jsx,tsx,caf,coffee,json -x npm run build"},"_npmUser":{"name":"shanebdavis","email":"shanebdavis@gmail.com"},"repository":{"url":"git+https://github.com/art-suite/art-suite-foundations.git","type":"git"},"_npmVersion":"10.9.0","description":"Easy, fast, fuzzy text search.","directories":{},"_nodeVersion":"22.12.0","dependencies":{"stable":"^0.1.8","art-standard-lib":"^1.74.0"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/art-time_0.1.1_1738312508748_0.6181341331391106","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"@art-suite/art-time","version":"0.1.2","author":{"name":"Shane Brinkman-Davis Delamore"},"license":"ISC","_id":"@art-suite/art-time@0.1.2","maintainers":[{"name":"shanebdavis","email":"shanebdavis@gmail.com"}],"homepage":"https://github.com/art-suite/art-suite-foundations","bugs":{"url":"https://github.com/art-suite/art-suite-foundations/issues"},"dist":{"shasum":"960ee9df5cc62e436033ead4dec546b1079c842a","tarball":"https://registry.npmjs.org/@art-suite/art-time/-/art-time-0.1.2.tgz","fileCount":28,"integrity":"sha512-US6pLbzofH5jlflCRxYcC8VmGB+Vs8MkHxOK50jGplzWt9/ltRsQEIxm/efvu98RowynnYC0OXU5CRPJ2JWrdw==","signatures":[{"sig":"MEQCIGBMzqKfq6sYcPXG+oInh5VDCmgX1q/Bxd/BmZWb40m5AiATMSAgvk5VbFZzUeEfLwKHuPrEedlhG3xPYL57e9wW1Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":35265},"jest":{"verbose":true,"testEnvironment":"node","collectCoverageFrom":["build/**/*.js","!build/test/**/*.js"],"testPathIgnorePatterns":["/node_modules/","<rootDir>/test"],"coveragePathIgnorePatterns":["/index.js$","/namespace.js$"]},"types":"./index.d.ts","watch":{"build":{"quiet":false,"patterns":["source"],"extensions":["caf"]}},"exports":{"import":"./index.mjs","require":"./index.js"},"gitHead":"bb9af4977d0854cebad8f1daf6b83c25058c2d35","scripts":{"nn":"nn build/* ","test":"npm run build\njest","build":"rsync -av --include='*.js' --include='*.css' --exclude='*' ./source/ ./build/\ncaf -m -c source -o build\nnpm run nn","clean":"rm -rf build/*","test-watch":"jest --watch","build-clean":"# BUILD CLEAN START\n#   - building into: build-temp\n#\nrm -rf ./__build-old__\nrsync -av --include='*.js' --include='*.css' --exclude='*' ./source/ ./build/\ncaf -m -c source -o build-temp\nnpm run nn\n\nnn build-temp/*\n\n# BUILD CLEAN FINIALIZING\n#  - replace old build in:   build\n#  - with new build from:    build-temp\n#\nmv build __build-old__\nmv build-temp build\nrm -rf ./__build-old__","build-watch":"nodemon -e js,ts,jsx,tsx,caf,coffee,json -x npm run build"},"_npmUser":{"name":"shanebdavis","email":"shanebdavis@gmail.com"},"repository":{"url":"git+https://github.com/art-suite/art-suite-foundations.git","type":"git"},"_npmVersion":"10.9.0","description":"Utilities for working with dates and times in JavaScript and TypeScript. Provides functions to get the age of a date in seconds, format durations (short or verbose), and create user-friendly date/time strings.","directories":{},"_nodeVersion":"22.12.0","dependencies":{"stable":"^0.1.8","art-standard-lib":"^1.74.0"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/art-time_0.1.2_1738315168300_0.6093117116321198","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@art-suite/art-time","version":"0.2.0","author":{"name":"Shane Brinkman-Davis Delamore"},"license":"ISC","_id":"@art-suite/art-time@0.2.0","maintainers":[{"name":"shanebdavis","email":"shanebdavis@gmail.com"}],"homepage":"https://github.com/art-suite/art-suite-foundations","bugs":{"url":"https://github.com/art-suite/art-suite-foundations/issues"},"dist":{"shasum":"2f53acb7a787d11fa73b6e30c65afecc7a979235","tarball":"https://registry.npmjs.org/@art-suite/art-time/-/art-time-0.2.0.tgz","fileCount":28,"integrity":"sha512-FGpgh1bxPeffxNPaikrhN0Bog2p3qJZe9CrOjnUnXCM3uHZaw4VVssQUwIn1geELdHFCcG+1kgBbRRjWq7aACA==","signatures":[{"sig":"MEUCIQC/d7b6deb5LlVVsrnJC05bVNpdQqjUAR4/T3wxzIQvwQIgUxYBzDvL1wITAD7CRO1ukW4TE4+ysl6y8myK1Ysc1dc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":37810},"jest":{"verbose":true,"testEnvironment":"node","collectCoverageFrom":["build/**/*.js","!build/test/**/*.js"],"testPathIgnorePatterns":["/node_modules/","<rootDir>/test"],"coveragePathIgnorePatterns":["/index.js$","/namespace.js$"]},"types":"./index.d.ts","watch":{"build":{"quiet":false,"patterns":["source"],"extensions":["caf"]}},"exports":{"import":"./index.mjs","require":"./index.js"},"gitHead":"66eec99095698721e4a8305e82f8a9339e5e7aba","scripts":{"nn":"nn build/* ","test":"npm run build\njest","build":"rsync -av --include='*.js' --include='*.css' --exclude='*' ./source/ ./build/\ncaf -m -c source -o build\nnpm run nn","clean":"rm -rf build/*","test-watch":"jest --watch","build-clean":"# BUILD CLEAN START\n#   - building into: build-temp\n#\nrm -rf ./__build-old__\nrsync -av --include='*.js' --include='*.css' --exclude='*' ./source/ ./build/\ncaf -m -c source -o build-temp\nnpm run nn\n\nnn build-temp/*\n\n# BUILD CLEAN FINIALIZING\n#  - replace old build in:   build\n#  - with new build from:    build-temp\n#\nmv build __build-old__\nmv build-temp build\nrm -rf ./__build-old__","build-watch":"nodemon -e js,ts,jsx,tsx,caf,coffee,json -x npm run build"},"_npmUser":{"name":"shanebdavis","email":"shanebdavis@gmail.com"},"repository":{"url":"git+https://github.com/art-suite/art-suite-foundations.git","type":"git"},"_npmVersion":"10.9.0","description":"Utilities for working with dates and times in JavaScript and TypeScript. Provides functions to get the age of a date in seconds, format durations (short or verbose), and create user-friendly date/time strings.","directories":{},"_nodeVersion":"22.12.0","dependencies":{"stable":"^0.1.8","art-standard-lib":"^1.74.0"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/art-time_0.2.0_1738852904105_0.5478477681677827","host":"s3://npm-registry-packages-npm-production"}},"0.2.1":{"name":"@art-suite/art-time","version":"0.2.1","author":{"name":"Shane Brinkman-Davis Delamore"},"license":"ISC","_id":"@art-suite/art-time@0.2.1","maintainers":[{"name":"shanebdavis","email":"shanebdavis@gmail.com"}],"homepage":"https://github.com/art-suite/art-suite-foundations","bugs":{"url":"https://github.com/art-suite/art-suite-foundations/issues"},"dist":{"shasum":"b8382c0c47aba7a4216894e62a150691f6a8dc97","tarball":"https://registry.npmjs.org/@art-suite/art-time/-/art-time-0.2.1.tgz","fileCount":28,"integrity":"sha512-sdJEMHpEdN/9bx3AdbUyXrKmNKz81l1c0RWQUrdrD5ZHcSH42ZOe8A+5t6CZzMeGHbAZccE4gi/do6vKXvjgKQ==","signatures":[{"sig":"MEUCIQD+QBnmPYjaZ6EKGfENbfiNwDn8F5VYFJucUoE4EylOYgIgJRdCTZPcGYT2A/CxOmitgeekkClWpQSmjLfJBisho/U=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":39058},"jest":{"verbose":true,"testEnvironment":"node","collectCoverageFrom":["build/**/*.js","!build/test/**/*.js"],"testPathIgnorePatterns":["/node_modules/","<rootDir>/test"],"coveragePathIgnorePatterns":["/index.js$","/namespace.js$"]},"types":"./index.d.ts","watch":{"build":{"quiet":false,"patterns":["source"],"extensions":["caf"]}},"exports":{"import":"./index.mjs","require":"./index.js"},"gitHead":"ba55023b1b3ebb09586eb770189f22f5b4609792","scripts":{"nn":"nn build/* ","test":"npm run build\njest","build":"rsync -av --include='*.js' --include='*.css' --exclude='*' ./source/ ./build/\ncaf -m -c source -o build\nnpm run nn","clean":"rm -rf build/*","test-watch":"jest --watch","build-clean":"# BUILD CLEAN START\n#   - building into: build-temp\n#\nrm -rf ./__build-old__\nrsync -av --include='*.js' --include='*.css' --exclude='*' ./source/ ./build/\ncaf -m -c source -o build-temp\nnpm run nn\n\nnn build-temp/*\n\n# BUILD CLEAN FINIALIZING\n#  - replace old build in:   build\n#  - with new build from:    build-temp\n#\nmv build __build-old__\nmv build-temp build\nrm -rf ./__build-old__","build-watch":"nodemon -e js,ts,jsx,tsx,caf,coffee,json -x npm run build"},"_npmUser":{"name":"shanebdavis","email":"shanebdavis@gmail.com"},"repository":{"url":"git+https://github.com/art-suite/art-suite-foundations.git","type":"git"},"_npmVersion":"10.9.0","description":"Utilities for working with dates and times in JavaScript and TypeScript. Provides functions to get the age of a date in seconds, format durations (short or verbose), and create user-friendly date/time strings.","directories":{},"_nodeVersion":"22.12.0","dependencies":{"stable":"^0.1.8","art-standard-lib":"^1.74.0"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/art-time_0.2.1_1738853086062_0.6707995983211759","host":"s3://npm-registry-packages-npm-production"}},"0.2.2":{"name":"@art-suite/art-time","version":"0.2.2","author":{"name":"Shane Brinkman-Davis Delamore"},"license":"ISC","_id":"@art-suite/art-time@0.2.2","maintainers":[{"name":"shanebdavis","email":"shanebdavis@gmail.com"}],"homepage":"https://github.com/art-suite/art-suite-foundations","bugs":{"url":"https://github.com/art-suite/art-suite-foundations/issues"},"dist":{"shasum":"1cf3494f30fe79c749b6d9c483961998738c9918","tarball":"https://registry.npmjs.org/@art-suite/art-time/-/art-time-0.2.2.tgz","fileCount":28,"integrity":"sha512-AU+wl6Kd4hiGoAFrXLQdVAPxz+Bb6StzPp6MrGrXLR9mXJN8Q+nubC4ejE/V5rVN5OTV14yHOyj9ctnoWHwz2Q==","signatures":[{"sig":"MEUCIAkkPE8H9Z2eS+d37fGMED37Cjh6uet9YdzYBoz2MXzIAiEAjTkdOGO435dHlkPyOcl40LslezDJ1GrWIwGH74TON8M=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":39058},"jest":{"verbose":true,"testEnvironment":"node","collectCoverageFrom":["build/**/*.js","!build/test/**/*.js"],"testPathIgnorePatterns":["/node_modules/","<rootDir>/test"],"coveragePathIgnorePatterns":["/index.js$","/namespace.js$"]},"types":"./index.d.ts","watch":{"build":{"quiet":false,"patterns":["source"],"extensions":["caf"]}},"exports":{"import":"./index.mjs","require":"./index.js"},"gitHead":"ba55023b1b3ebb09586eb770189f22f5b4609792","scripts":{"nn":"nn build/* ","test":"npm run build\njest","build":"rsync -av --include='*.js' --include='*.css' --exclude='*' ./source/ ./build/\ncaf -m -c source -o build\nnpm run nn","clean":"rm -rf build/*","test-watch":"jest --watch","build-clean":"# BUILD CLEAN START\n#   - building into: build-temp\n#\nrm -rf ./__build-old__\nrsync -av --include='*.js' --include='*.css' --exclude='*' ./source/ ./build/\ncaf -m -c source -o build-temp\nnpm run nn\n\nnn build-temp/*\n\n# BUILD CLEAN FINIALIZING\n#  - replace old build in:   build\n#  - with new build from:    build-temp\n#\nmv build __build-old__\nmv build-temp build\nrm -rf ./__build-old__","build-watch":"nodemon -e js,ts,jsx,tsx,caf,coffee,json -x npm run build"},"_npmUser":{"name":"shanebdavis","email":"shanebdavis@gmail.com"},"repository":{"url":"git+https://github.com/art-suite/art-suite-foundations.git","type":"git"},"_npmVersion":"10.9.0","description":"Utilities for working with dates and times in JavaScript and TypeScript. Provides functions to get the age of a date in seconds, format durations (short or verbose), and create user-friendly date/time strings.","directories":{},"_nodeVersion":"22.12.0","dependencies":{"stable":"^0.1.8","art-standard-lib":"^1.74.0"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/art-time_0.2.2_1738853104088_0.9376166850633041","host":"s3://npm-registry-packages-npm-production"}},"0.2.3":{"author":{"name":"Shane Brinkman-Davis Delamore"},"bugs":{"url":"https://github.com/art-suite/art-suite-foundations/issues"},"dependencies":{"art-standard-lib":"^1.74.4","stable":"^0.1.8"},"exports":{"import":"./index.mjs","require":"./index.js"},"homepage":"https://github.com/art-suite/art-suite-foundations","jest":{"collectCoverageFrom":["build/**/*.js","!build/test/**/*.js"],"coveragePathIgnorePatterns":["/index.js$","/namespace.js$"],"testEnvironment":"node","testPathIgnorePatterns":["/node_modules/","<rootDir>/test"],"verbose":true},"license":"ISC","name":"@art-suite/art-time","repository":{"type":"git","url":"git+https://github.com/art-suite/art-suite-foundations.git"},"scripts":{"build":"rsync -av --include='*.js' --include='*.css' --exclude='*' ./source/ ./build/\ncaf -m -c source -o build\nnpm run nn","build-clean":"# BUILD CLEAN START\n#   - building into: build-temp\n#\nrm -rf ./__build-old__\nrsync -av --include='*.js' --include='*.css' --exclude='*' ./source/ ./build/\ncaf -m -c source -o build-temp\nnpm run nn\n\nnn build-temp/*\n\n# BUILD CLEAN FINIALIZING\n#  - replace old build in:   build\n#  - with new build from:    build-temp\n#\nmv build __build-old__\nmv build-temp build\nrm -rf ./__build-old__","build-watch":"nodemon -e js,ts,jsx,tsx,caf,coffee,json -x npm run build","clean":"rm -rf build/*","nn":"nn build/* ","test":"npm run build\njest","test-watch":"jest --watch"},"types":"./index.d.ts","version":"0.2.3","watch":{"build":{"extensions":["caf"],"patterns":["source"],"quiet":false}},"gitHead":"3140bf828cabdf379d7c25fc877c26c1608c2409","_id":"@art-suite/art-time@0.2.3","description":"Utilities for working with dates and times in JavaScript and TypeScript. Provides functions to get the age of a date in seconds, format durations (short or verbose), and create user-friendly date/time strings.","_nodeVersion":"24.10.0","_npmVersion":"11.6.1","dist":{"integrity":"sha512-Ho4pscotATlrUuWC70CSnK2tNhJhuTaCXS+2j41VDdVzt2y2um8Fhu0wM7Xn+YQqxvzc78DwUmDIYNS8C4g9Rg==","shasum":"cae42bb9ac1713747f76b78034bcd1bb6bde19aa","tarball":"https://registry.npmjs.org/@art-suite/art-time/-/art-time-0.2.3.tgz","fileCount":28,"unpackedSize":39058,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQCzOUpWJIBFfRPagMLn05fJCh2opWHIPeGey7Jt1EllqQIhANWDdlZvb2dVYGmuXUOJDNG3TC2cQepJoGTdI+xKgD2W"}]},"_npmUser":{"name":"shanebdavis","email":"shanebdavis@gmail.com"},"directories":{},"maintainers":[{"name":"shanebdavis","email":"shanebdavis@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/art-time_0.2.3_1762507601459_0.42996903202373904"},"_hasShrinkwrap":false}},"time":{"created":"2024-09-02T18:05:13.398Z","modified":"2025-11-07T09:26:41.928Z","0.1.0":"2024-09-02T18:05:13.739Z","0.1.1":"2025-01-31T08:35:08.959Z","0.1.2":"2025-01-31T09:19:28.480Z","0.2.0":"2025-02-06T14:41:44.291Z","0.2.1":"2025-02-06T14:44:46.235Z","0.2.2":"2025-02-06T14:45:04.270Z","0.2.3":"2025-11-07T09:26:41.727Z"},"bugs":{"url":"https://github.com/art-suite/art-suite-foundations/issues"},"author":{"name":"Shane Brinkman-Davis Delamore"},"license":"ISC","homepage":"https://github.com/art-suite/art-suite-foundations","repository":{"type":"git","url":"git+https://github.com/art-suite/art-suite-foundations.git"},"description":"Utilities for working with dates and times in JavaScript and TypeScript. Provides functions to get the age of a date in seconds, format durations (short or verbose), and create user-friendly date/time strings.","maintainers":[{"name":"shanebdavis","email":"shanebdavis@gmail.com"}],"readme":"# @art-suite/art-time\n\nUtilities for working with dates and times in JavaScript and TypeScript. Provides functions to get the age of a date in seconds, format durations (short or verbose), and create user-friendly date/time strings.\n\nSupports:\n\n- CaffeineScript, JavaScript, TypeScript\n- ECM Modules and CommonJS\n\n## Table of Contents\n\n- [Overview](#overview)\n- [Core Types](#core-types)\n- [Core Exports](#core-exports)\n- [Usage Examples](#usage-examples)\n- [API Reference](#api-reference)\n- [License](#license)\n\n## Overview\n\nThis library offers:\n\n- A flexible date input type (ArtTimeDate) which accepts Date, string, number (epoch), or null/undefined to represent the current time.\n- Utility methods for:\n  - Converting dates to human-friendly strings (humanDurationString, timeAgo, niceDateString, etc.).\n  - Calculating how many seconds have passed (or will pass) relative to a given time (dateAgeInSeconds).\n\n## Core Types\n\n### ArtTimeDate\n\nexport type ArtTimeDate = Date | string | number | null | undefined;\nAccepts multiple forms of time representation:\n\n- Date object\n- string (parseable by Date.parse OR an integer-string which will be treated the same as a number)\n- number (seconds or milliseconds from epoch)\n- null or undefined (uses current time)\n\n## HumanDurationOptions\n\n```typescript\nexport interface HumanDurationOptions {\n  readonly verbose?: boolean;\n  readonly precision?: number;\n  readonly now?: ArtTimeDate;\n}\n```\n\n- verbose: Use full names for time units (e.g. \"minutes\" vs \"m\").\n- precision: Maximum number of time units to display.\n- now: Reference time for relative calculations (defaults to current time).\n\n## Core Exports\n\n- dateAgeInSeconds(date, now?)\n- humanDurationString(seconds, options?)\n- niceFullDateString(date)\n- niceMonthYear(date)\n- niceDateString(date, now?)\n- niceTimeDetailsString(date)\n- timeAgo(date, options?)\n\n## Usage Examples\n\n### Human-Readable Durations\n\n```typescript\n// Typescript\nimport { humanDurationString, secondsPer } from \"@art-suite/art-time\";\n\n// A minute:\nhumanDurationString(secondsPer.minute); // \"1m\"\n\n// Two hours:\nhumanDurationString(secondsPer.hour * 2); // \"120m\"\n\n// With precision of 2:\nhumanDurationString(secondsPer.hour + 30, { precision: 2 }); // \"1h 1m\"\n\n// Verbose style:\nhumanDurationString(60, { verbose: true }); // \"1 minute\"\n```\n\n### Relative Time\n\n```javascript\n// JavaScript\nconst { timeAgo, secondsPer } = require(\"@art-suite/art-time\");\n\nconst now = Date.parse(\"2024-07-01 12:35\");\n\n// Just now:\ntimeAgo(now - 10, { now }); // \"just now\"\n\n// One minute ago:\ntimeAgo(now - secondsPer.minute, { now }); // \"1m\"\n\n// Verbose style:\ntimeAgo(now - 3600, { now, verbose: true }); // \"60 minutes ago\"\n```\n\n### Nice Date Strings\n\n```coffee\n## CaffeineScript, too\nimport &ArtSuite/ArtTime\n\nnow = Date.now()\n\n# Today:\nniceDateString()                      # \"today\"\n\n# Yesterday:\nniceDateString now - secondsPer.day   # \"yesterday\"\n\n# Full date/time:\nniceFullDateString now                # \"12:35pm July 1, 2024\"\n\n# Month and year:\nniceMonthYear now                     # \"July 2024\"\n\n# Detailed time (hour/minute):\nniceTimeDetailsString now             # \"12:35pm July 1\"\n```\n\n## API Reference\n\n```typescript\n// Returns the number of seconds between date and now. Positive if date is in the past.\ndateAgeInSeconds(date: ArtTimeDate, now?: ArtTimeDate): number\n\n// Formats a duration in seconds into a short or verbose form (e.g. \"1m 30s\" or \"1 minute 30 seconds\").\nhumanDurationString(seconds: number, options?: HumanDurationOptions): string\n\n// Returns a long-form date string (e.g. \"3:30pm March 14, 2024\").\nniceFullDateString(date: ArtTimeDate): string\n\n// Returns a month/year string (e.g. \"March 2024\").\nniceMonthYear(date: ArtTimeDate): string\n\n// Returns a context-aware date string (e.g. \"just now\", \"yesterday\", \"March 14\"), depending on how far date is from now.\nniceDateString(date: ArtTimeDate, now?: ArtTimeDate): string\n\n// Returns a time string with detailed precision (e.g. \"3:30:45 PM\").\nniceTimeDetailsString(date: ArtTimeDate): string\n\n// Returns a relative time string (e.g. \"5 minutes ago\" or \"in 2 hours\"), optionally verbose or with custom precision.\ntimeAgo(date: ArtTimeDate, options?: HumanDurationOptions): string\n```\n\n## License\n\nISC\n","readmeFilename":"README.md"}