{"_id":"@bernierllc/validators-temporal-consistency","_rev":"7-47929c215782b6fefd994dc855e440a9","name":"@bernierllc/validators-temporal-consistency","dist-tags":{"latest":"0.7.0"},"versions":{"0.1.0":{"name":"@bernierllc/validators-temporal-consistency","version":"0.1.0","keywords":["validation","validators","temporal","timestamp","iso8601","timezone","dst","date-range","primitive","schema"],"author":{"name":"Bernier LLC"},"license":"UNLICENSED","_id":"@bernierllc/validators-temporal-consistency@0.1.0","maintainers":[{"name":"alikhan410","email":"mczeyo@gmail.com"},{"name":"mkbernier","email":"mkbernier@gmail.com"}],"homepage":"https://github.com/bernierllc/tools#readme","bugs":{"url":"https://github.com/bernierllc/tools/issues"},"dist":{"shasum":"862553231d9d777eee93e647786365343e958d6b","tarball":"https://registry.npmjs.org/@bernierllc/validators-temporal-consistency/-/validators-temporal-consistency-0.1.0.tgz","fileCount":28,"integrity":"sha512-cA5VVERCHkZlCKNe+wirIe+XVhE+abDR6ispArFwm+Evdr8e2xOgu+bYkv/8N68WN97H2x+Ng6PpUozq9H+/OQ==","signatures":[{"sig":"MEQCIDj1mDpL6k3DREP5woYxo0osxejhd5UtQPdEzh76b/0AAiBKjmUDHJmo7DVqWaey5vT6w3uOI8WhxdICi0WZFpQVqw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":97691},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"f184001df6da605bb9584b5f5bc17a1b93ee29f4","scripts":{"dev":"tsc --watch","lint":"eslint src --ext .ts","test":"jest --watch","build":"tsc","clean":"rm -rf dist coverage","lint:fix":"eslint src --ext .ts --fix","test:run":"jest","test:coverage":"jest --coverage"},"_npmUser":{"name":"mkbernier","email":"mkbernier@gmail.com"},"repository":{"url":"git+https://github.com/bernierllc/tools.git","type":"git","directory":"packages/validators/validators-temporal-consistency"},"_npmVersion":"11.4.2","description":"Temporal consistency validation for the BernierLLC validators ecosystem - validates ISO8601 formats, timezones, DST, and date ranges","directories":{},"_nodeVersion":"24.4.1","dependencies":{"@bernierllc/validators-core":"^0.1.0","@bernierllc/validators-utils":"^0.1.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.5.0","eslint":"^8.37.0","ts-jest":"^29.0.5","typescript":"^5.0.0","@types/jest":"^29.5.0","@types/node":"^18.15.0","@typescript-eslint/parser":"^5.57.0","@typescript-eslint/eslint-plugin":"^5.57.0"},"_npmOperationalInternal":{"tmp":"tmp/validators-temporal-consistency_0.1.0_1760037449660_0.6998956914859464","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"@bernierllc/validators-temporal-consistency","version":"0.3.0","keywords":["validation","validators","temporal","timestamp","iso8601","timezone","dst","date-range","primitive","schema"],"author":{"name":"Bernier LLC"},"license":"UNLICENSED","_id":"@bernierllc/validators-temporal-consistency@0.3.0","maintainers":[{"name":"alikhan410","email":"mczeyo@gmail.com"},{"name":"mkbernier","email":"mkbernier@gmail.com"}],"homepage":"https://github.com/bernierllc/tools#readme","bugs":{"url":"https://github.com/bernierllc/tools/issues"},"dist":{"shasum":"cc4599df99101773896d9c0755fc6c4848cd2e77","tarball":"https://registry.npmjs.org/@bernierllc/validators-temporal-consistency/-/validators-temporal-consistency-0.3.0.tgz","fileCount":28,"integrity":"sha512-HRLGBLtWZjCyYmCQ229v2KxHu2ct3VCoejcNhZPgfl6I9RFkenTs94hbPG0h4P53RnlZDZwzeLPuhYJ4SkI07Q==","signatures":[{"sig":"MEUCIAQfpohq5vU05TsxZbQq6GOAso3VsgwzRX52rRzRE5EqAiEAt9+ncBptgBDLIeWWt2RZYjMh+/bB2KARKQSeD1/W7VM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":97793},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"af7e74b3715d56d3a193e1bb6743b337c2b0df6d","scripts":{"dev":"tsc --watch","lint":"eslint src --ext .ts","test":"jest --watch","build":"tsc","clean":"rm -rf dist coverage","lint:fix":"eslint src --ext .ts --fix","test:run":"jest","test:coverage":"jest --coverage"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:5700ca02-f015-47c8-b9fc-ba788aa67b63"}},"repository":{"url":"git+https://github.com/bernierllc/tools.git","type":"git","directory":"packages/validators/validators-temporal-consistency"},"_npmVersion":"lerna/9.0.3/node@v20.19.6+x64 (linux)","description":"Temporal consistency validation for the BernierLLC validators ecosystem - validates ISO8601 formats, timezones, DST, and date ranges","directories":{},"_nodeVersion":"20.19.6","dependencies":{"@bernierllc/validators-core":"0.1.2","@bernierllc/validators-utils":"0.1.2"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.5.0","eslint":"^8.37.0","ts-jest":"^29.0.5","typescript":"^5.0.0","@types/jest":"^29.5.0","@types/node":"^18.15.0","@typescript-eslint/parser":"^5.57.0","@typescript-eslint/eslint-plugin":"^5.57.0"},"_npmOperationalInternal":{"tmp":"tmp/validators-temporal-consistency_0.3.0_1767642376923_0.06529090483304323","host":"s3://npm-registry-packages-npm-production"}},"0.3.1":{"name":"@bernierllc/validators-temporal-consistency","version":"0.3.1","keywords":["validation","validators","temporal","timestamp","iso8601","timezone","dst","date-range","primitive","schema"],"author":{"name":"Bernier LLC"},"license":"UNLICENSED","_id":"@bernierllc/validators-temporal-consistency@0.3.1","maintainers":[{"name":"alikhan410","email":"mczeyo@gmail.com"},{"name":"mkbernier","email":"mkbernier@gmail.com"}],"homepage":"https://github.com/bernierllc/tools#readme","bugs":{"url":"https://github.com/bernierllc/tools/issues"},"dist":{"shasum":"0bff850d5a599b9091bf724dd1f7228b20536c8e","tarball":"https://registry.npmjs.org/@bernierllc/validators-temporal-consistency/-/validators-temporal-consistency-0.3.1.tgz","fileCount":28,"integrity":"sha512-VuFPiRLqVSQ4dcBSP8OMp86EYFRVoxH6pPnx338bHY5fLKuoxA4gY7bsCu/Ns4cYpQUZWAjwYRT3zM9A13wPZQ==","signatures":[{"sig":"MEYCIQCtFs7CtpwXZ3fgQWM57Ct9DTJmqQ05ZcnXDq4oMkF+7AIhAO9GmGFMnwkMnKwBJGgg9dpdHpSpfaou/Go/o9TtOkB3","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":97735},"main":"dist/index.js","_from":"file:bernierllc-validators-temporal-consistency-0.3.1.tgz","types":"dist/index.d.ts","scripts":{"dev":"tsc --watch","lint":"eslint src --ext .ts","test":"jest --watch","build":"tsc","clean":"rm -rf dist coverage","lint:fix":"eslint src --ext .ts --fix","test:run":"jest","test:coverage":"jest --coverage"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:5700ca02-f015-47c8-b9fc-ba788aa67b63"}},"_resolved":"/tmp/d3220ce44c306c2a6dfafffb18a1e91b/bernierllc-validators-temporal-consistency-0.3.1.tgz","_integrity":"sha512-VuFPiRLqVSQ4dcBSP8OMp86EYFRVoxH6pPnx338bHY5fLKuoxA4gY7bsCu/Ns4cYpQUZWAjwYRT3zM9A13wPZQ==","repository":{"url":"git+https://github.com/bernierllc/tools.git","type":"git","directory":"packages/validators/validators-temporal-consistency"},"_npmVersion":"11.11.0","description":"Temporal consistency validation for the BernierLLC validators ecosystem - validates ISO8601 formats, timezones, DST, and date ranges","directories":{},"_nodeVersion":"20.20.0","dependencies":{"@bernierllc/validators-core":"0.1.3","@bernierllc/validators-utils":"0.1.3"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.5.0","eslint":"^8.37.0","ts-jest":"^29.0.5","typescript":"^5.0.0","@types/jest":"^29.5.0","@types/node":"^18.15.0","@typescript-eslint/parser":"^5.57.0","@typescript-eslint/eslint-plugin":"^5.57.0"},"_npmOperationalInternal":{"tmp":"tmp/validators-temporal-consistency_0.3.1_1773078338181_0.9064761610254881","host":"s3://npm-registry-packages-npm-production"}},"0.3.2":{"name":"@bernierllc/validators-temporal-consistency","version":"0.3.2","keywords":["validation","validators","temporal","timestamp","iso8601","timezone","dst","date-range","primitive","schema"],"author":{"name":"Bernier LLC"},"license":"UNLICENSED","_id":"@bernierllc/validators-temporal-consistency@0.3.2","maintainers":[{"name":"alikhan410","email":"mczeyo@gmail.com"},{"name":"mkbernier","email":"mkbernier@gmail.com"}],"homepage":"https://github.com/bernierllc/tools#readme","bugs":{"url":"https://github.com/bernierllc/tools/issues"},"dist":{"shasum":"edab250a4626c38fd25d2aad42b463a05f57b14e","tarball":"https://registry.npmjs.org/@bernierllc/validators-temporal-consistency/-/validators-temporal-consistency-0.3.2.tgz","fileCount":28,"integrity":"sha512-WnTjTCn/e5Cf989nlL7i6DzkfqL424rp8NCmMHthGvCW0g6oMx+mgEisHsNJZi0VZmTdWWw7veXgPnLXmkgf8g==","signatures":[{"sig":"MEQCIG0HvkH/j1q3wVHEFPKGV/avrLVY9LcIJ6sou6VXZbUNAiBMSuzb7uemRW0Bliaiib9SsgUdM6F+THUFV9ZZUEVdgQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":97735},"main":"dist/index.js","_from":"file:bernierllc-validators-temporal-consistency-0.3.2.tgz","types":"dist/index.d.ts","scripts":{"dev":"tsc --watch","lint":"eslint src --ext .ts","test":"jest --watch","build":"tsc","clean":"rm -rf dist coverage","lint:fix":"eslint src --ext .ts --fix","test:run":"jest","test:coverage":"jest --coverage"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:5700ca02-f015-47c8-b9fc-ba788aa67b63"}},"_resolved":"/home/runner/work/tools/tools/packages/validators/validators-temporal-consistency/bernierllc-validators-temporal-consistency-0.3.2.tgz","_integrity":"sha512-WnTjTCn/e5Cf989nlL7i6DzkfqL424rp8NCmMHthGvCW0g6oMx+mgEisHsNJZi0VZmTdWWw7veXgPnLXmkgf8g==","repository":{"url":"git+https://github.com/bernierllc/tools.git","type":"git","directory":"packages/validators/validators-temporal-consistency"},"_npmVersion":"11.11.0","description":"Temporal consistency validation for the BernierLLC validators ecosystem - validates ISO8601 formats, timezones, DST, and date ranges","directories":{},"_nodeVersion":"20.20.0","dependencies":{"@bernierllc/validators-core":"0.1.4","@bernierllc/validators-utils":"0.1.4"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.5.0","eslint":"^8.37.0","ts-jest":"^29.0.5","typescript":"^5.0.0","@types/jest":"^29.5.0","@types/node":"^18.15.0","@typescript-eslint/parser":"^5.57.0","@typescript-eslint/eslint-plugin":"^5.57.0"},"_npmOperationalInternal":{"tmp":"tmp/validators-temporal-consistency_0.3.2_1773164001659_0.4571132788233967","host":"s3://npm-registry-packages-npm-production"}},"0.4.0":{"name":"@bernierllc/validators-temporal-consistency","version":"0.4.0","keywords":["validation","validators","temporal","timestamp","iso8601","timezone","dst","date-range","primitive","schema"],"author":{"name":"Bernier LLC"},"license":"UNLICENSED","_id":"@bernierllc/validators-temporal-consistency@0.4.0","maintainers":[{"name":"alikhan410","email":"mczeyo@gmail.com"},{"name":"mkbernier","email":"mkbernier@gmail.com"}],"homepage":"https://github.com/bernierllc/tools#readme","bugs":{"url":"https://github.com/bernierllc/tools/issues"},"dist":{"shasum":"746361d3c69b2b4964a3de27fcc327e523c082ce","tarball":"https://registry.npmjs.org/@bernierllc/validators-temporal-consistency/-/validators-temporal-consistency-0.4.0.tgz","fileCount":28,"integrity":"sha512-zgUU9tQZMPieQ6cn33MoX+75aWtXf2UMLl799TOQT7r8BU3KBKwsaTORJYkONnx/l9MQuAeBJTXfX3QiRYLidA==","signatures":[{"sig":"MEYCIQCG9NvT02qh/RmtjqXpsV8uWEghacMFHYcQb7LPJ8k+owIhAJlhSsw/FcyJallFfpwQKZrcDcvRl1caZp1CwDrDxcIp","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":97735},"main":"dist/index.js","_from":"file:bernierllc-validators-temporal-consistency-0.4.0.tgz","types":"dist/index.d.ts","scripts":{"dev":"tsc --watch","lint":"eslint src --ext .ts","test":"jest --watch","build":"tsc","clean":"rm -rf dist coverage","lint:fix":"eslint src --ext .ts --fix","test:run":"jest","test:coverage":"jest --coverage"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:5700ca02-f015-47c8-b9fc-ba788aa67b63"}},"_resolved":"/home/runner/work/tools/tools/packages/validators/validators-temporal-consistency/bernierllc-validators-temporal-consistency-0.4.0.tgz","_integrity":"sha512-zgUU9tQZMPieQ6cn33MoX+75aWtXf2UMLl799TOQT7r8BU3KBKwsaTORJYkONnx/l9MQuAeBJTXfX3QiRYLidA==","repository":{"url":"git+https://github.com/bernierllc/tools.git","type":"git","directory":"packages/validators/validators-temporal-consistency"},"_npmVersion":"11.14.1","description":"Temporal consistency validation for the BernierLLC validators ecosystem - validates ISO8601 formats, timezones, DST, and date ranges","directories":{},"_nodeVersion":"20.20.2","dependencies":{"@bernierllc/validators-core":"0.2.0","@bernierllc/validators-utils":"0.2.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.5.0","eslint":"^8.37.0","ts-jest":"^29.0.5","typescript":"^5.0.0","@types/jest":"^29.5.0","@types/node":"^18.15.0","@typescript-eslint/parser":"^5.57.0","@typescript-eslint/eslint-plugin":"^5.57.0"},"_npmOperationalInternal":{"tmp":"tmp/validators-temporal-consistency_0.4.0_1779242237190_0.6908155916691887","host":"s3://npm-registry-packages-npm-production"}},"0.5.0":{"name":"@bernierllc/validators-temporal-consistency","version":"0.5.0","keywords":["validation","validators","temporal","timestamp","iso8601","timezone","dst","date-range","primitive","schema"],"author":{"name":"Bernier LLC"},"license":"UNLICENSED","_id":"@bernierllc/validators-temporal-consistency@0.5.0","maintainers":[{"name":"alikhan410","email":"mczeyo@gmail.com"},{"name":"mkbernier","email":"mkbernier@gmail.com"}],"homepage":"https://github.com/bernierllc/tools#readme","bugs":{"url":"https://github.com/bernierllc/tools/issues"},"dist":{"shasum":"e3571a8fe5f4d1a91fe6c8ca967aed5925f1bc63","tarball":"https://registry.npmjs.org/@bernierllc/validators-temporal-consistency/-/validators-temporal-consistency-0.5.0.tgz","fileCount":28,"integrity":"sha512-fGOQ5agl2H+PdlzlfV0xug3sx7cCFukBTY/REcNbb+F5ecYnEO4rGMJXm9CKq28TFmLQ0eGfxTBy3ATE+Law1Q==","signatures":[{"sig":"MEQCICk2r8bS7MuiogjmlbtK3NT+TvqS2EIxcRj909crYQxgAiALqIBFVeP/4aPzVycM1HwxHVheoY9BxDhrChZgX0PlBw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":97735},"main":"dist/index.js","_from":"file:bernierllc-validators-temporal-consistency-0.5.0.tgz","types":"dist/index.d.ts","scripts":{"dev":"tsc --watch","lint":"eslint src --ext .ts","test":"jest --watch","build":"tsc","clean":"rm -rf dist coverage","lint:fix":"eslint src --ext .ts --fix","test:run":"jest","test:coverage":"jest --coverage"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:5700ca02-f015-47c8-b9fc-ba788aa67b63"}},"_resolved":"/home/runner/work/tools/tools/packages/validators/validators-temporal-consistency/bernierllc-validators-temporal-consistency-0.5.0.tgz","_integrity":"sha512-fGOQ5agl2H+PdlzlfV0xug3sx7cCFukBTY/REcNbb+F5ecYnEO4rGMJXm9CKq28TFmLQ0eGfxTBy3ATE+Law1Q==","repository":{"url":"git+https://github.com/bernierllc/tools.git","type":"git","directory":"packages/validators/validators-temporal-consistency"},"_npmVersion":"11.14.1","description":"Temporal consistency validation for the BernierLLC validators ecosystem - validates ISO8601 formats, timezones, DST, and date ranges","directories":{},"_nodeVersion":"20.20.2","dependencies":{"@bernierllc/validators-core":"0.3.0","@bernierllc/validators-utils":"0.3.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.5.0","eslint":"^8.37.0","ts-jest":"^29.0.5","typescript":"^5.0.0","@types/jest":"^29.5.0","@types/node":"^18.15.0","@typescript-eslint/parser":"^5.57.0","@typescript-eslint/eslint-plugin":"^5.57.0"},"_npmOperationalInternal":{"tmp":"tmp/validators-temporal-consistency_0.5.0_1779250992108_0.8800233645925624","host":"s3://npm-registry-packages-npm-production"}},"0.7.0":{"name":"@bernierllc/validators-temporal-consistency","version":"0.7.0","description":"Temporal consistency validation for the BernierLLC validators ecosystem - validates ISO8601 formats, timezones, DST, and date ranges","main":"dist/index.js","types":"dist/index.d.ts","keywords":["validation","validators","temporal","timestamp","iso8601","timezone","dst","date-range","primitive","schema"],"author":{"name":"Bernier LLC"},"license":"UNLICENSED","dependencies":{"@bernierllc/validators-utils":"0.5.0","@bernierllc/validators-core":"0.4.0"},"devDependencies":{"@types/jest":"^29.5.0","@types/node":"^18.15.0","@typescript-eslint/eslint-plugin":"^5.57.0","@typescript-eslint/parser":"^5.57.0","eslint":"^8.37.0","jest":"^29.5.0","ts-jest":"^29.0.5","typescript":"^5.0.0"},"repository":{"type":"git","url":"git+https://github.com/bernierllc/tools.git","directory":"packages/validators/validators-temporal-consistency"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"scripts":{"build":"tsc","dev":"tsc --watch","test":"jest --watch","test:run":"jest","test:coverage":"jest --coverage","lint":"eslint src --ext .ts","lint:fix":"eslint src --ext .ts --fix","clean":"rm -rf dist coverage"},"_id":"@bernierllc/validators-temporal-consistency@0.7.0","bugs":{"url":"https://github.com/bernierllc/tools/issues"},"homepage":"https://github.com/bernierllc/tools#readme","_integrity":"sha512-mSxkW2PHRofBEq2osAuSYX2suD7NH7tF18M1itO3eKPqM2o6P2Nh+7Ztsor42gAVC3sVRHcZDhk0BPSAQe2Arw==","_resolved":"/home/runner/work/tools/tools/packages/validators/validators-temporal-consistency/bernierllc-validators-temporal-consistency-0.7.0.tgz","_from":"file:bernierllc-validators-temporal-consistency-0.7.0.tgz","_nodeVersion":"20.20.2","_npmVersion":"11.14.1","dist":{"integrity":"sha512-mSxkW2PHRofBEq2osAuSYX2suD7NH7tF18M1itO3eKPqM2o6P2Nh+7Ztsor42gAVC3sVRHcZDhk0BPSAQe2Arw==","shasum":"31c2cb2ce5fc8d30ad8bed89c81b89c9090375ef","tarball":"https://registry.npmjs.org/@bernierllc/validators-temporal-consistency/-/validators-temporal-consistency-0.7.0.tgz","fileCount":32,"unpackedSize":101273,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQDjet5RE7HW1jmUOll+tUJAKvAWJIK9AMSIjD/hJcNXVAIgWz1NpbE6c1n/YUGz7LQTrW/zkT29uPadXyY/Bwr6JZk="}]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:5700ca02-f015-47c8-b9fc-ba788aa67b63"}},"directories":{},"maintainers":[{"name":"alikhan410","email":"mczeyo@gmail.com"},{"name":"mkbernier","email":"mkbernier@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/validators-temporal-consistency_0.7.0_1779252277960_0.8475787481303338"},"_hasShrinkwrap":false}},"time":{"created":"2025-10-09T19:17:29.570Z","modified":"2026-05-20T04:44:38.259Z","0.1.0":"2025-10-09T19:17:29.830Z","0.3.0":"2026-01-05T19:46:17.054Z","0.3.1":"2026-03-09T17:45:38.310Z","0.3.2":"2026-03-10T17:33:21.823Z","0.4.0":"2026-05-20T01:57:17.460Z","0.5.0":"2026-05-20T04:23:12.289Z","0.7.0":"2026-05-20T04:44:38.144Z"},"bugs":{"url":"https://github.com/bernierllc/tools/issues"},"author":{"name":"Bernier LLC"},"license":"UNLICENSED","homepage":"https://github.com/bernierllc/tools#readme","keywords":["validation","validators","temporal","timestamp","iso8601","timezone","dst","date-range","primitive","schema"],"repository":{"type":"git","url":"git+https://github.com/bernierllc/tools.git","directory":"packages/validators/validators-temporal-consistency"},"description":"Temporal consistency validation for the BernierLLC validators ecosystem - validates ISO8601 formats, timezones, DST, and date ranges","maintainers":[{"name":"alikhan410","email":"mczeyo@gmail.com"},{"name":"mkbernier","email":"mkbernier@gmail.com"}],"readme":"# @bernierllc/validators-temporal-consistency\n\nTemporal consistency validation for the BernierLLC validators ecosystem. Validates ISO8601 formats, timezone offsets, DST handling, date ranges, and timestamp ordering.\n\n## Installation\n\n```bash\nnpm install @bernierllc/validators-temporal-consistency\n```\n\n## Features\n\n- **ISO 8601 Format Validation** - Ensures dates and timestamps follow ISO 8601 standard\n- **Timezone Validation** - Validates timezone offsets are in correct format and valid range\n- **Date Range Validation** - Ensures start dates come before end dates\n- **Timestamp Ordering** - Validates timestamps in sequences are chronologically ordered\n- **DST Awareness** - Warns about potential DST transition issues\n\n## Usage\n\n### Basic Validation\n\n```typescript\nimport { validateTemporalConsistency } from '@bernierllc/validators-temporal-consistency';\n\nconst data = {\n  created_at: '2025-01-15T10:00:00Z',\n  updated_at: '2025-01-15T10:30:00Z',\n  start_date: '2025-01-15',\n  end_date: '2025-01-20'\n};\n\nconst result = await validateTemporalConsistency(data);\n\nif (result.problems.length > 0) {\n  result.problems.forEach(problem => {\n    console.log(`${problem.severity}: ${problem.message}`);\n  });\n}\n```\n\n### Validating Timestamp Arrays\n\n```typescript\nimport { validateTemporalConsistency } from '@bernierllc/validators-temporal-consistency';\n\nconst eventLog = {\n  timestamps: [\n    '2025-01-15T10:00:00Z',\n    '2025-01-15T10:05:00Z',\n    '2025-01-15T10:10:00Z',\n    '2025-01-15T10:15:00Z'\n  ]\n};\n\nconst result = await validateTemporalConsistency(eventLog);\n```\n\n### Using Individual Rules\n\n```typescript\nimport {\n  invalidIso8601Format,\n  invalidTimezone,\n  invalidDateRange,\n  invalidTimestampOrdering,\n  dstTransitionIssue\n} from '@bernierllc/validators-temporal-consistency';\n\n// Use individual rules as needed\n```\n\n## Validation Rules\n\n### 1. Invalid ISO 8601 Format\n\nValidates that temporal data follows ISO 8601 standard format.\n\n**Valid Formats:**\n- Date: `YYYY-MM-DD`\n- DateTime: `YYYY-MM-DDTHH:MM:SS` or `YYYY-MM-DD HH:MM:SS`\n- DateTime with timezone: `YYYY-MM-DDTHH:MM:SS+00:00` or `YYYY-MM-DDTHH:MM:SSZ`\n- DateTime with milliseconds: `YYYY-MM-DDTHH:MM:SS.sss`\n\n**Examples:**\n\n```typescript\n// Valid\n{ date: '2025-01-15' }\n{ timestamp: '2025-01-15T10:30:00Z' }\n{ datetime: '2025-01-15T10:30:00.123+05:30' }\n\n// Invalid\n{ date: '01/15/2025' }  // Wrong format\n{ timestamp: '2025-1-15T10:30:00' }  // Missing leading zeros\n{ date: '2025-13-01' }  // Invalid month\n```\n\n### 2. Invalid Timezone\n\nValidates timezone offsets are in valid ISO 8601 format and within valid range.\n\n**Valid Range:** `-12:00` to `+14:00`\n**Valid Minutes:** `00`, `15`, `30`, `45`\n\n**Examples:**\n\n```typescript\n// Valid\n{ timezone: 'Z' }  // UTC\n{ timezone: '+05:30' }  // Valid offset\n{ timestamp: '2025-01-15T10:30:00-08:00' }\n\n// Invalid\n{ timezone: 'EST' }  // Named timezones not supported\n{ timezone: '+15:00' }  // Out of range\n{ timezone: '+05:20' }  // Invalid minutes\n```\n\n### 3. Invalid Date Range\n\nValidates that end dates come after start dates.\n\n**Checked Pairs:**\n- `start_date` / `end_date`\n- `start_time` / `end_time`\n- `created_at` / `updated_at`\n\n**Examples:**\n\n```typescript\n// Valid\n{\n  start_date: '2025-01-15',\n  end_date: '2025-01-20'\n}\n\n// Invalid\n{\n  start_date: '2025-01-20',\n  end_date: '2025-01-15'  // End before start\n}\n```\n\n### 4. Invalid Timestamp Ordering\n\nValidates timestamps in arrays are in chronological order.\n\n**Examples:**\n\n```typescript\n// Valid\n{\n  timestamps: [\n    '2025-01-15T10:00:00Z',\n    '2025-01-15T10:30:00Z',\n    '2025-01-15T11:00:00Z'\n  ]\n}\n\n// Invalid\n{\n  timestamps: [\n    '2025-01-15T10:00:00Z',\n    '2025-01-15T11:00:00Z',\n    '2025-01-15T10:30:00Z'  // Out of order\n  ]\n}\n```\n\n### 5. DST Transition Issue\n\nWarns about potential DST issues when timestamps fall during transition periods without explicit timezone information.\n\n**Transition Periods:**\n- March (Northern Hemisphere spring forward)\n- November (Northern Hemisphere fall back)\n- April (Southern Hemisphere fall back)\n- October (Southern Hemisphere spring forward)\n\n**Examples:**\n\n```typescript\n// No warning - explicit timezone\n{ timestamp: '2025-03-15T02:30:00-08:00' }\n{ timestamp: '2025-03-15T02:30:00Z' }\n\n// Warning - DST transition without timezone\n{ timestamp: '2025-03-15T02:30:00' }\n{ timestamp: '2025-11-10T02:00:00' }  // Ambiguous hour\n```\n\n## Temporal Field Names\n\nThe validator checks these common temporal field names:\n\n- `timestamp`\n- `date`\n- `datetime`\n- `created_at`\n- `updated_at`\n- `start_time`\n- `end_time`\n- `start_date`\n- `end_date`\n- `timezone`\n- `timestamps` (array)\n\n## API Reference\n\n### `validateTemporalConsistency<T>(data: T, utils?: SharedUtils): Promise<ValidationResult>`\n\nMain validation function that runs all temporal consistency rules.\n\n**Parameters:**\n- `data` - The temporal data to validate\n- `utils` - Optional shared utilities (auto-created if not provided)\n\n**Returns:** Promise resolving to validation result with problems array\n\n### `temporalConsistencyValidator`\n\nThe primitive validator instance with all rules configured.\n\n**Properties:**\n- `name: string` - Validator name ('temporal-consistency')\n- `domain: ValidationDomain` - Validation domain ('schema')\n- `rules: Rule[]` - Array of all validation rules\n\n### `metadata`\n\nPackage metadata including version, description, and rule information.\n\n## Real-World Examples\n\n### API Response Validation\n\n```typescript\nconst apiResponse = {\n  id: '123',\n  created_at: '2025-01-15T10:00:00Z',\n  updated_at: '2025-01-15T10:30:00Z',\n  data: { value: 'test' }\n};\n\nconst result = await validateTemporalConsistency(apiResponse);\n```\n\n### Booking System\n\n```typescript\nconst booking = {\n  start_date: '2025-01-15',\n  end_date: '2025-01-20',\n  created_at: '2025-01-10T10:00:00Z',\n  updated_at: '2025-01-10T10:30:00Z'\n};\n\nconst result = await validateTemporalConsistency(booking);\n```\n\n### Time-Series Data\n\n```typescript\nconst timeSeries = {\n  timestamps: [\n    '2025-01-15T10:00:00Z',\n    '2025-01-15T10:01:00Z',\n    '2025-01-15T10:02:00Z',\n    '2025-01-15T10:03:00Z'\n  ]\n};\n\nconst result = await validateTemporalConsistency(timeSeries);\n```\n\n### Event Logs\n\n```typescript\nconst events = {\n  timestamps: [\n    '2025-01-15T10:00:00Z',\n    '2025-01-15T10:05:00Z',\n    '2025-01-15T10:10:00Z'\n  ]\n};\n\nconst result = await validateTemporalConsistency(events);\n```\n\n## Error Severity Levels\n\n- **error** - Invalid format, out-of-range values, ordering violations\n- **warn** - DST issues, future timestamps, duplicate timestamps\n\n## Integration with Validators Ecosystem\n\nThis package is part of the BernierLLC validators ecosystem:\n\n- Built on `@bernierllc/validators-core` for consistent rule structure\n- Uses `@bernierllc/validators-utils` for shared utilities\n- Compatible with `@bernierllc/validators-runner` for advanced workflows\n- Supports all standard reporter formats (JSON, Markdown, SARIF, JUnit)\n\n### Using with Runner\n\n```typescript\nimport { ValidatorRunner } from '@bernierllc/validators-runner';\nimport { temporalConsistencyValidator } from '@bernierllc/validators-temporal-consistency';\n\nconst runner = new ValidatorRunner({\n  validators: [temporalConsistencyValidator],\n  // ... other config\n});\n\nconst result = await runner.validate(data);\n```\n\n## Integration Status\n\n- **Logger**: not-applicable - Pure validation package, no runtime logging needed\n- **Docs-Suite**: ready - Complete API documentation with TypeDoc comments\n- **NeverHub**: not-applicable - Primitive validator with no service dependencies\n\n## TypeScript Support\n\nThis package is written in TypeScript and includes full type definitions.\n\n```typescript\nimport type {\n  Problem,\n  ValidationResult,\n  Rule,\n  RuleContext\n} from '@bernierllc/validators-core';\n```\n\n## License\n\nCopyright (c) 2025 Bernier LLC. All rights reserved.\n\nThis file is licensed to the client under a limited-use license. The client may use and modify this code only within the scope of the project it was delivered for. Redistribution or use in other products or commercial offerings is not permitted without written consent from Bernier LLC.\n\n## See Also\n\n- [@bernierllc/validators-core](../validators-core) - Core validation types and utilities\n- [@bernierllc/validators-utils](../validators-utils) - Shared validation utilities\n- [@bernierllc/validators-runner](../validators-runner) - Validation orchestration\n- [@bernierllc/validators-reporters](../validators-reporters) - Result formatting\n","readmeFilename":"README.md"}