{"_id":"calcdate","_rev":"8-3b405f7b03af356108084306e0f869d6","name":"calcdate","dist-tags":{"latest":"2.0.3"},"versions":{"0.0.1":{"name":"calcdate","version":"0.0.1","description":"Evalate a date expression (\"now + 3 days\")!","main":"dist/datecalculator.js","scripts":{"build":"webpack","test":"jest","build:all":"yarn build:browser && yarn build:node","build:browser":"webpack && cp dist/datecalculator.js examples/browser","build:node":"webpack && cp dist/datecalculator.js examples/node/ && node examples/node/example.js"},"sideEffects":false,"repository":{"type":"git","url":"git+https://github.com/Zyclotrop-j/DateCalculator.git"},"keywords":["date","js","date-fns","moment","luxon","calculator","peg","date-util"],"author":{"name":"Jannes Mingram","url":"Jannes@Mingram.net"},"license":"MIT","bugs":{"url":"https://github.com/Zyclotrop-j/DateCalculator/issues"},"homepage":"https://github.com/Zyclotrop-j/DateCalculator#readme","peerDependencies":{"date-fns":"^2.0.1","luxon":"^1.17.2","moment":"^2.24.0"},"devDependencies":{"@babel/core":"^7.5.5","@babel/preset-env":"^7.5.5","babel-jest":"^24.9.0","babel-loader":"^8.0.6","babel-plugin-add-module-exports":"^1.0.2","babel-preset-env":"^1.6.1","codegen.macro":"^3.0.0","cross-env":"^5.2.1","date-fns":"^2.0.1","eslint":"^6.3.0","eslint-loader":"^3.0.0","jest":"^24.9.0","luxon":"^1.17.2","moment":"^2.24.0","pegjs":"^0.10.0","preval.macro":"^3.0.0","set-tz":"^0.2.0","webpack":"^4.4.1","webpack-cli":"^3.3.7"},"gitHead":"8770dfe61c3bd9dc956482ee127ce0f63decdd73","_id":"calcdate@0.0.1","_nodeVersion":"10.16.0","_npmVersion":"6.11.3","dist":{"integrity":"sha512-ZBPnFRbgKHplU/Qca5Y1QzEghr1Iy+75c9fS7Prj78NRTUtC3W+KyASbv3Dv9Jchd/tPvi4AMQzVI+hl4y07wg==","shasum":"a35536b16c155b19cc671d7d3bfc84baa97158fe","tarball":"https://registry.npmjs.org/calcdate/-/calcdate-0.0.1.tgz","fileCount":25,"unpackedSize":1015296,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJddOcqCRA9TVsSAnZWagAAV0YP/2+y3564MvUXZ2/CMCIZ\n3jm24lHtuzZViutm/5mLTIPi89SzeRvQcD6XK1wrCXJm+gKRJHzPVMUl9XZ2\n124B3yutxIxDDVbscCs73H6VQ+4Kbh2mr5LmL4/3JI2MyiAfqHJ79n6NMszQ\nlZ3n0Sy6fJXQ6I1Vl2IXKbYQDgfXx/Kr2X76+XMz78B0D9ClN4DMprzZGPSP\n5jiwaguZKQkhBPCHV+BuFU0rvLtXa40IAPq/Ii4hsxCw0xbcOvSP/N7JuK7x\n6s50++BBmuV7w0rnkqaAOWlIX9QFyi/i3k5cWlJ/rgzscMOViQyejuOPoDl1\nwFqPGKj+qakwpE6hVGAHxmxlZLRWzbsQVO6rsmZUkyWy0JQbpSvSA4ByRU2T\nmsduqUibGGvprpzHKdc9YLl7CZJUqvKrmmy+V+3q17wE5xnj5dC9bvZ8+J60\nsK8JTavbMGILo2OARkomUQAo5wJnFwAvDLjZkGUB5x95ebIsnbwMkYkS1uoN\nt86sQwzXRjjqscvGtZrMI/ZCQJL7CI2lRIPtDKt7TxC12bjsFM/UyeOFQClA\nyG4cd2pokK0mYjQEu7miTTpDLaxX+jLbYwnwKilBEYU/g0M8HRxEiY+c1Bmy\n1iWa8tkP6vvUmDHuebU0obKJoAm4HBHEo7KF5kkLw1lczplTzgDGK6+k0+IO\nbEal\r\n=jbkf\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDuufjuU8KpXaUj8kwcEayjOi8SmcFwiEurUXnFLPrUnAIhAMxHwRYy5ShydXbjJX4ZXjJ40fcVfiTdH7OP5ndCMbPi"}]},"maintainers":[{"name":"zyclotrop","email":"zyclotrop.j@gmail.com"}],"_npmUser":{"name":"zyclotrop","email":"zyclotrop.j@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/calcdate_0.0.1_1567942441845_0.5548835473560803"},"_hasShrinkwrap":false},"1.0.0":{"name":"calcdate","version":"1.0.0","description":"Evalate a date expression (\"now + 3 days\")!","main":"dist/datecalculator.js","scripts":{"build":"webpack","test":"jest","build:all":"yarn build:browser && yarn build:node","build:browser":"webpack && cp dist/datecalculator.js examples/browser","build:node":"webpack && cp dist/datecalculator.js examples/node/ && node examples/node/example.js"},"sideEffects":false,"repository":{"type":"git","url":"git+https://github.com/Zyclotrop-j/DateCalculator.git"},"keywords":["date","js","date-fns","moment","luxon","calculator","peg","date-util"],"author":{"name":"Jannes Mingram","url":"Jannes@Mingram.net"},"license":"MIT","bugs":{"url":"https://github.com/Zyclotrop-j/DateCalculator/issues"},"homepage":"https://github.com/Zyclotrop-j/DateCalculator#readme","peerDependencies":{"date-fns":"^2.0.1","luxon":"^1.17.2","moment":"^2.24.0"},"devDependencies":{"@babel/core":"^7.5.5","@babel/preset-env":"^7.5.5","babel-jest":"^24.9.0","babel-loader":"^8.0.6","babel-plugin-add-module-exports":"^1.0.2","babel-preset-env":"^1.6.1","codegen.macro":"^3.0.0","cross-env":"^5.2.1","date-fns":"^2.0.1","eslint":"^6.3.0","eslint-loader":"^3.0.0","jest":"^24.9.0","luxon":"^1.17.2","moment":"^2.24.0","pegjs":"^0.10.0","preval.macro":"^3.0.0","set-tz":"^0.2.0","webpack":"^4.4.1","webpack-cli":"^3.3.7"},"gitHead":"18fe126b7372d0aba8fe3b65426493b9674e2650","_id":"calcdate@1.0.0","_nodeVersion":"10.16.0","_npmVersion":"6.11.3","dist":{"integrity":"sha512-wynl0/KpqhRa/PWxD2KKc0cOxzhNbFQv1Ol5gEI70rcFQUqCfAQRZWrr1Fr5JGpglbpyMW45wp+8NvodHnYC0A==","shasum":"e70b69cfbc6f109239f707e23ec2be7a67d85a07","tarball":"https://registry.npmjs.org/calcdate/-/calcdate-1.0.0.tgz","fileCount":25,"unpackedSize":1019880,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJddOd+CRA9TVsSAnZWagAAh50P/2kjasuADBFNhjxTIfra\nrU9o9i8IpGfLMydUUselmdd2GHmgzE44bEXMbN1jNrIjhss6WiomhtS/odNC\nxqBDNgjj35zNIX+ArSgdnSusOwmCmshPFDHu5gGo/CycTvn1WACusao1ceM/\nAAmXyYoG279XeeBcu+GcXHbmjcxVhA+z6/qjgrN+DOAkrp0e0MxDj0Lr8CYG\n1OL9taBC79cHUhbEWca6n5XE1P4WbRWwSnb+tMBaCLpee9XkF7jVlgtAgcZl\nLtlxNQQMWOtOIAt4HFY4/0lnuEezK/sW4jbPZddsCn0F0GMypPGpGoWWkWws\ntntzK/Tz5y+Eg+yCH4b+xv5ITQQ/PrMaRBQR6TePmGBTT/Wxjcck0kT85+7Y\nxNPBfktQWeiImGn0cqfgIrWHQ4q0f33WlT15f8RGLELFi4s9zTL0ffQR9lGL\neDkhxvMczU4RxKjm37CLzSINa0dpCCCcn8QRa1WMm/SEBDT0t0AVX7/EMD/r\nQ28fnPT9nYjmlqnCqUES6CluYswG3AiZnDnusxJV/J07dEU/nG+h9t/D/O8m\nj8182H4ds0bbU1lfqW9Kmq7m5iapA05J6HHu1z3bktjWbRL/NZuamUU04UIi\nd6zXTncyFbguGOeDLCsbaYwrGHfU2p61CCVahoGzlO5VKZ3YJONmqL01pTrx\n9Z1g\r\n=Bgd8\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIED7y37ZzfGOM3XFssZg1ixgHTrH8aLIt1eoXie4v4E6AiAyQQUKxgddZ24EKmXhnlqJMfCUckxmw5BNjXvYIAF6fg=="}]},"maintainers":[{"name":"zyclotrop","email":"zyclotrop.j@gmail.com"}],"_npmUser":{"name":"zyclotrop","email":"zyclotrop.j@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/calcdate_1.0.0_1567942525408_0.841232381950012"},"_hasShrinkwrap":false},"1.0.1":{"name":"calcdate","version":"1.0.1","description":"Evalate a date expression calc`now + 3 days`)!","main":"dist/datecalculator.js","scripts":{"build":"webpack","test":"jest","build:all":"yarn build:browser && yarn build:node","build:browser":"webpack && cp dist/datecalculator.js examples/browser","build:node":"webpack && cp dist/datecalculator.js examples/node/ && node examples/node/example.js"},"sideEffects":false,"repository":{"type":"git","url":"git+https://github.com/Zyclotrop-j/DateCalculator.git"},"keywords":["date","js","date-fns","moment","luxon","calculator","peg","date-util"],"author":{"name":"Jannes Mingram","url":"Jannes@Mingram.net"},"license":"MIT","bugs":{"url":"https://github.com/Zyclotrop-j/DateCalculator/issues"},"homepage":"https://github.com/Zyclotrop-j/DateCalculator#readme","peerDependencies":{"date-fns":"^2.0.1","luxon":"^1.17.2","moment":"^2.24.0"},"devDependencies":{"@babel/core":"^7.5.5","@babel/preset-env":"^7.5.5","babel-jest":"^24.9.0","babel-loader":"^8.0.6","babel-plugin-add-module-exports":"^1.0.2","babel-preset-env":"^1.6.1","codegen.macro":"^3.0.0","cross-env":"^5.2.1","date-fns":"^2.0.1","eslint":"^6.3.0","eslint-loader":"^3.0.0","jest":"^24.9.0","luxon":"^1.17.2","moment":"^2.24.0","pegjs":"^0.10.0","preval.macro":"^3.0.0","set-tz":"^0.2.0","webpack":"^4.4.1","webpack-cli":"^3.3.7"},"gitHead":"ffc3de33e9f54ac144b3a95daf7bb42f59e35adc","_id":"calcdate@1.0.1","_nodeVersion":"10.16.0","_npmVersion":"6.11.3","dist":{"integrity":"sha512-yTUhZ5re8YeGwDNS/C+aND9qyiKTjyGGaGHlOHq0tf948qyFTOkcwL9ZpCgoyAcW8d//IrydPoZyj53p3dVjzg==","shasum":"5f3f898343b7aad4097cee362cdea6e063f63818","tarball":"https://registry.npmjs.org/calcdate/-/calcdate-1.0.1.tgz","fileCount":25,"unpackedSize":1020127,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJddOj3CRA9TVsSAnZWagAAx/kP/1lclAi3eoAIRSSrpgjH\nEYwvZ7t41684CYTcJXGIqRG7s8EAIfnzhc48FnYQyf8u7rJ4Q6aqGjfgJ09S\nVm/7XpJVI+QN79aMqdyDJ/4MTkJvlXdhYC2qKdAijI0tgZDuR0QnkYzTI91P\nkip4WBeifZtEtiqWph64Bm0LEiqYYqD5uze7SDzfbHXdNIzUHzp8d2Ioi6s8\ntW0W/3tCMrjGfQ71/XB56xuGwI40QOmCe3vGmFLO8tfzFbUedlveugHXQZIk\n/wYiqOmNR3n5heosYmbXYalxCinfndeV2woMZj4KpeycWjonVf1L3m28bezI\nTM2ryt/eeChIJMLsTyfnM11n+5rSV1S2MzKu6HP2yRILPD5AzaFNWJw6bHOX\ngPrtFNDXvWcbL5DdjmyC4VQofMGOAnWxBc6uwUi5sbZmNAR+fR0EkX8dahVS\nnLS+phPSmXSDmkz2e1UiC/0r7B3UN3vhyrVeR0yMMlp2Sjeo7MzEgWNDtFRp\nNlPI+FT465mFk0Jc3pUXJnxMfN0Py/vawhujJeQlxz1t1Zw69xvvHXZzPIc/\nDEBthGn0KyiiBVa5Hq6oFj1AkPMh+YeHv/cjpPutL8z1rZbaS4JjSEwEB6yS\nSu+v9bCotw8yUKBBLppBFHtRyjjzRvxjIjdttjaq0vcrZMCrJ+NQURrLf1DU\njWWI\r\n=qNhv\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDt+VLYMmnxPP6GDr7+TUU/tquElQi4pmtBNYufes7IpwIgGtkoIaHT8cQvr81zNXAVeA9a/nPEQNJDIhxwff3Fxtg="}]},"maintainers":[{"name":"zyclotrop","email":"zyclotrop.j@gmail.com"}],"_npmUser":{"name":"zyclotrop","email":"zyclotrop.j@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/calcdate_1.0.1_1567942902302_0.10049442408604592"},"_hasShrinkwrap":false},"1.0.2":{"name":"calcdate","version":"1.0.2","description":"Evalate a date expression calc`now + 3 days`)!","main":"dist/datecalculator.js","scripts":{"build":"webpack","test":"jest","build:all":"yarn build:browser && yarn build:node","build:browser":"webpack && cp dist/datecalculator.js examples/browser","build:node":"webpack && cp dist/datecalculator.js examples/node/ && node examples/node/example.js"},"sideEffects":false,"repository":{"type":"git","url":"git+https://github.com/Zyclotrop-j/DateCalculator.git"},"keywords":["date","js","date-fns","moment","luxon","calculator","peg","date-util"],"author":{"name":"Jannes Mingram","url":"Jannes@Mingram.net"},"license":"MIT","bugs":{"url":"https://github.com/Zyclotrop-j/DateCalculator/issues"},"homepage":"https://github.com/Zyclotrop-j/DateCalculator#readme","peerDependencies":{"date-fns":"^2.0.1","luxon":"^1.17.2","moment":"^2.24.0"},"devDependencies":{"@babel/core":"^7.5.5","@babel/preset-env":"^7.5.5","babel-jest":"^24.9.0","babel-loader":"^8.0.6","babel-plugin-add-module-exports":"^1.0.2","babel-preset-env":"^1.6.1","codegen.macro":"^3.0.0","cross-env":"^5.2.1","date-fns":"^2.0.1","eslint":"^6.3.0","eslint-loader":"^3.0.0","jest":"^24.9.0","luxon":"^1.17.2","moment":"^2.24.0","pegjs":"^0.10.0","preval.macro":"^3.0.0","set-tz":"^0.2.0","webpack":"^4.4.1","webpack-cli":"^3.3.7"},"gitHead":"29bd32a6376a2f7c04f33de965d32bd14ee8481f","_id":"calcdate@1.0.2","_nodeVersion":"10.16.0","_npmVersion":"6.11.3","dist":{"integrity":"sha512-QiKwzgldy0RI1ExnQmkarRneDIaA0cJEUjnEhwEKtA+jatsxlDRMVSKwZUF1iwtjvJ+K2scWqEu5C96IQRkjNw==","shasum":"3acb07b0667d3c77259633ea01cf5880b3332944","tarball":"https://registry.npmjs.org/calcdate/-/calcdate-1.0.2.tgz","fileCount":25,"unpackedSize":1020225,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJddOofCRA9TVsSAnZWagAAas0P/i2Y1jaSNce1EQwT4KUt\nA3kOGCQPJ/CDRIDM12d9+moUi2mIHbyNGR7VbqzpPooTFdh9Yiwtt198Xoqt\neBedI1gAtTcKZxOxY9wVtiR6ajLHYMBDK97UhaozhN1mwuokSkfbW3/wIP7r\n0LldQAbICs8J72+JBU5drxUcVPm5LnJ3Mtji8B0jimS4y/nJzWYDvdBGkFw2\nITQ44oar0jCCbGGTZi2AtdqBTWv6VOkxEy/IPo6IEQHAcBgluvZXLGwZeP05\np+D/+H1ArZQoM28ATC/WNE5pd5uNjklzD0EPAZLHznJr6tg288dYj9rYC6+H\nnJNdgSYN65wJH3cZRL5n/nmYxnGTe3vGUMKIG/s5RIgNspucZIqz6WP9K0aJ\nRlA1aLabz66SdsRVooFiADlArQrOliE0r+AtiLsoZHB++ZjRv5vIrh+I+Cdu\nVpsx/h03ecgOfwP6Q3IS8AmOWA6LqJLHYMPK21n5AJVu/od1E3GiXgIvgjUn\nhMhnfRbqt494plIAMiT5JjtmgdJUee1Sl4fyHNxbclCNBb1XYEIMKzJN9ksG\nAP3nP3vIbZL5C0Yh27bAcAFfB5QS68RUVCFFpgybXpHGiY1YNBPgUVXaZNiE\nOZBDwke0kuiivxLFbFtsTSw01LAeTd2WiEvuuYLx4+RxbmKJYWiv0MIptBJD\n6gNZ\r\n=QKIQ\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCCD6uP7CH0BRHq3k+LP019f26xZKnmXKmJ/yvaWT/KSAIhAM8u7AFUOleXDS2XVM0zEhu4UFs/qGheh7QLoPLbcOFR"}]},"maintainers":[{"name":"zyclotrop","email":"zyclotrop.j@gmail.com"}],"_npmUser":{"name":"zyclotrop","email":"zyclotrop.j@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/calcdate_1.0.2_1567943198884_0.6146073527327427"},"_hasShrinkwrap":false},"2.0.0":{"name":"calcdate","version":"2.0.0","description":"Evalate a date expression calc`now + 3 days`)!","main":"dist/datecalculator.js","scripts":{"build":"webpack","test":"env TZ=UTC jest","build:all":"yarn build:browser && yarn build:node","build:browser":"webpack && cp dist/datecalculator.js examples/browser","build:node":"webpack && cp dist/datecalculator.js examples/node/ && node examples/node/example.js"},"sideEffects":false,"repository":{"type":"git","url":"git+https://github.com/Zyclotrop-j/DateCalculator.git"},"keywords":["date","js","date-fns","moment","luxon","calculator","peg","date-util"],"author":{"name":"Jannes Mingram","url":"Jannes@Mingram.net"},"license":"MIT","bugs":{"url":"https://github.com/Zyclotrop-j/DateCalculator/issues"},"homepage":"https://github.com/Zyclotrop-j/DateCalculator#readme","peerDependencies":{"date-fns":"^2.0.1","luxon":"^1.17.2","moment":"^2.24.0"},"devDependencies":{"@babel/core":"^7.5.5","@babel/preset-env":"^7.5.5","babel-jest":"^24.9.0","babel-loader":"^8.0.6","babel-plugin-add-module-exports":"^1.0.2","babel-preset-env":"^1.6.1","codegen.macro":"^3.0.0","cross-env":"^5.2.1","date-fns":"^2.0.1","eslint":"^6.3.0","eslint-loader":"^3.0.0","jest":"^24.9.0","luxon":"^1.17.2","moment":"^2.24.0","pegjs":"^0.10.0","preval.macro":"^3.0.0","set-tz":"^0.2.0","webpack":"^4.4.1","webpack-cli":"^3.3.7"},"gitHead":"001994b9dc226ee8da7d7ef895f0d8dfcedc66b5","_id":"calcdate@2.0.0","_nodeVersion":"14.4.0","_npmVersion":"6.14.5","dist":{"integrity":"sha512-SviaG9gOlpia/V25SgYFwQatgiwk6PknHgdzPAQRYMMOBEWM3+NsBdMINPkXHPVRqC8mliQZxLCUzdqZb+onCQ==","shasum":"c1bcdb4a781d334d6422b6a2553216189451824e","tarball":"https://registry.npmjs.org/calcdate/-/calcdate-2.0.0.tgz","fileCount":36,"unpackedSize":1039177,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfHOZqCRA9TVsSAnZWagAAk5sP/3iVbKZuuyCYq1XYs9jS\nMXmNCgXfyhRjCs7qAW2K4krKXjKQAKveJkqPkJ030OFw2pr/E6VLiKjXzlpm\nRs78Wtlr4zYcMsLrrpX2DOEX8A3lKe6nndxlphmfXCw0QfiBJUQDr45E9WTR\nMMIPevNFmDJTpMchJFEdJp2sCL7+Bgo1KQFfxv39M0VgJeDhWEwXy9bIv2E0\nprbwRaPkdcHsFvuOo0vrVXuZuMdJ7GTfKwAAfslEqr4EerYwY9yQuqHLkKzl\nufF2PDLBHbw3rMLRqV4EjOdfKAj1uBOLjXLAZkY4trbHnAcYV1AataDfYWcQ\niFP2BnXndoRH0Zfau1T11mI8AZaQhnWgsbKUTn2LNPBk/SqpVWFN5tTbpEX+\nsaBgB+liMbv8GiKfOQOFOlxKf8vK90B1Wjs86d4iR4nuZA80DFtptOtGcLkT\n8wQNSVUDU9XfMsyW2uvEzYZ4BeQ9PZA6HLBFHS/LWHBh6jqzjuLdETdlbgmC\nAHHM7HOyY6pj7uuJG1KktZ3KfOJ40qMO6KST8pJu5T1EwA+kmMcuJLAqiEjk\nH7mKWcAQ+xR4AZ8P1wdFBD1R0s9YMAW5/BdUrPz1CN8Xqttv5HnEFNEqnko8\nroMA4p72qXVINPq0K54W5lnJS/xxmTlFWgPx1mcA0cMKnlas6wF46woB9Crm\nC1MO\r\n=xQAf\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBO9GhnVgz2f8GtihkDuvNS7ATQluPA3zQm4hunT21GNAiEAkEYZvCqWSOGYx04IcfDOBYPETMCmhPQvjaG7jV5XqZA="}]},"maintainers":[{"name":"zyclotrop","email":"zyclotrop.j@gmail.com"}],"_npmUser":{"name":"zyclotrop","email":"zyclotrop.j@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/calcdate_2.0.0_1595729514099_0.6373356295580153"},"_hasShrinkwrap":false},"2.0.1":{"name":"calcdate","version":"2.0.1","description":"Evalate a date expression calc`now + 3 days`)!","main":"dist/datecalculator.js","scripts":{"build":"webpack","test":"env TZ=UTC jest","build:all":"yarn build:browser && yarn build:node","build:browser":"webpack && cp dist/datecalculator.js examples/browser","build:node":"webpack && cp dist/datecalculator.js examples/node/ && node examples/node/example.js"},"sideEffects":false,"repository":{"type":"git","url":"git+https://github.com/Zyclotrop-j/DateCalculator.git"},"keywords":["date","js","date-fns","moment","luxon","calculator","peg","date-util"],"author":{"name":"Jannes Mingram","url":"Jannes@Mingram.net"},"license":"MIT","bugs":{"url":"https://github.com/Zyclotrop-j/DateCalculator/issues"},"homepage":"https://github.com/Zyclotrop-j/DateCalculator#readme","peerDependencies":{"date-fns":"^2.0.1","luxon":"^1.17.2","moment":"^2.24.0"},"devDependencies":{"@babel/core":"^7.5.5","@babel/preset-env":"^7.5.5","babel-jest":"^24.9.0","babel-loader":"^8.0.6","babel-plugin-add-module-exports":"^1.0.2","babel-preset-env":"^1.6.1","codegen.macro":"^3.0.0","cross-env":"^5.2.1","date-fns":"^2.0.1","eslint":"^6.3.0","eslint-loader":"^3.0.0","jest":"^24.9.0","luxon":"^1.17.2","moment":"^2.24.0","pegjs":"^0.10.0","preval.macro":"^3.0.0","set-tz":"^0.2.0","webpack":"^4.4.1","webpack-cli":"^3.3.7"},"gitHead":"da6b2058e1f06c1428bc04b0a4e9cae0f07731b9","_id":"calcdate@2.0.1","_nodeVersion":"14.4.0","_npmVersion":"6.14.5","dist":{"integrity":"sha512-2MIF/5kemh99nVNflXvfow0MrcBtWxpARNN4UeLwiSnFPTUWZ1QY3Wt+AR6B1/hY/mtFPAe0QfmU2unOD98+IA==","shasum":"0ba0d986e0fb678d9ba9939915e752dc63a706c2","tarball":"https://registry.npmjs.org/calcdate/-/calcdate-2.0.1.tgz","fileCount":36,"unpackedSize":1039404,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfHOpqCRA9TVsSAnZWagAARJAP/Rk1DDSRG3QrS/ZU25HZ\nXyFGyg65xS3m6bcoYKEbq4OURxlXraMbRFkV6qn8w9oJ5KrS1NjXlUXjX1jR\n47Sgl3o5Das+t7D9vNGMNCzDdZeuC2OITB3aiMsTntHQvGcDWD8COUgxWy+s\nJsl42SFCqmFT/GUPhWEtSBrL60oGCX2SbsNRGfMYUCanKWoO6L8njVAeqkdM\nNvmLQHMt56N1PPe7sggiWVwwONep/OfBEVRfvaMrMPRenYgNH3crljLgUA+I\n/nQ1TeglkRY0QyI/hPCLlKr0VOro0Pb/ljgD2Vae3NwUaqRHiWMeuYjWN36k\nyGXh+8K3ms56KdRnnhkpkYLLg7bArDEQIbH/GWhtMz2rxQwkqZlPhadjQxZZ\n8IZr5r9CaJgRKAWBbSaC5HcJ8I9kydzpI4NzzgJ4g4DNrAdzd2oxBHAToETx\nMLZwZW4ir5RbuOgmYn2KicHmWGKGT5fR/F8t/uGb3cdsX74jUdOO9PRO94Sv\nXknKvKc8pLPJfekfXcqGgQKGSr8ykLJLQiwiXo4aAd+QTzH1wZuoH1FzwBH2\nXci26AEDiILhLz382jZ85T+xvHsoTf4ZvXs87QaNqodn4bK3YC+4iylCPvS1\ntij4F61bTYcqD+tm396Yfy13opXePDrs+3bWpTVMU2eM3enc0TP5wr/fe7di\nIb3+\r\n=EHnH\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIHrX9bgCTwuA0jg1f4BBHa8RHlunETI0Fu4U1z4mMTtQAiB0IfLm3ihSEYrjuHnUhYBvEtc+dpX7cwL5/vvIDRZ/GQ=="}]},"maintainers":[{"name":"zyclotrop","email":"zyclotrop.j@gmail.com"}],"_npmUser":{"name":"zyclotrop","email":"zyclotrop.j@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/calcdate_2.0.1_1595730537611_0.47129846280882637"},"_hasShrinkwrap":false},"2.0.2":{"name":"calcdate","version":"2.0.2","description":"Evalate a date expression calc`now + 3 days`)!","main":"dist/datecalculator.js","scripts":{"build":"webpack","test":"env TZ=UTC jest","build:all":"yarn build:browser && yarn build:node","build:browser":"webpack && cp dist/datecalculator.js examples/browser","build:node":"webpack && cp dist/datecalculator.js examples/node/ && node examples/node/example.js"},"sideEffects":false,"repository":{"type":"git","url":"git+https://github.com/Zyclotrop-j/DateCalculator.git"},"keywords":["date","js","date-fns","moment","luxon","calculator","peg","date-util"],"author":{"name":"Jannes Mingram","url":"Jannes@Mingram.net"},"license":"MIT","bugs":{"url":"https://github.com/Zyclotrop-j/DateCalculator/issues"},"homepage":"https://github.com/Zyclotrop-j/DateCalculator#readme","peerDependencies":{"date-fns":"^2.0.1","luxon":"^1.17.2","moment":"^2.24.0"},"devDependencies":{"@babel/core":"^7.5.5","@babel/preset-env":"^7.5.5","babel-jest":"^24.9.0","babel-loader":"^8.0.6","babel-plugin-add-module-exports":"^1.0.2","babel-preset-env":"^1.6.1","codegen.macro":"^3.0.0","cross-env":"^5.2.1","date-fns":"^2.0.1","eslint":"^6.3.0","eslint-loader":"^3.0.0","jest":"^24.9.0","luxon":"^1.17.2","moment":"^2.24.0","pegjs":"^0.10.0","preval.macro":"^3.0.0","set-tz":"^0.2.0","webpack":"^4.4.1","webpack-cli":"^3.3.7"},"gitHead":"e34ae630b0776f19329be950880d044822ca806a","_id":"calcdate@2.0.2","_nodeVersion":"14.4.0","_npmVersion":"6.14.5","dist":{"integrity":"sha512-Ue9iHWdXHQxgGOxr2AKvl+rjzSCSfEi5TsD++9TVSYsZOx46jholPh54ZjiK/CPy84dU0mLzEB+Vb3lKXNAqIw==","shasum":"cf2c6016b989a777201555baed87a4b7b5049927","tarball":"https://registry.npmjs.org/calcdate/-/calcdate-2.0.2.tgz","fileCount":36,"unpackedSize":1039656,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfHOtCCRA9TVsSAnZWagAAL14QAIDxwoh6pBmDRZJs/CaG\nE/n3RRzP9o/nqjyfH9XffU9I3LBrVao43rCcyPIcDG90gFrLzHeeazCQPEMK\nYJ0Jk9v1lSm7OPL+1fOscJ9+YFaZJKOUDwnIHjnwe6xkRqy+LxNaTVqmINg0\ng0jcFfaN6p7YQO09XTFE4GlsJkjqvUHHQxl1e/gpK8kPygIXU3zYBCGPGi9H\nioThFAkTJKsYGWCgSHm5DpfSe+jDqXz7IVzramztfiyaZ4Q/AxSFXGYXvaJW\nmPqaiLvsD9nxQT/RV+ZsWw8ZsX/dyNFFPwdvv15XVmzGbLxqFC6kW+1pjKB2\ngAzpzI+Qi5C35yXT6xl3UpL2lKMIlbAAIbwQR6t3DZyQ+zjllKKsXtfys8V5\nB5f0NgtJ4mtFKo0OsIWQhJRkpIagsa1CwKHEx6oOUFRwhuIYIDe6IA17UC5j\nmYoqN9s5SEdwOoaI6SaD4PSWZyoaLqBt20y2c0qmUlVqmnZpjtXy8G0KkTa2\nyP3bOozykO5HbOJ1YL+vazmFPP1abUmiE9A77msumprB6LBcJn5jpFmvb0Sv\nHr5+jzotRaYUEbnKBJqDCGbyBJriWgf8Cr08z4Zkn57SZN/Cxcy0mmWgdxX8\nbjjlWA485b0nkD+BjJfOPMEdoJ63wPTveLU0rlCOBA0G5993UaBrW5nPRcCa\njfUO\r\n=Qevi\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDafI2ddcgGB88sgkUrgZc46B6KfwlRkLgKjGpXsjJ2yQIgROezB+fQBFSsxL3Rg6+EOs2CbfXOrBXrpYhUE6JZQ0o="}]},"maintainers":[{"name":"zyclotrop","email":"zyclotrop.j@gmail.com"}],"_npmUser":{"name":"zyclotrop","email":"zyclotrop.j@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/calcdate_2.0.2_1595730753994_0.7205226819235246"},"_hasShrinkwrap":false},"2.0.3":{"name":"calcdate","version":"2.0.3","description":"Evalate a date expression calc`now + 3 days`)!","main":"dist/datecalculator.js","scripts":{"build":"webpack","test":"env TZ=UTC jest","build:all":"yarn build:browser && yarn build:node","build:browser":"webpack && cp dist/datecalculator.js examples/browser","build:node":"webpack && cp dist/datecalculator.js examples/node/ && node examples/node/example.js"},"sideEffects":false,"repository":{"type":"git","url":"git+https://github.com/Zyclotrop-j/DateCalculator.git"},"keywords":["date","js","date-fns","moment","luxon","calculator","peg","date-util"],"author":{"name":"Jannes Mingram","url":"Jannes@Mingram.net"},"license":"MIT","bugs":{"url":"https://github.com/Zyclotrop-j/DateCalculator/issues"},"homepage":"https://github.com/Zyclotrop-j/DateCalculator#readme","peerDependencies":{"date-fns":"^2.0.1","luxon":"^1.17.2","moment":"^2.24.0"},"devDependencies":{"@babel/core":"^7.5.5","@babel/preset-env":"^7.5.5","babel-jest":"^24.9.0","babel-loader":"^8.0.6","babel-plugin-add-module-exports":"^1.0.2","babel-preset-env":"^1.6.1","codegen.macro":"^3.0.0","cross-env":"^5.2.1","date-fns":"^2.0.1","eslint":"^6.3.0","eslint-loader":"^3.0.0","jest":"^24.9.0","luxon":"^1.17.2","moment":"^2.24.0","pegjs":"^0.10.0","preval.macro":"^3.0.0","set-tz":"^0.2.0","webpack":"^4.4.1","webpack-cli":"^3.3.7"},"gitHead":"814aa0e6661bd73a870da009f269130e85bfa965","_id":"calcdate@2.0.3","_nodeVersion":"14.4.0","_npmVersion":"6.14.5","dist":{"integrity":"sha512-qQtV+APi+z2y11xq1EGrHQz63TnNF0LtLTzFPWdsXZeOxegfrUvZtKbn7Nk0fnKMqFEx8HpwzoiOG8UkMpDOGA==","shasum":"e65a6b05e3bd6a4d414f9b6eee92fd482793ae4f","tarball":"https://registry.npmjs.org/calcdate/-/calcdate-2.0.3.tgz","fileCount":36,"unpackedSize":1039989,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfHOzLCRA9TVsSAnZWagAAr10P/2De7B3JlCe4btVe1btu\n7++YA2hTBVBygoW68sGPDi7ob/igONHHWDpD77XJB/zqqGJAe9pHeDXjjDz/\nKeFH6vJotBjhHPelYDDj2pvWC/Cr1SefyZHr74wKwumZFLsULsyYVPoHpigb\nm+8twtuVWoMEGjLJNle7fwTNCH58dCGdREHeY/FVxqB3BHZ6sFPy1sIuVCM1\nFy6F18e6sHbCjHfLaXsZwFevvYHLEa9kV7Thl00Ijh74LkkZzWidHwf9LRaR\ny4RO6L/cMvUtgiq7aI6FCSDmkubfgPCu/BOoQjYcsaBIEsEM8q+b3TCHl2ll\nNSm1ScL72oKPhkLFYTmEtuh1xdk2Lmi5eAGIfykImS+rGmqiN4fycVFVW5uy\n7qTcNgkjV+yL6cjn8gs0Od4M6uu/rD9HNQgajTG/0DgX/zH31OiXKoP66pzO\nf61lN5XwG44Q3mFXUMEC3U+eftVlPITvm77z1bY/ffw3eqrKfB50PW0henKI\ncNPn8XDGkCs0QwRCyt7kyaYNz7ORos6WykWzPgUzHpnXawNW7B48+BDnLPe7\nz3msXuGkH7fQM/u4LGfH7W1BAr9POMAyr6K4Cl8ggsye0XWQrpftb/y0KIBY\nyrLIQ3CcOj93i216Pw6A9asvMZ3NI7l0irqskOdzih52zS3q6F8EI7fSHBWh\nMOJt\r\n=NaXN\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDFKTqFkslKbMzkapIqNAHUo1PuCcel13dXQcFgwd6EIQIgBrRXi/sas2lU4gmyTrqyuNbaC3EpY9Qp4nZV8Zi8NNY="}]},"maintainers":[{"name":"zyclotrop","email":"zyclotrop.j@gmail.com"}],"_npmUser":{"name":"zyclotrop","email":"zyclotrop.j@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/calcdate_2.0.3_1595731147313_0.18832425145545129"},"_hasShrinkwrap":false}},"time":{"created":"2019-09-08T11:34:01.845Z","0.0.1":"2019-09-08T11:34:01.998Z","modified":"2022-04-12T05:03:19.537Z","1.0.0":"2019-09-08T11:35:25.593Z","1.0.1":"2019-09-08T11:41:42.453Z","1.0.2":"2019-09-08T11:46:39.052Z","2.0.0":"2020-07-26T02:11:54.348Z","2.0.1":"2020-07-26T02:28:57.793Z","2.0.2":"2020-07-26T02:32:34.169Z","2.0.3":"2020-07-26T02:39:07.477Z"},"maintainers":[{"name":"zyclotrop","email":"zyclotrop.j@gmail.com"}],"description":"Evalate a date expression calc`now + 3 days`)!","homepage":"https://github.com/Zyclotrop-j/DateCalculator#readme","keywords":["date","js","date-fns","moment","luxon","calculator","peg","date-util"],"repository":{"type":"git","url":"git+https://github.com/Zyclotrop-j/DateCalculator.git"},"author":{"name":"Jannes Mingram","url":"Jannes@Mingram.net"},"bugs":{"url":"https://github.com/Zyclotrop-j/DateCalculator/issues"},"license":"MIT","readme":"# Date Calculator\r\n\r\n## TL;DR\r\n\r\n### ES6\r\n\r\n```\r\nimport { calc } from \"calcdate\";\r\n// import { datefnscalc } from \"calcdate\"; // with date-fns\r\n// import { luxoncalc } from \"calcdate\"; // with luxon\r\n// import { luxonsimplecalc } from \"calcdate\"; // with luxon\r\n// import { momentcalc } from \"calcdate\"; // with moment\r\n// import moment from \"moment\";\r\n\r\nconst dval = calc();\r\n// const dval = momentcalc(moment);\r\n\r\ndval`now + 3 days + 5 hours`;\r\n```\r\n\r\n### Node\r\n\r\n```\r\nconst calc = require(\"calcdate\").default;\r\n// const luxoncalc = require(\"calcdate\").luxoncalc;\r\n// import luxon from \"luxon\";\r\nconst dval = calc();\r\n// const dval = luxoncalc(luxon);\r\n\r\ndval`now + 3 days + 5 hours`;\r\n```\r\n\r\n### runkit api\r\n\r\n```\r\nhttps://embed-sw29njl68eg5.runkit.sh/P1d\r\n// https://embed-sw29njl68eg5.runkit.sh/datefns/now+5d\r\n// https://embed-sw29njl68eg5.runkit.sh/moment/now+5d\r\n// https://embed-sw29njl68eg5.runkit.sh/luxon/now+5d\r\n```\r\n\r\n## Install\r\n\r\n```\r\nyarn add calcdate\r\n```\r\n\r\n```\r\nnpm i calcdate\r\n```\r\n\r\n## git repo\r\n\r\n[Find source code on git](https://github.com/Zyclotrop-j/calcdate)\r\n\r\n![Bundle size](https://badgen.net/bundlephobia/minzip/react \"Bundle size\")\r\n\r\n[![CircleCI](https://circleci.com/gh/Zyclotrop-j/calcdate/tree/master.svg?style=svg)](https://circleci.com/gh/Zyclotrop-j/calcdate/tree/master)\r\n\r\n## Dependencies\r\n\r\nThere are **no direct dependencies**!\r\n\r\nWe recommend using this lib with your favourite date-time lib, use the bindings provided.\r\n\r\n| import                | required dependency                      | import                                              |\r\n| --------------------- | ---------------------------------------- | --------------------------------------------------- |\r\n| datefnsCalculator     | [date-fns](https://date-fns.org)         | `import { datefnsCalculator } from \"calcdate\";`     |\r\n| luxonCalculator       | [luxon](https://moment.github.io/luxon/) | `import { luxonCalculator } from \"calcdate\";`       |\r\n| simpleluxonCalculator | [luxon](https://moment.github.io/luxon/) | `import { simpleluxonCalculator } from \"calcdate\";` |\r\n| momentCalculator      | [moment](https://momentjs.com/)          | `import { momentCalculator } from \"calcdate\";`      |\r\n\r\n**Note**\r\nYou need to initialize the calculator with your library:\r\n\r\n```\r\nimport { datefnsCalculator } from \"calcdate\"\r\nimport datefns from \"datefns\";\r\n\r\nconst calculator = datefnsCalculator(datefns);\r\n```\r\n\r\n## Api docs\r\n\r\nCalling the calculator is easy:\r\n\r\n```\r\ncalculator`<expression>`\r\n```\r\n\r\n**Example**\r\n\r\n```\r\n// Imports\r\nimport { datefnsCalculator } from \"calcdate\"\r\nimport datefns from \"datefns\";\r\n// Setup\r\nconst calculator = datefnsCalculator(datefns);\r\n\r\n// Examples:\r\ncalculator`2009-12T12:34`;\r\n\r\ncalculator`P0002--10-15T10:+30:20`;\r\n\r\ncalculator`NOW + 7days`;\r\n\r\ncalculator`2009-12T12:00 - 2019-12T12:00`;\r\n```\r\n\r\nwhere calculator is your imported calculator and expression is what you want calculated. The following section outlines what is permitted in expressions.\r\n\r\n### Initializing\r\n\r\nThe calculator has to be initialized by passing it the library you are usigng it with with.\r\n```\r\nconst luxon = require(\"luxon\");\r\nconst calculator = require(\"calcdate\").luxoncalc(luxon);\r\n```\r\n\r\n### Types\r\n\r\nBeing a date-calculator the primary types used in expressions are date-times and the differences in between them (being durations and intervals).\r\n\r\n#### Date-Time\r\n\r\nA datetime is an exact point in time. It can be expressed as a ISO-8601-date-time (see [w3](https://www.w3.org/TR/NOTE-datetime) and [wikipedia](https://en.wikipedia.org/wiki/ISO_8601#Time_zone_designators)). Simply put, use the format `YYYY-MM-DDThh:mm:ss.sss` (\"extended format\"). All parts (but the year) are optional. If a part is not present, its default is used (0 for times and 1 for dates; `2019` = `2019-01-01T00:00:00.000`). You can also use the normal form `YYYYMMDD hhmmsssss`. You can also add a time-zone using `YYYY-MM-DDThh:mm:ss.sss+-hh:mm` or `YYYY-MM-DDThh:mm:ss.sssZ` for utc.\r\n\r\n**Examples**\r\n\r\n```\r\n2009-12T12:34 // Tue Dec 01 2009 12:34:00 GMT+1100 (Australian Eastern Daylight Time)\r\n2009 // Thu Jan 01 2009 11:00:00 GMT+1100 (Australian Eastern Daylight Time)\r\n2009-05-19 // Tue May 19 2009 10:00:00 GMT+1000 (Australian Eastern Standard Time)\r\n 2009-05-19  // Tue May 19 2009 00:00:00 GMT+1000 (Australian Eastern Standard Time)\r\n2009-05 // Fri May 01 2009 10:00:00 GMT+1000 (Australian Eastern Standard Time)\r\n2009-001 // Thu Jan 01 2009 00:00:00 GMT+1100 (Australian Eastern Daylight Time)\r\n2009-05-19 // Tue May 19 2009 10:00:00 GMT+1000 (Australian Eastern Standard Time)\r\n2009-05-19T00:00 // Tue May 19 2009 00:00:00 GMT+1000 (Australian Eastern Standard Time)\r\n2009-05-19T14:31 // Tue May 19 2009 14:31:00 GMT+1000 (Australian Eastern Standard Time)\r\n2009-05-19T14:39:22 // Tue May 19 2009 14:39:22 GMT+1000 (Australian Eastern Standard Time)\r\n2009-05-19T14:39Z // Wed May 20 2009 00:39:00 GMT+1000 (Australian Eastern Standard Time)\r\n2009-05-19T14:39:22-06:00 // Wed May 20 2009 06:39:22 GMT+1000 (Australian Eastern Standard Time)\r\n2009-05-19T14:39:22+0600 // Tue May 19 2009 18:39:22 GMT+1000 (Australian Eastern Standard Time)\r\n2007-04-06T00:00 // Fri Apr 06 2007 00:00:00 GMT+1000 (Australian Eastern Standard Time)\r\n200912T1234 // Tue Dec 01 2009 12:34:00 GMT+1100 (Australian Eastern Daylight Time)\r\n2009 // Thu Jan 01 2009 11:00:00 GMT+1100 (Australian Eastern Daylight Time)\r\n20090519 // Tue May 19 2009 10:00:00 GMT+1000 (Australian Eastern Standard Time)\r\n 20090519  // Tue May 19 2009 00:00:00 GMT+1000 (Australian Eastern Standard Time)\r\n200905 // Fri May 01 2009 10:00:00 GMT+1000 (Australian Eastern Standard Time)\r\n2009001 // Thu Jan 01 2009 00:00:00 GMT+1100 (Australian Eastern Daylight Time)\r\n20090519 // Tue May 19 2009 10:00:00 GMT+1000 (Australian Eastern Standard Time)\r\n20090519 0000 // Tue May 19 2009 00:00:00 GMT+1000 (Australian Eastern Standard Time)\r\n20090519 1431 // Tue May 19 2009 14:31:00 GMT+1000 (Australian Eastern Standard Time)\r\n20090519 143922 // Tue May 19 2009 14:39:22 GMT+1000 (Australian Eastern Standard Time)\r\n20090519 1439Z // Wed May 20 2009 00:39:00 GMT+1000 (Australian Eastern Standard Time)\r\n20090519 143922-06:00 // Wed May 20 2009 06:39:22 GMT+1000 (Australian Eastern Standard Time)\r\n20090519 143922+0600 // Tue May 19 2009 18:39:22 GMT+1000 (Australian Eastern Standard Time)\r\n20070406 0000 // Fri Apr 06 2007 00:00:00 GMT+1000 (Australian Eastern Standard Time)\r\n```\r\n\r\n##### Binding depended\r\n\r\nEach parser may provide its own parsing-from-string mechanism using `{....}`-notation.\r\n\r\n**Example**\r\n`{\"2012 juillet\", \"YYYY MMM\", \"fr\"}` + moment-bindings\r\n`{\"12/11/2000\", \"MM/dd/yyyy\"}` + luxon-bindings\r\n\r\n#### Duration\r\n\r\nA duration expresses a time-period, aka \"how long\". A duration may be expressed using an iso-duration or the short-hand notation as follows.\r\n\r\n**Note**\r\nWithout a start- or end-date (see Interval) the units in a duration are hard to compare. For example, a duration of `1 month` can be either anywhere from 28 days (2019-02-01/2019-03-01) to 31 days (2019-12-01/2020-01-01). Therefore some operations might be unsafe to perform, such as `1 month / 1 days` (interpreted as \"how many days fit into a month\"). Depending on the bindings a loss of information and accuracy may occurs. (Also see [luxon-notes](https://moment.github.io/luxon/docs/manual/math.html#duration-math).)\r\n\r\n##### Short-hand notation\r\n\r\nEach short-hand notation has three different forms which can be used synonymously: spelled-out singular, plural and shorthand (which makes it a shorthand-shorthand, I guess?). Whitespace is irrelevant. So `1 day`, `1 days`, `1 d`, `1day`, `1days`, `1d` all mean \"1 day\".\r\n\r\n| singular    | plural       | shorthand | example | notes              |\r\n| ----------- | ------------ | --------- | ------- | ------------------ |\r\n| millisecond | milliseconds | ms        | `5ms`   |                    |\r\n| second      | seconds      | s         | `1 s`   | alias: ss, sec     |\r\n| minute      | minutes      | m         | `1 min` | alias: min, mm, Tm |\r\n| hour        | hours        | h         | `1 h`   | alias: hh          |\r\n| day         | days         | d         | `1 d`   |                    |\r\n| weekday     | weekdays     | wd        | `1 wd`  |                    |\r\n| week        | weeks        | w         | `1 w`   |                    |\r\n| fortnight   | fortnights   | fn        | `1 fn`  | = two weeks        |\r\n| month       | months       | M         | `1 M`   | alias: l, L        |\r\n| quarter     | quarters     | q         | `1 q`   |                    |\r\n| year        | years        | y         | `1 y`   | alias: a           |\r\n\r\nIn general these notation are **caseinsensetive** and can be pluralized, with the following exceptions:\r\n\r\n- `M`, months, not to be confused with `m`, minutes\r\n- `m`, minutes, see above\r\n- `ms`, milliseconds, not to be confused `Ms`, plural of `M`, months\r\n\r\n##### Iso-Notation\r\n\r\nDurations may be written in iso as `PnYnMnDTnHnMnS` (where `n` is a any number).\r\nFrom [wikipedia](https://en.wikipedia.org/wiki/ISO_8601#Durations):\r\n\r\n> P is the duration designator (for period) placed at the start of the duration representation.\r\n>\r\n> Y is the year designator that follows the value for the number of years.\r\n>\r\n> M is the month designator that follows the value for the number of months.\r\n>\r\n> W is the week designator that follows the value for the number of weeks.\r\n>\r\n> D is the day designator that follows the value for the number of days.\r\n>\r\n> T is the time designator that precedes the time components of the representation.\r\n>\r\n> H is the hour designator that follows the value for the number of hours.\r\n>\r\n> M is the minute designator that follows the value for the number of minutes.\r\n>\r\n> S is the second designator that follows the value for the number of seconds.\r\n\r\n\"+\" and \"-\" are allowed for the entire expression and parts individually. Thus `+P1Y` (1 year), `-P1Y` (minus 1 year) and `-P-1y` (minus minus 1 year = 1 year) are valid.\r\n\r\n**Examples**\r\n\r\n```\r\n// Iso extended form, any number of digits allowed\r\nP1Y2M3DT4H05M600S // 1 year, 2 months, 3 days, 4 hours, 5 minutes, 600 seconds\r\nPT3H5M // 3 hours, 5 minus\r\nP1Y // 1 year\r\nP-1Y1M // -1 year, 1 month -> effectively 11 month\r\nP1DT-30S // 1 day, -30 seconds\r\nP1Y // 1 year\r\nP2M // 2 month\r\nP3D // 3 days\r\nPT4H // 4 hours\r\nPT05M // 5 minutes; padding with 0s is allowed\r\nPT600S // 600 seconds; more than 2 digits are allowed\r\nP1y2m3dT4h5m6s // 1 year, 2 months, 3 days, 4 hours, 5 minutes, 6 seconds; case-insensitive\r\n// Iso-short-form, 4 digits for year, 2 for each other component\r\nP00021015T103020 // 2 years, 10 months, 15 days, 10 hours, 30 minutes, 20 seconds\r\nP00021015 // 2 years, 10 months, 15 days\r\nP0002-10-15T10:30:20 // 2 years, 10 months, 15 days, 10 hours, 30 minutes, 20 seconds\r\nP0002-10-15 // 2 years, 10 months, 15 days\r\n+P00021015T103020\r\n+P00021015\r\n+P0002-10-15T10:30:20\r\n+P0002-10-15\r\n-P00021015T103020 // -2 years, -10 months, -15 days, -10 hours, -30 minutes, -20 seconds\r\n-P00021015\r\n-P0002-10-15T10:30:20\r\n-P0002-10-15\r\nP+00021015T103020\r\nP0002-1015\r\nP0002--10-15T10:+30:20 // 2 years, -10 month, 15 days, 10 hours, 30 minutes, 20 seconds\r\nP0002-10--15 // 2 years, 10 months, -15 days\r\n-P0002-10--15 // -2 years, -10 months, --15 days = 15 days\r\n```\r\n\r\n**Note**\r\nThe time designator is **mandatory** when denoting times, so `P1H` would be _invalid_ while `PT1H` would be fine.\r\n\r\n##### Binding depended\r\n\r\nEach parser may provide its own parsing-from-string mechanism using `[....]`-notation.\r\n\r\n**Example**\r\n`[ {\"years\": 1, \"quarters\"\": 3, \"milliseconds\": 27} ]` + luxon-bindings - uses `luxon.Duration.fromObject`\r\n\r\n#### Interval\r\n\r\nAn interval expresses the duration between a start- and an end-date. It can be understood as a box for two dates and the duration in between. Hence an interval can be constructed by providing a start- and an end-date, or a start-date and a duration (end-date = start-date + duration), or an end-date and a duration (start-date = end-date - duration).\r\n\r\nIntervals may be written as Iso-intervals. The three options are:\r\n\r\n- Iso-Date-Time/Iso-Date-Time\r\n- Iso-Date-Time/Iso-Duration\r\n- Iso-Duration/Iso-Date-Time\r\n\r\nIso-Date-Time and Iso-Duration use the same parsing mechanisms described above and hence allow the notations outlined above.\r\n\r\n**Examples**\r\n\r\n```\r\n2009-12T12:34/20090519 143922+0600\r\nP1Y2M3DT4H05M600S/2009-12T12:34\r\n2009-12T12:34/P1Y2M3DT4H05M600S\r\n```\r\n\r\nFor more examples, combine any date-time example with another date-time-example or any duration-example.\r\n\r\n**Note**\r\nNot all bindings support intervals!\r\n\r\n##### Binding depended\r\n\r\nEach parser may provide its own parsing-from-string mechanism using `~....~`-notation.\r\n\r\n**Example**\r\n`~2007-03-01T13:00:00Z/P1Y2M10DT2H30M~` + luxon-bindings - uses `luxon.Interval.fromISO`\r\n\r\n\r\n\r\n#### Unitless\r\n\r\nYou may enter \"bare\" numbers, such as `2`. They are treated as such. This might be useful for scalar operations such as `2 * 2d` (`= 4 d`).\r\n\r\n**Examples**\r\n\r\n```\r\n1\r\n0\r\n100\r\n-10\r\n-5\r\n0\r\n-09\r\n1 + 1 // 2\r\n10 + 15 - 25 // 0\r\n3 * 5 // 15\r\n3d * -1 // -3d\r\n88 / 11 // 8\r\n1 / 2 // 0.5\r\n2.5 * 2 // 5\r\n2d * 5 // 10d\r\n7 - 8 // -1\r\n```\r\n\r\n**Warning**\r\n\r\nLonger number are going to be interpreted as Iso-dates and thus might fail parsing!\r\nIf you need to use numbers with more digits than 3, consider using interpolation instead.\r\n\r\n```\r\n2000 // 2000-01-01T00:00:00\r\n`${2000}` // 'number' 2000\r\n```\r\n\r\n#### Custom / Existing values\r\n\r\nUse interpolation to insert custom type:\r\n\r\n```\r\ncalculator`${any_thing_here}`\r\n```\r\n\r\nThis allows you to use your existing Date/luxon-Date-Times/moments/luxon-Intervals/... directly in the calculator.\r\n\r\n**The bindings define what custom types are supported!**\r\n\r\nThat means, if you interpolate a datefnsCalculator with a luxon-Date-Time it will likely throw an error, as date-fns can't make sense of the luxon-object.\r\n\r\n**Examples**\r\n\r\n```\r\nimport DateTime from 'luxon/src/datetime.js';\r\n\r\nluxonCalculator`${DateTime.fromSQL(...)} + ${{ hours: 3, minutes: 13 }}`\r\n```\r\n\r\n```\r\nimport moment from 'moment';\r\n\r\nmomentCalculator`${moment()} + ${moment.duration(2, 'seconds');}`\r\n```\r\n\r\n### Operations\r\n\r\n#### Add (\"plus\", \"+\")\r\n\r\nAdds two \"things\". The binding implementation defines what \"add\" means and if it has a meaning at all!\r\n\r\n**Example**\r\n`1d + 1h`\r\n\r\n| Binding      | Type a   | Type b   | Result          | Notes                             |\r\n| ------------ | -------- | -------- | --------------- | --------------------------------- |\r\n| simple       | Date     | Date     | Error           |                                   |\r\n| simple       | Date     | Duration | Timestamp (Int) | Loses accuracy due to conversion  |\r\n| simple       | Duration | Date     | Timestamp (Int) | Loses accuracy due to conversion  |\r\n| simple       | Duration | Duration | Duration        |                                   |\r\n| simple       | Unitless | Unitless | Unitless        |                                   |\r\n| simple       | Unitless | \\*       | Error           |                                   |\r\n| simple       | any      | any      | any             | Cast to date/duration; else error |\r\n| -------      | -------- | -------- | --------------- | --------------------------------  |\r\n| date-fns     | Date     | Date     | Error           |                                   |\r\n| date-fns     | Date     | Duration | Date            |                                   |\r\n| date-fns     | Duration | Date     | Date            |                                   |\r\n| date-fns     | Duration | Duration | Duration        |                                   |\r\n| date-fns     | Unitless | Unitless | Unitless        |                                   |\r\n| date-fns     | \\*       | \\*       | Error           |                                   |\r\n| -------      | -------- | -------- | --------------- | --------------------------------  |\r\n| luxon        | Date     | Date     | Error           |                                   |\r\n| luxon        | Date     | Duration | Date            |                                   |\r\n| luxon        | Date     | Interval | Date            | Date + Duration(Interval)         |\r\n| luxon        | Duration | Date     | Date            |                                   |\r\n| luxon        | Duration | Duration | Duration        |                                   |\r\n| luxon        | Duration | Interval | Interval        | Shifts interval by duration       |\r\n| luxon        | Interval | Date     | Interval        | Interval extended to Date         |\r\n| luxon        | Interval | Duration | Interval        | Shifts interval by duration       |\r\n| luxon        | Interval | Interval | Interval        | Union of intervals                |\r\n| luxon        | Unitless | Unitless | Unitless        |                                   |\r\n| luxon        | \\*       | \\*       | Error           |                                   |\r\n| -------      | -------- | -------- | --------------- | --------------------------------  |\r\n| simple-luxon | Date     | Date     | Error           |                                   |\r\n| simple-luxon | Date     | Duration | Date            |                                   |\r\n| simple-luxon | Duration | Date     | Date            |                                   |\r\n| simple-luxon | Duration | Duration | Duration        |                                   |\r\n| simple-luxon | Unitless | Unitless | Unitless        |                                   |\r\n| simple-luxon | \\*       | \\*       | Error           |                                   |\r\n| -------      | -------- | -------- | --------------- | --------------------------------  |\r\n| moment       | Date     | Date     | Error           |                                   |\r\n| moment       | Date     | Duration | Date            |                                   |\r\n| moment       | Duration | Date     | Date            |                                   |\r\n| moment       | Duration | Duration | Duration        |                                   |\r\n| moment       | Unitless | Unitless | Unitless        |                                   |\r\n| moment       | \\*       | \\*       | Error           |                                   |\r\n\r\n#### Subtract (\"minus\", \"-\")\r\n\r\nSubtracts two \"things\" - binding defines the meaning. Can also be interpreted as a \"until\", as in \"2019 - 2020\" yielding an interval between those in some implementations.\r\n\r\n**Example**\r\n`1d - 5h`\r\n\r\n| Binding      | Type a   | Type b   | Result          | Notes                                 |\r\n| ------------ | -------- | -------- | --------------- | ------------------------------------- |\r\n| simple       | Date     | Date     | Number          | Difference of times in milliseconds   |\r\n| simple       | Date     | Duration | Timestamp (Int) | Loses accuracy due to conversion      |\r\n| simple       | Duration | Date     | Timestamp (Int) | Same as Date - Duration               |\r\n| simple       | Duration | Duration | Duration        |                                       |\r\n| simple       | Unitless | Unitless | Unitless        |                                       |\r\n| simple       | \\*       | \\*       | \\*              | Cast to date/duration; else error     |\r\n| -------      | -------- | -------- | --------------- | --------------------------------      |\r\n| date-fns     | Date     | Date     | Duration        | Difference between the two dates      |\r\n| date-fns     | Date     | Duration | Date            |                                       |\r\n| date-fns     | Duration | Date     | Date            | Same as Date - Duration               |\r\n| date-fns     | Duration | Duration | Duration        |                                       |\r\n| date-fns     | Unitless | Unitless | Unitless        |                                       |\r\n| date-fns     | \\*       | \\*       | Error           |                                       |\r\n| -------      | -------- | -------- | --------------- | --------------------------------      |\r\n| luxon        | Date     | Date     | Interval        | Interval(start: Date a, end: Date b)  |\r\n| luxon        | Date     | Duration | Date            | Puts date into the past by duration   |\r\n| luxon        | Date     | Interval | Date            | Date - Duration(Interval)             |\r\n| luxon        | Duration | Date     | Date            | Same as Date - Duration               |\r\n| luxon        | Duration | Duration | Duration        |                                       |\r\n| luxon        | Duration | Interval | Interval        | Same as Interval - Duration           |\r\n| luxon        | Interval | Date     | Interval        | Limits Interval by Date               |\r\n| luxon        | Interval | Duration | Interval        | Shifts interval by duration           |\r\n| luxon        | Interval | Interval | Interval        | Intersection or Interval between both |\r\n| luxon        | Unitless | Unitless | Unitless        |                                       |\r\n| luxon        | \\*       | \\*       | Error           |                                       |\r\n| -------      | -------- | -------- | --------------- | --------------------------------      |\r\n| simple-luxon | Date     | Date     | Error           |                                       |\r\n| simple-luxon | Date     | Duration | Date            |                                       |\r\n| simple-luxon | Duration | Date     | Error           |                                       |\r\n| simple-luxon | Duration | Duration | Duration        |                                       |\r\n| simple-luxon | Unitless | Unitless | Unitless        |                                       |\r\n| simple-luxon | \\*       | \\*       | Error           |                                       |\r\n| -------      | -------- | -------- | --------------- | --------------------------------      |\r\n| moment       | Date     | Date     | Error           |                                       |\r\n| moment       | Date     | Duration | Date            |                                       |\r\n| moment       | Duration | Date     | Error           |                                       |\r\n| moment       | Duration | Duration | Duration        |                                       |\r\n| moment       | Unitless | Unitless | Unitless        |                                       |\r\n| moment       | \\*       | \\*       | Error           |                                       |\r\n\r\n#### Multiply (\"\\*\")\r\n\r\n**Example**\r\n`5d * 3`\r\n\r\n| Binding      | Type a   | Type b   | Result          | Notes                            |\r\n| ------------ | -------- | -------- | --------------- | -------------------------------- |\r\n| simple       | Duration | Unitless | Duration        |                                  |\r\n| simple       | Unitless | Duration | Duration        |                                  |\r\n| simple       | Unitless | Unitless | Unitless        |                                  |\r\n| simple       | \\*       | \\*       | Error           |                                  |\r\n| -------      | -------- | -------- | --------------- | -------------------------------- |\r\n| date-fns     | Duration | Unitless | Duration        |                                  |\r\n| date-fns     | Unitless | Duration | Duration        |                                  |\r\n| date-fns     | Unitless | Unitless | Unitless        |                                  |\r\n| date-fns     | \\*       | \\*       | Error           |                                  |\r\n| -------      | -------- | -------- | --------------- | -------------------------------- |\r\n| luxon        | Unitless | Interval | Interval        | Shifts Interval.start back       |\r\n| luxon        | Interval | Unitless | Interval        | Shifts Interval.start forward    |\r\n| luxon        | Duration | Unitless | Duration        |                                  |\r\n| luxon        | Unitless | Duration | Duration        |                                  |\r\n| luxon        | Unitless | Unitless | Unitless        |                                  |\r\n| luxon        | \\*       | \\*       | Error           |                                  |\r\n| -------      | -------- | -------- | --------------- | -------------------------------- |\r\n| simple-luxon | Duration | Unitless | Duration        |                                  |\r\n| simple-luxon | Unitless | Duration | Duration        |                                  |\r\n| simple-luxon | Unitless | Unitless | Unitless        |                                  |\r\n| simple-luxon | \\*       | \\*       | Error           |                                  |\r\n| -------      | -------- | -------- | --------------- | -------------------------------- |\r\n| moment       | Duration | Unitless | Duration        |                                  |\r\n| moment       | Unitless | Duration | Duration        |                                  |\r\n| moment       | Unitless | Unitless | Unitless        |                                  |\r\n| moment       | \\*       | \\*       | Error           |                                  |\r\n\r\n#### Divide (\"/\")\r\n\r\nDivide things Split \"things\" into `n` equal parts.\r\n\r\n| Binding      | Type a   | Type b   | Result          | Notes                                        |\r\n| ------------ | -------- | -------- | --------------- | -------------------------------------------- |\r\n| simple       | Duration | Unitless | Duration        |                                              |\r\n| simple       | Unitless | Unitless | Unitless        |                                              |\r\n| simple       | \\*       | \\*       | Error           |                                              |\r\n| -------      | -------- | -------- | --------------- | --------------------------------             |\r\n| date-fns     | Duration | Unitless | Duration        |                                              |\r\n| date-fns     | Unitless | Duration | Duration        | Inverts each duration part                   |\r\n| date-fns     | Duration | Duration | Unitless        | Loses accuracy due to conversion             |\r\n| date-fns     | Unitless | Unitless | Unitless        |                                              |\r\n| date-fns     | \\*       | \\*       | Error           |                                              |\r\n| -------      | -------- | -------- | --------------- | --------------------------------             |\r\n| luxon        | Date     | Date     | Interval        | Interval(start: Date a, end: Date b)         |\r\n| luxon        | Interval | Unitless | Duration        | Duration c fits Unitless times into Interval |\r\n| luxon        | Interval | Duration | Unitless        | Duration b fits Unitless times into Interval |\r\n| luxon        | Interval | Unitless | Duration        |                                              |\r\n| luxon        | Duration | Duration | Unitless        | Loses accuracy due to conversion             |\r\n| luxon        | Duration | Unitless | Duration        |                                              |\r\n| luxon        | Unitless | Duration | Duration        | Inverts each duration part                   |\r\n| luxon        | Interval | 1u       | Interval        | Swops the interval (start->end, end->start)  |\r\n| luxon        | Unitless | Unitless | Unitless        |                                              |\r\n| luxon        | \\*       | \\*       | Error           |                                              |\r\n| -------      | -------- | -------- | --------------- | --------------------------------             |\r\n| simple-luxon | Duration | Unitless | Duration        |                                              |\r\n| simple-luxon | Unitless | Unitless | Unitless        |                                              |\r\n| simple-luxon | \\*       | \\*       | Error           |                                              |\r\n| -------      | -------- | -------- | --------------- | --------------------------------             |\r\n| moment       | Duration | Unitless | Duration        |                                              |\r\n| moment       | Unitless | Unitless | Unitless        |                                              |\r\n| moment       | \\*       | \\*       | Error           |                                              |\r\n\r\n### Other\r\n\r\nAdditionally `(` + `)` is permitted to group any expression and give its evaluation priority. Nesting is allowed. (Or expressed differently: `(...)` works as you would expect!)\r\n\r\n**Example**\r\n`( 1d - 5h ) * 2`\r\n\r\nOn top there is the keywords \"now\" (alias \"today\", both case-insensitive), which creates a Date-Time with the value of \"now\".\r\n\r\n### Operator precedence\r\n\r\n| Priority | Expression         | Example                            |\r\n| -------- | ------------------ | ---------------------------------- |\r\n| 1        | Interval           | 2009-12T12:34/20090519 143922+0600 |\r\n| 2        | now, today         | now, now(), Today                  |\r\n| 2        | Custom Constructor | {....}, [....], \\~....\\~           |\r\n| 2        | Duration           | P1D                                |\r\n| 2        | Date-Time          | 2019                               |\r\n| 2        | Duration shorthand | 1 day                              |\r\n| 3        | Unitless           | 1                                  |\r\n| 4        | Brackets           | ( .... )                           |\r\n| 5        | Multiply           | .. \\* ..                           |\r\n| 5        | Divide             | .. / ..                            |\r\n| 6        | Plus               | .. + ..                            |\r\n| 6        | Minus              | .. - ..                            |\r\n\r\nThis order insures that `2019/P1D` is an interval while `2019 / P1D` means \"divide 2019 by P1D\".\r\nIt also care to interpret `2019-08` as \"August of 2019\", while `2019 - 08` means \"The date 2019 minus unitless 8\".\r\n\r\n## Bring your own lib date-lib\r\n\r\nThe date-calculator itself is not bound to any library. You can 'teach' it to work with any library by implementing 'bindings'. To create a new calculator type import the calculatorFactory (aka \"parser\") and call it with your bindings (see below).\r\n\r\n```\r\nimport calculatorFactory from \"./calcdate\";\r\n\r\nconst yourCalculator = calculatorFactory({\r\n    makeDate: ...,\r\n    makeDuration: ...,\r\n    makeInterval: ...,\r\n    add: ...,\r\n    subtract: ...,\r\n    multiply: ...,\r\n    divide: ...\r\n});\r\n```\r\n\r\nYou will need to implement the following methods:\r\n\r\n### makeDate\r\n\r\nYou function to create a new date. It can take the following two signatures:\r\n\r\n- `makeDate(date: Native_Date, { type: calculatorFactory.NATIVEDATE }) : YourDateType`\r\n- `makeDate(date: any, { type: calculatorFactory.DATEXPRESION }) : YourDateType`, created by calculator`{any_string}`\r\n\r\n### makeDuration\r\n\r\n- `makeDuration({ milliseconds, seconds, minutes, hours, days, weekdays, weeks, months, years } : { milliseoncds: Number?, seconds: Number?, minutes: Number?, hours: Number?, days: Number?, weekdays: Number?, weeks: Number?, months: Number?, years: Number? }, { type: calculatorFactory.DURATIONOBJECT }) : YourDurationType`\r\n- `makeDuration(duration: any, { type: calculatorFactory.DURATIONEXPRESSION }) : YourDurationType`, created by calculator`[any_string]`\r\n\r\n### makeInterval\r\n\r\n- `makeInterval([from: YourDateType, to: YourDateType], { type: calculatorFactory.INTERVALOBJECT }) : YourIntervalType`\r\n- `makeInterval([from: YourDateType, to: YourDurationType], { type: calculatorFactory.INTERVALOBJECT }) : YourIntervalType`\r\n- `makeInterval([from: YourDurationType, to: YourDateType], { type: calculatorFactory.INTERVALOBJECT }) : YourIntervalType`\r\n- `makeInterval(interval: any, { type: calculatorFactory.DURATIONEXPRESSION }) : INTERVALEXPRESION`, created by calculator`~any_string~`\r\n\r\n### add\r\n\r\n`add(a, b) : c`, where `a, b, c` are `YourDateType | YourDurationType | YourIntervalType | { unitless: Number } | any`\r\n\r\n**Examples**\r\n\r\n- `now + 1 day` - `add(a: YourDateType, b: YourDurationType)`\r\n- `now + 1` - `add(a: YourDateType, { unitless: 1 } : { unitless: Number })`\r\n- `P3Y6M4DT12H30M5S + 1 day` - `add(a: YourDurationType, b: YourDurationType)`\r\n- `2019-01-01/2019-01-02 + now` - `add(a: YourIntervalType, b: YourDateType)`\r\n- `${new RegExp(\"foobar\")} + ~hello world~` - `add(a: any, b: YourIntervalType)`\r\n- `1d + 1h + 1m` - `add(add(a: YourDurationType, b: YourDurationType), x: YourDurationType)`\r\n\r\n**Note**\r\nYou **should** throw (helpful) errors when you can't make sense of the arguments. For example adding up two duration makes sense - adding up two dates might not! The same applies for all the operations!\r\n\r\n### subtract\r\n\r\n`subtract(a, b) : c`, where `a, b, c` are `YourDateType | YourDurationType | YourIntervalType | { unitless: Number } | any`\r\n\r\n- `now - 1 day` - `subtract(a: YourDateType, b: YourDurationType)`\r\n- `now - 1` - `subtract(a: YourDateType, { unitless: 1 } : { unitless: Number })`\r\n- `P3Y6M4DT12H30M5S - 1 day` - `subtract(a: YourDurationType, b: YourDurationType)`\r\n- `2019-01-01/2019-01-02 - now` - `subtract(a: YourIntervalType, b: YourDateType)`\r\n- `${new RegExp(\"foobar\")} - ~hello world~` - `subtract(a: any, b: YourIntervalType)`\r\n- `1d - 1h - 1m` - `subtract(add(a: YourDurationType, b: YourDurationType), x: YourDurationType)`\r\n\r\n**Note**\r\nYou **should** throw (helpful) errors when you can't make sense of the arguments. For example substracting a duration from a date makes sense - substracting a date from a duration might not!\r\n\r\n### multiply\r\n\r\n`multiply(a, b) : c`, where `a, b, c` are `YourDateType | YourDurationType | YourIntervalType | { unitless: Number } | any`\r\n\r\n- `now * 1 day` - `multiply(a: YourDateType, b: YourDurationType)`\r\n- `now * 1` - `multiply(a: YourDateType, { unitless: 1 } : { unitless: Number })`\r\n- `P3Y6M4DT12H30M5S * 1 day` - `multiply(a: YourDurationType, b: YourDurationType)`\r\n- `2019-01-01/2019-01-02 * now` - `multiply(a: YourIntervalType, b: YourDateType)`\r\n- `${new RegExp(\"foobar\")} * ~hello world~` - `multiply(a: any, b: YourIntervalType)`\r\n- `1d * 1h * 1m` - `multiply(add(a: YourDurationType, b: YourDurationType), x: YourDurationType)`\r\n\r\n**Note**\r\nYou **should** throw (helpful) errors when you can't make sense of the arguments. For example multiplying a duration by a unitless makes sense - multiplying a duration by another might not!\r\n\r\n### divide\r\n\r\n`divide(a, b) : c`, where `a, b, c` are `YourDateType | YourDurationType | YourIntervalType | { unitless: Number } | any`\r\n\r\n- `now / 1 day` - `divide(a: YourDateType, b: YourDurationType)`\r\n- `now / 1` - `divide(a: YourDateType, { unitless: 1 } : { unitless: Number })`\r\n- `P3Y6M4DT12H30M5S / 1 day` - `divide(a: YourDurationType, b: YourDurationType)`\r\n- `2019-01-01/2019-01-02 / now` - `divide(a: YourIntervalType, b: YourDateType)`\r\n- `${new RegExp(\"foobar\")} / ~hello world~` - `divide(a: any, b: YourIntervalType)`\r\n- `1d / 1h / 1m` - `divide(add(a: YourDurationType, b: YourDurationType), x: YourDurationType)`\r\n\r\n**Note**\r\nYou **should** throw (helpful) errors when you can't make sense of the arguments. For example dividing a duration by another might make sense (could be \"how many durations x fit into duration y\") - dividing a unitless by an interval might not!\r\n","readmeFilename":"Readme.md"}