{"_id":"@dytsou/calendar-build","_rev":"14-c4e91fb484dbc30bd8985aa222f31178","name":"@dytsou/calendar-build","dist-tags":{"latest":"2.4.0"},"versions":{"1.1.1":{"name":"@dytsou/calendar-build","version":"1.1.1","keywords":["calendar","build","template"],"author":{"name":"dytsou"},"license":"MIT","_id":"@dytsou/calendar-build@1.1.1","maintainers":[{"name":"dytsou","email":"dytsou@gmail.com"}],"homepage":"https://github.com/dytsou/cal#readme","bugs":{"url":"https://github.com/dytsou/cal/issues"},"bin":{"calendar-build":"build.js"},"dist":{"shasum":"928575a69e1a89c375f30da39163b921970cb19e","tarball":"https://registry.npmjs.org/@dytsou/calendar-build/-/calendar-build-1.1.1.tgz","fileCount":4,"integrity":"sha512-q2Y06sjOfEHtot4MfhGP7WRdTTTaCj0zSzrDJQOnl8LPF4bMBe/sMmyYFt4toUPeDbpzIl1TbNwJW4BzdAYyrA==","signatures":[{"sig":"MEUCIQDzssnguH03ZoeHsnC2Ng4fY6hjnpqJ2p/+k81MX2UyhwIgAWzMJDxt0Dw1KwlQOLCzEsl5BZLHbFdsIKg7ICipl2s=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":7000},"main":"build.js","engines":{"node":">=12.0.0"},"gitHead":"dee933066589386ee9bbf789037be87a4bcea157","scripts":{"build":"node build.js"},"_npmUser":{"name":"dytsou","email":"dytsou@gmail.com"},"repository":{"url":"git+https://github.com/dytsou/cal.git","type":"git"},"_npmVersion":"11.5.1","description":"Build script for calendar HTML from template and environment variables","directories":{},"_nodeVersion":"24.6.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/calendar-build_1.1.1_1763823087809_0.43745114518431594","host":"s3://npm-registry-packages-npm-production"}},"2.0.0":{"name":"@dytsou/calendar-build","version":"2.0.0","keywords":["calendar","build","template"],"author":{"name":"dytsou"},"license":"MIT","_id":"@dytsou/calendar-build@2.0.0","maintainers":[{"name":"dytsou","email":"dytsou@gmail.com"}],"homepage":"https://github.com/dytsou/cal#readme","bugs":{"url":"https://github.com/dytsou/cal/issues"},"bin":{"calendar-build":"scripts/build.js"},"dist":{"shasum":"8efd75b0ed5d4b94d7ef31bbe040f949724841f1","tarball":"https://registry.npmjs.org/@dytsou/calendar-build/-/calendar-build-2.0.0.tgz","fileCount":5,"integrity":"sha512-/qS1OgjdjW54hbvx/I8JLBMwOvQy+rdPN3ab5y4Qrw/slJ+VKJSiSY6x2Xosfb+sMmwuV9cnoNNYT/NoPdOU2Q==","signatures":[{"sig":"MEYCIQDl+lXGC97GbwbKutbHp7WmV4vOtgPZSiJ4X57dJZ4edAIhALbh4myLyepMLI9NXuOoE6pr/Nbt9Ogvm/ZNEgDUlzlz","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":31652},"main":"scripts/build.js","_from":"file:dytsou-calendar-build-2.0.0.tgz","engines":{"node":">=12.0.0"},"scripts":{"build":"node scripts/build.js","format":"prettier --write .","format:check":"prettier --check ."},"_npmUser":{"name":"dytsou","email":"dytsou@gmail.com"},"_resolved":"/private/var/folders/dk/z09d8d2n7jbdng515w1psz3c0000gn/T/509aa68433f58ca9aa4ccad064757653/dytsou-calendar-build-2.0.0.tgz","_integrity":"sha512-/qS1OgjdjW54hbvx/I8JLBMwOvQy+rdPN3ab5y4Qrw/slJ+VKJSiSY6x2Xosfb+sMmwuV9cnoNNYT/NoPdOU2Q==","repository":{"url":"git+https://github.com/dytsou/cal.git","type":"git"},"_npmVersion":"11.5.1","description":"Build script for calendar HTML from template and environment variables","directories":{},"_nodeVersion":"24.6.0","dependencies":{"glob":"13.0.0","fernet":"^0.3.3"},"_hasShrinkwrap":false,"devDependencies":{"prettier":"^3.7.4","wrangler":"4.54.0","browserify":"^17.0.1"},"_npmOperationalInternal":{"tmp":"tmp/calendar-build_2.0.0_1766923884590_0.9522573369469529","host":"s3://npm-registry-packages-npm-production"}},"2.0.1":{"name":"@dytsou/calendar-build","version":"2.0.1","keywords":["calendar","build","template"],"author":{"name":"dytsou"},"license":"MIT","_id":"@dytsou/calendar-build@2.0.1","maintainers":[{"name":"dytsou","email":"dytsou@gmail.com"}],"homepage":"https://github.com/dytsou/cal#readme","bugs":{"url":"https://github.com/dytsou/cal/issues"},"bin":{"calendar-build":"scripts/build.js"},"dist":{"shasum":"9b77cd5800bcd2d1aa5060520286ec16723ee027","tarball":"https://registry.npmjs.org/@dytsou/calendar-build/-/calendar-build-2.0.1.tgz","fileCount":8,"integrity":"sha512-cJo03GeJeYYxbrqirIhKjFIs7fTCKwWT/UsGZD5aLQcRqsMHbioxov4wTPUp6IVewuY7sO4eHrDKs4/N3+DcQg==","signatures":[{"sig":"MEUCIFPIxxfQDtUkVfxjg90A5nZ6ysnguz/rJ/8RooMbQNTiAiEAhqJKHqjcMWCI3y2NqIBQnAoPqvp6z1sMuHwAhG4tb58=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":51101},"main":"scripts/build.js","_from":"file:dytsou-calendar-build-2.0.1.tgz","engines":{"node":">=12.0.0"},"scripts":{"build":"node scripts/build.js","format":"prettier --write .","format:check":"prettier --check ."},"_npmUser":{"name":"dytsou","email":"dytsou@gmail.com"},"_resolved":"/private/var/folders/dk/z09d8d2n7jbdng515w1psz3c0000gn/T/421bedea137f3aa70069af42ca8679f5/dytsou-calendar-build-2.0.1.tgz","_integrity":"sha512-cJo03GeJeYYxbrqirIhKjFIs7fTCKwWT/UsGZD5aLQcRqsMHbioxov4wTPUp6IVewuY7sO4eHrDKs4/N3+DcQg==","repository":{"url":"git+https://github.com/dytsou/cal.git","type":"git"},"_npmVersion":"11.5.1","description":"Build script for calendar HTML from template and environment variables","directories":{},"_nodeVersion":"24.6.0","dependencies":{"glob":"13.0.0","fernet":"^0.3.3"},"_hasShrinkwrap":false,"devDependencies":{"prettier":"^3.7.4","wrangler":"4.54.0","browserify":"^17.0.1"},"_npmOperationalInternal":{"tmp":"tmp/calendar-build_2.0.1_1767000436891_0.1585788433846118","host":"s3://npm-registry-packages-npm-production"}},"2.1.0":{"name":"@dytsou/calendar-build","version":"2.1.0","keywords":["calendar","build","template"],"author":{"name":"dytsou"},"license":"MIT","_id":"@dytsou/calendar-build@2.1.0","maintainers":[{"name":"dytsou","email":"dytsou@gmail.com"}],"homepage":"https://github.com/dytsou/cal#readme","bugs":{"url":"https://github.com/dytsou/cal/issues"},"bin":{"calendar-build":"scripts/build.js"},"dist":{"shasum":"0a82890064f7b625d9e89e93088e5924637c7faa","tarball":"https://registry.npmjs.org/@dytsou/calendar-build/-/calendar-build-2.1.0.tgz","fileCount":8,"integrity":"sha512-ldi6g74iegFNpqxcoZ4iP6Nz/ma4eWTLYZX3+S/om3oBVSc9VhruX3Rf9jbe3JqTcfx3WUKXcNEQhtfyiZAMjg==","signatures":[{"sig":"MEQCIGZ7bVH23PjaOA2iZVb+iRTslyXek4+sT62aYfEk+B7OAiA3t7pYKlP7savjkZ5tJbWk0uKrB6hgzomUPohxE3CgaQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":61597},"main":"scripts/build.js","_from":"file:dytsou-calendar-build-2.1.0.tgz","engines":{"node":">=12.0.0"},"scripts":{"build":"node scripts/build.js","format":"prettier --write .","format:check":"prettier --check ."},"_npmUser":{"name":"dytsou","email":"dytsou@gmail.com"},"_resolved":"/private/var/folders/dk/z09d8d2n7jbdng515w1psz3c0000gn/T/25e480a82bcf854588069317289a86cc/dytsou-calendar-build-2.1.0.tgz","_integrity":"sha512-ldi6g74iegFNpqxcoZ4iP6Nz/ma4eWTLYZX3+S/om3oBVSc9VhruX3Rf9jbe3JqTcfx3WUKXcNEQhtfyiZAMjg==","repository":{"url":"git+https://github.com/dytsou/cal.git","type":"git"},"_npmVersion":"11.5.1","description":"Build script for calendar HTML from template and environment variables","directories":{},"_nodeVersion":"24.6.0","dependencies":{"glob":"13.0.0","fernet":"^0.3.3"},"_hasShrinkwrap":false,"devDependencies":{"prettier":"^3.7.4","wrangler":"4.54.0","browserify":"^17.0.1"},"_npmOperationalInternal":{"tmp":"tmp/calendar-build_2.1.0_1767008307350_0.48654159323460355","host":"s3://npm-registry-packages-npm-production"}},"2.1.1":{"name":"@dytsou/calendar-build","version":"2.1.1","keywords":["calendar","build","template"],"author":{"name":"dytsou"},"license":"MIT","_id":"@dytsou/calendar-build@2.1.1","maintainers":[{"name":"dytsou","email":"dytsou@gmail.com"}],"homepage":"https://github.com/dytsou/cal#readme","bugs":{"url":"https://github.com/dytsou/cal/issues"},"bin":{"calendar-build":"scripts/build.js"},"dist":{"shasum":"6c92877554a89b4341bf98a38d6ae590fb5bdef6","tarball":"https://registry.npmjs.org/@dytsou/calendar-build/-/calendar-build-2.1.1.tgz","fileCount":8,"integrity":"sha512-WTGG4lNXVEkYqI/dAzBbXhJvqkl4Iu+SO3mGQhse8Yd9fRsm8bnV9xcTYzprkv4rGi0P52TRBjZ1JwlpzX/dfw==","signatures":[{"sig":"MEQCIAEgyqioqtor3JNwdwq3T1KegCjCSIeiQ65I9oEoDR0ZAiABuGQuGiyiK3c7UdrRqwu15yAuuti+RKRc6YJCtIdACA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":76024},"main":"scripts/build.js","_from":"file:dytsou-calendar-build-2.1.1.tgz","engines":{"node":">=12.0.0"},"scripts":{"build":"node scripts/build.js","format":"prettier --write .","format:check":"prettier --check ."},"_npmUser":{"name":"dytsou","email":"dytsou@gmail.com"},"_resolved":"/private/var/folders/dk/z09d8d2n7jbdng515w1psz3c0000gn/T/9a5115891769129e8a7b862fcf1a8c57/dytsou-calendar-build-2.1.1.tgz","_integrity":"sha512-WTGG4lNXVEkYqI/dAzBbXhJvqkl4Iu+SO3mGQhse8Yd9fRsm8bnV9xcTYzprkv4rGi0P52TRBjZ1JwlpzX/dfw==","repository":{"url":"git+https://github.com/dytsou/cal.git","type":"git"},"_npmVersion":"11.5.1","description":"Build script for calendar HTML from template and environment variables","directories":{},"_nodeVersion":"24.6.0","dependencies":{"glob":"13.0.0","fernet":"^0.3.3"},"_hasShrinkwrap":false,"devDependencies":{"prettier":"^3.7.4","wrangler":"4.54.0","browserify":"^17.0.1"},"_npmOperationalInternal":{"tmp":"tmp/calendar-build_2.1.1_1767033874661_0.4127070730338436","host":"s3://npm-registry-packages-npm-production"}},"2.1.4":{"name":"@dytsou/calendar-build","version":"2.1.4","keywords":["calendar","build","template"],"author":{"name":"dytsou"},"license":"MIT","_id":"@dytsou/calendar-build@2.1.4","maintainers":[{"name":"dytsou","email":"dytsou@gmail.com"}],"homepage":"https://github.com/dytsou/cal#readme","bugs":{"url":"https://github.com/dytsou/cal/issues"},"bin":{"calendar-build":"scripts/build.js"},"dist":{"shasum":"337af0b3133c5f861208e61ce995b84ceae62429","tarball":"https://registry.npmjs.org/@dytsou/calendar-build/-/calendar-build-2.1.4.tgz","fileCount":8,"integrity":"sha512-qxFyOqB5Zbp/0ztAjdQ6Of9AO/rrO8Ft53wb7HugpPdENArq0d4iN0EmHsMKY+oqJwcAOJZR7er6H8iXaLS1LQ==","signatures":[{"sig":"MEUCIQDWPW1aWN/hxdRFKdnnjeg+r0QGwg3zUfyjwmDDEphxvwIgFuNlBEqr2A9vD9Zps+RHi4TFl+6SSLEf0HHAOree7PY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":75720},"main":"scripts/build.js","_from":"file:dytsou-calendar-build-2.1.4.tgz","engines":{"node":">=12.0.0"},"scripts":{"build":"node scripts/build.js","format":"prettier --write .","format:check":"prettier --check ."},"_npmUser":{"name":"dytsou","email":"dytsou@gmail.com"},"_resolved":"/private/var/folders/dk/z09d8d2n7jbdng515w1psz3c0000gn/T/b003d815bac96f946dc796fcc3ed9020/dytsou-calendar-build-2.1.4.tgz","_integrity":"sha512-qxFyOqB5Zbp/0ztAjdQ6Of9AO/rrO8Ft53wb7HugpPdENArq0d4iN0EmHsMKY+oqJwcAOJZR7er6H8iXaLS1LQ==","repository":{"url":"git+https://github.com/dytsou/cal.git","type":"git"},"_npmVersion":"11.5.1","description":"Build script for calendar HTML from template and environment variables","directories":{},"_nodeVersion":"24.6.0","dependencies":{"glob":"13.0.0","fernet":"^0.3.3"},"_hasShrinkwrap":false,"devDependencies":{"prettier":"^3.7.4","wrangler":"4.58.0"},"_npmOperationalInternal":{"tmp":"tmp/calendar-build_2.1.4_1768024710506_0.37329935717048346","host":"s3://npm-registry-packages-npm-production"}},"2.1.5":{"name":"@dytsou/calendar-build","version":"2.1.5","keywords":["calendar","build","template"],"author":{"name":"dytsou"},"license":"MIT","_id":"@dytsou/calendar-build@2.1.5","maintainers":[{"name":"dytsou","email":"dytsou@gmail.com"}],"homepage":"https://github.com/dytsou/cal#readme","bugs":{"url":"https://github.com/dytsou/cal/issues"},"bin":{"calendar-build":"scripts/build.js"},"dist":{"shasum":"5882d4a202c12421f5ff7b27245ae070a8d607ac","tarball":"https://registry.npmjs.org/@dytsou/calendar-build/-/calendar-build-2.1.5.tgz","fileCount":8,"integrity":"sha512-ujpjdlxi+yntPN8qLx/yCqUGcORjwQoyP8aNbjUIj2E1cUHusvNYGsiaXeD2begyRLdV1ar6c3eCyOoH1JNLrA==","signatures":[{"sig":"MEUCIFTrPLc8spa7oTcngJE7uZgDAg8RfdTYUsx/PE1P7DwsAiEAhM3ZSNHfBUhypDmFDGdbmx0foUJvrh/MS/KVBwuDx14=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":75773},"main":"scripts/build.js","_from":"file:dytsou-calendar-build-2.1.5.tgz","engines":{"node":">=12.0.0"},"scripts":{"build":"node scripts/build.js","format":"prettier --write .","format:check":"prettier --check .","publish:npmjs":"pnpm publish --access public"},"_npmUser":{"name":"dytsou","email":"dytsou@gmail.com"},"_resolved":"/private/var/folders/dk/z09d8d2n7jbdng515w1psz3c0000gn/T/534d03f6ab80197683a2a93d79642602/dytsou-calendar-build-2.1.5.tgz","_integrity":"sha512-ujpjdlxi+yntPN8qLx/yCqUGcORjwQoyP8aNbjUIj2E1cUHusvNYGsiaXeD2begyRLdV1ar6c3eCyOoH1JNLrA==","repository":{"url":"git+https://github.com/dytsou/cal.git","type":"git"},"_npmVersion":"11.5.1","description":"Build script for calendar HTML from template and environment variables","directories":{},"_nodeVersion":"24.6.0","dependencies":{"glob":"13.0.0","fernet":"^0.3.3"},"_hasShrinkwrap":false,"devDependencies":{"prettier":"^3.7.4","wrangler":"4.58.0"},"_npmOperationalInternal":{"tmp":"tmp/calendar-build_2.1.5_1768028169958_0.6959379408962483","host":"s3://npm-registry-packages-npm-production"}},"2.1.6":{"name":"@dytsou/calendar-build","version":"2.1.6","keywords":["calendar","build","template"],"author":{"name":"dytsou"},"license":"MIT","_id":"@dytsou/calendar-build@2.1.6","maintainers":[{"name":"dytsou","email":"dytsou@gmail.com"}],"homepage":"https://github.com/dytsou/cal#readme","bugs":{"url":"https://github.com/dytsou/cal/issues"},"bin":{"calendar-build":"scripts/build.js"},"dist":{"shasum":"43914902e29de9f2f48f2cdbb48bdf2b7a345bd2","tarball":"https://registry.npmjs.org/@dytsou/calendar-build/-/calendar-build-2.1.6.tgz","fileCount":8,"integrity":"sha512-z7NnfhDRsfScb78ExCzxHHI5GjuXKsobSIG1froMBjiZXN5FO60tBxxtjfDW9I9T1BOd5VkomwRXLbhJUckX4g==","signatures":[{"sig":"MEUCIQCqUKRBg9zcwbHd7QrkWWJO2n8WtCk3NOT6dpWZ9Ij1zgIgcRF0dWPypJRSsUgF8KU8Aun9oeUN8ANfgWl3NaHVnkA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":75773},"main":"scripts/build.js","_from":"file:dytsou-calendar-build-2.1.6.tgz","engines":{"node":">=12.0.0"},"scripts":{"build":"node scripts/build.js","format":"prettier --write .","format:check":"prettier --check .","publish:npmjs":"pnpm publish --access public"},"_npmUser":{"name":"dytsou","email":"dytsou@gmail.com"},"_resolved":"/private/var/folders/dk/z09d8d2n7jbdng515w1psz3c0000gn/T/acd24751866aceb9d797cf8b20a8fc42/dytsou-calendar-build-2.1.6.tgz","_integrity":"sha512-z7NnfhDRsfScb78ExCzxHHI5GjuXKsobSIG1froMBjiZXN5FO60tBxxtjfDW9I9T1BOd5VkomwRXLbhJUckX4g==","repository":{"url":"git+https://github.com/dytsou/cal.git","type":"git"},"_npmVersion":"11.5.1","description":"Build script for calendar HTML from template and environment variables","directories":{},"_nodeVersion":"24.6.0","dependencies":{"glob":"13.0.0","fernet":"^0.3.3"},"_hasShrinkwrap":false,"devDependencies":{"prettier":"^3.7.4","wrangler":"4.60.0"},"_npmOperationalInternal":{"tmp":"tmp/calendar-build_2.1.6_1769173178280_0.49478682026439635","host":"s3://npm-registry-packages-npm-production"}},"2.1.7":{"name":"@dytsou/calendar-build","version":"2.1.7","keywords":["calendar","build","template"],"author":{"name":"dytsou"},"license":"MIT","_id":"@dytsou/calendar-build@2.1.7","maintainers":[{"name":"dytsou","email":"dytsou@gmail.com"}],"homepage":"https://github.com/dytsou/cal#readme","bugs":{"url":"https://github.com/dytsou/cal/issues"},"bin":{"calendar-build":"scripts/build.js"},"dist":{"shasum":"1585338e64daa557e83ca0cbf1d2d6acfc96a32e","tarball":"https://registry.npmjs.org/@dytsou/calendar-build/-/calendar-build-2.1.7.tgz","fileCount":8,"integrity":"sha512-52VntULCCCm3HN/gqtJulPS0iYrlYozDvIDHuwgs2wBtB1PPdeUXCRE4ep3bITwRgmqrNCVwnFIyBpwhtnVDLw==","signatures":[{"sig":"MEYCIQDEajy7BxElPws5QnZsKiW1sEs/6VQ5engcF3pWpJ7evQIhAMxw/475bnpDnEq1VJyYA4azKGQsySbxfM1liE86Hk2i","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":75773},"main":"scripts/build.js","_from":"file:dytsou-calendar-build-2.1.7.tgz","engines":{"node":">=12.0.0"},"scripts":{"build":"node scripts/build.js","format":"prettier --write .","format:check":"prettier --check .","publish:npmjs":"pnpm publish --access public"},"_npmUser":{"name":"dytsou","email":"dytsou@gmail.com"},"_resolved":"/private/var/folders/dk/z09d8d2n7jbdng515w1psz3c0000gn/T/300d5bfcd895e504282d5b000e5e2f66/dytsou-calendar-build-2.1.7.tgz","_integrity":"sha512-52VntULCCCm3HN/gqtJulPS0iYrlYozDvIDHuwgs2wBtB1PPdeUXCRE4ep3bITwRgmqrNCVwnFIyBpwhtnVDLw==","repository":{"url":"git+https://github.com/dytsou/cal.git","type":"git"},"_npmVersion":"11.5.1","description":"Build script for calendar HTML from template and environment variables","directories":{},"_nodeVersion":"24.6.0","dependencies":{"glob":"13.0.1","fernet":"^0.3.3"},"_hasShrinkwrap":false,"devDependencies":{"prettier":"^3.7.4","wrangler":"4.63.0"},"_npmOperationalInternal":{"tmp":"tmp/calendar-build_2.1.7_1770386078826_0.05673434320861692","host":"s3://npm-registry-packages-npm-production"}},"2.2.0":{"name":"@dytsou/calendar-build","version":"2.2.0","keywords":["calendar","build","template"],"author":{"name":"dytsou"},"license":"MIT","_id":"@dytsou/calendar-build@2.2.0","maintainers":[{"name":"dytsou","email":"dytsou@gmail.com"}],"homepage":"https://github.com/dytsou/cal#readme","bugs":{"url":"https://github.com/dytsou/cal/issues"},"bin":{"calendar-build":"scripts/build.js"},"dist":{"shasum":"d0d84715d6d7c28712b524030008640f7e1c75e9","tarball":"https://registry.npmjs.org/@dytsou/calendar-build/-/calendar-build-2.2.0.tgz","fileCount":8,"integrity":"sha512-z2IJpfCCuTLDEci+b/jHpGeas41oFMOfIpmshE1I07RxMbp9zPlgOIHT9VpK1Dt2GouK42Ak8KY5A7mmBIuTgA==","signatures":[{"sig":"MEUCIGHz/Ob7RRIZ/1jGBmDR/465py0hO8a357JejE9Yk4mvAiEAxXEU6FcxqNCiNl31kgDy0iNhGwF8m4V5//RIzd8izr8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":75773},"main":"scripts/build.js","_from":"file:dytsou-calendar-build-2.2.0.tgz","engines":{"node":">=12.0.0"},"scripts":{"build":"node scripts/build.js","format":"prettier --write .","format:check":"prettier --check .","publish:npmjs":"pnpm publish --access public"},"_npmUser":{"name":"dytsou","email":"dytsou@gmail.com"},"_resolved":"/private/var/folders/dk/z09d8d2n7jbdng515w1psz3c0000gn/T/e452e3d5e636e842dcce50ede95a78a1/dytsou-calendar-build-2.2.0.tgz","_integrity":"sha512-z2IJpfCCuTLDEci+b/jHpGeas41oFMOfIpmshE1I07RxMbp9zPlgOIHT9VpK1Dt2GouK42Ak8KY5A7mmBIuTgA==","repository":{"url":"git+https://github.com/dytsou/cal.git","type":"git"},"_npmVersion":"11.5.1","description":"Build script for calendar HTML from template and environment variables","directories":{},"_nodeVersion":"24.6.0","dependencies":{"glob":"13.0.3","fernet":"^0.3.3"},"_hasShrinkwrap":false,"devDependencies":{"prettier":"^3.7.4","wrangler":"4.65.0"},"_npmOperationalInternal":{"tmp":"tmp/calendar-build_2.2.0_1771230900201_0.35968613714916775","host":"s3://npm-registry-packages-npm-production"}},"2.2.1":{"name":"@dytsou/calendar-build","version":"2.2.1","keywords":["calendar","build","template"],"author":{"name":"dytsou"},"license":"MIT","_id":"@dytsou/calendar-build@2.2.1","maintainers":[{"name":"dytsou","email":"dytsou@gmail.com"}],"homepage":"https://github.com/dytsou/cal#readme","bugs":{"url":"https://github.com/dytsou/cal/issues"},"bin":{"calendar-build":"scripts/build.js"},"dist":{"shasum":"c7411154f585f39614a008309a5f76f00f309107","tarball":"https://registry.npmjs.org/@dytsou/calendar-build/-/calendar-build-2.2.1.tgz","fileCount":8,"integrity":"sha512-nnNQFbfR4fSyTyXwrXo09VUednxQ21Xk5tfCQKll5aiAiAsswLzY9p9VbTYh2nkL+xF+u52OfDqGw8kvAzP5tQ==","signatures":[{"sig":"MEYCIQDYnwrFJhTrKcAjqlvi427CRRDss0IT9QIs5Dbs/Hc58QIhAOGsH+It7u3E7UYb4vuAWH4Nq/D22EulzmKO/2/q+8h1","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":75773},"main":"scripts/build.js","_from":"file:dytsou-calendar-build-2.2.1.tgz","engines":{"node":">=12.0.0"},"scripts":{"build":"node scripts/build.js","format":"prettier --write .","format:check":"prettier --check .","publish:npmjs":"pnpm publish --access public"},"_npmUser":{"name":"dytsou","email":"dytsou@gmail.com"},"_resolved":"/private/var/folders/dk/z09d8d2n7jbdng515w1psz3c0000gn/T/51659a091f35d467d786a39f7d41a841/dytsou-calendar-build-2.2.1.tgz","_integrity":"sha512-nnNQFbfR4fSyTyXwrXo09VUednxQ21Xk5tfCQKll5aiAiAsswLzY9p9VbTYh2nkL+xF+u52OfDqGw8kvAzP5tQ==","repository":{"url":"git+https://github.com/dytsou/cal.git","type":"git"},"_npmVersion":"11.10.1","description":"Build script for calendar HTML from template and environment variables","directories":{},"_nodeVersion":"24.6.0","dependencies":{"glob":"13.0.6","fernet":"^0.3.3"},"_hasShrinkwrap":false,"devDependencies":{"prettier":"^3.7.4","wrangler":"4.71.0"},"_npmOperationalInternal":{"tmp":"tmp/calendar-build_2.2.1_1772984898328_0.5770234004686199","host":"s3://npm-registry-packages-npm-production"}},"2.2.2":{"name":"@dytsou/calendar-build","version":"2.2.2","keywords":["calendar","build","template"],"author":{"name":"dytsou"},"license":"MIT","_id":"@dytsou/calendar-build@2.2.2","maintainers":[{"name":"dytsou","email":"dytsou@gmail.com"}],"homepage":"https://github.com/dytsou/cal#readme","bugs":{"url":"https://github.com/dytsou/cal/issues"},"bin":{"calendar-build":"scripts/build.js"},"dist":{"shasum":"bc457d182cfea866991ab5332de2f29b7b72e267","tarball":"https://registry.npmjs.org/@dytsou/calendar-build/-/calendar-build-2.2.2.tgz","fileCount":8,"integrity":"sha512-fzkCX4NoF9pAp/M9tTB/B6GqkYUcbdlUpEI40XoCpvcA6r5d3xedisShJbZd0tCq4VM/cqilcNTUnH3k+fZ3lg==","signatures":[{"sig":"MEUCIQCnT1W6xMnAU1/tXpSCTH6VmNwfJ1E/t/WNtQ7+pyWOtAIgLtZyIKuQB7Wm/qza7hROu4585BHj4d+KbBsjXvHLiIo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":75773},"main":"scripts/build.js","_from":"file:dytsou-calendar-build-2.2.2.tgz","engines":{"node":">=12.0.0"},"scripts":{"build":"node scripts/build.js","format":"prettier --write .","format:check":"prettier --check .","publish:npmjs":"pnpm publish --access public"},"_npmUser":{"name":"dytsou","email":"dytsou@gmail.com"},"_resolved":"/private/var/folders/dk/z09d8d2n7jbdng515w1psz3c0000gn/T/f245e8c74d7f5ba6188b8419056ce98e/dytsou-calendar-build-2.2.2.tgz","_integrity":"sha512-fzkCX4NoF9pAp/M9tTB/B6GqkYUcbdlUpEI40XoCpvcA6r5d3xedisShJbZd0tCq4VM/cqilcNTUnH3k+fZ3lg==","repository":{"url":"git+https://github.com/dytsou/cal.git","type":"git"},"_npmVersion":"11.10.1","description":"Build script for calendar HTML from template and environment variables","directories":{},"_nodeVersion":"24.6.0","dependencies":{"glob":"13.0.6","fernet":"^0.3.3"},"_hasShrinkwrap":false,"devDependencies":{"prettier":"^3.7.4","wrangler":"4.80.0"},"_npmOperationalInternal":{"tmp":"tmp/calendar-build_2.2.2_1775390169772_0.9408316725155312","host":"s3://npm-registry-packages-npm-production"}},"2.3.1":{"name":"@dytsou/calendar-build","version":"2.3.1","keywords":["calendar","build","template"],"author":{"name":"dytsou"},"license":"MIT","_id":"@dytsou/calendar-build@2.3.1","maintainers":[{"name":"dytsou","email":"dytsou@gmail.com"}],"homepage":"https://github.com/dytsou/cal#readme","bugs":{"url":"https://github.com/dytsou/cal/issues"},"bin":{"calendar-build":"scripts/build.js"},"dist":{"shasum":"376eaaf380838af6116d21dcda1de3296ce545cc","tarball":"https://registry.npmjs.org/@dytsou/calendar-build/-/calendar-build-2.3.1.tgz","fileCount":8,"integrity":"sha512-OnGRrO5ApBiSfpzVe7xtYZ3yYcoGqwZLocC8EW9+pSQqvk7eUuri89mVTj7JtWg8tfeACdULJ5/1WR3vo9EA+w==","signatures":[{"sig":"MEUCIQC5oXK6OtxOXSe/E4BOG/TxMo9Vzal7EYAOlHN/Qk2dUgIgFjnfCzDDNB/GbGt7cJsyVpUdkxJd5oaydZkQQpXwgMA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":88447},"main":"scripts/build.js","engines":{"node":">=12.0.0"},"gitHead":"09c3f784841d656510ff6dcc1ebb0fe37cf5ee6a","scripts":{"build":"node scripts/build.js","format":"prettier --write .","format:check":"prettier --check .","publish:npmjs":"pnpm publish --access public"},"_npmUser":{"name":"dytsou","email":"dytsou@gmail.com"},"repository":{"url":"git+https://github.com/dytsou/cal.git","type":"git"},"_npmVersion":"10.8.2","description":"Build script for calendar HTML from template and environment variables","directories":{},"_nodeVersion":"20.20.2","dependencies":{"glob":"13.0.6","fernet":"^0.3.3"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.28.0+sha512.05df71d1421f21399e053fde567cea34d446fa02c76571441bfc1c7956e98e363088982d940465fd34480d4d90a0668bc12362f8aa88000a64e83d0b0e47be48","devDependencies":{"prettier":"^3.7.4","wrangler":"4.123.0"},"_npmOperationalInternal":{"tmp":"tmp/calendar-build_2.3.1_1787901578774_0.23967534427032966","host":"s3://npm-registry-packages-npm-production"}},"2.4.0":{"name":"@dytsou/calendar-build","version":"2.4.0","description":"Build script for calendar HTML from template and environment variables","main":"scripts/build.js","bin":{"calendar-build":"scripts/build.js"},"scripts":{"build":"node scripts/build.js","test":"node --test","format":"prettier --write .","format:check":"prettier --check .","publish:npmjs":"pnpm publish --access public"},"keywords":["calendar","build","template"],"author":{"name":"dytsou"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/dytsou/cal.git"},"bugs":{"url":"https://github.com/dytsou/cal/issues"},"homepage":"https://github.com/dytsou/cal#readme","engines":{"node":">=12.0.0"},"devDependencies":{"prettier":"^3.7.4","wrangler":"4.130.0"},"dependencies":{"fernet":"^0.3.3","glob":"13.0.6"},"packageManager":"pnpm@10.28.0+sha512.05df71d1421f21399e053fde567cea34d446fa02c76571441bfc1c7956e98e363088982d940465fd34480d4d90a0668bc12362f8aa88000a64e83d0b0e47be48","_id":"@dytsou/calendar-build@2.4.0","gitHead":"bda363bf67edd079672fb9f7c77b1c692ac1b348","_nodeVersion":"20.20.2","_npmVersion":"10.8.2","dist":{"integrity":"sha512-B5cYsy7PQWnCb9jDXAwuV0YdX34vrwBQrt/sw/nkQdF0KLCvW9TVwv9x2uMXio7i/fhDGH5jfupLSemV6CY6ZQ==","shasum":"0bbb7c170ac178c51c2bffa0fdd7a1111bb1a4fe","tarball":"https://registry.npmjs.org/@dytsou/calendar-build/-/calendar-build-2.4.0.tgz","fileCount":8,"unpackedSize":107606,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIAJaVnTKubo5AWyF0pq6JyorFoBO0bEFO1oC14e4kA+OAiEAmHadc4Ig/YAm8iqbW9K3pQKLqVk/xvZJiP0dBEAdE6s="}]},"_npmUser":{"name":"dytsou","email":"dytsou@gmail.com"},"directories":{},"maintainers":[{"name":"dytsou","email":"dytsou@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/calendar-build_2.4.0_1789194404513_0.21506940692693788"},"_hasShrinkwrap":false}},"time":{"created":"2025-11-22T14:51:27.736Z","modified":"2026-09-12T06:26:44.765Z","1.1.1":"2025-11-22T14:51:28.016Z","2.0.0":"2025-12-28T12:11:24.749Z","2.0.1":"2025-12-29T09:27:17.044Z","2.1.0":"2025-12-29T11:38:27.500Z","2.1.1":"2025-12-29T18:44:34.800Z","2.1.4":"2026-01-10T05:58:30.647Z","2.1.5":"2026-01-10T06:56:10.124Z","2.1.6":"2026-01-23T12:59:38.429Z","2.1.7":"2026-02-06T13:54:38.970Z","2.2.0":"2026-02-16T08:35:00.343Z","2.2.1":"2026-03-08T15:48:18.480Z","2.2.2":"2026-04-05T11:56:09.933Z","2.3.1":"2026-08-28T07:19:38.919Z","2.4.0":"2026-09-12T06:26:44.641Z"},"bugs":{"url":"https://github.com/dytsou/cal/issues"},"author":{"name":"dytsou"},"license":"MIT","homepage":"https://github.com/dytsou/cal#readme","keywords":["calendar","build","template"],"repository":{"type":"git","url":"git+https://github.com/dytsou/cal.git"},"description":"Build script for calendar HTML from template and environment variables","maintainers":[{"name":"dytsou","email":"dytsou@gmail.com"}],"readme":"# Calendar App\n\nA simple calendar application that displays multiple calendar feeds using Open Web Calendar.\n\n## Features\n\n- Display multiple calendar feeds simultaneously\n- Dark theme with customizable styling\n- Full-height responsive design\n- URL parameters for view mode and date selection\n- Liquid-glass query panel (hover the top-right corner to reveal) for changing `mode` and `date` without editing the URL manually\n- Clean interface without menu buttons or navigation controls\n\n## Setup\n\n### 1. Configure Cloudflare Worker Secrets\n\nCalendar URLs are now managed via Cloudflare Worker secrets for better security and centralized management.\n\n**Set up your Cloudflare Worker secrets:**\n\n```bash\n# Set calendar URLs (comma-separated, can be plain or fernet:// encrypted)\nwrangler secret put CALENDAR_URL\n# Enter: https://calendar.google.com/calendar/ical/example%40gmail.com/public/basic.ics,https://calendar.google.com/calendar/ical/another%40gmail.com/public/basic.ics\n\n# Set encryption key (if using fernet:// encrypted URLs)\nwrangler secret put ENCRYPTION_KEY\n# Enter your Fernet encryption key (base64url-encoded 32-byte key)\n# Generate one with: node -e \"console.log(require('crypto').randomBytes(32).toString('base64').replace(/\\+/g, '-').replace(/\\//g, '_').replace(/=/g, ''))\"\n\n# Enable the privacy-safe final-view cache with an opaque HMAC identity key\nwrangler secret put CACHE_IDENTITY_SECRET\n# Use a separate random secret; do not reuse a calendar URL or encryption key\n```\n\n**Getting Google Calendar iCal URLs:**\n\n- Go to your Google Calendar settings\n- Find the calendar you want to share\n- Click \"Integrate calendar\" or \"Get shareable link\"\n- Copy the \"Public URL to iCal format\" link\n- URL-encode special characters (e.g., `@` becomes `%40`)\n\n### 2. Configure Local Development (Optional)\n\n1. Copy `.env.example` to `.env`:\n\n   ```bash\n   cp .env.example .env\n   ```\n\n2. Edit `.env` and set your Cloudflare Worker URL (optional):\n\n   ```\n   WORKER_URL=https://cal-proxy.yourdomain.com\n   ```\n\n   If not set, defaults to `https://open-web-calendar.hosted.quelltext.eu`\n\n### 3. Build the HTML File\n\n```bash\n# Option 1: Using npm/pnpm (after installing)\npnpm install\npnpm run build\n# or use the global command if installed globally\ncalendar-build\n\n# Option 2: Direct execution\nnode scripts/build.js\n```\n\n### 4. Deploy and Open\n\n- Deploy `index.html` to your hosting service (GitHub Pages, etc.)\n- Open the deployed page in your browser\n- The Cloudflare Worker will automatically add calendar URLs from secrets to all requests\n\n## URL Parameters\n\nThe calendar supports URL parameters for navigation:\n\n- **`?mode=month`** - Show month view\n- **`?mode=week`** - Show week view (default)\n- **`?mode=day`** - Show day view\n- **`?date=YYYYMMDD`** - Navigate to a specific date (e.g., `?date=20250115`)\n- **`?theme=dark`** - Force dark theme\n- **`?theme=light`** - Force light theme\n\n**Theme:** The calendar uses your browser's color scheme preference by default. You can override it using the `?theme=` URL parameter.\n\n**Query panel:** A round, translucent glass **Query** button sits in the **top-right corner**. It stays invisible until you move your mouse into that corner, at which point it fades in. Click it to open a floating panel where you can set `mode` and `date`; click **Apply** to update the URL and reload the calendar. Other query parameters (such as `theme`) are preserved.\n\n**Examples:**\n\n- `index.html?mode=month` - Month view (uses browser theme preference)\n- `index.html?mode=week&date=20250115` - Week view for the week containing January 15, 2025\n- `index.html?mode=day&date=20250320` - Day view for March 20, 2025\n- `index.html?theme=light` - Light theme with default week view\n- `index.html?mode=month&theme=dark` - Month view with dark theme\n\n## Final-view cache\n\nWhen CACHE_IDENTITY_SECRET is configured, the Worker caches only successful, sanitized calendar pages and explicit calendar-data responses. The cache identity is an opaque HMAC digest of the configured source/filtering material and safe view parameters; viewer-provided url parameters never select a source or enter the identity.\n\nThe normal freshness window is 10 minutes. A stale hit is served immediately, refreshed in the background, and can automatically revalidate in the calendar frame. A successful representation is retained for up to 24 hours as a last-known-good fallback when an upstream refresh fails. Viewer responses remain Cache-Control: no-store and do not expose cache timestamps.\n\nThe Cache API is local to the data center handling the request, so the first request in a new location can still be a cold miss. Static assets, calendar-file downloads, authenticated/cookie-bearing requests, and unrecognized JSON resources bypass this final-view cache. If CACHE_IDENTITY_SECRET is missing, the Worker safely falls back to the live path.\n\nChanges to CALENDAR_URL, ENCRYPTION_KEY, or USER_EMAILS select new cache identities. Bump FINAL_VIEW_CACHE_VERSION in worker.js whenever privacy filtering or response-shape rules change. Existing entries then become unreachable without exposing or purging their contents.\n\nSet `CACHE_BYPASS=1` as a temporary incident or rollback control to disable cache reads, writes, and refreshes. Rotate `CACHE_IDENTITY_SECRET` to move to a new opaque namespace; keep it high-entropy and separate from the calendar or encryption secrets.\n\n## Install Package\n\nThis package is published to **both registries**:\n\n- **npmjs.com**: https://www.npmjs.com/package/@dytsou/calendar-build\n- **GitHub Packages**: https://github.com/dytsou/cal/packages\n\n### Installation from npmjs (Default - Recommended)\n\n**Global installation:**\n\n```bash\nnpm install -g @dytsou/calendar-build\n# or\npnpm install -g @dytsou/calendar-build\n```\n\nThen use anywhere:\n\n```bash\ncalendar-build\n```\n\n**Local installation:**\n\n```bash\nnpm install @dytsou/calendar-build\n# or\npnpm install @dytsou/calendar-build\n```\n\nThen use:\n\n```bash\nnpx calendar-build\n# or\npnpm run build\n```\n\n### Installation from GitHub Packages\n\nIf you prefer to install from GitHub Packages:\n\n**1. Setup GitHub Packages Authentication**\n\nCreate or edit `.npmrc` file in your home directory:\n\n```ini\n@dytsou:registry=https://npm.pkg.github.com\n//npm.pkg.github.com/:_authToken=YOUR_GITHUB_TOKEN\n```\n\n**2. Get your GitHub token:**\n\n1. Go to https://github.com/settings/tokens\n2. Click \"Generate new token\" → \"Generate new token (classic)\"\n3. Select `read:packages` permission\n4. Copy the token and replace `YOUR_GITHUB_TOKEN` in `.npmrc`\n\n**3. Install:**\n\n```bash\nnpm install -g @dytsou/calendar-build\n# or\npnpm install -g @dytsou/calendar-build\n```\n\n## Development\n\n### Project Structure\n\n- `index.html.template` - Template file with placeholders for calendar URLs\n- `scripts/build.js` - Build script that injects calendar URLs from `.env` and updates year in LICENSE\n- `scripts/encrypt-urls.js` - Helper script to encrypt calendar URLs using Fernet\n- `.env` - Local environment file (not committed to git)\n- `.env.example` - Example environment file template\n\n### Scripts\n\n- `pnpm run build` - Build the HTML file from template\n- `pnpm test` - Run the Worker cache and route tests\n- `pnpm format` - Format code with Prettier\n- `pnpm format:check` - Check code formatting\n\n### Build Process\n\nThe build script:\n\n1. Reads `WORKER_URL` from `.env` (optional, defaults to open-web-calendar)\n2. Replaces `{{WORKER_URL}}` placeholder in the template\n3. Updates `{{YEAR}}` placeholder with current year in LICENSE and HTML\n4. Generates `index.html` ready for deployment\n\n**Note:** Calendar URLs are now managed via Cloudflare Worker secrets (`CALENDAR_URL`), not in `.env` or the HTML file. The worker automatically adds them to all calendar requests.\n\n## Cloudflare Worker Setup\n\nThis project uses a Cloudflare Worker to manage calendar URLs securely. Calendar URLs are stored as Cloudflare Worker secrets, keeping them out of the HTML and GitHub secrets.\n\n### Setup Instructions\n\n1. **Copy wrangler.toml.example to wrangler.toml:**\n\n   ```bash\n   cp wrangler.toml.example wrangler.toml\n   ```\n\n   Then edit `wrangler.toml` and customize it for your environment (e.g., add custom domain routes).\n\n2. **Install Wrangler CLI:**\n\n   ```bash\n   npm install -g wrangler\n   # or\n   pnpm add -g wrangler\n   ```\n\n3. **Login to Cloudflare:**\n\n   ```bash\n   wrangler login\n   ```\n\n4. **Set Calendar URLs Secret:**\n\n   ```bash\n   wrangler secret put CALENDAR_URL\n   ```\n\n   When prompted, enter your calendar URLs (comma-separated):\n\n   ```\n   https://calendar.google.com/calendar/ical/example%40gmail.com/public/basic.ics,https://calendar.google.com/calendar/ical/another%40gmail.com/public/basic.ics\n   ```\n\n   **Note:** URLs can be plain or `fernet://` encrypted. If using encrypted URLs, you'll also need to set `ENCRYPTION_KEY`.\n\n5. **Set Encryption Key Secret (if using fernet:// encrypted URLs):**\n\n   ```bash\n   wrangler secret put ENCRYPTION_KEY\n   ```\n\n   When prompted, enter your Fernet encryption key (base64url-encoded 32-byte key).\n\n   Generate one with:\n\n   ```bash\n   node -e \"console.log(require('crypto').randomBytes(32).toString('base64').replace(/\\+/g, '-').replace(/\\//g, '_').replace(/=/g, ''))\"\n   ```\n\n6. **Set the Cache Identity Secret:**\n\n   ```bash\n   wrangler secret put CACHE_IDENTITY_SECRET\n   ```\n\n   Use a separate random value for this HMAC secret. If it is not configured, the Worker continues to serve live sanitized responses without using the shared final-view cache.\n\n7. **Deploy the Worker:**\n\n   ```bash\n   wrangler deploy\n   ```\n\n8. **Update your .env file:**\n   After deployment, update the `WORKER_URL` in your `.env` file with your worker URL:\n\n   ```\n   WORKER_URL=https://your-worker.your-subdomain.workers.dev\n   # or if using custom domain:\n   WORKER_URL=https://your-domain.com\n   ```\n\n9. **Rebuild your project:**\n   ```bash\n   pnpm run build\n   ```\n\n## License\n\nThis project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.\n","readmeFilename":"README.md"}