{"_id":"@dayflow/caldav","_rev":"9-d6d82a493ca248ece4a3e48b979a5c8a","name":"@dayflow/caldav","dist-tags":{"latest":"1.1.1"},"versions":{"1.0.0":{"name":"@dayflow/caldav","version":"1.0.0","keywords":["caldav","calendar","dayflow","icalendar","sync"],"author":{"name":"Jayce Li"},"license":"MIT","_id":"@dayflow/caldav@1.0.0","maintainers":[{"name":"jayceli","email":"lijuncai552@gmail.com"}],"dist":{"shasum":"e94276f18ead67130f2474c9ce379198a253b62d","tarball":"https://registry.npmjs.org/@dayflow/caldav/-/caldav-1.0.0.tgz","fileCount":33,"integrity":"sha512-UZnvds4jesanmv7P9gdLIXSrCfzpcvBF41NXboIt+XTPN9cBZ6EIkgwE8U0hCrinVyEs5HYGlm/puKJRQHSriA==","signatures":[{"sig":"MEUCIQDEJcN7rYDyliFgqdAguQrEvxhpUQR9DPy06G6hn/nu9QIgfprDktFAgZRN/ub8omvSs0wgBaZEEVnFIiGoGFaLexc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":305536},"main":"dist/index.js","type":"module","_from":"file:dayflow-caldav-1.0.0.tgz","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"test":"jest","build":"tsc -p tsconfig.build.json && tsc-alias -p tsconfig.build.json && rollup -c","clean":"rimraf dist node_modules","prebuild":"rimraf dist","postbuild":"rimraf dist/types","typecheck":"tsc --noEmit"},"_npmUser":{"name":"jayceli","email":"lijuncai552@gmail.com"},"_resolved":"/private/var/folders/m4/c6nx4v2d50z61pb3qjfmnq_c0000gq/T/4c0c327bf01dbcb934955ea8bf476a6e/dayflow-caldav-1.0.0.tgz","_integrity":"sha512-UZnvds4jesanmv7P9gdLIXSrCfzpcvBF41NXboIt+XTPN9cBZ6EIkgwE8U0hCrinVyEs5HYGlm/puKJRQHSriA==","_npmVersion":"11.7.0","description":"Headless CalDAV sync engine for DayFlow - transport-agnostic, adapter-first","directories":{},"_nodeVersion":"22.19.0","dependencies":{"temporal-polyfill":"^0.3.0","@dayflow/sync-core":"1.0.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","rimraf":"^6.1.2","rollup":"^4.29.1","ts-jest":"^29.4.5","tsc-alias":"^1.8.16","typescript":"^5.9.3","@types/jest":"^29.5.14","@dayflow/core":"3.6.3","rollup-plugin-dts":"^6.3.0","jest-environment-jsdom":"^29.7.0","@rollup/plugin-commonjs":"^28.0.2","@rollup/plugin-typescript":"^12.1.2","@rollup/plugin-node-resolve":"^16.0.0"},"peerDependencies":{"@dayflow/core":"3.6.3"},"_npmOperationalInternal":{"tmp":"tmp/caldav_1.0.0_1778723613231_0.46154397314359175","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"name":"@dayflow/caldav","version":"1.0.1","keywords":["caldav","calendar","dayflow","icalendar","sync"],"author":{"name":"Jayce Li"},"license":"MIT","_id":"@dayflow/caldav@1.0.1","maintainers":[{"name":"jayceli","email":"lijuncai552@gmail.com"}],"dist":{"shasum":"eafd3044e689350bebf620a78bf55beb5db6755e","tarball":"https://registry.npmjs.org/@dayflow/caldav/-/caldav-1.0.1.tgz","fileCount":5,"integrity":"sha512-9q5Z1JFkjwyHgOHRi6O8LutcgL+KzQ6zsaFPRlUfN8KJzkaRRv098LaqYBlv1MEj0V6q4yv5ynodkeb//5CCcA==","signatures":[{"sig":"MEYCIQC5u30WKI/XEd5bMbs0gJhiFySR+DCzc7tIsaNOskGSgAIhAIPIbNav6dvT7jKc8VVtaPGeaj9WrJyzeXKRXzfkZWtt","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":219545},"main":"dist/index.js","type":"module","_from":"file:dayflow-caldav-1.0.1.tgz","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"test":"jest","build":"tsc -p tsconfig.build.json && tsc-alias -p tsconfig.build.json && rollup -c","clean":"rimraf dist node_modules","prebuild":"rimraf dist","postbuild":"rimraf dist/types dist/build","typecheck":"tsc --noEmit"},"_npmUser":{"name":"jayceli","email":"lijuncai552@gmail.com"},"_resolved":"/private/var/folders/m4/c6nx4v2d50z61pb3qjfmnq_c0000gq/T/ff0d70573228840c390b78d18bfebe1c/dayflow-caldav-1.0.1.tgz","_integrity":"sha512-9q5Z1JFkjwyHgOHRi6O8LutcgL+KzQ6zsaFPRlUfN8KJzkaRRv098LaqYBlv1MEj0V6q4yv5ynodkeb//5CCcA==","_npmVersion":"11.7.0","description":"Headless CalDAV sync engine for DayFlow - transport-agnostic, adapter-first","directories":{},"_nodeVersion":"22.19.0","dependencies":{"temporal-polyfill":"^0.3.0","@dayflow/sync-core":"1.0.1"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","rimraf":"^6.1.2","rollup":"^4.29.1","ts-jest":"^29.4.5","tsc-alias":"^1.8.16","typescript":"^5.9.3","@types/jest":"^29.5.14","@dayflow/core":"3.6.3","rollup-plugin-dts":"^6.3.0","jest-environment-jsdom":"^29.7.0","@rollup/plugin-commonjs":"^28.0.2","@rollup/plugin-typescript":"^12.1.2","@rollup/plugin-node-resolve":"^16.0.0"},"peerDependencies":{"@dayflow/core":"3.6.3"},"_npmOperationalInternal":{"tmp":"tmp/caldav_1.0.1_1778724004541_0.37050198013922553","host":"s3://npm-registry-packages-npm-production"}},"1.0.2":{"name":"@dayflow/caldav","version":"1.0.2","keywords":["caldav","calendar","dayflow","icalendar","sync"],"author":{"name":"Jayce Li"},"license":"MIT","_id":"@dayflow/caldav@1.0.2","maintainers":[{"name":"jayceli","email":"lijuncai552@gmail.com"}],"dist":{"shasum":"4de2c0208955d5d4079f9d9cbfa5be6cdea837e1","tarball":"https://registry.npmjs.org/@dayflow/caldav/-/caldav-1.0.2.tgz","fileCount":5,"integrity":"sha512-44YZhqp0rUd8w5Ei/i5wd7RC7GZbGskV/DkvgVAfDe68tiTpQeWaFRRAHRliKT35C+J0jiaPDKtrog+Ype0q3A==","signatures":[{"sig":"MEUCIHuGexaZ7erbwU/UwPojaKDCau20AoNcH4bFVVjRe56pAiEAyUxOQBmTJPFKHC8AQkil5HPv+KOfD7iGIe3NO7A0zl4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":219799},"main":"dist/index.js","type":"module","_from":"file:dayflow-caldav-1.0.2.tgz","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"test":"jest","build":"tsc -p tsconfig.build.json && tsc-alias -p tsconfig.build.json && rollup -c","clean":"rimraf dist node_modules","prebuild":"rimraf dist","postbuild":"rimraf dist/types dist/build","typecheck":"tsc --noEmit"},"_npmUser":{"name":"jayceli","email":"lijuncai552@gmail.com"},"_resolved":"/private/var/folders/m4/c6nx4v2d50z61pb3qjfmnq_c0000gq/T/b134a53a462f6404edf64fcd6f0db704/dayflow-caldav-1.0.2.tgz","_integrity":"sha512-44YZhqp0rUd8w5Ei/i5wd7RC7GZbGskV/DkvgVAfDe68tiTpQeWaFRRAHRliKT35C+J0jiaPDKtrog+Ype0q3A==","_npmVersion":"11.7.0","description":"Headless CalDAV sync engine for DayFlow - transport-agnostic, adapter-first","directories":{},"_nodeVersion":"22.19.0","dependencies":{"temporal-polyfill":"^0.3.0","@dayflow/sync-core":"1.0.2"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","rimraf":"^6.1.2","rollup":"^4.29.1","ts-jest":"^29.4.5","tsc-alias":"^1.8.16","typescript":"^5.9.3","@types/jest":"^29.5.14","@dayflow/core":"3.6.4","rollup-plugin-dts":"^6.3.0","jest-environment-jsdom":"^29.7.0","@rollup/plugin-commonjs":"^28.0.2","@rollup/plugin-typescript":"^12.1.2","@rollup/plugin-node-resolve":"^16.0.0"},"peerDependencies":{"@dayflow/core":"3.6.4"},"_npmOperationalInternal":{"tmp":"tmp/caldav_1.0.2_1779420459013_0.7616426349148044","host":"s3://npm-registry-packages-npm-production"}},"1.0.3":{"name":"@dayflow/caldav","version":"1.0.3","keywords":["caldav","calendar","dayflow","icalendar","sync"],"author":{"name":"Jayce Li"},"license":"MIT","_id":"@dayflow/caldav@1.0.3","maintainers":[{"name":"jayceli","email":"lijuncai552@gmail.com"}],"dist":{"shasum":"80bd9f02a498df80f85c29d4e85e868e3075673d","tarball":"https://registry.npmjs.org/@dayflow/caldav/-/caldav-1.0.3.tgz","fileCount":5,"integrity":"sha512-qmZXJZzu5vkvXg6tuxeNx/Yhrc/f91cef36JZ4uuf1G0dkqdzt0my7hQ7SpvCn9AKkFQ0YUxKCRmS48mqIm7jQ==","signatures":[{"sig":"MEUCIQDnSUWxDvXiiGEuUbvsb0o00RPqgP0Qv3mbgiRm7ENd5gIgI5T3yE9LTj+UMl5d0GIueiJcCafZow2VnemBaB9sdu4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":219799},"main":"dist/index.js","type":"module","_from":"file:dayflow-caldav-1.0.3.tgz","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"test":"jest","build":"tsc -p tsconfig.build.json && tsc-alias -p tsconfig.build.json && rollup -c","clean":"rimraf dist node_modules","prebuild":"rimraf dist","postbuild":"rimraf dist/types dist/build","typecheck":"tsc --noEmit"},"_npmUser":{"name":"jayceli","email":"lijuncai552@gmail.com"},"_resolved":"/private/var/folders/m4/c6nx4v2d50z61pb3qjfmnq_c0000gq/T/56ff5eae305ecb64bf0bd718bd2e2961/dayflow-caldav-1.0.3.tgz","_integrity":"sha512-qmZXJZzu5vkvXg6tuxeNx/Yhrc/f91cef36JZ4uuf1G0dkqdzt0my7hQ7SpvCn9AKkFQ0YUxKCRmS48mqIm7jQ==","_npmVersion":"11.7.0","description":"Headless CalDAV sync engine for DayFlow - transport-agnostic, adapter-first","directories":{},"_nodeVersion":"22.19.0","dependencies":{"temporal-polyfill":"^0.3.0","@dayflow/sync-core":"1.0.3"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","rimraf":"^6.1.2","rollup":"^4.29.1","ts-jest":"^29.4.5","tsc-alias":"^1.8.16","typescript":"^5.9.3","@types/jest":"^29.5.14","@dayflow/core":"3.6.5","rollup-plugin-dts":"^6.3.0","jest-environment-jsdom":"^29.7.0","@rollup/plugin-commonjs":"^28.0.2","@rollup/plugin-typescript":"^12.1.2","@rollup/plugin-node-resolve":"^16.0.0"},"peerDependencies":{"@dayflow/core":"3.6.5"},"_npmOperationalInternal":{"tmp":"tmp/caldav_1.0.3_1780038748761_0.7225609697043638","host":"s3://npm-registry-packages-npm-production"}},"1.0.4":{"name":"@dayflow/caldav","version":"1.0.4","keywords":["caldav","calendar","dayflow","icalendar","sync"],"author":{"name":"Jayce Li"},"license":"MIT","_id":"@dayflow/caldav@1.0.4","maintainers":[{"name":"jayceli","email":"lijuncai552@gmail.com"}],"dist":{"shasum":"b48a53e4dedc3f7097c0e418db274a75b9f81360","tarball":"https://registry.npmjs.org/@dayflow/caldav/-/caldav-1.0.4.tgz","fileCount":5,"integrity":"sha512-50Zkv+ovjfKQJR6KCw+I4pLbe9KuUiEr2Q9yojutX4tiETiZJmZaJRJwElqi6m0yAIdQrsHfPErDFiMeVr2G0g==","signatures":[{"sig":"MEQCIEpjROeCHQM9Z0L15ehRA8wB8FLR5hsp4gqJlahyEAfwAiBOZRU6lawwVQpb9njaTqHz9F6cImpMzq5TxkYRGWDOFw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":219799},"main":"dist/index.js","type":"module","_from":"file:dayflow-caldav-1.0.4.tgz","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"test":"jest","build":"tsc -p tsconfig.build.json && tsc-alias -p tsconfig.build.json && rollup -c","clean":"rimraf dist node_modules","prebuild":"rimraf dist","postbuild":"rimraf dist/types dist/build","typecheck":"tsc --noEmit"},"_npmUser":{"name":"jayceli","email":"lijuncai552@gmail.com"},"_resolved":"/private/var/folders/m4/c6nx4v2d50z61pb3qjfmnq_c0000gq/T/52da7301a9e90461f6f340cc3b566521/dayflow-caldav-1.0.4.tgz","_integrity":"sha512-50Zkv+ovjfKQJR6KCw+I4pLbe9KuUiEr2Q9yojutX4tiETiZJmZaJRJwElqi6m0yAIdQrsHfPErDFiMeVr2G0g==","_npmVersion":"11.7.0","description":"Headless CalDAV sync engine for DayFlow - transport-agnostic, adapter-first","directories":{},"_nodeVersion":"22.19.0","dependencies":{"temporal-polyfill":"^0.3.0","@dayflow/sync-core":"1.0.4"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","rimraf":"^6.1.2","rollup":"^4.29.1","ts-jest":"^29.4.5","tsc-alias":"^1.8.16","typescript":"^5.9.3","@types/jest":"^29.5.14","@dayflow/core":"3.6.6","rollup-plugin-dts":"^6.3.0","jest-environment-jsdom":"^29.7.0","@rollup/plugin-commonjs":"^28.0.2","@rollup/plugin-typescript":"^12.1.2","@rollup/plugin-node-resolve":"^16.0.0"},"peerDependencies":{"@dayflow/core":"3.6.6"},"_npmOperationalInternal":{"tmp":"tmp/caldav_1.0.4_1784546680354_0.7593324436139146","host":"s3://npm-registry-packages-npm-production"}},"1.0.5":{"name":"@dayflow/caldav","version":"1.0.5","keywords":["caldav","calendar","dayflow","icalendar","sync"],"author":{"name":"Jayce Li"},"license":"MIT","_id":"@dayflow/caldav@1.0.5","maintainers":[{"name":"jayceli","email":"lijuncai552@gmail.com"}],"dist":{"shasum":"b4206010f7f81f8b3c1e2ad582f5b154eedb4406","tarball":"https://registry.npmjs.org/@dayflow/caldav/-/caldav-1.0.5.tgz","fileCount":5,"integrity":"sha512-ZStYX1oOX7Hd+6+QeJDrII3AFbfCF9oWK0h12yvI/srtej+oHe++tIPLrxBUSvVDmsaB4lfJIM1995wVRiVUBA==","signatures":[{"sig":"MEYCIQDNNle16y3+GQaO/0CDIJDnP6mTS5m+VDaPPOhO3d15XwIhAM/lTKgDE1YDEXnkgkZkaSLlbvw2xQk2oBW06KE+agjn","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":221264},"main":"dist/index.js","type":"module","_from":"file:dayflow-caldav-1.0.5.tgz","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"test":"jest","build":"tsc -p tsconfig.build.json && tsc-alias -p tsconfig.build.json && rollup -c","clean":"rimraf dist node_modules","prebuild":"rimraf dist","postbuild":"rimraf dist/types dist/build","typecheck":"tsc --noEmit"},"_npmUser":{"name":"jayceli","email":"lijuncai552@gmail.com"},"_resolved":"/private/var/folders/m4/c6nx4v2d50z61pb3qjfmnq_c0000gq/T/46b60ebd4005b572ab60870a18bd59ea/dayflow-caldav-1.0.5.tgz","_integrity":"sha512-ZStYX1oOX7Hd+6+QeJDrII3AFbfCF9oWK0h12yvI/srtej+oHe++tIPLrxBUSvVDmsaB4lfJIM1995wVRiVUBA==","_npmVersion":"11.7.0","description":"Headless CalDAV sync engine for DayFlow - transport-agnostic, adapter-first","directories":{},"_nodeVersion":"22.19.0","dependencies":{"temporal-polyfill":"^0.3.0","@dayflow/sync-core":"1.0.5"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","rimraf":"^6.1.2","rollup":"^4.29.1","ts-jest":"^29.4.5","tsc-alias":"^1.8.16","typescript":"^5.9.3","@types/jest":"^29.5.14","@dayflow/core":"3.6.7","rollup-plugin-dts":"^6.3.0","jest-environment-jsdom":"^29.7.0","@rollup/plugin-commonjs":"^28.0.2","@rollup/plugin-typescript":"^12.1.2","@rollup/plugin-node-resolve":"^16.0.0"},"peerDependencies":{"@dayflow/core":"3.6.7"},"_npmOperationalInternal":{"tmp":"tmp/caldav_1.0.5_1785806627943_0.10411454965605826","host":"s3://npm-registry-packages-npm-production"}},"1.0.6":{"name":"@dayflow/caldav","version":"1.0.6","keywords":["caldav","calendar","dayflow","icalendar","sync"],"author":{"name":"Jayce Li"},"license":"MIT","_id":"@dayflow/caldav@1.0.6","maintainers":[{"name":"jayceli","email":"lijuncai552@gmail.com"}],"dist":{"shasum":"0ea899b824dfe88d721dbcfddcb62e4316a905ba","tarball":"https://registry.npmjs.org/@dayflow/caldav/-/caldav-1.0.6.tgz","fileCount":5,"integrity":"sha512-TwpXN7PxxAgHsuQ0/P//jzeFMTqz77T2A5EUr1YKcLFknLcL7MBuYikUKN5TwMkhZwln69u85WM4K+zfahGnJg==","signatures":[{"sig":"MEYCIQC4rtA59hcLWtpSAv+pYJx6XnQe9e4zzH+/zQvwjp0QaQIhAJ+06eJe2Ayx0D+pUqWdnnjEljzvZfYIxMn4Doduj+Fb","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":221264},"main":"dist/index.js","type":"module","_from":"file:dayflow-caldav-1.0.6.tgz","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"test":"jest","build":"tsc -p tsconfig.build.json && tsc-alias -p tsconfig.build.json && rollup -c","clean":"rimraf dist node_modules","prebuild":"rimraf dist","postbuild":"rimraf dist/types dist/build","typecheck":"tsc --noEmit"},"_npmUser":{"name":"jayceli","email":"lijuncai552@gmail.com"},"_resolved":"/private/var/folders/m4/c6nx4v2d50z61pb3qjfmnq_c0000gq/T/0f687b6770fb157078991192d8871e85/dayflow-caldav-1.0.6.tgz","_integrity":"sha512-TwpXN7PxxAgHsuQ0/P//jzeFMTqz77T2A5EUr1YKcLFknLcL7MBuYikUKN5TwMkhZwln69u85WM4K+zfahGnJg==","_npmVersion":"11.7.0","description":"Headless CalDAV sync engine for DayFlow - transport-agnostic, adapter-first","directories":{},"_nodeVersion":"22.19.0","dependencies":{"temporal-polyfill":"^0.3.0","@dayflow/sync-core":"1.0.6"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","rimraf":"^6.1.2","rollup":"^4.29.1","ts-jest":"^29.4.5","tsc-alias":"^1.8.16","typescript":"^5.9.3","@types/jest":"^29.5.14","@dayflow/core":"3.6.8","rollup-plugin-dts":"^6.3.0","jest-environment-jsdom":"^29.7.0","@rollup/plugin-commonjs":"^28.0.2","@rollup/plugin-typescript":"^12.1.2","@rollup/plugin-node-resolve":"^16.0.0"},"peerDependencies":{"@dayflow/core":"3.6.8"},"_npmOperationalInternal":{"tmp":"tmp/caldav_1.0.6_1786352947069_0.1266382931163479","host":"s3://npm-registry-packages-npm-production"}},"1.1.0":{"name":"@dayflow/caldav","version":"1.1.0","keywords":["caldav","calendar","dayflow","icalendar","sync"],"author":{"name":"Jayce Li"},"license":"MIT","_id":"@dayflow/caldav@1.1.0","maintainers":[{"name":"jayceli","email":"lijuncai552@gmail.com"}],"dist":{"shasum":"e52031f961340031b978f3bdb3eadadf8c57a699","tarball":"https://registry.npmjs.org/@dayflow/caldav/-/caldav-1.1.0.tgz","fileCount":5,"integrity":"sha512-oGISgOR56MrqH2dtjoStBhOiJaL/rB2dkG4ikGQcnPJ9o/Dtpu86pnkI9cZZx3YcCjpmkbSbqfQqReuSGAJQ0A==","signatures":[{"sig":"MEUCICMB90Ip9ZHr9H9T7CfQUumizClihvy2VN62A9ER/+aOAiEAt1yXxXTnsSbtAx7AtpIY6Xb1/2gh2U9Kg2kiyiDh+kw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":221264},"main":"dist/index.js","type":"module","_from":"file:dayflow-caldav-1.1.0.tgz","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"test":"jest","build":"tsc -p tsconfig.build.json && tsc-alias -p tsconfig.build.json && rollup -c","clean":"rimraf dist node_modules","prebuild":"rimraf dist","postbuild":"rimraf dist/types dist/build","typecheck":"tsc --noEmit"},"_npmUser":{"name":"jayceli","email":"lijuncai552@gmail.com"},"_resolved":"/private/var/folders/m4/c6nx4v2d50z61pb3qjfmnq_c0000gq/T/a3f8f1847432f73760c6c4b522e3d54c/dayflow-caldav-1.1.0.tgz","_integrity":"sha512-oGISgOR56MrqH2dtjoStBhOiJaL/rB2dkG4ikGQcnPJ9o/Dtpu86pnkI9cZZx3YcCjpmkbSbqfQqReuSGAJQ0A==","_npmVersion":"11.7.0","description":"Headless CalDAV sync engine for DayFlow - transport-agnostic, adapter-first","directories":{},"_nodeVersion":"22.19.0","dependencies":{"temporal-polyfill":"^0.3.0","@dayflow/sync-core":"1.1.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","rimraf":"^6.1.2","rollup":"^4.29.1","ts-jest":"^29.4.5","tsc-alias":"^1.8.16","typescript":"^5.9.3","@types/jest":"^29.5.14","@dayflow/core":"3.7.0","rollup-plugin-dts":"^6.3.0","jest-environment-jsdom":"^29.7.0","@rollup/plugin-commonjs":"^28.0.2","@rollup/plugin-typescript":"^12.1.2","@rollup/plugin-node-resolve":"^16.0.0"},"peerDependencies":{"@dayflow/core":"3.7.0"},"_npmOperationalInternal":{"tmp":"tmp/caldav_1.1.0_1786626902807_0.520834514029979","host":"s3://npm-registry-packages-npm-production"}},"1.1.1":{"name":"@dayflow/caldav","version":"1.1.1","description":"Headless CalDAV sync engine for DayFlow - transport-agnostic, adapter-first","keywords":["caldav","calendar","dayflow","icalendar","sync"],"license":"MIT","author":{"name":"Jayce Li"},"type":"module","main":"dist/index.js","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"dependencies":{"temporal-polyfill":"^0.3.0","@dayflow/sync-core":"^1.1.1"},"devDependencies":{"@rollup/plugin-commonjs":"^28.0.2","@rollup/plugin-node-resolve":"^16.0.0","@rollup/plugin-typescript":"^12.1.2","rimraf":"^6.1.2","rollup":"^4.29.1","rollup-plugin-dts":"^6.3.0","tsc-alias":"^1.8.16","typescript":"^5.9.3","vitest":"^2.1.9","@dayflow/core":"^3.7.1"},"peerDependencies":{"@dayflow/core":"^3.7.1"},"scripts":{"build":"tsc -p tsconfig.build.json && tsc-alias -p tsconfig.build.json && rollup -c","clean":"rimraf dist node_modules","postbuild":"rimraf dist/types dist/build","prebuild":"rimraf dist","test":"vitest run","typecheck":"tsc --noEmit"},"_id":"@dayflow/caldav@1.1.1","_integrity":"sha512-ZTbfh5dCPYfu29nGrqQmPhvInJ2s8C0pvw0S4t2yNpwTFF18qXz0xB5oop8OEEi3TUHbmnMEAtUWWl82dbC/Vw==","_resolved":"/private/var/folders/m4/c6nx4v2d50z61pb3qjfmnq_c0000gq/T/dcf77e543376e396222fe7b00a5c95c9/dayflow-caldav-1.1.1.tgz","_from":"file:dayflow-caldav-1.1.1.tgz","_nodeVersion":"22.19.0","_npmVersion":"11.7.0","dist":{"integrity":"sha512-ZTbfh5dCPYfu29nGrqQmPhvInJ2s8C0pvw0S4t2yNpwTFF18qXz0xB5oop8OEEi3TUHbmnMEAtUWWl82dbC/Vw==","shasum":"a7d9c4ed6b5d5ef1ab18b3ac7cae628b5ff4f2d9","tarball":"https://registry.npmjs.org/@dayflow/caldav/-/caldav-1.1.1.tgz","fileCount":5,"unpackedSize":117567,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQDxom7VI/N+BBsvm/s7K705ASdTo4HzCTz8SbtQfDUQBQIhAKmBzwh7cq3/JqtcZPcgO/JTCpINQCaZUp9UMp36ncbG"}]},"_npmUser":{"name":"jayceli","email":"lijuncai552@gmail.com"},"directories":{},"maintainers":[{"name":"jayceli","email":"lijuncai552@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/caldav_1.1.1_1788220966805_0.09688172941935758"},"_hasShrinkwrap":false}},"time":{"created":"2026-05-14T01:53:33.128Z","modified":"2026-09-01T00:02:47.269Z","1.0.0":"2026-05-14T01:53:33.416Z","1.0.1":"2026-05-14T02:00:04.723Z","1.0.2":"2026-05-22T03:27:39.150Z","1.0.3":"2026-05-29T07:12:28.905Z","1.0.4":"2026-07-20T11:24:40.494Z","1.0.5":"2026-08-04T01:23:48.096Z","1.0.6":"2026-08-10T09:09:07.263Z","1.1.0":"2026-08-13T13:15:02.956Z","1.1.1":"2026-09-01T00:02:46.963Z"},"author":{"name":"Jayce Li"},"license":"MIT","keywords":["caldav","calendar","dayflow","icalendar","sync"],"description":"Headless CalDAV sync engine for DayFlow - transport-agnostic, adapter-first","maintainers":[{"name":"jayceli","email":"lijuncai552@gmail.com"}],"readme":"# @dayflow/caldav\n\nOpen-source, headless, adapter-first CalDAV sync infrastructure for DayFlow.\n\nThis package is intentionally not a login UI, OAuth flow, credential store, or hosted sync service. Applications provide their own authentication, transport, backend proxy, storage, and sync policy.\n\n## Design Boundary\n\n```txt\nDayFlow core:\n  UI, views, interaction, event/calendar state\n\n@dayflow/caldav:\n  CalDAV protocol adapter, iCalendar mapping, sync storage bookkeeping,\n  and an optional DayFlow attachment controller\n\nUser application:\n  auth, tokens, backend proxy, encrypted secrets, offline policy,\n  conflict workflow, and provider-specific business rules\n```\n\n## Quick Start\n\n```ts\nimport {\n  attachCalDAVToDayFlow,\n  createCalDAVAdapter,\n  createCalDAVSync,\n  createNamespacedCalDAVEventId,\n  mapCalDAVEventToDayFlow,\n} from '@dayflow/caldav';\n\nconst adapter = createCalDAVAdapter({\n  calendarHomeUrl: '/calendars/alice/',\n  fetch: (url, init) =>\n    fetch('/api/caldav-proxy', {\n      method: 'POST',\n      body: JSON.stringify({ url, init }),\n    }),\n});\n\nconst sync = createCalDAVSync({\n  adapter,\n  storage,\n  // Optional: split broad visible-range REPORTs into smaller windows.\n  rangeChunkDays: 31,\n});\n\nconst controller = attachCalDAVToDayFlow(calendar.app, sync, {\n  writable: true,\n  refreshOnVisibleRangeChange: true,\n  maxConcurrentCalendars: 4,\n  createEventId: createNamespacedCalDAVEventId,\n  eventMode: {\n    recurring: 'read-only',\n  },\n});\n\nawait controller.start();\n```\n\nDayFlow never sees credentials. The application controls the transport.\n\n## Provider Helpers\n\nProvider helpers return configuration only. They do not own credentials.\n\n```ts\nimport {\n  ICLOUD_CALDAV_SERVER,\n  discoverCalendarHome,\n  nextcloudConfig,\n  radicaleConfig,\n  fastmailConfig,\n} from '@dayflow/caldav';\n```\n\nFor iCloud, discover the calendar home URL through authenticated backend/proxy fetch:\n\n```ts\nconst calendarHomeUrl = await discoverCalendarHome(\n  ICLOUD_CALDAV_SERVER,\n  proxiedFetch\n);\n\nconst adapter = createCalDAVAdapter({\n  calendarHomeUrl,\n  fetch: proxiedFetch,\n});\n```\n\nCompatibility notes:\n\n- iCloud requires an app-specific password and a backend proxy in browser apps.\n- Nextcloud commonly returns 8-digit RGBA calendar colors; alpha is stripped.\n- Radicale may omit permission metadata; ambiguous permissions default to read-only.\n- Fastmail should be integrated through user-controlled transport just like other providers.\n\n## API Reference\n\n### createCalDAVAdapter(options)\n\nCreates the default CalDAV protocol adapter.\n\nOptions:\n\n- `calendarHomeUrl`: authenticated user's CalDAV calendar home collection.\n- `fetch`: user-injected request function, usually backed by a backend proxy.\n\nThe adapter performs `PROPFIND`, `REPORT`, `PUT`, and `DELETE`. It does not accept `username`, `password`, OAuth tokens, or cookies directly.\n\n### createCalDAVSync(options)\n\nCreates the headless sync engine around an adapter and storage implementation.\n\nOptions:\n\n- `adapter`: a `CalDAVAdapter`.\n- `storage`: a `CalDAVStorage`.\n- `rangeChunkDays`: optional day window size for broad visible-range syncs.\n\nThe sync engine stores etags, event sync state, sync tokens, and calendar ctags. It does not own `start`, `stop`, app subscriptions, UI state, or credentials.\n\n### attachCalDAVToDayFlow(app, sync, options)\n\nAttaches a headless sync engine to a DayFlow `CalendarApp`.\n\nOptions:\n\n- `writable`: allow eligible local changes to write back to CalDAV.\n- `refreshOnVisibleRangeChange`: sync when the user navigates to a new range.\n- `maxConcurrentCalendars`: number of remote calendars to sync in parallel.\n- `eventMode.recurring`: currently `read-only`.\n- `onError`: receives sync/write errors with operation context.\n- `createEventId`: build DayFlow ids for remote CalDAV events. The binding\n  defaults to provider-scoped ids via `createNamespacedCalDAVEventId`.\n\nThe controller registers remote calendars, applies remote events with `source: 'remote'`, observes local event changes, and writes eligible non-recurring changes back through the sync engine.\n\nDirect mapper calls keep the historical UID-as-id default for compatibility:\n\n```ts\nconst event = mapCalDAVEventToDayFlow(data, {\n  createEventId: createNamespacedCalDAVEventId,\n});\n```\n\n### CalDAVStorage\n\nApplications provide durable storage for sync bookkeeping. If no storage is\nprovided, `createCalDAVSync` uses an in-memory adapter intended for tests and\nquick starts only; production apps should persist this state in IndexedDB,\nlocalStorage, or a server-side store.\n\n```ts\ninterface CalDAVStorage {\n  getSyncToken(calendarId: string): Promise<string | null>;\n  setSyncToken(calendarId: string, token: string | null): Promise<void>;\n  getCtag(calendarId: string): Promise<string | null>;\n  setCtag(calendarId: string, ctag: string): Promise<void>;\n  getEtag(href: string): Promise<string | null>;\n  setEtag(href: string, etag: string): Promise<void>;\n  deleteEtag(href: string): Promise<void>;\n  getEventState(eventId: string): Promise<CalDAVEventSyncState | null>;\n  setEventState(eventId: string, state: CalDAVEventSyncState): Promise<void>;\n  deleteEventState(eventId: string): Promise<void>;\n  clearCalendar(calendarId: string): Promise<void>;\n}\n```\n\nStorage should contain sync metadata only. Do not store credentials here.\n\n## Snapshot Safety\n\n`applyRemoteSnapshot` treats snapshots as partial by default, so missing local\nrecords are preserved unless you explicitly opt into deletion. Use\n`snapshotMode: 'authoritative'` only when the snapshot fully represents all\nprovider-owned calendars and events:\n\n```ts\nawait applyRemoteSnapshot(app, fullProviderSnapshot, {\n  isOwnedEvent,\n  isOwnedCalendar,\n  snapshotMode: 'authoritative',\n});\n```\n\nFor visible-range, filtered, or paginated responses, keep the default partial\nmode or pass `deleteMissingEvents: false` / `deleteMissingCalendars: false`.\n\n## Current Limits\n\n- Recurring events are detected and treated as read-only for write-back.\n- RRULE expansion utilities support basic `DAILY`, `WEEKLY`, `MONTHLY`, and `YEARLY` rules plus `RDATE`/`EXDATE` include/exclude dates, but recurrence exception editing is not supported yet.\n- `sync-token` support is collection-wide. Visible-range loading uses range queries so unchanged events in newly visible ranges are not skipped.\n- Calendar `ctag` values are used as a safe collection-wide no-op optimization when available.\n","readmeFilename":"README.md"}